可以看到HDMI的3个数据线和1个时钟线是连接到ZYNQPL 端的TMDS 差分引脚,右侧电路实现了ZYNQ I2C 3.3V电平到HDMI 5V电平的转换,领航者ZYNQ开发板的HDMI接口既可以实现HDMI显示输出,又可以实现HDMI信号输入,体现了使用PL时的灵活性,不过本实验只实现HDMI显示输出,厂家已经提供了一个HDMI 彩条显示实验,大家可以参考学习下正点原子提供的《领航者ZYNQ之FPGA开发指南_V1.1.pdf》文档的第18章(第353页~378页),然后我们将在这基础上实现把一个图片显示到HDMI显示器上,这个类似《领航者ZYNQ之FPGA开发指南_V1.1.pdf》文档第17章(第338页~351页)的RGB TFT-LCD 字符和图片显示实验的功能,这个也需要大家先学习下,其中图片的点阵数据提取和例化ROM进行RGB输出的过程是完全一样的,这里我们不再重复描述。
下面为具体实验步骤:
1、使用【正点原子】领航者 ZYNQ开发板光盘资料\领航者ZYNQ开发板资料盘(A盘) \6_软件资料\1_软件\PicToLCD下的PicToLCD_V1.1.exe工具把一个事先准备好的图片转换为XILINX ROM初始化数据文件, 输出格式为RGB888, 文件类型为coe文件,我的图片分辨率为256x77。
2、先解压HDMI 彩条显示的实验源码工程,在【正点原子】领航者 ZYNQ开发板光盘资料\领航者ZYNQ开发板资料盘(A盘)\4_SourceCode\ZYNQ_7010目录下的1_FPGA_Design.rar压缩包内找到,压缩包的13_hdmi_colorbar文件夹就是。
3、用vivado2018.3工具编译工程,然后连接好开发板和HDMI显示器,下载比特流到ZYNQ器件PL内可以看到显示彩条,通过阅读源码可以知道像素时钟为74.25MHz, HDMI显示分辨率为1280x720。
4、在工程中增加一个ROM IP, 在IP Catalog搜索rom, 找到Block Memory Generator,双击进行IP配置,如下图示:
这里ROM位宽为24比特,深度为438x136=19712,最后点击OK,完成对ROM 的配置。
5、修改代码增加图片显示,要例化上面生成的ROM取到RGB数据,主要修改工程目录13_hdmi_colorbar\hdmi_colorbar.srcs\sources_1\new目录下的video_display.v文件,具体代码请下载我提供的工程进行参考,这里不再贴出代码,注意由于ZYNQ内部BLOCK RAM空间限制,我们用的图片分辨率不能太大,结果是在显示器上显示时比较小。
6、重新编译工程,然后连接好开发板和HDMI显示器,下载比特流到ZYNQ器件PL内可以看到实验结果,具体过程如下视频所示:
HDMI显示结果如下图片所示: