COE 372 DSD2-23 Programmable Logic Devices
COE 372 DSD2-23 Programmable Logic Devices
Fixed
Programmable Programmable
Inputs AND array Outputs
connections OR array
(decoder)
Logic gates
Inputs and Outputs
(logic variables) programmable (logic functions)
switches
Programmable Array Logic (PAL)
Fixed OR array programmable AND array
Easy to program
Poor flexibility
Boolean function must be simplified to fit
into each section
Product term cannot be shared among
two or more OR gates
Programmable Array Logic (PAL)
x 1 x2 xn
Also used to implement
circuits in SOP form
Input buffers
The connections in and fixed connections
inverters
the AND plane are
programmable x 1 x1 xn xn
The connections in P1
f1 fm
Example Schematic of a PAL
x1 x2 x3
f1 = x1x2x3'+x1'x2x3
f2 = x1'x2'+x1x2x3 P1
f1
P2
P3
f2
P4
AND plane
PAL with 4-input 4-output 3-wide AND-OR structure
Use PAL to design combinational
logic circuit
Boolean function
w( A, B, C , D) (2,12,13)
x(A, B, C, D) (7,8,9,10,11,12,13,14,15)
y ( A, B, C , D) (0,2,3,4,5,6,7,8,10,11,15)
z ( A, B, C , D) (1,2,8,12,13)
simplified
w ABC ABCD
x A BCD
y AB CD BD
z ABC ABCD AC D ABC D
w AC D ABC D
PAL programming table is similar to that
of PLA except that only inputs of AND
gates need to be programmed.
PAL programming table
Fuse map of PAL
Programmable Logic Array (PLA)
x 1 x2 xn
Use to implement
circuits in SOP form
Input buffers
The connections in and
inverters
the AND plane are
programmable x 1 x1 xn xn
The connections in P1
f1 fm
Gate Level Version of PLA
x1 x2 x3
Programmable
connections
f1 = x1x2+x1x3'+x1'x2'x3 OR plane
P1
f2 = x1x2+x1'x2'x3+x1x3
P2
P3
P4
AND plane
f1 f2
Customary Schematic of a PLA
x1 x2 x3
OR plane
f1 = x1x2+x1x3'+x1'x2'x3
P1
f2 = x1x2+x1'x2'x3+x1x3
P2
P3
P4
Select
Enable
OR gate from PAL 0
f1
1
D Q
Flip-flop
Clock
A B
Sel = 0
En = 0
0
1 h
D Q
Sel = 0
Clock En = 1
0
g
1
D Q
Select
Clock
0
f
1
D Q
Clock
Read-Only Memory (ROM)
• ROM: A device in which “permanent”
binary information is stored using a
special device (programmer)
k inputs n outputs
(address)
2k x n ROM (data)
2 -to-4 decoder
a0
a1
d3 d2 d1 d0
Programming a ROM
Inputs Outputs
I4 I3 I2 I1 I0 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 1 0 1 1 0 1 1 0 0 x x x x x
I0 1 x x x x
0 0 0 0 1 0 0 0 1 1 1 0 1
2 x x x x
0 0 0 1 0 1 1 0 0 0 1 0 1 I1
3 x x x x
0 0 0 1 1 1 0 1 1 0 0 1 0 I2 5-to-32 .
. . decoder .
.
. .
I3
28 x x
29 x x x x
. . I4
30 x x x
1 1 1 0 0 0 0 0 0 1 0 0 1 31 x x x x
1 1 1 0 1 1 1 1 0 0 0 1 0
1 1 1 1 0 0 1 0 0 1 0 1 0
1 1 1 1 1 0 0 1 1 0 0 1 1
A7 A6 A5 A4 A3 A2 A1 A0
Inputs Outputs
A2 A1 A0 B5 B4 B3 B2 B1 B0 SQ
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 1
0 1 0 0 0 0 1 0 0 4
0 1 1 0 0 1 0 0 1 9
1 0 0 0 1 0 0 0 0 16
1 0 1 0 1 1 0 0 1 25
1 1 0 1 0 0 1 0 0 36
1 1 1 1 1 0 0 0 1 49 B0
Solution:
• Inputs to the ROM (address lines) = 8 (first number) + (8 second
number) + 1 (Cin) + 1 (Add/Subtract) 18 lines
• Hence number of words in ROM is 218 = 256K
• Size of each word = number of possible functions/outputs
= 16 (addition/subtraction) + 1 (Cout)
= 17
State Table
We need a 8x3 ROM (why?)
3 address lines and 3 data lines
Exercise: Compare design with ROMs with the traditional design procedure.
Programming SPLDs
d
oar
tb
cui
d cir
nte
Pri
In System Programming (ISP)
I/O block
I/O block
PAL-like PAL-like
block block
Interconnection wires
I/O block
I/O block
PAL-like PAL-like
block block
Internal Structure of a PAL-like Block
Includes macrocells
Usually about 16 each
PAL-like block
Fixed OR planes
OR gates have fan-in
between 5-20
PAL-like block
negation ability DQ
XOR has a control
input DQ
More on PAL-like Blocks
PAL-like block
0 1
0
f
D Q
FPGA
I/O block
interconnection
switch
I/O block
I/O block
logic block
I/O block
LUTs
x1
1 0
Muxup
0 1 0
f
0 0 1
1 1
x2
MUxdown
3 Input LUT
f1 = x1x2
f2 = x2'x3 x1
f = f1 + f2 x1 0 x2 0
0 f1 1 f2
0 0
x2 x2 x3
1 0
f1 0
1 f
1
f2
1
Another Example FPGA
x1
x1 0 x4 0 x3 0
0 A 0 C 1 E
x6 x6 1 x5 0 C 1
1
0 1
x2
x2 0 A 0 D 0
0 B 1 D 0 f
x7 x7 0 1
B 1
0
E 1
1
Custom Chips
x1 f2
x2
x3
f1
Example: Standard Cells
x1 f2
x2
x3
f1
Sea of Gates Gate Array
f1 = x2x3' + x1x3
black bottom
layer channels
Full custom
VLSI design
ASICs
Speed / Density /
Complexity / Likely
Market Volume CPLDs
FPGAs
SPLDs