目录
这篇设计文章为您提供了关于FPGA HDMI如何工作的完整深入的信息。这将最终涵盖FPGA板HDMI电路信息,Vivado管道设计,SDK应用程序编写,并在板上运行设计
您可能熟悉HDMI的不同版本。你可能想要跟随这个参考来获得更多的信息。在几个HDMI版本中,本文将特别关注HDMI1.4标准,以便与FPGA设计接口。为此,我正在考虑一些流行的FPGA评估/开发板,例如,ZedBoard, ZC706, ZC702, VC707, KC705, AC701和SP701。因为这些板的HDMI输出是HDMI1.4a标准的。最后,我将使用独立设计方法。但是,在Xilinx petalinux设计方法中也可以使用相同的设计,只需进行很少的设计修改。为了完整的演示,我将以ZedBoard设计为参考。然而,无论哪个FPGA板使用这样的发射器IC,本文仍然有效,除了一些事情。
完成本文后,您将能够自己开发HDMI视频输出接口,以显示视频/图像处理输出。我跳过了详细的vivado管道设计和SDK应用程序开发步骤,因为我假设你们对它有一般的了解。同样,我使用Vivado/Vitis 2021.1。
赛灵思FPGA开发板主要使用Analog Devices的HDMI ic实现HDMI1.4标准。这些是ADV7611和ADV7511。第一个是HDMI接收IC,而第二个是HDMI发送IC。如果您注意到,赛灵思FPGA板大多具有HDMI输出接口和ADV7511 HDMI IC已经存在。你一定不要混淆HDMI2.0和HDMI1.3的一些FPGA板。对于低端FPGA板,一些板供应商包括HDMI1.3接口。另一方面,高端FPGA板,如Zynq UltraScale+ MPSoC板,可以支持高速HDMI接口。它们有HDMI2.0接口。我将在以后的文章中讨论这两个接口。
如果您正在考虑为什么赛灵思FPGA板使用Analog Devices ic,而有其他供应商。这是因为Analog Devices提供了Linux驱动程序,因此Xilinx的客户可以利用Xilinx Petalinux工具为基于hdmi的设计开发自己的Linux应用程序。

以下是ADV7511 HDMI IC的主要功能。
低功耗和高速HDMI发射机与音频返回通道(ARC)
兼容HDMI 1.4和DVI 1.0标准
可编程通过从机I2C通信协议。
支持输入数据速率高达165MHz,输出数据速率高达225MHz
支持视频格式高达全高清,1080p@60Hz与最大36位每像素
支持S/PDIF和8通道I2S音频。S/PDIF可以传输压缩音频,包括Dolby®Digital, DTS®和THX®。
支持如下所列的多种输入和输出格式:
集成电路基本上执行并行到串行的数据转换。这意味着,IC接收来自FPGA逻辑的并行视频数据作为输入并对其进行编码,并将其作为HDMI信号输出,如下图所示。


我们刚刚在上述部分中确定的信号对于正确有效地创建FPGA HDMI输出显示管道非常重要。在本节中,我们将利用上述信息介绍Vivado管道设计。
下图显示了FPGA与ADV7511 HDMI发送器IC之间接口的总体视图

在FPGA方面,上图代表了任何基于adv7511的FPGA- hdmi设计至少应该具有的基本级管道,无论是否有Zynq PS或Microblaze。然而,这只有在FPGA ADV7511 HDMI发射器配置了单独的同步信号时才有效。
因此,如果使用嵌入式同步配置,下面的图片将是最少的管道。在FPGA方面,我们将需要自定义逻辑/IP来获取带有嵌入式同步信号的并行数据。


该流水线设计用于生成1080p@60Hz视频输出,该视频输出将被馈送到ADV7511 IC以获得HDMI输出以显示在HDMI监视器上。管道只有在
视频时钟为148.5MHz (1080p@60Hz), AXI4流时钟大于或至少等于视频时钟
VTC IP配置生成模式为1080p视频模式。注意,在上述设计中没有启用axis4 - lite。
VTPG IP配置为输出YUV422(用于ZedBoard, KC705, ZC702)或YUV444(用于ZC706, AC701, SP701, VC707)颜色格式
AXIS2 Video Out IP配置为输出颜色格式YUV422(用于ZedBoard、KC705、ZC702)或YUV444(用于ZC706、AC701、SP701、VC707),正如我们在本文前几节中讨论的那样。
ADV7511 IC通过I2C正确编程