Virtex6 GTX设计总结:预加重、均衡、输出振幅的值
1.Virtex6 GTX Transceiver简介
在Xilinx的Virtex6 FPGA中,GTX作为一种低功耗的吉比特收发器,配置灵活,功能强大,并与FPGA内部的其他逻辑资源紧密联系,可用于实现多种高速接口(如XAUI、PCIE等)。V6 系列的FPGA中,GTX工作带宽范围是600 Mb/s到6.6 Gb/s,支持收发双向,且收发双向独立。GTX接收和发送方向均由PMA和PCS两部分组成,PCS提供丰富的物理编码层特性,如8b/10b编码、时钟校准等功能;PMA部分为模拟电路,提供高性能的串行接口特性,如预加重、均衡等功能。GTX同时还提供动态重配置接口,用于动态的修改GTX的配置。
2.GTX时钟与布局
在Virtix6 FPGA中,GTX是以Quad为单位组织的,每个Quad包含4个GTX和2对差分时钟输入。当整个芯片多个GTX被使用时,需要合理的分布GTX与时钟输入。从一个Quad输入的时钟往上只能给相邻的一个Quad提供参考时钟,往下也只能给相邻的一个Quad提供参考时钟输入,最多只能驱动三个Quad,当整个芯片多个GTX使用到同样的参考时钟输入时,合理的分布时钟输入可以节省需要的时钟数量,也可以为时钟的提供冗余设计。
因此,基本的原则是同一个物理接口的几个GTX放在一起,由同一个参考时钟作为时钟输入;不同物理接口的GTX如果在同一个参考时钟的驱动覆盖范围内,可以采用同一个参考时钟输入。有条件的情况下,可以做时钟备份;当一个时钟可以覆盖更多个GTX的时候,考虑到时钟驱动能力的不确定性,为留有更多余量,没必要使用到极限(一个时钟驱动12个GTX)。另外在V5的GTP中,关于多个GTP共用同一个参考时钟输入,要求在这个输入时钟的时钟链上,每一个GTP都被使用(即使不需要,也要例化),不允许共用同一个参考时钟的两个GTP中间有一个没有使用的GTP。
3.预加重和均衡
当GTX收发器出现信号质量不佳、数据丢包、传输误码等的情形时,为提高信号质量,可以调整GTX的预加重、均衡、输出振幅的值,以及调整采样点的位置,来优化GTX通道的通信质量。在高速串行接口上,高频分量衰减比低频分量更严重,导致信号失真。因此,在数据发送方向可以调整预加重值和输出振幅来提高信号质量。预加重用于增加信号中高频分量的强度,预加重的值由参数TXPREEMPHASIS[3:0]来设定。调整振幅用于增加信号的整体强度,振幅强度由参数TXDIFFCTRL[3:0]来设定。在数据接收方向可以调整均衡的值,还可以调整采样点在采样窗中的位置。均衡用于补偿接收信号中的高频分量,使接收到的信号恢复原状,均衡值由参数RXEQMIX[2:0]。采样点设置可以选择采样窗的眼中,使采样更稳定。以上参数的取值以及各个值的意义,请参见《Virtex-6 FPGA GTX Transceivers User Guide》(UG336)。
4.GTX的调试手段
Virtex6 GTX提供了四种不同的环回,分别是近端PCS环回、近端PMA环回、远端PCS环回、远端PMA环回,可用于定位问题出现在GTX的哪个部分。同时,通过观察GTX输出的PLL时钟锁定信号,可以分析问题是否和时钟相关。Xilinx提供了一系列的GTX Transceiver调试手段和工具,最有用的就是使用Chipscope进行IBERT比特流误码率测试(即PRBS,伪随机二进制序列误码率测试)。