【FPGA】賽灵思GTH/GTX内核使用------------------1
emmm,发文只是学习笔记,叙述可能并不清楚,也经常出现错误解释,欢迎一起讨论。
-------------------------------------------------------------------------分割线----------
前几天用到的GTH,感觉是一个比较好的高速通信接口,对于速度等级较高的V7系列GTH可以最高达到13.1G 的线速率,另外GTH是一个高速串行接口,所以线速率就是每秒输出的码元个数。类似于SPI,但是和SPI有有很大不同。类似在于都是串行接口,剩下的基本就不同了,GTH这种高速串行接口肯定是差分输入输出的了~。GTH内自带8B/10B编码等一些相似的简单编码功能,我没用到GTH的编码功能只是看datasheet时候看了一下就不多说了。
上面简单介绍GTH功能,打算用GTH产生高速的用户自定义时钟,所以没有对输出数据进行编码,也没有进行接收,只配置了输出功能,所以比较简单。下面介绍一下配置过程。
emmm。。现在还在苦逼的调试数据,需要不断的改参数综合下载测试,没办法截GTH的导向图,
---------------------------------额,昨天实验室晚上比较吵,中午抽点时间把GTH简单说一下,以后在仔细说------------
今天搬得实验室,换了一个自认为还不错的位置,GTH前天就想写一直断断续续,这个内核比较复杂,我目前只用到发送模式,所以接受模式就可能说的不是很细。额,对了,包括前几篇,内核都是ISE的,准备抽时间搞一下vivado,毕竟vivado才是新的主流。
这个是第一页,第一页的第一个下拉框我就有点懵,但是这应该是GTH支持的几种协议方案,比如XAUI、srio等等,好多,感觉有点hold 不住这个GTH了,
对于下面的line rate 就是GTH发送的时候码元速率,也就是一秒钟可以输出多少个0或1,然后reference clock就是硬翻过来的参考时钟,这个说一下,在使用GTH的时候,我调用的是.v文件调用的,中间发现有个中间时钟,很多地方可以用到,很方便,就是在后面会提到码元宽度,中间时钟在程序中就是gt0_txusrclk_i,这个时钟频率为GTH码元速率/GTH码元宽度(补充,这里的码元宽度指的是内部马原宽度),而这个时钟也就是GTH的输入时钟更新时钟,在数据同步的时候很方便。然后有TX off和RX off 这两个选项就是旁路发送端和旁路接收端。我用的是旁路接收端。
下面的PLL selection为选择该通道的GTH 的时钟的PLL,印象中是Quall PLL倍频的时钟会快一点,channel PLL会慢一点,GTH是分块的,一块四路GTH,每路GTH都有自己的channel PLL,然后每块有一个Quad PLL。默认选的是channel PLL,对于时钟质量要求比较高的通路可以考虑使用QUAD pll。然后如果想用多路GTH 可以鼠标单击相应的GTH块,然后在右边use gth xxx就可以把该路GTH选上。emmm下一个就是TX/RX clock source,其实我一般用都是使用默认的本GTH块的时钟。最下面选项advanced clocking option datasheet说的是留出预留接口,可以动态配置GTH时钟。
这页的最上面是码元宽度和编解码,其中编解码和内部码元宽度是有关系的,三者之间关系是:
如果encoding选none则外部码元宽度和内部马原宽度可以一样,也可以是外部马原宽度的二分之一,如果选择编码的话会根据外部码元宽度编码之后的长度和内部马原宽度是相同或者二分之一。TX和RX是一样的。
既然说到编码,不知道的可以参考http://blog.sina.com.cn/s/blog_3e28c8a50100bq2b.html,这篇博文说明了8/10B编码。encoding optional ports就是和编码有关的信息。建议还是再看看编码,实际应用很广泛。
下面的同步和时钟选项就是TXbuffer和RXbuffer,还有就是下面的TXUSRCLK就是发送时钟的生成来源,目测一般情况下这个时钟都是要同步数据的,根绝不同的时钟源,可以减少跨时钟域的现象(也就是我之前说的那个时钟频率为GTH码元速率/GTH码元宽度)。
下面那个对勾选项就是是否制定TXOUTCLK的时钟源是TXPLLREFCLK,RX也是这个情况,如果不选,则GTH向导会自动制定时钟源给TXOUTCLK,这部分作用不是很清楚用来干嘛,根据上面的时钟源选项,(YY这个选项是用来保证传输质量的,如果接收端在本地,将发送时钟的时钟源和接收时钟的时钟源设为相同时钟树上的,可以保证FIFO不溢出或者空,纯粹YY,数据手册看的时候不仔细,也是好久之前看的了,记不清这部分为啥)
option ports是一些可选端口,简单明了,我就不找来datasheet翻译了。emmm,其实我之前用的时候那个也没选,没用到,但是刚才又看了一下,就直接贴图吧。hhh
额,这个现更到这里,GTH好慢啊,明天继续。节奏刚开始不能就停下啊!坚持!