Project

General

Profile

EM analysis in VP » History » Version 2

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

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