chapter 6 soc encounter
TRANSCRIPT
-
7/26/2019 Chapter 6 Soc Encounter
1/222
Cell-Based IC Physical Design and Verification
- SOC Encounter
CIC 2006/02
-
7/26/2019 Chapter 6 Soc Encounter
2/222
2
Class Schedule
Day1 Design Flow Over View
Prepare Data
Getting Started
Importing Design
Specify Floorplan
Power Planning
Placement Synthesize Clock Tree
Day2 Timing Analysis
Trial Route
Power Analysis
SRoute
NanoRoute
Fill Filler
Output Data DRC
LVS
extraction/nanosim
-
7/26/2019 Chapter 6 Soc Encounter
3/222
3
Chapter1
Cell-Based Physical DesignSOC Encounter 4.2
-
7/26/2019 Chapter 6 Soc Encounter
4/222
4
Cell-Based Design Flow
synthesis
Routed
design
Add LVS/Nanosim text
Replace layout
GDSII
DRC LVS
Post layout simulation
Tape out
Gate level
netlist
VerilogVHDL
Place & Route
-
7/26/2019 Chapter 6 Soc Encounter
5/222
5
SOC Encounter P&R flow
IO,P/G Placement
Specify floorplan
Amoeba Placement
Power Planning
Timing Analysis
Clock Tree Synthesis
Timing Analysis
Post-CTS Optimization
Power Analysis
IO constraints
Power Route
SI Driven Route
Timing/SI Analysis
Output GDS, Netlist,Spef,DEF
Pre-CTS Optimization
Netlist (verilog)
Timing constraints (sdc)
-
7/26/2019 Chapter 6 Soc Encounter
6/222
6
IO, P/G Placement
VDD
VSS
IOVDD IOVSS
I1
I2
I3
I4
O2
O1
O3
O4
Corner1 Corner2
Corner3 Corner4
-
7/26/2019 Chapter 6 Soc Encounter
7/222
7
Specify Floorplan
Hight
Width
-
7/26/2019 Chapter 6 Soc Encounter
8/222
8
Floorplan
VDD
VSS
IOVDD IOVSS
I1
I2
I3
I4
O2
O1
O3
O4
M2
M1 M3
-
7/26/2019 Chapter 6 Soc Encounter
9/222
9
Amoeba Placement
-
7/26/2019 Chapter 6 Soc Encounter
10/222
10
Power Planning
-
7/26/2019 Chapter 6 Soc Encounter
11/222
11
Clock Tree Synthesis
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
CLK
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
CLK
-
7/26/2019 Chapter 6 Soc Encounter
12/222
12
Power Analysis
-
7/26/2019 Chapter 6 Soc Encounter
13/222
-
7/26/2019 Chapter 6 Soc Encounter
14/222
14
Add IO Filler
-
7/26/2019 Chapter 6 Soc Encounter
15/222
15
Routing
-
7/26/2019 Chapter 6 Soc Encounter
16/222
16
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
-
7/26/2019 Chapter 6 Soc Encounter
17/222
17
LEF Format
-- Process Technology
Layers Design Rule ParasiticPOLY
Metal1
Metal2
Contact
Via1
Net widthNet spacing
AreaEnclosureWide metalslotAntennaCurrent density
ResistanceCapacitance
-
7/26/2019 Chapter 6 Soc Encounter
18/222
-
7/26/2019 Chapter 6 Soc Encounter
19/222
-
7/26/2019 Chapter 6 Soc Encounter
20/222
20
LEF Format
-- APR technology : SITE
The Placement site give the placement grid of a family of
macros
a sitea row
-
7/26/2019 Chapter 6 Soc Encounter
21/222
21
Row Based PR
VDD
VSS
VDD
VSS
-
7/26/2019 Chapter 6 Soc Encounter
22/222
22
LEF Format
-- APR technology :routing pitch , default direction
metal2 routing pitch
metal1 routing pitch
Horizontal
routing
Vertical
routingMetal1
Metal3
Metal5
Metal2
Metal4
Metal6
via
-
7/26/2019 Chapter 6 Soc Encounter
23/222
23
LEF Format
-- APR technology : via generate
To connect wide metal , create a via array toreduce via resistance
Defines formulas for generating via arrays
Layer Metal1
Direction HORIZONTAL
OVERHANG 0.2
Layer Metal2
Direction VERTICALOVERHANG 0.2
Layer Via1
RECT 0.14 0.140.140.14
SPACING 0.56 BY 0.56
Generated via
Default via
-
7/26/2019 Chapter 6 Soc Encounter
24/222
24
LEF Format
-- APR technology : via stack
Without via stack With via stack
Higher density routing
Easier usage of upper layer
Must Follow minimum area rule
-
7/26/2019 Chapter 6 Soc Encounter
25/222
-
7/26/2019 Chapter 6 Soc Encounter
26/222
26
LEF Format
-- APR technology : Double Cut Via
Metal2
Double cut Via12
Metal1
-
7/26/2019 Chapter 6 Soc Encounter
27/222
27
LEF Format
-- APR technology : SameNet Spacing
SPACINGSAMENET 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
Metal1
0.23 same net spacing rule
Metal1 Metal3
VIA12 and VIA23
VIA12 and VIA23 allow stack
-
7/26/2019 Chapter 6 Soc Encounter
28/222
-
7/26/2019 Chapter 6 Soc Encounter
29/222
29
LEF Format
-- APR technology : Physical Macros cont.
VDD
VSS
BA
Y
MACRO ADD1CLASS 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 ;PORTLAYER Metal1 ;RECT 19.2 8.2 19.5 10.3 ;
END
END APIN B
..END BOBS
END
END ADD1
-
7/26/2019 Chapter 6 Soc Encounter
30/222
-
7/26/2019 Chapter 6 Soc Encounter
31/222
31
CeltIC Library
cdB model
The cdB noise library structure
SPICE Transistor Model
Noise Data for Cell 1
.subckt Transistor Description for Cell 1
Noise Data for Cell N
.subckt Transistor Description for Cell N
-
7/26/2019 Chapter 6 Soc Encounter
32/222
-
7/26/2019 Chapter 6 Soc Encounter
33/222
-
7/26/2019 Chapter 6 Soc Encounter
34/222
34
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 METAL3metal METAL_4 lefdef METAL4
via VIA_1 lefdef VIA12
via VIA_2 lefdef VIA23
via VIA_3 lefdef VIA34
-
7/26/2019 Chapter 6 Soc Encounter
35/222
35
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 namedefine_name_rules name_rulemap {{\\*cell\\* cell}}change_nameshierarchyoutput name_rule
http://%2Acell/*http://%2Acell/*http://%2Acell/*http://%2Acell/* -
7/26/2019 Chapter 6 Soc Encounter
36/222
-
7/26/2019 Chapter 6 Soc Encounter
37/222
-
7/26/2019 Chapter 6 Soc Encounter
38/222
38
SDC constraint
-- create_generated_clock
create_generated_clock [-add]
[-master_clock][-name clock_name]
[-source source_pin]
[-multiply_by mult]
[-divide_by div][-duty_cycle percent]
[-neg]
[-edges edge_list]
[-edge_shift edge_shift_list]clock_root_list
create_generated_clockname CLK2source [get_ports I_CLK]divide_by 2 [get_pins DF/QN]
QND
TopI_CLK
div_clk
-
7/26/2019 Chapter 6 Soc Encounter
39/222
-
7/26/2019 Chapter 6 Soc Encounter
40/222
-
7/26/2019 Chapter 6 Soc Encounter
41/222
-
7/26/2019 Chapter 6 Soc Encounter
42/222
-
7/26/2019 Chapter 6 Soc Encounter
43/222
-
7/26/2019 Chapter 6 Soc Encounter
44/222
-
7/26/2019 Chapter 6 Soc Encounter
45/222
-
7/26/2019 Chapter 6 Soc Encounter
46/222
-
7/26/2019 Chapter 6 Soc Encounter
47/222
-
7/26/2019 Chapter 6 Soc Encounter
48/222
48
Static Timing Analysis
31
3
1
21
32
AT=2
AT=5
RAT=10
31
3
1
21
32
AT=2
AT=5
RAT=10
AT=7RAT=7
AT=9RAT=8
AT=6RAT=5
AT=2RAT=5
AT=5RAT=4
AT=11
RAT=10
Path-based:
2+2+3 = 7 (OK)2+3+1+3 = 9 (OK)2+3+3+2 = 10 (OK)5+1+1+3 = 10 (OK)5+1+3+2 = 11 (Fail)
5+1+2 = 8 (OK)
Block-based:
Critical path is determinedas collection of gates withthe same, negative slack:In our case, we see one
critical path with slack = -1
-
7/26/2019 Chapter 6 Soc Encounter
49/222
-
7/26/2019 Chapter 6 Soc Encounter
50/222
-
7/26/2019 Chapter 6 Soc Encounter
51/222
-
7/26/2019 Chapter 6 Soc Encounter
52/222
52
Static Timing Analysis
Reg to PO
Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH Trequire = Tcycle- TPO(output delay) Tslack= Trequire- Tarrival
Setup time
-
7/26/2019 Chapter 6 Soc Encounter
53/222
-
7/26/2019 Chapter 6 Soc Encounter
54/222
-
7/26/2019 Chapter 6 Soc Encounter
55/222
-
7/26/2019 Chapter 6 Soc Encounter
56/222
-
7/26/2019 Chapter 6 Soc Encounter
57/222
-
7/26/2019 Chapter 6 Soc Encounter
58/222
58
IO constraint
Version: 1
MicronPerUserUnit: value
Pin: pinName side |corner
Pad: padInstanceName side|corner [cellName]
Offset: length
Skip: length
Spacing: lengthKeepclear: side offset1 offset2
Create an I/O assignment file manualy using the following template:
-
7/26/2019 Chapter 6 Soc Encounter
59/222
59
IO constraintcont.
Version: 1
Pad: CORNER0 NW PCORNERDGZPad: PAD_CLK N
Pad: PAD_HALT N
Pad: CORNER1 NE PCORNERDGZ
Pad: PAD_X1 WPad: 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
PA
D_CLK
PA
D_HALT
P
AD_IOVDD1
PAD_IOVSS1
-
7/26/2019 Chapter 6 Soc Encounter
60/222
60
SSO Consideration
SSO
Simultaneously Switch OutputsSSN 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 makingground voltage level higher than 0.8 volt for one ground pad
DF Drive Factor, DF = 1/DI
SDF
Sum of Drive Factor
-
7/26/2019 Chapter 6 Soc Encounter
61/222
-
7/26/2019 Chapter 6 Soc Encounter
62/222
-
7/26/2019 Chapter 6 Soc Encounter
63/222
-
7/26/2019 Chapter 6 Soc Encounter
64/222
-
7/26/2019 Chapter 6 Soc Encounter
65/222
-
7/26/2019 Chapter 6 Soc Encounter
66/222
-
7/26/2019 Chapter 6 Soc Encounter
67/222
-
7/26/2019 Chapter 6 Soc Encounter
68/222
68
Design Views
FloorplanView
displays the hierarchical module and blockguides,connection flight lines and floorplan objects
Amoeba View display the outline of modules after placement
Placement View display the detailed placements of cells, blocks.
-
7/26/2019 Chapter 6 Soc Encounter
69/222
69
Display Control
Select Bar
-
7/26/2019 Chapter 6 Soc Encounter
70/222
70
Common Used Bindkeys
Key Action
q Edit attribute
f Fits display
z Zoom in
Z Zoom out
Arrows pans design area in thedirection of the arrow
Escape Cancel
K Removes all rulers
Key Action
space Select Next
e popup Edit
T editTrim
0-9 toggle layer[0-9] visibility
h/H hierarchy up/down
x clear Drc
Looking for more bindkey:Design->Preference, Binding Key
-
7/26/2019 Chapter 6 Soc Encounter
71/222
-
7/26/2019 Chapter 6 Soc Encounter
72/222
Import Design -- Power
-
7/26/2019 Chapter 6 Soc Encounter
73/222
73
Import Design -- Power
Specify the names of Power Nets and Ground Nets
Import Design IPO/CTS
-
7/26/2019 Chapter 6 Soc Encounter
74/222
74
Import Design IPO/CTS
-
7/26/2019 Chapter 6 Soc Encounter
75/222
Import Design -- Power
-
7/26/2019 Chapter 6 Soc Encounter
76/222
76
Import Design Power
-
7/26/2019 Chapter 6 Soc Encounter
77/222
Specify Floorplan
-
7/26/2019 Chapter 6 Soc Encounter
78/222
78
Specify Floorplan
FloorplanSpecify Floorplan
Specify Floorplan Doube back rows
-
7/26/2019 Chapter 6 Soc Encounter
79/222
79
Spec y oo p a oube bac ows
Double-back rows:Row Spacing > 0
Row Spacing = 0
-
7/26/2019 Chapter 6 Soc Encounter
80/222
Place Blocks
-
7/26/2019 Chapter 6 Soc Encounter
81/222
81
FloorplanPlace Blocks/ModulesPlace
automatic place blocks ( blackboxesand partitions) and hard macros at thetop-level design.
Block halo
Specifies the minimum amount ofspace around blocks that is preservedfor routing.
-
7/26/2019 Chapter 6 Soc Encounter
82/222
-
7/26/2019 Chapter 6 Soc Encounter
83/222
-
7/26/2019 Chapter 6 Soc Encounter
84/222
-
7/26/2019 Chapter 6 Soc Encounter
85/222
85
Block Placement
Preserve enough power pad
Create power rings around blockFollow default routing direction rule
Reserve a rounded core row area for placer
Default direction
block
-
7/26/2019 Chapter 6 Soc Encounter
86/222
-
7/26/2019 Chapter 6 Soc Encounter
87/222
Power Planning: Wire Group
-
7/26/2019 Chapter 6 Soc Encounter
88/222
88
Use wire group
no interleavingnumber of bits = 2
Use wire group
interleavingnumber of bits = 2
Power Planning: Block Ring
-
7/26/2019 Chapter 6 Soc Encounter
89/222
89
-
7/26/2019 Chapter 6 Soc Encounter
90/222
-
7/26/2019 Chapter 6 Soc Encounter
91/222
Power Planning: Add Stripes
-
7/26/2019 Chapter 6 Soc Encounter
92/222
92
-
7/26/2019 Chapter 6 Soc Encounter
93/222
-
7/26/2019 Chapter 6 Soc Encounter
94/222
-
7/26/2019 Chapter 6 Soc Encounter
95/222
Edit Route cont.
-
7/26/2019 Chapter 6 Soc Encounter
96/222
96
Trim wire
Fix wire wider
than max width
-
7/26/2019 Chapter 6 Soc Encounter
97/222
-
7/26/2019 Chapter 6 Soc Encounter
98/222
-
7/26/2019 Chapter 6 Soc Encounter
99/222
-
7/26/2019 Chapter 6 Soc Encounter
100/222
-
7/26/2019 Chapter 6 Soc Encounter
101/222
Difference Floorplan
Difference Performance
-
7/26/2019 Chapter 6 Soc Encounter
102/222
102
Difference Performance
Wire Load After Placement
-
7/26/2019 Chapter 6 Soc Encounter
103/222
103
Logical wire load after placement
-
7/26/2019 Chapter 6 Soc Encounter
104/222
-
7/26/2019 Chapter 6 Soc Encounter
105/222
Add Tiehi/Tielo cell
-
7/26/2019 Chapter 6 Soc Encounter
106/222
106
Tiehi/Tielo cell connect tiehi/tielo net to supply voltage or
ground with resisterTiehi/Tielo cell is added for ESD protection.
Set add tiehi/tielo cell mode:
encounter>setTieHiLoMode maxFanOut #num maxDistance #num
PlaceTieHiLoAdd TieHiLo
-
7/26/2019 Chapter 6 Soc Encounter
107/222
-
7/26/2019 Chapter 6 Soc Encounter
108/222
Synthesize Clock Tree
-
7/26/2019 Chapter 6 Soc Encounter
109/222
109
Create Clock Tree Spec
clock spec
Specify Clock Tree Modify
Synthesis Clock Tree netlistsynthesis report
clock nets
routing guideDisplay Clock Tree
-
7/26/2019 Chapter 6 Soc Encounter
110/222
-
7/26/2019 Chapter 6 Soc Encounter
111/222
CTS spec.
-
7/26/2019 Chapter 6 Soc Encounter
112/222
112
A CTS spec. contain the following information.
Timing constraint file (optional) Naming attributes (optional)
Macro model data (optional)
Clock grouping data (optional)
Attributes used by NanoRoute routing solution (optional)
Requirement for manual CTS or automatic CTS
CTS spec.
--Naming Attributes Section
-
7/26/2019 Chapter 6 Soc Encounter
113/222
113
TimingConstraintFilefilename
define a timing constraint file for use during CTS
NameDelimiter delimiter
name delimiter used when inserting buffers and updating clockroot 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)
-
7/26/2019 Chapter 6 Soc Encounter
114/222
-
7/26/2019 Chapter 6 Soc Encounter
115/222
CTS Spec.
--Manually Define Clock Tree Topology
-
7/26/2019 Chapter 6 Soc Encounter
116/222
116
ClockNetName netName
LevelNumber number Specify the clock tree level number
LevelSpec levelNumber numberOfBuffers bufferType levelNumber
Specify the level number in the clock tree
numberOfBuffer
the total number of buffers CTS should allow on the specified level
Example:LevelSpec 1 2 CLKBUFX2
LevelSpec 2 2 CLKBUFX2
End
CTS Spec.
-- Automatic Gated CTS Section
-
7/26/2019 Chapter 6 Soc Encounter
117/222
117
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}
CTS Spec.
-- Automatic Gated CTS Section cont.
-
7/26/2019 Chapter 6 Soc Encounter
118/222
118
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 possiblelocation to the clock port location .
-
7/26/2019 Chapter 6 Soc Encounter
119/222
-
7/26/2019 Chapter 6 Soc Encounter
120/222
-
7/26/2019 Chapter 6 Soc Encounter
121/222
-
7/26/2019 Chapter 6 Soc Encounter
122/222
-
7/26/2019 Chapter 6 Soc Encounter
123/222
-
7/26/2019 Chapter 6 Soc Encounter
124/222
-
7/26/2019 Chapter 6 Soc Encounter
125/222
-
7/26/2019 Chapter 6 Soc Encounter
126/222
-
7/26/2019 Chapter 6 Soc Encounter
127/222
-
7/26/2019 Chapter 6 Soc Encounter
128/222
-
7/26/2019 Chapter 6 Soc Encounter
129/222
-
7/26/2019 Chapter 6 Soc Encounter
130/222
-
7/26/2019 Chapter 6 Soc Encounter
131/222
-
7/26/2019 Chapter 6 Soc Encounter
132/222
-
7/26/2019 Chapter 6 Soc Encounter
133/222
-
7/26/2019 Chapter 6 Soc Encounter
134/222
-
7/26/2019 Chapter 6 Soc Encounter
135/222
-
7/26/2019 Chapter 6 Soc Encounter
136/222
-
7/26/2019 Chapter 6 Soc Encounter
137/222
-
7/26/2019 Chapter 6 Soc Encounter
138/222
-
7/26/2019 Chapter 6 Soc Encounter
139/222
-
7/26/2019 Chapter 6 Soc Encounter
140/222
-
7/26/2019 Chapter 6 Soc Encounter
141/222
-
7/26/2019 Chapter 6 Soc Encounter
142/222
Display IR Drop
-
7/26/2019 Chapter 6 Soc Encounter
143/222
143
-
7/26/2019 Chapter 6 Soc Encounter
144/222
-
7/26/2019 Chapter 6 Soc Encounter
145/222
-
7/26/2019 Chapter 6 Soc Encounter
146/222
-
7/26/2019 Chapter 6 Soc Encounter
147/222
-
7/26/2019 Chapter 6 Soc Encounter
148/222
-
7/26/2019 Chapter 6 Soc Encounter
149/222
-
7/26/2019 Chapter 6 Soc Encounter
150/222
-
7/26/2019 Chapter 6 Soc Encounter
151/222
Crosstalk
Crosstalk problem are getting more serious in 0.25um andbelow for:
-
7/26/2019 Chapter 6 Soc Encounter
152/222
152
below for:
Smaller pitches Greater height/width ratio Higher design frequency
-
7/26/2019 Chapter 6 Soc Encounter
153/222
-
7/26/2019 Chapter 6 Soc Encounter
154/222
CeltIC Crosstalk Analysis
SIRun CeltIC Crosstalk Analysis
-
7/26/2019 Chapter 6 Soc Encounter
155/222
155
-
7/26/2019 Chapter 6 Soc Encounter
156/222
Antenna Effect
In a chip manufacturing process, Metal is initially deposited
-
7/26/2019 Chapter 6 Soc Encounter
157/222
157
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 formvoltage potential.
If the voltage potential across the gate oxide becomes large
enough, the current can damage the gate oxide.
Antenna Ratio
Plasmametal2 metal2
Plasma
-
7/26/2019 Chapter 6 Soc Encounter
158/222
158
+ + + + + +
gate oxidepoly
metal1
via1
Antenna Ratio =Area of process antennas on a node
Area of gates to the node
via2 + + + + + + +
-
7/26/2019 Chapter 6 Soc Encounter
159/222
-
7/26/2019 Chapter 6 Soc Encounter
160/222
-
7/26/2019 Chapter 6 Soc Encounter
161/222
-
7/26/2019 Chapter 6 Soc Encounter
162/222
Add bonding pads flow (stagger IO pads only)
A placed and routed
design in encounterrouted.def
routed.def
Export DEF
(In encounter)
-
7/26/2019 Chapter 6 Soc Encounter
163/222
163
bondPads.ecobondPads.eco
bondPads.cmdbondPads.cmd
addbonding.pl routed.def
(In unix terminal)
source bondPads.cmd
(In encounter terminal)
finish
addbonding.pladdbonding.pl
ioPad.listioPad.list
Output Data
DesignSaveGDS
DesignSave->Netlist
-
7/26/2019 Chapter 6 Soc Encounter
164/222
164
Export GDS for DRC,LVS,LPE,and tape out.
Export Netlist for LVS and simulation.
Export DEF for reordered scan chain.
DesignSave->DEF
-
7/26/2019 Chapter 6 Soc Encounter
165/222
-
7/26/2019 Chapter 6 Soc Encounter
166/222
Post-Layout Verification Overview
Post-Layout Verification do the following things : DRC ( Design Rule Check )
-
7/26/2019 Chapter 6 Soc Encounter
167/222
167
ERC (Electrical Rule Check )
LVS (Layout versus Schematic )
LPE/PRE (Layout Parasitic Extraction / Parasitic Resistance
Extraction) and Post-Layout Simulation.
-
7/26/2019 Chapter 6 Soc Encounter
168/222
-
7/26/2019 Chapter 6 Soc Encounter
169/222
DRC flow
Prepare Layout stream in gds2
-
7/26/2019 Chapter 6 Soc Encounter
170/222
170
add power pad text
stream out gds2
Prepare command file
run DRC
View DRC error (DRC summary/RVE)
Prepare Layout
Stream In design
S I d 2
-
7/26/2019 Chapter 6 Soc Encounter
171/222
171
Add power Text
Stream Out
DFII
Library
GDSIIGDSII
Stream In core gds2
Stream In IO gds2
LEF in RAM lef
-
7/26/2019 Chapter 6 Soc Encounter
172/222
Prepare Layout: Add Power Text
Add power text for LVS and Nanosim
Example: For TSMC18/artisan library
-
7/26/2019 Chapter 6 Soc Encounter
173/222
173
Add text DVDD for IO power pad
Add text DVSS for IO ground pad
Add text VDD for core power pad
Add text VSS for core ground pad
-
7/26/2019 Chapter 6 Soc Encounter
174/222
-
7/26/2019 Chapter 6 Soc Encounter
175/222
-
7/26/2019 Chapter 6 Soc Encounter
176/222
-
7/26/2019 Chapter 6 Soc Encounter
177/222
Using Calibre RVE
Add in .cdsinit
-
7/26/2019 Chapter 6 Soc Encounter
178/222
178
setSkillPath(. ~/ /usr/memtor/Calibre_ss/cur/shared/pkgs/icb/tools/queryskl)
load(calibre.skl)
Using Calibre RVE
-
7/26/2019 Chapter 6 Soc Encounter
179/222
179
-
7/26/2019 Chapter 6 Soc Encounter
180/222
-
7/26/2019 Chapter 6 Soc Encounter
181/222
Initial Correspondence Points
Initial correspondence points establish a starting place forlayout and schematic comparison.
Create initial correspondence node pairs by
-
7/26/2019 Chapter 6 Soc Encounter
182/222
182
Create initial correspondence node pairs by adding text strings on layout database.
all pins in the top of schematic netlist will be treated as an initial
corresponding node if calibre finds a text string in layout whichmatches the node name in schematic.
a
b.
.
.
. . .
VDD
a
b. . .
initial correspondingnode pairs
global pin : VDD and GND
Black-Box LVS
Calibre black-box LVS
One type of hierarchical LVS.
-
7/26/2019 Chapter 6 Soc Encounter
183/222
183
One type of hierarchical LVS. Black-box LVS treats every library cell as a black box.
Black-box LVS checks only the interconnections between librarycells in your design, but not cell inside.
You need not know the detail layout of every library cells.
Reduce CPU time.
-
7/26/2019 Chapter 6 Soc Encounter
184/222
LVS flow
Prepare Layout
The same as DRC Prepare Layout
-
7/26/2019 Chapter 6 Soc Encounter
185/222
185
p yPrepare Netlist v2lvs
Prepare calibre command file run calibre LVS
View LVS error (LVS summary/RVE)
Prepare Netlist for Calibre LVS
Prepare Netlist
Verilog
CHIP.v
Verilog
CHIP.vumc18lvs v
umc18lvs.v
-
7/26/2019 Chapter 6 Soc Encounter
186/222
186
v2lvsv CHIP.vl umc18lvs.vo source.spis umc18lvs.spis1 VDDs0GND
If a macro DRAM64x16 is used
v2lvsv CHIP.vl umc18lvs.vl DRAM64x16.vo source.spisumc18lvs.spis DRAM64x16.spis1 VDDs0 GND
CHIP.spiCHIP.spi
v2lvs
umc18lvs.v
umc18lvs.spiumc18lvs.spi
-
7/26/2019 Chapter 6 Soc Encounter
187/222
-
7/26/2019 Chapter 6 Soc Encounter
188/222
Black Box related file
Pseudo spice file.GLOBAL VDD VSS
.SUBCKT AN2D1 Z A1 A2 VDD GND.ENDS
-
7/26/2019 Chapter 6 Soc Encounter
189/222
189
Pseudo verilog file
module AN2D1 (Z, A1, A2);output Z;
input A1;
input A2;
endmodule
Prepare command file for Calibre LVS
Edit Calibre LVS runset
LAYOUT PATH CHI P. cal i br e. gds
LAYOUT PI MARY CHI PLAYOUT SYSTEM GDSI I
-
7/26/2019 Chapter 6 Soc Encounter
190/222
190
SOURCE PATH CHI P. spi SOURCE PRI MARY CHI P
I NCLUDE / cal i br e/ LVS/ Cal i br e- l vs- cur
Edit Calibre LVS rule file
LVS BOX PVSSCLVS BOX PVSSRLVS BOX DRAM64x4s
Submit Calibre LVS
calibre lvs spice layout.spi hierauto
umc18LVS.cal > lvs.log
-
7/26/2019 Chapter 6 Soc Encounter
191/222
191
layout verilog
source.spilayout.spi
v2lvsextract
-
7/26/2019 Chapter 6 Soc Encounter
192/222
Check Calibre LVS SummaryOVERALL COMPAISON RESULTS
OVERALL COMPARISON RESULTS
-
7/26/2019 Chapter 6 Soc Encounter
193/222
193
# ################### _ _
# # # * *
# # # CORRECT # |
# # # # \___/
# ###################
Check Calibre LVS Summary
CELL SUMMARY
*************************************************
CELL SUMMARY
*************************************************
-
7/26/2019 Chapter 6 Soc Encounter
194/222
194
Result Layout Source
----------- ----------- --------------
CORRECT CHIP CHIP
-
7/26/2019 Chapter 6 Soc Encounter
195/222
Check Calibre LVS Summary
Initial Correspondence Points
o Initial Correspondence Points:
Nets: DVDD VDD DGND GND I_X[2] I_X[3] I_X[4]I X[5] I X[6] I X[7] I X[8] I X[9] I X[10] I X[11]
-
7/26/2019 Chapter 6 Soc Encounter
196/222
196
I_X[5] I_X[6] I_X[7] I_X[8] I_X[9] I_X[10] I_X[11]O_SCAN_OUT O_Z[0] O_Z[1] O_Z[2] O_Z[3] I_HALT
I_RESET_ I_DoDCT I_RamBistE I_CLK I_SCAN_INI_SCAN_EN I_X[0] O_Z[4] I_X[1] O_Z[5] O_Z[6]O_Z[7] O_Z[8] O_Z[9] O_Z[10] O_Z[11]
Check Calibre LVS Log
TEXT OBJECT FOR CONNECTIVITY EXTRACTION
PORTS
Extraction Errors and Warnings for cell CHIP
-
7/26/2019 Chapter 6 Soc Encounter
197/222
197
-
7/26/2019 Chapter 6 Soc Encounter
198/222
Check Calibre LVS LogPORTS
--------------------------------------------------------------------------------
PORTS
--------------------------------------------------------------------------------
O_Z[0] (523.447,31.68) 105 CHIP O_Z[1] (598.068,31.68) 105 CHIP
( ) ( )
-
7/26/2019 Chapter 6 Soc Encounter
199/222
199
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
Check Calibre LVS Log
Extraction Errors and Warnings for cell CHIP
Extraction Errors and Warnings for cell "CHIP"----------------------------------------------
WARNING: Short circuit - Different names on one net:Net Id: 18
(1) "GND" l i (330 301 216 95) l 102 "M2 TEXT"
-
7/26/2019 Chapter 6 Soc Encounter
200/222
200
(1) name "GND" at location (330.301,216.95) on layer 102 "M2_TEXT"(2) name "GND" at location (673.2,29.1) on layer 101 "M1_TEXT"(3) name "VDD" at location (748.1,31.5) on layer 101 "M1_TEXT"(4) name "VDD" at location (208.93,274.56) on layer 101 "M1_TEXT"The name "VDD" was assigned to the net.
-
7/26/2019 Chapter 6 Soc Encounter
201/222
-
7/26/2019 Chapter 6 Soc Encounter
202/222
What Introduce After Place&Route?
Interconnection wiresparasitic resistance.M1 parasitic resistanceM2
VIA
-
7/26/2019 Chapter 6 Soc Encounter
203/222
203
M2 parasitic resistance
VIA parasitic resistance
vdd!
gnd!
vdd!
gnd!
M1
Pre-Layout And Post-Layout Design
A pre-layout design (before P&R) and a post-layout design(after P&R)
pre-layout
-
7/26/2019 Chapter 6 Soc Encounter
204/222
204
post-layout
Why Post-Layout Simulation?
clock skew
-
7/26/2019 Chapter 6 Soc Encounter
205/222
205
. . . .
clkdata
. . .. . .
critical path delay
data
critical path delay
-
7/26/2019 Chapter 6 Soc Encounter
206/222
Transistor-level Post-layout Simulation
layout
netlist/parasiticextraction Calibre LPE/PRE
-
7/26/2019 Chapter 6 Soc Encounter
207/222
207
SPICE netlist
Post-layout
simulation
simulation
pattern
simulationresult
Nanosim
-
7/26/2019 Chapter 6 Soc Encounter
208/222
Prepare for Post-Layout Simulation
Apply for a CIC account
http://www.cic.org.tw.
fill in your personal data and your request. Install identdprogram
-
7/26/2019 Chapter 6 Soc Encounter
209/222
209
this program is used to identify yourself when you log into CICsaccount from remote machine.
Put your DB file to CICs account
Replace Layout / LPE
Qentry
M {LPE}
tech {UMC18 | TSMC18 | TSMC25 | TSMC35}
f GDSII
T Top_cell_names Ram_spce_filename
t {ra1sd | ra1sh | ra2sd | ra2sh | rf2sh |
-
7/26/2019 Chapter 6 Soc Encounter
210/222
210
{ | | | | |
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 CHIPs 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.
The result is stored in result_# directory.
-
7/26/2019 Chapter 6 Soc Encounter
211/222
Running Nanosim
QentryM {NANOSIM}n {CHIP.io}
nspice CHIP.netlist spice.headernvec CHIP.vec
m Top_cell_name{CHIP f }
-
7/26/2019 Chapter 6 Soc Encounter
212/222
212
c {CHIP.cfg}z {CHIP.tech.z}
o Output_file_nameout fsdb
t Total_simulation_time
Example:
QentryM NANOSIMnspice CHIP.netlist spice.headernvecCHIP.vec m CHIPc CHIP.cfgz CHIP.tech.zo UMC18t 100
Use Qstat to check the status of your job.The result is stored in result_# directory.
Spice Header File
Spice Header FileModify PVT
.lib 'l18u18v.012' L18U_BJD .lib 'l18u18v.012' L18U18V_TT
-
7/26/2019 Chapter 6 Soc Encounter
213/222
213
.lib 'l18u33v_g2.011' l18u33v_tt
*epic tech="voltage 3.3
*epic tech="temperature 100"
-
7/26/2019 Chapter 6 Soc Encounter
214/222
Generate Nanosim Simulation Pattern
t ype nsvtsi gnal CLOCK, START, I N[ 7: 0]; cl ock st ar t i n[ 7: 0]
Input simulation pattern --- nsvtformat
-
7/26/2019 Chapter 6 Soc Encounter
215/222
215
r adi x 1 1 44i o i i i i
per i od 25hi gh 3. 3l ow 0. 0
0 0 xx1 0 xx
0 0 xx. . . . .
-
7/26/2019 Chapter 6 Soc Encounter
216/222
Nanosim Configuration File
bus_not at i on [ : ]pr i nt _node_l ogi c ADRS[ 0]pr i nt _node_l ogi c CLK
pr i nt _node_l ogi c DATA[ 0]. . . . . .r epor t _node_power VDD
t d d DGND
ExampleNanosim_configuration file
-
7/26/2019 Chapter 6 Soc Encounter
217/222
217
set _node_gnd DGNDset _node_gnd GNDset _node_v DVDD 3. 3set _node_v VDD 1. 8
ADRS[ 0]
ADRS[ 1]. . . . . .CLKDATA[ 0]. . . . . .
nodename file
-
7/26/2019 Chapter 6 Soc Encounter
218/222
Load Simulation Result --- nWave
-
7/26/2019 Chapter 6 Soc Encounter
219/222
219
Select Signals --- nWave
Signals Get Signals ...
-
7/26/2019 Chapter 6 Soc Encounter
220/222
220
Check Simulation Result --- nWave
-
7/26/2019 Chapter 6 Soc Encounter
221/222
221
Power Analysis Result
The power analysis result is stored in Nanosim simulationlog (xxx.log) file
. . . . . .Cur r ent i nf or mat i on cal cul at ed over t he i nt er val s:
0 00000e+00 - 1 00010e+03 ns
-
7/26/2019 Chapter 6 Soc Encounter
222/222
222
0. 00000e+00 1. 00010e+03 ns
Node: VDDAver age cur r ent : - 3. 53355e+05 uARMS cur r ent : 3. 53388e+05 uA
Cur r ent peak #1 : - 4. 54061e+05 uA at 6. 78400e+02 ns
Cur r ent peak #2 : - 4. 34973e+05 uA at 4. 00000e- 01 nsCur r ent peak #3 : - 3. 88048e+05 uA at 2. 59000e+01 nsCur r ent peak #4 : - 3. 87280e+05 uA at 1. 27500e+02 nsCur r ent peak #5 : - 3. 84302e+05 uA at 5. 77800e+02 ns
. . . . . .