Advanced Digital Electronic Lec2 (Autosaved)
Advanced Digital Electronic Lec2 (Autosaved)
PAL, PLA
PLAs
Programmable Logic Array
2
PLA
Inputs
Outputs
3
PLA
4
PLA
5
Design for PLA:
Example
Implement the following functions using PLA
F0 = A + B' C'
F1 = A C' + A B Input Side:
F2 = B' C' + A B
F3 = B' C + A 1 = asserted in term
0 = negated in term
- = does not participate
Personality Matrix
Product Inputs Outputs
term A B C F0 F1 F2 F3 Output Side:
AB 1 1 - 0 1 1 0 1 = term connected to output
Reuse 0 = no connection to output
BC - 0 1 0 0 0 1
AC 1 - 0 0 1 0 0 of
terms
BC - 0 0 1 0 1 0
A 1 - - 1 0 0 1
6
Example: Continued
F0 = A + B' C'
F1 = A C' + A B
F2 = B' C' + A B
F3 = B' C + A
Personality Matrix
Product Inputs Outputs
term A B C F0 F1 F2 F3
AB 1 1 - 0 1 1 0
BC - 0 1 0 0 0 1 Reuse
AC 1 - 0 0 1 0 0 of
1 0 1 0 terms
BC - 0 0
A 1 - - 1 0 0 1
7
Constants
Sometimes a PLA output
must be programmed to
be a constant 1 or a
constant 0.
− P1 is always 1
because its product
line is connected to
no inputs and is
therefore always
pulled HIGH;
− this constant-1 term
drives the O1 output.
No product term drives
the O2 output, which is
therefore always 0.
Another method of
obtaining a constant-0
output is shown for O3.
8
BCD to Gray Code Converter
A B C D W X Y Z A A
0 0 0 0 0 0 0 0 AB AB
0 0 0 1 0 0 0 1 CD 00 01 11 10 CD 00 01 11 10
0 0 1 0 0 0 1 1 00 0 0 X 1 00 0 1 X 0
0 0 1 1 0 0 1 0
0 1 0 0 0 1 1 0
01 0 1 X 1 01 0 1 X 0
0 1 0 1 1 1 1 0
0 1 1 0 1 0 1 0 D D
0 1 1 1 1 0 1 1 11 0 1 X X 11 0 0 X X
1 0 0 0 1 0 0 1 C C
1 0 0 1 1 0 0 0 10 0 1 X X 10 0 0 X X
1 0 1 0 X X X X
1 0 1 1 X X X X B B
1 1 0 0 X X X X
K-map for W K-map for X
1 1 0 1 X X X X
1 1 1 0 X X X X
1 1 1 1 X X X X A A
AB AB
CD 00 01 11 10 CD 00 01 11 10
00 0 1 X 0 00 0 0 X 1
Minimized Functions: 01 0 1 X 0 01 1 0 X 0
D D
11 1 1 X X 11 0 1 X X
W=A+BD+BC C C
X = B C' 10 1 1 X X 10 1 0 X X
Y=B+C
Z = A'B'C'D + B C D + A D' + B' C D' B B
K-map for Y K-map for Z
9
10
A B C D
BD
BC’
B
PLA achieves higher flexibility
C
at the cost of lower speed!
BCD
AD’
BCD’
W X Y Z
11
PALs
Inputs
Outputs
12
PAL
inputs
1st output
section
4th output
section
13
PAL
x
x
W = ABC + CD
X = ABC + ACD + ACD + BCD
Y = ACD + ACD + ABD
14
15
Helper Terms
If an I/O pin’s output-
control gate produces
a constant 1, → the
output is always
enabled, but the pin
may still be used as
an input too.
→ outputs can be
used to generate first-
pass “helper terms” for
logic functions that
cannot be performed
in a single pass with
the limited number of
AND terms available
for a single output.
16
Read-Only Memory
ROM
ROM
• Decoder
➢ Produces minterms
• ORs 0
1
A‘B’C’D’
A ‘B’C’D
F1
2 A‘B’CD’
➢ Produce SOP’s 3 A‘B’CD
A S3 4 A‘BC’D’
5 A‘BC’D
S2
B 6 A‘BCD’
4:16 7 A‘ BCD
S1 dec
C 8 A B’C’D’ F2
9 A B’C’D
S0 10 A B’CD’
D
11 A B’CD
12 A B C’D’
13 A B C’D
14 A B C D’ F3
15 AB C D
Enb
18
ROM
• ROM
➢ A decoder
D7 X X
➢ A set of programmable D6
X
OR’s D5 X X
D4 X
A A2 D3 X
D2
B A1 D1 X X
A0 D0 X
C
F3 F2 F1 F0
19
ROM vs. PLA/PAL
Fixed Programmable
Inputs Programmable Outputs
AND array
Connections OR array
(decoder)
20
Example
• Find a ROM-based circuit
implementation for:
➢ f(a,b,c) = a’b’ + abc
➢ g(a,b,c) = a’b’c’ + ab + bc
➢ h(a,b,c) = a’b’ + c
• Solution:
➢ Express f(), g(), and h() in m() format
(use truth tables)
➢ Program the ROM based on the 3 m()’s
22
Example
➢ There are 3 inputs and 3 outputs,
thus we need a 8x3 ROM block.
− f = m(0, 1, 7)
− g = m(0, 3, 6, 7)
− h = m(0, 1, 3, 5, 7)
a 0
1
3-to-8 2
b 3
decoder 4
5
c 6
7
f g h
23
ROM as a Memory
• Read Only Memories (ROM) or Programmable
Read Only Memories (PROM) have:
➢ N input lines,
➢ M output lines, and
➢ 2N decoded minterms.
• Can be viewed as a memory with the inputs as
addresses of data (output values),
➢ hence ROM or PROM names!
24
(Memories)
• Volatile:
➢ Random Access Memory (RAM):
− SRAM "static"
− DRAM "dynamic"
• Non-Volatile:
➢ Read Only Memory (ROM):
− Mask ROM "mask programmable"
− EPROM "electrically programmable"
− EEPROM “electrically erasable electrically
programmable"
− FLASH memory - similar to EEPROM with
programmer integrated on chip
25
ROM as Memory
•Read Example: For input (A2,A1,A0) = 011, output is (F0,F1,F2,F3 ) =
0010.
•What are functions F3, F2 , F1 and F0 in terms of (A2, A1, A0)?
27