Multiplexer
Multiplexer
▪ A multiplexer is a device which has
(i) a number of input lines
(ii) a number of selection lines
(iii) one output line
▪ It steers one of 2n inputs to a single output line, using n
selection lines. Also known as a data selector.
2n:1
inputs Multiplexer output
...
select
Multiplexer
▪ Truth table for a 4-to-1 multiplexer:
Inputs Inputs
I0 0 I0
I1 4:1
1 I1
MUX
I2 2 Y Output I2 mux Y
I3 3 I3
S1 S 0
S1 S 0
select select
Multiplexer
▪ Output of multiplexer is
“sum of the (product of data lines and selection lines)”
▪ Example: the output of a 4-to-1 multiplexer is:
Y = I0.(S1’.S0') + I1.(S1’.S0) + I2.(S1.S0') + I3.(S1.S0)
▪ A 2n-to-1-line multiplexer, or simply 2n:1 MUX, is made from
an n: 2n decoder by adding to it 2n input lines, one to each AND
gate.
Multiplexer
▪The output of a 4-to-1 multiplexer is:
Y = I0.(S1’.S0') + I1.(S1’.S0) + I2.(S1.S0') + I3.(S1.S0)
I0
I1
Y
I2
I3
S1 S0
Multiplexer
▪ An application:
Helps share a single communication line among a
number of devices.
At any time, only one source and one destination
can use the communication line.
Larger Multiplexers
▪ Larger multiplexers can be constructed from smaller ones.
▪ An 8-to-1 multiplexer can be constructed from smaller
multiplexers like this (note placement of selector lines):
I0
I1 4:1
I2 MUX
I3
2:1
S1 S 0 MUX Y
I4
I5 4:1
I6 MUX S2
I7
S1 S 0
Larger Multiplexers
I0 When
I1
I0 S2S1S0 = 000
4:1
I2 MUX
I3
2:1 I0
S1 S 0 MUX Y
I4
I5 4:1 I4
I6 MUX S2
I7
S1 S 0
Larger Multiplexers
When
I0
I1
I2 S2S1S0 = 110
4:1
I2 MUX
I3
2:1 I6
S1 S 0 MUX Y
I4
I5 4:1 I6
I6 MUX S2
I7
S1 S 0
Larger Multiplexers
▪ Another implementation of an 8-to-1 multiplexer using
smaller multiplexers:
When
I0 2:1 I0 S2S1S0 = 000
I1 MUX
I2 2:1 I2 S0
I3 MUX
4:1 I0
S0 MUX
I4 2:1 I4
I5 MUX
S2 S 1
S0 I6 2:1
I7 MUX I6
S0
Larger Multiplexers
When
S2S1S0 = 001
I0
I1 4:1
I2 MUX
I3
2:1
S1 S 0 MUX Y
I4
I5 4:1
I6 MUX S2
I7
S1 S 0
Larger Multiplexers
▪ A 16-to-1 multiplexer
can be constructed
from five 4-to-1
multiplexers:
Multiplexers: Implementing Functions
F(A,B,C) = Σ m(1,3,5,6)
0 0
1 1 This method works because:
0 2
1 3 mux F Output = m0.I0 + m1.I1 + m2.I2 + m3.I3
0 4 + m4.I4 + m5.I5 + m6.I6 + m7.I7
1 5
1 6
0 7 Supplying ‘1’ to I1,I3,I5,I6 , and ‘0’ to
A B C
the rest:
Output = m1 + m3 + m5 + m6
Multiplexers: Implementing Functions
▪ A Boolean function can be implemented using multiplexers.
▪ A 2n-to-1 multiplexer can implement a Boolean function of n
input variables, as follows:
❖ (i) Express in sum-of-minterms form.
Example: F(A,B,C) = A'B'C + A'BC + AB'C + ABC'
= Σ m(1,3,5,6)
❖ (ii) Connect n variables to the n selection lines.
❖ (iii) Put a '1' on a data line if it is a minterm of the function, '0'
otherwise.
Multiplexers: Implementing Functions
F(A,B,C) = Σ m(1,3,5,6)
0 0
1 1 This method works because:
0 2
1 3 mux Output
F = m0.I0 + m1.I1 + m2.I2 + m3.I3
0 4 + m4.I4 + m5.I5 + m6.I6 + m7.I7
1 5
1 6
0 7 Supplying ‘1’ to I1,I3,I5,I6 , and ‘0’ to
the rest:
A B C
Output = m1 + m3 + m5 + m6
Multiplexers: Implementing Functions
▪ Example: Use a 74151A to implement:
f(x1,x2,x3) = ∑ m(0,2,3,5)
Realization of f(x1,x2,x3) = ∑m(0,2,3,5).
(a)Truth table.
(b)Implementation with 74151A.
Using Smaller Multiplexers
▪ Earlier, we saw how a 2n-to-1 multiplexer can be used to
implement any Boolean function of n (input) variables.
▪ However, we can use a single smaller 2(n-1)-to-1
multiplexer to implement any Boolean function of n
(input) variables.
▪ In particular, the earlier function
F(A,B,C) = ∑ m(1,3,5,6)
can be implemented using a 4-to-1 multiplexer (rather
than an 8-to-1 multiplexer).
Using Smaller Multiplexers
Let’s look at this example:
F(A,B,C) = Σ m(0,1,3,6) = A’B’C’ + A’B’C + A’BC + ABC’
A’B’
1 0
1 1
0 2 1 0
1 3 mux F C 1 F
0 4 mux
0 5
0 2
1 6 C' 3
0 7
A B C A B
▪ Note: Two of the variables, A, B, are applied as selection
lines of the multiplexer, while the inputs of the
multiplexer contain 1, C, 0 and C'.
Using Smaller Multiplexers
▪ Procedure
1) Express boolean function in “sum-of-minterms” form.
e.g. F(A,B,C)= Σ m(0,1,3,6)
2) Reserve one variable (in our example, we take the least significant
one) for input lines of multiplexer, and use the rest for selection
lines.
e.g. C is for input lines, A and B for selection lines.
Using Smaller Multiplexers
3) Draw the truth table for function, but grouping inputs by selection
line values, and then determine multiplexer inputs by comparing
input line (C) and function (F) for corresponding selection line
values.
1 0
C 1 F
mux
0 2
3
A B
Using Smaller Multiplexers
▪ Alternative: What if we use A for input lines, and B, C for
selector lines?
A’ (when BC = 00)
A’ (when BC = 01)
A (when BC = 10)
A 0
1 F A’ (when BC = 11)
mux
2
3
B C
Using Smaller Multiplexers
▪ Example: Implement using a 74151A the function:
f(x1,x2,x3,x4) = ∑ m(0,1,2,3,4,9,13,14,15)
Implement the Boolean function by using 8x1 MUX –
F(A,B,C,D)=∑m(0,1,3,4,8,9,14,15)
Total number of variables , n= 4 (A,B,C,D)
Select line variable (n-1) = 3 (B,C,D) Input variable = 1 (A)
Implementation table –
I0 I1 I2 I3 I4 I5 I6 I7
(A’)0 0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
(A)1
1 1 0 A’ A’ 0 A A
Implement the following function using 4x1 MUX-
F(A,B,C,D)=∑m(0,1,3,4,7,8,9,11,14,15)
•Solving minterms corresponding to I0-
•I0 C’D’+C’D+CD
=C’(D’+D)+CD
=C’+CD
=C’+D
•Solving minterms corresponding to I1-
•I1 C’D’+CD = C (X-NOR) D
•Solving minterms corresponding to I2-
•I2 C’D’+C’D+C = C’+D
•Solving minterms corresponding to I3-
•I3 CD’+CD = C
End of file