Fundamentals / 12
Bathtub curves and BER extrapolation
A bathtub curve answers the question an eye diagram cannot: not “is there an opening?” but “how wide is the opening at the error rate I have to meet?” It is the bridge between what you can measure in seconds and what a specification demands over days — and most of it is extrapolation, which is fine as long as the page says which part.
What a receiver is actually doing
Here is the problem a bathtub curve solves. A serial-link specification says you must guarantee a bit error rate of 10⁻¹² — fewer than one error per trillion bits. To measure that directly at 16 GT/s, you would need to observe about three trillion bits without a single error, which takes roughly three minutes. That is for one sampling position. A bathtub curve needs dozens of positions, and sign-off needs curves at every voltage, temperature, and process corner. Direct measurement is not impossible — it is just too slow to be practical.
The bathtub curve is the workaround. It combines a short, fast measurement (counting errors at BER levels you can reach quickly, like 10⁻⁶ or 10⁻⁸) with a statistical model that extrapolates those measured walls down to the target BER. The extrapolation assumes the error distribution is Gaussian in the tails — a reasonable assumption for random jitter, and a dangerous one if a deterministic component is lurking. Knowing which part of a bathtub curve is measurement and which part is extrapolation is the whole skill.
A receiver looks at the incoming voltage at one instant per bit and decides whether it is above or below a threshold. Two things can make that decision wrong: the voltage is on the wrong side because noise pushed it there, or the instant was wrong because the edge moved.
If you sample dead in the middle of the eye, both would have to be large to cause an error, and errors are correspondingly rare. Move the sampling point towards an edge and less and less is required, so errors become more common. Push it past the crossing and you are sampling the wrong bit entirely.
The bathtub is simply that relationship, plotted: error rate against sampling position. It looks the way it does — flat in the middle, walls rising steeply at both sides — because the thing driving it is a Gaussian tail, and Gaussian tails are extraordinarily steep.
Why the curve exists at all
Sweep the sampling point across the unit interval, count errors at each position, and plot the result on a log axis. In the middle you are sampling in the clear and see no errors. Move toward either edge and the error rate climbs — slowly at first, then very steeply. The result looks like a cross-section of a bathtub, and the width of the floor at your target BER is your timing margin.
Now do the arithmetic on measuring it honestly. At 16 GT/s, one error at a BER of 10⁻¹² means about 10¹² bits, which takes just over a minute. But one error is not a measurement — you need several for any confidence, so call it three to five minutes per sampling position. A bathtub has dozens of positions, and sign-off wants the whole curve at every process corner, every voltage, every temperature. The direct measurement is not expensive so much as slow — and it is worth being precise, because “impossible” is not true and the real limit is more useful.
For a stationary, independent error process, the probability of seeing zero errors in N bits is (1 − BER)N ≈ e−N·BER. Demanding 95% confidence means N ≈ −ln(0.05)/BER ≈ 3 × 1012 bits, which at 16 Gb/s is about 187 seconds of error-free traffic. Three minutes buys a 95% upper bound near 10−12 at one sampling position.
That is the honest statement, and it also shows where the cost really lives. A bathtub needs dozens of positions, and sign-off needs the curve at every corner of voltage, temperature and process. Three minutes becomes days. It is the curve that is impractical to measure directly, not the point
Reading the shape
The two halves of the curve tell you different things. The width of the floor is set by the bounded jitter — the flat region shrinks by exactly DJpp. The slope of the walls is set by RJ: steeper walls mean less random jitter, and the slope is what the fit extracts σ from. A curve with a wide floor and steep walls is a link with an ISI problem you can fix; a narrow floor with shallow walls is a noise problem, and it is much more expensive.
Two failure modes to watch for. If the two walls have different slopes, the jitter is not symmetric — usually duty cycle distortion or an asymmetric threshold — and a single-σ fit will be wrong on at least one side. And if the floor never really flattens, there is a jitter component that is not separating cleanly into bounded and unbounded, which almost always means crosstalk or a periodic aggressor being mis-fitted as Gaussian. In that case the extrapolated number is optimistic, and the amount it is optimistic by is not bounded either.
Why this decides how your board behaves
- The floor width is your actual timing margin. Not the eye width — the eye shows the common cases, and the floor at your target BER shows what survives the rare ones. That is the number a sign-off report should carry.
- The two halves point at different fixes. A narrow floor with steep walls is a deterministic problem: something bounded is eating the middle, and it can be found and removed. A wide floor with shallow walls is a noise problem, and noise is much more expensive to fix.
- It tells you whether more decades are cheap or expensive. Because the walls are so steep, going from 10−12 to 10−15 usually costs remarkably little margin. If it costs a lot on your link, the walls are shallower than they should be and you have a noise problem worth chasing.
- It is the only place the extrapolation is visible. Every headline BER number is a fit. The bathtub is where you can see how far the fit reaches beyond the data.
What to do about it
Mark the measured floor on every curve you publish. The panel above shades the extrapolated region for exactly this reason. A bathtub that does not say where the data stopped is presenting a model as a measurement, and the person reading it has no way to tell.
Check the fit against the histogram, not just the residual. The fit assumes the tails are Gaussian. If there is a periodic component in there, it is not Gaussian — it is arcsine-shaped, with hard edges — and a Gaussian fit to it extrapolates optimistically. Look at the distribution before trusting the number that came out of it.
Measure both walls and compare their slopes. They should match. If they do not, the jitter is asymmetric — duty-cycle distortion or an offset threshold — and a single-σ fit is wrong on at least one side. That asymmetry is easy to see on a bathtub and nearly invisible on an eye.
Spend your time budget where the curve says to. If the floor is narrow, attack DJ: loss, reflections, crosstalk. If the walls are shallow, attack RJ: supply noise, reference clock quality, receiver bandwidth. Doing the wrong one is the most common way a week disappears.
- A floor that never really flattens. Something is not separating cleanly into bounded and unbounded — usually crosstalk or a periodic aggressor being mis-fitted as Gaussian. The extrapolated number is optimistic, and by an amount that is not bounded either.
- Walls with different slopes. Asymmetric jitter. Check the crossing levels and the duty cycle before anything else.
- A curve that changes shape with the data pattern. The DJ is data-dependent, so it is the channel. Correlate against run length.
- A measured curve far worse than the simulated one, only in the tails. The simulation is probably missing a random contributor — most often supply noise, which channel simulators do not include unless you ask them to.
Go deeper — the arithmetic of measuring one, and the empty-opening case
It is worth doing the confidence arithmetic once, because it explains both why the curve is fitted and what the fit is actually standing in for.
For a stationary, independent error process, the probability of seeing zero errors in N bits is (1 − BER)N ≈ e−N·BER. Setting that to 0.05 — a 95% upper confidence bound — gives N ≈ −ln(0.05)/BER, the rule of three. Note what this is: it is a bound from having seen nothing, which is the situation you are usually in. Observing errors and estimating a rate from them is a different and easier calculation.
The same arithmetic is why the panel on the eye page states what its own run supports, and why the labs do the same. It is the one piece of statistics that stops a few thousand simulated symbols from quietly becoming a compliance claim.
The empty-opening case deserves its own note, because it is a real bug pattern rather than a theoretical nicety. Ask a bathtub “how wide is the opening at 10−12?” and sometimes the honest answer is there isn't one — the curve never gets that low anywhere in the unit interval. A routine that returns a width for that case, rather than reporting no interval, produces a number that reads as a wide-open eye when the eye is in fact closed. That failure mode is the reason the panel above reports an explicit “no sampling position reaches this BER” rather than a number.
On the shape itself. The walls are the integral of the jitter distribution, so on a log axis a Gaussian tail plots as a parabola rather than a straight line. That curvature is a useful check: a wall that is genuinely straight on a log-linear plot is not Gaussian, and whatever model produced it is not the dual-Dirac one.
And one thing the curve assumes. Errors are taken to be independent. Real links with burst errors — from a periodic aggressor, or from DFE error propagation — violate that, and the confidence arithmetic above is then optimistic, because a burst of ten errors is much less evidence than ten independent ones. This matters most for links with forward error correction, whose whole design depends on burst structure.
In the real world
The bathtub is where signal integrity stops being about waveforms and starts being about statistics, and that transition catches people out. The instinct from every other page on this site — look at the shape, find the mechanism — still works, but it has to be joined by a second instinct: ask how much of what I am looking at was measured.
Most of a published bathtub is model. That is not a criticism; measuring it directly at every corner is genuinely impractical, and the specs are written on that assumption. But it does mean a clear presentation should distinguish measured and extrapolated regions. Drawing the whole curve as uniformly measured would overstate the available evidence.