Ch.9 CPLD/FPGA Design

advertisement
Ch.9 CPLD/FPGA Design
TAIST ICTES Program
VLSI Design Methodology
Hiroaki Kunieda
Tokyo Institute of Technology
Outline
1. CPLD & FPGA
2. Design Procedure
2
9.1 Programmable Device
FPGA





Reconfigurable LSI or Programmable Hardware
Programmable Logic Array and Programmable
Interconnection
Programmed by Reconfigurable Data
Xilinx and Altera
Prototyping of ASIC (different physical
condition)
4
The Programmable Marketplace
Q1 Calendar Year 2005
PLD Segment
Actel
Lattice
5% 7%
FPGA Sub-Segment
Xilinx
QuickLogic: 2%
Other: 2%
58%
33%
51%
31%
Altera
Xilinx
Altera
Two dominant suppliers, indicating a maturing market
Source: Company reports
Latest information available; computed on a 4-quarter rolling basis
ECE 545 – Introduction to VHDL
11%
All Others
FPGA families
Low-cost
Xilinx
Altera
Spartan 3
Spartan 3E
Spartan 3L
Cyclone II
ECE 545 –
Introduction to VHDL
High-performance
Virtex 4 LX / SX / FX
Virtex 5 LX
Stratix II
Stratix II GX
Xilinx and Altera FPGA
Xilinx
#gates
Program
Clock
Note
Virtex
50k-10M
SRAM
550MHz
System
Spartan
5k-300k
SRAM
250MHz
ASIC
XC9500
13k-85k
SRAM
100MHz
Altera
#gates
Program
Clock
Note
Stratix
180k
SRAM
500MHz
High end RAM & Multiplier
Cyclone
16k
SRAM
200MHz
Low cost
FLEX
10k-250k
SRAM
200MHz
High Speed
MAX(CPLD)
600-10K
EEPROM
150MHz
Low Price
9.2 PLD
CPLD
9
Function Block in CPLD
Example of PLD Design
X=0
000
State Transition Table
X=1
001
011
111
110
100
Y=1
S1 S2 S3 X
S1 S2 S3 Y
0 0
0 0
0 0
0 0
0 0
0 1
0 0
1 0
0 0
1 *
0 1
1 0
0 1
1 *
1 1
1 0
1 1
1 *
1 1
0 0
1 1
0 *
1 0
0 0
1 0
0 *
0 0
0 1
PLA & FF Realization
S1 S2 S3 X
DS1 DS2 DS3 Y
0 0
0 0
0 0
0 0
0 0
0 1
0 0
1 0
0 0
1 *
0 1
1 0
0 1
1 *
1 1
1 0
1 1
1 *
1 1
0 0
1 1
0 *
1 0
0 0
1 0
0 *
0 0
0 1
S1
DS1
S2
DS2
S3
DS3
PLA
AND-OR
X
Y
DFF
DFF
DFF
9.3 FPGA
Xilinx FPGA
Configurable
Logic
Blocks
Block RAMs
Block RAMs
I/O
Blocks
Block
RAMs
ECE 545 –
Introduction to VHDL
Xilinx CLB
Configurable logic block (CLB)
CLB
CLB
CLB
CLB
ECE 545 –
Introduction to VHDL
Slice
Slice
Logic cell
Logic cell
Logic cell
Logic cell
Slice
Slice
Logic cell
Logic cell
Logic cell
Logic cell
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
LUT <Look Up Table>
LUT Structure
Interconnection
Logic Block
Advantages and Disadvantages

Advantages





Disadvantages


19
Short TAT(Turn-Around Time)
Small NRE (Non Recurrent Expense) Fee
Logic and Timing Design are required.
Full amount of IP (Intellectual Property)
Slow speed and Large Chip Area
High cost for volume manufacturing
9.4 FPGA Design
FPGA Design
RTL
RTL Simulation
Logic Synthesis
LSI Tool
FPGA Tool
Synthesis
Netlist
Gate Assignment
LE Place and Rout
Configuration
Data
Functional Verification
FPGA Design Flow
1bit Adder/Subtracter
4bit Adder/Subtracter
FPGA Design
Three-Step Design Compilation in Quartus II Software
1. Run the New Project Wizard
a. Specify project directory, name, and top-level entity.
b. Specify project design files.
c. Specify Altera device family for the design.
d. Specify device (or specify device information for
automatic device selection).
e. Specify other EDA tools to be used for this project.
f. Review project settings.
2. Run the TimeQuest Timing
Analyzer
a. On the Process menu, click Start Analysis & Synthesis to build a
netlist in preparation for TimeQuest timing analyzer use.
b. On the Tools menu, click TimeQuest Timing Analyzer to launch
TimeQuest analyzer.
i. On the Netlist menu, click Create Timing Netlist and select Postmap to create the timing netlist with timing delay information.
ii. Specify your design timing constraints using the analyzer’s graphical
user interface (GUI) or by using the Synopsys Design Constraint
(SDC) text editor.
c. On the Assignment menu, click Timing Analysis Settings to specify
TimeQuest analyzer as the timing analysis tool and to add your SDC file
to the project.
Quartus II Assignment menu provides all settings and assignments
for the project.
3. Compile the Design
a. Select one of the following methods to compile the design:
i. On the Processing menu, click Start Compilation.
ii. On the menu toolbar, click .
iii. On the Processing menu, click Compiler Tool and click Start.
b. When compilation is complete, refer to the Compilation Report window to
view information on compiler settings, resource usage, and compilation
equations.
Timing analysis is also performed during compilation on the current design,
and the Compilation Report window includes the timing information.
9.5 Optimization
Trade-offs
speed
area
power
testability
Speed optimization (1)




better architecture (e.g., CLA vs. ripple
carry adder)
pipelining
parallel processing
optimization options of synthesis and
implementation tools
Speed optimization (2)



reducing fanout of control signals
better state encoding
registered outputs from the state machine
ECE 545 –
Introduction to VHDL
Download