In PCIe Gen 3 on-wards there is 128b/130b encoding used which scrambles incoming bit using a LFSR with polynomial: $$G(X) = X^{23} + X^ {21} + X^{16} + X^{8} + X^5 + X^2 + 1.$$ Is there any way to perform required scrambling on 2 bit in one clock using parallel scramblers, where output of incoming msb will be dependent on lsb's output.
1 Answers
The online magma calculator
http://magma.maths.usyd.edu.au/calc/
tells me this LFSR corresponds to a primitive polynomial since $$G(X) = X^{23} + X^ {21} + X^{16} + X^{8} + X^5 + X^2 + 1$$ is primitive.
Thus, some phase of the output sequence is given by $$tr(\alpha^t)$$ where $tr:GF(2^{23})\rightarrow GF(2)$ is the trace map and $\alpha \in GF(2^{23})$ is primitive.
The minimal polynomial of $\alpha^2$ is also $G(X)$ and it is the polynomial generating the decimation by 2 (the minimal polynomial of $\alpha^2.$ But this is the same polynomial since an element and its square are conjugates. This is because $$ G(X)=\prod_{i=1}^{23} (X-\alpha^{2^{i-1}}), $$ from standard finite field results.
The decimation by 2 is $s(t+2^{22})$ if $s(t)$ is the original sequence in its characteristic phase, i.e., the phase that satisfies $$s(2t)=s(t)$$ for all $t \pmod{2^{23}-1}.$
- 25,146
- 2
- 30
- 63