Doreen 发表于 2022-9-14 15:49:14

【开源项目介绍】DE10-Nano的HDMI显示

本帖最后由 Doreen 于 2022-9-14 15:50 编辑


1. GitHub开源项目

https://github.com/nhasbun/de10nano_vgaHdmi_chip

2.项目介绍


这是来自智利圣地亚哥的学员分享在GitHub上的一个开源项目。该项目旨在帮助新手在DE10-Nano上轻松部署第一个可工作的HDMI显示设计。项目基于Quartus Prime 17,内容包括:


[*]Verilog HDL 文件

[*]SDC TimeQuest 文件用于时序分析

[*]Quartus 项目文件(完成引脚分配等)

[*]./src/下包含用于 vga 模块和同步信号的功能验证(在Active HDL 9.1上完成的仿真)的文件。


接下来将简略介绍DE10-Nano开发板HDMI硬件设计框架和开源工程设计框架,以便大家能更轻松的学习这个开源项目。

3. DE10-Nano HDMI硬件设计框架

大家知道 TMDS(Transition Minimized Differential Signaling) 是 HDMI 传输的基础。DE10-Nano开发板板载Analog Devices的ADV7513芯片,它能够直接将FPGA 内部的RGB 并行信号转换为TMDS信号输出给HDMI接口进行显示。



所以我们无需在FPGA 代码里面去实现TMDS算法,只需将FPGA内产生的 R G B 数据并行发送给ADV7513, ADV7513 会将这些并行数据编码为串行数据,再转成差分信号传出给HDMI接口即可。换句话说,ADV7513芯片能轻松让您的设计从普通VGA兼容到HDMI 1.4。

4. 开源工程设计框架

该设计主要是在连接到DE10-Nano的HDMI 显示器上显示红绿蓝三色,通过DE10-Nano上的开关(SW)进行颜色切换。这里主要包括一个VGA数据输出模块vgaHdmi.v和一个配置ADV7513寄存器的模块I2C_HDMI_Config.v。vgaHdmi.v模块产生VGA数据经过ADV7513芯片自动转化为串行的带TMDS算法的差分数据输出给HDMI显示器进行显示。每次启动时,ADV7513需通过I2C_HDMI_Config.v模块进行配置才能正常工作。

其实,这里的I2C_HDMI_Config.v模块是学员直接移植了友晶科技随板参考案例 DE10-Nano_v.x.x.x_HWrevC_SystemCD\Demonstrations\FPGA\HDMI_TX 里面的I2C控制代码,关于该代码的解读可以参考笔记:
https://www.cnblogs.com/DoreenLiu/p/16480274.html(ADV7513芯片控制解读)
https://www.cnblogs.com/DoreenLiu/p/16661299.html(基于FPGA控制的ADV7513芯片的I2C代码解析)

5. 测试结果

先编译工程生成sof文件,然后连接HDMI显示器到DE10-Nano开发板并对开发板上电,最后下载sof文件。

1. 只将SW0往上拨,HDMI显示器显示红色;

2. 只将SW1往上拨,HDMI显示器显示绿色;

3. 只将SW2往上拨,HDMI显示器显示蓝色。


Doreen 发表于 2022-9-14 15:51:30

推文:https://mp.weixin.qq.com/s?__biz=MzAwNjUxNzY0MQ==&mid=2649098317&idx=1&sn=25717872a6ce56def32f7e8a40c94f2a&chksm=831e8eabb46907bd5d7446171fcebf5e041d02f958a618c1e44370047b72d3e858b02e0879b9&token=592636414&lang=zh_CN#rd
页: [1]
查看完整版本: 【开源项目介绍】DE10-Nano的HDMI显示