适合印象传输的专用型数字化接口,适合映像传输的专用型数字化接口

  FPGA内嵌收发器相当于以太网中的PHY芯片,但更灵敏更迅捷,线速率也在乘胜FPGA芯片的升华进步。本文对7多元FPGA内部高速收发器GTP
IP核的计划和动用做些简单的下结论,以备后续回想重用。本文是自己在读ug482 pg168 合法文档和局部互联网资源后的一部分个人见解,希望对有要求的恋人有所辅助。大家来逐页分析下IP核配置开始中内容:

  HDMI是(High Definition Multimedia
Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化摄像/音频接口技术,适合映像传输的专用型数字化接口,可同时传送音频和影象信号,最高数额传输速度为48Gbps(2.1版),HDMI相较于VGA接口,它传输的音信量大,色彩度高,传输速度快等显著优点。

  HDMI是(High Definition Multimedia
Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术,适合映像传输的专用型数字化接口,可同时传送音频和印象信号,最高数额传输速度为48Gbps(2.1版),HDMI相较于VGA接口,它传输的信息量大,色彩度高,传输速度快等鲜明优点。

1 GT Selection:

  一般的话驱动HDMI有三种方法,有些开发板是用一颗专用的HDMI芯片ADV7511做HDMI的出口使用,ADV7511
是一款连忙高清晰度多媒体接口(High Definition Multimedia Interface
HDMI)发送器。 可以处理的数据速率高达165MHz(1080p @60H, UXGA @60Hz),
输出数据速率高达 225MHz。

  一般的话驱动HDMI有二种格局,有些开发板是用一颗专用的HDMI芯片ADV7511做HDMI的出口使用,ADV7511
是一款飞快高清晰度多媒体接口(High Definition Multimedia Interface
HDMI)发送器。 能够处理的数额速率高达165MHz(1080p @60H, UXGA @60Hz),
输出数据速率高达 225MHz。

图片 1

 图片 2

 图片 3

  我用的是Atrix-7连串FPGA芯片,只好动用速率较低的GTP
收发器,所以类型不可以取舍。GTP收发器在自我那一个芯片中最高线速率可达6.6Gbps,具体最大数值会按照器件速度等级和打包有所差距,读者可自动查阅Data
Sheet。很多Xilinx IP核都有Shared
Logic,我精通是有些引用的有些,当四个地点须要用到那几个资源时,将其放置在example
design中得以节省硬件资源。

  Digilent官方出品的ZYBO开发板,下边一个双向的HDMI端口,直接连接在PL的引脚上,所以这一次博主分享的工程是用ZYBO
PL端的IO口模拟HDMI接口,首先先来讲一下HDMI的彰显原理紧如若TMDS,该部分摘自博客:http://blog.sina.com.cn/s/blog\_679686370100vgg1.html

  Digilent官方出品的ZYBO开发板,上边一个双向的HDMI端口,直接连接在PL的引脚上,所以这一次博主分享的工程是用ZYBO
PL端的IO口模拟HDMI接口,首先先来讲一下HDMI的呈现原理重如果TMDS,该部分摘自博客:http://blog.sina.com.cn/s/blog\_679686370100vgg1.html

2 Line Rate,RefClk Selection

  HDMI 选用和 DVI 相同癿传输规律——TMDS(Transition Minimized
Differential signal),最小化传输差分信号。

  HDMI 选用和 DVI 相同癿传输规律——TMDS(Transition Minimized
Differential signal),最小化传输差分信号。

图片 4

  TMDS 传输连串分为多个部分:发送端和接收端。 TMDS 发送端收到HDMI
接口传来的象征 RGB 信号的24 位并行数据(TMDS 对每个像素的 RGB
三原色分别按 8bit 编码,即 R信号有 8 位,G 信号有 8 位,B 信号有 8
位),然后对那么些数据进行编码和并/串转换,再将代表 3 个 RGB
信号的多少分别分配到独门的传导通道发送出去。接收端接收来自发送端的串行信号,对其进展解码和串/并更换,然后发送到屏幕的控制端。与此同时也收到时钟信号,以促成共同。

  TMDS 传输种类分为三个部分:发送端和接收端。 TMDS 发送端收到HDMI
接口传来的意味 RGB 信号的24 位并行数据(TMDS 对每个像素的 RGB
三原色分别按 8bit 编码,即 R信号有 8 位,G 信号有 8 位,B 信号有 8
位),然后对这一个数量举行编码和并/串转换,再将意味 3 个 RGB
信号的数目分别分配到独门的传导通道发送出去。接收端接收来自发送端的串行信号,对其展开解码和串/并更换,然后发送到屏幕的控制端。与此同时也接受时钟信号,以贯彻同台。

  这一页相比主要。高速收发器援助三种标准协议,可以拔取一个标准协议,那样继续的选项均已布署好了,然后根据自己的急需变动。此处拔取Aurora
8b10b single lane
4byte。收发器发送和吸纳通道互相独立,可以接纳不一致的线速率和编码格式,此处均接纳一个科普的较低速率3.125Gbps用于功用验证,参考时钟为125M。注意参考时钟为收发器输入时钟,频率必须与开发板上为GTP提供时钟的晶振一致。官方文档中关于外部参考时钟使用示意图如下:

TMDS的原理

TMDS的原理

图片 5

       每一个 TMDS 链路都不外乎 3 个传输 RGB 信号的数据通道和 1
个传输时钟信号的大路。每一个数据通道都通过编码算法,将 8
位的视、音频数据转换成最小化传输、直流平衡的 10
位数据。那使得数据的传输和復苏尤其可依赖。最小化传输差分信号是经过异或及异或非等逡、逻辑算法将原始
8 位信号数据转换成 10 位,前 8 为数据由原始信号经运算后获取,第 9
位提示运算的方法,第 10 位用来对号入座直流平衡。

       每一个 TMDS 链路都囊括 3 个传输 RGB 信号的数据通道和 1
个传输时钟信号的坦途。每一个数据通道都通过编码算法,将 8
位的视、音频数据转换成最小化传输、直流平衡的 10
位数据。这使得数据的传导和回复尤其可相信。最小化传输差分信号是因此异或及异或非等逡、逻辑算法将原始
8 位信号数据转换成 10 位,前 8 为数据由原本信号经运算后获取,第 9
位提醒运算的措施,第 10 位用来对号入座直流平衡。

  GTP有多少个参考时钟输入端口,经差分-单端转换后通过八个PLL暴发收发器发送和接到时钟。若TX和RX线速率一致采纳同一个PLL暴发时钟,否则须要采纳七个例外的PLL。开发板中差分晶振连接GTPREFCLK0,且收发速率相同,故PLL
Selection TX和RX均选取PLL0,TX Clock
Source选拔REFCLK0。那里我动用到五个收发器,依据开发板原理图和数量手册选拔GTP_X0Y4和GTP_X0Y5.最后使能收发器内部的PRBS生成器和检测器,便于测试了链路品质。

  一般的话,HDMI
传输癿编码格式中要包括视频数据、控制数据和数据包(数据包中包吨音频数据和叠加音信数量,例如纠错码等)。
TMDS 每个通道在传输时要含有一个 2bit 的控制数据、 8bit 的摄像数据或者
4bit 的数据包即可。在 HDMI
信息传输进度中,可以分为八个等级:视频数据传输周期、控制数据传输周期和数据岛传输周期,分别对应上述的三种数据类型。

  一般的话,HDMI
传输癿编码格式中要含有摄像数据、控制数据和数据包(数据包中包吨音频数据和附加音信数量,例如纠错码等)。
TMDS 每个通道在传输时要含有一个 2bit 的控制数据、 8bit 的视频数据或者
4bit 的数据包即可。在 HDMI
新闻传输进度中,可以分成两个等级:视频数据传输周期、控制数据传输周期和数据岛传输周期,分别对应上述的二种数据类型。

3 Encoding and Clocking 

下边介绍 TMDS 中选用的技术:

上面介绍 TMDS 中利用的技巧:

图片 6

  1. 传输最小化
  1. 传输最小化

  GTP收发器内部处理带宽只有2byte,而GTX等速率更高的收发器是4byte,此处外部数据接口位宽选拔32bit担保前期收发器使用一些的经历也适用于GTX等收发器。编码格局采样8B/10B编码,那是个相比首要的概念。这一编码格局最重点的目标是“直流平衡”,即依据特定的编码表完成多少传输进度中比特“0”和比特“1”的数据基本一致,且收缩连0和连1的情状。编码后的数码流具有较多的跳变,有助于接收端时钟数据復苏(CDR)。DRP/System
Clock
Frequency是动态重配置或系统办事时钟,通过DRP可以让设计者按照所选线速率和概念的商谈实时调整收发器参数,本人没有动用,新手就不用碰了。系统时钟选用100MHz,可由别的部PLL
IP核暴发。

       8 位数据经过编码和直流平衡获得 10
位最小化数据,那如同增添了冗余位,对传输链路的带宽需求更高,但实在,通过这种算法得到的
10
位数据在更长的同轴电缆中传输的可信性增强了。下图是一个事例,表达对一个 8
位的并行 RED 数据编码、并/串转换。

       8 位数据通过编码和直流平衡拿到 10
位最小化数据,那类似增加了冗余位,对传输链路的带宽须求更高,但骨子里,通过那种算法获得的
10
位数据在更长的同轴电缆中传输的可信性增强了。下图是一个例子,表达对一个 8
位的互动 RED 数据编码、并/串转换。

  第一个首要的一部分就是Synchronization
and Clocking。查看ug482相关部分:

图片 7 

图片 8 

图片 9

  第一步:将 8 位并行 RED 数据发送到 TMDS 収送端。
  第二步:并/串转换.
  第三步:举行最小化传输处理,加上第 9 位,即编码进度。第 9
位数据称为编码位。

  第一步:将 8 位并行 RED 数据发送到 TMDS 収送端。
  第二步:并/串转换.
  第三步:举行最小化传输处理,加上第 9 位,即编码进度。第 9
位数据称为编码位。

  发送通道有四个互相时钟域:XCLK和TXUSRCLK。根据文档表达要保险数据正确传输,必须利用TX
Buffer或者TX Phase Alignment。缺省状态下行使TX
Buffer较为平稳且不难,但比较后者延迟较高。不难利用中采纳Buffer即可,由此本例中TX
Buffer和RX Buffer均选中。

  2. 直流平衡

  2. 直流平衡

  TXUSERCLK的时钟源只好是由参考时钟驱动的TXOUTCLK,而RXUSERCLK的钟表源选用按照具体景况而定:

  直流平衡(DC-balanced)就是指在编码进程中保险信道中直流偏移为零。方法是在原来的
9 位数据癿后边加上第 10
位数据,返样,传输的数额趋于直流平衡,使信号对传输线的电磁苦恼收缩,进步信号传输的可看重性。

  直流平衡(DC-balanced)就是指在编码进程中确保信道中直流偏移为零。方法是在原本的
9 位数据癿后边加上第 10
位数据,返样,传输的数额趋于直流平衡,使信号对传输线的电磁苦恼减弱,进步信号传输的可依赖性。

图片 10

  3. 差分信号

  3. 差分信号

  同理可得就是,当使用同一个晶振作为发送器和接收器参考时钟源时,TXOUTCLK可以驱动RXUSRCLK;当使用不相同晶振时,若使能clock
correction才方可用TXOUTCLK驱动RXUSRCLK,否则要利用RXOUTCLK驱动。那里保持默许均使用TXOUTCLK驱动TXUSRCLK和RXUSRCLK。

  TMDS差分传动技术是一种接纳2个引脚间电压差来传送信号的技术。传输数据的数值(“0”或者“1”)由两脚间电压正负极性和大小决定。即,拔取2
根线来传输信号,一根线上传输原来的信号,另一根线上传输与原先信号相反的信号。这样接收端就可以通过让一根线上的信号减去另一根线上的信号的方法来遮掩电磁苦恼,从而赢得正确的信号。

  TMDS差分传动技术是一种选择2个引脚间电压差来传送信号的技巧。传输数据的数值(“0”或者“1”)由两脚间电压正负极性和大小决定。即,拔取2
根线来传输信号,一根线上传输原来的信号,另一根线上传输与原本信号相反的信号。那样接收端就足以由此让一根线上的信号减去另一根线上的信号的点子来遮掩电磁苦恼,从而赢得不错的信号。

 4 Comma Alignment and
Equalization 

 图片 11

 图片 12

图片 13

  此外,还有一个出示数据通道(DDC),是用来读取表示接收端屏幕的清晰度等浮现能力的增加呈现标识数据(EDID)的信号线。搭载
HDCP(High-bandwidth Digital Content
Protection,高带宽数字内容体贴技巧)的发送、接收装置之间也选取 DDC
线举办密码键的表明。

  其它,还有一个出示数据通道(DDC),是用于读取表示接收端屏幕的清晰度等显得力量的恢宏展现标识数据(EDID)的信号线。搭载
HDCP(High-bandwidth Digital Content
Protection,高带宽数字内容敬服技巧)的出殡、接收设备之间也采用 DDC
线举行密码键的认证。

  那里要引入comma码的概念。8B/10B编码表中有12个控制字符,以大写字母K发轫,用于一些控制功效。K码中的comma码用于接收端时钟校准和数目对齐,K28.5(对应用户数量为16’hbc)最为常见。因为数量在链路中以串行形式传输,所以接收端必须对其进展串并转换。在这一进度中,由于不能直接找到串行比特流中的每个数据的万丈位或最低位比特,即便已知并行数据位宽也不可以顺遂转换成与发送端一致的相互数据。看下user
guide中示意图你就领悟了:

      
接下来是电路设计部分,HDMI驱动部分追寻原始出处应该是迪芝伦官方,该部分代码用VHDL语言描述,为了便于移植,我将该片段代码封装成自定义IP
Core,由上文可见,大家须求发出RGB888三路数据,输入给该模块,然后经过解码、串/并转移,差分输出。还亟需三个时钟输入,一个是眼前突显分辨率的像素时钟,一个是当前来得分辨率的像素时钟的五倍。还有一个行同步信号和场同步信号,那多个信号的暴发办法和VGA是平等的,简而言之就是先暴发VGA的信号,行同步信号、场同步信号RGB888的多寡输入给HDMI驱动模块就可以显示了,大家要修改展现的数量,仍旧只要求修改VGA时序即可。

      
接下来是电路设计部分,HDMI驱动部分追寻原始出处应该是迪芝伦官方,该部分代码用VHDL语言描述,为了便利移植,我将该有的代码封装成自定义IP
Core,由上文可见,我们要求发出RGB888三路数据,输入给该模块,然后经过解码、串/并转换,差分输出。还亟需七个时钟输入,一个是现阶段突显分辨率的像素时钟,一个是如今来得分辨率的像素时钟的五倍。还有一个行同步信号和场同步信号,那七个信号的暴发办法和VGA是同样的,一言以蔽之就是先爆发VGA的信号,行同步信号、场同步信号RGB888的多寡输入给HDMI驱动模块就足以显示了,我们要修改显示的数据,仍然只须求修改VGA时序即可。

图片 14

图片 15

图片 16

 

 
  该工程通过测试,可以达成720p(1280×720)的分辨率显示,1080p(1920×1080)的分辨率没有测试出来,原因我认为可能是官方的zybo的晶振是125Mhz的,那一个时钟很窘迫,直接用Clocking
wizard锁不出来HDMI所急需的规范时钟,如下图。我试过先分频出100Mhz,然后在调用一个IP
Core分频和倍频,可是综合总会报错。所以平素这样举办PLL纵然有误差可是还可以显示出720p的。

 
  该工程通过测试,可以兑现720p(1280×720)的分辨率彰显,1080p(1920×1080)的分辨率没有测试出来,原因我以为说不定是合法的zybo的晶振是125Mhz的,这么些时钟很难堪,直接用Clocking
wizard锁不出去HDMI所急需的确切时钟,如下图。我试过先分频出100Mhz,然后在调用一个IP
Core分频和倍频,可是综合总会报错。所以直接这样举行PLL纵然有误差可是依然得以浮现出720p的。

  下面的RX
Equalization是收发器自带的收受均衡器,用来填补由于大体信道中的高频衰减引起的信号损伤,可以透过DRP动态调整,保持默许。

图片 17

图片 18

5 PCIE,SATA,PRBS

       而且根据迪芝伦的法定手册上讲述,有这么一段,Resolution up to
720p(1280×720) have been
teste。我的英文不是很好,那既然那样说了,没准它还真达不到1080p,可以吗不管了,就暂且认为它最高只能落得720p吧。逃~

       而且根据迪芝伦的合法手册上讲述,有这么一段,Resolution up to
720p(1280×720) have been
teste。我的英文不是很好,那既然这样说了,没准它还真达不到1080p,好啊不管了,就暂且觉得它最高只好达到720p吧。逃~

图片 19

图片 20

图片 21

  这一页的法力就比较高档了,说实话我不会。有必要动用PCIE的朋友可以关心下,那几个纵然相比复杂,但找工作或者很有优势的,很多招聘要求中都有写!此处只把最下边的PRBS相关端口选取上,便于测试用途。

      
打开工程后,须求再行添加HDMI自定义IP的门径,就在工程中,rgb2dvi_v1_2文本夹中。

      
打开工程后,要求再行添加HDMI自定义IP的途径,就在工程中,rgb2dvi_v1_2文本夹中。

6 CB and CC Sequence

图片 22

图片 23

图片 24

  然后在IP Catalog中搜索hdmi_disp就足以获取相应的IP Core了。

  然后在IP Catalog中搜索hdmi_disp就足以拿走相应的IP Core了。

  Xilinx收发器IP核协助通道绑定,将多个收发器通道“绑定”成一个速率更高的传导通道,利用FIFO消除其间的延时不分明。Clock
correction是最终一个珍重的点。先来看看RX通道的布局和弹性缓存概念。

图片 25

图片 26

图片 27

  双击打开那多少个须求定义的参数,已经定义好在IP中了,直接点击OK——Generate生成

  双击打开这七个需求定义的参数,已经定义好在IP中了,间接点击OK——Generate生成

  接收通道中千篇一律有多个时钟域:从CDR復苏出的XCLK和收取通道工作时钟RXUSRCLK。RX通道采用RX
Elastic
Buffer来桥接两时钟域,但由于两岸细微的异样会使缓存变空或溢出。为此引入时钟校勘,在殡葬端周期性发送一些特殊字符,接收端在弹性缓存快满时去除那个字符,快空时复制那个字符从而有限支撑缓存内数据维持动态平衡的情景。

 图片 28

 图片 29

图片 30

  间接可以在如下图所示中找到例化文件,直接实例化即可。

  直接可以在如下图所示中找到例化文件,直接实例化即可。

  本例只利用一个数据通道,此页保持默许配置,不做修改。

图片 31

图片 32

7 Summary

  关于引脚约束,须求说的是,引脚约束必须为TMDS_33电平标准

  关于引脚约束,须要说的是,引脚约束必须为TMDS_33电平标准

图片 33

图片 34

图片 35

  只想说一句:终于甘休了!那是自我见过最劳碌的IP核,没有之一!看下计算页,USRCLK的时钟频率是USRCLK2的2倍,那是因为收发器内部通道数据位宽仅是外部接口位宽的二分之一,因而频率必须叠加一倍才能保险数据来得及处理。可以点OK了。正文对GTP
IP核的布置做了简短分析和小结,仅适用于新手。本人也在攻读中,有不妥之处请在评价中指教。

  最终附上一张720p彩条测试图。

  最终附上一张720p彩条测试图。

图片 36

图片 37

      
最终欢迎关怀一亿人都想要关怀的微信订阅号【开源FPGA】,计算记录自己的就学进程,一个FPGA工程师的养成之路。欢迎插足开源FPGA-交换群-I举行座谈,群号码:677163633。假使你必要本工程的源码,欢迎关心博主微信订阅号【开源FPGA】,在后台回复,开源FPGA,即可获得工程源码哦!

      
末了欢迎关心一亿人都想要关怀的微信订阅号【开源FPGA】,总计记录自己的求学进程,一个FPGA工程师的养成之路。欢迎参预开源FPGA-调换群-I举办探究,群号码:677163633。如若您须要本工程的源码,欢迎眷注博主微信订阅号【开源FPGA】,在后台回复,开源FPGA,即可获取工程源码哦!

图片 38

图片 39

 

 

转发请声明出处:NingHeChuan(宁河川)

转发请表明出处:NingHeChuan(宁河川)

个人微信订阅号:开源FPGA

民用微信订阅号:开源FPGA

借使你想立马收到个人创作的博文推送,可以扫描左边二维码(或者长按识别二维码)关心个人微信订阅号

只要你想及时接受个人创作的博文推送,可以扫描左边二维码(或者长按识别二维码)关怀个人微信订阅号

知乎ID:NingHeChuan

知乎ID:NingHeChuan

微博ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/8353827.html

原稿地址:http://www.cnblogs.com/ninghechuan/p/8353827.html

相关文章