Welcome to the ECE 449 Computer Design Lab

advertisement
ECE 448
Lecture 5
FPGA Devices
& FPGA Design Flow
ECE 448 – FPGA and ASIC Design with VHDL
George Mason University
What is an FPGA?
Configurable
Logic
Blocks
Block RAMs
Block RAMs
I/O
Blocks
Block
RAMs
ECE 448 – FPGA and ASIC Design with VHDL
2
Modern FPGA
RAM blocks
RAM
blocks
Multipliers
Multipliers/DSP
units
Logic
blocks
Logic
resources
(#Logic resources, #Multipliers/DSP units, #RAM_blocks)
Graphics based on The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
3
Major FPGA Vendors
SRAM-based FPGAs
• Xilinx, Inc.
~ 51% of the market
• Altera Corp. ~ 34% of the market
• Lattice Semiconductor
• Atmel
~ 85%
Flash & antifuse FPGAs
• Actel Corp. (Microsemi SoC Products Group)
• Quick Logic Corp.
ECE 448 – FPGA and ASIC Design with VHDL
4
Xilinx

Primary products: FPGAs and the associated CAD
software
Programmable
Logic Devices


ISE Alliance and Foundation
Series Design Software
Main headquarters in San Jose, CA
Fabless* Semiconductor and Software Company




UMC (Taiwan) {*Xilinx acquired an equity stake in UMC in 1996}
Seiko Epson (Japan)
TSMC (Taiwan)
Samsung (Korea)
ECE 448 – FPGA and ASIC Design with VHDL
5
Xilinx FPGA Families
Technology
220 nm
180 nm
Low-cost
Spartan II,
Spartan IIE
120/150 nm
90 nm
65 nm
45 nm
40 nm
28 nm
Highperformance
Virtex
Spartan 3
Virtex II,
Virtex II Pro
Virtex 4
Virtex 5
Spartan 6
Artix 7
Virtex 6
Virtex 7
Spartan 6 FPGA Family
ECE 448 – FPGA and ASIC Design with VHDL
7
CLB Structure
ECE 448 – FPGA and ASIC Design with VHDL
George Mason University
General structure of an FPGA
Programmable
interconnect
Programmable
logic blocks
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
ECE 448 – FPGA and ASIC Design with VHDL
9
Xilinx Spartan 6 CLB
ECE 448 – FPGA and ASIC Design with VHDL
10
Row & Column Relationship Between
CLBs & Slices
ECE 448 – FPGA and ASIC Design with VHDL
11
Three Different Types of Slices
50%
ECE 448 – FPGA and ASIC Design with VHDL
25%
25%
12
Slice X
ECE 448 – FPGA and ASIC Design with VHDL
13
Xilinx Multipurpose LUT (MLUT)
16-bit
SR
32-bit SR
16
64xx11 RAM
RAM
4-input
LUT
64 x 1 ROM
(logic)
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
14
4-input LUT (Look-Up Table) in the Basic
ROM Mode
x1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
x2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
x3
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
x4
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
x1
x2
x3
x4
y
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
LUT
y
x1 x2 x3 x4
x1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
x2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
x3
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
x4
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
y
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
• Look-Up tables
are primary
elements for
logic
implementation
• Each LUT can
implement any
function of
4 inputs
x1 x2
y
y
ECE 448 – FPGA and ASIC Design with VHDL
15
6-Input LUT of Spartan 6
ECE 448 – FPGA and ASIC Design with VHDL
16
17
Reset and Set Configurations
•
•
•
•
•
No set or reset
Synchronous set
Synchronous reset
Asynchronous set (preset)
Asynchronous reset (clear)
ECE 448 – FPGA and ASIC Design with VHDL
18
MLUT as a 32-bit Shift Register (SRL32)
ECE 448 – FPGA and ASIC Design with VHDL
19
Input/Output Blocks
(IOBs)
ECE 448 – FPGA and ASIC Design with VHDL
George Mason University
Basic I/O Block Structure
D Q
EC
Three-State
FF Enable
Clock
SR
Three-State
Control
Set/Reset
D Q
EC
Output
FF Enable
Output Path
SR
Direct Input
FF Enable
Registered
Input
Q
D
EC
Input Path
SR
ECE 448 – FPGA and ASIC Design with VHDL
21
IOB Functionality
• IOB provides interface between the
package pins and CLBs
• Each IOB can work as uni- or bi-directional
I/O
• Outputs can be forced into High Impedance
• Inputs and outputs can be registered
• advised for high-performance I/O
• Inputs can be delayed
ECE 448 – FPGA and ASIC Design with VHDL
22
Clock Management
ECE 448 – FPGA and ASIC Design with VHDL
George Mason University
A simple clock tree
Clock
tree
Flip-flops
Special clock
pin and pad
Clock signal from
outside world
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
ECE 448 – FPGA and ASIC Design with VHDL
24
Clock Manager
Clock signal from
outside world
Clock
Manager
etc.
Daughter clocks
used to drive
internal clock trees
or output pins
Special clock
pin and pad
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
ECE 448 – FPGA and ASIC Design with VHDL
25
Jitter
1
2
3
4
Ideal clock signal
Real clock signal with jitter
Cycle 1
Cycle 2
Cycle 3
Cycle 4
Superimposed cycles
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
ECE 448 – FPGA and ASIC Design with VHDL
26
Removing Jitter
Clock signal from
outside world
with jitter
Clock
Manager
etc.
“Clean” daughter
clocks used to drive
internal clock trees
or output pins
Special clock
pin and pad
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
ECE 448 – FPGA and ASIC Design with VHDL
27
Frequency Synthesis
1.0 x original clock frequency
2.0 x original clock frequency
.5 x original clock frequency
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
ECE 448 – FPGA and ASIC Design with VHDL
28
Phase shifting
0o Phase shifted
90o Phase shifted
180o Phase shifted
270o Phase shifted
Figure 4-20
ECE 448 – FPGA and ASIC Design with VHDL
The Design Warrior’s Guide to FPGAs
Devices, Tools, and Flows. ISBN 0750676043
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)
29
Clock Management Tiles
DCM – Digital Clock Manager
PLL - Phase Locked Loop
ECE 448 – FPGA and ASIC Design with VHDL
30
Spartan-6 Family Attributes
ECE 448 – FPGA and ASIC Design with VHDL
George Mason University
Spartan-6 FPGA Family Members
ECE 448 – FPGA and ASIC Design with VHDL
32
FPGA device present on the
Digilent Nexys 3 board
XC6SLX16-CSG324C
Spartan 6
family
Size
Logic
Optimized
324 pins
Package type
(Ball Chip-Scale)
Commercial
temperature range
0° C – 85° C
ECE 448 – FPGA and ASIC Design with VHDL
33
FPGA Design Flow
George Mason University
FPGA Design process (1)
Design and implement a simple unit permitting to
speed up encryption with RC5-similar cipher with
fixed key set on 8031 microcontroller. Unlike in
the experiment 5, this time your unit has to be able
to perform an encryption algorithm by itself,
executing 32 rounds…..
Specification / Pseudocode
On-paper hardware design
(Block diagram & ASM chart)
VHDL description (Your Source Files)
Library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
Functional simulation
entity RC5_core is
port(
clock, reset, encr_decr: in std_logic;
data_input: in std_logic_vector(31 downto 0);
data_output: out std_logic_vector(31 downto 0);
out_full: in std_logic;
key_input: in std_logic_vector(31 downto 0);
key_read: out std_logic;
);
end AES_core;
Synthesis
Post-synthesis simulation
FPGA Design process (2)
Implementation
Timing simulation
Configuration
On chip testing
Tools used in FPGA Design Flow
Functionally
verified
VHDL code
Design
VHDL code
Xilinx XST
Synplify Premier
Synthesis
Netlist
Xilinx ISE
Implementation
Bitstream
37
Synthesis
George Mason University
Synthesis Tools
Xilinx XST
Synplify Premier
… and others
39
Logic Synthesis
VHDL description
Circuit netlist
architecture MLU_DATAFLOW of MLU is
signal A1:STD_LOGIC;
signal B1:STD_LOGIC;
signal Y1:STD_LOGIC;
signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC;
begin
A1<=A when (NEG_A='0') else
not A;
B1<=B when (NEG_B='0') else
not B;
Y<=Y1 when (NEG_Y='0') else
not Y1;
MUX_0<=A1 and B1;
MUX_1<=A1 or B1;
MUX_2<=A1 xor B1;
MUX_3<=A1 xnor B1;
with (L1 & L0) select
Y1<=MUX_0 when "00",
MUX_1 when "01",
MUX_2 when "10",
MUX_3 when others;
end MLU_DATAFLOW;
40
Circuit netlist (RTL view)
41
Mapping
LUT0
LUT4
LUT1
FF1
LUT5
LUT2
FF2
LUT3
42
Xilinx XST Inputs/Outputs
43
Xilinx XST Inputs
• RTL VHDL and/or Verilog files
• Constraints – XCF
Xilinx constraints file in which you can specify
synthesis, timing, and specific implementation
constraints that can be propagated to the NGC file.
• Core files
These files can be in either NGC or EDIF format.
XST does not modify cores. It uses them to inform
area and timing optimization surrounding the cores.
44
Xilinx XST Outputs
• NGC
Netlist file with constraint information
• NGR
This is a schematic representation of the pre-optimized
design shown at the Register Transfer Level (RTL).
This representation is in terms of generic symbols,
such as adders, multipliers, counters, AND gates, and
OR gates, and is generated after the HDL synthesis phase
of the synthesis process.
• LOG
This report contains the results from the synthesis run,
including area and timing estimation.
45
RTL view in Synplify Premier
General logic structures can be recognized in RTL view
comparator
incrementer
MUX
Crossprobing between RTL view and code
Each port, net or block can be chosen by mouse click from the
browser or directly from the RTL View
By double-clicking on the element its source code can be seen:
Reverse crossprobing is also possible: if section of code is marked,
appropriate element of RTL View is marked too:
Technology View in Synplify Pro
Technology view is a mapped RTL view. It can be seen by pressing
button
or by double-click on “.srm” file
As in case of “RTL View”, buttons
can be used here
Two additional buttons are enabled:
Pay attention:
technology view
is usually large
and presented on
number of sheets
Ports, nets and
blocks browser
- show critical path
- open timing analyst
Technology view is
presented using device
primitives
Viewing critical path
Critical path can be viewed by pressing on
Delay values are written near each component of the path
Implementation
George Mason University
Implementation
• After synthesis the entire implementation
process is performed by FPGA vendor
tools
51
Implementation
52
Translation
Synthesis
Circuit
Netlist
Timing
Constraints
Constraint Editor
or Text Editor
UCF
User Constraint File
Translation
NGD
Native Generic Database file
53
Mapping
LUT0
LUT4
LUT1
FF1
LUT5
LUT2
FF2
LUT3
54
Placing
FPGA
CLB SLICES
55
Routing
FPGA
Programmable Connections
56
Configuration
• Once a design is implemented, you must create a
file that the FPGA can understand
• This file is called a bit stream: a BIT file (.bit extension)
• The BIT file can be downloaded directly to the
FPGA, or can be converted into a PROM file
which stores the programming information
57
Two main stages of the
FPGA Design Flow
Implementation
Synthesis
Technology
dependent
Technology
independent
RTL
Synthesis
- Code analysis
- Derivation of main logic
constructions
- Technology independent
optimization
- Creation of “RTL View”
Map
Place & Route
- Mapping of extracted logic
structures to device primitives
- Technology dependent
optimization
- Application of “synthesis
constraints”
-Netlist generation
- Creation of “Technology View”
Configure
- Placement of generated
netlist onto the device
-Choosing best interconnect
structure for the placed
design
-Application of “physical
constraints”
- Bitstream
generation
- Burning device
Download