Close

Coding space

A project log for miniMAC - Not an Ethernet Transceiver

custom(izable) circuit for sending some megabytes over differential pairs.

yann-guidon-ygdesYann Guidon / YGDES 11/07/2025 at 04:190 Comments

Update 20251112 : 258114 = 0x3F042 = 111111000001000010 is the new new new modulus. I have updated the data in this log.

---------------------------------------------------------------

The gPEAC18 scrambler uses 18 bits to represent numbers modulo 258114=0x3F042

The 18-bit number represents different things at different points of the circuit and here is a summary of some of them.

NOTE: C/D has moved to bit #8 to reduce the worst case avalanche length

In a previous log 91. New modulo. I had chosen 139793=0x22211 to fill almost half of the coding space (53%) and detect parity errors faster. However this greatly reduces the efficiency of the other means of error detection. We see that the new modulus reaches almost 75%, or 2 bits equivalent of detection for internally amplified errors. This effectively halves the "quarantine" period and buffer size. Errors can be detected faster and buffers are retransmitted sooner, giving almost double the performance with higher error rates.

So the key of this design is not to detect half of the errors immediately, but to detect twice more errors downstream. The error curve may start to peak several cycles after reception but the fall should be 2× steeper: instead of a 100× reduction in about 7 cycles (after peak), it should be 10000×. The overall design is mostly the same so 34/2=17 words are still required for quarantine but there should be almost no chance of keeping an undetected error after 20  cycles, unlike the previous version.

Discussions