Computer Architectures - Digital Circuits - Multiplexer

A multiplexer is a combinatorial circuit that is given a certain number (usually a power of two) data inputs, let us say 2n, and n address inputs used as a binary number to select one of the data inputs. The multiplexer has a single output, which has the same value as the selected data input.

In other words, the multiplexer works like the input selector of a home music system. Only one input is selected at a time, and the selected input is transmitted to the single output. While on the music system, the selection of the input is made manually, the multiplexer chooses its input based on a binary number, the address input.

The truth table for a multiplexer is huge for all but the smallest values of n. We therefore use an abbreviated version of the truth table in which some inputs are replaced by `-' to indicate that the input value does not matter.

Here is such an abbreviated truth table for n = 3. The full truth table would have 2(3 + 23) = 2048 rows.

 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 | x - - - - - - - - - - - --- - 0 0 0 - - - - - - - 0 | 0 0 0 0 - - - - - - - 1 | 1 0 0 1 - - - - - - 0 - | 0 0 0 1 - - - - - - 1 - | 1 0 1 0 - - - - - 0 - - | 0 0 1 0 - - - - - 1 - - | 1 0 1 1 - - - - 0 - - - | 0 0 1 1 - - - - 1 - - - | 1 1 0 0 - - - 0 - - - - | 0 1 0 0 - - - 1 - - - - | 1 1 0 1 - - 0 - - - - - | 0 1 0 1 - - 1 - - - - - | 1 1 1 0 - 0 - - - - - - | 0 1 1 0 - 1 - - - - - - | 1 1 1 1 0 - - - - - - - | 0 1 1 1 1 - - - - - - - | 1

We can abbreviate this table even more by using a letter to indicate the value of the selected input, like this:

 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 | x - - - - - - - - - - - --- - 0 0 0 - - - - - - - c | c 0 0 1 - - - - - - c - | c 0 1 0 - - - - - c - - | c 0 1 1 - - - - c - - - | c 1 0 0 - - - c - - - - | c 1 0 1 - - c - - - - - | c 1 1 0 - c - - - - - - | c 1 1 1 c - - - - - - - | c

The same way we can simplify the truth table for the multiplexer, we can also simplify the corresponding circuit. Indeed, our simple design method would yield a very large circuit. The simplified circuit looks like this: