Interface sign-off / 03
PCIe 6.0 Signal Integrity: PAM4, FLIT, and FEC
Gen 6 keeps the symbol rate and doubles the data rate by sending two bits per symbol. That means the channel sees the same Nyquist frequency as Gen 5, which is the central bandwidth benefit, but the receiver now has to resolve four levels instead of two, and the raw error rate that results is high enough that forward error correction stops being optional.
When the PCI-SIG standards body began drafting the specification for PCIe Gen 6 (64 GT/s), the industry ran directly into the physical limits of copper interconnects. Had Gen 6 followed the historical precedent of simply doubling the NRZ clock rate, it would have required a 64 GBaud symbol rate and a 32 GHz Nyquist frequency. At 32 GHz, standard server PCB laminates, via breakouts, and card-edge connectors exhibit more than 60 dB of insertion loss over typical chassis distances — an attenuation so massive that a signal could not even cross from a CPU to an adjacent expansion slot.
To preserve standard server reach without forcing an industry-wide transition to exotic, high-cost optical cables, PCIe Gen 6 enacted the most radical architectural disruption in the standard's history: it abandoned binary NRZ and adopted Pulse Amplitude Modulation 4-Level (PAM4). By packing two bits into each electrical symbol, Gen 6 delivers 64 GT/s while operating at the exact same 32 GBaud symbol rate and 16 GHz Nyquist frequency as Gen 5. The channel's frequency response sees no increase in loss.
However, compressing four voltage levels into the same total swing extracts a punishing penalty: an immediate 9.54 dB signal-to-noise ratio (SNR) reduction and extreme vulnerability to driver non-linearity. For the first time, PCIe deliberately abandons an "error-free" raw physical layer, accepting a raw bit error rate of roughly 10-6 and relying on a lightweight Forward Error Correction (FEC) engine, 1b/1b precoding, and fixed 256-byte FLIT architecture to guarantee enterprise reliability.
Why the rate could not simply double again
Every previous PCIe generation doubled the data rate by doubling the symbol rate. Gen 5 runs at 32 GT/s NRZ, so Gen 6 the same way would mean 64 Gbaud and a 32 GHz Nyquist.
Channel loss at 32 GHz is not something a connectorised copper channel of useful length can survive. Not "difficult" — the reach would collapse to something that does not reach a slot.
So Gen 6 changes the modulation instead. Four voltage levels, two bits per symbol, the same 32 Gbaud symbol rate, and therefore the same Nyquist frequency as Gen 5. The channel's job does not get harder. The receiver's does.
The trade PAM4 makes
PAM4 encodes two bits in four voltage levels, so 64 GT/s is carried at the same 32 Gbaud symbol rate as Gen 5's 32 GT/s NRZ — and therefore at the same 16 GHz Nyquist frequency. Doubling the rate with NRZ would instead require a 32 GHz Nyquist frequency, where loss can become prohibitive for a copper channel of useful length.
The tradeoff appears in amplitude. Three eyes have to fit in the swing that previously held one, so each eye is a third the height:
There is a second, subtler cost: the three eyes are not identical. Level-dependent nonlinearity in the driver makes the outer eyes and the inner eye behave differently, so transmitter linearity becomes a specified parameter in a way it never was for NRZ.
Why FEC becomes mandatory
Nine decibels of lost amplitude cannot be recovered from the channel, so Gen 6 changes the target instead. The raw bit error rate is relaxed to around 10−6, and forward error correction brings the delivered rate back to 10−12 and better. FEC is no longer a protocol nicety — it is a term in the electrical budget, and the link is designed knowing the correction is there.
That requires a fixed-size transport to carry the code words, which is what FLIT mode provides: fixed-length flow control units with FEC and CRC in known positions. Gen 6 is FLIT-only, and a Gen 6-capable link uses FLIT mode at lower rates too.
Precoding completes the picture. A DFE that makes a wrong decision feeds that error back and can produce a burst, and burst errors are exactly what a lightweight FEC handles worst. Precoding at the transmitter breaks the correlation so DFE errors arrive isolated rather than clustered, which is what makes the correction budget work.
What stays the same
Because Nyquist has not moved, the channel work is familiar: the same 16 GHz insertion loss budget, the same intolerance of via stubs, the same connector and escape discontinuities. What changes is how little margin there is to absorb any of it, and how much more a reflection or a crosstalk aggressor costs when it lands on an eye a third the size.
Sources
- PCI-SIG Base 6.0 — FLIT mode, FEC, CRC and replay are four separate mechanisms — ledger claims C-8 to C-10
Why this decides how your board behaves
- Everything that is not loss now matters three times more. Crosstalk, reflections and supply noise all eat three times the fraction of an eye they did at NRZ.
- Return loss becomes disproportionately important. Backdrilling, launch design and connector footprints move up the priority list relative to laminate choice.
- A high raw error rate is normal. Designing to an NRZ instinct about acceptable raw BER leads to over-design; reading a raw number as a failure leads to alarm.
- Burst structure matters now. FEC has a limited burst-correcting capacity, so errors that arrive together are worse than the same number arriving independently.
What to do about it
Re-budget noise, not just loss. The temptation is to reuse a Gen 5 channel because Nyquist did not move. The loss budget survives; the noise budget does not.
Check all three eyes. They are not identical — transmitter level linearity and threshold placement affect them differently — and reporting one number for a PAM4 link is incomplete.
Separate raw and post-correction error rates in every report. Quoting one as the other is the most common confusion on this topic.
Look for sources of bursty errors specifically. DFE error propagation and periodic aggressors produce exactly the structure FEC handles worst.
- One eye much worse than the other two. Level linearity or threshold placement — a device issue, since the channel treats all three alike.
- Post-FEC errors with an acceptable raw rate. Bursts. Look at error spacing, not just error count.
- A channel that was comfortable at Gen 5 and marginal at Gen 6. Check crosstalk and return loss before loss, since loss is the one thing that did not change.
Go deeper — the mechanisms Gen 6 adds, and what they are each for
1b/1b Precoding: breaking DFE error bursts. In a high-speed PAM4 receiver, the decision feedback equaliser (DFE) slices the incoming waveform among three stacked eyes. If random noise causes the slicer to pick the wrong level, the erroneous decision feeds back into the summer with inverted polarity. This feedback frequently triggers an extended burst of successive symbol errors.
A lightweight FEC code has a strictly bounded burst-correction capability; a sustained burst of 8 or 16 consecutive corrupted symbols will overwhelm the decoder and trigger an uncorrectable frame drop. To eliminate this hazard, PCIe Gen 6 introduces a 1b/1b precoder at the transmitter: y[n] = x[n] ⊕ y[n-1]. The receiver applies the inverse operation: x[n] = y[n] ⊕ y[n-1]. Mathematically, this decimation converts an extended run of consecutive feedback errors into exactly two bit errors (one at the start of the burst and one at the end), instantly truncating the burst into isolated errors that the FEC effortlessly corrects.
The 256-Byte FLIT and Low-Latency FEC. Prior PCIe generations operated with variable-length Transaction Layer Packets (TLPs) wrapped in 128b/130b sync headers. FEC, however, requires a fixed, deterministic block size to compute parity over. Gen 6 therefore scraps variable framing and mandates a rigid 256-byte Flow Control Unit (FLIT) architecture across all packet types:
- Payload: 236 bytes of TLP data, 6 bytes of Data Link Layer protocol headers.
- CRC (Cyclic Redundancy Check): 8 bytes of robust error detection.
- FEC Parity: 6 bytes (48 bits) of lightweight Forward Error Correction.
Unlike enterprise Ethernet (which utilizes heavy Reed-Solomon RS(544, 514) codes that add over 100 ns of algorithmic decode latency), PCIe Gen 6 selected a lightweight single-symbol correctable code that decodes in less than 2 nanoseconds. This near-zero latency penalty is essential to preserving CPU cache coherency protocols (such as CXL). If an error pattern exceeds the FEC's correction threshold, the 8-byte CRC instantly catches the corrupted FLIT and commands a fast hardware-level replay from the link partner's buffer.
Transmitter linearity and SNDR. In NRZ links, transmitter quality was measured simply by rise time and total voltage swing. In PAM4, non-linear driver compression between the four levels (L0, L1, L2, L3) degrades margin faster than dielectric loss. Gen 6 mandates strict linearity metrics:
- Level Separation Mismatch Ratio (RLM): Measures whether the three eye heights are evenly spaced. Standards require RLM ≥ 0.95; uneven spacing compresses the middle or upper eye, making it disproportionately vulnerable to noise.
- Signal-to-Noise-and-Distortion Ratio (SNDR): Quantifies total transmitted signal power against the sum of driver non-linearity, harmonic distortion, and random noise. Gen 6 requires an SNDR of at least 31.5 to 32 dB measured through a reference compliance channel.
In the real world
Gen 6 changes the character of signal integrity work on PCIe more than any previous generation did. NRZ debugging was mostly about loss and reflections, which are fixed with geometry and materials. PAM4 debugging is mostly about noise, linearity and error statistics.
The practical consequence is that the first instinct has to change. On a marginal NRZ link the question was usually "how do I get less loss?". On a marginal Gen 6 link it is more often "what is adding noise, and does it arrive in bursts?".
Related
Sources
- Synopsys — PCIe 6.0 verification of FEC and CRC C-8a
- Cadence — PCIe 6.0 electrical testing for high data bandwidth applications C-9
- Cadence — Unravelling PCIe 6.0 FLIT mode challenges C-10
Rows marked with a claim id are tracked in the claim ledger, which records what each source can and cannot establish.