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 |  |
||
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 |  |
||
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 |  |
||
81 | |||
82 | via-via spacing factor: |
||
83 | S (via-via spacing) |
||
84 | Related param: set_app_var em average_option false |
||
85 | |||
86 |  |
||
87 | |||
88 | When shape no down vias, didn't consider spacing factor. |
||
89 | |||
90 |  |
||
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 |  |
||
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 |