SI in practice / 02
Eye Closure: Loss, Reflections, Discontinuities, and Crosstalk
Four impairments close an eye, and they do it in four different ways. Insertion loss thins it symmetrically, a reflection lands as an echo whose damage depends on when it arrives, a discontinuity punches a notch no equaliser can undo, and crosstalk adds noise the equaliser amplifies along with the signal. Telling them apart is most of channel debug.
Best viewed on a laptop or desktop. These panels are built so you can move a slider and watch several charts answer at once. A phone has no room to put them side by side.
When you bring up a high-speed link in the lab and stare at a collapsed eye diagram on an oscilloscope, the immediate instinct is almost always: the channel has too much loss; we need a stronger equaliser or an ultra-low-loss laminate. But an eye diagram does not close for a single monolithic reason. An eye is simply the persistence display of thousands of successive bits overlapping across one or two unit intervals. If the opening at the center has vanished, it means voltage margin (vertical height) and timing margin (horizontal width) have been eaten by physical imperfections along the physical path.
The critical trap is treating all link penalties as if decibels were fungible. If an eye closes because smooth dielectric attenuation rounded off the bit edges, a continuous-time linear equaliser (CTLE) or a feed-forward equaliser (FFE) can boost the high-frequency harmonics and pop the eye right back open. But if that exact same eye closes because an un-backdrilled via stub created a sharp resonant notch, or because nearby differential pairs are spraying crosstalk into your lane, cranking up the receiver's high-frequency gain will actually make the eye worse — amplifying the crosstalk and noise floor right alongside the signal.
Debugging a failing SerDes link comes down to diagnosis before prescription: identifying which specific physical mechanism dominates your eye closure, because each one demands an entirely different engineering remedy.
Why four, and why they are not interchangeable
A channel budget adds decibels, and decibels are a useful common currency. But they hide something important: the same number of decibels does very different damage depending on what caused it.
Four mechanisms account for nearly all of it, and each has a distinct signature:
- Insertion loss attenuates high frequencies more than low ones, which rounds edges and spreads each bit into its neighbours. Smooth, predictable, and the one equalisation was designed for.
- Return loss sends energy back. It returns later, as an echo, and how much it hurts depends on whether it lands on a sampling instant.
- A discontinuity with a length — a stub, a connector footprint — creates a resonance: a frequency the channel cancels entirely. Not attenuation. Removal.
- Crosstalk adds energy from elsewhere. Unlike the other three it has nothing to do with your own signal, so no amount of reshaping your waveform removes it.
The panel above runs all four on one consistent channel, so the comparison is between impairments rather than between models.
The same eye, four different ways to ruin it
A budget adds decibels. It does not tell you which impairment is actually costing you margin, and the four in the panel above are not interchangeable — each closes the eye with a different signature and each responds to a different fix. The bars underneath re-run the whole channel with one impairment removed at a time, which is the question worth asking: if I could delete one of these, how much eye would I get back?
Read them as counterfactuals, not a decomposition. They will not sum to the total, because the impairments interact: loss changes what the equaliser does, which changes how much the crosstalk it amplifies costs you. Occasionally a bar goes negative — removing an impairment makes the eye slightly worse — which is a real result whenever the equaliser was tuned around the thing you deleted. The comparison holds the equaliser settings fixed; retuning after a change is a separate question, and usually a separate answer.
Insertion loss thins the eye symmetrically
Loss rises with frequency, so the channel smears every edge and the traces spread into ISI bands. This is the impairment equalisation was designed for, and the one that responds to it: a CTLE flattens the slope, a DFE cancels the post-cursor exactly. It is also the only one of the four that a material change fixes. Turn the equaliser off and on with the loss slider high, and the difference is the whole argument for having a receiver at all.
Reflections are an echo, and the delay changes what kind of problem it is
A mismatch sends energy back; a second mismatch sends it forward again. The echo arrives after the round trip, 2·Td, at roughly Γ² of the original — two reflections, so the coefficient is squared.
What the delay really changes is what kind of problem the echo is:
- Arriving within a few UI — select LPDDR5X, where it returns in under 3 — the echo is correlated with bits the receiver has already decided. That makes it ISI, and a DFE with enough taps could in principle cancel it. Usually none were allocated for it.
- Arriving tens of UI later — Gen 5 returns it after 111 — it has no relationship to anything in the DFE's memory. It is uncorrelated noise, and nothing in the receiver can subtract it. Proportionally it costs a Gen 5 eye more, simply because that eye is smaller to begin with.
This is also why return loss is a symptom, not a control. The panel deliberately has no RL slider — you set the physical causes, the termination and the discontinuity, and the readout reports the return loss they produce. On the presets the terminations are close to 50 Ω, which is exactly why on-die termination earns its place: it is the cheapest way to make Γ small enough that none of this matters.
A discontinuity reflects — which is not the same as a notch
The TDR trace shows what a mismatched section looks like from the launch: a dip in impedance lasting twice its own delay. Electrically it is a short mismatched through-line, and both its transmission and its reflection follow exactly from the impedance ratio r = Z₁/Z₀ and the electrical length θ = ωτ:
The distinction is practical. A reflection can in principle be cancelled by a long enough DFE, because it is deterministic channel memory. At the bottom of a real stub notch there is nothing to scale and no equaliser recovers it — which is what backdrilling exists to remove.
Crosstalk is the one equalisation makes worse
Each aggressor contributes a pulse that arrives with the victim's own edge, and with several neighbours running independent data the sum looks like noise. The DFE has no model of it. The CTLE amplifies it along with the signal, so relative to the wanted signal it does not improve at all — and past the point where a channel is crosstalk-limited, more equaliser boost makes the eye worse rather than better.
Representative numbers
The presets are starting points rather than spec citations — close enough for the trade-offs to land honestly, and a reasonable place to begin before real models arrive.
| Interface | UI | Nyquist | IL at Nyquist | Echo returns after | Usually limited by |
|---|---|---|---|---|---|
| LPDDR5X 8533 MT/s | 117 ps | 4.27 GHz | ~2.5 dB | 2.9 UI | crosstalk and SSN |
| UFS 4.0 HS-G5 | 43 ps | 11.6 GHz | ~8 dB | 12.7 UI | the escape |
| USB 3.2 Gen 2 | 100 ps | 5 GHz | ~12 dB | 100 UI | connector and cable |
| PCIe Gen 4 | 62.5 ps | 8 GHz | ~18 dB | 55.6 UI | insertion loss |
| PCIe Gen 5 | 31.25 ps | 16 GHz | ~28 dB | 111 UI | loss, then via stubs |
Read down the last two columns together and the pattern is the useful one. A wide parallel bus is short by construction: barely any loss, echoes that come home inside a handful of UI, and a great many neighbours — so it is limited by crosstalk and by simultaneous switching. A serial link is long by construction: loss dominates, the neighbours are few, and its echoes arrive so far out that they act as noise rather than ISI. Almost everything about how the two are signed off follows from that single difference in length.
Why this decides how your board behaves
- The fix depends entirely on the diagnosis. Loss wants material or length. A reflection wants impedance control. A notch wants a physical change — backdrill, or move the resonance. Crosstalk wants spacing or burial. Applying the wrong one costs weeks.
- Equalisation helps three of the four, and hurts on the fourth. It fixes loss well, reflections partly, notches not at all, and it amplifies crosstalk along with the signal.
- They interact, so they do not simply add. Loss changes what the equaliser does, which changes how much the crosstalk it amplifies costs you.
- Only one of them scales with your neighbours. The other three are properties of your own channel; crosstalk is a property of what is around it, which makes it the one that changes when nothing about your net did.
What to do about it
Diagnose before you fix, and use the frequency domain to do it. A smooth downward slope is loss. Regular ripple is a reflection between two discontinuities, and its period in frequency tells you how far apart they are. A deep narrow null is a resonance, and its frequency tells you the stub length. Crosstalk does not appear in S21 at all — it appears when you turn the neighbours on.
Fix notches physically and early. This is the only one of the four with no electrical remedy. It is a stackup and exit-layer decision.
Check crosstalk with the equaliser enabled. Measuring it with the receiver bypassed understates it, because the interaction is the point.
Treat the counterfactual bars as guidance, not accounting. They answer "how much eye would I get back if this one vanished?" — which is the decision-relevant question — but they do not sum to the total, and occasionally one goes negative because the equaliser had tuned around the thing you deleted.
- Eye closes evenly, top and bottom, with visible banding. Loss and the ISI it causes. Check S21's slope across your band.
- A distinct second trace displaced in time. An echo. Measure its delay and halve it to find where the reflecting pair is.
- Equalisation barely helps. Look for a null before adding taps.
- The eye changes when a neighbouring lane is enabled. Crosstalk, conclusively. This is the fastest discriminator available and costs one measurement.
- Worse with more CTLE boost. Crosstalk- or noise-limited, not loss-limited.
Go deeper — why a reflection's timing matters, and what this model leaves out
An echo is a delayed copy, and delay decides the damage. A reflection makes a round trip, so it arrives 2Td later than the signal that caused it. If that delay happens to be close to a whole number of unit intervals, the echo lands near a sampling instant and does maximum damage. If it lands between samples it does much less.
Which means the same return loss can cost very different amounts of eye depending on where the discontinuity is along the channel — and it explains a result that otherwise looks like noise in the data: moving a connector a couple of inches can measurably change an eye without changing any S-parameter magnitude.
Why a notch is categorically different. Loss scales every frequency by something less than one; an equaliser can scale it back up. A resonance multiplies one frequency by approximately zero, and there is nothing to scale. A CTLE's response is smooth by construction — see equalisation — so it has no mechanism that could act at one frequency and not its neighbours.
What the model here leaves out. Worth stating plainly, because the panel is deliberately a teaching model rather than a sign-off one:
- It is single-ended. No mode conversion, so nothing on this page shows the failure that SCD21 would catch.
- The aggressors are identical and evenly skewed. Real crosstalk comes from neighbours with their own data and their own arrival times.
- The receiver is a fixed CTLE and DFE, not an adapting one. A real receiver converges its settings per channel, which generally does better.
- The eye is a few hundred symbols. The readout beside it says what that supports, which is nowhere near a compliance rate.
For the same four impairments on an exact cascaded network — with group delay, a TDR profile, and the bit-by-bit link between a post-cursor and the symbol that caused it — see Lab B.
In the real world
The instinct this page is trying to build is to stop asking "how much loss do I have?" and start asking "what kind of damage am I looking at?" Those are different questions, and only the second one has an action attached to it.
It is also why channel debug usually starts in the frequency domain even though the failure is always reported in the time domain. An eye tells you that something is wrong. S21 and S11 together tell you which of the four it is, and therefore who needs to fix it.