Decoders get big fast: a 6-to-64 decoder needs 64 AND gates with 6 inputs each. Decoder expansion builds it from small chips instead, using their enable inputs.
The key idea: split the input code into high bits and low bits.
- The low bits go to every small decoder. They pick a line within a decoder.
- The high bits decide which decoder is enabled. Only one is on at a time, so the combined outputs stay one hot.
Two halves. A 3-to-8 decoder from two 2-to-4s: send B C to both. Enable the lower one with (it makes Y0–Y3) and the upper one with A (Y4–Y7).
A two-level tree. For bigger jobs, a first decoder on the high bits drives the enables of a row of second-level decoders:
- 4-to-16 from 2-to-4s: one decoder on A B enables four decoders on C D. 1 + 4 = 5 decoders.
- 6-to-64 from 3-to-8s: one on the top 3 bits enables eight on the low 3 bits. 1 + 8 = 9 decoders.
Memory systems use exactly this pattern: the high address bits feed a decoder whose outputs drive chip selects (depth expansion).