Project

General

Profile

RC parasitic extraction and LPE » History » Version 2

jun chen, 03/29/2025 08:58 PM

1 1 jun chen
# RC parasitic extraction and LPE
2
3
## ESD
4
□5田0片0叩D叩陈叩□ 博叩~0
5
6
ESD background introduction: Giga_DA_ESD_Models_Devices_and_Analysis.pptx ESD reference paper: ming-douker1999.pdf (From Dr. Shi)
7
8
ESD reference paper: 02_Simulating_Electrostatic_Discharge.pdf (From Jeff)
9
10
ESD online training: https://www.bilibili.com/video/BV1C34y1p7Jk?share_source=copy_web&vd_source=d04eb1abca6ba586bf0375f4ee96ad31 (From Dr. Chen)
11
12
## LVS
13
14
LVS introduction: http://10.30.200.21:8088/projects/hongtu-emir/wiki/LVS_introduction
15
16
## Resistance and capacitance
17
18
Professional link (By Xu): http://10.30.200.21:8088/projects/understand-aguda/wiki/Understand_LPE Professional introduction (By Xu): http://10.30.200.21:8088/projects/understand-aguda/wiki/LPE_Basic
19
20
## Cap and resistance introduction
21
Background knowledge (where cap comes from):	ECE4121Lec08Wire.pdf , CapacitanceDrivingaLoadannotated.pdf IR analysis cap contributor: about_cap_clean.pptx
22
Resistance usage model and background: Resistance_analysis_and_report.pptx 
23
24
### [[Chip_RC_Correlation]]
25
26
## Regression and QA method
27
28
Regression location: `ut/tests/ut/vp/ir/resistance`
29
Regression command 1: `qa_report_pg_resistance`
30
Regression command 2: `qa_report_detail_regression`
31
Regression command 3(obsolete): `qa_analyze_power_network res golden_res_file test_res_file`
32
33
## Effective resistance
34
New usage
35
```
36
analyze—pg—resistance -net VDD -effective  [-generate—supply—location (hidden option)]
37
髻 by default, 10 worst instance will be reported. if -number—of—worst set to 0 or negative, report
38
 all
39
report—pg—resistance -net VDD -effective [-number—of—worst 10] report—pg—resistance -net VDD cell—name -effective
40
髻 will dump all the result to file
41
report—pg—resistance -net VDD -effective -number—of—worst 0 -output—file xxx.rpt
42
髻 will show heat map in G·r without re-build graph show—effective—resistance—map 
43
髻 below error out since -detail only support in min-path mode report—pg—resistance -net VDD cell—name -detail
44
```
45
46
~~Old usage:~~
47
```
48
set—app—var ir calc—resist—mode Fl.AT
49
analy江e—power—network -net VDD -res—only [-generate—supply—location] 
50
report—power—network -net VDD -type res
51
```
52
53
## Min-path resistance
54
New usage
55
```
56
analy江e—pg—resistance -net VDD  [-generate—supply—location (hidden option)]
57
髻 by default, 10 worst instance will be reported. if -number—of—worst set to 0 or negative, report all
58
report—pg—resistance -net VDD [-number—of—worst 10] report—pg—resistance someCell -high—light -detail -net VDD
59
60
髻 will dump all the result to file
61
report—pg—resistance -net VDD -number—of—worst 0 -output—file xxx.rpt
62
髻 will show up heat map in G·r, power min-path, ground min-path, total min-path will display
63
髻 if a cell is not connected to power/ground, the color annotation will be skiped. rn the total re sistance calculation, the un-connected net res is regarded as 江ero.
64
show—min—path—resistance—map 
65
```
66
67
~~Old usage:~~
68
```
69
set—app—var ir calc—resist—mode S:ORTPAT:
70
analy江e—power—network -net VDD -res—only [-generate—supply—location] report—power—network -net VDD -type res -inst xxx -high—light report—power—network -net VDD -type res -path—number 4
71
```
72
73
## Debug pg resistance
74
75
See Generic testing SoP:
76
http://10.30.200.21:8088/projects/hongtu-emir/wiki/Generic_Testing_SoP#section-10
77
78
## Open-short and missing via check
79
```
80
verify—power—network 
81
check—pg—vias
82
```
83
1. :VP O 叩 check—pg—vias D叩D叩D叩D叩D叩D叩missing viaD
84
	get—ob“—attr [get—violations -checker pgroute] bbox
85
2. :VP O 叩 verify—power—network D叩D叩D叩D叩D叩D 叩 open/short/floating (open D叩D )D
86
	get—ob“—attr [get—violations -checker layout—verifier -filter—by {rule == open}] bbox
87
88
## Regression location
89
ut/tests/ut/vp/ut_run/ir/resistance/xxx
90
91
## VIA resistance (TBD.)
92
analy江e—via—resistance
93
94
## compare resistance by layer
95
DDDDD D  min-path D叩D叩D叩D叩叩叩D叩度叩0叩D叩D叩D叩D叩D叩叩叩总叩叩叩叩叩映叩D叩导叩ir叩叩叩em叩叩叩 
96
	D 叩D叩D叩DD叩D叩叩叩叩res改叩就叩须叩D static irDDDDDD叩DDDDDD叩DD希叩□ :VP D Ref tool D detail res 门叩叩叩叩叩D叩D叩 
97
98
DDD□ :VP D Ref tool D min res detail path门叩叩叩叩叩D叩叩并叩D叩叩叩叩叩 
99
100
D叩D 
101
compare—detail—path—resistance -input—file minPath.rk [-output—file compare.result] [-plot—scatter
102
]
103
104
□叩flowD
105
...
106
set—app—var ir save—graph true analy江e—pg—resistance
107
compare—detail—path—resistance -input—file minPath.rk -output—file compare.result
108
DDDinput_fileDredhawkOmin resistance detail path report, D叩DD叩
109
110
![](clipboard-202503291818-h0thk.png)
111
112
output_fileDDDDDDODDDDDD叩DD叩
113
![](clipboard-202503291818-ouxcn.png)
114
115
DDDD-plot_scatterDDDDDDDDD田叩
116
![](clipboard-202503291818-dsdqi.png)
117
118
## RC extraction
119
120
500 
121
[[LPE_Lecture_and_Reference]]
122
123
### About rlc model
124
RCGEN_USAGE.pdf (from XuLuo 20230905)
125
126
#### Base method (Obsolete)
127
128
DDDD layer D DD叩叩DDDDDDD叩叩叩DD 叩 (DD D rlc DODD )
129
1.D叩 1叩set—linear—unit—rlc (DD叩叩叩叩叩叩D导叩叩叩DD候 叩 unitR / width * length
130
	D DDDDD叩DDDDDDDDD叩D叩叩叩叩DDD叩DDDDDDDDDDD 
131
2.D叩 2叩 set—resistance—table (DODDD伲插叩叩 叩 叩D导叩叩叩DD候 叩 lpm->CalcMetalR叩叩DD导叩叩叩 
132
	D DD叩DD叩叩DD叩D叩D叩DDD 
133
D叩 1DDD叩D叩DD signoff emirDD叩DDD叩D叩 2DD叩 
134
135
#### Advanced method: (New engine from Xu, after 20220310)
136
137
See: http://10.30.200.21:8088/issues/7418
138
first phase changes:
139
1.ir rc_multi_threads 1: valid in "ir rc_mode 2", changed to on by default
140
2.ir rc_keep_pg_only 0: valid in "ir rc_mode 2", new, off (high accuracy) by default, will be on (medium accuracy, aligned with RH, equivalent to internal param "ir rc_ignore_mode 0x248") controled by other new coming ir params (like "ir accuracy_level high", will be followed up by Jun)
141
3.ir rc_mode 0/1/2: 0 existing auto-mode, will be retired, 1 forcedly unitR/C, 2 exact RC extraction like signal (will be on by default for signoff VP, followed up by Jun), no further change for now.
142
143
todo list:
144
1.px dont_extract_cap 1: on by default for static IR-drop analysis if "ir rc_mode 2" is set
145
2.new ir param (e.g., accuracy_level medium [ I low I high]), to be discussed with Jun to turn on below params: 
146
147
low:
148
ir rc_mode 1 
149
150
medium:
151
ir rc_mode 2
152
ir rc_keep_pg_only 1 
153
154
high:
155
ir rc_mode 2
156
ir rc_keep_pg_only 0
157
3.change default value for below two params:
158
3.1param "ir rc_keep_pg_only_tv 1" : change default from 0 to 1 for thickness variation.
159
3.2param "ir rc_keep_pg_only_cap 1": change default from 0 to 1 for cap weighting factor.
160 2 jun chen
161
## Advanced method: (Default method in EMIR Obsoleted after 20220310)
162
163
D叩 signal RC 引叩D叩PG RC:
164
set—app—var ir rc—mode 2
165
to enable MT run (temp param, default off for now, could be on by default if stable): set—app—var ir rc—multi—thread 1
166
167
D叩rlcDDD叩PG RC:
168
169
调叩resistance D capacitance ODD叩列DD叩 D田RC□DDDD 
170
1. DDDDDDDDDDDDDDDDDOresDcapDO叩
171
set—app—var ir rc—mode 1
172
髻 for debug for debug purpose set—app—var ir debug—rc 1 
173
174
2. DDDDDDDDD DDODDDDDDDODDDDDDDDDDDDDDDDDDDDDDDDDrlcDDDOetchingDD 
175
髻 default minimal spacing 3.5 set—app—var ir r—spacing—factor 1.5 set—app—var ir c—spacing—factor  1.5
176
177
3. DD02DDworkD叩叩DDparamD
178
50micron X 50micron DDDtableDDDDDDwindowDODDDDDDDDD 
179
set—app—var ir r—density 1.5 set—app—var ir c—density 1.5
180
181
4. DDD叩甩叩 R C spacing factor: ooD加O app_var 有叩高叩先叩 
182
set—pg—rc—config 
183
184
5. verify resistance value by
185
report—pg—rc -layer M1 -area {llx lly urx ury}
186
report pg rc for "ir mode 2" using sigal like RC extraction model report—pg—rc -bbox {llx lly urx ury} -net VDD -layer M1
187
188
Example: if a wire start from 2327.765 to 2330.39, width is 0.15 micron. Run below command to check rc engine
189
set—app—var rc—mode 2
190
report—pg—rc -bbox {232l.l65	3354.l8-0.0l5  2330.39	3354.l8+0.0l5 } -net DVDD
191
192
6. test case and data
193
194
### about spef
195
196
判叩 spef DDDD叩 lpe::HasFileRC
197
198
6. import rlc model by (From Xu Luo):
199
200
after source .rlc file, you shall set the command "set—parasitic—condition cmax" for  l.PF module to use this cmax model.
201
besides, you may report pg rc by setting -length/-width, 
202
203
e.g., "report—pg—rc -layer M1 -length 10 -width 1" instead of "report—pg—rc -layer M1",  
204
205
as empty -length/-width is equivalent as 江ero length/width for the command.
206
207
## RC for DMP
208
209
DDDD田DDDDDcacheDDDDDDDD 
210
211
"analy江e—pg—resistance -net VDD" 
212
"cache—pg—resistance db -net VDD -graph—name "vdd.pgraph1" "  //当DD叩□ cache叩二叩制DO叩 
213
214
masterD叩DD田DDDDDload DDDOpgraph DDDDDDDDDpgraphDD行DDDOD
215
216
"restore—pg—graph db -net VDD -graph—name "vdd.pgraph1 vdd.pgraph2 .... " " //当DD叩□ cache叩二叩制DO叩 
217
218
## sanity resistance check
219
220
D田田D轻叩DrlcDD叩测Dhvp  compose_top_design DDsource D rlcDDD就田田D始D行叩测DD叩根叩叩Dref toolOmin pathDD成叩样D叩叩工叩叩
221
222
"sanity—check—resistance -detail—path—file reftool—min—path.rpt -path—limit 10 -layer—sample—limi t 10 -error—tolerance—threshold 0.2 -output—report out.rpt" 
223
-detail—path—file
224
225
:DD ref tool □□D min path report叩DDD叩DDD O D叩旧伲D layer 叩 叩 space 叩width 叩 density叩 golden res叩DD hvpDD叩h vp叩D引伲叩DDD hvpD res叩 DD D golden res D diff叩
226
-path—limit: D ref toolDD旧伲D少叩min path叩default D 10
227
-layer—sample—limit : D ref toolDD layerD旧伲DDDD叩default D 10
228
-error—tolerance—threshould : D D  hvp res D  golden resD diff tolerance叩叩叩范叩 
229
-output—report: DD输叩DO 
230
231
DB00DD经叩□叩
232
DD叩DDDDBODDDDDODD□叩叩
233
234
ref tool run RC check
235
DDDrun ref toolOresistance analysis□□D田田田D□D田DinstanceOeff/min resistanceD叩田田田D得DDDinstanceOeff/minODDD  
236
```
237
"perform res—calc -thread 8 -loopmode -instFile  fileName -o ./adsRpt/effective—res.rpt"
238
	// DDD fileNameDDD叩DDDD instance name(DD叩DD instance name)
239
叩D叩DD□DD instD eff resDDDDDDO叩effective—res.rpt叩
240
"perform min—res—path -instFile instFileName -simplified—report -o ./adsRpt/min—path—res.rpt "
241
   //DDD instFileNameDDD叩DDDD instance name(DD叩DD instance name)
242
叩D叩DD□DD instD min path DDDDDDO叩min—path—res.rpt叩叩 
243
```
244
245
Dwukong runDDDcase
246
DD designDDD 
247
248
/reg/wukong/wukong u七 -b {binary} -d {case pa七h} -q {queue} -k  DODD
249
	1.DDinpu七DDDDDDgoldenDDD
250
	2.DDDDDD七es七.七cl
251
252
[[Chip_RC_Correlation]]
253
254
切□designODD 
255
256
```
257
partition—top—design -colu 3 -row 3 -verbose
258
	//DDD叩D□ top  designOO 3x3DD叩00D□叩叩DD 叩  .hvp—partition—data  DO0叩D  partition—top—design -region {left—bottom—x left—bottom—y right—top—x right—top—y}
259
	partition—top—design -region {0 20.0 100.0 200.0}
260
```
261
262
[[Probe_Node]]
263
264
叩叩叩叩DDDDDDD Probe NodeDD叩叩叩叩 
265
1. DDDD probe node
266
add—pg—probe—node -net VDD -layer "metal1" -name test—node -location {100 200} 
267
analy江e—pg—resistance -net VDD -virtual—mode
268
269
2. 叩DOD叩DDDD probe nodes
270
add—pg—probe—node -probe—file probe—file.csv 
271
analy江e—pg—resistance -net VDD -virtual—mode DODDD叩D 
272
髻net—name metal—name x   y  current
273
274
|||||
275
|--|--|--|--|
276
|VDD|metal1|100|200|0.1|
277
|VDD|metal1|300|400|0.01|
278
279
叩static ir叩DDDDDDD Probe NodeDD叩叩叩叩 
280
281
3. DDDD probe node
282
add—pg—probe—node -net VDD -layer "metal1" -name test—node -location {100 200} 
283
analy江e—static—ir—drop -virtual—mode
284
285
4. 叩DOD叩DDDD probe nodes
286
add—pg—probe—node -probe—file probe—file.csv analy江e—static—ir—drop -virtual—mode
287
288
DODDD叩D 
289
髻net—name metal—name x		y	current VDD	metal1	100	200 0.1
290
VDD	metal1	300	400  0.01
291
...
292
293
## Debug resistance SOP:
294
295
### debug min path resistance:
296
297
### debug eff resistance:
298
eff叩叩叩0DD SOP叩叩版叩 
299
```
300
	1.□叩by-layer res scatter DD叩D叩叩DD叩D叩DDDDDDDDD叩D metalD叩 
301
	compare—detail—path—resistance  -input—file  rh—golden—detail—paht.rpt
302
	2.D叩D叩DD metal DDD伲metalD diffDDD instance叩
303
	3.叩hvpD rh叩别门叩伲instanceDDD伲叩叩叩D path叩(rhD叩直伲grep report file)
304
□DD golden rhD伲叩D0叩hvpDDDD叩D叩debug—pg—resistance
305
	4.2 D0D叩0叩叩00 
306
□DDD叩metalD叩叩DD叩叩邻DDDD叩叩0叩D0D叩叩0叩D叩report—pg—rc   门D叩rh伲叩DD叩叩叩hvpDD叩DDD叩 
307
```
308
309
### debug resistance report:
310
1. set—app—var node—reduction—effort -1  //D叩node reduction防叩干叩叩叩 
311
312
## DBDDDD :
313
314
3. set_site:
315
 叩tech fileD叩DD叩set—siteDDDD MACRO,叩O D heightDDDDD default cell height
316
317
3. DDDOregression:
318
  vp—regression -d -r {ut—run/}case伲 叩	//唯D叩 叩	ut—run伲叩D需叩 
319
 叩wukongDDO case
320
	/reg/wukong/wukong ut -b {binary} -d {case path} -q {queue} -k 
321
3.ODprofile0叩:
322
<pre>
323
	vi Makefile.hvp
324
	FXPORTFD—DFFrNFS:=-D—B·rl.D—VP=1 -D—FMrR—PROFrl.F=1
325
	叩叩DO叩ODODD  PROFrl.FR()
326
</pre>
327
328
4. compose_top_designDD 
329
```
330
	D   D叩D   emirTcl·tilityFlow.tcl
331
	assemble—physical—top—design
332
```
333
334
5. 产加rlcDDDD 
335
336
!58F3D26l-84F2-4l40-ABlF-A8F2F8B3FB49!
337
本叩□□明D rlcDO 
338
	RCGFN -no—auto—enc□叩明D rlc DDDD叩D叩D叩D叩□□ viaD rlc
339
	lp—test dump—rlc—via -rlc—model <model—name> -layer <vial.ayerName>
340
	*list—rlc—model*  显伲hvp rlc信叩 
341
6. 产加OT techDDDD 
342
343
D itf□□ techDO 
344
	rhtech -i itf.name D ircx□□ techDO 
345
	ircx2tech -i ircx.name
346
347
7.  OTAKU local run DD□D 
348
叩田地叩:       /home/ljxie/emir_tools/check_sum.csh
349
1.且DD己Orun dataDD(
350
![](clipboard-202503292057-lwibi.png)
351
)
352
2.0 行叩田
353
![](clipboard-202503292058-3s5ei.png)
354
3. 叩Dhtml main branchDDD localODDD叩叩田叩叩加DDDDD叩加DD再叩DDD田
355
![](clipboard-202503292058-cpoux.png)
356
![](clipboard-202503292058-zwrzb.png)
357
358
出叩graph edgeDDDDD SOP:
359
1.check input D入D田叩DDDD 
360
2.田D版田田叩DDDD 
361
3.node reduction -1;
362
4.debug_pg_resistance -location {x1 y1}; // report 田Dnode DDOpgraphD田0叩D 5.set_power_network_mode -area {x1 y1 x2 y2} //甩叩田D叩D□D区叩