Transcript Document
Introduction to ComputerAided Hardware Design
Life is like a symphony. It all depends on how you conduct it
CMSC411/Computer Architecture
These slides and all associated material are
© 2003 by J. Six and are available only for
students enrolled in CMSC411.
Life is like a symphony. It all depends on how you conduct it.
CMSC411 – Computer Architecture / © 2003 J. Six
Use and Distribution Notice
Possession of any of these files implies understanding and
agreement to this policy.
The slides are provided for the use of students enrolled in Jeff
Six's Computer Architecture class (CMSC 411) at the University of
Maryland Baltimore County. They are the creation of Mr. Six and
he reserves all rights as to the slides. These slides are not to be
modified or redistributed in any way. All of these slides may only
be used by students for the purpose of reviewing the material
covered in lecture. Any other use, including but not limited to, the
modification of any slides or the sale of any slides or material, in
whole or in part, is expressly prohibited.
Most of the material in these slides, including the examples, is
derived from slides developed by Prof. Gao at the University of
Delaware. Credit is hereby given to the author of these slides for
much of the content. This content is used here for the purpose of
presenting this material in CMSC 411, designed in a similar model.
CMSC411 – Computer Architecture / © 2003 J. Six
Historical Perspective on
Hardware Design
The market for digital hardware is an extreme
market. It demands high performance, lower
power consumption, and smaller footprint.
Technology is evolving at a fantastic rate.
This includes an ever decreasing feature size,
tighter VLSI integration, new mounting and
new packaging technologies.
This demands a new design methodology…
must deal with greater complexity
decreasing time-to-market schedules
CMSC411 – Computer Architecture / © 2003 J. Six
The New Design Methodology
We require…
increased efficiency
tools to capture, understand, and maintain a
design
designs that are not open to interpretation
an open and widely used standard
portability and reusability
hierarchical design capabilities
modular design capabilities
easy of use for design, modeling, simulation
CMSC411 – Computer Architecture / © 2003 J. Six
Enter VHDL
VHDL is a language for describing models of
hardware systems (one of many – but the
most popular).
Using VHDL and programmable hardware, we
can use a fix step design process…
Define the requirements.
Describe the designs in VHDL.
Simulate the VHDL source code.
Synthesize, optimize and place-and-route the
design for our target programmable device.
Simulate the post-layout design.
Program the target programmable device.
CMSC411 – Computer Architecture / © 2003 J. Six
Design Requirements
To form a useable set of design requirements,
we need to clearly identify and define the
objectives and requirements.
functionality?
timing requirements?
set-up and hold times?
clock-to-output times?
minimal operating frequency?
critical path delays?
and so on…
Modern Hardware
Design Process
CMSC411 – Computer Architecture / © 2003 J. Six
Simulation is a source code simulation using a
VHDL simulator.
Synthesis flattens the hierarchical design and
transforms it into a monolithic RTL representation.
Optimization then makes that monolithic design
as efficient as it can.
Once that is done, the optimized design is
subjected to a layout tool…
Fitting – this involves the translation from the RTL to a
minimum sum of product expression for programming
into a CPLD programmable device.
Place-and-route – this involves the translation from
RTL to a FPGA device’s specific requirements.
CMSC411 – Computer Architecture / © 2003 J. Six
Example Synthesis Process
CMSC411 – Computer Architecture / © 2003 J. Six
Post-Layout Simulation
After the appropriate layout process has
completed, timing information is now present
in the design.
The synthesis and layout tools figure out
timing characteristics based on the device
being programmed.
This post-layout code can then be simulated
to see if the finished device meets all of the
design objectives.
If it does, excellent!
If not, a different target device could be used, or
the VHDL code could be modified.
CMSC411 – Computer Architecture / © 2003 J. Six
Device
selection
VHDL
design
Synthesis
directives
Synthesis software
Example Design
Tool Flow
Netlist
or
equations
Fitter or place & route routines
Postlayout
simulation
model
(VHDL or
other
format)
Test
bench
or other
stimulus
Report
file:
resource
summary;
static
timing
analysis
Simulation software (VHDL or other simulator)
Waveform
Data file
Device
programming
file:
(for example,
JEDEC
format)
CMSC411 – Computer Architecture / © 2003 J. Six
Programmable Devices
Source: Dataquest
Logic
Standard
Logic
Programmable
Logic Devices
(PLDs)
SPLDs
(PALs)
ASIC
Gate
Arrays
CPLDs
Cell-Based
ICs
Full Custom
ICs
FPGAs
SPLD – simple programmable logic device
CPLD – complex programmable logic device
FPGA – field programmable gate array
CMSC411 – Computer Architecture / © 2003 J. Six
FPGAs
A FPGA is a field programmable gate array.
This is an array of logic cells that are connected via
routing channels.
Each logic cell is programmable, as are the routing
channels.
Each logic cell is a lookup table (LUT) with some
registers.
Most FPGAs have special I/O cells and
interconnections to onboard RAM.
Once the design has been subjected to place-androute, the netlist is then given to a programming
device which programs the FPGA. The FPGA then
functions as our hardware until it is reprogrammed.
CMSC411 – Computer Architecture / © 2003 J. Six
FPGA Advantages
FPGAs have a number of advantages
Good performance (they are fast).
High density and high capacity (they can
act as large pieces of hardware).
They are easy to use.
They are programmable and
reprogrammable (a huge amount of times).
They are not very expensive.
CMSC411 – Computer Architecture / © 2003 J. Six
CPLDs versus FPGAs
A CPLD is a complex programmable logic device
(like a PLA or PAL, but somewhat more complex).
Complex Programmable Logic Device
Field-Programmable Gate Array
Architecture
PAL/22V10-like
More Combinational
Gate array-like
More Registers + RAM
Density
Low-to-medium
0.5-10K logic gates
Medium-to-high
1K to 500K system gates
Performance
Predictable timing
Up to 200 MHz today
Application dependent
Up to 135MHz today
Interconnect
“Crossbar”
Incremental
CMSC411 – Computer Architecture / © 2003 J. Six
A Sample CPLD
Looking into a sample CPLD (XC9500)…
3
JTAG
Controller
JTAG Port
In-System
Programming Controller
Function
Block 1
I/O
I/O
I/O
I/O
Blocks
I/O
Global
Clocks
Global
Set/Reset
Global
Tri-States
Function
Block 2
FastCONNECT
Switch Matrix
Function
Block 3
3
1
Function
Block 4
2 or 4
CMSC411 – Computer Architecture / © 2003 J. Six
A Sample FPGA
Looking into a sample FPGA (the Xilinx XC4000)…
CLB
Slew
Rate
Control
CLB
Switch
Matrix
D
CLB
Input
Buffer
Programmable
Interconnect
C1 C2 C3 C4
H1 DIN S/R EC
S/R
Control
DIN
G
Func.
Gen.
SD
F'
H'
EC
RD
1
F4
F3
F2
F1
H
Func.
Gen.
F
Func.
Gen.
Y
G'
H'
S/R
Control
DIN
SD
F'
D
G'
Q
H'
1
H'
K
Q
D
G'
F'
Vcc
Output
Buffer
CLB
Q
G4
G3
G2
G1
Q
Passive
Pull-Up,
Pull-Down
EC
RD
X
Configurable
Logic Blocks (CLBs)
D
Delay
I/O Blocks (IOBs)
Pad
CMSC411 – Computer Architecture / © 2003 J. Six
Complex Logic Blocks
Each XP4000 Complex Logic Block…
C1 C2 C3 C4
2 four-input function
generators (LUTs)
- act as a 16x1 RAM
or as logic function
2 registers
- Each can be
configured as a
flip/flop or a latch
- synchronous and
asynchronous
Set/Reset
H1 DIN S/R EC
S/R
Control
G4
G3
G2
G1
DIN
F'
G'
G
Func.
Gen.
SD
H
Func
.Gen.
F
Func.
Gen.
EC
RD
G'
H'
Y
S/R
Control
DIN
SD
F'
G'
D
Q
XQ
H'
1
H'
K
YQ
H'
1
F4
F3
F2
F1
Q
D
F'
EC
RD
X
CMSC411 – Computer Architecture / © 2003 J. Six
Function Generators / LUTs
Each function generator in the XC4000…
Combinatorial Logic
Look Up Table
4-bit address
A
B
Z
C
D
Capacity is limited by number of
inputs, not complexity
Each function generator can act
as 4 input LUT or as high speed
synchronous dual port RAM
WE
G4
G3
G2
G1
G
Func.
Gen.
A B C D
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
Z
0
0
0
1
1
1
. . .
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
CMSC411 – Computer Architecture / © 2003 J. Six
Input/Output Blocks
The I/O Blocks in the XC4000…
CMSC411 – Computer Architecture / © 2003 J. Six
FPGA Routing
Most FPGAs have a routing network that
connects the complex logic blocks and I/O
blocks (in a programmable manner).
CLB
Switch
Matrix
CLB
Switch
Matrix
CLB
CLB
CMSC411 – Computer Architecture / © 2003 J. Six
Design Flow for ASICs
Although we have discussed targeting
programmable logic devices, VHDL can also be
synthesized and subjected to layout for
fabrication as an ASIC.
This requires a different set of tools but follows
the same design process.
Typical flow…
Design in VHDL and simulate.
Synthesize and layout for FPGAs.
Simulate and then program FPGA.
Test the FPGA hardware.
Synthesize and layout for ASIC.
Simulate.
Send to fabrication.