Skip to main content

DNL and INL errors in ADC and DAC

Short answer

DNL is the deviation of actual step width from 1 LSB due to resistor/switch mismatches and op‑amp offsets. INL is the cumulative DNL along the transfer curve, degrading accuracy. Major transitions worsen errors; DNL ≤ −1 LSB causes missing codes.

With necessary illustrations, explain the cause behind the DNL and INL errors in A/D and D/A conversion.

Differential nonlinearity (DNL) is the difference between the actual width of a code step (ADC) or the actual output step (DAC) and the ideal width of 1 LSB. Integral nonlinearity (INL) is the maximum deviation of the actual transfer curve from the ideal straight line (end-point or best fit). INL is the accumulation of the DNL errors: INL(k) = sum of DNL up to code k.

DAC illustration

 Output
  ^                        ideal line
  |                  *  /
  |              *  /           * actual outputs
  |           * /      INL = deviation from line
  |        *  /
  |     * /     DNL = step height - 1 LSB
  |  * /
  +--------------------> Digital code

ADC illustration (staircase)

 Code ^        ____ 
  3   |    ___|   wide step : DNL > 0
  2   | __|
  1   ||   narrow step : DNL < 0 ; width 0 = missing code (DNL = -1)
  0   +---------------> Analog input

Causes

  1. Resistor mismatch in the R-2R ladder or weighted resistor network: errors in the weights, especially the MSB resistors, give large errors at major transitions (for example 0111 1111 to 1000 0000).
  2. Switch on-resistance and leakage differing from bit to bit.
  3. Comparator offsets and threshold errors in flash and SAR ADCs; unequal reference ladder resistors.
  4. Reference voltage and op-amp errors: non-linear reference, op-amp gain and offset.
  5. Capacitor mismatch in capacitive DAC / SAR ADC.
  6. Temperature and supply variation, noise, finite settling and timing errors.

Consequences

  • DNL <= -1 LSB: missing codes (ADC) or non-monotonic output (DAC). DNL must be within +/-1 LSB for guaranteed monotonicity.
  • INL: the overall accuracy is reduced by the INL value; for 12-bit with INL = +/-2 LSB the accuracy is only about 10 bits.

✓ Answer checked by Claude Sonnet 5.5

All Instrumentation II chapter 4 questions →