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

2023-11-24 07:18

本文主要是介绍Lattice ecp5 SerDes接收异常怎么解决?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

完整版请点击https://hifpga.com/问题/36654

 

向博主本人提问FPGA相关问题

目前有个项目需要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
03.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的速率下接收正常。
05.png
于是将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好像无法自己约束(系统内部配置)。
目前没有办法解决,跪求各位大神解答

 

-----------------------------------------

如果回环都有问题一般是电源有问题。

  1. 在通道悬空状态下如果CDR可以锁住,这种情况下是无效的。
  2. ....
  3. ....

----------------------------

您好!谢谢您的解答。
对于第2点,我用的都是ecp5外部环回,包括ecp5自己的Tx与Rx通过外部信号线连接以及ecp5与k7连接,reveal也是代码从底层配置环回,抓取的外部环回的数据;
第3点,diamond用的一直是3.9.1.119版本(3.10没有安装),3.9版本好像不能分两次配置(DCU会报错);
对于第1点,CDR可以锁住,RX端也能用reveal抓取到数据,如上述图5最下面的数据所示,这样还是无效的么?
我现在的回环用1个通道没有问题,能正确接收数据,用两个通道(其中Rx1悬空)才会出现接收不正常的问题(如上面的描述)。
如果是电源有问题,那么只用一路通道时接收也应该会出现问题,但是一路通道接收正常(同一块板子,只是将pcs配置中2路通道改为1路通道即正常)

 

----------------------------------------------

不知道能不能和到你,我之前遇到过serders反复复位好多次才能锁住的问题,后来发现....

---------------

谢谢!我这边也遇见了这样的现象,3.10版本有点问题,我在3.10上面生成的PCS,用reveal抓不到波形,CDR失锁,同样的工程换到3.9上面CDR就正常,但是现象还是和上面的现象一样

----------------------------------------------

老铁,我的问题和你相反,我的是lattice发,xilinx收,xilinx总是收到乱码,是什么鬼呀?lattice和xilinx均测试自发自收没问题。。

----------------------------------------------

谢谢各位,项目解决了。为了确保项目进行,...

 

完整版请点击https://hifpga.com/问题/36654

这篇关于Lattice ecp5 SerDes接收异常怎么解决?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/421508

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误