本文主要是介绍LATTCE ECP3 FPGA serdes调试出错,数据乱码怎么解决?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
完整版请点击https://hifpga.com/问题/36956
向博主本人提问FPGA相关问题
大家好。我们在跑两片 FPGA 之间使用Serdes通信的时候,发现 RX 出现错误。TX 端发送的数据是从0一直累加1,但是接收端RX收到的数据是杂乱无章,没有规律的,同时有一堆的 Error 状态出现。
硬件同事测量眼图说信号质量是符合要求的(见下图)。
我这个工程很简单,就是将IP调用,给通道3灌数据,也不知道是哪里出问题了。
rx_count:是用rx时钟产生的一个加1技术器,且 rx_cdr_lol_ch3 指示一直为低,表明 rx时钟是稳定的。
rxdata_ch3_reg 是 rx端收到的数据,是杂乱无章的,非预期数据。
rx_disp_err_ch3, rx_cv_err_ch3 错误标识有拉高,表明传输过程中有错误出现。另外,没有错误标识的接收数据看起来也不太正常。
----------------------------------------------------------------------
- 做单纯的8b/10b,有时候高低位是会错位的,因为PCS模块是在8B/10B情况下是不做对齐的,只有选SDI、HDMI这种协议时是有对齐的。你可以参考这个贴子来获取对齐方https://hifpga.com/%E9%97%AE%E9%A2%98/36913/lattice%E5%8E%9F%E5%8E%82%E5%9F%B9%E8%AE%AD%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E7%AC%AC%E4%B8%80%E8%AF%BEecp5-serdes%E8%B0%83%E8%AF%95/
在纯8B/10B或自由协议时需要自己做对齐处理,依据rx_k_ch3的信号来处理,这个信号的计数器表示了K码的高低位,如下图2和1中的K码都是对齐的,而3中的高字节出现在了前面,低字节出现在后面。
.... - 如果两片之间不能成功通讯,先做一下内部的回环测试看看。
完整版请点击https://hifpga.com/问题/36956
这篇关于LATTCE ECP3 FPGA serdes调试出错,数据乱码怎么解决?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!