• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

    基于FPGA和DVI视频接收器设计

    放大字体  缩小字体 发布日期:2021-11-12 10:41:22    浏览次数:34    评论:0
    导读

    摘 要:给出了一个符合DVI1.0规范的基于FPGA的视频接收器的实现方法,该方法利用FPGA内置的PLL和IODELAY模块实现时钟恢复和相位调整,可节约数字时钟管理模块(DCM);利用FPGA内置的ISERDES和DDR实现串/并转换,并用逻辑来实现字对齐,利用FIFO来实现通道对齐;最后经过解码,输出视频信号。与采用专用视频接口接收芯片相比,其

    摘 要:给出了一个符合DVI1.0规范的基于FPGA的视频接收器的实现方法,该方法利用FPGA内置的PLL和IODELAY模块实现时钟恢复和相位调整,可节约数字时钟管理模块(DCM);利用FPGA内置的ISERDES和DDR实现串/并转换,并用逻辑来实现字对齐,利用FIFO来实现通道对齐;最后经过解码,输出视频信号。与采用专用视频接口接收芯片相比,其充分利用FPGA自身的资源,提高了系统集成度,减少了资源消耗。

    关键词:数字视频接口;FPGA;延时单元

    DVI(Digital Video Interface)接口[1-3]是由数字显示工作组在1999年制定的,利用最小变换差分信号TMDS作为基本电气链接信号。图像源生成的3路红、绿、蓝信号和控制信号在时钟的作用下由DVI发送器进行编码并串行化后,通过TMDS通道发送给DVI接收器;DVI接收器对其进行串/并转换、通道对齐、解码等一系列处理后发送给显示设备,如图1所示。DVI接口传送的是数字信号,因此可以减少模/数转换的成本,节约时间,速度更快,加之它与HDMI在电气特性上完全兼容,因此升级更容易。DVI链路结构如图1所示。

    DVI在高速串行远距离传输后进行接收,常规做法是用接收芯片与FPGA相结合来进行接收,但在用FPGA进行视频信号处理的场合无疑会增加系统功耗和成本。因此,提出一种充分利用FPGA自身资源来实现DVI接收的方法,即采用内置TMDS I/O电气接口的FPGA芯片而无需外接专用芯片来实现TMDS连接,加之FPGA的可编程性,可使用户快速实现设计,从而缩短设计周期。

    图1 DVI链路结构

    DVI的单TMDS只提供24 bit色深,当用户要求色深超过24 bit时,并且系统已经确认显卡和显示器都支持双链路TMDS,此时系统会启动双TMDS链路,链路0(数据通道 1~3)传输 24 bit信息,其他颜色信息由链路 1(数据通道4~6)传输。当用户的分辨率和刷新率要求超出单TMDS链路的传输能力时 (单链路的最高像素传输频率为165 MHz),系统会启动链路1,并定义显示器上每一行的第一个像素为1,奇数像素。链路0用来传输奇数像素信息,链路1用来传输偶数像素信息。由于TMDS链路共用一条时钟回路,所以双链路工作时,链路的时钟频率为像素数据带宽的一半。

    DVI编码器在时钟驱动下,利用TMDS编码方式对8 bit像素信号和2 bit控制信号分别进行 8 bit转10 bit和2 bit转10 bit编码,最低有效位先送出。这种编码方式充分体现了TMDS的两大优势,即:变换次数最小化和直流均衡作用。

    1 接收器设计

    1.1 系统架构

    DVI接收器的系统结构包括电平转换、时钟恢复、相位调整、串/并转化、字对齐、通道对齐、解码等几部分组成,由TMDS通道传输过来的串行信号最终被转化成3路8 bit的像素信号和2 bit的控制信号,如图2所示。

    图2 测试系统硬件总体结构

    1.2 时钟恢复和相位调整

    时钟与同步是DVI接收器设计中非常重要的一步,以DVI信号提供的像素时钟为参考时钟,在TMDS通道上传输的串行数据的时钟为参考时钟的10倍,在接收端采样时要用倍频后的速率进行采样。文中这几个时钟信号由PLL电路产生,采用DDR[4]的方式采样数据,可实现两倍于以往的串行数据传输速率,因此只需将参考时钟5倍频即可,这样可降低器件成本。

    DVI信号在经过长距离传输后,数据与采样时钟的相位不确定性很大,有较大的相位偏移,对正确采样有很大的影响,因此需要进行相位调整[5]。利用FPGA IO接口模块内置的IODELAY[4]模块,在算法上利用状态机动态调整串行数据的延时来获取最佳的数据采样时刻。由于之前已可用DCM来实现相位调整,IODELAY模块与DCM模块相比较,其缺少两个输出,分别为DCM的psdone和DO[0],因此给IODELAY模块模拟两个输出psdone和DO[0],在调用IODELAY模块的代码中依照它们在DCM中的时序来编写代码,完成在IODELAY中相同的功能。其中psdone相当于DCM模块中的psdone,表示一级调整的完成;DO[0]相当于DCM中的DO[0],表示调整级数超过63级时溢出,用这两个输出送到相位调整算法的状态机上来实现动态调整。由于通过TMDS通道传输的视频数据是随机的,但4个控制字是周期发送的,因此可以用来检测时钟相对于数据的位置。如果收到4个控制字之一,就认为数据有效。如图3所示,串行数据的两个采样窗口之间是抖动区域,抖动区域描述了时钟和数据在传输边沿的到达时间不确定性,有效采样的部分称作窗。为保证有效采样,采样时钟必须调整到窗的中心。

    图3 采样时钟相位调整图

    相位调整算法如下:

    (1)如果时钟的初始位置在 S2处,则增加 IODELAY的相位偏移值至T1并记录下来,再增加相位偏移值至T2并记录下来,(T2-T1)/2即为最佳的采样时刻。

    (2)如果时钟的初始位置在 S1处,则增加相位偏移至S2处,即从下一个抖动区开始,同步骤(1)分别增加相位偏移至T1、T2记录,则(T2-T1)/2为最佳的采样时刻。

    相位调整亦可通过DCM模块来实现,不需要额外模拟输出信号。与通过DCM模块来实现相位调整不同的是,IODELAY实现相位调整时是数据在移动,而DCM则是时钟在动。利用IODELAY可以节约FPGA内的DCM和BUFG资源,但需要额外提供200 MHz的工作时钟,且IODELAY模块的相位调节步长和幅度是固定的,对于较低频率的DVI数据,可能无法完成采样窗口扫描。

    1.3 数据串/并转换

    利用FPGAIO接口模块内的ISERDES[5]完成串/并转换,与用一系列寄存器完成串/并转换相比,避免了时序混乱且节约资源。要实现 1:10串/并转换,需要将两个ISERDES串接起来,即将一个设置为主ISERDES,一个设置为从ISERDES,然后将主ISERDES的输出SHIFTOUT1、SHIFTOUT2连 接 到 从 ISERDES的 SHIFTIN1、SHIFTIN2上,如图4所示。

    串/并转换后还需进行字对齐,ISERDES本身的BITSLIP可完成字对齐,但速度较慢,所以利用多路选择器逻辑来完成,如图5所示。其核心思想依然是靠检测控制字将经过串/并转换后的两次原始10 bit数据 rawword[9:0]并接组成 20 bit rawwords[19:0],然后依次检测 rawwords[9:0]、rawwowds[10:1]、 … rawwords[18:9]、rawwords[19:10]是否与控制字相等,若检测到相等,则必为rawwords[9:0]、rawwowds[10:1]、…rawwords[18:9]、rawwords[19:10]之 一 ,之后即可通过多路选择器选出具有正确高低字节的数据输出。

    图4 串并转换图

    图5 字对齐检测

    1.4 通道对齐

    每个通道会收到一个来自于相位调整状态机的表示字对齐后的数据是否为有效的信号,如果3个通道都有效,则通道对齐模块内的FIFO缓存器开始传送数据,不断地写入和读出。FIFO是一个16 B深度的分布式RAM资源,当一个通道的FIFO输出检测到控制字时,则该通道的读出数据流被延迟,仅当另外两个通道检测到控制字时才恢复,这样可消除通道延迟。

    1.5 DVI解码

    在经过通道对齐后,通过DVI解码规则可解出8 bit数据信号和 2 bit控制信号,解码规则如下:DE=0(消隐期)解出2 bit的控制信号,DE=1解出8 bit的像素信号。

    2 仿真结果

    图6 仿真结果

    本设计在modelsim6.5版本上进行仿真[6],功能仿真如图 6所示。用 H264E_VDATA文件作为 Y、U、V源文件,用它产生 R、G、B信号,经过发送端到达接收端时,接收端的输入信号为图中的TMDS差分信号blue_p、blue_n、green_p、green_n、red_p、red_n 和 时 钟 tmdsclk_p、tmdsclk_n。 输出信号为 3路 8位的 R、G、B信号blue_out、green_out、red_out和一路的时钟恢复信号 pixel_clk及控制信号 hsync、vsync、de。

    此设计在Xilinx公司的Virtex5-330T FPGA上得到验证。资源利用情况如表1所示。受限于FPGA内PLL模块的最高输出主频450MHz,所以主时钟工作频率为90 MHz,即TMDS串行输入数据的理论最高速率为900 Mb/s。

    表1 FPGA资源利用率

    实际测试使用PC机显卡输出的DVI信号源,DVI传输线长 1 m,点频 74.5 MHz,视频分辨率 1 280×720。接入FPGA后DVI信号解码正确,输出的并行视频数据接入FPGA内的视频处理模块后,可采集得到正确的动态视频画面,且画面清晰无噪点,证明了文中方法的可行性。

    本文讨论了一种符合DVI1.0规范的、基于FPGA的DVI接收器设计与实现方法。经验证可得,此方法可用于DVI视频的接收解码,尤其是在利用FPGA进行DVI解码设计时,可减少资源消耗,提高集成度,充分利用FPGA自身资源实现。


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://2024.dingdx.com/news/show.php?itemid=3285 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号