最初,我写了一篇关于高速收发器初步调试计划的介绍,并在遇到问题时给出了一些初步调试建议。但我发现它涉及到很多概念。一个接一个的解释会导致文章太长。因此,基于基本概念的介绍Xilinx 7系列的GTX。
需要说明,文本只是初步介绍基本概念,会尽量使用通俗浅显的描述而避免使用专业词汇,也只会描述一些基本的、常用的内容,不能保证全面型。所以从专业角度看,可能部分用词和原厂文档有出入,同时覆盖面不够,请见谅。
这四个是Xilinx 7系列FPGA全系支持GT,GT的意思是Gigabyte Transceiver,G比特收发器通常被称为。Serdes、高速收发器,GT,或使用特定型号(例如(例如)GTX)来称呼。
在7系列中,按支持的最高线速排序,GTP是最低的,GTZ是最高的。GTP被用于A7系列,GTZ被用于少数V7系列。从K7到V7.最常见的是GTX和GTH。GTH最高线速率比GTX稍微高一点。
GTX和GTH的文档都是UG476.从这里可以看出这两个GT基本结构相似。所以掌握一个,另一个基本熟悉。
UG476文档链接:http://link.zhihu.com/?target=https://www.xilinx.com/support/documenta...
严格说TX应该是Transmitter,表示发送部分。GTX的TX部分结构图如下:

RX的全称是Receiver,结构图如下:
这两张图片将用于后面的内容,可以翻看。
从TX和RX结构图可以看到一个共同点:结构图主体分为两部分,左边是小框图,右边是大框图。
左边小框图的部分是PMA,右边的大框图是PCS。
为便于理解,PMA可简单描述为:
1.串并转换(图中SIPO和PISO);
2.模拟部分;
可以反推出,PCS中间的功能是并行数字电路处理。
理论上说GTX的最小必要单元就是PMA,主要原因是核心模拟部分。PCS理论上可以全部由FPGA实现普通逻辑。当然,它是硬核提供的PCS功能更多,性能更好,使用更方便。
一般称为弹性buffer,基本结构是一个FIFO,常用于处理buffer两边的跨时钟问题。不过其实有更多的用途,比如Clock Correction或者Channel Bonding。
还有一种不需要Elastic Buffer一般称为模式buffer bypass该模是一种先进的应用。感兴趣的童鞋可以参考文档进行研究。
通常说8b10b这也是一种编码方式。GTX PCS一个模块。
作为编码,8b10b平衡电平,防止连续1/0。编码分为正负码和特殊K码。最常用的K码应该是k28.5。8b10b最大的优点是自带错误检测。当出现8b10b当出现错误时,链路质量有问题的概率很大。8b10b最大的缺点是效率相对较低,额外0%,所以常用于低于8G最常见的场景,使用8b10b、同时又高于8G线速似乎是CPRI Rate7,线速率9.8G左右。
作为GTX发送端提供了方便使用的编码接口,接收端提供了方便使用的输出指示,可以直接使用。
另外,GTX还提供了Gearbox。除了8b10b此外,还有许多其他的编码方法,如64b66b,Gearbox为这类编码做准备。
PRBS伪随机序列码,GTX自带了PRBS的生成器(在TX内部)和PRBS接收/检查模块(在RX内部)。ibert基于内置的误码率检查PRBS模块。
从结构图可以看出,PRBS和8b10b没有项目连接的直接关系,因此ibert8没有用于测试b10b编码(没有其他编码)。同时内部的PRBS不支持使用其他代码。所以如果你想GTX外部使用PRBS信号源可以单独完成PRBS生成器和校验模块。Xilinx似乎有相关的参考设计。
ibert是Xilinx提供一个GT辅助调试的IP。
首先要明确的是,这是一个IP。所以ibert有两种用法:
1.直接使用example design独立使用;
2.集成到某个中使用;
ibert最常用的两种用途是:
1.基于PRBS检查模块误码率;
2.基于眼图扫描模块测量近端眼图;
另外,ibert设置方便GTX所有参数。是一个很好的参数测试平台。
通常可以尝试调整几个参数来查看正确的参数GTX误码率/眼图有帮助吗?这些参数是吗?TX部分预加重。接收端的设置是平衡模式。由于平衡原理复杂,大部分是自动调整,没有简单的参数就能看到变化。
7系列FPGA通常按照bank来分,