So this is an extension and application of #PEAC Pisano with End-Around Carry algorithm because the PEAC algorithm replaces the scrambler and the 4b/5b table usually employed by 100Base-TX, see
166. Line encoding with PEAC : OK
167. Line encoding with PEAC: it's alive
168. PEACLS error detection (and correction?)
169. TODO: scan
Application is for embedded/custom data transfers over RJ45/Cat5 UTP/STP where the whole TCP/IP stack is not required and a simple FPGA/microcontroller are more than enough.
.
A PAM3-based + gPEAC17 version is currently in development. The GrayPar layer already detects most errors, leaving the more complex and rare cases to the descrambler. There is no error correction but detection is solid and fast, allowing almost immediate retransmit of the most recent data.
-o-O-0-O-o-
Logs:
1. Let's start.
2. Tinkering with CircuitJS
3. AGC
4. Serial vs Parallel
5. Sender-side droop/wander prevention with MLT-3
6. Double parity
7. Flipping
8. a Quasi-Popcount
9. gPEAC again
10. Popcount
11. the bi-flipper topology
12. Ternary encoding
13. The whole flip+parity extension stage
14. Should 4 be flipped...
15. Popcount (better)
16. Run Length Limitation, reduced
17. Making it work
18. Protect the flip bits
19. Error detection
20. Modulation, simplified for now - NRZi
21. Architecture
22. Ternarity and more
23. SU(3)
24. mod3
25. mod3bis
26. Bidir PEAC+ParPop
27. Two lanes
28. Bidir ParPop : OK
29. Protocol
30. DPLL-1
31. I need a name.
32. Reversible PEAC scrambler
33. TMDS
34. PEAC treillis
35. PEAC Reversibility achieved
36. Bidirectional pipeline
37. Dual-lane version: easy
38. DPLL-2
39. Line compensations
40. Maximum avalanche time
41. Transition minimisation
42. The "same" symbol
43. PAM3 and the bi-Trits
44. The ParRot
45. Constellation 2
46. The spreader
47. Gray parity
48. One more bit...
49. Larger words
50. The new parity circuit
51. Permutations
52. Permutations 2
53. The last parity
54. Control Word Sequence
55. Rebuild
56. Detection latency and buffer depth
57. Burst errors
58. Protocol revision
59. MAC & PHYs
60. The error model of PEAC scramblers
61. Shared PEAC
62. Sub-protocol: QSDE
63. miniPHY
64. New pipeline
65. GrayPar17
66. ADD3-EAC
67. Move the NOTs
68. Fewer burst errors
69. spurious errors
70. Stats with GrayPar17 and PEAC16x2
71. Not XOR, not ADD, then what ?
72. Add, Sub and errors
73. Multi-bit errors
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
.
For the older "NRZi" version, as of 20250325 we have:
- A pretty good 16-bit scrambler with a very long period, no risk of crash and parallel implementation : easier operation, lower power and works at f/10.
- The scrambled word has 2 additional marker bits for flagging the data vs control words, also providing a "sticky" checksum flag.
- The parity/flip stage performs pop count on the 2 halves, at F/20, extracting a parity flag that alters the data markers, and flips whole bytes when the number of set bits is lower than 4.
Result :
- The units mostly are identical for transmit and receive, so they can be shared, alternate the function. (20250401 : ParPop is now bidir and 20250408 : PEAC Reversibility achieved)
- 16 data bits are expanded to 20, which is the same +25% overhead as 4b/5b used in 100BaseTX or 8b/10b used in optical Gigabit). More advanced versions can reduce the overhead with longer words.
- Great and fast error detection, both from the scrambler and the parity/popcount levels : the latter catches all odd Hamming distances (1, 3, 5, 7) within a half word, and avalanches all Hamming distances >= 4. The scrambler is left to deal with fewer cases and inter-word alterations, "leaking" parts of its state in the mark bits, providing an extra running parity.
- The maximum length of consecutive 0s is 9 by construction. This effectively bounds the bandwidth in a strict F-F/9 range, almost (to one rare exception) like 4b/5b, which is an important design parameter for the coupling transformers and the working frequency. This figure...
"Not everybody can take that much fun. :-) "