你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

一步步教你如何进行Xilinx SerDes调试

发布者:jackzhang 时间:2013-03-12 17:24:06

赛灵思中国SystemIO专家FAE 杨宁

 

FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。本文将描述SERDES的一般调试方法,便于工程师准确快速定位和解决问题。

1.       硬件检测

硬件检测可以分为原理图/PCB检查和板上硬件检查。这一部分的工作相对简单,但是很多时候问题是由这些看起来很不起眼的地方导致的。

a)         原理图/PCB检查

根据SERDES应用手册要求检查原理图和PCB设计。例如对于Xilinx 7系列GTX/GTH SERDES,可以参考UG476Board Design Guidelines检查原理图和PCB设计。

b)         板上硬件检查

使用示波器/万用表等仪器设备实际测量板上硬件,确认提供给SERDES的工作环境正常。

                         i.              检查电源的电压/精度/纹波/上电顺序是否符合数据手册的要求。例如对于Xilinx 7系列GTX SERDES,需要对照DS182检查。

                       ii.              检查SERDES参考时钟频率/摆幅是否符合数据手册的要求,以及参考时钟的管脚位置是否正确。

                      iii.              物理通道的检查,例如确认AC耦合电容的容值是否正确,光模块是否兼容,焊接是否正常。

2.       使用IBERT

IBERT是一个强有力的调试工具,可以用于调整参数设置和确认系统余量,也可以用于故障现象判断。IBERTCORE generator里产生工程和BIT文件。将BIT文件下载到FPGA后,使用ChipScope Analyzer连接到FPGA上,就会出现IBERTGUI调试界面。


a)         检查PLL是否LOCK,如果没有,需要检查时钟和电源。比如时钟频率是否正确,SERDES是否选择了正确的时钟源。

b)         SERDESTXRX设为相同的数据pattern,例如PRBS-31。设置SERDESNear-end PMA模式。如果这一步不能工作,检查TX/RX极性是否反转;检查TXUSRCLK/TXUSRCLK2/RXUSRCLK/RXUSRCLK2上的时钟频率是否正常。通过这一步保证SERDES内部工作正常。

c)         SERDES设置为Far-end PMAFar-end PCS模式,确认远端设备的SERDES是否收发正常。通过这一步排除和时钟OFFSET相关的问题。

d)         如果这些步骤工作正常,但是误码率很高,有可能是参数设置有问题。需要通过调整TX/RX的参数设置来解决。也可以通过EYE SCAN功能来得到最佳设置和判断系统余量。


3.       通用的调试步骤

通常会使用一定的调试步骤来定位问题,避免重复工作。一开始,一般不进行整个工程的测试,而是基于SERDESWrappers工程,以方便定位问题。一般可以使用CORE generator里的Transceivers Wizard产生的Example Design。在Core generator里产生Transceivers WizardExample Design后,会输出源文件和scripts。利用scripts可以直接产生运行结果。Example Design里的数据产生和检测都是基于BRAM,可以很方便的修改数据。在工程里面,Chipscope VIOs and ILAs必须被加入到工程里面,进行控制和调试分析。

a)         进行Near-end PCS测试。

                         i.              启动SERDES复位(VIO)。

                       ii.              确认复位结束(VIO)

                      iii.              检查SERDES状态信号(VIO)。

                      iv.              使用计数器确认时钟频率(VIO)。

b)         进行Near-end PMA测试。

                         i.              确认CDR工作正常,检测CDR产生的恢复时钟(VIO)。

                       ii.              Comma alignment8B/10B状态检查(ILA)。

c)         正常操作检测

                         i.              确认clock correction电路状态(ILA)。

                       ii.              确认Channel bonding电路状态(ILA)。

                      iii.              链路通讯检查(ILAVIO)。