Design a 3-Bit Flash ADC and Explain Its Working (with an Example)
A flash ADC (a “parallel” ADC) determines the digital output by comparing the input voltage against a set of reference thresholds. For an -bit flash ADC, you typically use comparators to generate a thermometer code that is then converted to the binary output via an encoding stage. The quantization produces output codes spanning the designed input range, usually or .
Below, we design a complete 3-bit flash ADC (so comparators), derive the thresholds, show thermometer-code generation, and work through a numeric example step-by-step.
Mermaid overview of the full signal chain:
Key learning terms: flash ADC, LSB , thermometer code, comparator threshold.
Step-by-Step: Design a 3-Bit Flash ADC
- 1Step 1
Assume a unipolar input range . Then the 3-bit LSB size is .
- 2Step 2
A 3-bit flash ADC uses thresholds at multiples of LSB: for .
- 3Step 3
Create comparator that outputs 1 when (and 0 otherwise). Comparator outputs form a 7-bit thermometer code where bits become 1 progressively as rises.
- 4Step 4
For a given , determine the largest such that . Then the thermometer code has ones followed by zeros (assuming ordering from lowest to highest threshold).
- 5Step 5
Let the number of asserted thermometer bits be . The 3-bit output code is typically (i.e., code 0 corresponds to , code 7 corresponds to ).
- 6Step 6
The ideal quantization bins are: code for when for , and code 7 when .
Threshold table and ideal transfer for a 3-bit flash ADC
Let \\text{LSB}=V_\\text{ref}/8 and thresholds for . Comparator asserts when V_\\text{in}\\ge T_k.
Comparator outputs vs. input region
| 3-bit code | Input range (ideal) | Highest satisfied threshold | Thermometer code (7 bits) |
|---|---|---|---|
| 0 | 0\\le V_\\text{in}<T_1 | 0000000 | |
| 1 | T_1\\le V_\\text{in}<T_2 | 1000000 | |
| 2 | T_2\\le V_\\text{in}<T_3 | 1100000 | |
| 3 | T_3\\le V_\\text{in}<T_4 | 1110000 | |
| 4 | T_4\\le V_\\text{in}<T_5 | 1111000 | |
| 5 | T_5\\le V_\\text{in}<T_6 | 1111100 | |
| 6 | T_6\\le V_\\text{in}<T_7 | 1111110 | |
| 7 | V_\\text{in}\\ge T_7 | 1111111 |
Notes:
- The thermometer code is ordered from lowest threshold to highest (so “earlier” comparators correspond to lower ).
- The encoder can be implemented as a logic network that maps the thermometer pattern to the 3-bit value . In an ideal monotonic case, counting the number of 1s is equivalent to .
Key learning terms: quantization, encoder, comparator bank.
Tip: Unipolar 3-bit flash ADC thresholding
With and , the thresholds are evenly spaced at . Using a resistor ladder is the standard way to generate these equally spaced reference levels.
Example: Work through a 3-bit flash ADC conversion
Assume:
- V_\\text{ref}=1.6\\,\\text{V}
- Therefore \\text{LSB}=V_\\text{ref}/8=1.6/8=0.2\\,\\text{V}
- Thresholds:
- , , , , , , (in volts)
- Choose input: V_\\text{in}=0.74\\,\\text{V}
Step 1: Determine which thresholds are met
Check V_\\text{in} against each :
- (C1 = 1)
- (C2 = 1)
- (C3 = 1)
- (C4 = 0)
- Then higher thresholds (1.0, 1.2, 1.4) are also not met (C5–C7 = 0)
So the 7-bit thermometer code is:
- C1..C7 = 1110000 (i.e., 3 ones then 4 zeros)
Step 2: Convert thermometer count to 3-bit output
Number of 1s is , so the 3-bit binary code is:
- In binary, (3-bit)
Step 3: Verify using the ideal quantization bins
For code the input range is:
- 3\\cdot\\text{LSB} \\le V_\\text{in} < 4\\cdot\\text{LSB}
- ✔️
So output is consistent: Dout = 011.
Key learning terms: quantization step, decision threshold, thermometer-to-binary encoding.
Warning: Non-ideal comparators and missing codes
Real flash ADCs can suffer from comparator offset, gain error, and metastability, which may break monotonicity (e.g., “bubble” errors) and cause missing/extra codes. Practical designs often calibrate or add redundancy/thermometer correction logic.
From Resistor Ladder to 3-Bit Code (Lifecycle View)
Resistor-ladder thresholds
1. Reference generationGenerate 7 evenly spaced levels from using a resistor string."
Comparator bank
2. Parallel decisionEach comparator decides if ."
Thermometer -> binary
3. Digital logicEncode monotonic comparator outputs into ."
Synchronized digital result
4. OutputRegister/synchronize to provide stable output word."
Ideal 3-bit code bins across 0 to Vref
Each bar width is one LSB. A value falls into exactly one bin (ideal case).
Common design/explanation questions
Flash ADC concept and comparator bank intuition
Knowledge Check
A 3-bit ideal flash ADC uses how many comparators?
Explore Related Topics
Understanding Digital Counters: Principles, Types, and Applications
Digital counters are sequential circuits built from cascaded flip‑flops that count input events, with a maximum modulus of 2ᴺ for N stages, and are classified as asynchronous (ripple) or synchronous based on clock distribution.
- Asynchronous counters cascade flip‑flop clocks, causing cumulative propagation delay and limiting maximum frequency.
- Synchronous counters receive the clock simultaneously, using combinational logic to eliminate ripple delay and support higher speeds.
- Designing a synchronous Mod‑6 counter involves defining the state sequence, creating excitation tables, simplifying with Karnaugh maps, and wiring JK flip‑flops with derived logic.
- Ring counters yield N states; Johnson counters double this to 2N states.
- Prevent glitches and lock‑out by using Gray‑code sequencing, output strobes, and ensuring unused states redirect to the main count sequence.
Design and Logic of a Microprogram Sequence
Ladder DAC Working: R–2R Operation and Signal Flow