新手求教Serdes的Deterministic Latency模式 pattern信号与0xBC对不齐 数据检测出错

2019-03-25 09:05发布

如题,本人正在使用Cyclone IV GX EP4CGX75CF23,现在在调试serdes的时候遇到了大问题,还请知道的好心朋友帮指导指导,先提前谢过了!
Serdes使用的Deterministic Latency模式做收发器,现发现接收到的rx_patterndetect信号有时候与0xBC对不齐,还有就是rx_patterndetect信号拉高时其下面对应的数据可能并非是0xBC,在pattern附近都没看到0xBC。

对于这种对不齐,但是如果0xBC还是存在的情况,我使用的是把帧头0xBC扩展成0x5A5A5A5A5A5ABC,共7个字节(当然,tx_ctrlenable只会在BC上面才拉高),到了接收端,不再利用pattern信号来做同步,直接检测7字节的数据缓存单元,当其与我发送的数据序列一致时则认为找到帧头了,只要收到以后,我会把此通道的一个标志信号flag永久拉高,除非复位请求(外部主复位或者我一直都检测不到pattern信号被拉高)

当我使用SignalTab观察数据时发现,有个时候,即便我4个通道的数据在SignalTab上显示都正确的时候,那个帧头7字节的特殊字串也是正确的,但我的flag标志却只会被拉高1,2个。每个通道的代码一样,我只是例化4次而已,时序约束都通过,使用85°模型,时序余量最小值为0.35。

求知道的大侠帮指点下,谢谢!!! 本人对收发器不是很熟悉 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
eeleader
1楼-- · 2019-03-25 14:40
 精彩回答 2  元偷偷看……
tramp_forever
2楼-- · 2019-03-25 16:34
请问你指的是哪个环节?发送还是接收
接收的话该咋整呢
我帧长为200clk,每450clk滑动一次
一直到找到rx_patterndetect为止
找到以后进入同步状态,马上不滑动了

同步状态下,若很久都检测不到rx_patterndetect信号的话
我就会复位整个serdes模块
eeleader
3楼-- · 2019-03-25 17:18
同步问题,都是接收时钟没有提取好,在数据判断上很容易产生问题啊

一周热门 更多>