#PCIE# pcie 中的 scramber

scramble通过LFSR(Linear Feedback Shift Register)来实现。

在发送端,数据先scramble,然后在进行8b/10b编码;在接收端,数据先进行8b/10b解码,然后再de-scramble。

对于2.5gbps/5.0gbps,scramble LFSR的多项式是:G(X)=X^16 + X^5 + X4 + X^3 + 1

scramble规则:

1. COM symbol初始化LFSR

2. LFSR value is advanced eight serial shifts for each symbol except SKP

3. 除OS外的所有数据symbol(D码),Compliance Pattern, Modified Compliance Pattern都要scamble。

4. 所有的K码不需要scramble。

5. LFSR的初始seed是FFFF。当COM字节从Transmit LFSR发出后,LFSR立即被初始化;每当COM进入Receive LFSR,接收端的LFSR立即初始化。

6.Scramble只能在Configuration状态结束时disable。

7.Scramble不应用在loopback slave。

8.scramble在Detect状态时总是默认enabled.

 

#PCIE# pcie 中的 scramber

对于8Gbps

LFSR多项式:G(X) = X^23 + X^21 + X^16 + X^8 + X^5 + X^2 + 1

Scramble规则:

1. 2bit的sync header不用scramble,也不advance LFSR。

2.EIEOS的所有16symbol都跳过scramble,在发送完EIEOS的最后一个symbol后,将scramble LFSR初始化,在收到EIEOS最后一个symbol后,将descramble LFSR初始化。

3. TS1/TS2的symbol 0跳过scramble, symbol 1-13需要scramble,symbol 14/15在需要DC Balance时跳过scramble,否则进行scramble。

4. FTS的所有16个symbol都不用scramble

5. SDS的所有16个symbol都不用scramble

6. EIOS的所有16个symbol不用scramble

7.SKP的所有symbol都不用scramble

8. 发送所有的OS(SKP除外)symbol时都会advance LFSR,对于SKP的所有symbol,LFSR都不会advance。

9. 接收端通过OS的symbol 0来决定是否要advance LFSR,如果symbol 0时SKP,LFSR在这个block都不用advance,否则LFSR在这个block都需要advance

10. Data block的所有16 symbol都会scramble,并advance LFSR。

11. symbol scramble的顺序是,从低位到高位。

12. LFSR seed与在进入Configuration.Idle后分配的Lane number有关,各条Lane不一样。

13. 使用128b/130b时,不能再Configuration.Complete状态中disable Scramble。

14. Loop back slave不要descramble或scramble loop-back bit stream。

 

#PCIE# pcie 中的 scramber

转载: scramble - lybinger - 博客园

标签: pcie

上一篇:UTF和uncode


下一篇:数据类型拓展