Title: Lecture 8 Digital Chip Design Flow
1Lecture 8Digital Chip Design Flow FPGA
Courtesy RK Brayton (UCB) , A Kuehlmann
(Cadence) And Adnan Aziz from Univ. Texas
2Digital IC Design Types
- Full Custom Design
- Transistor Level Design Custom Layout Spice
Simulation ( Analog Simulation) - Standard-Cell Based Design
- Verilog Coding Synthesis Semi Automatic
Layout - IP Based Design
- Standard-Cell IPs (CPU Core Etc.)
3Standard-Cell Based Design Flow
Design
4System Level / Functional Level
- Abstract algorithmic description of high-level
behavior using C, System-C, System-Verilog, etc. - No implementation details for timing
- Compact execution model as first design draft
- Sometimes hard to maintain throughout project
because no link to implementation
Void h264_encoder(int image, int bitstream)
static int pixel_data char
add_pixel(pixel_data) ...
5RTL Level
- Cycle accurate model close to the hardware
implementation
6Gate Level
- Boolean logic using registers and gates with
delays for gates and wires
1ns
7Gate Level Verilog Code ( Netlist)
- module example ( A, SUM )
- input 90 A
- output 90 SUM
- wire 92 carry
- nr2bd1_hd U748 ( .AN(n475), .B(n476),
.Y(n473) ) - nr2bd1_hd U749 ( .AN(n480), .B(n481),
.Y(n478) ) - ivd1_hd U752 ( .A(n2096), .Y(n2122) )
- ivd1_hd U753 ( .A(n2068), .Y(n2094) )
- . . .
- oa21d1_hd U887 ( .A(n1232), .B(n391),
.C(n1128), .Y(n390) ) - nr2d1_hd U888 ( .A(n497), .B(n498),
.Y(n495) ) - endmodule
8Gate, Transistor and Layout
- Transistors and wires are laid out as polygons in
different technology layers such as diffusion,
poly-silicon, metal, etc.
Gate
9Netlist to Layout
module my_chip ( A, SUM ) input 90 A
output 90 SUM wire 92 carry
nr2bd1_hd U748 ( .AN(n475), .B(n476), .Y(n473)
) nr2bd1_hd U749 ( .AN(n480), .B(n481),
.Y(n478) ) ivd1_hd U752 ( .A(n2096),
.Y(n2122) ) ivd1_hd U753 ( .A(n2068),
.Y(n2094) ) . . . oa21d1_hd U887 (
.A(n1232), .C(n1128), .Y(n390) ) nr2d1_hd
U888 ( .A(n497), .B(n498), .Y(n495) ) endmodule
10ASIC Design Flow
Informal Specification
Logic Synthesis
RTL Spec
RTL Simulation
Gate-level Simulation
Formal Verification
Gate Level Netlist
Static Timing Analysis (STA)
Layout
Manual Changes to fix timing
Modifies Post-Layout Netlist
Test Logic Insertion
Post-layout Simulation
ASIC Foundry
11Informal Specification
RTL Spec
RTL Simulation
Logic Synthesis
Static Timing Analysis (STA)
Gate Level Netlist
FPGA
STA
Layout
Modifies Post-Layout Netlist
ASIC Foundry
12FPGA
- Field Programmable Gate Array
- Programmable device including logic gates, FFs
and memories. - Applications are
- End-product
- ASIC Verification
13FPGA Vendors
- Xilinx
- Better density speed, faster compile time
- This is our choice
- Altera
-
- The following slides are based on Xilinx
products. But, there is always equivalent
products from Altera.
14FPGA Types
- ROM type Vertex series
- RAM type Spartan series
15What you should learn above Verilog?
- Programming (Download)
- Pin mapping
- Compile
- Place and Route
- Memory generation
- Clock handling
- Logic Analyzer
16Pinmap Concept
- We need to assign each port from Verilog code to
a pin of an FPGAgt
17Pinmap Example
- Pin name of each FPGA device is fixed and listed
on the Xilinx website. - A user must make a xxx.ucf file to define the
connectivity between Verilog port and FPGAs pin
as follows. - NET a" LOC "P19"
- NET b" LOC "P20"
- NET c" LOC "P21"
- NET f" LOC "P22"
- NET e" LOC "P23"
P19
18Compile, Place Route
- Compile is a process of translating behavioral
code to gate-level code (netlist). - Place Route is a process of matching each gate
from the netlist to a gate of an FPGA. - A user must specify the pinmap using ucf file in
PR phace. - Synplify is an expert compile tool.
- ISE is a tool for compile, PR and everything.
19ISE Compile Result
20Orcad Schematic Sample