scramble
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.
?
?
對于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。
?
?
轉載于:https://www.cnblogs.com/lybinger/p/10615863.html
總結
- 上一篇: 判断是否字符串重组 Scramble S
- 下一篇: prompt 代码示例