9 - Mux Decoder PLD - 2
9 - Mux Decoder PLD - 2
Multiplexers, Decoders,
and PLDs
Youngsoo Shin
KAIST
Fall 2016
9.1 Introduction
Various logic gates (AND, OR, INV, NAND, ...)
are basic building blocks for designing
combinational logic
More complex building blocks
Multiplexer, Tri-state buffer, Decoder, Encoder,
PLDs
9.2 Multiplexer
Multiplexer (MUX, data selector)
Data inputs, control inputs, output
A = 0 Z = I0
A = 1 Z = I1
I0
I1
9.2 Multiplexer
4-to-1 MUX
8-to-1 MUX
2n-to-1 MUX
AB = 00 Z = I0
AB = 01 Z = I1
AB = 10 Z = I2
AB = 11 Z = I3
9.2 Multiplexer
Application of MUX: Quad MUX
9.2 Multiplexer
Application of MUX: 4-bit Binary Adder & Subtracter
9.3 Buffer
Buffer
9.3 Buffer
Tri-state buffer (Three-state buffer)
B=1 buffer (C = A)
B=0 Hi-Z (no connection)
9.3 Buffer
Example: 2-to-1 MUX
9.3 Buffer
Example: 4-bit adder with four sources for one
operand
10
y0
y1
y2
y3
y4
y5
y6
y7
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
00
0 1
1 0
1 1
0 0
0 1
1 0
1 1
11
Decimal Output
A B C D
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
12
13
0
1
X
X
X
X
X
X
X
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
X
X
X
X
X
X
0
0
0
1
X
X
X
X
X
0
0
0
0
1
X
X
X
X
0
0
0
0
0
1
X
X
X
0
0
0
0
0
0
1
X
X
0
0
0
0
0
0
0
1
X
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
14
15
F0
F1
F2
F3
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
data stored
in ROM
(23 words of
4-bits each)
16
11
11
11
11
m output
Variables
00
01
10
11
100
010
101
110
00
01
10
11
001
110
011
111
110
111
101
010
011
110
000
101
data stored
in ROM
(2n words of
m-bits each)
17
18
19
Input
W
Hex
Digit
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
A5
A4
A3
A2
A1
A0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
16 words 5-bits
20
21
m functions of n variables
22
ROM
PLA
F0 = AB + AC
F1 = AC + B
F2 = AB + BC
F3 = B + AC
23
Product
Term
Inputs
Outputs
F0
F1
F2
F3
AB
AC
B
BC
AC
0
1
1
0
1
1
-
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
24
25
OR array
27
9.7 CPLD
CPLD
Many PALs or PLAs on a single chip
9.7 CPLD
Example: CPLD function block and macrocell (Xilinx
XCR3064XL CPLD)
29
9.8 FPGA
Configurable
Logic Block (CLB)
Switch
Box
I/O
30
9.8 FPGA
Configurable Logic Block (CLB)
Lookup Table (ROM)
0
0
0
0
0
0
0
1
0
1
4-input, 1-output
function generator
31
9.8 FPGA
If CLB is a 4-input function generator, how can
functions of more than 4 inputs be implemented?
Shannons expansion theorem for
decomposition of switching functions
If y = f (x1,..., xn ) with xi being independent,
y = xi f xi + xi f xi
where
9.8 FPGA
Example: Decompose f into two 3-input functions
f (a, b, c, d) = c'd '+ a'b'c + bcd + ac'
33
9.8 FPGA
Example: Implement f(a, b, c, d, e) in FPGA of 4-input
CLBs
34
9.8 FPGA
Example: Implement G(a, b, c, d, e, f) in FPGA of 4input CLBs
35
Summary
Macro building blocks
Multiplexer, Tri-state buffer, Decoder & Encoder
ROM
36