830 likes | 1.02k Views
Multiplexers Decoders ROMs (LUTs). A Problem Statement. Design a circuit which will select between two inputs (A and B) and pass the selected one to the output (Q). The desired circuit is called a multiplexer or MUX for short. Multiplexer Symbols. Preferred symbol. A. A. 0 1. 0 1. Q.
E N D
MultiplexersDecodersROMs (LUTs) ECEn 224
A Problem Statement Design a circuit which will selectbetween two inputs (A and B) and passthe selected one to the output (Q). The desired circuit is called a multiplexer or MUX for short ECEn 224
Multiplexer Symbols Preferred symbol A A 0 1 0 1 Q Q B B S S “Select” input ECEn 224
Data Steering A A A 0 0 0 Q Q Q B B B 1 1 1 1 S 0 Key idea: The select input wire selects one of the inputs and passes it out to the output. This is called a 2:1 MUX (pronounced “two-to-one”) ECEn 224
Multiplexers ECEn 224
Multiplexers ECEn 224
Multiplexers Q = S’A + SB A S Q B ECEn 224
Multiplexers Z = A’B’I0 + A’BI1 + AB’I2 + ABI3 I0 I1 I2 I3 Data Inputs Z 4:1 MUX A B Control Inputs ECEn 224
8 to 1 Multiplexer I0 I1 I2 I3 Z = A’B’C’I0 + A’B’CI1 + A’BC’I2 + … Data Inputs 8:1 MUX Z I4 I5 I6 I7 ABC Control Inputs ECEn 224
A General MUX I0 I1 … IN-1 N Data Inputs N:1MUX Z Output … sk-1…..s0 log2(N) Control Inputs ECEn 224
A 3:1 MUX? I0 I1 I2 Q = A’B’I0 + A’BI1 + AB’I2 3:1 MUX Q A B • What happens when AB = 11? • Often we just use a 4:1 MUX and leave I3 unconnected. ECEn 224
Multiplexers In A Microprocessor • Each signal here is a 16-bit wide bus • A 16-bit wide MUX is simply16 1-bit wide MUXes all with common select inputs ECEn 224
00 01 10 11 16-bit 3:1 MUX Example BusA bit 0 bit 0 BusB Select control lines bit 0 BusC bit 0 ECEn 224
00 01 10 11 16-bit 3:1 MUX Example BusA bit 1 bit 1 BusB Select control lines bit 1 BusC bit 1 ECEn 224
00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 16-bit 3:1 MUX Example BusA Output BusB bit 15 bit 2 bit 0 bit 1 BusC … s1 s0 They all use the same select control lines…One bit from each bus goes to each MUX The result is a 16-bit bus ECEn 224
Implementing Logic with MUX Blocks ECEn 224
0 1 Example 1 Using A as the select input … A=0 part of the truth table … when A=0, F=0 0 F B+C A=1 part of the truth table … when A=1, F=B+C A ECEn 224
0 1 Example 2 Using B as the select input … B=0 part of the truth table … when B=0, F=AC AC F A B=1 part of the truth table … when B=1, F=A B ECEn 224
0 1 Example 3 Using C as the select input … C=0 part of the truth table … when C=0, F=AB AB F A C=1 part of the truth table … when C=1, F=A C All 3 of these examples are the same truth table… ECEn 224
00 01 10 11 Using a Bigger MUX Using AB as the select input … AB=00 part of the truth table … when AB=00, F=0 0 AB=01 part of the truth table … when AB=01, F=C’ C’ F 1 C AB=10 part of the truth table … when AB=10, F=1 AB=11 part of the truth table … when AB=11, F=C AB Can easily re-order truth table to use different MUX control inputs ECEn 224
00 01 10 11 Another 4:1 MUX Example 1 1 F 0 1 AB This shows that a large enough MUX can directly implement a truth table… ECEn 224
Implementing Logic Functions With Muxes Implement: Z = A’B + BC’ I0 I1 I2 I3 4-to-1 MUX Z A B ECEn 224
forAB=00, Z=0 Implementing Logic Functions With Muxes Implement: Z = A’B + BC’ I0 I1 I2 I3 0 4-to-1 MUX Z A B ECEn 224
forAB=01, Z=1 Implementing Logic Functions With Muxes Implement: Z = A’B + BC’ I0 I1 I2 I3 0 1 4-to-1 MUX Z A B ECEn 224
Implementing Logic Functions With Muxes Implement: Z = A’B + BC’ I0 I1 I2 I3 0 1 4-to-1 MUX Z 0 forAB=10, Z=0 A B ECEn 224
forAB=11, Z=C’ Implementing Logic Functions With Muxes Implement: Z = A’B + BC’ I0 I1 I2 I3 0 1 4-to-1 MUX Z 0 C’ A B ECEn 224
Implementing Logic Functions With Muxes An alternate method Z = A’B + BC’ Z = 1•0 + 0•C’ = 0 A=0 B=0 A=0 B=1 A=1 B=0 A=1 B=1 I0 I1 I2 I3 0 Z = 1•1 + 1•C’ = 1 1 4-to-1 MUX Z 0 Z = 0•0 + 0•C’ = 0 C’ Z = 0•1 + 1•C’ = C’ A B ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 4 12 8 1 5 13 9 3 7 15 11 2 6 14 10 ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) X X 0 4 12 8 1 5 13 9 3 7 15 11 X 2 6 14 10 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D 1 I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D 1 0 I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D 1 0 0 I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D 1 0 0 1 I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D 1 0 0 1 D’ I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C ECEn 224
Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 D 1 0 0 1 D’ 1 I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A B C ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B 0 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B 0 B’ ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B 0 B’ 1 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B 0 B’ 1 0 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B 0 B’ 1 0 1 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes Z (A,B,C,D) = m(3,5,10,11,12,15) + d (4,8,14) 0 B 0 B’ 1 0 1 1 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes An alternate method Z = AC + AD’ + A’BC’ + B’CD ECEn 224
Implementing Logic Functions With Muxes An alternate method A C DZ = AC + AD’ + A’BC’ + B’CD 0 0 0 Z = (0)(0) + (0)(1) + (1)B(1) + B’(0)(0) = B 0 0 1 Z = (0)(0) + (0)(0) + (1)B(1) + B’(0)(1) = B 0 1 0 Z = (0)(1) + (0)(1) + (1)B(0) + B’(1)(0) = 0 0 1 1 Z = (0)(1) + (0)(0) + (1)B(0) + B’(1)(1) = B’ 1 0 0 Z = (1)(0) + (1)(1) + (0)B(1) + B’(0)(0) = 1 1 0 1 Z = (1)(0) + (1)(0) + (0)B(1) + B’(0)(1) = 0 1 1 0 Z = (1)(1) + (1)(1) + (0)B(0) + B’(1)(0) = 1 1 1 1 Z = (1)(1) + (1)(0) + (0)B(1) + B’(1)(1) = 1 ECEn 224
I0 I1 I2 I3 I4 I5 I6 I7 8-to-1 MUX Z A C D Implementing Logic Functions With Muxes An alternate method B B 0 B’ 1 0 1 1 Z = AC + AD’ + A’BC’ + B’CD ECEn 224