hard_err错误
1.Xilinx Aurora协议中的hard_err(Hard Error)是一种指示物理层不可恢复通信故障的错误信号,属于Aurora IP核错误检测机制的核心部分
2.hard_err是aurora的IP核的错误检测接口输出的信号,直接反映了链路物理层的严重故障;
3.hard_err错误是不可恢复的,一旦出现了错误,表示链路的稳定性出现了问题,需要重新复位或者重新初始化才能恢复通信。
4.hard_err的出现,会造成链路的lane_up和channel_up信号拉低或者一会儿拉高一会儿拉高,强制链路进行重新的协商;
5.hard_err错误,可能是时钟不稳定造成时钟失锁,或者信号完整性出现问题,或者线路断开这些底层硬件的我呢提,一般没办法
通过协议重传机制进行恢复;
6.时钟晶振或者时钟芯片产生的时钟如果不是太稳定,也就是说时钟发生抖动,或者时钟发生偏移,或者时钟不达标,会导致收发器PLL失锁,触发hard_err;
7.时钟补偿失效:RX elastic buffer的门限设置不当,无法吸收两端时钟差异
8.信号完整性恶化,比如高速链路的PCB走线阻抗不匹配,或者信号串扰,或者电源噪声导致信号质量的下降,眼图质量不好,误码率激增;
9.链路我呢提,自环测试正常,也就是单板测试正常,但是板对板不正常,可能是因为参考时钟问题;
解决hard_err的办法
1.通过示波器进行眼图测试,检测信号的质量,调整pcb阻抗匹配或者添加预加重,或者添加均衡;
2.测试时钟信号的质量,看看参考时钟的抖动,以及频率的精度
3.调整弹性缓冲区的大小,增加时钟容差