Project

General

Profile

EM analysis in VP » History » Version 1

jun chen, 03/29/2025 11:21 PM

1 1 jun chen
# EM analysis in VP
2
3
EM calculation debug level policy
4
Please follow the IR process and output debug message according to levels□ Usage□set_app_var em em_debug 20
5
debug 0 (not set param): nothing will happen;
6
debug < 10: will print flow message: (such as "START: xxx" and "FND: xxx"  debug < 20: will print driver current calculate information□
7
debug >= 20 : will print segments current/limit—current calculate information□ debug = 100 : will print detail message, only for RD can know code function□
8
9
AVG EM limit current
10
VP calculate average EM limit current related parameters:
11
12
set—app—var em half—node—scale—factor 0.9 set—app—var em temperature—em 110
13
14
DC limit current = polymonial_current_cal * temp_rating_factor
15
16
![](clipboard-202503292308-tsb5q.png)
17
18
To calculation average EM limit current, EM rule based on length and width. For each shape, avg length are sum of block length, and multiplied by half node scale.
19
avg length: (0.695+0.05+1.4+0.05+2.21) * 0.9 = 3.9645 nm
20
For width, using each shape width, and multiplied by half node scale. width: 0.05 * 0.9 = 0.045 nm
21
temp_rating_factor table: (based on .itf or .ircx)
22
23
![](clipboard-202503292309-f6rei.png)
24
25
VP [add_em_rule_advance] DC rule demo:
26
When got avg length and width, can lookup polynomial table and calculated polynomial based results. Lookup temp_rating_factor table got temperature factor set by parameter.
27
DC limit current = polymonial_current_cal * temp_rating_factor
28
29
髻髻 For l-ayer AVG FM rule
30
add—em—rule—advance -measure dc -mask—num 1 -polynomial "switch
31
32
33
{
34
case 1 > 4.5 and w< 0.09 : 1.2 * 0.605000 * (W - 0.003);
35
case 1 > 4.5 and w >= 0.09 : 2.4* 0.605000 * (W- 0.003);
36
case 1 <= 4.5 : 4.8 * 0.605000 * ( W - 0.003 );
37
default: -1;
38
}" \
39
-temp—rating factor "Switch
40
{
41
case TFMPFRAT..RF FM == 85: 5.066;  case TFMPFRAT..RF FM == 105: 2.293;  case TFMPFRAT..RF FM == 110: 1.599;  case TFMPFRAT..RF FM == 125: 1.0;  case TFMPFRAT..RF FM == 150: 0.212;
42
default: -1;
43
}
44
45
## PEAK EM limit current
46
VP calculate Peak EM limit current related parameters:
47
48
set—app—var em half—node—scale—factor 0.9
49
set—app—var em em—peak—source—equation—techfile false
50
When em_peak_source_equation_techfile == true Peak limit current = polymonial_current_cal When em_peak_source_equation_techfile == false
51
Peak limt current = polymonial_current_cal * [1/sqrt(r)]
52
53
VP [add_em_rule_advance] PEAK rule demo:
54
w: width (half node scale) td: pulse width
55
r: duty ratio
56
髻髻 For l-ayer PFAK FM rule
57
add—em—rule—advance -measure peak -mask—num 1 -polynomial "switch
58
{
59
case w > 0.18 and td >= 0.5 : 26.8 * (w -0.003); case w<0.135 and td>=0.5:53.6*(w - 0.003);
60
case w>= 0.135 and w <= 0.18 and td >= 0.5 : 42.88 * (w - 0.003);
61
case w > 0.18 and td < 0.5 and td >= 0.001 and r >= 0.05 : 26.8 * (w - 0.003) / sqrt(r); case w <0
62
.135 and td <0.5 and td >= 0.001 and r >= 0.05 : 53.6 * (w - 0.003) / sqrt(r);
63
case w>= 0.135 and w <=0.18 and td< 0.5 and td >= 0.001 and r >= 0.05 : 42.88 * (w - 0.003) / sqrt
64
(r); case w > 0.18 and td < 0.5 and td >= 0.001 and r < 0.05 : 26.8 * (w - 0.003) / sqrt(0.05);
65
...
66
more information in Part 2 "Advance FM rule format" 
67
68
## RMS EM limit current
69
VP calculate RMS EM limit current related parameters:
70
71
set—app—var em half—node—scale—factor 0.9 set—app—var em em—rms—metal—line—no 3 set—app—var em average—option false
72
RMS_current_limit = polynomial_current_cal * spacing_factor * rating_factor
73
74
Rating factor:
75
N (metal line number) For 28nm N=3
76
77
78
rating factor table:
79
80
![](clipboard-202503292311-c1drg.png)
81
82
via-via spacing factor:
83
S (via-via spacing)
84
Related param: set_app_var em average_option false
85
86
![](clipboard-202503292312-rt535.png)
87
88
When shape no down vias, didn't consider spacing factor.
89
90
![](clipboard-202503292312-5eg3e.png)
91
92
via-via spacing using signal actually direction, sum of those distance and half node scale also used. 
93
94
via-via spacing: (0.03+0.575+0.1+1.35+0.1+2.09+0.03) * 0.9 = 3.8475
95
96
![](clipboard-202503292312-pg1wn.png)
97
98
VP [add_em_rule_advance] RMS rule demo:
99
When got N and S, then lookup via_via_spacing_factor and metal_line_no_rating_factor table to got factor. RMS_current_limit = polynomial_current_cal * spacing_factor * rating_factor
100
髻髻 For l-ayer RMS FM rule
101
add—em—rule—advance -measure rms -mask—num 1 -polynomial "Switch
102
{
103
default : sqrt ( 19.ll * delta—T * ( w - 0.003) " 2 * ( w - 0.003 + 0.264) / ( w - 0.003 + 0.0443 
104
));
105
}" \
106
-via—via—spacing—factor "switch
107
{
108
case s >= 9 and AVFRAGF—OPTION == false : 1.0; case s >= 9 and AVFRAGF OPTION == true : 1.2; case s > 2.l and s <9: 1.05;
109
case s > 0.9 and s <= 2.l: 1.3; case s > 0.2l and s <= 0.9: 2.0; case s <= 0.2l: 2.2;
110
default: -1;
111
}" \
112
-metal line no rating factor "switch case n >= 9: 1.0;
113
case n >= 5 and n <9: 1.05; case n >= 3 and n < 5: 1.32; case n >= 1 and n < 3: 1.5; default: -1;
114
}" 
115
116
## PEAK current [TBD] 
117
118
## RMS current [TBD] 
119
120
## AVG current [TBD]
121
122
More detail: attachment:"EM_calculation.pptx"
123
124
## Advance EM rule format
125
126
髻髻髻 advanced FM rule sample
127
髻髻 For l-ayer PFAK FM rule
128
add—em—rule—advance -measure peak -mask—num 1 -polynomial "switch
129
{
130
case w > 0.18 and td >= 0.5 : 26.8 * (w -0.003); case w<0.135 and td>=0.5:53.6*(w - 0.003);
131
case w>= 0.135 and w <= 0.18 and td >= 0.5 : 42.88 * (w - 0.003);
132
case w > 0.18 and td < 0.5 and td >= 0.001 and r >= 0.05 : 26.8 * (w - 0.003) / sqrt(r); case w <0
133
.135 and td <0.5 and td >= 0.001 and r >= 0.05 : 53.6 * (w - 0.003) / sqrt(r);
134
case w>= 0.135 and w <=0.18 and td< 0.5 and td >= 0.001 and r >= 0.05 : 42.88 * (w - 0.003) / sqrt
135
(r); case w > 0.18 and td < 0.5 and td >= 0.001 and r < 0.05 : 26.8 * (w - 0.003) / sqrt(0.05);
136
case w < 0.135 and td < 0.5 and td >= 0.001 and r < 0.05 : 53.6 * (w - 0.003) / sqrt(0.05);
137
138
;
139
case w < 0.135 and td < 0.001 and td >= 0.0001 and r >= 0.05 : l5.04 * (w - 0.003) / sqrt(r);
140
case w >= 0.135 and w <= 0.18 and td < 0.001 and td>=0.0001 and r>=0.05:60.02 * (w - 0.003) / sqrt (r); case w> 0.18 and td < 0.001 and td >= 0.0001 and r<0.05 :3l.52 * (w - 0.003) / sqrt(0.05); case w < 0.135 and td < 0.001 and td >= 0.0001 and r < 0.05 : l5.04 * (w - 0.003) / sqrt(0.05); case w >= 0.135 and w <= 0.18 and td < 0.001 and td >= 0.0001 and r < 0.05 : 60.02 * (w - 0.003) /
141
 sqrt(0.05); case w>0.18 and td <0.0001 and r >=0.05 :3l.52 * (w - 0.003) / sqrt(r); case w<0.135 and td < 0.0001 and r >= 0.05 : l5.04 * (w - 0.003) / sqrt(r);
142
case w >= 0.135 and w <= 0.18 and td < 0.0001 and r >= 0.05 : 60.02 * (w - 0.003) / sqrt(r); case  w> 0.18 and td < 0.0001 and r<0.05:53.60 *(w-0.003) / sqrt(0.05);
143
case w <0.135 and td < 0.0001 and r <0.05 :10l.20 * (w-0.003) / sqrt(0.05);
144
case w >= 0.135 and w <= 0.18 and td < 0.0001 and r < 0.05 : 85.l6 * (w - 0.003) / sqrt(0.05);  default: -1;
145
}
146
髻髻 For l-ayer AVG FM rule
147
add—em—rule—advance -measure dc -mask—num 1 -polynomial "switch
148
{
149
case 1 > 4.5 and w< 0.09 : 1.2 * 0.605000 * (W - 0.003);
150
case 1 > 4.5 and w >= 0.09 : 2.4* 0.605000 * (W- 0.003);
151
case 1 <= 4.5 : 4.8 * 0.605000 * ( W - 0.003 );
152
default: -1;
153
}" \
154
-temp—rating factor "Switch
155
{
156
case TFMPFRAT..RF FM == 85: 5.066;  case TFMPFRAT..RF FM == 105: 2.293;  case TFMPFRAT..RF FM == 110: 1.599;  case TFMPFRAT..RF FM == 125: 1.0;  case TFMPFRAT..RF FM == 150: 0.212;
157
default: -1;
158
}
159
髻髻 For l-ayer RMS FM rule
160
add—em—rule—advance -measure rms -mask—num 1 -polynomial "Switch
161
{
162
default : sqrt ( 19.ll * delta—T * ( w - 0.003) " 2 * ( w - 0.003 + 0.264) / ( w - 0.003 + 0.0443 
163
));
164
}" \
165
-via—via—spacing—factor "switch
166
{
167
case s >= 9 and AVFRAGF—OPTION == false : 1.0; case s >= 9 and AVFRAGF OPTION == true : 1.2; case s > 2.l and s <9: 1.05;
168
case s > 0.9 and s <= 2.l: 1.3; case s > 0.2l and s <= 0.9: 2.0; case s <= 0.2l: 2.2;
169
default: -1;
170
}" \
171
-metal line no rating factor "switch case n >= 9: 1.0;
172
case n >= 5 and n <9: 1.05; case n >= 3 and n < 5: 1.32; case n >= 1 and n < 3: 1.5; default: -1;
173
}" 
174
175
## EM analysis reference flow
176
177
髻髻髻 FM analysis reference flow
178
髻 Input design data source config.tcl
179
髻 Setup design
180
compose—top—design �top—def �blk—def �tf—file �lefl-ist set—link—path �libl-ist
181
import—liberty -all—linkpath �liblist
182
link—prollect
183
髻 Setting FM param and input FM rule set—app—var em half—node—scale—factor 0.9 set—app—var em em—rms—metal—line—no 3 set—app—var em average—option true
184
set—app—var em em—peak—source—equation—techfile true set—app—var em temperature—em 110
185
set—app—var em em—recovery—factor 0.9 set—app—var em em—rms—delta t 5 set—app—var em em—mode "RK" 
186
source �em—file
187
髻 Input rlc
188
purge—rlc—model [lindex [list—rlc—model]0] source �rlc—file
189
set—parasitic—condition  �rlc—name
190
髻 Input SPFF
191
set—app—var lpe force—wire—type 3            髻 import—parasitics �spef—file
192
import—parasitics -module—rc—file �spef—cfg
193
髻 source -echo �ploc
194
髻 Input twf file, got timing information  import—twf -module—twf—file XXX.twf—cfg report—twf
195
update—twf -default—transition 0.1 -missing—period 0.5
196
髻   Set   SWA   info set—switching—activity -clear
197
set—switching—activity -clock—net -number—of—toggles 2 -period—of—clock 2 set—switching—activity -signal—net -number—of—toggles 0.15 -period—of—clock 2
198
report—power—analysis
199
髻 Report PFAK/DC/RMS signal em 
200
report—signal—em -mode peak 
201
report—signal—em -mode avg 
202
report—signal—em -mode rms
203
204
## Debug method (From Lin Gu)
205
206
可以选中net,叩Dexport单条netD息□export_def  -routing  -object  [get_sel],翻net连叩的instD息叩DexportDdefD