Xilinx的K7 GTX 高速收发器普通8b10b转换

xilinx的K7带收发器包含GTX和GTH两种,GTX收发器速度慢点,价格便宜,很多人用这个型号。

GTX收发器主要注意时钟参考,GTX收发器4个收发器有QPLL时钟和CPLL,时钟,QPLL时钟是在6GHz以上应用。CPLL是在0.8到-5G范围使用。但是无论用那个都是要被初始化,意思就是有参考时钟,但是关闭或者打开状态。

高速收发器的BANK参考时钟是必须通过IBUG-GTE2进行buf缓冲后给CPLL或者QPLL,xilinx还是喜欢老套模式,在细节上,始终忘不了自己原型语句。刚入门的FPGA,被XILINX的 IBUFD和IBUG给活活折磨死一两月,哈哈。相比来说,altera就隐藏了很多细节考虑,缓冲是自动的。


上图中,比较难理解是pll是的选择,是cpll和qpll以及 tx clock source的来源q0,q1一类。refclk0和refclk1是硬件引脚的输入差分时钟引脚。q0和q1这个跟硬件设计无关的设计,是从qpll参考buf后输出的时钟给这些收发器的信号源,瞎选都不会出现问题。


编码和时钟,external是代表跟逻辑设计的相关连接引脚,internal data 是收发器pma一端。所以8b10b肯定是一端16,另外一端是20。(两个byte模式)

DRP,这个英文缩写,其实就是动态端口配置的时钟,一般就是单独时钟,在配置收发器,独立存在的时钟。

RX和TX的参考时钟都可以随便选择。如果要使用loopback就得考虑这个奇葩的参考输入源。


逗号,分隔号表达式,选择k28.5内容,mask是值有效bit选择。rxbyteisalign 这个信号是判断8b10b数据是正确检测到,并且已经锁定信号,这个是必须要的。旁边的rxbyterealign是表示重新要对齐的型号,有人用这个做同步型号复位也是可以的。


这一页只选择loopback一项内部循环测试,关键loopback是用三位bit表达,具体细节看文档需求,loopback需要特定的时钟参考支持,否则永远得不到正确的数据。

ip 生成后,会有一个support目录,一般代码直接复制support的目录到自己代码下,support已经做了很多初始化和pll的buf一类的工作。

文章转载自:加班猫的博客