Rx字节、字的对齐功能


GTP RX端接收的串行数据在进行解串(并行化)之前,需要进行特征边界对齐,使得并行数据得到正确的恢复。GTP进行对齐操作的方式是通过检测K码实现的。RX接收器从输入的串行数据流中搜索comma,若RX接收器检测到K码则将K码移动到字节边界,使得接收端接收的并行数据与发送端发送的数据一致。为实现该功能,GTP有两种方式,一种是自动对齐一种是手动对齐,手动对齐不做介绍,用到时候再说吧。

image.png 

K码检测模式配置

首先要强调的一点是K码是8B/10B编码中的内容,主要操作是在对GTP配置中实现的,如图所示。

image.png 

8B/10B编码方案中会有+1与-1两种状态,这就是所谓的极性偏差( running disparity,RD)。所以在检测K码时,K28.5就会有两种K码,所以K码对齐功能有MCOMMA和PCOMMA模式,也就是plus comma 和Minus Comma。将ENPCOMMALIGN和ENMCOMMALIGN两个打勾使能即可检测两种模式,可与其中一种模式对齐即可。

image.png 

Decode Valid Comma Only 如果选择该选项K码检测模块只检测他所默认的K码,即K28.5和K28.1。

Combine plus/minus commas 如果使能该选项,则MCOMMA和PCOMMA模式将合并,comma对齐模块将在串行流中搜索两个K码,实现16b或20b的K码对齐功能。

允许的对齐边界由ALIGN_COMMA_WORD定义。可能边界的间距由RX_DATA_WIDTH确定,边界位置的数量由RXDATA接口中的字节数确定(有关RX_DATA_WIDTH设置,请参阅表4-43,第214页)。图4-30显示了可以选择的边界。(Grey =可以出现在字节上)

image.png 

RXBYTEISALIGNED是状态信号,为高电平表示边界已经对齐。这时可以将ENPCOMMALIGN和ENMCOMMALIGN两个信号拉低,关闭K码对齐功能。

RXBYTEREALIGN是状态信号,用来表示对齐的K码是否发生变化或者说现在是否在对齐状态,=1表示字节对齐边界没有改变,=0表示字节对齐边界改变了。所以当RXBYTEREALIGN为0时我们可以重新使能字节对齐。

RXCOMMADET是个状态信号,当K码对齐模块检测到K码时该信号置一,该信号有效几个周期。

RXSLIDE是用于手动对齐的。






快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~

有建议、有需求、有疑问、联系我

<