3.3.5 · D5Combinational Circuits

Question bank — Multiplexers (2 - 1, 4 - 1, n - 1)

1,789 words8 min readBack to topic

Before we start, one shared vocabulary reminder so no symbol appears un-earned:

See the parent Multiplexers topic note for the full derivations these traps are built on.


True or false — justify

A 4:1 MUX has 4 select lines.
False. A 4:1 MUX has 4 inputs but only select lines; the selects address inputs, so it is a log relationship, not one-per-input.
An n:1 MUX always needs n select lines.
False. For inputs you need selects. The letter "n" in "n:1" refers to inputs (or the address width, depending on the book) — never assume it is the select count. See Combinational Logic Design.
For any given value on the select lines, exactly one minterm equals 1.
True. The minterms of the select variables are mutually exclusive and exhaustive: each select combination makes precisely one product-term true, so exactly one reaches the output and the rest are multiplied by 0.
A multiplexer and a demultiplexer are the same device used backwards.
Partly false. They are inverse operations (many→one vs one→many) but different circuits: a MUX has one output, a DEMUX has many. You cannot literally reverse the signal flow through the same gates. See Demultiplexers.
A MUX can implement any Boolean function of variables.
True. Put the variables on the selects and wire each to the truth-table output of row (a constant 0 or 1). The MUX then copies the correct row for every input — it is a hardware lookup table. See Boolean Algebra Minterms.
With , the MUX selects input .
False. is the most-significant bit, so , selecting . Always convert the select bits to a number, high bit first.
If two data inputs happen to carry the same value, the output could be ambiguous.
False. The output is never ambiguous — the select value uniquely picks one input regardless of what the others carry. Equal inputs are irrelevant; only the addressed one is copied.
A MUX contains a decoder inside it.
True. The minterm generator at the heart of a MUX is a decoder: a decoder produces all minterms of the selects, and the MUX ANDs each with its input and ORs the results. So MUX = decoder + AND–OR.
Setting the enable line on an active-high MUX makes the output equal to .
False. forces (or high-Z on tri-state parts) regardless of selects. gates the whole MUX expression: .
Shannon expansion lets a MUX implement an -variable function.
True. Put variables on the selects; each data input then becomes one of where is the leftover variable. Half the address space is folded into the input wires. See Shannon Expansion.

Spot the error

"The 2:1 MUX equation is ."
Swapped. It should be : input is chosen when (i.e. ), so must pair with , not .
"To build a 16:1 MUX I need 16 select lines."
Wrong count. select lines. 16 inputs are addressed by 4 bits, since .
"A MUX with inputs is universal for -variable functions."
Off by an exponent. A MUX with inputs is universal for variables (the variables ride the selects). An -input MUX has only selects, so it is universal for variables.
"To XOR on a 4:1 MUX I wire ."
Inverted. XOR's truth table is , so the correct wiring is . The student wired XNOR by mistake.
" is a valid 4:1 MUX."
Mismatched terms. must pair with () and with (); here they are swapped, so it selects the wrong inputs for and .
"Enable doesn't change the logic — you can always ignore it."
Dangerous. Without accounting for , cascaded MUXes on a shared bus would all drive the line at once and fight. is what makes bus sharing and cascading safe.
"An 8:1 MUX built from two 4:1s needs the top bit on both 4:1 MUXes."
Wrong wiring. The two 4:1 MUXes both take ; the top bit drives the final 2:1 MUX that chooses between the two groups. picks the group, picks within it.

Why questions

Why is the number of select lines a logarithm of the input count, not the count itself?
Because select bits form a binary number that ranges over distinct values, and each value is a distinct address. To cover inputs you solve , giving .
Why can exactly one — and only one — input ever reach the output?
Because the select minterms are mutually exclusive: for any select value, one minterm is 1 and all others are 0. Multiplying each input by its minterm zeroes out every input except the addressed one.
Why does a MUX act like a truth-table copier?
When the function's variables sit on the selects, the select value is the truth-table row index. Wiring each to that row's output value means the MUX literally reads out the table entry for the current input.
Why do we ever bother building a function with a smaller MUX via Shannon expansion?
Fewer select lines and inputs means fewer address wires and a cheaper chip. By putting the leftover variable (as or ) onto data lines instead of a select, we trade one select for a bit of extra input logic.
Why is the general MUX equation written as a sum (OR) of products?
Each product (minterm · input) handles exactly one select case; ORing them combines all cases into one expression. Because only one product is ever nonzero, the OR just passes that single surviving term — clean selection.
Why is , not , treated as the most-significant bit?
By convention the higher subscript is the higher place value, so carries weight 2 and carries weight 1. This makes address , keeping the index equal to the binary number.
Why must the enable line multiply the whole expression rather than individual inputs?
Because enable must force the single output to a known state (0 or high-Z) no matter which input is addressed. Gating the whole SOP with guarantees when for every select combination at once.

Edge cases

What does a "1:1 MUX" mean, and how many selects does it have?
It has one input and select lines — a plain wire (or a buffer). With nothing to choose between, there is nothing to select.
What happens if all data inputs of a MUX are tied to 0?
The output is always 0 regardless of the selects, because every surviving term is . This is a legitimate (if useless) constant-0 generator.
What is the output when the enable is off but a valid address sits on the selects?
On an active-high MUX, (or high-Z on tri-state parts). The address is computed internally but the enable gate blocks it from reaching the output.
For a 2:1 MUX, what function of the selects is the output when and ?
. The MUX becomes a buffer that simply passes the select line through — a handy identity for function-building.
For a 2:1 MUX with , what does the output compute?
. The MUX becomes an inverter of the select line — showing a single 2:1 MUX can realise NOT.
What if is not a power of 2 — say a 6:1 MUX?
You still need select lines (since ). Two of the eight addresses go unused, so those two select combinations select nothing meaningful (often forced to 0).


Connections

  • Decoders — the minterm generator these traps keep pointing back to.
  • Demultiplexers — the inverse device the MUX is constantly confused with.
  • Boolean Algebra Minterms — why exactly one term survives.
  • Shannon Expansion — the shrink-the-MUX trick.
  • Tri-state Buffers — the enable / high-Z edge cases.
  • Combinational Logic Design — MUX as universal block.