两个问题。
我有一个Xilinx Spartan 6 FPGA,它只有HDMI输入和输出。是否可以使用某种指南或预先编写的代码开始将图像发送到屏幕?我不知道如何开始,也找不到资源。
其次,我这样做的原因是因为我想使用和修改在带有VGA的Spartan 3E上实现的家伙的Atari 2600代码。甚至可以轻松地调整项目的视频方面吗?
任何帮助,资源或建议,将不胜感激!
两个问题。
我有一个Xilinx Spartan 6 FPGA,它只有HDMI输入和输出。是否可以使用某种指南或预先编写的代码开始将图像发送到屏幕?我不知道如何开始,也找不到资源。
其次,我这样做的原因是因为我想使用和修改在带有VGA的Spartan 3E上实现的家伙的Atari 2600代码。甚至可以轻松地调整项目的视频方面吗?
任何帮助,资源或建议,将不胜感激!
Answers:
Atlys板使用TDMS输入,因此您需要一个HDMI解码器,该解码器接受这些输入并产生VSYNC,HSYNC,DE和DATA。Xilinx在一些应用笔记中详细介绍了DVI编码和解码过程。这些都带有示例代码,需要xilinx登录:
示例代码在verilog中,但是如果愿意,可以将顶层转换为VHDL,这是相对琐碎的练习。
这是摘自第一篇应用笔记的图,显示了接收器的基本前提:
由于Spartan 6具有内置的SERDES硬件,因此可以将它们用作反序列化过程的一部分。有一个同步过程可以恢复时钟并确保所有通道都处于同步状态。最后,应用8b / 10b解码以生成RGB通道数据。
恢复视频信号后,您便可以将这些信号转发到您要执行的任何处理,或转发到编码器,该编码器将再次将其从HDMI端口发送出去。
如果您有TFTMOD显示器,那么将数据转发到显示器就像将DE和DATA信号连接到适当的FPGA引脚一样简单。 TFT板参考手册对于显示的时序信息很有用,尽管我发现解串器的输出时序很好。
您可以将本项目中的UCF文件用于HDMI 约束,如果使用该板,则可以将该项目用于MODTFT约束。
唯一需要注意的是Xilinx示例不处理EDID信息。如果您只是使用开发板来转发数据,则可以直接路由EDID线路,并称之为一天。其他情况可能需要在FPGA上处理EDID数据。基本上只是I2C。该OpenCores的I2C接口是非常稳固,或者在您自己的代码。据我所知,关于EDID 1.3数据格式的Wikipedia表是准确的。
只是为了补充先前的答案所解释的内容:
DVI / HDMI发送器可以是一个很好的起点,因为您可以直接获得一些视频。
如图1所示,通过TMDS链路进行的HDMI / DVI视频传输在逻辑上分为多个阶段:图1:在Spartan-6 FPGA中实现TMDS视频接口的 TMDS发送器设计
TMDS编码器:将来自视频源的像素数据,HDMI辅助/音频数据以及HSYNC和VSYNC转换为三个10位符号流
串行器(10:5齿轮箱和OSERDES2 5:1转换)分两个阶段对所有三个流执行10位并行并行转换,然后将它们发送到差分输出对的三个通道(TMDS缓冲器)。
这两个阶段都需要一个时钟电路来适当地生成(PLL)和分配(BUFPLL,BUFG)时钟信号(具有像素参考时钟的频率及其倍数)。
当然,发送器的核心是编码器模块。您可以从DVI编码器开始,因为它比HDMI编码器简单。HDMI和DVI有很多共同点,包括物理TMDS链接,活动视频编码算法和控制令牌定义。
该应用笔记还提供了2种设计。一个简单但很好的入门方法是“带有可编程视频定时的SMPTE HD彩条生成”。它通过多种屏幕模式发送彩条生成器视频,可以通过滑动开关进行选择。这种设计很有用,因为我们可以使用其他视频源更改彩条生成器,并且仍然能够获得保留原始发送器块的某些视频。
我希望这有帮助!
以下是参考设计的文本,您可以从链接到的电路板页面下载该参考设计:
DSD-0000326 12/13/11此zip文件包含一个EDK演示项目,该项目演示了如何在Genesys板上使用HDMI。它接受HDMI输入,将输入帧缓冲到内存中,然后将缓冲输出到另一个HDMI端口。这是使用PLB总线实现的。 下载
您还可以查看Xilinx spartan 6工业视频处理套件随附的参考设计。 http://www.em.avnet.com/zh-CN/design/drc/Pages/Xilinx-Spartan-6-FPGA-Industrial-Video-Processing-Kit.aspx (单击支持文件链接,需要avnet登录)。
可能还有更多针对不同fpgas的参考设计。
另外,除非您要实施音频或加密,否则hdmi与dvi基本相同。
以下使用miniSpartan6的教程非常详细,值得一看:http: //zerocharactersleft.blogspot.com/2015/04/diy-fpga-based-hdmi-ambient-lighting.html