Differential Nonlinearity
Differential nonlinearity and integral nonlinearity are the two standard specifications that quantify exactly how a real converter's transfer function deviates from the ideal, evenly-spaced staircase a textbook diagram implies — DNL measures how far each individual step size is from its ideal value, while INL measures how far the entire transfer curve wanders from a best-fit straight line, and the two numbers catch genuinely different failure modes that neither one predicts from the other.
DNL is defined code by code, comparing each actual step size against the one ideal LSB width every step should have. For a given code transition, DNL is the difference between that transition's actual step size and exactly one LSB, expressed as a fraction of an LSB — a code with DNL of zero has a perfectly-sized step, positive DNL means that step is wider than ideal, and negative DNL means it's narrower. The critical threshold is negative one LSB: if DNL for a given code reaches exactly minus one LSB, that code's step size has shrunk to zero, meaning there is no analog input value that will ever produce that particular digital output — a missing code, a literal gap in the converter's output range rather than merely an inaccurate one.
This missing-code failure mode connects directly to the capacitor-matching problem already covered for capacitive DACs, and it explains why the half-scale transition is the single most dangerous code in a binary-weighted architecture. A CDAC's DNL at any given code transition traces back to how accurately the specific capacitor bits toggling at that transition match their ideal binary ratios — and the worst case occurs at major carry transitions, most severely the half-scale transition where the single largest capacitor bit switches on while every smaller bit switches off simultaneously. Any mismatch in that largest capacitor directly produces a DNL error at exactly that one transition, which is why half-scale DNL is frequently the specific number a CDAC-based converter's datasheet calls out separately from a general DNL specification across the whole range.
INL instead measures something entirely different: not any single step's size, but how far the whole accumulated transfer curve has wandered from a straight line by any given code. INL at a given code is typically computed as the cumulative sum of every DNL error up to that point, measured against a best-fit line drawn through the converter's actual endpoints or through a least-squares fit of the whole curve — a smoothly bowed transfer function, where every individual step is close to the ideal LSB size but consistently biased slightly large or slightly small in the same direction across a wide range of codes, can accumulate into substantial INL even without any single step size being dramatically wrong.
Because DNL and INL measure genuinely different things, a converter can pass one specification while badly failing the other, and a datasheet that reports only one of them is not telling the whole story. A converter with excellent INL — a smooth, well-behaved overall curve — can still harbor exactly one catastrophic DNL violation at a single code, most commonly the half-scale major-carry transition in a binary-weighted CDAC, and that one missing code is invisible to an INL specification that only characterizes the curve's overall shape. The reverse combination is equally real: many small, individually-harmless DNL errors spread across a wide code range, none of them severe enough to approach minus one LSB on their own, can accumulate into significant INL once their cumulative effect is summed across the full transfer function, degrading overall linearity even though no single transition would trigger a DNL failure.
Neither specification alone guarantees monotonicity, a distinct property that matters especially in closed-loop control applications. A converter is monotonic if its output code never decreases as its input increases — DNL staying above minus one LSB everywhere is sufficient to guarantee monotonicity, since no step size ever goes negative, but a converter can still have acceptable INL numbers while technically violating monotonicity if DNL dips just past minus one LSB at an isolated code. This is why monotonicity is sometimes specified as its own separate guarantee rather than assumed to follow automatically from acceptable DNL and INL numbers alone, particularly in feedback control applications where a non-monotonic converter response can actually destabilize the loop it's part of.
| Quantity | Measures | Scope | Worst-case failure |
|---|---|---|---|
| DNL | Actual step size vs. ideal 1 LSB | Local — one code transition | Missing code (step size reaches zero) |
| INL | Cumulative deviation from best-fit line | Global — the whole transfer curve | Smoothly bowed curve, each step individually acceptable |
| Monotonicity | Output never decreases as input increases | Depends on DNL staying above −1 LSB everywhere | Isolated DNL violation, even with good INL |
DNL and INL together give the full picture that neither one provides alone, and both ultimately trace back to the same physical reality — capacitor mismatch in a CDAC, resistor mismatch in a resistive ladder, or any other source of nonideal component ratios — manifesting at two different scales simultaneously. A converter's harmonic distortion and achievable SFDR, already covered elsewhere in this series, are themselves direct consequences of exactly this nonlinearity, which is why DNL and INL are not just abstract specifications but the direct, measurable root cause behind the spurious tones that actually limit a real converter's usable performance.