Close

miniPHY

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/29/2025 at 18:590 Comments

That's the name so far, I'll have to check it's not already in use somewhere else...

But it's a decent working title.

No idea if I'll spin it off this main project, we'll see.

Previous works :
42. The "same" symbol
43. PAM3 and the bi-Trits
45. Constellation 2
59. MAC & PHYs
62. Sub-protocol: QSDE

The basic idea is the same : a pair of PAM3 signals per lane to transmit 3bits or one S symbol.

PAM3 uses only 2 comparators, or 4 FPGA pins for the analog/digital interface for each lane. 2 pins for transmission. Two lanes need (4+2)×2=12 pins.

The transmitter and receiver hold only a very limited quantity of data: 2 3-bit words, to detect repetitions. Some reclocking and clock domain crossing will happen as well, the scrambler must provide the required FIFO.

One digital clock symbol uses both edges to consume the whole 3-bit nibble:

The 9 symbols have beeen defined in 45. Constellation 2:

The S symbol (Silent/Same) plays a crucial role since it can destroy synchronisation if used in a long sequence:

Obviously, to bring the link up, the receiver and transmitter of each peer must exchange data, to send the proper sync burst (locked or not). This can take a good number of cycles, not yet limited. This negotiation takes place at the beginning, to establish a link, so it's not an added latency at the start of each transaction.

Detection of line polarity takes place there, using the 110 and 111 symbols to determine whether + or - comes first. To help in case a peer gets connected in the middle of a sync burst, the bursts are short (8 ?) and separated by one S.

When lock is achieved, the synch pattern can switch to ++/-- (pairs of 010 and 011), which is 4× lower frequency but still enough transitions to keep the PLL locked.

Transition to transmission of data requires one other symbol to terminate the string of ++/--. Since the data could start with any value, a single S symbol is the only one that works, since data must start by a non-S symbol. Thus the 0 level will indicate the transition to data mode, and at most 3× consecutive 0 levels will be transmitted, with no risk of PLL loss.

This sounds reasonable, maybe not the most efficient, but still good enough for Cat5 at 10-30MHz.

The "Same" protocol (preventing repeats of identical symbols) makes sure that a given level does not last more than 2 bauds. Short term droop is reduced but long-term baseline wander is another beast though.

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

OK the protocol should be called QSLDE instead :

Quiet / Sync / Locked / Data / error (which is in fact Q, as well, so it can be discarded and we get QSLD.

Discussions