Chapter4ASICs CPLD and FPGA Architectures
Chapter4ASICs CPLD and FPGA Architectures
INTRODUCTION TO DIGITAL
SYSTEM DESIGN
PLDs, CPLD,FPGA and ASICs
Architectures
3-1
Outline
Introduction
Simple Programmable Logic Designs (SPLDs)
PLA
PAL
Complex Programmable Logic Designs (CPLDs)
Field-Programmable Gate Array (FPGAs)
Logic Blocks
Programmable Routing Switches
I/O Pads
Commercial FPGA Products
Application Specific Integrated Circuits (ASICs)
2
Introduction: Digital System Design
DSP [software-based]
Easy to program (usually standard C)
Very efficient for complex sequential math-intensive tasks
Fixed data path-width. Ex: 24-bit adder, is not efficient for 5-bit
addition
Limited resources
I. Conventional Approach:
Board-based designs
Large # of chips (containing basic logic gates) on a single Printed Circuit
Board (PCB) VDD
PCB Board
7404
7408 7432
X1
X2
X3 Out
Introduction: Digital System Design
3-8
Programmable Logic
Digital IC
PLDs ASIC
This course
PLD
• The first PLDs were Programmable Logic Arrays (PLAs).
• A PLA is a combinational, 2-level AND-OR device that can be
programmed to realise any sum-of-products logic expression.
• A PLA is limited by:
• the number of inputs (n)
• the number of outputs (m)
• the number of product terms (p)
• We refer to an “n x m PLA with p product terms”. Usually, p << 2 n.
• An n x m PLA with p product terms contains p 2n-input AND gates
and m p-input OR gates.
PLD • Each input is connected to a buffer that produces a true and a
complemented version of the signal.
PLD structures are the base to implement many of structures and blocks
shown in next slides
PLDs
16V8 (20 Pins)
The white portions of the timeline bars indicate that although early incarnations of these
technologies may have been available, they weren’t enthusiastically received by the engineers
working in the trenches during this period. For example, although Xilinx introduced the world’s first
FPGA as early as 1984, design engineers didn’t really start using it until the early 1990s.
Simple Programmable Logic Designs (SPLDs)
x1 x2 x1 x3 x1 x2 x3 AND plane
f1 f2
SPLD: Programmable Logic Arrays (PLA)
Programmable
connections
OR plane OR plane
Unwanted P1 P1
connections
P2
are “blown” P2
P3
P3
P4
P4
AND plane
AND plane
Short-hand notation f1 f2
f1 f2
SPLD: PLAs
Advantages:
PLA is efficient in terms of its required area for its implementation on IC
Often used as part of larger chips, e.g., microprocessors
Drawbacks:
Two-level programmable logic planes are difficult to fabricate
Two-level programmable structure introduces significant propagation
delay
Normally many pins, large package thus, high fabrication cost
To overcome these drawbacks, PAL was introduced
S P L DP:ro g amr m ba leA ray L o g ic(P
A L )
x1 x2 x3
PAL:
Consists of two levels of logic gates
P1
Programmable “wired” AND-plane
Fixed OR-gates P2
f1
Advantages: P4
f2
Simpler to fabricate
Better performance AND plane
Drawbacks: Fixed OR
Less flexibility
f1 x1x2x3
x1x2x3
f2 x1x2x3
SPLD: Programmable Array Logic (PAL)
To increase flexibility:
PALs with various sizes of OR-gates.
Add extra circuitry to the OR-gate output (Called
“Macrocell”)
To complement Allows Flip-flop Used to connect/disconnet
if needed bypass to the output pin
Each macrocell ~ 20 gates Macrocell Select
Enable
f1
Flip-Flop D Q
0/1
To AND plane
PLAs are more flexible than PALs since both AND & OR planes are
programmable in PLAs.
Because both AND & OR planes are programmable, PLAs are expensive
to fabricate and have large propagation delay.
By using fix OR gates, PALs are cheaper and faster than PLAs.
3-23
PAL vs. PLA vs. ROM
I3 I2 I1 I I5 I4 I3 I2 I1 I0
Programmable OR array I5 I4 I3 I2 I1 I
0
Fixed OR array Programmable OR array
0
10 inputs/outputs #1
11
Variable OR gates (8 to 16 Inputs
inputs)
10
Macrocell In/Out
#2
AND
Plane 12
Macrocell In/Out
#3
8
Macrocell In/Out
#10
Clk
SPLD Scalability
Solution:
Integrate multiple SPLDs onto a single chip
Plus internal programmable interconnect to connect them
together
I/O
I/O Block
I/O Block
• PLD
PLD PLD
PLD •
Block
Block
• Block •
• Block Block
Block •
Interconnection
Interconnection Matrix
Matrix
I/O
I/O
I/O Block
I/O Block
• PLD
PLD PLD
PLD •
Block
Block
• •
• Block
Block Block
Block •
28
CPLD
I/O block
block
critical
I/O block
PAL
block
Commercial
CPLDs:
Manufacturer Product
Altera MAX 7000, MAX 10K
Interconnection wires
Atmel ATF
Xilinx XC9500
AMD Mach series
PAL
ICT PEELArray
I/O block
block
I/O block
PAL
Lattice ispLSI series block
CPLD: Altera MAX7000
Comprises:
Several Logic Array Blocks (LAB), a set of 16 macrocells
Programmable Interconnect Array (PIA)
Consists of set of wires that span the entire device
Makes connections between macrocells and chip’s input/output
In total pins
consists of 32 to 512
macrocells PIA
LAB LAB
Four dedicated input pins
For global clock or FF resets LAB LAB
LAB LAB
I/O block
PAL-like PAL-like
block block
Programmable interconnect
I/O block
I/O block
PAL-like PAL-like
block block
3-31
Complex PLDs
•Ultra37000 Family
•32 to 512 Macrocells
•Fast (Tpd 5 to 10ns depending on
number of macrocells)
•Very good routing resources for a
CPLD
A General CPLD structure
Manufacturer
Manufacturer CPLD
CPLDProducts
Products URL
URL
Altera
Altera MAX
MAX5000,
5000,7000
7000&&9000
9000 www.altera.com
www.altera.com
Altmel
Altmel ATF
ATF&&ATV
ATV www.atmel.com
www.atmel.com
Cypress
Cypress FLASH370, Ultra37000
FLASH370, Ultra37000 www.cypress.com
www.cypress.com
Lattice
Lattice ispLSI
ispLSI1000
1000toto8000
8000 www.latticesemi.com
www.latticesemi.com
Philips
Philips XPLA
XPLA www.philips.com
www.philips.com
Vantis
Vantis MACH
MACH11toto55 www.vantis.com
www.vantis.com
Xilinx
Xilinx XC9500
XC9500 www.xilinx.com
www.xilinx.com
Let’s
Let’stakes
takesaalook
lookatatthis
this
I/O Cell
LAB (Logic Array Block)
LAB LAB
LA
(local
•••
LAB LAB
array)
LAB LAB
3-37
Macrocell of Altera MAX CPLD
System clock System enable
Local Array
Clock, clear, preset, enable
3
Programmable
inversion
M OUT
D Q
5
Product term
select
Parallel expander
To next macrocell
114
Macrocell
MAX 9000 has 33 inputs, can you explain why LA has 114 inputs?
3-38
CPLD: Altera MAX7000
LA
PIA
LAB LAB
LAB LAB
LAB LAB
Altera MAX
CPLD: Altera MAX7000
Comprises:
Wide programmable AND array followed by
A narrow fixed OR array
LAB
column channel row channel
t PIA
LAB2
LAB
1
PIA
t PIA
LAB6
MachPALs
4: I/O 34V16 34V16 34V16 34V16 I/O
Consists of:
6 to 16 PAL (2K-5K I/O 34V16 34V16 34V16 34V16 I/O
I/O
Circuits that can exploit wide AND/OR gates and do not need
large number of flip-flops
Graphic controllers
LAN controllers
UARTs
Cache control
Advantages:
Easy to re-program even in-system
Predictability of circuit implementation
High-speed implementation
Circuit Size Metric
Size Metric:
How many basic gates can be built on the circuit
Common measure: number of two-input NAND
gates
2,000,000
Device Size Design Type
SPLD ~ 200 gates Small
Equivalent gates
200,000
CPLD ~ 10,000 gates Moderate
FPGA ~ 1,000,000 gates Large 2000
200
Popular applications:
Fabrics
Multiplier blocks
Logic Logic
2. Program. Routing Switches
Memory Multiplier
Block Block
Programmable
horizontal/vertical routing Logic
Block
Memory
Logic
Block
Multiplier
channels
Connecting blocks together Logic Logic
3. I/O Blocks
Memory Multiplier
and I/O
Block Block
LB LB LB LB LB ME LB MU
LB LB LB LB LB ME LB MU
LB LB LB LB LB ME LB MU
LB LB LB LB LB ME LB MU
Homogeneous Heterogeneous
FPGA Categories (Floor Plan)
I/O Blocks
LB ME LB MU
I/O Blocks
LB LB
I/O Blocks
ME MU
Symmetrical Row-Based
Array LB ME LB MU
LB ME LB MU
I/O Blocks
I/O Blocks
I/O Blocks
PLD
PLD PLD PLD
Block
Sea-of-Gates Hierarchical
I/O Blocks
PLD
PLD PLD
Block
I/O Blocks
PLD
I/O Blocks
I/O Blocks
Central Switch Matrix PLD
PLD PLD
PLD
PLD PLD
PLD PLD PLD
With FPGAs, the user is given full freedom to define the architecture
which best suits the application.
FPGA Categories (Fabrics)
SRAM-Based Antifuse-Based
FPGAs
GAL16V8
(review seq_1.ppt)
• Each output is
programmable as
combinational or registered
• Also has programmable
And
AndPlane
Plane
output polarity
XOR
XORgates
gatestoto
make
makeinverting
invertingoror
non-inverting
non-invertingbuffer
buffer
Lect #14 Rissacher EE365
Classifications of Early Programmable Logic
PLA — a Programmable Logic Array (PLA) is a relatively
small FPD that contains two levels of logic, an AND-
plane and an OR-plane, where both levels are
programmable
PAL — a Programmable Array Logic (PAL) is a relatively
small FPD that has a programmable AND-plane
followed by a fixed OR-plane
SPLD — refers to any type of Simple PLD, usually either a
PLA or PAL
CPLD — a more Complex PLD that consists of an
arrangement of multiple SPLD-like blocks on a
single chip.
FPGA — a Field-Programmable Gate Array is an FPD
featuring a general structure that allows very high
logic capacity. 3-60
PLA
Programmable AND Plane Programmable OR Plane
Programmable Node
Un-programmed
Connect
Disconnect
X Y O1 O2 O3 O4
X XY
Y XY
XY XY
X X Y Y
3-61
PLA
XZ
XYZ
XY
X Y Z XY+YZ ? ?
XZ+XYZ
3-62
PAL
X Y O1 O2 O3 O4
3-63
PAL with Logic Expanders
Programmable AND Plane
Fix OR Plane
Logic expanders
3-64
FPGAs
FPGA Structure
Programmable
Logic cell interconnect
I/O Cell
3-66
FPGA v.s. CPLD
Capacitance
SPLDs CPLDs FPGAs
Equivalent gates 0 ~ 200 200 ~ 12,000 1000 ~ 1,000,000
Applications
CPLDs FPGAs
1. Implement random glue logics or
Replace circuits previously 1. FPGAs can be used in various
implemented by multiple SPLDs applications: prototyping, FPGA-based
2. Circuits that can exploit wide computers, on-site hardware re-
AND/OR gates, and do not need configuration, DSP, logic emulation,
a very large number of flip-flops network components, etc.
are good candidates for
implementation in CPLDs.
3-67
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 doesn’t 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.
Lect #14 Rissacher EE365
Reasons to use an FPGA
• Interconnect
• How fast is it? Does it offer ‘high speed’ paths that cross the chip? How many of
these?
• How routable is the design? If 95% of the logic elements are used, can I route the
design?
• More routing means more routability, but less room for logic elements
Issues in FPGA Technologies
(cont)
• Macro elements
• Are there SRAM blocks? Is the SRAM dual ported?
• Is there fast adder support (i.e. fast carry chains?)
• Is there fast logic support (i.e. cascade chains)
• What other types of macro blocks are available (fast decoders?
register files? )
• Clock support
• How many global clocks can I have?
• Are there any on-chip Phase Logic Loops (PLLs) or Delay Locked
Loops (DLLs) for clock synchronization, clock multiplication?
Issues in FPGA Technologies (cont)
• What type of IO support do I have?
• TTL, CMOS are a given
• Support for mixed 5V, 3.3v IOs?
• 3.3 v internal, but 5V tolerant inputs?
• Full-Custom ASICs
• Standard-Cell–Based ASICs
• Gate-Array–Based ASICs
• Channeled Gate Array
• Channelless Gate Array
• Structured Gate Array
• Programmable Logic Devices
• Field-Programmable Gate Arrays
Full-Custom ASICs
2 Design is specified generally using hardware description languages (HDL) Same as for FPGA. Design is specified using HDL such as Verilog, VHDL etc.
such as VHDL or Verilog.
Very high entry-barrier in terms of cost, learning curve, liaising with
3 Easier entry-barrier. One can get started with FPGA development for as semiconductor foundry etc. Starting ASIC development from scratch can
low as USD $30. cost well into millions of dollars.
4 Not suited for very high-volume mass production. Suited for very high-volume mass production.
5 Less energy efficient, requires more power for same function which ASIC Much more power efficient than FPGAs. Power consumption of ASICs can
can achieve at lower power. be very minutely controlled and optimized.
6 Limited in operating frequency compared to ASIC of similar process ASIC fabricated using the same process node can run at much higher
node. The routing and configurable logic eat up timing margin in FPGAs. frequency than FPGAs since its circuit is optimized for its specific function.
7Analog designs are not possible with FPGAs. Although FPGAs may contain ASICs can have complete analog circuitry, for example WiFi transceiver, on
specific analog hardware such as PLLs, ADC etc, they are not much flexible the same die along with microprocessor cores. This is the advantage which
to create for example RF transceivers. FPGAs lack.
8 FPGAs are highly suited for applications such as Radars, Cell Phone Base ASICs are definitely not suited for application areas where the design
Stations etc where the current design might need to be upgraded to use might need to be upgraded frequently or once-in-a-while.
better algorithm or to a better design. In these applications, the high-cost
It is not recommended to prototype a design using ASICs unless it has been
of FPGAs is not the deciding factor. Instead, programmability is the
absolutely validated. Once the silicon has been taped out, almost nothing
deciding factor.
can be done to fix a design bug (exceptions apply).
9 Preferred for prototyping and validating a design or concept. Many ASICs
ASIC designers need to care for everything from RTL down to reset tree,
are prototyped using FPGAs themselves! Major processor manufacturers
clock tree, physical layout and routing, process node, manufacturing
themselves use FPGAs to validate their System-on-Chips (SoCs). It is easier
constraints (DFM), testing constraints (DFT) etc. Generally, each of the
to make sure design is working correctly as intended using FPGA
mentioned area is handled by different specialist person.
prototyping.
10 FPGA designers generally do not need to care for back-end design.
Everything is handled by synthesis and routing tools which make sure the 3-87
design works as described in the RTL code and meets timing. So, designers
can focus into getting the RTL design done.