Professional Documents
Culture Documents
Presentation Overview
Design steps
Commercially available devices
Xilinx XC4000
Altera MAX 7000
Classifications
PLA a Programmable Logic Array (PLA) is a relatively
small FPD that contains two levels of logic, an ANDplane 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.
Definitions
Field Programmable Device (FPD):
a general term that refers to any type of integrated
circuit used for implementing digital hardware, where the
chip can be configured by the end user to realize
different designs.
Programming of such a device often involves placing
the chip into a special programming unit, but some chips
can also be configured in-system. Another name for
FPDs is programmable logic devices (PLDs).
Designers Choice
Drawback
MPGAs
PLA
Programmable AND Plane
Programmable OR Plane
YZ
XZ
XYZ
XY
XY+YZ
XZ+XYZ
PLA
Programmable AND Plane
Programmable OR Plane
Programmable Node
Un-programmed
Connect
Disconnect
X
X
Y
X X Y Y
O1
O2
O3
XY
XY
XY
XY
O4
PAL
Programmable AND Plane
Fix OR Plane
O1
O2
O3
O4
Logic expanders
Programmable Logic
CPLD
Architecture and Examples
PLD
Sum
of
Products
Programmable AND array followed by fixed fan-in OR gates
A
C
Programmable switch or fuse
f1 A B C A B C
f2 A B A B C
AND plane
PLD - Macrocell
Can implement combinational or
sequential logic
A
Select
Enable
f1
Flip-flop
D
Clock
AND plane
MUX
CPLD Structure
Integration of several PLD blocks with a
programmable interconnect on a single chip
PLD
Block
I/O Block
PLD
Block
I/O Block
I/O Block
Interconnection Matrix
I/O Block
PLD
Block
PLD
Block
High-Density or Complex
PLDs
HDPLD or CPLD
A
Machines
Counters
LAB
LAB
LAB
LAB
LAB
LAB
Chip-wide
interconnect
LA
(local
array)
Macroccell
Each LAB contains 16 macrocells
Configured
Combinational or Sequential logic operations
Macrocell
Logic array
Combinational
product terms
Programmable register
Logic expanders
Each
Parallel
expanders
Registered functions
Macrocell FF
Software
FF clocked
Signals from buried macrocells
I/O pins
Device power-up
I/O pins
terms
Performance
CPLDs
Macrocell
68
Logic
Design Methodologies
Standard Cells
Gate
arrays
MPGA
Rows of transistors
User specified interconnections
Within
the rows
Between
the rows
I/O circuitry
Predefined mask layers except final metal layers
Manufacturer
Metal layers
Customized
MPGA
MPGA
Drawback
Large
NRE cost
More
time to market
Advantage
General
Programmability of PLD
Scalable interconnection structure of an
MPGA
Designers Choice
Quest
Designers Choice
FPGA s
vs MPGA
Disadvantages
Low
Programmable switches
Significant resistance and capacitance in the
connections between logic blocks
Low
speed of operation
logic density
FPGA s vs MPGA
Rows of cells
Feedthrough cell
Logic cell
Routing
channel
Functional
module
(RAM,
multiplier,)
Routing channel
requirements are
reduced by presence
of more interconnect
layers
routing
channel
Why FPGAs?
Advantages of FPGAs
Limitations
PLDs will operate faster than FPGAs for the same design
implemented in both
For FPGAs the circuit delay depends on the design
implementation tools
Less dense and operate at lower speed when compared
to conventional Gate Arrays
FPGA Architecture
Interconnection Framework
Granularity
FPGA
Fine grained
Variable length
interconnect segments
Programmable switches
Timing in general is not
predictable; Timing
extracted after placement
and route
Interconnection Framework
CPLD
Coarse grained
Field Programmability
Technology of Programmable
Elements
SRAM based
Fuse based
EPROM/EEPROM/Flash based
Desired properties:
Minimum
area consumption
Low on resistance; High off resistance
Low parasitic capacitance to the attached wire
Reliability in volume production
SRAM Programming
Technology
Anti-fuse Programming
Technology
impedance state
But can be fused irreversibly into low impedance
state by applying high voltage
Anti-fuse Programming
Technology
Cannot be re-programmed
(Design
EPROM Programming
Technology
Used
as pulldown devices
Consumes static
power
EPROM Programming
Technology
No
EEPROM Programming
Technology
EEPROM Programming
Technology
EEPROM Programming
Technology
Re-programmable;
Programming Technologies
An FPGA device
to allow the implementation of practically any logic circuit
requires an area trade-off between a sufficient number of
flexible configurable logical cells and
enough interconnect resources to allow all connections between these cells.
majority of circuits
a small portion of routing and logic resources,
Resulting in a loss in speed (signal passing through redundant routing
elements)
density of logic when compared to the same circuit implemented in dedicated
logic.
Single-threading
No synchronization
for/if/switch control
Incremental execution
One instruction at a time
Results are immediate
Common parallelization
Large units of work
Costly communication
FPGA Model
Massive parallelism
Visible timing relations
State machine/hardwired
Pipelined execution
All operations active
Visible dependencies
Parallelism model
Fine grain one ALU op
Cheap on-chip comm.
An Example
Modulo-4 counter:
Specification
FPGA Implementation of
Modulo-4 Counter
Commercially Available
Devices
Architecture
devices
Xilinx FPGAs
What is an FPGA?
contain the building blocks necessary to design
a custom integrated circuit without having to turn
to an outside foundry.
logic blocks
Interconnects and
I/O blocks
All of these can be programmed to do a particular function
memory-based (SRAM or flash EEPROM)
anti-fuse
A designer needs to develop a special program and have that program uploaded to the FPGA.
FPGAs could be considered more of a software development than a hardware development
effort.
Intellectual property -IP, placed inside the FPGA, can either be developed by the designer or via
a third party.
Why FPGAs?
Advantages of FPGAs
Limitations
PLDs will operate faster than FPGAs for the same design
implemented in both
For FPGAs the circuit delay depends on the design
implementation tools
Less dense and operate at lower speed when compared
to conventional Gate Arrays
FPGA manufacturers
Xilinx (http://www.xilinx.com) SRAMbased FPGAs ( tens of thousands
to millions upon
millions of gates).
Altera
(http://www.altera.com) SRAM
based FPGAs
Lattice Semiconductor (http://
www.latticesemi.com)
Actel (http://www.actel.com)
Quick Logic (http://www.quicklogic.com)
Classification by Granularity
Coarse-grained architecture
Memory implementation:
input values = address of memory
predefined values = content of memory
Look up Tables
Configuration memory
holds outputs for truth
table
Internal signals connect
to control signals of
multiplexers to select
value of truth table for
any given input value
Synthesis mode
Arithmetic mode
Multiplier mode
Counter mode
The LUT provides two logic
functions (counter Output and
Carryout) of the same 2 variables,
which are a Carry-in and the
previous Output. The feedback loop
to use this output as an input is
normally provided for within the
CLC; this could also be
implemented externally by
connecting appropriate routes.
An Example
Modulo-4 counter:
Specification
Multiplexer to decrease
LUT size
Registered output via
multiplexer selectable
A multi-faceted LUT
A "slice" containing two logic cells.
logic-block hierarchy
LC, then Slice (with two LCs), then
all of the LUTs within a CLB can be configured together to implement the following:
Single-port 16 8 bit RAM
Single-port 32 4 bit RAM
Single-port 64 2 bit RAM
Single-port 128 1 bit RAM
Dual-port 16 4 bit RAM
Dual-port 32 2 bit RAM
Dual-port 64 1 bit RAM
each 4-bit LUT can be used as a 16-bit shift register
the LUTs within a single CLB to be configured together to implement a shift register
containing up to 128 bits as required
A key feature - the special logic and interconnect required to implement fast carry chains.
In the context of the CLBs, each logic cell (LC) contains special carry logic.
This is complemented by dedicated interconnect between the two LCs in each slice,
between the slices in each CLB, and between the CLBs themselves.
This special carry logic and dedicated routing boosts the performance of logical functions
such as counters and arithmetic functions such as adders.
The availability of these fast carry chains in conjunction with features like the shift
register incarnations of LUTs and the embedded multipliers.
FPGA
families
Low-cost
High-performance
Spartan 3
Virtex 4 LX / SX / FX
Spartan 3E
Virtex 5 LX
Xilinx
Spartan 3L
Altera
Cyclone II
Stratix II
Stratix II GX
Old families
XC3000, XC4000, XC5200
Old 0.5m, 0.35m and 0.25m technology. Not
recommended for modern designs.
Low Cost Family
Spartan/XL derived from XC4000
Spartan-II derived from Virtex
Spartan-IIE derived from Virtex-E
Spartan-3, Spartan 3E, Spartan 3L
High-performance families
Virtex (220 nm)
Virtex-E, Virtex-EM (180 nm)
Virtex-II, Virtex-II PRO (130 nm)
Virtex-4 (90 nm)
Virtex 5 (65 nm)
Xilinx XC3000
CLB
Granularity of FPGAs
Selection of an FPGA
anti-fuse versus reprogrammable configuration, blockstructured versus channel-structured routing, and lookup table
(LUT) versus multiplexer versus sum-of-products logic.
Selecting an FPGA
Size
I/O pins
A large FPGA may be able to squeeze in all of your required IP, but the resultant
cost might break the project's budget. It may make more sense to only
incorporate certain IP into the FPGA and use off-the-shelf components for the
rest of the design.
Performance
A designer needs to know how many pins they must share with the circuit
outside of the FPGA. For example, serialization and de-serialization of signals
can use up many pins.
Unit price
Power consumption
FPGAs
Architecture
Gate Density
Routing Resources
Programming method
Clock trees
Clock manager
Jitter removal
Frequency synthesis
Phase shifting
Selecting an FPGA
Size
I/O pins
A large FPGA may be able to squeeze in all of your required IP, but the resultant cost
might break the project's budget. It may make more sense to only incorporate certain
IP into the FPGA and use off-the-shelf components for the rest of the design.
Performance
A designer needs to know how many pins they must share with the circuit outside of
the FPGA. For example, serialization and de-serialization of signals can use up many
pins.
Unit price
FPGA vendors measure density or size in different ways. Nonetheless, a designer will
need a ballpark understanding of what type of FPGA product they require.
Power consumption
Design Entry
Involves capturing the design using a high-level description
Logic Synthesis
optimizes the circuit by regrouping logic functions and/or removing
redundancies.
according to design constraints or rules, which could be minimizing
area or maximizing velocity.
Once the optimized netlist is obtained, it has to be mapped onto
the logical cell of the FPGA (LUT / flip-flop, PLA ... ).
Floorplanning
Layout Verification
Macro Integration
This involves the provision of all the necessary files and data
formats for integrating the macro in the design flow of the
whole chip.
Once the circuit would have been verified, the design
configuration is output in a format which is readable as an input
to the FPGA device which is to be programmed.
The programming of the device could be a question of minutes .
ASIC designers use a battery of simulators across the speedaccuracy spectrum in an attempt to verify the design.
FPGA Configuration
mode
Comparison:
FPGA benefits vs ASICs:
- Design time:
- Cost:
- Volume:
Due to Moores law, many ASIC market requirements now met by FPGAs
- Eg. Virtex II Pro has 4 processors, 10 Mb memory, IO
Cost
SICs
A
m
m
0
0
2
/
150nm
s
s
A
A
G
G
P
P
F
F
m
m
m
0
0
m
3
0
/
0
2
m
/
0n
9
m
n
0
15
FPGA FPGA
Cost Advantage
Cost
Advantage
ASIC Cost
ASICAdvantage
Cost Advantage
FPGA
Cost Advantage
Production Volume