Chapter 5 H
Chapter 5 H
Scale of integration:
Chapter 5 • SSI 1 - 10 gates
• MSI 10 - 100 gates
Logic Design with MSI Components • LSI 100 - 1000 gates
and Programmable Logic Devices • VLSI > 1000 gates
Half Adder
Specialized MSI components
• adders x y sum carry
• comparators x Sum
0 0 0 0
• encoders/decoders 0 1 1 0
y Carry 1 0 1 0
• multiplexers/demultiplexers 1 1 0 1
J. C. Huang, 2004 Digital Logic Design 2 J. C. Huang, 2004 Digital Logic Design 3
J. C. Huang, 2004 Digital Logic Design 4 J. C. Huang, 2004 Digital Logic Design 5
1
A realization of the binary full adder
J. C. Huang, 2004 Digital Logic Design 6 J. C. Huang, 2004 Digital Logic Design 7
J. C. Huang, 2004 Digital Logic Design 8 J. C. Huang, 2004 Digital Logic Design 9
J. C. Huang, 2004 Digital Logic Design 10 J. C. Huang, 2004 Digital Logic Design 11
2
A carry lookahead adder. (a) General organization. (b) Sigma block
Carry-Look-ahead Adder
Recall that
ci+1 = xiyi + xici + yici =xiyi + (xi + yi)ci
Let gi = xiyi be the carry-generate function, and
pi = xi + yi be the carry-propagate function.
Σ Σ Σ
Then we can write ci+1 = gi + pici and
c1 = g0 + p0c0
c2 = g1 + p1g0 + p1p0c0
c3 = g2 + p2g1 + p2p1g0 + p2p1p0c0
…
We see that all carry signal ci can be computed by a two level logic
circuit.
J. C. Huang, 2004 Digital Logic Design 12 J. C. Huang, 2004 Digital Logic Design 13
J. C. Huang, 2004 Digital Logic Design 14 J. C. Huang, 2004 Digital Logic Design 15
J. C. Huang, 2004 Digital Logic Design 16 J. C. Huang, 2004 Digital Logic Design 17
3
Organization of a single-decade decimal adder Organization of a single-decade BCD adder
J. C. Huang, 2004 Digital Logic Design 18 J. C. Huang, 2004 Digital Logic Design 19
J. C. Huang, 2004 Digital Logic Design 20 J. C. Huang, 2004 Digital Logic Design 21
J. C. Huang, 2004 Digital Logic Design 22 J. C. Huang, 2004 Digital Logic Design 23
4
A 2n-to-n-line encoder symbol
D0 D0
D1 D1
D2 D2
D3 8x3 3x8 D3
D4 encoder decoder
D4
D5 D5
D6 D6
D7 (sender) (receiver) D7
J. C. Huang, 2004 Digital Logic Design 24 J. C. Huang, 2004 Digital Logic Design 25
J. C. Huang, 2004 Digital Logic Design 26 J. C. Huang, 2004 Digital Logic Design 27
J. C. Huang, 2004 Digital Logic Design 28 J. C. Huang, 2004 Digital Logic Design 29
5
Decoder realization of Boolean functions A decoder realization of f1(x2,x1,x0) = ΠM(0,1,3,5) and f2(x2,x1,x0) =
f1 = ΠM(2, 7) and f2 = ΠM(0, 5, 7) ΠM(1,3,6,7) (a) Using output or-gates. (b) Using output nor-gates.
J. C. Huang, 2004 Digital Logic Design 30 J. C. Huang, 2004 Digital Logic Design 31
A 3-to-8-line decoder using nand-gates Realization of the pair of maxterm canonical expressions
f1(x2,x1,x0) = ΠM(0,3,5) and f2(x2,x1,x0) = ΠM(2,3,4) with a
3-to-8-line decoder and two and-gates.
J. C. Huang, 2004 Digital Logic Design 32 J. C. Huang, 2004 Digital Logic Design 33
J. C. Huang, 2004 Digital Logic Design 34 J. C. Huang, 2004 Digital Logic Design 35
6
And-gate 2-to-4-line decoder with an enable input. (a) Logic Nand-gate 2-to-4-line decoder with an enable input
diagram. (b) Compressed truth table. (c) Symbol.
J. C. Huang, 2004 Digital Logic Design 36 J. C. Huang, 2004 Digital Logic Design 37
A 4-to-16-line D0 D0
D1
decoder constructed D1
D2
from 2-to-4-line D2
D3 8x1 1x8 D3
decoder demultiplexer
D4 multiplexer D4
D5 D5
D6 D6
D7 (sender) (receiver) D7
S2 S1 S0 S2 S1 S0
control signal control signal
J. C. Huang, 2004 Digital Logic Design 38 J. C. Huang, 2004 Digital Logic Design 39
J. C. Huang, 2004 Digital Logic Design 40 J. C. Huang, 2004 Digital Logic Design 41
7
Demultiplexer A 2n-to-1-line multiplexer symbol
J. C. Huang, 2004 Digital Logic Design 42 J. C. Huang, 2004 Digital Logic Design 43
J. C. Huang, 2004 Digital Logic Design 44 J. C. Huang, 2004 Digital Logic Design 45
I3
s1 s0
x y
J. C. Huang, 2004 Digital Logic Design 46 J. C. Huang, 2004 Digital Logic Design 47
8
The value for input I0 is to be determined as follows.
Using a multiplexer to implement a Boolean function: Method 1
if f(0, 0, 0) = and f(0, 0, 1) = then f(0, 0, 0)x'y'z' + and thus we should
f(0, 0, 1)x'y'z = let I0 =
Note that the output of a 4x1 multiplexer is 0 0 0=x'y'0 0
F(x, y, z) = x'y'I0 + x'yI1 + xy'I2 + xyI3 0 1 x'y'z z
1 0 x'y'z' z'
J. C. Huang, 2004 Digital Logic Design 48 J. C. Huang, 2004 Digital Logic Design 49
I0
Note that the output of a 4x1 multiplexer is
I1
f(x, y, z) F(x, y, z)= I0y'z' + I1y'z + I2yz' + I3yz
I2
J. C. Huang, 2004 Digital Logic Design 50 J. C. Huang, 2004 Digital Logic Design 51
J. C. Huang, 2004 Digital Logic Design 52 J. C. Huang, 2004 Digital Logic Design 53
9
Realization of a three-variable function Example: realization of f(x,y,z) = Σm(0,2,3,5)
using a 8-to-1-line multiplexer.
(a) Three-variable truth table.
(b) General realization.
J. C. Huang, 2004 Digital Logic Design 54 J. C. Huang, 2004 Digital Logic Design 55
J. C. Huang, 2004 Digital Logic Design 56 J. C. Huang, 2004 Digital Logic Design 57
J. C. Huang, 2004 Digital Logic Design 58 J. C. Huang, 2004 Digital Logic Design 59
10
Using Karnaugh maps to obtain multiplexer realizations under various
Alternative realizations of f(x,y,z) = Σm(0,2,3,5).
assignments to the select inputs.
(a) Applying input variables y and z to the S1 and S0 select lines.
(b) Applying input variables x and y to the S0 and S1 select lines.
J. C. Huang, 2004 Digital Logic Design 60 J. C. Huang, 2004 Digital Logic Design 61
J. C. Huang, 2004 Digital Logic Design 62 J. C. Huang, 2004 Digital Logic Design 63
Using a four-variable Karnaugh map to obtain a Boolean Realizations of the Boolean function
function realization with a 4-to-1-line multiplexer. f(w,x,y,z) = Σm(0,1,5,6,7,9,13,14).
J. C. Huang, 2004 Digital Logic Design 64 J. C. Huang, 2004 Digital Logic Design 65
11
General structure of Programmable Logic Buffer/inverter. (a) Symbol. (b) Logic equivalent
Devices (PLDs)
J. C. Huang, 2004 Digital Logic Design 66 J. C. Huang, 2004 Digital Logic Design 67
J. C. Huang, 2004 Digital Logic Design 68 J. C. Huang, 2004 Digital Logic Design 69
Structure of a PROM
PLD notation
J. C. Huang, 2004 Digital Logic Design 70 J. C. Huang, 2004 Digital Logic Design 71
12
A 2n × m PROM.
(a) Logic diagram. Using a PROM for logic design. (a) Truth table. (b) PROM realization.
(b) Representation in PLD notation.
J. C. Huang, 2004 Digital Logic Design 72 J. C. Huang, 2004 Digital Logic Design 73
Example of combinational logic design using a PLA. (a) Maps showing the
multiple-output prime implicants. (b) Partial covering of the f1 and f2 maps. (c)
Maps for the multiple-output minimal sum. (d) Realization using a 3 × 4 × 2
Logic diagram of PLA.
an n × p × m PLA
J. C. Huang, 2004 Digital Logic Design 74 J. C. Huang, 2004 Digital Logic Design 75
J. C. Huang, 2004 Digital Logic Design 76 J. C. Huang, 2004 Digital Logic Design 77
13
General structure of a PLA having true Karnaugh maps for the functions f1(x,y,z) = Σm(1,2,3,7)
and complemented output capability and f2(x,y,z) = Σm(0,1,2,6)
J. C. Huang, 2004 Digital Logic Design 78 J. C. Huang, 2004 Digital Logic Design 79
J. C. Huang, 2004 Digital Logic Design 80 J. C. Huang, 2004 Digital Logic Design 81
J. C. Huang, 2004 Digital Logic Design 82 J. C. Huang, 2004 Digital Logic Design 83
14
Limitations of PLAs and PALs
These chips are limited to fairly modest
size, typically supporting a combined
number of inputs plus outputs of not more
than 32.
d
o ar
tb
cui
d ci r
nte
Pri
I/O block
I/O block
(CPLDs) PAL-like
block
PAL-like
block
I/O block
PAL-like PAL-like
that cannot be done on a PAL or PLA. block block
Structure of a CPLD
J. C. Huang, 2004 Digital Logic Design 86 J. C. Huang, 2004 Digital Logic Design 87
PAL-like block
To computer
D Q
D Q
Printed
circuit board
D Q
J. C. Huang, 2004 Digital Logic Design 88 J. C. Huang, 2004 Digital Logic Design 89
15
A Measure of Circuit Size Field-Programmable Gate Arrays (FPGAs)
J. C. Huang, 2004 Digital Logic Design 90 J. C. Huang, 2004 Digital Logic Design 91
J. C. Huang, 2004 Digital Logic Design 92 J. C. Huang, 2004 Digital Logic Design 93
x1
x2
x
0/1
0/1 0/1
A three-input LUT
0/1
0/1
f
0/1
f
0/1 0/1
0/1
A two-input lookup table
0/1
0/1
0/1
y
x3
J. C. Huang, 2004 Digital Logic Design 94 J. C. Huang, 2004 Digital Logic Design 95
16
x3 f
A section
of a
programmed
FPGA
x1
x1 0 x2 0
0 f1 1 f2
0 0
x2 x2 x3
1 0
f1 0
1 f
1
f2
1
17