Programmable Logic Devices (PLD) : Dr. Fatma Elfouly
Programmable Logic Devices (PLD) : Dr. Fatma Elfouly
DEVICES (PLD)
3 categories of PLDs:
1. SPLD (Simple Programmable Logic Device)
PLA (Programmable Logic Array)
PAL (Programmable Array Logic)
Registered PAL
2. CPLD (Complex Programmable Logic Device)
3. FPGA (Field Programmable Gate Array)
ARCHITECTURE OF PLDS
P[0]
in[0] out[0]
nxp P[1] pxm
in[1] out[1]
AND Array : OR Array
: :
:
: (Programmable) (Programmable) :
P[p-1]
in[n-1] out[p-1]
n inputs m outputs
p product terms
fromed from inputs
The connections in
the AND plane are
programmable Input buffers
and
inverters
The connections in x1 x1 xn xn
the OR plane are
programmable P1
f1 fm
Inputs
PLA Programmable
OR Plane
Programmable
AND Plane
f1 = x1x2+x1x3'+x1'x2'x3 Programmable
connections
f2 = x1x2+x1'x2'x3+x1x3 P1
OR plane
P2
P3
P4
AND plane
f1 f2
Programmable Array Logic (PAL)
x1 x2 xn
The connections in
the AND plane are
programmable
Input buffers fixed connections
and
The connections in inverters
f1 fm
PAL Inputs
Fixed OR Plane
Outputs
Programmable Programmable Element
AND Plane (e.g. Metallic Fuse, UV EPROM Cell)
The PAL Architecture
PAL
A B C
Programmable switch or fuse
f1 A B C A B C
f2 A B A B C
AND plane
PAL
Inputs
Fixed OR Plane D or T
Programmable AND Plane Flip-flops
D Q
CLK
D Q
CLK
Clock
The Registered PAL Architecture
CPLD STRUCTURE
Integration of several PLD blocks with a
programmable interconnect on a single chip
I/O Block
I/O Block
• PLD PLD •
• Block Block •
• •
Interconnection Matrix
I/O Block
I/O Block
• PLD PLD •
• Block Block •
• •
PLD - MACROCELL
f1
Flip-flop
MUX
D Q
Clock
AND plane
FPGA
ARCHITECTURE
15
FPGA - GENERIC STRUCTURE
FPGA BUILDING BLOCKS:
Logic block Interconnection switches
I/O
I/O
I/O
PROGRAMMABLE I/O
BLOCKS
SPECIAL LOGIC BLOCKS
AT THE PERIPHERY OF
I/O 16
OTHER
FPGA Embedded memory blocks
BUILDING
BLOCKS DSP blocks:
17
FPGA – BASIC LOGIC ELEMENT
Select
Out
A
B
C
LUT D Q
Clock 18
LOOK-UP TABLES (LUT)
A
A B C D Z B
0 0 0 0 0 C LUT Z
0 0 0 1 1
D
0 0 1 0 1
0 0 1 1 1
0
0
1
1
0
0
0
1
0
1
LUT implementation
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0 A
1 0 0 1 1
B
1 0 1 0 1
1 0 1 1 1 Z
1 1 0 0 0
1 1 0 1 0 C
1 1 1 0 0
D
X1
• Example: 3-input LUT X2
0/1
• Based on multiplexers 0/1
cells
0/1
0/1
20
X3
PROGRAMMABLE INTERCONNECT
LE LE LE
Switch Switch
Matrix Matrix
LE LE LE
21
SWITCH MATRIX OPERATION
Before Programming After Programming
Altera
Xilinx
Actel
Lattice
QuickLogic
Design
Specification Design Entry
Function Simulation
FPGA Synthesis
DESIGN
FLOW
Place & Route
Timing Simulation
RTL Simulation
• Functional Simulation
• Verify Logic Model & Data Flow
(No Timing Delays)
LE Synthesis
• Translate Design into Device Specific Primitives
MEM I/O • Optimization to Meet Required Area & Performance Constraints