2

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.

kelalaka
  • 49,797
  • 12
  • 123
  • 211

1 Answers1

2

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}.$

kodlu
  • 25,146
  • 2
  • 30
  • 63