Lattice ecp5 SerDes接收异常怎么解决?-Lattice-莱迪斯社区-FPGA CPLD-ChipDebug

Lattice ecp5 SerDes接收异常怎么解决?

目前有个项目需要Lattice ecp5 (型号:LFE5UM-25-6MG285C)与 Xilinx k7之间通过两路SerDes进行通信,从ecp5发送到k7端是两路1.485G的SerDes信号,从k7端发送至ecp5端是一路SerDes信号(速率为0.7425G和1.485G都可以)。

k7端发送和接收都正常(SerDes自环验证也正常),ecp5端发送正常,但是接收会出现问题,如图1所示,接收通道ch0端数据经常会出现错误,正常情况下如图2所示。k7端SerDes发送代码及Tx波形如图3、图4所示。

01.png
02.png

 

04.png
检测了ecp5的SerDes自环(SerDes自发自收),发现也有上述类似问题,更改了pcs配置参数(加大了均衡、预加重、去加重等参数)仍然会收到错误信号,找了一块ecp3的板子,验证ecp3上SerDes自发自收正常,查找了两个工程中SerDes部分的差异,根据正常的ecp3的配置参数修改ecp5的配置,但是ecp5上SerDes接收端一直有上述问题。
后来想想感觉是不是ecp5上SerDes接收端有一路通道(ch1通道)直接悬空导致ch0通道数据会有影响,抓去了一下ch1通道的信号,如图5所示,发现ch1通道的CDR居然能锁住,然后将ecp5 ip核中的pcs配置通道由2通道改为1通道,发现1个通道情况下,SerDes在0.7425G和1.485G的速率下接收正常。

 

于是将ecp5上的SerDes拆为2个pcs核(一个pcs配置mode选择Tx and Rx,另一个pcs配置mode选择Tx only),编译时会报DCU数量超出范围的错误,查看了一下手册,ecp5 LFEUM-25只有1个DCU,如图6、图7所示。
06.png
07.png
现在ecp5上SerDes接收端Rx ch1悬空,图8为Reports上SerDes I/O分布,图9为ecp5原理图中SerDes部分。
08.png
09.png
现在感觉问题应该是ecp5 SerDes接收端2个通道都应该接收数据,或则接收端Rx只使用1路通道时,有哪个地方,没有正确的配置,ecp5 SerDes部分I/O好像无法自己约束(系统内部配置)。
目前没有办法解决,跪求各位大神解答

请登录后发表评论

    • 流水的头像-ChipDebug流水等级-LV1-ChipDebug作者0
      • 流水的头像-ChipDebug流水等级-LV1-ChipDebug作者0
    • 流水的头像-ChipDebug流水等级-LV1-ChipDebug作者0
      • 流水的头像-ChipDebug流水等级-LV1-ChipDebug作者0