一、高速Serdes的调试
二、GTY中RX复位技巧
三、多lane对齐反馈调节
四、往期文章链接
一、高速Serdes的调试
高速Serdes的调试,两大难度:一是时钟,输入高速bank的参考时钟选择,QPLL、CPLL选择,用户侧时钟的选择,在前面的文章中已经介绍过了;二是复位,尤其是接收侧复位,涉及到各种模块的复位,而且还有复位时序的要求。本篇文章主要记录调试接收RX的过程中一些技巧方式。
两个文档pg211和ug578,其中pg211介绍40g/50g的MAC+PCS等相关的知识点,ug578介绍GTY的知识,具体可以到官网下载,学习查看。此处主要介绍ug578中RX端的初始化及复位控制。接收到涉及到各种各样的复位,先满足QPLL或者CPLL的初始化复位,之后才是GTY的复位,因为涉及到多lane对齐,因此需要关注pg211手册中的接收侧状态。
二、GTY中RX复位技巧
IP核底层原语,选择的复位模式是时序模式,也就是按照固定时序自动复位。因此,笔者此处采用RXPMA层的复位,之后会对各个模块严格按照时序控制自动复位。
复位时序的要求如下:
三、多lane对齐反馈调节
问题来了,什么时候需要对RXPMA层进行复位?
一般来说,锁相环其实不需要复位,如果有问题,初始状态就无法锁定。更多地其实存在于多lane对齐训练异常,也就是PCS层物理编码层出现异常情况比较大。因此笔者想到若出现多lane对齐异常,就对底层的PMA进行复位,10s内如果对齐则解除复位。其实这种思路参考了看门狗复位的方法,计数到10s,检查下接收RX的状态,若异常则复位。
至于哪些状态需要关注,pg211中已经有介绍了,比如:
当然,还有其他的需要关注的,笔者用计数方式实现定时看门狗复位,来检查接收侧状态是否OK。
四、往期文章链接
vivado时序报告中slack是如何计算的?如何优化时序?
UltraScale+FPGA中GTY的TX路径时钟详解——以40G的ETH MAC IP为例
vivado时序优化——约束异步时钟组set_clock_groups
基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)
跟小灰灰一起学vivado:7系列FPGA的MultiBoot和Fallback功能更新固件
跟小灰灰一起学vivado:7系列FPGA配置模式之配置数据文件格式和配置时序步骤
跟小灰灰一起学vivado:7系列FPGA配置模式之主SPI四路(x4)
跟小灰灰一起学vivado:PCIe XDMA实现远程更新FPGA固件
Xilinx UltraScale+DDR4项目开发(一)——DDR4 MIG的ip接口信号
Xilinx UltraScale+DDR4项目开发(二)——DDR4 MIG的时钟网络
Xilinx UltraScale+DDR4项目开发(三)——DDR4器件选型与MIG IP的配置
低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试低速接口项目之串口Uart开发(三)——串口发送模块和接收模块
低速接口项目之串口Uart开发(四)——UART串口实现FPGA内部AXILITE寄存器的读写控制
低速接口项目之串口Uart开发(五)——QT实现Uart串口寄存器读写工具
低速接口项目之串口Uart开发(六)——zynq系列ps-pl端uart实现共享Axilite内部寄存器的读写
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
低速接口项目之串口Uart开发(八)——如何通过ps侧的串口实现zynq的在线升级(一)