DSD 15
DSD 15
CPLDs
CPLDs
• The design of a digital system using PLD often
requires the connection of several devices to
produce the complete specification.
• For these type of applications, Complex
Programmable Logic Devices (CPLD) are more
suitable.
• A CPLD is a collection of individual PLDs on a
single integrated circuit.
• A programmable interconnection structure allows
the PLDs to be connected to each other in the
same way that can be done with the individual
PLD’s.
How to expand PLD architecture?
• Increase # of inputs and outputs in a conventional
PLD?
– E.g., 16V8 --> 20V8 --> 22V10.
– Why not --> 32V16 --> 128V64 ?
• Problems:
– n times the number of inputs and outputs requires n2 as much
chip area -- too costly
– logic gets slower as number of inputs to AND array increases
• Solution: multiple PLDs with a relatively small
programmable interconnect.
– Less general than a single large PLD, but can use software
“fitter” to partition the design into smaller PLD blocks.
CPLDs
I/O Blocks provide the connection to IC pins. Each I/O pin is
driven by a tristate buffer and can be programmed to act as
input or output.
CPLDs
I/O block
I/O block
In practice: PLD block PLD block
I/O block
PLD block PLD block
functions.
CPLD Manufactures
1) Altera
2) Xilinx
Packages VQ44
PC44 PC44
PC84 PC84
TQ100 TQ100
PQ100 PQ100 PQ100
PQ160 PQ160 PQ160
HQ208 HQ208
BG352 BG352
Xilinx 9500-family CPLD architecture
72 ==>
XC9572
9500-family Function Blocks (FBs)
• 18 macrocells per FB
• 36 inputs per FB
• Macrocell outputs can go to I/O cells or back into switch
matrix to be routed to this or other FBs.
Each function block is like a 36V18 !
9500-series macrocell (18 per FB)
Set control
Programmable
inversion or XOR
product term
Up to 5
product terms
Global clock or
productterm clock
Reset control
OE control
9500-series product-term allocator
9500-series product-term allocator
programmable
steering Share terms from
elements above and below
9500-series
I/O block
Altera CPLD Product Family
Max II
MAX 9000
Max 7000
Max 3000
Classic Devices
Altera MAX9000 CPLD Family
Altera MAX9000 CPLD architecture
MAX9000
LAB architecture
Altera MAX9000 CPLD Macrocell
Altera MAX9000 CPLD Sharable Expander
Altera MAX9000 CPLD Product Expander
Choosing a CPLD for particular application
•Unlike the choice of other standard ICs this is often difficult because of
different architectures existing in industry
•The gate density of the CPLD may not always tell you exactly the kind of
logic that can be implemented using it.
•Xilinx used Function Blocks(FBs) and Altera uses Logic Array Blocks
(LABs) in their CPLDs for SOP implementation. The gate density may be
•The dividing line between a CPLD and FPGA is already vague ( just like
the division between PC and workstation)
•You can design better circuits if you are familiar with internal
architecture