Understanding Demultiplexers
The digital data distributors: Routing a single source to many destinations.
What is a Demultiplexer?
A Demultiplexer (DEMUX) is the functional opposite of a multiplexer. It takes one input and distributes it to one of many outputs based on the state of select signals.
In a 1:2ⁿ DEMUX, select lines determine which specific output receives the input data.
1:2 DEMUX Simulator
Single select line (S) routes Data (D)
1:4 DEMUX Simulator
Multi-select lines (S₁, S₀) route Data (D)
VLSI Interview & GATE Q&A
1. What is the difference between a multiplexer and a demultiplexer?
A multiplexer (MUX) selects one input from multiple inputs and forwards it to a single output based on select lines. Conversely, a demultiplexer (DEMUX) takes one input and distributes it to one of many outputs.
2. How many select lines are required for a 16:1 MUX?
A 16:1 multiplexer requires 4 select lines. The formula used is:
3. Can a multiplexer be used to implement logic functions?
Yes. By connecting logic variables or constants (0/1) to the data inputs and using select lines as variables, a MUX can implement any Boolean function (AND, OR, XOR, etc.). This makes MUX functionally complete, which is vital in FPGA architectures.
4. Explain the role of a multiplexer in the CPU datapath.
Multiplexers act as steering logic. They are used to select ALU inputs (choosing between register data or immediate values), control which data is written back to memory, and manage instruction flow. They are the primary tool used by the Control Unit to execute different instructions on shared hardware.
5. Where are demultiplexers used in memory systems?
DEMUXes are primarily used for address decoding. They activate a specific memory bank or chip from a larger array based on the address bus. They also route control signals like Read/Write enables to the specifically addressed memory unit.
“If asked if MUX and DEMUX can be used interchangeably: Yes, with proper configuration, they can emulate each other’s behaviors. For example, a Decoder is essentially a DEMUX with the Data input tied to logic HIGH (1).”
