Professional Documents
Culture Documents
- SOC Encounter
Day1 Day2
¾ Design Flow Over View ¾ Timing Analysis
¾ Prepare Data ¾ Trial Route
¾ Getting Started ¾ Power Analysis
¾ Importing Design ¾ SRoute
¾ Specify Floorplan ¾ NanoRoute
¾ Power Planning ¾ Fill Filler
¾ Placement ¾ Output Data
¾ Synthesize Clock Tree ¾ DRC
¾ LVS
¾ extraction/nanosim
2
Chapter1
3
Cell-Based Design Flow
Tape out
Verilog
VHDL
DRC LVS
Gate level
netlist GDSII
Amoeba Placement
Timing Analysis
Pre-CTS Optimization
Power Planning
Power Analysis
Timing Analysis
Post-CTS Optimization
Power Route
Output GDS, Netlist,Spef,DEF
SI Driven Route
Timing/SI Analysis
5
IO, P/G Placement
I2 O2
IOVDD IOVSS
I3 O3
6
Specify Floorplan
Hight
Width
7
Floorplan
I1 VDD O1
I2 O2
M2
IOVDD IOVSS
M1 M3
I3 O3
I4 VSS O4
8
Amoeba Placement
9
Power Planning
10
Clock Tree Synthesis
D D D D
Q Q Q Q
D D D D
Q Q Q Q
D D
Q Q
D D
Q Q
D D D D
Q Q Q Q
D D
Q Q
D D D D
Q Q Q Q
CLK CLK
D D D D
Q Q Q Q
11
Power Analysis
12
Power Route
13
Add IO Filler
14
Routing
15
Prepare Data
Library
¾ Physical Library (LEF)
¾ Timing Library (LIB)
¾ Capacitance Table
¾ Celtic Library
¾ FireIce/Voltage Storm Library
User Data
¾ Gate-Level netlist (verilog)
¾ SDC constraints
¾ IO constraint
16
LEF Format
-- Process Technology
17
LEF Format
-- Process Technology :
Layer define
Wide metal spacing
Layer Metal1 width
TYPE ROUTING ;
WIDTH 0.28 ;
MAXWIDTH 8 ;
AREA 0.202 ; Wide metal
SPACING 0.28 ;
SPACING 0.6 RANGE 10.0 10000.0 ; spacing
PITCH 0.66 ;
DIRECTION VERTICAL ;
THICKNESS 0.26 ;
ANTENNACUMDIFFAREARATIO 5496 ;
RESISTANCE RPERSQ 1.0e-01 ;
CAPACITANCE CPERSQDIST 1.11e-04 ;
EDGECAPACITANCE 9.1e-05 ;
END Metal1
18
LEF Format
-- APR technology
Unit
Site
Routing pitch
Default direction
Via rule
19
LEF Format
-- APR technology : SITE
¾ The Placement site give the placement grid of a family of
macros
a row a site
20
Row Based PR
VDD
VSS
VDD
VSS
21
LEF Format
-- APR technology :
routing pitch , default direction
via
Horizontal Vertical
routing routing
metal2 routing pitch
Metal1 Metal2
Metal3 Metal4
Metal5 Metal6
22
LEF Format
-- APR technology : via generate
Layer Metal1
Direction HORIZONTAL Default via
OVERHANG 0.2
Layer Metal2
Direction VERTICAL
OVERHANG 0.2
Layer Via1
RECT –0.14 –0.14 0.14 0.14 Generated via
SPACING 0.56 BY 0.56
23
LEF Format
-- APR technology : via stack
Metal3
Via23_TOS
Via12
Metal1
25
LEF Format
-- APR technology : Double Cut Via
Metal2
Metal1
26
LEF Format
-- APR technology : SameNet Spacing
27
LEF Format
-- APR technology : Physical Macros
Define physical data for
¾ Standard cells
¾ I/O pads
¾ Memories
¾ other hard macros
describe abstract shape
¾ Size
¾ Class
¾ Pins
¾ Obstructions
28
LEF Format
-- APR technology : Physical Macros cont.
MACRO ADD1
CLASS CORE ;
FOREIGN ADD1 0.0 0.0 ;
ORIGEN 0.0 0.0 ;
VDD LEQ ADD ;
SIZE 19.8 BY 6.4 ;
Y SYMMETRY x y ;
SITE coresite ;
PIN A
DIRECTION INPUT ;
PORT
B LAYER Metal1 ;
A RECT 19.2 8.2 19.5 10.3 ;
……
END
END A
PIN B
VSS …..
END B
OBS
……
END
END ADD1
29
LIB Format
Operating condition
¾ slow, fast, typical
Pin type
¾ input/output/inout
¾ function
¾ data/clock
¾ capacitance
Path delay
Timing constraint
¾ setup, hold, mpwh, mpwl, recovery
30
CeltIC Library
cdB model
The cdB noise library structure
31
CeltIC Library
ECHO model
The UDN has pin caps, input noise threshold, output drive strength ,
and propagated noise to inject into the output driver
UDN
32
FireIce/Voltage Storm Library
Execute
¾ TimingÆFire&Ice Extract RC…
GenLib …
¾ PowerÆRun VoltageStorm…
Gen Lib …
Require
¾ All lef fie
¾ lefdef.layermap
9 lef &ICT layer mapping
9 gds &ICT layer mapping
¾ fireice technology file
9 process and layer information
33
FireIce/Voltage Storm Library
lefdef.layermap
#type layer_ict lefdef layer_lef
metal METAL_1 lefdef METAL1
metal METAL_2 lefdef METAL2
metal METAL_3 lefdef METAL3
metal METAL_4 lefdef METAL4
via VIA_1 lefdef VIA12
via VIA_2 lefdef VIA23
via VIA_3 lefdef VIA34
34
gate-level netlist
35
SDC constraint
Clock constraints
Input delay / Input drive
Output delay/ Output drive
False path
Multicycle path
36
SDC constraint
-- Create Clock
create_clock [-name clock_name]
[-period period_value]
[-waveform edge_list]
[-add]
[sources]
20
I_CLK
10
CHIP
38
SDC constraint
-- set_clock_latency
set_clock_latency [-source]
[-early | -late]
[-min | -max]
latency
pin_or_clock_list
39
SDC constraint
-- set_clock_uncertainty
set_clock_uncertainty
[-setup | -hold]
[-from clksig_from_list]
[-to clksig_to_list]
[-rise | -fall]
float
pin_or_clock_list
40
SDC constraint
--set_input_delay
set_input_delay delay_value
[-min] [-max]
CLK1
[-rise] [-fall]
delay [-clock clock_name]
In1 .. In7
[-clock_fall]
In1 [-add_delay]
In2 [-network_latency_included]
: Design
: [-source_latency_included]
I_CLK port_pin_list
41
SDC constraint
--set_output_delay
set_output_delay delay_value
[-min] [-max]
CLK1
[-rise] [-fall]
delay
[-clock clock_name]
Out1
[-add_delay]
Out1 [-network_latency_included]
: CLK1 [-source_latency_included]
Design
:
port_pin_list
CLK1
42
SDC constraint
--set_drive
5KΩ
In1 In1
set_drive [-min] [-max]
[-rise] [-fall]
3,2,4,3 In2 drive_strength
In2
port_list
43
SDC constraint
--set_load
44
SDC constraint
--set_false_path
45
SDC constraint
--set_multicycle_path
46
Static Timing Analysis
PO
47
Static Timing Analysis
AT=2
2
1
9 Path-based:
2+2+3 = 7
2+3+1+3 = 9
(OK)
(OK)
3 RAT=10 2+3+3+2 = 10 (OK)
3
1 2 5+1+1+3 = 10 (OK)
AT=5 3 5+1+3+2 = 11 (Fail)
1 5+1+2 = 8 (OK)
AT=2 AT=7
AT=2 RAT=5 RAT=7 Block-based:
2
1 Critical path is determined
3 RAT=10 as collection of gates with
AT=6 3
1 RAT=5 2 the same, negative slack:
AT=5 3 In our case, we see one
AT=11
AT=5
1 AT=9 RAT=10 critical path with slack = -1
RAT=4 RAT=8 48
Static Timing Analysis
Cell Delay
Cell Delay Dcell(I2) = f(Dtransition(I1), Ceq)
clk1
TDFF1+Tpath
Tarrival
clk2 Tsetup
Tslack
Trequire
50
Static Timing Analysis
Setup time
PI to Reg
¾ Tarrival = TPI(delay)+ TPATH
¾ Trequire = Tclk1- TDFF1(setup)
¾ Tslack = Trequire- Tarrival
51
Static Timing Analysis
Setup time
Reg to PO
¾ Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH
¾ Trequire = Tcycle- TPO(output delay)
¾ Tslack = Trequire- Tarrival
52
Static Timing Analysis
Setup time
PI to PO
¾ Tarrival = TPI(delay)+ TPATH
¾ Trequire = Tcycle- TPO(output delay)
¾ Tslack = Trequire- Tarrival
Clk_source
TPI+Tpath
Tarrival
TPO(output delay)
Tslack
Trequire
53
Static Timing Analysis
hold time
clk1
TDFF1+Tpath
clk2
Thold
Tslack
Trequire
Tarrival
54
Static Timing Analysis
hold time
PI to Reg
¾ Tarrival = TPI(delay)+ TPATH
¾ Trequire = Tclk+ TDFF(hold)
¾ Tslack = Tarrival-Trequire
Reg to PO
¾ Tarrival = Tclk+ TDFF(clk->Q)+TPATH
¾ Trequire = - TPO(output delay)
¾ Tslack = Tarrival-Trequire
PI to PO
¾ Tarrival = TPI(delay)+ TPATH
¾ Trequire = - TPO(output delay)
¾ Tslack = Tarrival-Trequire
55
Timing exception: False path
56
Timing exception: multi-cycle path
57
IO constraint
Version: 1
MicronPerUserUnit: value
Pin: pinName side |corner
Pad: padInstanceName side|corner [cellName]
Offset: length
Skip: length
Spacing: length
Keepclear: side offset1 offset2
58
IO constraint cont.
Version: 1
PAD_HALT
PAD_CLK
Pad: CORNER0 NW PCORNERDGZ
Pad: PAD_CLK N
Pad: PAD_HALT N
PAD_IOVDD1
PAD_IOVSS1
Pad: PAD_IOVSS1 S PVSS2DGZ
59
SSO Consideration
SSO
¾ Simultaneously Switch Outputs
SSN
¾ The noise produced by SSO buffers
DI
¾ maximum number of copies for one specific kind of I/O pad
switching from high to low simultaneously without making
ground voltage level higher than 0.8 volt for one ground pad
DF
¾ Drive Factor, DF = 1/DI
SDF
¾ Sum of Drive Factor 60
SSO Consideration cont.
Parameter of DF
¾ operating condition
¾ package inductance
¾ slew-rate control IO
¾ IO type with different drive strength
In SSO case
¾ Required number of ground pads = SDF
¾ Required number of power pads = SDF/1.1
Non SSO case (suggest)
¾ Required number of ground pads = SDF/1.5
¾ Required number of power pads = SDF/1.6
61
SDF Example
62
Tips to Reduce the Power/Ground Bounce
63
Cadence On-Line document
64
Getting Started
menus
design views
tool widgets
switch bar
cursor coordinates 66
auto query
Tool Wedgits
Calculate
Zoom Hierarchy Fence Attribute Xwindow
Design Import Fit Previous Down/Up Density Editor dump/undump
67
Design Views
FloorplanView
¾ displays the hierarchical module and block
guides,connection flight lines and floorplan objects
Amoeba View
¾ display the outline of modules after placement
Placement View
¾ display the detailed placements of cells, blocks.
68
Display Control
Select Bar
69
Common Used Bindkeys
72
Import Design -- Power
9
9
73
Import Design – IPO/CTS
9
9
9
9
74
Import Design –IPO/CTS
Buffer Name/Footprint:
¾ specifies the buffer cell family to be inserted or swapped.
¾ required to run IPO and TD placement. Footprint Example:
Delay Name/Footprint: For Cells:
BUFXL
¾ required to run a fix hold time violation BUFX1
Inverter Name/Footprint: BUFX2
BUFX3
¾ required to run IPO and TD placement. BUFX4
Get footprint of library cells by: BUFX8
BUFX12
¾ TimingÆReportÆCell Footprint BUFX16
BUFX20
Footprint : buf
75
Import Design -- Power
9
9
9
9
9
76
Global Net Connection
77
Specify Floorplan 9
9
FloorplanÆSpecify Floorplan …
9 9
9 9
9
9
78
Specify Floorplan – Doube back rows
Double-back rows:
Row Spacing > 0
Row Spacing = 0
79
Core Limit, I/O Limnt
80
Place Blocks
FloorplanÆPlace Blocks/ModulesÆPlace …
81
Manually Place Block
82
Add Halo To Block
9
9
Top 9
9
Left Right
Bottom
83
Block Placement
Flow step
¾ I/O pre-placed
¾ Run quick block placement
¾ Throw away standard cell
placement
¾ Manually fit blocks
Block place issue
¾ power issue
¾ noise issue
¾ route issue
84
Block Placement
Preserve enough power pad
Create power rings around block
Follow default routing direction rule
Reserve a rounded core row area for placer
block
Default direction
85
Power Planning: Add Rings
86
Power Planning: Add Rings
9
9
9
87
Power Planning: Wire Group
88
Power Planning: Block Ring
89
Power Planning: Block Ring cont.
90
Power Planning: Block Ring cont.
Block C Block C
91
Power Planning: Add Stripes
92
Power Planning: Add Stripes
9
9
9
9
9
93
Power Planning:
Add Stripes
9
9
9
crossover
via array
94
Edit Route
Trim wire
96
Edit Route cont.
Move Wire
Add Wire
Cut Wire
Stretch Wire
97
Specify Scan Chain
98
Scan Chain Reorder
99
Placement
PlaceÆPlace…
Prototyping : Runs quickly, but components may not be placed at legal
location.
Timing Driven:
¾ Build timing graph before place.
¾ meeting setup timing constraints
with routability.
¾ Limited IPO by
upsizeing/downsizing instances. 9
Reorder Scan Connection 9
¾ nets connected to either the
scan-in or scan-out are ignored.
Check placement after placed
¾ placeÆCheck Placement
100
Floorplan Purposes
101
Difference Floorplan
Difference Performance
102
Wire Load After Placement
103
Module Constraint
Soft Guide
Guide
Region Soft Guide Guide
Fence
Region Fence
104
Guide , Region, Fence
Placement constraint
Create guide for timing issue
A critical path should not through
two different modules
The more region, the more
complicated floorplanning
105
Add Tiehi/Tielo cell
106
Clock Problem
Clock problem
¾ Heavy clock net loading
¾ Long clock insertion delay
¾ Clock skew
¾ Skew across clocks
¾ Clock to signal coupling effect
¾ Clock is power hungry
¾ Electromigration on clock net
Clock is one of the most important treasure in a chip, do
not take it as other use.
107
Clock Tree Topology
108
Synthesize Clock Tree
109
Create Clock Tree Spec.
9
9
110
CTS
CTS traces the clock starting from a root pin, and stops at:
¾ A clock pin
¾ A D-input pin
¾ An instance without a timing arc
¾ A user-specified leaf pin or excluded pin
Write a CTS spec. template:
¾ specifyClockTree -template
111
CTS spec.
112
CTS spec.
--Naming Attributes Section
TimingConstraintFile filename
¾ define a timing constraint file for use during CTS
NameDelimiter delimiter
¾ name delimiter used when inserting buffers and updating clock
root and net names.
¾ NameDelimiter # Î create names clk##L3#I2
¾ default Î clk__L3_I2
UseSingleDelim YES|NO
¾ YES Î clk_L3_I2
¾ NO Î clk__L3_I2 (default)
113
CTS Spec.
-- NanoRoute Attribute Section
RouteTypeName name
RouteTypeName CK1
……
END
NonDefaultRule ruleName
¾ Specify LEF NONDEFAULTRULE to be used
PreferredExtraSpace [0-3]
¾ add space around clock wires
Shielding PGNetName
¾ Defines the power and ground net names
114
CTS Spec.
-- Macro Model Data Section
-- Clock Grouping Section
MacroModel
¾ MacroModel port R64x16/clk 90ps 80ps 90ps 80ps 17pf
¾ MacroModel pin ram1/clk 90ps 80ps 90ps 80ps 17pf
¾ delay_and_capacitance_value:
maxRise minRise maxFall minFall inputCap
ClkGroup
¾ Specifies tow or more clock domains for which you want CTS
to balance the skew.
¾ ClkGroup
+clockRootPinName1
+clockRootPinName2
…..
115
CTS Spec.
--Manually Define Clock Tree Topology
ClockNetName netName
LevelNumber number
¾ Specify the clock tree level number
LevelSpec levelNumber numberOfBuffers bufferType
¾ levelNumber
9 Specify the level number in the clock tree
¾ numberOfBuffer
9 the total number of buffers CTS should allow on the specified level
¾ Example:
LevelSpec 1 2 CLKBUFX2
LevelSpec 2 2 CLKBUFX2
End
116
CTS Spec.
-- Automatic Gated CTS Section
AutoCTSRootPin clockRootPinName
MaxDelay number{ns|ps}
MinDelay number{ns|ps}
SinkMaxTran number{ns|ps}
¾ maximum input transition time for sinks(clock pins)
BufMaxTran number{ns|ps}
¾ maximum input transition time for buffers (defalut 400)
MaxSkew number{ns|ps}
117
CTS Spec.
-- Automatic Gated CTS Section cont.
NoGating {rising|falling|NO}
¾ rising : stops tracing through a gate(include buffers and inverters) and
treats the gate as a rising-edge-triggered flip-flop clock pin.
¾ falling: stops tracing through a gate(include buffers and inverters) and
treats the gate as a falling-edge-triggered flip-flop clock pin.
¾ No: Allows CTS to trace through clock gating logic. (default)
AddDriverCell driver_cell_name
¾ Place a driver cell at the cloest possible
location to the clock port location .
118
CTS Spec.
-- Automatic Gated CTS Section cont.
MaxDepth number
RouteType routeTypeName
RouteClkNet YES|NO
¾ Specifies whether CTS routes clock nets.
PostOpt YES|NO
¾ whether CTS resizes buffers of inverters , refines placement,and
corrects routing for signal and clock wires.
¾ default YES
Buffer cell1 cell2 cell3 …
¾ Specifies the names of buffer cells to use during CTS.
119
CTS Spec.
-- Automatic Gated CTS Section cont.
LeafPin
+ pinName rising|falling
+ ……
¾ Mark the pin as a “leaf” pin for non-clock-type instances.
¾ LeafPin
+ instance1/A rising
+ instance2/A rising A
……
LeafPort A
+ portName rising|falling
+ ……
¾ Mark the port as a “leaf” port for non-clock-type instances
120
CTS Spec.
-- Automatic Gated CTS Section cont.
ExcludedPin
+ pinName 8
+ …..
ExcludedPort
+ portName
+ ……
¾ Treats the port as a non-leaf port, and prevents tracing and skew
analysis of the pin.
121
CTS Spec.
-- Automatic Gated CTS Section cont.
ThroughPin D
+ pinName
+ …..
¾ Traces through the pin, even if the pin is a clock pin
PreservePin
+ inputPinName Preserve
+ …….
¾ Preserve the netlist for the pin and pins below the pin in the
clock tree.
122
CTS Spec.
-- Automatic Gated CTS Section cont.
DefaultMaxCap capvalue
¾ CTS adheres to the following priority when using maximum
capacitance value:
9 MaxCap statements in the clock tree specification file
9 DefaultMaxCap statement in the clock tree specification file
9 Maximum capacitance values in the SDC file
9 maximum capacitance values in the .lib file
MaxCap
+ bufferName1 capValue1{pf|ff}
+ bufferName2 capValue2{pf|ff}
+ …..
¾ Buffer should be inserted if the given capacitance value is exceeded
123
Mapping from sdc to clock tree spec
124
Synthesize Clock Tree
Reconvergence clock
Crossover clock
125
Clock Synthesis report
127
Display Clock Tree
--by phase delay
128
Clock Tree Browser
ClockÆClock Tree Brower
TimingÆOptimization…
IPO
¾ setup time
¾ hold time
¾ SI
¾ DRV (Design
Rule Violation)
130
Optimization Advanced Option
131
Useful Skew
balanced clock
132
Trial Route
133
Trial Route Congestion Marker
V=25/20 H=16/18
The vertical (V) overflow is 25/20 (25 tracks are required , but only 20 tracks are available) .
The Horizontal (H) overflow is 16/18 (16 tracks are required , and18 tracks are available) .
134
Trial Route Congestion Marker cont.
135
Timing Analysis
No Async/Async:
¾ recovery, removal check
No Skew/Skew:
¾ check with/without clock
skew constraint
136
Slack Browser
TimingÆDebug Timing
137
Power Analysis
TimingÆExtract RC…
PowerÆEdit Pad Location…
PowerÆEdit Net Toggle Probability…
9
9
9
9
138
Statistical Power Analysis
PowerÆPower AnalysisÆStatistical … 9
analysis report: 9
¾ A power graph
¾ report contains
9 average power usage
9 worst IR drop 9
9 worst EM violation
¾ instance power file
¾ instance voltage file
¾ boundary voltage file
139
9 Simlation-Based
9 Power Analysis
9
9 PowerÆPower AnalysisÆ
Simulation-Based
140
VoltageStorm Anaylsis
PowerÆRun VoltageStorm…
9
9
9
9
141
Display Rail Analysis
142
Display IR Drop
143
Display Electron Migration
144
Display Resistor Current
145
Display Resistor Current Density
146
SRoute
147
Add IO filler
ADD IO FILLER
148
Add IO filler cont.
149
NanoRoute
RouteÆNanoRoute
150
NanoRoute Attributes
RouteÆNanoRoute/Attributes
151
Crosstalk
152
Crosstalk Problem
Aggressor
Delay problem
original signal
impacted signal
original signal
impacted signal
153
Crosstalk Prevention
Placement solution
¾ Insert buffer in lines Add buffer
¾ Upsize driver
¾ Congestion optimization Upsize
Routing solution
¾ Limit length of parallel nets
¾ Wider routing grid
¾ Shield special nets
154
CeltIC Crosstalk Analysis
155
Display Noise Net
156
Antenna Effect
157
Antenna Ratio
metal2 Plasma
metal2 Plasma
via2 + + + + + ++ + + + metal1 + + +
via1
158
Antenna Problem Repair
Add jumper
Add antenna cell (diode)
Add buffer
metal2
via1 metal1
poly
gate oxide
159
Add Core Filler
PlaceÆFillerÆAdd Filler…
160
Add bonding pads (stagger IO pads only)
PR boundary
Bonding matel
Inner Bonding
162
Add bonding pads flow (stagger IO pads only)
bondPads.cmd
bondPads.cmd
addbonding.pl
addbonding.pl addbonding.pl routed.def
(In unix terminal)
bondPads.eco
bondPads.eco
ioPad.list
ioPad.list
source bondPads.cmd
(In encounter terminal)
finish
163
Output Data
DesignÆSaveÆGDS…
DesignÆSave->Netlist…
DesignÆSave->DEF
Export GDS for DRC,LVS,LPE,and tape out.
Export Netlist for LVS and simulation.
Export DEF for reordered scan chain.
164
Stream Out map
METAL1 ALL 16 0
NAME METAL1/NET 16 0
NAME METAL1/SPNET 40 0
NAME METAL1/PIN 40 0
NAME METAL1/LEFPIN 16 0
VIA12 ALL 17 0
METAL2 ALL 18 0
…
…
165
Chapter2
Post-Layout Verification –
DRC/ERC/LVS/LPE
Post-Layout Verification Overview
167
Post-Layout Verification Overview cont.
DRC LVS
vdd!
i zn compare with i zn
0 1 2 3 gnd!
ERC LPE/PRE
vdd! clk
vdd!
short
extract
i zn i zn
168
gnd!
Post-Layout Verification Overview
169
DRC flow
Prepare Layout
¾ stream in gds2
¾ add power pad text
¾ stream out gds2
Prepare command file
run DRC
View DRC error (DRC summary/RVE)
170
Prepare Layout
Stream In design
Stream Out
GDSII
GDSII
171
Prepare Layout: Stream In GDSII
Require:
¾ technology file
¾ display.drf
File->import->stream
9
9
9
172
Prepare Layout: Add Power Text
173
Prepare Layout: Stream Out GDSII
File->Export->stream..
9
9
174
Prepare command file
175
Prepare Calibre Command file
177
Using Calibre RVE
Add in .cdsinit
setSkillPath(“. ~/ /usr/memtor/Calibre_ss/cur/shared/pkgs/icb/tools/queryskl”)
load(“calibre.skl”)
178
Using Calibre RVE
179
Using Calibre RVE
180
LVS Overview
Layout Data Schematic Netlist
a<0> b<0>
a<1> b<1> a<5:0>
181
Initial Correspondence Points
182
Black-Box LVS
183
Black-Box LVS vs. Transistor-Level LVS
i1 z
i1 z
i2 vs.
i2
GND
Black-Box LVS
inv0d1
VDD nd02d1
inv0d1 nd02d1 i1
i1 z z
vs.
i2
GND
184
i2
LVS flow
Prepare Layout
¾ The same as DRC Prepare Layout
Prepare Netlist
¾ v2lvs
Prepare calibre command file
run calibre LVS
View LVS error (LVS summary/RVE)
185
Prepare Netlist for Calibre LVS
Prepare Netlist
Verilog
Verilog
umc18lvs.v CHIP.v
CHIP.v
umc18lvs.v
v2lvs
umc18lvs.spi
umc18lvs.spi
CHIP.spi
CHIP.spi
187
CIC Supported Files (tsmc0.18)
188
Black Box related file
189
Prepare command file for Calibre LVS
layout verilog
extract v2lvs
layout.spi source.spi
191
Check Calibre LVS Summary
192
Check Calibre LVS Summary
OVERALL COMPAISON RESULTS
# ################### _ _
# # # * *
# # # CORRECT # |
# # # # \___/
# ###################
193
Check Calibre LVS Summary
CELL SUMMARY
*************************************************
CELL SUMMARY
*************************************************
194
Check Calibre LVS Summary
INFORMATION AND WARNINGS
******************************************************************
INFORMATION AND WARNINGS
******************************************************************
Instances: 1 1 0 0 ADDFHX1
54 54 0 0 ADDFHX4
79 79 0 0 ADDFX2
542 542 0 0 AND2X1
…… …… .. .. ………….
8 8 0 0 XOR3X2
----------- ----------- -------------- --------------- --------------
Total Inst: 10682 10682 0 0
195
Check Calibre LVS Summary
Initial Correspondence Points
196
Check Calibre LVS Log
197
Check Calibre LVS Log
TEXT OBJECT FOR CONNECTIVITY EXTRACTION
--------------------------------------------------------------------------------
TEXT OBJECTS FOR CONNECTIVITY EXTRACTION
--------------------------------------------------------------------------------
O_Z[0] (523.447,31.68) 105 CHIP O_Z[1] (598.068,31.68) 105 CHIP
O_Z[2] (821.931,31.68) 105 CHIP O_Z[3] (896.553,31.68) 105 CHIP
O_Z[4] (971.175,31.68) 105 CHIP O_Z[5] (1164.455,372.964) 105 CHIP
O_Z[6] (1164.455,446.966) 105 CHIP O_Z[7] (1164.455,520.968) 105 CHIP
O_Z[8] (1164.455,594.97) 105 CHIP O_Z[9] (1164.455,668.972) 105 CHIP
O_Z[10] (1164.455,742.974) 105 CHIP O_Z[11] (1164.455,816.976) 105 CHIP
……
……
198
Check Calibre LVS Log
PORTS
--------------------------------------------------------------------------------
PORTS
--------------------------------------------------------------------------------
O_Z[0] (523.447,31.68) 105 CHIP O_Z[1] (598.068,31.68) 105 CHIP
O_Z[2] (821.931,31.68) 105 CHIP O_Z[3] (896.553,31.68) 105 CHIP
O_Z[4] (971.175,31.68) 105 CHIP O_Z[5] (1164.455,372.964) 105 CHIP
……
……
199
Check Calibre LVS Log
Extraction Errors and Warnings for cell “CHIP”
200
Chapter3
M1 to M1
capacitance
M1
M1 to M2
capacitance
vdd! vdd!
gnd! gnd!
202
What Introduce After Place&Route?
VIA
gnd! gnd!
203
Pre-Layout And Post-Layout Design
post-layout
204
Why Post-Layout Simulation?
clock skew
... . . .data
205
Post-layout Timing Analysis Flow
Gate-level
Netlist
Gate-level
Analysis
Tr.-level post-layout
timing analysis Layout
Delay
Calculation
Extraction
Tr. Netlist
RC Network
RC Network Gate-level post-layout
timing analysis
Tr-level
Analysis 206
Transistor-level Post-layout Simulation
layout
SPICE netlist
simulation Post-layout
pattern
Nanosim
simulation
simulation
result 207
What is Nanosim
208
Prepare for Post-Layout Simulation
209
Replace Layout / LPE
Qentry
–M {LPE}
–tech {UMC18 | TSMC18 | TSMC25 | TSMC35}
–f GDSII
–T Top_cell_name
–s Ram_spce_filename
–t {ra1sd | ra1sh | ra2sd | ra2sh | rf2sh |
t18ra1sh | t18ra2sh | t18rf1sh | t18rf2sh | t18rodsh|
18ra1sh_1 | 18ra1sh_2 | 18ra2sh}
–c {UMC18 | TSMC18 | TSMC25 | TSMC35}
–i {UMC18 | TSMC18 | TSMC25 | TSMC35}
–o Netlist_file_name
Example:
¾Qentry –M LPE –tech UMC18 –f CHIP.gds –T CHIP
–s RAM1.spec –t 18ra2sh –s RAM2.spec –t 18ra1sh_1
–s RAM3.spec –t 18ra1sh_2 –c UMC18 –i UMC18 –o CHIP.netlist
Use Qstat to check the status of your job. 210
The result is stored in “result_#” directory.
Replace/LPE
INPUT
¾ gds2
¾ ram spec
OUTPUT
¾ output netlist
¾ TOP_CELL.NAME
¾ nodename
¾ spice.header
¾ nanosim.run
¾ log files for strem in, stream out, lpe
211
Running Nanosim
Qentry
–M {NANOSIM}
–n {CHIP.io}
–nspice CHIP.netlist spice.header
–nvec CHIP.vec
–m Top_cell_name
–c {CHIP.cfg}
–z {CHIP.tech.z}
–o Output_file_name
–out fsdb
–t Total_simulation_time
Example:
¾Qentry –M NANOSIM –nspice CHIP.netlist spice.header –nvec
CHIP.vec –m CHIP –c CHIP.cfg –z CHIP.tech.z –o UMC18 –t 100
Use Qstat to check the status of your job.
The result is stored in “result_#” directory.
212
Spice Header File
213
Generate Nanosim Simulation Pattern
type vec
signal CLOCK,START,IN[7:0]
; time clock start in<7:0>
radix 1 1 44
io i i ii
high 3.3
low 0.0
25 0 0 xx
50 1 0 xx
75 0 0 xx
. . . . .
214
Generate Nanosim Simulation Pattern
type nsvt
signal CLOCK,START,IN[7:0]
; clock start in[7:0]
radix 1 1 44
io i i ii
period 25
high 3.3
low 0.0
0 0 xx
1 0 xx
0 0 xx
. . . . .
215
Generate Nanosim Simulation Pattern
216
Nanosim Configuration File
Example Nanosim_configuration file
bus_notation [ : ]
print_node_logic ADRS[0]
print_node_logic CLK
print_node_logic DATA[0]
. . . . . .
report_node_power VDD
set_node_gnd DGND
set_node_gnd GND
set_node_v DVDD 3.3
set_node_v VDD 1.8
nodename file
ADRS[0]
ADRS[1]
. . . . . .
CLK
DATA[0]
. . . . . . 217
View Simulation Result --- nWave
NOVAS nWave
¾ a waveform viewer which support Timemill output waveform
format.
Environment setup
unix% source /usr/debussy/CIC/debussy.csh
Starting nWave
unix% nWave &
218
Load Simulation Result --- nWave
219
Select Signals --- nWave
220
Check Simulation Result --- nWave
221
Power Analysis Result
0.00000e+00 - 1.00010e+03 ns
Node: VDD
Average current : -3.53355e+05 uA
RMS current : 3.53388e+05 uA