Close

Architecture

A project log for miniMAC - Not an Ethernet Transceiver

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

yann-guidon-ygdesYann Guidon / YGDES 03/29/2025 at 12:420 Comments

The combo PEAC+parpop is pretty powerful : it's fast, can be parallelised and thus achieve high throughput. Or it can be split in half to reduce logic size, at the cost of a more expensive register set.

By itself, PEAC is already damn good, as it's a potent checksum that, with its extension, ensures that at least one bit is set and another is not set. This is excellent for DC-blocked transmissions! One could argue that the fault model is not properly defined, but then the parpop stage has been shown to block a majority of errors as well: this is easy thanks to the extra bits, sure, but the popcount-based error detection catches alterations that do not have to be checked by PEAC.

Parpop by itself is not strictly bound to a particular size, even non-power-of-two sizes are possible with a bit more logic. From there, almost any protocol can be engineered by choosing a width of N bits, adding one flip bit (that also counts towards parity). By construction the longest possible sequence of 0s is N (when two words are concatenated).

But standalone parpop is not enough, so the combination with PEAC brings the best of both worlds. For larger words though, a 25% overhead is not reasonable. parpop has inherent overhead, while PEAC can choose to output the extra bits only when required, every 2, 4 or 8 words. Several parities can be combined to rotate the final marker, such that two parity alterations do not cancel each other, so it's more of a "ternarity" now. Ideally there would be enough marker bits to encode the sum of the parities, which requires another popcount.

...

Discussions