赛灵思
直播中

范潇潇

7年用户 185经验值
私信 关注
[问答]

Sync_Header Bits如何从串行数据中获取正确的Header Bits?

嗨,  
我正在使用XILINX IP-Core Generator的GTX。
我正在使用Kintex-7。
在接收器中,接收器接收串行数据并转换成并行数据,并行sync_header。
PMA如何将64位数据和2位同步位分离,与串行数据分离并提供给PCS层(同步块和解扰器块)。
我知道串行数据通过使用(SIPO)转换为并行。
在同步模块中,信号RXGEARBOXSLIP_OUT向PMA指示它。
Sync_Header Bits如何从串行数据中获取正确的Header Bits。这让我很困惑。
感谢您

回帖(13)

陈玉筠

2020-7-23 08:27:11
你在这里想要弄清楚的是“64b66b编码如何工作?”
在64b66b编码中,发送器发送两位报头,然后发送64位加扰数据。
使用LFSR对数据进行加扰。
这个很重要。
标题有两个可能的“合法”值“01”表示数据,“10”表示“特殊字符”。
收到后,标头位将每66位发生一次。
已知这些位只能具有值01和10.所有其他位(根据定义)不是标题位。
由于数据被加扰,它们不能是“固定”值;
即使您的数据应用层发送一个常量值,加扰器也会在这些位上产生伪随机序列。
因此,从统计上来说,任何一对比特都能够获得所有四种组合(00,01,10,11)。
概率上,你越来越不可能得到连续的66位字,其中“数据”对只会给你合法的标题值01或10;
公式为1/2 ^ N,其中N是您要查找的行中的单词数。
因此,64b66b成帧器只是通过查看两个随机位开始。
如果它们是两个数据位,那么在“几”字内,您将看到00或11模式,因此您将知道这两个位不是标题位。
所以,成帧器滑了一下再试一次。
最终(在一些“滑动”之后),您将找到一个对齐,您正在查看的两个位从不是00或11 - 然后将其标识为标题。
然后你说成帧器被“锁定”并且再也不会改变对齐。
它比这更复杂,因为串行标准需要容忍偶尔的误码。
如果单个标头被损坏为00模式,您不希望成帧器解锁...所以有一个小状态机需要在一行中看到一定数量的正确或不正确的模式来声明成帧器被锁定
/解锁。
重要的是获得框架锁定可能很慢。
当查看aribtrary 2位以获得潜在锁定时,您可以在找到一个(或几个)之前得到多个可能看起来像标题的单词。
然后,您需要查看下一个对齐方式。
所以,你可能需要等待66xN的话才能获得锁定(如果你运气不好,那么N可能是少数几个)。
Avrum
在原帖中查看解决方案
举报

贾佳斌

2020-7-23 08:46:45
GTX内部的变速箱块执行此操作,为结构提供64位数据和2位标头。
当RXGEARBOXSLIP输入到此块时,Gearbox将对齐滑动1位。
--------------------------------------------------
----------------------------别忘了回复,给予kudo并接受为解决方案---------
--------------------------------------------------
-------------------
举报

刘溪

2020-7-23 08:53:19
您好
看看下面的文档
http://www.xilinx.com/support/documentation/user_guides/ug476_7Series_Transceivers.pdf
问候,萨蒂什-----------------------------------------------
--- --------------------------------------------请注意
- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子。感谢.--
---------------------------- ---------------------
----------------------
举报

徐娟

2020-7-23 09:03:22
你好 
感谢您的回复。
我认为它可能有可能锁定错误的对齐方式。
如果我的输入序列是
2位(标题位)10和64位(数据)全部为64'h0,在序列开始之前,标题位和数据位是接收器串行线上的66'h0。
感谢您
Subash
举报

更多回帖

发帖
×
20
完善资料,
赚取积分