Programmable Logic Array
Programmable Logic Array
1
Programmable Logic - More Advantages
Programming Technologies
• Programming technologies are used to:
– Control connections
– Build lookup tables
– Control transistor switching
• The technologies
– Control connections
• Mask programming
• Fuse
• Antifuse
• Single-bit storage element
2
– Build lookup tables
• Storage elements (as in a memory)
– Transistor Switching Control
• Stored charge on a floating transistor gate
– Erasable
– Electrically erasable
– Flash (as in Flash Memory)
• Storage elements (as in a memory)
Technology Characteristics
• Permanent - Cannot be erased and reprogrammed
• Mask programming
• Fuse
• Antifuse
• Reprogrammable
– Volatile - Programming lost if chip power lost
• Single-bit storage element
– Non-Volatile
• Erasable
• Electrically erasable
• Flash (as in Flash Memory)
3
Programmable Configurations
• Read Only Memory (ROM) - a fixed array of
AND gates and a programmable array of OR
gates
• Programmable Array Logic (PAL) - a
programmable array of AND gates feeding a fixed
array of OR gates.
• Programmable Logic Array (PLA) - a
programmable array of AND gates feeding a
programmable array of OR gates.
• Complex Programmable Logic Device (CPLD)
/Field- Programmable Gate Array (FPGA) -
complex enough to be called “architectures” - See
VLSI Programmable Logic Devices reading supplement
4
Read Only Memory
• Read Only Memories (ROM) or Programmable Read
Only Memories (PROM) have:
– N input lines,
– M output lines, and
– 2N decoded minterms.
• Fixed AND array with 2N outputs implementing all N-
literal minterms.
• Programmable OR Array with M outputs lines to
form up to M sum of minterm expressions.
5
Read Only Memory Example
• Example: A 8 X 4 ROM (N = 3 input lines, M= 4 output lines)
• The fixed "AND" array is a
“decoder” with 3 inputs and 8 X X
D7 X
outputs implementing minterms. D6
• The programmable "OR“ D5 X
X
X
D4
array uses a single line to A A2 D3 X
represent all inputs to an B
D2
A1 D1 X X
OR gate. An “X” in the C A0 D0 X
array corresponds to attaching the
minterm to the OR
• Read Example: For input (A2,A1,A0)
= 011, output is (F3,F2,F1,F0 ) = 0011.
F3 F2 F1 F0
• What are functions F3, F2 , F1 and F0 in terms of (A2, A1, A0)?
6
Programmable Array Logic Example
AND gates inputs
0 1 2 3 4 5 6 7 8 9
X
Product 1
term
X X
2 F1
I 15 A
X X X
4
X X
5 F2
X X
6
I2 5 B
X X
7
X X
8 F3
X
9
I3 5 C
X X
10
X X
11 F4
X
12
I4
0 1 2 3 4 5 6 7 8 9
7
• Disadvantages
– Often, the product term count limits the application of a
PLA.
– Two-level multiple-output optimization is required to
reduce the number of product terms in an
implementation, helping to fit it into a PLA.
– Multi-level circuit capability available in PAL not available
in PLA. PLA requires external connections to do multi-level
circuits.
X X 2 X BC X Fuse intact
Fuse blown
X X 3 X AC
X X 4 X AB
X 0
C C B B AA
X 1
• 3-input, 3-output PLA F1
with 4 product terms
F2
8
9
Read Only Memory (ROM)
• “Permanent” binary information is stored
• Non-volatile memory
– Power off does not erase information stored
19
32x8 ROM
32x8 ROM
5 8
Each
represents
A4 0 32 wires
1
A3 2
5-to-32 3
A2
Decoder
A1
28
A0 29
30
31
Fuse can be
implemented as
a diode or a D7 D6 D5 D4 D3 D2 D1 D0
pass
20 transistor
10
Programming the 32x8 ROM
A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 1 1 0 0 0 1 0 1
0 0 0 0 1 1 0 0 0 1 0 1 1
0 0 0 1 0 1 0 1 1 0 0 0 0
… … … … … … … … … … … … …
1 1 1 0 1 0 0 0 1 0 0 0 0
1 1 1 1 0 0 1 0 1 0 1 1 0
1 1 1 1 1 1 1 1 0 0 0 0 1
A4 0
1
A3 2
5-to-32
A2
A1 Decoder
A0 29
30
31
D7 D6 D5 D4 D3 D2 D1 D0 21
X F(X)=X2 X F(X)=X2
0 0 000 000000
1 1 001 000001
2 4 010 000100
3 9 011 001001
4 16 100 010000
5 25 101 011001
6 36 110 100100
7 49 111 110001
22
11
Square Lookup Table using ROM
0
X F(X)=X2 1
X2 3-to-8 2
000 000000
001 000001 X1 3
Decoder 4
010 000100
X0 5
011 001001
6
100 010000
7
101 011001
110 100100
111 110001
F5 F4 F3 F2 F1 F0
23
0
X F(X)=X2 1
X2 3-to-8 2
000 000000
001 000001 X1 3
Decoder 4
010 000100
X0 5
011 001001
6
100 010000
7
101 011001
110 100100
111 110001
F5 F4 F3 F2 F1 F0
Not Used = X0
24
12
Square Lookup Table using ROM
0
X 2
F(X)=X
1
X2 3-to-8 2
000 000000
X1 3
001 000001 Decoder 4
010 000100 X0 5
011 001001 6
100 010000 7
101 011001
110 100100
111 110001
F5 F4 F3 F2 F1 F0
25
13
Programmable Logic Array (PLA)
A Programmable
OR Plane
B
Programmable
AND Plane
C C B B A A
F2
27
F1 A B AC BC
F1 AB AC BC
F2 AB AC A BC
28
14
Example using PLA
A F1 AB AC BC
B F2 AB AC A BC
C
AB
AC
BC
ABC
C C B B A A
F1
F2
29
15
16
17
18
A A B
PAL Device
B IO1 IO2 IO1 IO1
Programmable IO1
AND Plane
IO2
Fixed
OR Plane
38
19
PAL Device Design Example
A A B B C C D D IO1 IO1
IO1
Not programmed
A
IO2
39
IO2 ABC A BCD ACD A BCD
40
20
CPLD structure
Logic block
Interconnects
41
FPGA Structure
Logic block
I/O block
Interconnects
42
21
FPGA Programmability
• Floating gate transistor
– Used in EPROM and EEPROM
• SRAM-controlled switch Control
– Pass transistors
– Multiplexers (to determine how to route inputs)
• Antifuse
– Similar to fuse
– Originally an Open-Circuit
– One-Time Programmable (OTP)
43
22