2026-09-05
A pure binary-weighted DAC uses N current sources scaled as 1×, 2×, 4×, 8×, ..., 2^(N-1)×. Elegant, but when you step from code 0111 to 1000, every switch flips: the big MSB source turns on while all the smaller ones turn off. If the MSB current is off by even 0.5 LSB from the sum of the lower bits, the output goes backward at that transition. That's a non-monotonic DAC, and it breaks any control loop that assumes "higher code equals higher output."
A pure thermometer DAC fixes this by using 2^N equal unit currents. Code K turns on K of them — one at a time, always additive, guaranteed monotonic. But 12 bits needs 4095 unit cells, 4095 switches, and a decoder that turns a binary code into 4095 individual enables. Area and routing explode.
Segmented DACs split the difference. The upper M bits drive a thermometer array (2^M unit cells), and the lower (N−M) bits drive a binary-weighted sub-DAC. A 12-bit DAC with 6-bit thermometer + 6-bit binary needs 63 unit cells plus 6 binary-weighted cells — 69 sources instead of 4095, and the MSB transitions (where mismatch errors are worst) are guaranteed monotonic because they just add one more identical unit.
Real example: Analog Devices' AD9739A is a 14-bit, 2.5 GSPS current-steering DAC used in cellular basestation transmitters. It's 5-bit thermometer for the MSBs, 4-bit thermometer for the middle segment, and 5-bit binary for the LSBs. That three-tier segmentation keeps the highest-weight transitions monotonic (where SFDR spurs are worst) while keeping the LSB area manageable.
The design rule: to guarantee monotonicity, the number of thermometer bits M must satisfy 2^M × σ_unit ≥ σ_MSB, where σ_unit is the standard deviation of a unit cell's current mismatch. Since unit cells match as σ ∝ 1/√area, doubling M means each unit gets half the area but you get √2 better averaging. In practice, designers pick M so that the worst-case DNL (differential non-linearity) at the segment boundary stays under 0.5 LSB across process corners — typically M ≈ N/2 for N ≤ 12 bits, and M > N/2 (more thermometer) for higher-resolution parts.
The tradeoff: more thermometer bits means more unit cells, more area, more decoder logic (binary-to-thermometer), and more switching capacitance on the output node. But it buys you guaranteed monotonicity where it matters most — the high-order code transitions that dominate spectral purity.
