Lecture 10 Chapter 5

advertisement
Chapter 5
2-23-09
1
Read pages 311-337 much useful information such
as common gates on page 329
Open collector
Schmitt trigger
2
Programmable Logic Arrays (PLAs)
• Any combinational logic function can be realized as a sum of products.
• Idea: Build a large AND-OR array with lots of inputs and product
terms, and programmable connections.
– n inputs
• AND gates have 2n inputs -- true and complement of each
variable.
– m outputs, driven by large OR gates
• Each AND gate is programmably connected to each output’s
OR gate.
– p AND gates (p<<2n The number of minterms)
3
Example: 4x3 PLA, 6 product terms
(Programmed by blowing fuses)
4
PLD’s – PLA’s page 337-345
Implement BCD to Excess-3. See page 49.
5
BCD to Excess-3 via PLA
BCD
EXCESS-3
I1 I2 I3 I4
O1 O2 O3 O4
0 0 0 0
0 0 1 1
0 0 0 1
0 1 0 0
0 0 1 0
0 1 0 1
0 0 1 1
0 1 1 0
0 1 0 0
0 1 1 1
0 1 0 1
1 0 0 0
0 1 1 0
1 0 0 1
0 1 1 1
1 0 1 0
1 0 0 0
1 0 1 1
1 0 0 1
1 1 0 0
O1 = (5,6,7,8,9;d,10,11,12,13,14,15)
= I1’I2I3’I4 + I1’I2I3I4’+I1’I2I3I4
+I1I2’I3’I4’+ I1I2’I3’I4
O2 = (1,2,3,4,9;d,10,11,12,13,14,15)
= I1’I2’I3’I4+ I1’I2’I3I4’+
I1’I2’I3I4+ I1I2’I3’I4’+ I1I2I3’I4’
O3 = (0,3,4,7,8;d,10,11,12,13,14,15)
= I1’I2’I3’I4’+ I1’I2’I3I4+
I1’I2I3’I4’+ I1’I2I3I4+ I1I2’I3’I4’
O4 = (0,2,4,6,8;d,10,11,12,13,14,15)
= I4’
6
7
8
Some product terms
9
PLA Electrical Design
• See Section 5.3.5 -- wired-AND logic
10
Programmable Array Logic (PALs)
• How beneficial is product sharing?
– Not enough to justify the extra AND array
• PALs ==> fixed OR array
– Each AND gate is permanently connected to a certain
OR gate.
• Example: PAL16L8
11
12
• 10 primary inputs
• 8 outputs, with 7 ANDs per
output
• 1 AND for 3-state enable
• 6 outputs available as inputs
– more inputs, at expense of
outputs
– two-pass logic, helper terms
• Note inversion on outputs
– output is complement of
sum-of-products
– newer PALs have selectable
inversion
13
Decoders
• General decoder structure
• Typically n inputs, 2n outputs
– 2-to-4, 3-to-8, 4-to-16, etc.
14
Binary 2-to-4 decoder
Y(I1, I0)
Note “x” (don’t care) notation.
15
2-to-4-decoder logic diagram
Y(I1, I0)
16
MSI 2-to-4 decoder
• Input buffering (less load)
• NAND gates (faster)
Y(B, A)
17
Decoder Symbol
Y(B, A)
18
Complete 74x139 Decoder
Y(B, A)
19
More decoder symbols
20
3-to-8 decoder
Y(C, B, A)
21
74x138 3-to-8-decoder symbol
Y(C, B, A)
22
Decoder
cascading
Y(C, B, A)
4-to-16 decoder
23
More
cascading
5-to-32 decoder
24
Decoder applications
• Microprocessor memory systems
– selecting different banks of memory
• Microprocessor input/output systems
– selecting different devices
• Microprocessor instruction decoding
– enabling different functional units
• Memory chips
– enabling different rows of memory depending on address
• Lots of other applications
25
Tri-state drivers
26
Three-state buffers
• Output = LOW, HIGH, or Hi-Z.
?
X
ENB
1
Y
ENB
0
Z
ENB
?
• Can tie multiple outputs together, if at most one at a time is
enabled.
27
Different flavors
28
Only one Y can be low at
a time.
29
Three-state drivers
30
Typical application of tri-state drivers – input port.
INSELn’s are a function of
Address signals. They may be
obtained external to the
microprocessor using a
decoder (74LS138).
31
Three-state
transceiver
Typical application – connected to
microprocessor data buss to provide
sufficient current drive for multiple memory
and I/O (input and output) ports.
32
Multiplexers – many inputs to one output.
33
74x151
8-input
multiplexer
34
74x151 truth table
35
U1
Z
Y
X
1
2
3
A
B
C
VCC
6
4
5
W
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
1
2
3
4
74LS138
U2
8
F(W,X,Y ,Z) = sum(0,1,2,3,5,7,11,13)
5
6
11
12
U1
Z
Y
X
1
2
3
W
6
4
5
A
B
C
G1
G2A
G2B
74LS30
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
Logic design using
5.19(d)
74LS138
multiplexer.
U12
/W
1
Z
Y
X
1
4
3
2
1
15
14
13
12
11
10
9
7
D0
D1
D2
D3
D4
D5
D6
D7
Y
Y
5
6
F(W,X,Y ,Z) =SUM(0,1,2,3,5,7,11,13)
= SUM(0,1,2,3,5,7,8+3,8+5)
A
B
C
G
74LS151
36
Problem 6
U1
Y
X
W
1
2
3
A
B
C
VCC
6
4
5
G1
G2A
G2B
U2A
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
1
2
13
12
F(W,X,Y ) = product(3,4,,5,6,7)
74LS10
74LS138
37
U2A
1
3
F1
2
74LS00
U3A
1
3
F2
3
F3
3
F4
2
U1
Z
Y
X
1
2
3
A
B
C
VCC
6
4
5
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
74LS00
U4A
1
2
74LS00
74LS138
U5A
1
2
74LS00
38
C
B
A
U1
1
2
3
A
B
C
VCC
D
6
4
5
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
1
2
U6A
6F(A,B,C,D) = sum(2,4,6,14)
4
5
74LS20
74LS138
5.19(c)
39
F (W , X , Y , Z )  (0,1,2,3,5,7,11,13)
m
W
X
Y
Z
F
n
Dn
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
2
0
0
1
0
1
1
3
0
0
1
1
1
1
4
0
1
0
0
0
2
5
0
1
0
1
1
2
6
0
1
1
0
0
3
7
0
1
1
1
1
3
8
1
0
0
0
0
4
9
1
0
0
1
0
4
10
1
0
1
0
0
5
11
1
0
1
1
1
5
12
1
1
0
0
0
6
13
1
1
0
1
1
6
14
1
1
1
0
0
7
15
1
1
1
1
0
7
U1
4
3
2
1
15
14
13
12
1
Z
Z
0
Z
Z
Y
X
W
11
10
9
7
D0
D1
D2
D3
D4
D5
D6
D7
Y
Y
5
6
A
B
C
G
0
74 LS 151
40
VCC
U1
4
3
2
1
15
14
13
12
Y
X
W
11
10
9
7
D0
D1
D2
D3
D4
D5
D6
D7
W
Y
6
5
F(W,X,Y ) = sum(0,1,2)
A
B
C
G
74LS151
41
Equality Comparators
• 1-bit comparator
• 4-bit comparator
EQ_L
42
Adders
• Basic building block is “full adder”
– 1-bit-wide adder, produces sum and carry outputs
• Truth table:
X
Y
Cin
S
Cout
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
43
Full Adder
Cout
S
X
Cin
X
0
0
1
0
0
1
1
1
Y
Cout  XY  XCin  YCin
Cin
0
1
0
1
1
0
1
0
Y
S  X  Y  Cin
44
Full-adder circuit
S  X  Y  Cin
Cout  XY  XCin  YCin
Delay X, Y, Cin to Cout = 2.
Delay X, Y to S = 2.
Delay Cin to S = 1.
45
Delay X, Y, Cin to Cout = 2.
Ripple adder
Delay X, Y to S = 2.
Delay Cin to S = 1.
• Speed limited by carry chain
• Faster adders eliminate or limit carry chain
– 2-level AND-OR logic ==> 2n product terms
– 3 or 4 levels of logic, carry lookahead (see book).
• Two’s complement subtraction: Invert and add 1.
46
Multipliers
• 8x8 multiplier
47
Full-adder array
48
Faster carry
chain
49
Read-Only Memories
50
Why “ROM”?
• Program storage
– Boot ROM for personal computers
– Program for embedded application storage for embedded systems.
• Actually, a ROM is a combinational circuit, basically a truth-table
lookup.
– Can perform any combinational logic function
– Address inputs = function inputs
– Data outputs = function outputs
51
Logic-in-ROM
example
52
4x4 multiplier
example
53
Internal ROM
structure
PDP-11 boot ROM
(64 words, 1024 diodes)
54
Two-dimensional decoding
?
55
Typical commercial EEPROMs
56
EEPROM programming
• Apply a higher voltage to force bit change
– E.g., VPP = 12 V
– On-chip high-voltage “charge pump” in newer chips
• Erase bits
– Byte-byte
– Entire chip (“flash”)
– One block (typically 32K - 66K bytes) at a time
• Programming and erasing are a lot slower than reading (milliseconds
vs. 10’s of nanoseconds)
57
Microprocessor EPROM application
58
Download