本文转载自:十年老鸟的CSDN博客
注:本文由作者授权转发,如需转载请联系作者本人
IP设置
IBERT ip的设置非常简单,只要设置好serdes管脚对应的信息即可,生成的example直接是可以生成bit,上板调试的。下面以zynq 7035的GTX为例
当然有几个地方要注意下
(1)图一中的DataWidth 可选32/40。这个参数影响图三的RXOUTCLK的Frequency数值。
Frequency * DataWidth = LineRate
(2) RXOUTCLK 主要是用作时钟的同步,例如反馈给本地晶振。不一定需要用到
(3)如果是接光模块,则光模块的管脚必须设置正确,如果不设置,有可能输出不出来
(4)最好在有最小系统的工程下,直接把ibert example 工程中的内容 以及里面的约束直接拷贝到那个最小系统的工程下,这样,既可以支持打指令,又可以支持ibert。有时候需要对外围芯片进行配置之后才能开始测眼图,例如外围的JESD芯片,通过指令控制其工作。
设置好后,即可进行上板测试。
测试界面
通过JTAG进行连接后。按照下图所示进行配置,配置好码型,极性等。
每次对任意参数进行修改后,记得TX_reset/ RX_reset/Ibert_reset 分别按一下,消除因为参数修改带来的可能不稳定的现象
主要设置的参量为
接收端一个参量 RXTERM
发送端三个参量 TXDIFFSWING 、TXPOST、TXPRE
其他参量: DFE Enabled (不要勾选),TX和RX极性反相都勾选(如果是xilinx与intel对测)
Xilinx FPGA Sweep 设置,根据xilinx FAE的说法,水平垂直精细度设置为2比较好。BER设置为10-12次方。
Xilinx FPGA Sweep RXTERM设置
Xilinx FPGA Sweep TXDIFFSWING设置
Xilinx FPGA Sweep TXPOST设置
Xilinx FPGA Sweep TXPRE设置
总结的测试步骤
1、如果要测试设备作为主设备(发送串化数据给从设备做同步)
(1)接收/发射通过光纤环回,先在发送参量为默认的情况下,扫描一下接收参数,从中选择一个最佳参数。
(2)然后固定好这个最佳接收参数,扫描三个发射参量,得到一组最优发射参量值。
(3)固定好这组最优发射值参数,重新在扫描一次接收参数,与之前设置的接收参数对比是否有变化,一般来说不会有变化。
(4)这样就自己对自己做参考,生成了一组接收发射的最优参数了。
2、如果要测试设备作为从设备(先接收主设备串化数据后,同步主设备时钟在发送串化数据回主设备或者下一级设备)
首先我们认为主设备的发射已经调好了。
(1) 用光纤对主从设备进行连接,扫描一下接收参数,从中选择一个最佳参数。
(2) 从设备两个光口通过光纤环回,扫描一下接收参数,从中选择一个最佳发射参数。
(3) 如果主设备可以进行配合扫描,那么主设备对接收端进行扫描,确认下当前接收参数和之前调好的参数的眼图的差异,如果差异不大不需要进行调整。
眼图质量的评判
通过本文得出的眼图,可以通过以下几点来判别是否符合要求:
1. 蓝色区域内干净无其他颜色混杂(即BER<10-12);
2. 横轴xilinx 软件界面为一个UI
根据具体的信号规范来确定眼宽要大于多少UI,一般来说大于0.3UI就没什么问题。(±0.15)
3. 纵轴xilinx软件界面为一个code 1.5mv(默认)左右
根据具体的信号规范来确定眼高大于多少个code,建议xilinx眼高大于60个code(±30)