基于FPGA模块VGA2HDMI

1、模块接口说明

序号名称方向说明
1PXLCLK_Iinputrgb像素时钟输入71.25M
2PXLCLK_5X_Iinputhdmi高速时钟输入71.25Mx5=371.25M
3LOCKED_Iinput外部mmcm时钟锁定
4RST_Ninput复位,低有效
5VGA_RGBinput[23:0]RGB24位数据输入
6VGA_HSinput行同步
7VGA_VSinput场同步
8VGA_DEinput数据有效
9HDMI_CLK_PoutputHDMI高速时钟
10HDMI_CLK_NoutputHDMI高速时钟
11HDMI_D2_PoutputHDMI数据2
12HDMI_D2_NoutputHDMI数据2
13HDMI1_D1_PoutputHDMI数据1
14HDMI1_D1_NoutputHDMI数据1
15HDMI1_D0_PoutputHDMI数据0
15HDMI1_D0_NoutputHDMI数据0

2、模块简述:
将RGB24位数据,转换成hdmi接口数据。通过TMDS模块对数据进行编码,然后将数据R由8bit数据转换成HDMI1_D0接口数据10bit,将数据G由8bit数据转换成HDMI1_D1接口数据10bit,将数据B由G8bit数据转换成HDMI1_D2接口数据10bit。最后每个模块的10bit数据通过OSERDESE2,将并行数据转换成串行数据,通过接口将数据发送出去。
3、TMDS编码规则
TMDS数据通道传送的是一个连续的10bit TMDS字符流,在空期间,传送4个有显著特征的字符,它们直接对应编码器的2个控制信号的4个可能的状态。在数据有效期间,10bit的字符包含8bit的像素数据,编码的字符提供近似的DC平衡,并最少化数据流的跳变次数,对有效像素数据的编码处理可以认为有两个阶段:第一个阶段是依据输入的8bit像素数据产生跳变最少的9bit代码字;第二阶段是产生一个10bit的代码字,最终的TMDS字符,将维持发送字符总体的DC平衡。
编码器在第一个阶段产生的9bit代码字由“8bit” + “1bit”组成,“8bit”反映输入的8bit数据位的跳变,“1bit”表示用来描述跳变的两个方法中哪一个被使用,无论哪种方法,输出的最低位都会与输入的最低位相匹配。用一个建立的初值,输出字的余下7bit的产生是按照顺序将输入的每一位与前一导出的位进行XOR或NOR(XNOR)。使用XOR还是XNOR要看哪个方法使得编码结果包含最少的跳变,代码字的第9位用来表示导出输出代码是使用XOR还是XNOR,这9bit代码字的解码方法很简单,就是相邻位的XOR或XNOR操作。从解码输入到解码器输出最低位不改变。
在有效数据期间,编码器执行使传输的数据流维持近似的DC平衡处理,这是通过选择性地反转第一阶段产生的9bit代码中的8bit数据位来实现的,第10bit被加到代码字上,表示是否进行了反转处理,编码器是基于跟踪发送流中1和0个数的不一致以及当前代码字1和0的数目来确定什么时候反转下一个TMDS字符。如果太多的1被发送,且输入包含的1多于0,则代码字反转,这个发送端的动态编码决定在接收端可以很简单地解码出来,方法是以TMDS字符的第10bit决定是否对输入代码进行反转。
4、数据串行化
通过调用OSERDESE2,将并行数据串行化。
5、测试图像
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值