Chapter 6 Soc Encounter
Chapter 6 Soc Encounter
Chapter 6 Soc Encounter
- SOC Encounter
CIC 2006/02
Class Schedule
Day1
Day2
Timing Analysis
Trial Route
Power Analysis
SRoute
NanoRoute
Fill Filler
Output Data
DRC
LVS
extraction/nanosim
2
Chapter1
Verilog
VHDL
GDSII
Routed
design
IO,P/G Placement
IO constraints
Specify floorplan
Amoeba Placement
Timing Analysis
Pre-CTS Optimization
Power Planning
Power Analysis
Clock Tree Synthesis
Timing Analysis
Post-CTS Optimization
Power Route
Output GDS, Netlist,Spef,DEF
SI Driven Route
Timing/SI Analysis
Corner1
I1
VDD
O1
Corner2
I2
O2
IOVDD
IOVSS
I3
O3
Corner3
I4
VSS
O4
Corner4
6
Specify Floorplan
Hight
Width
Floorplan
VDD
I1
O1
O2
I2
M2
IOVDD
IOVSS
M1
M3
O3
I3
I4
VSS
O4
8
Amoeba Placement
Power Planning
10
D
D
Q
D
Q
D
D
D
Q
D
Q
D
Q
D
Q
D
CLK
Q
D
CLK
Q
D
Q
Q
D
11
Power Analysis
12
Power Route
13
Add IO Filler
14
Routing
15
Prepare Data
Library
User Data
Gate-Level netlist (verilog)
SDC constraints
IO constraint
16
LEF Format
-- Process Technology
Layers
Design Rule
Net width
Net spacing
Contact Area
Enclosure
Metal1
Wide metal
Via1
slot
Metal2
Antenna
Current density
POLY
Parasitic
Resistance
Capacitance
17
LEF Format
-- Process Technology :
Layer define
Wide metal spacing
width
Layer Metal1
TYPE ROUTING ;
WIDTH 0.28 ;
MAXWIDTH 8 ;
AREA 0.202 ;
SPACING 0.28 ;
spacing
SPACING 0.6 RANGE 10.0 10000.0 ;
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
Wide metal
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
Horizontal Vertical
routing
routing
Metal1
Metal3
Metal5
Metal2
Metal4
Metal6
22
LEF Format
-- APR technology : via generate
To connect wide metal , create a via array to
reduce via resistance
Defines formulas for generating via arrays
Layer Metal1
Direction HORIZONTAL
OVERHANG 0.2
Layer Metal2
Direction VERTICAL
OVERHANG 0.2
Layer Via1
RECT 0.14 0.14 0.14 0.14
SPACING 0.56 BY 0.56
Default via
Generated via
23
LEF Format
-- APR technology : via stack
LEF Format
-- APR technology : Top of Stack Via
Metal3
Via23_TOS
Via12
Metal1
25
LEF Format
-- APR technology : Double Cut Via
Metal2
Double cut Via12
Metal1
26
LEF Format
-- APR technology : SameNet Spacing
SPACING
SAMENET Metal1 Metal1 0.23 ;
SAMENET Metal2 Metal2 0.28 STACK ;
SAMENET Metal3 Metal3 0.28 ;
SAMENET VIA12 VIA12 0.26 ;
SAMENET VIA23 VIA23 0.26 ;
SAMENET VIA12 VIA23 0.0 STACK ;
END SPACING
Metal3
27
LEF Format
-- APR technology : Physical Macros
Define physical data for
Standard cells
I/O pads
Memories
other hard macros
Size
Class
Pins
Obstructions
28
LEF Format
-- APR technology : Physical Macros cont.
VDD
VSS
MACRO ADD1
CLASS CORE ;
FOREIGN ADD1 0.0 0.0 ;
ORIGEN 0.0 0.0 ;
LEQ ADD ;
SIZE 19.8 BY 6.4 ;
SYMMETRY x y ;
SITE coresite ;
PIN A
DIRECTION INPUT ;
PORT
LAYER Metal1 ;
RECT 19.2 8.2 19.5 10.3 ;
END
END A
PIN B
..
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
SPICE Transistor Model
Noise Data for Cell 1
.subckt Transistor Description for Cell 1
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
Require
All lef fie
lefdef.layermap
9 lef &ICT layer mapping
9 gds &ICT layer mapping
lefdef.layermap
#type
metal
metal
metal
metal
via
via
via
layer_ict
METAL_1
METAL_2
METAL_3
METAL_4
VIA_1
VIA_2
VIA_3
lefdef
lefdef
lefdef
lefdef
lefdef
lefdef
lefdef
lefdef
layer_lef
METAL1
METAL2
METAL3
METAL4
VIA12
VIA23
VIA34
34
gate-level netlist
If designing a chip , IO pads , power pads and Corner
pads should be added before the netlist is imported.
Make sure that there is no assign statement and no
*cell* cell name in the netlist.
Use the synthesis command below to remove assign statement.
set_boundary_optimization
Use the synthesis commands below to remove *cell* cell name
define_name_rules name_rule map {{\\*cell\\* cell}}
change_names hierarchy output name_rule
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
SDC constraint
-- create_generated_clock
I_CLK
create_generated_clock [-add]
[-master_clock]
Top
[-name clock_name]
[-source source_pin]
[-multiply_by mult]
[-divide_by div]
[-duty_cycle percent]
D QN
[-neg]
div_clk
[-edges edge_list]
[-edge_shift edge_shift_list]
clock_root_list
SDC constraint
-- set_clock_latency
set_clock_latency [-source]
[-early | -late]
[-min | -max]
latency
pin_or_clock_list
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
SDC constraint
--set_input_delay
CLK1
delay
In1 .. In7
In1
In2
: Design
:
I_CLK
set_input_delay delay_value
[-min] [-max]
[-rise] [-fall]
[-clock clock_name]
[-clock_fall]
[-add_delay]
[-network_latency_included]
[-source_latency_included]
port_pin_list
SDC constraint
--set_output_delay
CLK1
delay
Out1
Out1
:
Design
:
CLK1
CLK1
set_output_delay delay_value
[-min] [-max]
[-rise] [-fall]
[-clock clock_name]
[-add_delay]
[-network_latency_included]
[-source_latency_included]
port_pin_list
SDC constraint
--set_drive
5K
In1
3,2,4,3
In2
In1
In2
43
SDC constraint
--set_load
Out1
Out2
5pf
4~5pf
44
SDC constraint
--set_false_path
set_false_path [{-from | -rise_from | -fall_from} pin_list]
[{-through | -rise_through | -fall_through} pin_list]
[{-to | -rise_to | -fall_to} pin_list]
[-reset_path]
[-hold | -setup]
45
SDC constraint
--set_multicycle_path
set_multicycle_path {-hold | -setup}
{-start | -end}
[-reset_path]
[{-from | -rise_from | -fall_from} pin_list]
[{-through | -rise_through | -fall_through} pin_list]
[{-to | -rise_to | -fall_to} pin_list]
46
Combinational Logic
End Point
PO
47
AT=5
AT=2
AT=5
3
1
2
1
3
2
3
1
AT=2
RAT=5
3
1
AT=5
RAT=4
AT=6
RAT=5
2
1
3
1
Path-based:
RAT=10
AT=7
RAT=7
9
10
10
11
(OK)
(OK)
(OK)
(OK)
(Fail)
(OK)
Block-based:
3
2
AT=9
RAT=8
2+2+3 = 7
2+3+1+3 =
2+3+3+2 =
5+1+1+3 =
5+1+3+2 =
5+1+2 = 8
RAT=10
AT=11
RAT=10
Transition Delay
Output
Capacitance
Input Transition
0
0.5
0.1
0.123
0.234
0.456
0.2
0.222
0.432
0.801
Vin
I1
I2
Dtransition(I1)
Dc Vout Dtransition(I2)
I3
Req
Dcell(I2)
Ceq
49
TDFF1+Tpath
Tarrival
clk2
Tsetup
Tslack
Trequire
50
51
52
TPI+Tpath
Tarrival
TPO(output delay)
Tslack
Trequire
clk2
Thold
Tslack
Trequire
Tarrival
54
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
56
57
IO constraint
Create an I/O assignment file manualy using the following template:
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.
PAD_CLK
PAD_HALT
PAD_IOVDD1
PAD_IOVSS1
Version: 1
Pad: CORNER0 NW PCORNERDGZ
Pad: PAD_CLK N
Pad: PAD_HALT N
Pad: CORNER1 NE PCORNERDGZ
Pad: PAD_X1
W
Pad: PAD_X2
W
Pad: CORNER2 SW PCORNERDGZ
Pad: PAD_IOVDD1 S PVDD2DGZ
Pad: PAD_IOVSS1 S PVSS2DGZ
Pad: CORNER3 SE PCORNERDGZ
Pad: PAD_VDD1 E PVDD1DGZ
Pad: PAD_VSS1 E 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
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
SDF Example
IO Type
2mA
4mA
8mA
12mA
16mA
24mA
DF Value
0.02
0.03
0.09
0.18
0.3
0.56
63
64
Getting Started
Source the encounter environment:
unix% source /usr/cadence/cic_setup/soc.csh
Log file:
encounter.log*
encounter.cmd*
65
GUI
menus
design views
tool widgets
switch bar
display control
name of
selected
object
design views
auto query
cursor coordinates
66
Tool Wedgits
Design Import
Zoom
In/Out
Fit
Hierarchy
Zoom
Previous Down/Up
Zoom
Select
Redraw
Calculate
Attribute Xwindow
Fence
Editor dump/undump
Density
Undo/Redo Design
Browser Summary Report
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
Action
Key
Action
Edit attribute
space
Select Next
Fits display
popup Edit
Zoom in
editTrim
Zoom out
0-9
Arrows
h/H
hierarchy up/down
clear Drc
Escape
K
Cancel
Removes all rulers
Import Design
9
DesignDesign Import
IO Assignment File:
9
9
9
71
9
9
73
9
9
9
9
74
Delay Name/Footprint:
required to run a fix hold time violation
Inverter Name/Footprint:
required to run IPO and TD placement.
For Cells:
BUFXL
BUFX1
BUFX2
BUFX3
BUFX4
BUFX8
BUFX12
BUFX16
BUFX20
Footprint : buf
75
9
9
9
9
76
77
Specify Floorplan
9
9
FloorplanSpecify Floorplan
9
9
9
9
9
9
78
Double-back rows:
Row Spacing = 0
79
80
Place Blocks
FloorplanPlace Blocks/ModulesPlace
81
82
Top
Left
9
9
9
9
Right
Bottom
83
Block Placement
Flow step
I/O pre-placed
Run quick block placement
Throw away standard cell
placement
Manually fit blocks
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
86
9
9
9
87
88
89
90
Block A
Block B
Block C
Block A
Block B
Block C
91
9
9
92
9
93
Power Planning:
Add Stripes
9
9
9
crossover
via array
94
Edit Route
Duplicate wire
Change layer
Change width
Merge wire
Delete wire
95
Trim wire
96
Cut Wire
Stretch Wire
97
instPinName
The design instance input/output pin name
98
SCAN IN
D
D
Q
D
Q
D
Q
D
Q
D
D
D
SCAN OUT
Q
D
SCAN IN
D
D
D
SCAN OUT
Q
D
Q
Q
D
99
Placement
PlacePlace
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
9
100
Floorplan Purposes
Develop early physical layout to ensure design objective can be
archived
101
Difference Floorplan
Difference Performance
102
Logical
Module Constraint
Soft Guide
Guide
Region
Fence
Soft Guide
Guide
Region
Fence
104
105
PlaceTieHiLoAdd TieHiLo
106
Clock Problem
Clock problem
108
Modify
netlist
synthesis report
clock nets
routing guide
109
9
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
111
CTS spec.
A CTS spec. contain the following information.
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
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
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
+ portName rising|falling
+
CTS Spec.
-- Automatic Gated CTS Section cont.
ExcludedPin
+ pinName
+ ..
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
+ pinName
+ ..
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
Timing Constraints
creat_clock
AutoCTSRootPin / ClkGroup
create_generated_clock
ThroughPin
set_clock_latency
Maxdelay
set_clock_uncertainty
Maxskew
set_clock_transition
BufMaxTran / SinkMaxTran
124
Reconvergence clock
Crossover clock
125
Clock nets
Saves the generated clock nets
used to guide clock net routing
126
127
128
Optimization
TimingOptimization
IPO
setup time
hold time
SI
DRV (Design
Rule Violation)
130
131
Useful Skew
balanced clock
132
Trial Route
perform quick routing for congestion and parasitics
estimation
Prototyping:
Quickly to gauge the
feasibility of netlist.
components in design might
no be routed at legal location
133
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
Level
Color
Overflow Value
Blue
Green
Yellow
Red
Magenta
Grey to White
6 and higher
135
Timing Analysis
TimingSpecify Analysis ConditionSpecify RC Extraction Mode
TimingExtract RC
TimingTiming Analysis
No Async/Async:
recovery, removal check
No Skew/Skew:
check with/without clock
skew constraint
136
Slack Browser
TimingDebug Timing
137
Power Analysis
TimingExtract RC
PowerEdit Pad Location
PowerEdit Net Toggle Probability
9
9
9
9
138
analysis report:
9
9
A power graph
report contains
9 average power usage
9 worst IR drop
9 worst EM violation
9
9
9
9
Simlation-Based
Power Analysis
PowerPower Analysis
Simulation-Based
save netlist for simulation
DesignSaveNetlist
save sdf for simulation
TimingCalculate Delay
simulation and dump vcd file.
$dumpvars;
$dumpfile(wave.vcd);
VoltageStorm Anaylsis
PowerRun VoltageStorm
9
9
141
142
Display IR Drop
143
144
145
146
SRoute
Route Special Net (power/ground net)
Block pins
Pad pins
Pad rings
Standard cell pins
Stripes (unconnected)
147
Add IO filler
addIoFiller
addIoFiller
addIoFiller
addIoFiller
cell
cell
cell
cell
ADD IO FILLER
148
149
NanoRoute
RouteNanoRoute
150
NanoRoute Attributes
RouteNanoRoute/Attributes
151
Crosstalk
Crosstalk problem are getting more serious in 0.25um and
below for:
Smaller pitches
Greater height/width ratio
Higher design frequency
152
Crosstalk Problem
Delay problem
Aggressor
original signal
impacted signal
Noise problem
Aggressor
original signal
impacted signal
153
Crosstalk Prevention
Placement solution
Insert buffer in lines
Upsize driver
Congestion optimization
Add buffer
Upsize
Routing solution
Limit length of parallel nets
Wider routing grid
Shield special nets
154
155
156
Antenna Effect
In a chip manufacturing process, Metal is initially deposited
so it covers the entire chip.
Then, the unneeded portions of the metal are removed by
etching, typically in plasma(charged particles).
The exposed metal collect charge from plasma and form
voltage potential.
If the voltage potential across the gate oxide becomes large
enough, the current can damage the gate oxide.
157
Antenna Ratio
Plasma
metal2
via2
+ + + + + ++ + + +
metal2
metal1
Plasma
+ + +
via1
poly gate oxide
Antenna Ratio =
via1
poly
metal2
metal1
gate oxide
159
160
Stagger IO pad
Abutted Stagger IO
PIN
Logic and driver
PR boundary
Bonding matel
Inner Bonding
Outer Bonding
161
162
Export DEF
(In encounter)
routed.def
routed.def
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
DesignSaveGDS
DesignSave->Netlist
DesignSave->DEF
164
ALL
METAL1/NET
METAL1/SPNET
METAL1/PIN
METAL1/LEFPIN
ALL
ALL
16
16
40
40
16
17
18
0
0
0
0
0
0
0
165
Chapter2
Post-Layout Verification
DRC/ERC/LVS/LPE
167
LVS
vdd!
zn
compare with
zn
gnd!
ERC
LPE/PRE
vdd!
clk
vdd!
short
extract
i
zn
zn
168
gnd!
DRC
Schematic Netlist
optional
Extract Devices
ERC
LVS
LPE/PRE
Post-Layout Simulation
169
DRC flow
Prepare Layout
stream in gds2
add power pad text
stream out gds2
170
Prepare Layout
Stream In design
Stream In core gds2
DFII
Library
Stream In IO gds2
LEF in RAM lef
Add power Text
Stream Out
GDSII
GDSII
171
File->import->stream
9
9
9
172
173
9
9
9
174
175
Result log
CHIP.drc.summary (ASCII result)
CHIP.drc.results (Graphic result)
177
178
179
180
LVS Overview
Layout Data
Schematic Netlist
a<0>
b<0>
a<1>
b<1>
a<5:0>
a<2>
b<2>
b<5:0>
a<3>
b<3>
clk
a<4>
b<4>
rst
a<5>
b<5>
cin
VDD
gnd!
sel
s<5:0>
carry
GND
181
...
a<0>
...
b<0>
a<0>
b<0>
...
initial corresponding
node pairs
182
Black-Box LVS
Calibre black-box LVS
One type of hierarchical LVS.
Black-box LVS treats every library cell as a black box.
Black-box LVS checks only the interconnections between library
cells in your design, but not cell inside.
You need not know the detail layout of every library cells.
Reduce CPU time.
183
i1
i1
vs.
i2
i2
GND
Black-Box LVS
inv0d1
VDD
inv0d1
i1
nd02d1
i1
z
GND
vs.
nd02d1
z
i2
184
i2
LVS flow
Prepare Layout
The same as DRC Prepare Layout
Prepare Netlist
v2lvs
185
umc18lvs.v
umc18lvs.v
Verilog
Verilog
CHIP.v
CHIP.v
v2lvs
umc18lvs.spi
umc18lvs.spi
CHIP.spi
CHIP.spi
v2lvs v CHIP.v l umc18lvs.v o source.spi s umc18lvs.spi s1 VDD s0
GND
If a macro DRAM64x16 is used
v2lvs v CHIP.v l umc18lvs.v l DRAM64x16.v o source.spi s
umc18lvs.spi s DRAM64x16.spi s1 VDD s0 GND
186
188
189
INCLUDE /calibre/LVS/Calibre-lvs-cur
verilog
extract
v2lvs
layout.spi
source.spi
191
192
#
#
#
#
# #
#
###################
#
#
#
CORRECT
#
#
#
###################
_
*
_
*
|
\___/
193
*************************************************
CELL SUMMARY
*************************************************
Result
----------CORRECT
Layout
----------CHIP
Source
-------------CHIP
194
Matched
Source
----------11525
Unmatched Unmatched
Layout
Source
-------------- --------------0
0
Component
Type
--------------
1
54
79
542
8
----------Total Inst: 10682
1
54
79
542
8
----------10682
0
0
0
0
0
0
0
0
..
..
0
0
-------------- --------------0
0
ADDFHX1
ADDFHX4
ADDFX2
AND2X1
.
XOR3X2
--------------
Nets:
Instances:
195
196
197
198
-------------------------------------------------------------------------------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
200
Chapter3
-- Nanosim
M2
M1
M1 to M1
capacitance
M1 to M2
capacitance
vdd!
vdd!
gnd!
gnd!
202
M1 parasitic resistance
VIA
M1
vdd!
vdd!
gnd!
gnd!
M2 parasitic resistance
203
post-layout
204
....
critical path delay
...
. . .data
205
Gate-level
Analysis
Tr.-level post-layout
timing analysis
Layout
Delay
Calculation
Extraction
Tr. Netlist
RC Network
Tr-level
Analysis
RC Network
Gate-level post-layout
timing analysis
206
netlist/parasitic
extraction
Calibre LPE/PRE
SPICE netlist
simulation
pattern
Post-layout
simulation
simulation
result
Nanosim
207
What is Nanosim
Nanosim is a transistor- level timing simulation tool
for digital and mixed signal CMOS and BiCMOS
designs.
Nanosim handles voltage simulation and timing
check.
Simulation is event driven, targeting between SPICE
( circuit simulator ) and Verilog ( logic simulator ).
208
209
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
210
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
213
in<7:0>
44
ii
xx
xx
xx
214
in[7:0]
44
ii
xx
xx
xx
215
217
Environment setup
unix% source /usr/debussy/CIC/debussy.csh
Starting nWave
unix% nWave &
218
219
220
221
peak
peak
peak
peak
peak
#1
#2
#3
#4
#5
1.00010e+03 ns
: -3.53355e+05 uA
: 3.53388e+05 uA
:
:
:
:
:
-4.54061e+05
-4.34973e+05
-3.88048e+05
-3.87280e+05
-3.84302e+05
uA
uA
uA
uA
uA
at
at
at
at
at
6.78400e+02
4.00000e-01
2.59000e+01
1.27500e+02
5.77800e+02
222
ns
ns
ns
ns
ns