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