Documente Academic
Documente Profesional
Documente Cultură
MODULE
+
GATE
CIRCUIT
DEVICE
G
S
n+
D
n+
1X
2X
3X
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
Frontend
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Backend
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
Back end
Placement and routing
DRC (Design Rule Check), LVS (Layout vs Schematic)
dynamic simulation and static analysis
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
10
10ns
11
REG
a
b
ADDER
REG
{cout, sum}
clock
module MYADDER (clock, in1, in2, sum, cout);
input clock; input [31:0] in1, in2;
output [31:0] sum; output cout;
reg [31:0] a, b; reg [31:0] sum;
always @(posedge clock)
begin
a = in1; b = in2; {cout, sum} = a + b;
end
endmodule
12
13
14
15
parameter declarations
wire, wand, wor declarations
reg declarations
input, ouput, inout declarations
continuous assignments
module instantiations
gate instantiations
always blocks
task statements
function definitions
for, while loop
16
delay
initial
repeat
wait
fork join
example: wire out=(!oe)? in : hz;
event
deassign
in
out
force
oe
release
primitive -- User defined primitive
time
triand, trior, tri1, tri0, trireg
nmos, pmos, cmos, rnmos, rpmos, rcmos
pullup, pulldown
rtran, tranif0, tranif1, rtranif0, rtranif1
17
Mux
out
Mux
X
unknow generator
Synthesis Unsupported
18
RTL Verification
Implenentation
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
19
RTL Verification
RTL Simulation
module test;
reg clock; reg [31:0] in1, in2;
wire [31:0] sum; wire cout;
Stimulus
&
Control
10
in1
in2
10 15
10 15 20 25 30 35
10
20
sum
15
25
cout
25
45
0
20
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
21
Logic Implementation
Logic Synthesis
Design for Testability (DFT)
Memory BIST
Scan Insertion
22
SET
CLR
SET
CLR
SET
CLR
Q
Q
CLR
Q
Q
SET
SET
CLR
SET
CLR
Q
Q
Q
Q
23
24
Logic Synthesis
Map RTL HDL to Gate-level
HDL according to the design
constraints and environment
Timing Constraints
Area Constraints
Power Constraints
Design Rule Constraints
Operating Conditions
Wire Load Model
System Interface
AND
OR
INVERTER
FLIP-FLOP
ADDER
Translation
Architecture Opt.
Design Constraints
Generic Boolean
Design Environment
Technology Mapping
Logic Opt.
Cell Library
Gate-level HDL
25
Cell Library
function
NAND
NOR
XOR
INV
ADD
FF
schematic
layout
symble
timing
A1O 0.1ns
A2O 0.2ns
A1O 0.1ns
A2O 0.2ns
power
A1O 0.1pw
A2O 0.2pw
A1O 0.1pw
A2O 0.2pw
abstract
26
Design Example
Translation: Ripple Adder
Technology Mapping: Meet timing & power constraints
FF
FF
FA
FF
FA
FF
FF Flip-Flop
FA Full Adder
FF
FA
FF
FF
FA 0.1ns
Timing
Model
FF
FA
FF 0.005mw
FA
clock
FF 0.2ns
FF
FA 0.003mw
Power
Model
FF
Total Power < 1mw
en
en
clk
d
No Clock Gating
en=0 consumes power
clk
Clock Gating
reduces power when en=0
28
If + Loop
statement
Conditional
Assignment
Case
statement
For Loop
Provide a shorthand way of writing a series of statements
In synthesis, for loops loops are unrolled, and then
synthesized
Example
always @(a or b) begin
for( k=0; k<=3; k=k+1 ) begin
out[k]=a[k]^b[k];
c=(a[k]|b[k])&c;
end
end
out[0] = a[0]^b[0];
out[1] = a[1]^b[1];
out[2] = a[2]^b[2];
out[3] = a[3]^b[3];
c = (a[0] | b[0]) & (a[1] | b[1]) &
(a[2] | b[2]) & (a[3] | b[3]) & c
30
Gate Level
module MYADDER (clock, in1, in2, sum, cout);
input clock; input [31:0] in1, in2;
output [31:0] sum; output cout;
DFCNQD1 11_ (.CP ( cki ) , .D ( n_22 )) ;
MOAI22D0 g301.A2 ( ck_down_12_ ) ) ;
IND2D1 g300 ( ck_down_13_ ), .ZN ( n_25 ) ) ;
DFCNQD1 ck_down_reg_12_(.D ( n_24 )) ;
MOAI22D0
31
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
32
Timing Verification
Pre-layout Gate-level Simulation
Pre-layout Static Timing Analysis (STA)
Power Verification
Power Analysis
33
module test;
MYADDER
SDF
10 15
Simulation Model
10 15 20 25 30 35
18
in1
in2
10
20
sum
15
25
cout
25
45
0
initial $sdf_annotate(my.sdf",U1);
initial begin
clock = 0;
in1 = 10; in2 = 15;
@(negedge clock)
in1 = 20; in2 = 25;
@(negedge clock)
$finish;
end
endmodule
34
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
35
Physical Implementation
SET
CLR
SET
CLR
SET
CLR
Q
Q
CLR
Q
Q
SET
SET
CLR
SET
CLR
Q
Q
Q
Q
36
Physical Implementation
Data Preparation
Floorplan
Placement
Clock Tree Synthesis
Routing
37
Data Preparation
Verified Pre-layout Gate-level HDL
Timing/Power Constraints
Similar to those for logic synthesis
Layout Constraints
Chip Size / Aspect Ratio / IO Constraints
Physical Partitions (Region / Group)
Macro Positions
Cell Libraries
38
Floorplan Area
Pad Area
Core
Area
Core Area
Pad Limit
Core Area
Core Limit
39
Floorplan - Parameters
Row
(Area1600 m2)
Channel
(Area400 m2)
11m
10m
40m
Standard Cell
(Area800 m2)
13m
50m
12m
40
macro
41
42
Timing driven
Congestion driven
43
Timing-Driven Placement
Timing-driven placement tries
to place cell along timingcritical path close together to
reduce net RCs and meet setup
timing
44
29/28
39/35
40/35
28/28
Routing tracks
45
Congestion Map
Congestion
hot spot
Detour
congestion area
detoured net
46
Path delay
increased
48
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
Clock
Clock
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
50
Trace
Grid Point
M1
HVH
M1: Horizontal
M2: Vertical, etc
M2
Pitch
(based on DRC)
Track
51
Track
Assignment
Global Route
Detail Route
52
Preroute
Global
route
53
Jog reduces
via count
TA metal
traces
Preroute
54
Notch
Spacing
Thin&Fat
Spacing
Min
Spacing
55
56
M3 blockage
M1
blockage
gate
poly
metal 1
driver
diffusion
M1 is split
by jumping
to M3 and
back
driver
diffusion
M3 blockage
metal 3
metal 1
gate
poly
58
Metal 3
Critical Areas
Center of conductive defects
outside critical area no shorts
59
Wire Tracks
Spreading
off-track
Widening
60
Connection fails if
contact defective
61
Over-etching
due to high
etchant density
62
63
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Place&Route
Post layout
Gate-Level netlist
Formal
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
64
Timing Verification
Post-layout Gate-level Simulation
Post-layout Static Timing Analysis (STA)
Power Verification
Power Analysis
Estimated Interconnect Parasitic
=> Real Interconnect Parasitic
65
Power Analysis
Vdd
In
Total Power=
Dynamic Power + Static Power
Out
Cload
Gnd
Vdd
P
Out
In
Isht
Isht
Iintsw
N
Ileak
Cint
Isw
N
Ileak
Cload
Gnd
66
Power Analysis
I
67
Rail Analysis
I
IR power graph
68
Logic synthesis
Verification
RTL code
always @ (posedge clk)
if (in1==1)
a=c+d
else
a=c-d
RTL Simulation
Lint check
code coverage analysis
Formal
Gate-Level netlist
Gate level Simulation
Static Timing Analysis
Power Analysis
Formal
Place&Route
Post layout
Gate-Level netlist
LVS
GDS layout
Extraction
DRC
Tape out
Transistor-level Simulation
Transistor-level STA
Power Analysis
69
Physical Verification
For geometrical verification
Design Rule Check (DRC)
70
M1
S2
M1
S1
S1
S2
M1
M1
CO
C1
C2
71
VDD
inv0d1
t1 t1
i1
nd02d1
t1
i1
t2
U1
i2
U2
i2
GND
GND
Black-box LVS
LVS
U1
i1
Y A
t1
inv0d1
i2
i1
inv0d1
z
BlackBox
t2
nd02d1
i2
Y
t1
A
B
BlackBox
nd02d1
U2
72
THE END
73
73