CPLD & Fpga
CPLD & Fpga
John Wakerly
Lecture #15
CPLDs
FPGAs
1
CPLDs vs. FPGAs
CPLD
architecture
5
Xilinx CPLDs
72 ==>
XC9572
7
9500-family function blocks (FBs)
18 macrocells per FB
36 inputs per FB (partitioning challenge, but also
reason for relatively compact size of FBs)
Macrocell outputs can go to I/O cells or back
into switch matrix to be routed to this or other
FBs.
8
9500-series macrocell (18 per FB)
Set control
Programmable
inversion or XOR
product term
Up to 5
product terms
Global clock or
product-term clock
Reset control
OE control
9
9500-series product-term allocator
programmable
steering Share terms from
elements above and below
10
9500-series
I/O block
11
Switch matrix
for XC95108
13
General FPGA chip architecture
a.k.a. CLB --
configurable logic
block
14
Xilinx 4000-series FPGAs
15
FPGA specsmanship
Two flip-flops per CLB, plus two per I/O cell.
25 gates per CLB if used for logic.
32 bits of RAM per CLB if not used for logic.
All of this is valid only if your design has a
perfect fit.
16
Configurable Logic Block (CLB)
17
CLB function generators (F, G, H)
Use RAM to store a truth table
F, G: 4 inputs, 16 bits of RAM each
H: 3 inputs, 8 bits of RAM
RAM is loaded from an external PROM at system
initialization.
Broad capability using F, G, and H:
Any 2 funcs of 4 vars, plus a func of 3 vars
Any func of 5 vars
Any func of 4 vars, plus some funcs of 6 vars
Some funcs of 9 vars, including parity and 4-bit
cascadable equality checking
18
CLB input and output connections --
buried in the sea of interconnect
19
Detail
connections
controlled by
RAM bits
20
Programmable Switch Matrix
programmable switch element
21
The fitters job
Partition logic functions into CLBs
Arrange the CLBs
Interconnect the CLBs
Minimize the number of CLBs used
Minimize the size and delay of interconnect
used
Work with constraints
Locked I/O pins
Critical-path delays
Setup and hold times of storage elements
22
Oh, by the way -- I/O blocks
23
Problems common to CPLDs and FPGAs
Pin locking
Small changes, and certainly large ones, can cause
the fitter to pick a different allocation of I/O blocks
and pinout.
Locking too early may make the resulting circuit
slower or not fit at all.
Running out of resources
Design may blow up if it doesnt all fit on a single
device.
On-chip interconnect resources are much richer
than off-chip; e.g., barrel-shifter example.
Larger devices are exponentially more expensive.
24
Midterm Solutions Discussion
25
Next Time
Synchronous design methodology
Metastability
26