Close

PEAC treillis

A project log for miniMAC - Not an Ethernet Transceiver

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

yann-guidon-ygdesYann Guidon / YGDES 04/07/2025 at 03:470 Comments

I have a difficult time refactoring the code of the PEAC layer to make it truly reversible. Errors pop up here and there with no explanation... But it worked very well before !

So I'm back to pen&papering, trying to understand where problems could hide and what dark corner of the algo I have not yet examined. And I ended up with the following treillis diagram:

This diagram shows the transmission of 6 data words Di0 to Di5, followed by the checksum words CS1 and CS2. These mix two constants CST1 and CST2 that do not need a specific value, InitX and InitY could be reused but are not immediately available at that location.

This diagram explains why an alteration might only affect the registers two cycles later (which confused me during debug). It also show why two checksum words are required:

I admit that I was puzzled in the past that the received data was reinjected verbatim in the pipeline at a later stage, but now the reason looks more obvious. Tracing the equations shows how data cancel each other: it's not trivial but it's efficient and so clever!

Discussions