1 /*****************************************************************************
3 * SOFTWARE LICENSE AGREEMENT
4 * Copyright 2012 Hewlett-Packard Development Company, L.P.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are
9 * met: redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer;
11 * redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution;
14 * neither the name of the copyright holders nor the names of its
15 * contributors may be used to endorse or promote products derived from
16 * this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.”
30 ***************************************************************************/
33 #include "basic_circuit.h"
35 #include "parameter.h"
37 double wire_resistance(double resistivity
, double wire_width
, double wire_thickness
,
38 double barrier_thickness
, double dishing_thickness
, double alpha_scatter
)
41 resistance
= alpha_scatter
* resistivity
/((wire_thickness
- barrier_thickness
- dishing_thickness
)*(wire_width
- 2 * barrier_thickness
));
45 double wire_capacitance(double wire_width
, double wire_thickness
, double wire_spacing
,
46 double ild_thickness
, double miller_value
, double horiz_dielectric_constant
,
47 double vert_dielectric_constant
, double fringe_cap
)
49 double vertical_cap
, sidewall_cap
, total_cap
;
50 vertical_cap
= 2 * PERMITTIVITY_FREE_SPACE
* vert_dielectric_constant
* wire_width
/ ild_thickness
;
51 sidewall_cap
= 2 * PERMITTIVITY_FREE_SPACE
* miller_value
* horiz_dielectric_constant
* wire_thickness
/ wire_spacing
;
52 total_cap
= vertical_cap
+ sidewall_cap
+ fringe_cap
;
57 void init_tech_params(double technology
, bool is_tag
)
59 int iter
, tech
, tech_lo
, tech_hi
;
60 double curr_alpha
, curr_vpp
;
61 double wire_width
, wire_thickness
, wire_spacing
,
62 fringe_cap
, pmos_to_nmos_sizing_r
;
63 // double aspect_ratio,ild_thickness, miller_value = 1.5, horiz_dielectric_constant, vert_dielectric_constant;
64 double barrier_thickness
, dishing_thickness
, alpha_scatter
;
65 double curr_vdd_dram_cell
, curr_v_th_dram_access_transistor
, curr_I_on_dram_cell
, curr_c_dram_cell
;
67 uint32_t ram_cell_tech_type
= (is_tag
) ? g_ip
->tag_arr_ram_cell_tech_type
: g_ip
->data_arr_ram_cell_tech_type
;
68 uint32_t peri_global_tech_type
= (is_tag
) ? g_ip
->tag_arr_peri_global_tech_type
: g_ip
->data_arr_peri_global_tech_type
;
70 technology
= technology
* 1000.0; // in the unit of nm
72 // initialize parameters
74 double gmp_to_gmn_multiplier_periph_global
= 0;
76 double curr_Wmemcella_dram
, curr_Wmemcellpmos_dram
, curr_Wmemcellnmos_dram
,
77 curr_area_cell_dram
, curr_asp_ratio_cell_dram
, curr_Wmemcella_sram
,
78 curr_Wmemcellpmos_sram
, curr_Wmemcellnmos_sram
, curr_area_cell_sram
,
79 curr_asp_ratio_cell_sram
, curr_I_off_dram_cell_worst_case_length_temp
;
80 double curr_Wmemcella_cam
, curr_Wmemcellpmos_cam
, curr_Wmemcellnmos_cam
, curr_area_cell_cam
,//Sheng: CAM data
81 curr_asp_ratio_cell_cam
;
82 double SENSE_AMP_D
, SENSE_AMP_P
; // J
83 double area_cell_dram
= 0;
84 double asp_ratio_cell_dram
= 0;
85 double area_cell_sram
= 0;
86 double asp_ratio_cell_sram
= 0;
87 double area_cell_cam
= 0;
88 double asp_ratio_cell_cam
= 0;
89 double mobility_eff_periph_global
= 0;
90 double Vdsat_periph_global
= 0;
91 double nmos_effective_resistance_multiplier
;
92 double width_dram_access_transistor
;
94 double curr_logic_scaling_co_eff
= 0;//This is based on the reported numbers of Intel Merom 65nm, Penryn45nm and IBM cell 90/65/45 date
95 double curr_core_tx_density
= 0;//this is density per um^2; 90, ...22nm based on Intel Penryn
96 double curr_chip_layout_overhead
= 0;
97 double curr_macro_layout_overhead
= 0;
98 double curr_sckt_co_eff
= 0;
100 if (technology
< 181 && technology
> 179)
105 else if (technology
< 91 && technology
> 89)
110 else if (technology
< 66 && technology
> 64)
115 else if (technology
< 46 && technology
> 44)
120 else if (technology
< 33 && technology
> 31)
125 else if (technology
< 23 && technology
> 21)
129 if (ram_cell_tech_type
== 3 )
131 cout
<<"current version does not support eDRAM technologies at 22nm"<<endl
;
135 // else if (technology < 17 && technology > 15)
140 else if (technology
< 180 && technology
> 90)
145 else if (technology
< 90 && technology
> 65)
150 else if (technology
< 65 && technology
> 45)
155 else if (technology
< 45 && technology
> 32)
160 else if (technology
< 32 && technology
> 22)
165 // else if (technology < 22 && technology > 16)
172 cout
<<"Invalid technology nodes"<<endl
;
176 double vdd
[NUMBER_TECH_FLAVORS
];
177 double Lphy
[NUMBER_TECH_FLAVORS
];
178 double Lelec
[NUMBER_TECH_FLAVORS
];
179 double t_ox
[NUMBER_TECH_FLAVORS
];
180 double v_th
[NUMBER_TECH_FLAVORS
];
181 double c_ox
[NUMBER_TECH_FLAVORS
];
182 double mobility_eff
[NUMBER_TECH_FLAVORS
];
183 double Vdsat
[NUMBER_TECH_FLAVORS
];
184 double c_g_ideal
[NUMBER_TECH_FLAVORS
];
185 double c_fringe
[NUMBER_TECH_FLAVORS
];
186 double c_junc
[NUMBER_TECH_FLAVORS
];
187 double I_on_n
[NUMBER_TECH_FLAVORS
];
188 double I_on_p
[NUMBER_TECH_FLAVORS
];
189 double Rnchannelon
[NUMBER_TECH_FLAVORS
];
190 double Rpchannelon
[NUMBER_TECH_FLAVORS
];
191 double n_to_p_eff_curr_drv_ratio
[NUMBER_TECH_FLAVORS
];
192 double I_off_n
[NUMBER_TECH_FLAVORS
][101];
193 double I_g_on_n
[NUMBER_TECH_FLAVORS
][101];
194 //double I_off_p[NUMBER_TECH_FLAVORS][101];
195 double gmp_to_gmn_multiplier
[NUMBER_TECH_FLAVORS
];
196 //double curr_sckt_co_eff[NUMBER_TECH_FLAVORS];
197 double long_channel_leakage_reduction
[NUMBER_TECH_FLAVORS
];
199 for (iter
= 0; iter
<= 1; ++iter
)
201 // linear interpolation
205 if (tech_lo
== tech_hi
)
211 curr_alpha
= (technology
- tech_hi
)/(tech_lo
- tech_hi
);
217 if (tech_lo
== tech_hi
)
223 curr_alpha
= (tech_lo
- technology
)/(tech_lo
- tech_hi
);
229 //180nm technology-node. Corresponds to year 1999 in ITRS
230 //Only HP transistor was of interest that 180nm since leakage power was not a big issue. Performance was the king
231 //MASTAR does not contain data for 0.18um process. The following parameters are projected based on ITRS 2000 update and IBM 0.18 Cu Spice input
232 bool Aggre_proj
= false;
233 SENSE_AMP_D
= .28e-9; // s
234 SENSE_AMP_P
= 14.7e-15; // J
236 Lphy
[0] = 0.12;//Lphy is the physical gate-length. micron
237 Lelec
[0] = 0.10;//Lelec is the electrical gate-length. micron
238 t_ox
[0] = 1.2e-3*(Aggre_proj
? 1.9/1.2:2);//micron
239 v_th
[0] = Aggre_proj
? 0.36 : 0.4407;//V
240 c_ox
[0] = 1.79e-14*(Aggre_proj
? 1.9/1.2:2);//F/micron2
241 mobility_eff
[0] = 302.16 * (1e-2 * 1e6
* 1e-2 * 1e6
); //micron2 / Vs
242 Vdsat
[0] = 0.128*2; //V
243 c_g_ideal
[0] = (Aggre_proj
? 1.9/1.2:2)*6.64e-16;//F/micron
244 c_fringe
[0] = (Aggre_proj
? 1.9/1.2:2)*0.08e-15;//F/micron
245 c_junc
[0] = (Aggre_proj
? 1.9/1.2:2)*1e-15;//F/micron2
246 I_on_n
[0] = 750e-6;//A/micron
247 I_on_p
[0] = 350e-6;//A/micron
248 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline
249 nmos_effective_resistance_multiplier
= 1.54;
250 n_to_p_eff_curr_drv_ratio
[0] = 2.45;
251 gmp_to_gmn_multiplier
[0] = 1.22;
252 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];//ohm-micron
253 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];//ohm-micron
254 long_channel_leakage_reduction
[0] = 1;
255 I_off_n
[0][0] = 7e-10;//A/micron
256 I_off_n
[0][10] = 8.26e-10;
257 I_off_n
[0][20] = 9.74e-10;
258 I_off_n
[0][30] = 1.15e-9;
259 I_off_n
[0][40] = 1.35e-9;
260 I_off_n
[0][50] = 1.60e-9;
261 I_off_n
[0][60] = 1.88e-9;
262 I_off_n
[0][70] = 2.29e-9;
263 I_off_n
[0][80] = 2.70e-9;
264 I_off_n
[0][90] = 3.19e-9;
265 I_off_n
[0][100] = 3.76e-9;
267 I_g_on_n
[0][0] = 1.65e-10;//A/micron
268 I_g_on_n
[0][10] = 1.65e-10;
269 I_g_on_n
[0][20] = 1.65e-10;
270 I_g_on_n
[0][30] = 1.65e-10;
271 I_g_on_n
[0][40] = 1.65e-10;
272 I_g_on_n
[0][50] = 1.65e-10;
273 I_g_on_n
[0][60] = 1.65e-10;
274 I_g_on_n
[0][70] = 1.65e-10;
275 I_g_on_n
[0][80] = 1.65e-10;
276 I_g_on_n
[0][90] = 1.65e-10;
277 I_g_on_n
[0][100] = 1.65e-10;
279 //SRAM cell properties
280 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
281 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
282 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
283 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
284 curr_asp_ratio_cell_sram
= 1.46;
285 //CAM cell properties //TODO: data need to be revisited
286 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
287 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
288 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
289 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;//360
290 curr_asp_ratio_cell_cam
= 2.92;//2.5
291 //Empirical undifferetiated core/FU coefficient
292 curr_logic_scaling_co_eff
= 1.5;//linear scaling from 90nm
293 curr_core_tx_density
= 1.25*0.7*0.7*0.4;
294 curr_sckt_co_eff
= 1.11;
295 curr_chip_layout_overhead
= 1.0;//die measurement results based on Niagara 1 and 2
296 curr_macro_layout_overhead
= 1.0;//EDA placement and routing tool rule of thumb
302 SENSE_AMP_D
= .28e-9; // s
303 SENSE_AMP_P
= 14.7e-15; // J
304 //90nm technology-node. Corresponds to year 2004 in ITRS
305 //ITRS HP device type
307 Lphy
[0] = 0.037;//Lphy is the physical gate-length. micron
308 Lelec
[0] = 0.0266;//Lelec is the electrical gate-length. micron
309 t_ox
[0] = 1.2e-3;//micron
310 v_th
[0] = 0.23707;//V
311 c_ox
[0] = 1.79e-14;//F/micron2
312 mobility_eff
[0] = 342.16 * (1e-2 * 1e6
* 1e-2 * 1e6
); //micron2 / Vs
313 Vdsat
[0] = 0.128; //V
314 c_g_ideal
[0] = 6.64e-16;//F/micron
315 c_fringe
[0] = 0.08e-15;//F/micron
316 c_junc
[0] = 1e-15;//F/micron2
317 I_on_n
[0] = 1076.9e-6;//A/micron
318 I_on_p
[0] = 712.6e-6;//A/micron
319 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline
320 nmos_effective_resistance_multiplier
= 1.54;
321 n_to_p_eff_curr_drv_ratio
[0] = 2.45;
322 gmp_to_gmn_multiplier
[0] = 1.22;
323 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];//ohm-micron
324 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];//ohm-micron
325 long_channel_leakage_reduction
[0] = 1;
326 I_off_n
[0][0] = 3.24e-8;//A/micron
327 I_off_n
[0][10] = 4.01e-8;
328 I_off_n
[0][20] = 4.90e-8;
329 I_off_n
[0][30] = 5.92e-8;
330 I_off_n
[0][40] = 7.08e-8;
331 I_off_n
[0][50] = 8.38e-8;
332 I_off_n
[0][60] = 9.82e-8;
333 I_off_n
[0][70] = 1.14e-7;
334 I_off_n
[0][80] = 1.29e-7;
335 I_off_n
[0][90] = 1.43e-7;
336 I_off_n
[0][100] = 1.54e-7;
338 I_g_on_n
[0][0] = 1.65e-8;//A/micron
339 I_g_on_n
[0][10] = 1.65e-8;
340 I_g_on_n
[0][20] = 1.65e-8;
341 I_g_on_n
[0][30] = 1.65e-8;
342 I_g_on_n
[0][40] = 1.65e-8;
343 I_g_on_n
[0][50] = 1.65e-8;
344 I_g_on_n
[0][60] = 1.65e-8;
345 I_g_on_n
[0][70] = 1.65e-8;
346 I_g_on_n
[0][80] = 1.65e-8;
347 I_g_on_n
[0][90] = 1.65e-8;
348 I_g_on_n
[0][100] = 1.65e-8;
350 //ITRS LSTP device type
357 mobility_eff
[1] = 356.76 * (1e-2 * 1e6
* 1e-2 * 1e6
);
359 c_g_ideal
[1] = 9.15e-16;
360 c_fringe
[1] = 0.08e-15;
362 I_on_n
[1] = 503.6e-6;
363 I_on_p
[1] = 235.1e-6;
364 nmos_effective_resistance_multiplier
= 1.92;
365 n_to_p_eff_curr_drv_ratio
[1] = 2.44;
366 gmp_to_gmn_multiplier
[1] =0.88;
367 Rnchannelon
[1] = nmos_effective_resistance_multiplier
* vdd
[1] / I_on_n
[1];
368 Rpchannelon
[1] = n_to_p_eff_curr_drv_ratio
[1] * Rnchannelon
[1];
369 long_channel_leakage_reduction
[1] = 1;
370 I_off_n
[1][0] = 2.81e-12;
371 I_off_n
[1][10] = 4.76e-12;
372 I_off_n
[1][20] = 7.82e-12;
373 I_off_n
[1][30] = 1.25e-11;
374 I_off_n
[1][40] = 1.94e-11;
375 I_off_n
[1][50] = 2.94e-11;
376 I_off_n
[1][60] = 4.36e-11;
377 I_off_n
[1][70] = 6.32e-11;
378 I_off_n
[1][80] = 8.95e-11;
379 I_off_n
[1][90] = 1.25e-10;
380 I_off_n
[1][100] = 1.7e-10;
382 I_g_on_n
[1][0] = 3.87e-11;//A/micron
383 I_g_on_n
[1][10] = 3.87e-11;
384 I_g_on_n
[1][20] = 3.87e-11;
385 I_g_on_n
[1][30] = 3.87e-11;
386 I_g_on_n
[1][40] = 3.87e-11;
387 I_g_on_n
[1][50] = 3.87e-11;
388 I_g_on_n
[1][60] = 3.87e-11;
389 I_g_on_n
[1][70] = 3.87e-11;
390 I_g_on_n
[1][80] = 3.87e-11;
391 I_g_on_n
[1][90] = 3.87e-11;
392 I_g_on_n
[1][100] = 3.87e-11;
394 //ITRS LOP device type
401 mobility_eff
[2] = 460.39 * (1e-2 * 1e6
* 1e-2 * 1e6
);
403 c_g_ideal
[2] = 8.45e-16;
404 c_fringe
[2] = 0.08e-15;
406 I_on_n
[2] = 386.6e-6;
407 I_on_p
[2] = 209.7e-6;
408 nmos_effective_resistance_multiplier
= 1.77;
409 n_to_p_eff_curr_drv_ratio
[2] = 2.54;
410 gmp_to_gmn_multiplier
[2] = 0.98;
411 Rnchannelon
[2] = nmos_effective_resistance_multiplier
* vdd
[2] / I_on_n
[2];
412 Rpchannelon
[2] = n_to_p_eff_curr_drv_ratio
[2] * Rnchannelon
[2];
413 long_channel_leakage_reduction
[2] = 1;
414 I_off_n
[2][0] = 2.14e-9;
415 I_off_n
[2][10] = 2.9e-9;
416 I_off_n
[2][20] = 3.87e-9;
417 I_off_n
[2][30] = 5.07e-9;
418 I_off_n
[2][40] = 6.54e-9;
419 I_off_n
[2][50] = 8.27e-8;
420 I_off_n
[2][60] = 1.02e-7;
421 I_off_n
[2][70] = 1.20e-7;
422 I_off_n
[2][80] = 1.36e-8;
423 I_off_n
[2][90] = 1.52e-8;
424 I_off_n
[2][100] = 1.73e-8;
426 I_g_on_n
[2][0] = 4.31e-8;//A/micron
427 I_g_on_n
[2][10] = 4.31e-8;
428 I_g_on_n
[2][20] = 4.31e-8;
429 I_g_on_n
[2][30] = 4.31e-8;
430 I_g_on_n
[2][40] = 4.31e-8;
431 I_g_on_n
[2][50] = 4.31e-8;
432 I_g_on_n
[2][60] = 4.31e-8;
433 I_g_on_n
[2][70] = 4.31e-8;
434 I_g_on_n
[2][80] = 4.31e-8;
435 I_g_on_n
[2][90] = 4.31e-8;
436 I_g_on_n
[2][100] = 4.31e-8;
438 if (ram_cell_tech_type
== lp_dram
)
440 //LP-DRAM cell access transistor technology parameters
441 curr_vdd_dram_cell
= 1.2;
444 curr_v_th_dram_access_transistor
= 0.4545;
445 width_dram_access_transistor
= 0.14;
446 curr_I_on_dram_cell
= 45e-6;
447 curr_I_off_dram_cell_worst_case_length_temp
= 21.1e-12;
448 curr_Wmemcella_dram
= width_dram_access_transistor
;
449 curr_Wmemcellpmos_dram
= 0;
450 curr_Wmemcellnmos_dram
= 0;
451 curr_area_cell_dram
= 0.168;
452 curr_asp_ratio_cell_dram
= 1.46;
453 curr_c_dram_cell
= 20e-15;
455 //LP-DRAM wordline transistor parameters
460 mobility_eff
[3] = 323.95 * (1e-2 * 1e6
* 1e-2 * 1e6
);
462 c_g_ideal
[3] = 1.47e-15;
463 c_fringe
[3] = 0.08e-15;
465 I_on_n
[3] = 321.6e-6;
466 I_on_p
[3] = 203.3e-6;
467 nmos_effective_resistance_multiplier
= 1.65;
468 n_to_p_eff_curr_drv_ratio
[3] = 1.95;
469 gmp_to_gmn_multiplier
[3] = 0.90;
470 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
471 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
472 long_channel_leakage_reduction
[3] = 1;
473 I_off_n
[3][0] = 1.42e-11;
474 I_off_n
[3][10] = 2.25e-11;
475 I_off_n
[3][20] = 3.46e-11;
476 I_off_n
[3][30] = 5.18e-11;
477 I_off_n
[3][40] = 7.58e-11;
478 I_off_n
[3][50] = 1.08e-10;
479 I_off_n
[3][60] = 1.51e-10;
480 I_off_n
[3][70] = 2.02e-10;
481 I_off_n
[3][80] = 2.57e-10;
482 I_off_n
[3][90] = 3.14e-10;
483 I_off_n
[3][100] = 3.85e-10;
485 else if (ram_cell_tech_type
== comm_dram
)
487 //COMM-DRAM cell access transistor technology parameters
488 curr_vdd_dram_cell
= 1.6;
491 curr_v_th_dram_access_transistor
= 1;
492 width_dram_access_transistor
= 0.09;
493 curr_I_on_dram_cell
= 20e-6;
494 curr_I_off_dram_cell_worst_case_length_temp
= 1e-15;
495 curr_Wmemcella_dram
= width_dram_access_transistor
;
496 curr_Wmemcellpmos_dram
= 0;
497 curr_Wmemcellnmos_dram
= 0;
498 curr_area_cell_dram
= 6*0.09*0.09;
499 curr_asp_ratio_cell_dram
= 1.5;
500 curr_c_dram_cell
= 30e-15;
502 //COMM-DRAM wordline transistor parameters
507 mobility_eff
[3] = 302.2 * (1e-2 * 1e6
* 1e-2 * 1e6
);
509 c_g_ideal
[3] = 5.08e-16;
510 c_fringe
[3] = 0.08e-15;
512 I_on_n
[3] = 1094.3e-6;
513 I_on_p
[3] = I_on_n
[3] / 2;
514 nmos_effective_resistance_multiplier
= 1.62;
515 n_to_p_eff_curr_drv_ratio
[3] = 2.05;
516 gmp_to_gmn_multiplier
[3] = 0.90;
517 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
518 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
519 long_channel_leakage_reduction
[3] = 1;
520 I_off_n
[3][0] = 5.80e-15;
521 I_off_n
[3][10] = 1.21e-14;
522 I_off_n
[3][20] = 2.42e-14;
523 I_off_n
[3][30] = 4.65e-14;
524 I_off_n
[3][40] = 8.60e-14;
525 I_off_n
[3][50] = 1.54e-13;
526 I_off_n
[3][60] = 2.66e-13;
527 I_off_n
[3][70] = 4.45e-13;
528 I_off_n
[3][80] = 7.17e-13;
529 I_off_n
[3][90] = 1.11e-12;
530 I_off_n
[3][100] = 1.67e-12;
533 //SRAM cell properties
534 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
535 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
536 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
537 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
538 curr_asp_ratio_cell_sram
= 1.46;
539 //CAM cell properties //TODO: data need to be revisited
540 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
541 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
542 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
543 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;//360
544 curr_asp_ratio_cell_cam
= 2.92;//2.5
545 //Empirical undifferetiated core/FU coefficient
546 curr_logic_scaling_co_eff
= 1;
547 curr_core_tx_density
= 1.25*0.7*0.7;
548 curr_sckt_co_eff
= 1.1539;
549 curr_chip_layout_overhead
= 1.2;//die measurement results based on Niagara 1 and 2
550 curr_macro_layout_overhead
= 1.1;//EDA placement and routing tool rule of thumb
556 { //65nm technology-node. Corresponds to year 2007 in ITRS
557 //ITRS HP device type
558 SENSE_AMP_D
= .2e-9; // s
559 SENSE_AMP_P
= 5.7e-15; // J
566 mobility_eff
[0] = 436.24 * (1e-2 * 1e6
* 1e-2 * 1e6
);
568 c_g_ideal
[0] = 4.69e-16;
569 c_fringe
[0] = 0.077e-15;
571 I_on_n
[0] = 1197.2e-6;
572 I_on_p
[0] = 870.8e-6;
573 nmos_effective_resistance_multiplier
= 1.50;
574 n_to_p_eff_curr_drv_ratio
[0] = 2.41;
575 gmp_to_gmn_multiplier
[0] = 1.38;
576 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];
577 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];
578 long_channel_leakage_reduction
[0] = 1/3.74;
579 //Using MASTAR, @380K, increase Lgate until Ion reduces to 90% or Lgate increase by 10%, whichever comes first
580 //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74.
581 I_off_n
[0][0] = 1.96e-7;
582 I_off_n
[0][10] = 2.29e-7;
583 I_off_n
[0][20] = 2.66e-7;
584 I_off_n
[0][30] = 3.05e-7;
585 I_off_n
[0][40] = 3.49e-7;
586 I_off_n
[0][50] = 3.95e-7;
587 I_off_n
[0][60] = 4.45e-7;
588 I_off_n
[0][70] = 4.97e-7;
589 I_off_n
[0][80] = 5.48e-7;
590 I_off_n
[0][90] = 5.94e-7;
591 I_off_n
[0][100] = 6.3e-7;
592 I_g_on_n
[0][0] = 4.09e-8;//A/micron
593 I_g_on_n
[0][10] = 4.09e-8;
594 I_g_on_n
[0][20] = 4.09e-8;
595 I_g_on_n
[0][30] = 4.09e-8;
596 I_g_on_n
[0][40] = 4.09e-8;
597 I_g_on_n
[0][50] = 4.09e-8;
598 I_g_on_n
[0][60] = 4.09e-8;
599 I_g_on_n
[0][70] = 4.09e-8;
600 I_g_on_n
[0][80] = 4.09e-8;
601 I_g_on_n
[0][90] = 4.09e-8;
602 I_g_on_n
[0][100] = 4.09e-8;
604 //ITRS LSTP device type
611 mobility_eff
[1] = 341.21 * (1e-2 * 1e6
* 1e-2 * 1e6
);
613 c_g_ideal
[1] = 6.14e-16;
614 c_fringe
[1] = 0.08e-15;
616 I_on_n
[1] = 519.2e-6;
618 nmos_effective_resistance_multiplier
= 1.96;
619 n_to_p_eff_curr_drv_ratio
[1] = 2.23;
620 gmp_to_gmn_multiplier
[1] = 0.99;
621 Rnchannelon
[1] = nmos_effective_resistance_multiplier
* vdd
[1] / I_on_n
[1];
622 Rpchannelon
[1] = n_to_p_eff_curr_drv_ratio
[1] * Rnchannelon
[1];
623 long_channel_leakage_reduction
[1] = 1/2.82;
624 I_off_n
[1][0] = 9.12e-12;
625 I_off_n
[1][10] = 1.49e-11;
626 I_off_n
[1][20] = 2.36e-11;
627 I_off_n
[1][30] = 3.64e-11;
628 I_off_n
[1][40] = 5.48e-11;
629 I_off_n
[1][50] = 8.05e-11;
630 I_off_n
[1][60] = 1.15e-10;
631 I_off_n
[1][70] = 1.59e-10;
632 I_off_n
[1][80] = 2.1e-10;
633 I_off_n
[1][90] = 2.62e-10;
634 I_off_n
[1][100] = 3.21e-10;
636 I_g_on_n
[1][0] = 1.09e-10;//A/micron
637 I_g_on_n
[1][10] = 1.09e-10;
638 I_g_on_n
[1][20] = 1.09e-10;
639 I_g_on_n
[1][30] = 1.09e-10;
640 I_g_on_n
[1][40] = 1.09e-10;
641 I_g_on_n
[1][50] = 1.09e-10;
642 I_g_on_n
[1][60] = 1.09e-10;
643 I_g_on_n
[1][70] = 1.09e-10;
644 I_g_on_n
[1][80] = 1.09e-10;
645 I_g_on_n
[1][90] = 1.09e-10;
646 I_g_on_n
[1][100] = 1.09e-10;
648 //ITRS LOP device type
655 mobility_eff
[2] = 495.19 * (1e-2 * 1e6
* 1e-2 * 1e6
);
657 c_g_ideal
[2] = 6e-16;
658 c_fringe
[2] = 0.08e-15;
660 I_on_n
[2] = 573.1e-6;
661 I_on_p
[2] = 340.6e-6;
662 nmos_effective_resistance_multiplier
= 1.82;
663 n_to_p_eff_curr_drv_ratio
[2] = 2.28;
664 gmp_to_gmn_multiplier
[2] = 1.11;
665 Rnchannelon
[2] = nmos_effective_resistance_multiplier
* vdd
[2] / I_on_n
[2];
666 Rpchannelon
[2] = n_to_p_eff_curr_drv_ratio
[2] * Rnchannelon
[2];
667 long_channel_leakage_reduction
[2] = 1/2.05;
668 I_off_n
[2][0] = 4.9e-9;
669 I_off_n
[2][10] = 6.49e-9;
670 I_off_n
[2][20] = 8.45e-9;
671 I_off_n
[2][30] = 1.08e-8;
672 I_off_n
[2][40] = 1.37e-8;
673 I_off_n
[2][50] = 1.71e-8;
674 I_off_n
[2][60] = 2.09e-8;
675 I_off_n
[2][70] = 2.48e-8;
676 I_off_n
[2][80] = 2.84e-8;
677 I_off_n
[2][90] = 3.13e-8;
678 I_off_n
[2][100] = 3.42e-8;
680 I_g_on_n
[2][0] = 9.61e-9;//A/micron
681 I_g_on_n
[2][10] = 9.61e-9;
682 I_g_on_n
[2][20] = 9.61e-9;
683 I_g_on_n
[2][30] = 9.61e-9;
684 I_g_on_n
[2][40] = 9.61e-9;
685 I_g_on_n
[2][50] = 9.61e-9;
686 I_g_on_n
[2][60] = 9.61e-9;
687 I_g_on_n
[2][70] = 9.61e-9;
688 I_g_on_n
[2][80] = 9.61e-9;
689 I_g_on_n
[2][90] = 9.61e-9;
690 I_g_on_n
[2][100] = 9.61e-9;
692 if (ram_cell_tech_type
== lp_dram
)
694 //LP-DRAM cell access transistor technology parameters
695 curr_vdd_dram_cell
= 1.2;
698 curr_v_th_dram_access_transistor
= 0.43806;
699 width_dram_access_transistor
= 0.09;
700 curr_I_on_dram_cell
= 36e-6;
701 curr_I_off_dram_cell_worst_case_length_temp
= 19.6e-12;
702 curr_Wmemcella_dram
= width_dram_access_transistor
;
703 curr_Wmemcellpmos_dram
= 0;
704 curr_Wmemcellnmos_dram
= 0;
705 curr_area_cell_dram
= 0.11;
706 curr_asp_ratio_cell_dram
= 1.46;
707 curr_c_dram_cell
= 20e-15;
709 //LP-DRAM wordline transistor parameters
714 mobility_eff
[3] = 328.32 * (1e-2 * 1e6
* 1e-2 * 1e6
);
716 c_g_ideal
[3] = 1.46e-15;
717 c_fringe
[3] = 0.08e-15;
719 I_on_n
[3] = 399.8e-6;
720 I_on_p
[3] = 243.4e-6;
721 nmos_effective_resistance_multiplier
= 1.65;
722 n_to_p_eff_curr_drv_ratio
[3] = 2.05;
723 gmp_to_gmn_multiplier
[3] = 0.90;
724 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
725 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
726 long_channel_leakage_reduction
[3] = 1;
727 I_off_n
[3][0] = 2.23e-11;
728 I_off_n
[3][10] = 3.46e-11;
729 I_off_n
[3][20] = 5.24e-11;
730 I_off_n
[3][30] = 7.75e-11;
731 I_off_n
[3][40] = 1.12e-10;
732 I_off_n
[3][50] = 1.58e-10;
733 I_off_n
[3][60] = 2.18e-10;
734 I_off_n
[3][70] = 2.88e-10;
735 I_off_n
[3][80] = 3.63e-10;
736 I_off_n
[3][90] = 4.41e-10;
737 I_off_n
[3][100] = 5.36e-10;
739 else if (ram_cell_tech_type
== comm_dram
)
741 //COMM-DRAM cell access transistor technology parameters
742 curr_vdd_dram_cell
= 1.3;
745 curr_v_th_dram_access_transistor
= 1;
746 width_dram_access_transistor
= 0.065;
747 curr_I_on_dram_cell
= 20e-6;
748 curr_I_off_dram_cell_worst_case_length_temp
= 1e-15;
749 curr_Wmemcella_dram
= width_dram_access_transistor
;
750 curr_Wmemcellpmos_dram
= 0;
751 curr_Wmemcellnmos_dram
= 0;
752 curr_area_cell_dram
= 6*0.065*0.065;
753 curr_asp_ratio_cell_dram
= 1.5;
754 curr_c_dram_cell
= 30e-15;
756 //COMM-DRAM wordline transistor parameters
761 mobility_eff
[3] = 303.44 * (1e-2 * 1e6
* 1e-2 * 1e6
);
763 c_g_ideal
[3] = 4e-16;
764 c_fringe
[3] = 0.08e-15;
767 I_on_p
[3] = I_on_n
[3] / 2;
768 nmos_effective_resistance_multiplier
= 1.69;
769 n_to_p_eff_curr_drv_ratio
[3] = 2.39;
770 gmp_to_gmn_multiplier
[3] = 0.90;
771 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
772 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
773 long_channel_leakage_reduction
[3] = 1;
774 I_off_n
[3][0] = 1.80e-14;
775 I_off_n
[3][10] = 3.64e-14;
776 I_off_n
[3][20] = 7.03e-14;
777 I_off_n
[3][30] = 1.31e-13;
778 I_off_n
[3][40] = 2.35e-13;
779 I_off_n
[3][50] = 4.09e-13;
780 I_off_n
[3][60] = 6.89e-13;
781 I_off_n
[3][70] = 1.13e-12;
782 I_off_n
[3][80] = 1.78e-12;
783 I_off_n
[3][90] = 2.71e-12;
784 I_off_n
[3][100] = 3.99e-12;
787 //SRAM cell properties
788 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
789 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
790 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
791 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
792 curr_asp_ratio_cell_sram
= 1.46;
793 //CAM cell properties //TODO: data need to be revisited
794 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
795 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
796 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
797 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
798 curr_asp_ratio_cell_cam
= 2.92;
799 //Empirical undifferetiated core/FU coefficient
800 curr_logic_scaling_co_eff
= 0.7; //Rather than scale proportionally to square of feature size, only scale linearly according to IBM cell processor
801 curr_core_tx_density
= 1.25*0.7;
802 curr_sckt_co_eff
= 1.1359;
803 curr_chip_layout_overhead
= 1.2;//die measurement results based on Niagara 1 and 2
804 curr_macro_layout_overhead
= 1.1;//EDA placement and routing tool rule of thumb
808 { //45nm technology-node. Corresponds to year 2010 in ITRS
809 //ITRS HP device type
810 SENSE_AMP_D
= .04e-9; // s
811 SENSE_AMP_P
= 2.7e-15; // J
818 mobility_eff
[0] = 266.68 * (1e-2 * 1e6
* 1e-2 * 1e6
);
820 c_g_ideal
[0] = 6.78e-16;
821 c_fringe
[0] = 0.05e-15;
823 I_on_n
[0] = 2046.6e-6;
824 //There are certain problems with the ITRS PMOS numbers in MASTAR for 45nm. So we are using 65nm values of
825 //n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier for 45nm
826 I_on_p
[0] = I_on_n
[0] / 2;//This value is fixed arbitrarily but I_on_p is not being used in CACTI
827 nmos_effective_resistance_multiplier
= 1.51;
828 n_to_p_eff_curr_drv_ratio
[0] = 2.41;
829 gmp_to_gmn_multiplier
[0] = 1.38;
830 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];
831 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];
832 long_channel_leakage_reduction
[0] = 1/3.546;//Using MASTAR, @380K, increase Lgate until Ion reduces to 90%, Ioff(Lgate normal)/Ioff(Lgate long)= 3.74
833 I_off_n
[0][0] = 2.8e-7;
834 I_off_n
[0][10] = 3.28e-7;
835 I_off_n
[0][20] = 3.81e-7;
836 I_off_n
[0][30] = 4.39e-7;
837 I_off_n
[0][40] = 5.02e-7;
838 I_off_n
[0][50] = 5.69e-7;
839 I_off_n
[0][60] = 6.42e-7;
840 I_off_n
[0][70] = 7.2e-7;
841 I_off_n
[0][80] = 8.03e-7;
842 I_off_n
[0][90] = 8.91e-7;
843 I_off_n
[0][100] = 9.84e-7;
845 I_g_on_n
[0][0] = 3.59e-8;//A/micron
846 I_g_on_n
[0][10] = 3.59e-8;
847 I_g_on_n
[0][20] = 3.59e-8;
848 I_g_on_n
[0][30] = 3.59e-8;
849 I_g_on_n
[0][40] = 3.59e-8;
850 I_g_on_n
[0][50] = 3.59e-8;
851 I_g_on_n
[0][60] = 3.59e-8;
852 I_g_on_n
[0][70] = 3.59e-8;
853 I_g_on_n
[0][80] = 3.59e-8;
854 I_g_on_n
[0][90] = 3.59e-8;
855 I_g_on_n
[0][100] = 3.59e-8;
857 //ITRS LSTP device type
864 mobility_eff
[1] = 363.96 * (1e-2 * 1e6
* 1e-2 * 1e6
);
866 c_g_ideal
[1] = 5.18e-16;
867 c_fringe
[1] = 0.08e-15;
869 I_on_n
[1] = 666.2e-6;
870 I_on_p
[1] = I_on_n
[1] / 2;
871 nmos_effective_resistance_multiplier
= 1.99;
872 n_to_p_eff_curr_drv_ratio
[1] = 2.23;
873 gmp_to_gmn_multiplier
[1] = 0.99;
874 Rnchannelon
[1] = nmos_effective_resistance_multiplier
* vdd
[1] / I_on_n
[1];
875 Rpchannelon
[1] = n_to_p_eff_curr_drv_ratio
[1] * Rnchannelon
[1];
876 long_channel_leakage_reduction
[1] = 1/2.08;
877 I_off_n
[1][0] = 1.01e-11;
878 I_off_n
[1][10] = 1.65e-11;
879 I_off_n
[1][20] = 2.62e-11;
880 I_off_n
[1][30] = 4.06e-11;
881 I_off_n
[1][40] = 6.12e-11;
882 I_off_n
[1][50] = 9.02e-11;
883 I_off_n
[1][60] = 1.3e-10;
884 I_off_n
[1][70] = 1.83e-10;
885 I_off_n
[1][80] = 2.51e-10;
886 I_off_n
[1][90] = 3.29e-10;
887 I_off_n
[1][100] = 4.1e-10;
889 I_g_on_n
[1][0] = 9.47e-12;//A/micron
890 I_g_on_n
[1][10] = 9.47e-12;
891 I_g_on_n
[1][20] = 9.47e-12;
892 I_g_on_n
[1][30] = 9.47e-12;
893 I_g_on_n
[1][40] = 9.47e-12;
894 I_g_on_n
[1][50] = 9.47e-12;
895 I_g_on_n
[1][60] = 9.47e-12;
896 I_g_on_n
[1][70] = 9.47e-12;
897 I_g_on_n
[1][80] = 9.47e-12;
898 I_g_on_n
[1][90] = 9.47e-12;
899 I_g_on_n
[1][100] = 9.47e-12;
901 //ITRS LOP device type
907 c_ox
[2] = 2.82e-14;//F/micron2
908 mobility_eff
[2] = 508.9 * (1e-2 * 1e6
* 1e-2 * 1e6
);
910 c_g_ideal
[2] = 6.2e-16;
911 c_fringe
[2] = 0.073e-15;
913 I_on_n
[2] = 748.9e-6;
914 I_on_p
[2] = I_on_n
[2] / 2;
915 nmos_effective_resistance_multiplier
= 1.76;
916 n_to_p_eff_curr_drv_ratio
[2] = 2.28;
917 gmp_to_gmn_multiplier
[2] = 1.11;
918 Rnchannelon
[2] = nmos_effective_resistance_multiplier
* vdd
[2] / I_on_n
[2];
919 Rpchannelon
[2] = n_to_p_eff_curr_drv_ratio
[2] * Rnchannelon
[2];
920 long_channel_leakage_reduction
[2] = 1/1.92;
921 I_off_n
[2][0] = 4.03e-9;
922 I_off_n
[2][10] = 5.02e-9;
923 I_off_n
[2][20] = 6.18e-9;
924 I_off_n
[2][30] = 7.51e-9;
925 I_off_n
[2][40] = 9.04e-9;
926 I_off_n
[2][50] = 1.08e-8;
927 I_off_n
[2][60] = 1.27e-8;
928 I_off_n
[2][70] = 1.47e-8;
929 I_off_n
[2][80] = 1.66e-8;
930 I_off_n
[2][90] = 1.84e-8;
931 I_off_n
[2][100] = 2.03e-8;
933 I_g_on_n
[2][0] = 3.24e-8;//A/micron
934 I_g_on_n
[2][10] = 4.01e-8;
935 I_g_on_n
[2][20] = 4.90e-8;
936 I_g_on_n
[2][30] = 5.92e-8;
937 I_g_on_n
[2][40] = 7.08e-8;
938 I_g_on_n
[2][50] = 8.38e-8;
939 I_g_on_n
[2][60] = 9.82e-8;
940 I_g_on_n
[2][70] = 1.14e-7;
941 I_g_on_n
[2][80] = 1.29e-7;
942 I_g_on_n
[2][90] = 1.43e-7;
943 I_g_on_n
[2][100] = 1.54e-7;
945 if (ram_cell_tech_type
== lp_dram
)
947 //LP-DRAM cell access transistor technology parameters
948 curr_vdd_dram_cell
= 1.1;
950 Lelec
[3] = 0.0504;// Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
951 curr_v_th_dram_access_transistor
= 0.44559;
952 width_dram_access_transistor
= 0.079;
953 curr_I_on_dram_cell
= 36e-6;//A
954 curr_I_off_dram_cell_worst_case_length_temp
= 19.5e-12;
955 curr_Wmemcella_dram
= width_dram_access_transistor
;
956 curr_Wmemcellpmos_dram
= 0;
957 curr_Wmemcellnmos_dram
= 0;
958 curr_area_cell_dram
= width_dram_access_transistor
* Lphy
[3] * 10.0;
959 curr_asp_ratio_cell_dram
= 1.46;
960 curr_c_dram_cell
= 20e-15;
962 //LP-DRAM wordline transistor parameters
967 mobility_eff
[3] = 426.30 * (1e-2 * 1e6
* 1e-2 * 1e6
);
969 c_g_ideal
[3] = 1.10e-15;
970 c_fringe
[3] = 0.08e-15;
973 I_on_p
[3] = I_on_n
[3] / 2;
974 nmos_effective_resistance_multiplier
= 1.65;
975 n_to_p_eff_curr_drv_ratio
[3] = 2.05;
976 gmp_to_gmn_multiplier
[3] = 0.90;
977 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
978 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
979 long_channel_leakage_reduction
[3] = 1;
980 I_off_n
[3][0] = 2.54e-11;
981 I_off_n
[3][10] = 3.94e-11;
982 I_off_n
[3][20] = 5.95e-11;
983 I_off_n
[3][30] = 8.79e-11;
984 I_off_n
[3][40] = 1.27e-10;
985 I_off_n
[3][50] = 1.79e-10;
986 I_off_n
[3][60] = 2.47e-10;
987 I_off_n
[3][70] = 3.31e-10;
988 I_off_n
[3][80] = 4.26e-10;
989 I_off_n
[3][90] = 5.27e-10;
990 I_off_n
[3][100] = 6.46e-10;
992 else if (ram_cell_tech_type
== comm_dram
)
994 //COMM-DRAM cell access transistor technology parameters
995 curr_vdd_dram_cell
= 1.1;
998 curr_v_th_dram_access_transistor
= 1;
999 width_dram_access_transistor
= 0.045;
1000 curr_I_on_dram_cell
= 20e-6;//A
1001 curr_I_off_dram_cell_worst_case_length_temp
= 1e-15;
1002 curr_Wmemcella_dram
= width_dram_access_transistor
;
1003 curr_Wmemcellpmos_dram
= 0;
1004 curr_Wmemcellnmos_dram
= 0;
1005 curr_area_cell_dram
= 6*0.045*0.045;
1006 curr_asp_ratio_cell_dram
= 1.5;
1007 curr_c_dram_cell
= 30e-15;
1009 //COMM-DRAM wordline transistor parameters
1014 mobility_eff
[3] = 368.58 * (1e-2 * 1e6
* 1e-2 * 1e6
);
1016 c_g_ideal
[3] = 3.59e-16;
1017 c_fringe
[3] = 0.08e-15;
1019 I_on_n
[3] = 999.4e-6;
1020 I_on_p
[3] = I_on_n
[3] / 2;
1021 nmos_effective_resistance_multiplier
= 1.69;
1022 n_to_p_eff_curr_drv_ratio
[3] = 1.95;
1023 gmp_to_gmn_multiplier
[3] = 0.90;
1024 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
1025 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
1026 long_channel_leakage_reduction
[3] = 1;
1027 I_off_n
[3][0] = 1.31e-14;
1028 I_off_n
[3][10] = 2.68e-14;
1029 I_off_n
[3][20] = 5.25e-14;
1030 I_off_n
[3][30] = 9.88e-14;
1031 I_off_n
[3][40] = 1.79e-13;
1032 I_off_n
[3][50] = 3.15e-13;
1033 I_off_n
[3][60] = 5.36e-13;
1034 I_off_n
[3][70] = 8.86e-13;
1035 I_off_n
[3][80] = 1.42e-12;
1036 I_off_n
[3][90] = 2.20e-12;
1037 I_off_n
[3][100] = 3.29e-12;
1041 //SRAM cell properties
1042 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
1043 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
1044 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
1045 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1046 curr_asp_ratio_cell_sram
= 1.46;
1047 //CAM cell properties //TODO: data need to be revisited
1048 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
1049 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
1050 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
1051 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1052 curr_asp_ratio_cell_cam
= 2.92;
1053 //Empirical undifferetiated core/FU coefficient
1054 curr_logic_scaling_co_eff
= 0.7*0.7;
1055 curr_core_tx_density
= 1.25;
1056 curr_sckt_co_eff
= 1.1387;
1057 curr_chip_layout_overhead
= 1.2;//die measurement results based on Niagara 1 and 2
1058 curr_macro_layout_overhead
= 1.1;//EDA placement and routing tool rule of thumb
1063 SENSE_AMP_D
= .03e-9; // s
1064 SENSE_AMP_P
= 2.16e-15; // J
1065 //For 2013, MPU/ASIC stagger-contacted M1 half-pitch is 32 nm (so this is 32 nm
1066 //technology i.e. FEATURESIZE = 0.032). Using the SOI process numbers for
1074 mobility_eff
[0] = 361.84 * (1e-2 * 1e6
* 1e-2 * 1e6
);
1076 c_g_ideal
[0] = 5.34e-16;
1077 c_fringe
[0] = 0.04e-15;
1079 I_on_n
[0] = 2211.7e-6;
1080 I_on_p
[0] = I_on_n
[0] / 2;
1081 nmos_effective_resistance_multiplier
= 1.49;
1082 n_to_p_eff_curr_drv_ratio
[0] = 2.41;
1083 gmp_to_gmn_multiplier
[0] = 1.38;
1084 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];//ohm-micron
1085 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];//ohm-micron
1086 long_channel_leakage_reduction
[0] = 1/3.706;
1087 //Using MASTAR, @300K (380K does not work in MASTAR), increase Lgate until Ion reduces to 95% or Lgate increase by 5% (DG device can only increase by 5%),
1088 //whichever comes first
1089 I_off_n
[0][0] = 1.52e-7;
1090 I_off_n
[0][10] = 1.55e-7;
1091 I_off_n
[0][20] = 1.59e-7;
1092 I_off_n
[0][30] = 1.68e-7;
1093 I_off_n
[0][40] = 1.90e-7;
1094 I_off_n
[0][50] = 2.69e-7;
1095 I_off_n
[0][60] = 5.32e-7;
1096 I_off_n
[0][70] = 1.02e-6;
1097 I_off_n
[0][80] = 1.62e-6;
1098 I_off_n
[0][90] = 2.73e-6;
1099 I_off_n
[0][100] = 6.1e-6;
1101 I_g_on_n
[0][0] = 6.55e-8;//A/micron
1102 I_g_on_n
[0][10] = 6.55e-8;
1103 I_g_on_n
[0][20] = 6.55e-8;
1104 I_g_on_n
[0][30] = 6.55e-8;
1105 I_g_on_n
[0][40] = 6.55e-8;
1106 I_g_on_n
[0][50] = 6.55e-8;
1107 I_g_on_n
[0][60] = 6.55e-8;
1108 I_g_on_n
[0][70] = 6.55e-8;
1109 I_g_on_n
[0][80] = 6.55e-8;
1110 I_g_on_n
[0][90] = 6.55e-8;
1111 I_g_on_n
[0][100] = 6.55e-8;
1114 // I_g_on_n[0][0] = 2.71e-9;//A/micron
1115 // I_g_on_n[0][10] = 2.71e-9;
1116 // I_g_on_n[0][20] = 2.71e-9;
1117 // I_g_on_n[0][30] = 2.71e-9;
1118 // I_g_on_n[0][40] = 2.71e-9;
1119 // I_g_on_n[0][50] = 2.71e-9;
1120 // I_g_on_n[0][60] = 2.71e-9;
1121 // I_g_on_n[0][70] = 2.71e-9;
1122 // I_g_on_n[0][80] = 2.71e-9;
1123 // I_g_on_n[0][90] = 2.71e-9;
1124 // I_g_on_n[0][100] = 2.71e-9;
1133 mobility_eff
[1] = 347.46 * (1e-2 * 1e6
* 1e-2 * 1e6
);
1135 c_g_ideal
[1] = 4.58e-16;
1136 c_fringe
[1] = 0.053e-15;
1138 I_on_n
[1] = 683.6e-6;
1139 I_on_p
[1] = I_on_n
[1] / 2;
1140 nmos_effective_resistance_multiplier
= 1.99;
1141 n_to_p_eff_curr_drv_ratio
[1] = 2.23;
1142 gmp_to_gmn_multiplier
[1] = 0.99;
1143 Rnchannelon
[1] = nmos_effective_resistance_multiplier
* vdd
[1] / I_on_n
[1];
1144 Rpchannelon
[1] = n_to_p_eff_curr_drv_ratio
[1] * Rnchannelon
[1];
1145 long_channel_leakage_reduction
[1] = 1/1.93;
1146 I_off_n
[1][0] = 2.06e-11;
1147 I_off_n
[1][10] = 3.30e-11;
1148 I_off_n
[1][20] = 5.15e-11;
1149 I_off_n
[1][30] = 7.83e-11;
1150 I_off_n
[1][40] = 1.16e-10;
1151 I_off_n
[1][50] = 1.69e-10;
1152 I_off_n
[1][60] = 2.40e-10;
1153 I_off_n
[1][70] = 3.34e-10;
1154 I_off_n
[1][80] = 4.54e-10;
1155 I_off_n
[1][90] = 5.96e-10;
1156 I_off_n
[1][100] = 7.44e-10;
1158 I_g_on_n
[1][0] = 3.73e-11;//A/micron
1159 I_g_on_n
[1][10] = 3.73e-11;
1160 I_g_on_n
[1][20] = 3.73e-11;
1161 I_g_on_n
[1][30] = 3.73e-11;
1162 I_g_on_n
[1][40] = 3.73e-11;
1163 I_g_on_n
[1][50] = 3.73e-11;
1164 I_g_on_n
[1][60] = 3.73e-11;
1165 I_g_on_n
[1][70] = 3.73e-11;
1166 I_g_on_n
[1][80] = 3.73e-11;
1167 I_g_on_n
[1][90] = 3.73e-11;
1168 I_g_on_n
[1][100] = 3.73e-11;
1178 mobility_eff
[2] = 513.52 * (1e-2 * 1e6
* 1e-2 * 1e6
);
1180 c_g_ideal
[2] = 4.54e-16;
1181 c_fringe
[2] = 0.057e-15;
1183 I_on_n
[2] = 827.8e-6;
1184 I_on_p
[2] = I_on_n
[2] / 2;
1185 nmos_effective_resistance_multiplier
= 1.73;
1186 n_to_p_eff_curr_drv_ratio
[2] = 2.28;
1187 gmp_to_gmn_multiplier
[2] = 1.11;
1188 Rnchannelon
[2] = nmos_effective_resistance_multiplier
* vdd
[2] / I_on_n
[2];
1189 Rpchannelon
[2] = n_to_p_eff_curr_drv_ratio
[2] * Rnchannelon
[2];
1190 long_channel_leakage_reduction
[2] = 1/1.89;
1191 I_off_n
[2][0] = 5.94e-8;
1192 I_off_n
[2][10] = 7.23e-8;
1193 I_off_n
[2][20] = 8.7e-8;
1194 I_off_n
[2][30] = 1.04e-7;
1195 I_off_n
[2][40] = 1.22e-7;
1196 I_off_n
[2][50] = 1.43e-7;
1197 I_off_n
[2][60] = 1.65e-7;
1198 I_off_n
[2][70] = 1.90e-7;
1199 I_off_n
[2][80] = 2.15e-7;
1200 I_off_n
[2][90] = 2.39e-7;
1201 I_off_n
[2][100] = 2.63e-7;
1203 I_g_on_n
[2][0] = 2.93e-9;//A/micron
1204 I_g_on_n
[2][10] = 2.93e-9;
1205 I_g_on_n
[2][20] = 2.93e-9;
1206 I_g_on_n
[2][30] = 2.93e-9;
1207 I_g_on_n
[2][40] = 2.93e-9;
1208 I_g_on_n
[2][50] = 2.93e-9;
1209 I_g_on_n
[2][60] = 2.93e-9;
1210 I_g_on_n
[2][70] = 2.93e-9;
1211 I_g_on_n
[2][80] = 2.93e-9;
1212 I_g_on_n
[2][90] = 2.93e-9;
1213 I_g_on_n
[2][100] = 2.93e-9;
1215 if (ram_cell_tech_type
== lp_dram
)
1217 //LP-DRAM cell access transistor technology parameters
1218 curr_vdd_dram_cell
= 1.0;
1220 Lelec
[3] = 0.0419;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
1221 curr_v_th_dram_access_transistor
= 0.44129;
1222 width_dram_access_transistor
= 0.056;
1223 curr_I_on_dram_cell
= 36e-6;
1224 curr_I_off_dram_cell_worst_case_length_temp
= 18.9e-12;
1225 curr_Wmemcella_dram
= width_dram_access_transistor
;
1226 curr_Wmemcellpmos_dram
= 0;
1227 curr_Wmemcellnmos_dram
= 0;
1228 curr_area_cell_dram
= width_dram_access_transistor
* Lphy
[3] * 10.0;
1229 curr_asp_ratio_cell_dram
= 1.46;
1230 curr_c_dram_cell
= 20e-15;
1232 //LP-DRAM wordline transistor parameters
1237 mobility_eff
[3] = 408.12 * (1e-2 * 1e6
* 1e-2 * 1e6
);
1239 c_g_ideal
[3] = 7.45e-16;
1240 c_fringe
[3] = 0.053e-15;
1242 I_on_n
[3] = 1055.4e-6;
1243 I_on_p
[3] = I_on_n
[3] / 2;
1244 nmos_effective_resistance_multiplier
= 1.65;
1245 n_to_p_eff_curr_drv_ratio
[3] = 2.05;
1246 gmp_to_gmn_multiplier
[3] = 0.90;
1247 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
1248 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
1249 long_channel_leakage_reduction
[3] = 1;
1250 I_off_n
[3][0] = 3.57e-11;
1251 I_off_n
[3][10] = 5.51e-11;
1252 I_off_n
[3][20] = 8.27e-11;
1253 I_off_n
[3][30] = 1.21e-10;
1254 I_off_n
[3][40] = 1.74e-10;
1255 I_off_n
[3][50] = 2.45e-10;
1256 I_off_n
[3][60] = 3.38e-10;
1257 I_off_n
[3][70] = 4.53e-10;
1258 I_off_n
[3][80] = 5.87e-10;
1259 I_off_n
[3][90] = 7.29e-10;
1260 I_off_n
[3][100] = 8.87e-10;
1262 else if (ram_cell_tech_type
== comm_dram
)
1264 //COMM-DRAM cell access transistor technology parameters
1265 curr_vdd_dram_cell
= 1.0;
1267 Lelec
[3] = 0.0205;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
1268 curr_v_th_dram_access_transistor
= 1;
1269 width_dram_access_transistor
= 0.032;
1270 curr_I_on_dram_cell
= 20e-6;
1271 curr_I_off_dram_cell_worst_case_length_temp
= 1e-15;
1272 curr_Wmemcella_dram
= width_dram_access_transistor
;
1273 curr_Wmemcellpmos_dram
= 0;
1274 curr_Wmemcellnmos_dram
= 0;
1275 curr_area_cell_dram
= 6*0.032*0.032;
1276 curr_asp_ratio_cell_dram
= 1.5;
1277 curr_c_dram_cell
= 30e-15;
1279 //COMM-DRAM wordline transistor parameters
1284 mobility_eff
[3] = 380.76 * (1e-2 * 1e6
* 1e-2 * 1e6
);
1286 c_g_ideal
[3] = 2.56e-16;
1287 c_fringe
[3] = 0.053e-15;
1289 I_on_n
[3] = 1024.5e-6;
1290 I_on_p
[3] = I_on_n
[3] / 2;
1291 nmos_effective_resistance_multiplier
= 1.69;
1292 n_to_p_eff_curr_drv_ratio
[3] = 1.95;
1293 gmp_to_gmn_multiplier
[3] = 0.90;
1294 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];
1295 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];
1296 long_channel_leakage_reduction
[3] = 1;
1297 I_off_n
[3][0] = 3.63e-14;
1298 I_off_n
[3][10] = 7.18e-14;
1299 I_off_n
[3][20] = 1.36e-13;
1300 I_off_n
[3][30] = 2.49e-13;
1301 I_off_n
[3][40] = 4.41e-13;
1302 I_off_n
[3][50] = 7.55e-13;
1303 I_off_n
[3][60] = 1.26e-12;
1304 I_off_n
[3][70] = 2.03e-12;
1305 I_off_n
[3][80] = 3.19e-12;
1306 I_off_n
[3][90] = 4.87e-12;
1307 I_off_n
[3][100] = 7.16e-12;
1310 //SRAM cell properties
1311 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
1312 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
1313 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
1314 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1315 curr_asp_ratio_cell_sram
= 1.46;
1316 //CAM cell properties //TODO: data need to be revisited
1317 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
1318 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
1319 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
1320 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1321 curr_asp_ratio_cell_cam
= 2.92;
1322 //Empirical undifferetiated core/FU coefficient
1323 curr_logic_scaling_co_eff
= 0.7*0.7*0.7;
1324 curr_core_tx_density
= 1.25/0.7;
1325 curr_sckt_co_eff
= 1.1111;
1326 curr_chip_layout_overhead
= 1.2;//die measurement results based on Niagara 1 and 2
1327 curr_macro_layout_overhead
= 1.1;//EDA placement and routing tool rule of thumb
1331 SENSE_AMP_D
= .03e-9; // s
1332 SENSE_AMP_P
= 2.16e-15; // J
1333 //For 2016, MPU/ASIC stagger-contacted M1 half-pitch is 22 nm (so this is 22 nm
1334 //technology i.e. FEATURESIZE = 0.022). Using the DG process numbers for HP.
1337 Lphy
[0] = 0.009;//Lphy is the physical gate-length.
1338 Lelec
[0] = 0.00468;//Lelec is the electrical gate-length.
1339 t_ox
[0] = 0.55e-3;//micron
1340 v_th
[0] = 0.1395;//V
1341 c_ox
[0] = 3.63e-14;//F/micron2
1342 mobility_eff
[0] = 426.07 * (1e-2 * 1e6
* 1e-2 * 1e6
); //micron2 / Vs
1343 Vdsat
[0] = 2.33e-2; //V/micron
1344 c_g_ideal
[0] = 3.27e-16;//F/micron
1345 c_fringe
[0] = 0.06e-15;//F/micron
1346 c_junc
[0] = 0;//F/micron2
1347 I_on_n
[0] = 2626.4e-6;//A/micron
1348 I_on_p
[0] = I_on_n
[0] / 2;//A/micron //This value for I_on_p is not really used.
1349 nmos_effective_resistance_multiplier
= 1.45;
1350 n_to_p_eff_curr_drv_ratio
[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in
1351 //"Dynamic" tab of Device workspace.
1352 gmp_to_gmn_multiplier
[0] = 1.38; //Just using the 32nm SOI value.
1353 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];//ohm-micron
1354 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];//ohm-micron
1355 long_channel_leakage_reduction
[0] = 1/3.274;
1356 I_off_n
[0][0] = 1.52e-7/1.5*1.2;//From 22nm, leakage current are directly from ITRS report rather than MASTAR, since MASTAR has serious bugs there.
1357 I_off_n
[0][10] = 1.55e-7/1.5*1.2;
1358 I_off_n
[0][20] = 1.59e-7/1.5*1.2;
1359 I_off_n
[0][30] = 1.68e-7/1.5*1.2;
1360 I_off_n
[0][40] = 1.90e-7/1.5*1.2;
1361 I_off_n
[0][50] = 2.69e-7/1.5*1.2;
1362 I_off_n
[0][60] = 5.32e-7/1.5*1.2;
1363 I_off_n
[0][70] = 1.02e-6/1.5*1.2;
1364 I_off_n
[0][80] = 1.62e-6/1.5*1.2;
1365 I_off_n
[0][90] = 2.73e-6/1.5*1.2;
1366 I_off_n
[0][100] = 6.1e-6/1.5*1.2;
1368 I_g_on_n
[0][0] = 1.81e-9;//A/micron
1369 I_g_on_n
[0][10] = 1.81e-9;
1370 I_g_on_n
[0][20] = 1.81e-9;
1371 I_g_on_n
[0][30] = 1.81e-9;
1372 I_g_on_n
[0][40] = 1.81e-9;
1373 I_g_on_n
[0][50] = 1.81e-9;
1374 I_g_on_n
[0][60] = 1.81e-9;
1375 I_g_on_n
[0][70] = 1.81e-9;
1376 I_g_on_n
[0][80] = 1.81e-9;
1377 I_g_on_n
[0][90] = 1.81e-9;
1378 I_g_on_n
[0][100] = 1.81e-9;
1383 Lelec
[1] = 0.008;//Lelec is the electrical gate-length.
1384 t_ox
[1] = 1.1e-3;//micron
1385 v_th
[1] = 0.40126;//V
1386 c_ox
[1] = 2.30e-14;//F/micron2
1387 mobility_eff
[1] = 738.09 * (1e-2 * 1e6
* 1e-2 * 1e6
); //micron2 / Vs
1388 Vdsat
[1] = 6.64e-2; //V/micron
1389 c_g_ideal
[1] = 3.22e-16;//F/micron
1390 c_fringe
[1] = 0.08e-15;
1391 c_junc
[1] = 0;//F/micron2
1392 I_on_n
[1] = 727.6e-6;//A/micron
1393 I_on_p
[1] = I_on_n
[1] / 2;
1394 nmos_effective_resistance_multiplier
= 1.99;
1395 n_to_p_eff_curr_drv_ratio
[1] = 2;
1396 gmp_to_gmn_multiplier
[1] = 0.99;
1397 Rnchannelon
[1] = nmos_effective_resistance_multiplier
* vdd
[1] / I_on_n
[1];//ohm-micron
1398 Rpchannelon
[1] = n_to_p_eff_curr_drv_ratio
[1] * Rnchannelon
[1];//ohm-micron
1399 long_channel_leakage_reduction
[1] = 1/1.89;
1400 I_off_n
[1][0] = 2.43e-11;
1401 I_off_n
[1][10] = 4.85e-11;
1402 I_off_n
[1][20] = 9.68e-11;
1403 I_off_n
[1][30] = 1.94e-10;
1404 I_off_n
[1][40] = 3.87e-10;
1405 I_off_n
[1][50] = 7.73e-10;
1406 I_off_n
[1][60] = 3.55e-10;
1407 I_off_n
[1][70] = 3.09e-9;
1408 I_off_n
[1][80] = 6.19e-9;
1409 I_off_n
[1][90] = 1.24e-8;
1410 I_off_n
[1][100]= 2.48e-8;
1412 I_g_on_n
[1][0] = 4.51e-10;//A/micron
1413 I_g_on_n
[1][10] = 4.51e-10;
1414 I_g_on_n
[1][20] = 4.51e-10;
1415 I_g_on_n
[1][30] = 4.51e-10;
1416 I_g_on_n
[1][40] = 4.51e-10;
1417 I_g_on_n
[1][50] = 4.51e-10;
1418 I_g_on_n
[1][60] = 4.51e-10;
1419 I_g_on_n
[1][70] = 4.51e-10;
1420 I_g_on_n
[1][80] = 4.51e-10;
1421 I_g_on_n
[1][90] = 4.51e-10;
1422 I_g_on_n
[1][100] = 4.51e-10;
1427 Lelec
[2] = 0.00604;//Lelec is the electrical gate-length.
1428 t_ox
[2] = 0.8e-3;//micron
1429 v_th
[2] = 0.2315;//V
1430 c_ox
[2] = 2.87e-14;//F/micron2
1431 mobility_eff
[2] = 698.37 * (1e-2 * 1e6
* 1e-2 * 1e6
); //micron2 / Vs
1432 Vdsat
[2] = 1.81e-2; //V/micron
1433 c_g_ideal
[2] = 3.16e-16;//F/micron
1434 c_fringe
[2] = 0.08e-15;
1435 c_junc
[2] = 0;//F/micron2 This is Cj0 not Cjunc in MASTAR results->Dynamic Tab
1436 I_on_n
[2] = 916.1e-6;//A/micron
1437 I_on_p
[2] = I_on_n
[2] / 2;
1438 nmos_effective_resistance_multiplier
= 1.73;
1439 n_to_p_eff_curr_drv_ratio
[2] = 2;
1440 gmp_to_gmn_multiplier
[2] = 1.11;
1441 Rnchannelon
[2] = nmos_effective_resistance_multiplier
* vdd
[2] / I_on_n
[2];//ohm-micron
1442 Rpchannelon
[2] = n_to_p_eff_curr_drv_ratio
[2] * Rnchannelon
[2];//ohm-micron
1443 long_channel_leakage_reduction
[2] = 1/2.38;
1445 I_off_n
[2][0] = 1.31e-8;
1446 I_off_n
[2][10] = 2.60e-8;
1447 I_off_n
[2][20] = 5.14e-8;
1448 I_off_n
[2][30] = 1.02e-7;
1449 I_off_n
[2][40] = 2.02e-7;
1450 I_off_n
[2][50] = 3.99e-7;
1451 I_off_n
[2][60] = 7.91e-7;
1452 I_off_n
[2][70] = 1.09e-6;
1453 I_off_n
[2][80] = 2.09e-6;
1454 I_off_n
[2][90] = 4.04e-6;
1455 I_off_n
[2][100]= 4.48e-6;
1457 I_g_on_n
[2][0] = 2.74e-9;//A/micron
1458 I_g_on_n
[2][10] = 2.74e-9;
1459 I_g_on_n
[2][20] = 2.74e-9;
1460 I_g_on_n
[2][30] = 2.74e-9;
1461 I_g_on_n
[2][40] = 2.74e-9;
1462 I_g_on_n
[2][50] = 2.74e-9;
1463 I_g_on_n
[2][60] = 2.74e-9;
1464 I_g_on_n
[2][70] = 2.74e-9;
1465 I_g_on_n
[2][80] = 2.74e-9;
1466 I_g_on_n
[2][90] = 2.74e-9;
1467 I_g_on_n
[2][100] = 2.74e-9;
1471 if (ram_cell_tech_type
== 3)
1473 else if (ram_cell_tech_type
== 4)
1475 //22 nm commodity DRAM cell access transistor technology parameters.
1477 curr_vdd_dram_cell
= 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In
1478 //2005 ITRS, the value was about twice the value in 2007 ITRS
1479 Lphy
[3] = 0.022;//micron
1480 Lelec
[3] = 0.0181;//micron.
1481 curr_v_th_dram_access_transistor
= 1;//V
1482 width_dram_access_transistor
= 0.022;//micron
1483 curr_I_on_dram_cell
= 20e-6; //This is a typical value that I have always
1484 //kept constant. In reality this could perhaps be lower
1485 curr_I_off_dram_cell_worst_case_length_temp
= 1e-15;//A
1486 curr_Wmemcella_dram
= width_dram_access_transistor
;
1487 curr_Wmemcellpmos_dram
= 0;
1488 curr_Wmemcellnmos_dram
= 0;
1489 curr_area_cell_dram
= 6*0.022*0.022;//micron2.
1490 curr_asp_ratio_cell_dram
= 0.667;
1491 curr_c_dram_cell
= 30e-15;//This is a typical value that I have alwaus
1494 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR.
1495 curr_vpp
= 2.3;//vpp. V
1496 t_ox
[3] = 3.5e-3;//micron
1498 c_ox
[3] = 9.06e-15;//F/micron2
1499 mobility_eff
[3] = 367.29 * (1e-2 * 1e6
* 1e-2 * 1e6
);//micron2 / Vs
1500 Vdsat
[3] = 0.0972; //V/micron
1501 c_g_ideal
[3] = 1.99e-16;//F/micron
1502 c_fringe
[3] = 0.053e-15;//F/micron
1503 c_junc
[3] = 1e-15;//F/micron2
1504 I_on_n
[3] = 910.5e-6;//A/micron
1505 I_on_p
[3] = I_on_n
[3] / 2;//This value for I_on_p is not really used.
1506 nmos_effective_resistance_multiplier
= 1.69;//Using the value from 32nm.
1508 n_to_p_eff_curr_drv_ratio
[3] = 1.95;//Using the value from 32nm
1509 gmp_to_gmn_multiplier
[3] = 0.90;
1510 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];//ohm-micron
1511 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];//ohm-micron
1512 long_channel_leakage_reduction
[3] = 1;
1513 I_off_n
[3][0] = 1.1e-13; //A/micron
1514 I_off_n
[3][10] = 2.11e-13;
1515 I_off_n
[3][20] = 3.88e-13;
1516 I_off_n
[3][30] = 6.9e-13;
1517 I_off_n
[3][40] = 1.19e-12;
1518 I_off_n
[3][50] = 1.98e-12;
1519 I_off_n
[3][60] = 3.22e-12;
1520 I_off_n
[3][70] = 5.09e-12;
1521 I_off_n
[3][80] = 7.85e-12;
1522 I_off_n
[3][90] = 1.18e-11;
1523 I_off_n
[3][100] = 1.72e-11;
1528 //some error handler
1531 //SRAM cell properties
1532 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
1533 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
1534 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
1535 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1536 curr_asp_ratio_cell_sram
= 1.46;
1537 //CAM cell properties //TODO: data need to be revisited
1538 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
1539 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
1540 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
1541 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1542 curr_asp_ratio_cell_cam
= 2.92;
1543 //Empirical undifferetiated core/FU coefficient
1544 curr_logic_scaling_co_eff
= 0.7*0.7*0.7*0.7;
1545 curr_core_tx_density
= 1.25/0.7/0.7;
1546 curr_sckt_co_eff
= 1.1296;
1547 curr_chip_layout_overhead
= 1.2;//die measurement results based on Niagara 1 and 2
1548 curr_macro_layout_overhead
= 1.1;//EDA placement and routing tool rule of thumb
1552 //For 2019, MPU/ASIC stagger-contacted M1 half-pitch is 16 nm (so this is 16 nm
1553 //technology i.e. FEATURESIZE = 0.016). Using the DG process numbers for HP.
1556 Lphy
[0] = 0.006;//Lphy is the physical gate-length.
1557 Lelec
[0] = 0.00315;//Lelec is the electrical gate-length.
1558 t_ox
[0] = 0.5e-3;//micron
1559 v_th
[0] = 0.1489;//V
1560 c_ox
[0] = 3.83e-14;//F/micron2 Cox_elec in MASTAR
1561 mobility_eff
[0] = 476.15 * (1e-2 * 1e6
* 1e-2 * 1e6
); //micron2 / Vs
1562 Vdsat
[0] = 1.42e-2; //V/micron calculated in spreadsheet
1563 c_g_ideal
[0] = 2.30e-16;//F/micron
1564 c_fringe
[0] = 0.06e-15;//F/micron MASTAR inputdynamic/3
1565 c_junc
[0] = 0;//F/micron2 MASTAR result dynamic
1566 I_on_n
[0] = 2768.4e-6;//A/micron
1567 I_on_p
[0] = I_on_n
[0] / 2;//A/micron //This value for I_on_p is not really used.
1568 nmos_effective_resistance_multiplier
= 1.48;//nmos_effective_resistance_multiplier is the ratio of Ieff to Idsat where Ieff is the effective NMOS current and Idsat is the saturation current.
1569 n_to_p_eff_curr_drv_ratio
[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in
1570 //"Dynamic" tab of Device workspace.
1571 gmp_to_gmn_multiplier
[0] = 1.38; //Just using the 32nm SOI value.
1572 Rnchannelon
[0] = nmos_effective_resistance_multiplier
* vdd
[0] / I_on_n
[0];//ohm-micron
1573 Rpchannelon
[0] = n_to_p_eff_curr_drv_ratio
[0] * Rnchannelon
[0];//ohm-micron
1574 long_channel_leakage_reduction
[0] = 1/2.655;
1575 I_off_n
[0][0] = 1.52e-7/1.5*1.2*1.07;
1576 I_off_n
[0][10] = 1.55e-7/1.5*1.2*1.07;
1577 I_off_n
[0][20] = 1.59e-7/1.5*1.2*1.07;
1578 I_off_n
[0][30] = 1.68e-7/1.5*1.2*1.07;
1579 I_off_n
[0][40] = 1.90e-7/1.5*1.2*1.07;
1580 I_off_n
[0][50] = 2.69e-7/1.5*1.2*1.07;
1581 I_off_n
[0][60] = 5.32e-7/1.5*1.2*1.07;
1582 I_off_n
[0][70] = 1.02e-6/1.5*1.2*1.07;
1583 I_off_n
[0][80] = 1.62e-6/1.5*1.2*1.07;
1584 I_off_n
[0][90] = 2.73e-6/1.5*1.2*1.07;
1585 I_off_n
[0][100] = 6.1e-6/1.5*1.2*1.07;
1587 I_g_on_n
[0][0] = 1.07e-9;//A/micron
1588 I_g_on_n
[0][10] = 1.07e-9;
1589 I_g_on_n
[0][20] = 1.07e-9;
1590 I_g_on_n
[0][30] = 1.07e-9;
1591 I_g_on_n
[0][40] = 1.07e-9;
1592 I_g_on_n
[0][50] = 1.07e-9;
1593 I_g_on_n
[0][60] = 1.07e-9;
1594 I_g_on_n
[0][70] = 1.07e-9;
1595 I_g_on_n
[0][80] = 1.07e-9;
1596 I_g_on_n
[0][90] = 1.07e-9;
1597 I_g_on_n
[0][100] = 1.07e-9;
1602 // Lelec[1] = 0.008;//Lelec is the electrical gate-length.
1603 // t_ox[1] = 1.1e-3;//micron
1604 // v_th[1] = 0.40126;//V
1605 // c_ox[1] = 2.30e-14;//F/micron2
1606 // mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1607 // Vdsat[1] = 6.64e-2; //V/micron
1608 // c_g_ideal[1] = 3.22e-16;//F/micron
1609 // c_fringe[1] = 0.008e-15;
1610 // c_junc[1] = 0;//F/micron2
1611 // I_on_n[1] = 727.6e-6;//A/micron
1612 // I_on_p[1] = I_on_n[1] / 2;
1613 // nmos_effective_resistance_multiplier = 1.99;
1614 // n_to_p_eff_curr_drv_ratio[1] = 2;
1615 // gmp_to_gmn_multiplier[1] = 0.99;
1616 // Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron
1617 // Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron
1618 // I_off_n[1][0] = 2.43e-11;
1619 // I_off_n[1][10] = 4.85e-11;
1620 // I_off_n[1][20] = 9.68e-11;
1621 // I_off_n[1][30] = 1.94e-10;
1622 // I_off_n[1][40] = 3.87e-10;
1623 // I_off_n[1][50] = 7.73e-10;
1624 // I_off_n[1][60] = 3.55e-10;
1625 // I_off_n[1][70] = 3.09e-9;
1626 // I_off_n[1][80] = 6.19e-9;
1627 // I_off_n[1][90] = 1.24e-8;
1628 // I_off_n[1][100]= 2.48e-8;
1630 // // for 22nm LSTP HP
1631 // I_g_on_n[1][0] = 4.51e-10;//A/micron
1632 // I_g_on_n[1][10] = 4.51e-10;
1633 // I_g_on_n[1][20] = 4.51e-10;
1634 // I_g_on_n[1][30] = 4.51e-10;
1635 // I_g_on_n[1][40] = 4.51e-10;
1636 // I_g_on_n[1][50] = 4.51e-10;
1637 // I_g_on_n[1][60] = 4.51e-10;
1638 // I_g_on_n[1][70] = 4.51e-10;
1639 // I_g_on_n[1][80] = 4.51e-10;
1640 // I_g_on_n[1][90] = 4.51e-10;
1641 // I_g_on_n[1][100] = 4.51e-10;
1644 if (ram_cell_tech_type
== 3)
1646 else if (ram_cell_tech_type
== 4)
1648 //22 nm commodity DRAM cell access transistor technology parameters.
1650 curr_vdd_dram_cell
= 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In
1651 //2005 ITRS, the value was about twice the value in 2007 ITRS
1652 Lphy
[3] = 0.022;//micron
1653 Lelec
[3] = 0.0181;//micron.
1654 curr_v_th_dram_access_transistor
= 1;//V
1655 width_dram_access_transistor
= 0.022;//micron
1656 curr_I_on_dram_cell
= 20e-6; //This is a typical value that I have always
1657 //kept constant. In reality this could perhaps be lower
1658 curr_I_off_dram_cell_worst_case_length_temp
= 1e-15;//A
1659 curr_Wmemcella_dram
= width_dram_access_transistor
;
1660 curr_Wmemcellpmos_dram
= 0;
1661 curr_Wmemcellnmos_dram
= 0;
1662 curr_area_cell_dram
= 6*0.022*0.022;//micron2.
1663 curr_asp_ratio_cell_dram
= 0.667;
1664 curr_c_dram_cell
= 30e-15;//This is a typical value that I have alwaus
1667 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR.
1668 curr_vpp
= 2.3;//vpp. V
1669 t_ox
[3] = 3.5e-3;//micron
1671 c_ox
[3] = 9.06e-15;//F/micron2
1672 mobility_eff
[3] = 367.29 * (1e-2 * 1e6
* 1e-2 * 1e6
);//micron2 / Vs
1673 Vdsat
[3] = 0.0972; //V/micron
1674 c_g_ideal
[3] = 1.99e-16;//F/micron
1675 c_fringe
[3] = 0.053e-15;//F/micron
1676 c_junc
[3] = 1e-15;//F/micron2
1677 I_on_n
[3] = 910.5e-6;//A/micron
1678 I_on_p
[3] = I_on_n
[3] / 2;//This value for I_on_p is not really used.
1679 nmos_effective_resistance_multiplier
= 1.69;//Using the value from 32nm.
1681 n_to_p_eff_curr_drv_ratio
[3] = 1.95;//Using the value from 32nm
1682 gmp_to_gmn_multiplier
[3] = 0.90;
1683 Rnchannelon
[3] = nmos_effective_resistance_multiplier
* curr_vpp
/ I_on_n
[3];//ohm-micron
1684 Rpchannelon
[3] = n_to_p_eff_curr_drv_ratio
[3] * Rnchannelon
[3];//ohm-micron
1685 long_channel_leakage_reduction
[3] = 1;
1686 I_off_n
[3][0] = 1.1e-13; //A/micron
1687 I_off_n
[3][10] = 2.11e-13;
1688 I_off_n
[3][20] = 3.88e-13;
1689 I_off_n
[3][30] = 6.9e-13;
1690 I_off_n
[3][40] = 1.19e-12;
1691 I_off_n
[3][50] = 1.98e-12;
1692 I_off_n
[3][60] = 3.22e-12;
1693 I_off_n
[3][70] = 5.09e-12;
1694 I_off_n
[3][80] = 7.85e-12;
1695 I_off_n
[3][90] = 1.18e-11;
1696 I_off_n
[3][100] = 1.72e-11;
1701 //some error handler
1704 //SRAM cell properties
1705 curr_Wmemcella_sram
= 1.31 * g_ip
->F_sz_um
;
1706 curr_Wmemcellpmos_sram
= 1.23 * g_ip
->F_sz_um
;
1707 curr_Wmemcellnmos_sram
= 2.08 * g_ip
->F_sz_um
;
1708 curr_area_cell_sram
= 146 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1709 curr_asp_ratio_cell_sram
= 1.46;
1710 //CAM cell properties //TODO: data need to be revisited
1711 curr_Wmemcella_cam
= 1.31 * g_ip
->F_sz_um
;
1712 curr_Wmemcellpmos_cam
= 1.23 * g_ip
->F_sz_um
;
1713 curr_Wmemcellnmos_cam
= 2.08 * g_ip
->F_sz_um
;
1714 curr_area_cell_cam
= 292 * g_ip
->F_sz_um
* g_ip
->F_sz_um
;
1715 curr_asp_ratio_cell_cam
= 2.92;
1716 //Empirical undifferetiated core/FU coefficient
1717 curr_logic_scaling_co_eff
= 0.7*0.7*0.7*0.7*0.7;
1718 curr_core_tx_density
= 1.25/0.7/0.7/0.7;
1719 curr_sckt_co_eff
= 1.1296;
1720 curr_chip_layout_overhead
= 1.2;//die measurement results based on Niagara 1 and 2
1721 curr_macro_layout_overhead
= 1.1;//EDA placement and routing tool rule of thumb
1725 g_tp
.peri_global
.Vdd
+= curr_alpha
* vdd
[peri_global_tech_type
];
1726 g_tp
.peri_global
.t_ox
+= curr_alpha
* t_ox
[peri_global_tech_type
];
1727 g_tp
.peri_global
.Vth
+= curr_alpha
* v_th
[peri_global_tech_type
];
1728 g_tp
.peri_global
.C_ox
+= curr_alpha
* c_ox
[peri_global_tech_type
];
1729 g_tp
.peri_global
.C_g_ideal
+= curr_alpha
* c_g_ideal
[peri_global_tech_type
];
1730 g_tp
.peri_global
.C_fringe
+= curr_alpha
* c_fringe
[peri_global_tech_type
];
1731 g_tp
.peri_global
.C_junc
+= curr_alpha
* c_junc
[peri_global_tech_type
];
1732 g_tp
.peri_global
.C_junc_sidewall
= 0.25e-15; // F/micron
1733 g_tp
.peri_global
.l_phy
+= curr_alpha
* Lphy
[peri_global_tech_type
];
1734 g_tp
.peri_global
.l_elec
+= curr_alpha
* Lelec
[peri_global_tech_type
];
1735 g_tp
.peri_global
.I_on_n
+= curr_alpha
* I_on_n
[peri_global_tech_type
];
1736 g_tp
.peri_global
.R_nch_on
+= curr_alpha
* Rnchannelon
[peri_global_tech_type
];
1737 g_tp
.peri_global
.R_pch_on
+= curr_alpha
* Rpchannelon
[peri_global_tech_type
];
1738 g_tp
.peri_global
.n_to_p_eff_curr_drv_ratio
1739 += curr_alpha
* n_to_p_eff_curr_drv_ratio
[peri_global_tech_type
];
1740 g_tp
.peri_global
.long_channel_leakage_reduction
1741 += curr_alpha
* long_channel_leakage_reduction
[peri_global_tech_type
];
1742 g_tp
.peri_global
.I_off_n
+= curr_alpha
* I_off_n
[peri_global_tech_type
][g_ip
->temp
- 300];
1743 g_tp
.peri_global
.I_off_p
+= curr_alpha
* I_off_n
[peri_global_tech_type
][g_ip
->temp
- 300];
1744 g_tp
.peri_global
.I_g_on_n
+= curr_alpha
* I_g_on_n
[peri_global_tech_type
][g_ip
->temp
- 300];
1745 g_tp
.peri_global
.I_g_on_p
+= curr_alpha
* I_g_on_n
[peri_global_tech_type
][g_ip
->temp
- 300];
1746 gmp_to_gmn_multiplier_periph_global
+= curr_alpha
* gmp_to_gmn_multiplier
[peri_global_tech_type
];
1748 g_tp
.sram_cell
.Vdd
+= curr_alpha
* vdd
[ram_cell_tech_type
];
1749 g_tp
.sram_cell
.l_phy
+= curr_alpha
* Lphy
[ram_cell_tech_type
];
1750 g_tp
.sram_cell
.l_elec
+= curr_alpha
* Lelec
[ram_cell_tech_type
];
1751 g_tp
.sram_cell
.t_ox
+= curr_alpha
* t_ox
[ram_cell_tech_type
];
1752 g_tp
.sram_cell
.Vth
+= curr_alpha
* v_th
[ram_cell_tech_type
];
1753 g_tp
.sram_cell
.C_g_ideal
+= curr_alpha
* c_g_ideal
[ram_cell_tech_type
];
1754 g_tp
.sram_cell
.C_fringe
+= curr_alpha
* c_fringe
[ram_cell_tech_type
];
1755 g_tp
.sram_cell
.C_junc
+= curr_alpha
* c_junc
[ram_cell_tech_type
];
1756 g_tp
.sram_cell
.C_junc_sidewall
= 0.25e-15; // F/micron
1757 g_tp
.sram_cell
.I_on_n
+= curr_alpha
* I_on_n
[ram_cell_tech_type
];
1758 g_tp
.sram_cell
.R_nch_on
+= curr_alpha
* Rnchannelon
[ram_cell_tech_type
];
1759 g_tp
.sram_cell
.R_pch_on
+= curr_alpha
* Rpchannelon
[ram_cell_tech_type
];
1760 g_tp
.sram_cell
.n_to_p_eff_curr_drv_ratio
+= curr_alpha
* n_to_p_eff_curr_drv_ratio
[ram_cell_tech_type
];
1761 g_tp
.sram_cell
.long_channel_leakage_reduction
+= curr_alpha
* long_channel_leakage_reduction
[ram_cell_tech_type
];
1762 g_tp
.sram_cell
.I_off_n
+= curr_alpha
* I_off_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1763 g_tp
.sram_cell
.I_off_p
+= curr_alpha
* I_off_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1764 g_tp
.sram_cell
.I_g_on_n
+= curr_alpha
* I_g_on_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1765 g_tp
.sram_cell
.I_g_on_p
+= curr_alpha
* I_g_on_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1767 g_tp
.dram_cell_Vdd
+= curr_alpha
* curr_vdd_dram_cell
;
1768 g_tp
.dram_acc
.Vth
+= curr_alpha
* curr_v_th_dram_access_transistor
;
1769 g_tp
.dram_acc
.l_phy
+= curr_alpha
* Lphy
[dram_cell_tech_flavor
];
1770 g_tp
.dram_acc
.l_elec
+= curr_alpha
* Lelec
[dram_cell_tech_flavor
];
1771 g_tp
.dram_acc
.C_g_ideal
+= curr_alpha
* c_g_ideal
[dram_cell_tech_flavor
];
1772 g_tp
.dram_acc
.C_fringe
+= curr_alpha
* c_fringe
[dram_cell_tech_flavor
];
1773 g_tp
.dram_acc
.C_junc
+= curr_alpha
* c_junc
[dram_cell_tech_flavor
];
1774 g_tp
.dram_acc
.C_junc_sidewall
= 0.25e-15; // F/micron
1775 g_tp
.dram_cell_I_on
+= curr_alpha
* curr_I_on_dram_cell
;
1776 g_tp
.dram_cell_I_off_worst_case_len_temp
+= curr_alpha
* curr_I_off_dram_cell_worst_case_length_temp
;
1777 g_tp
.dram_acc
.I_on_n
+= curr_alpha
* I_on_n
[dram_cell_tech_flavor
];
1778 g_tp
.dram_cell_C
+= curr_alpha
* curr_c_dram_cell
;
1779 g_tp
.vpp
+= curr_alpha
* curr_vpp
;
1780 g_tp
.dram_wl
.l_phy
+= curr_alpha
* Lphy
[dram_cell_tech_flavor
];
1781 g_tp
.dram_wl
.l_elec
+= curr_alpha
* Lelec
[dram_cell_tech_flavor
];
1782 g_tp
.dram_wl
.C_g_ideal
+= curr_alpha
* c_g_ideal
[dram_cell_tech_flavor
];
1783 g_tp
.dram_wl
.C_fringe
+= curr_alpha
* c_fringe
[dram_cell_tech_flavor
];
1784 g_tp
.dram_wl
.C_junc
+= curr_alpha
* c_junc
[dram_cell_tech_flavor
];
1785 g_tp
.dram_wl
.C_junc_sidewall
= 0.25e-15; // F/micron
1786 g_tp
.dram_wl
.I_on_n
+= curr_alpha
* I_on_n
[dram_cell_tech_flavor
];
1787 g_tp
.dram_wl
.R_nch_on
+= curr_alpha
* Rnchannelon
[dram_cell_tech_flavor
];
1788 g_tp
.dram_wl
.R_pch_on
+= curr_alpha
* Rpchannelon
[dram_cell_tech_flavor
];
1789 g_tp
.dram_wl
.n_to_p_eff_curr_drv_ratio
+= curr_alpha
* n_to_p_eff_curr_drv_ratio
[dram_cell_tech_flavor
];
1790 g_tp
.dram_wl
.long_channel_leakage_reduction
+= curr_alpha
* long_channel_leakage_reduction
[dram_cell_tech_flavor
];
1791 g_tp
.dram_wl
.I_off_n
+= curr_alpha
* I_off_n
[dram_cell_tech_flavor
][g_ip
->temp
- 300];
1792 g_tp
.dram_wl
.I_off_p
+= curr_alpha
* I_off_n
[dram_cell_tech_flavor
][g_ip
->temp
- 300];
1794 g_tp
.cam_cell
.Vdd
+= curr_alpha
* vdd
[ram_cell_tech_type
];
1795 g_tp
.cam_cell
.l_phy
+= curr_alpha
* Lphy
[ram_cell_tech_type
];
1796 g_tp
.cam_cell
.l_elec
+= curr_alpha
* Lelec
[ram_cell_tech_type
];
1797 g_tp
.cam_cell
.t_ox
+= curr_alpha
* t_ox
[ram_cell_tech_type
];
1798 g_tp
.cam_cell
.Vth
+= curr_alpha
* v_th
[ram_cell_tech_type
];
1799 g_tp
.cam_cell
.C_g_ideal
+= curr_alpha
* c_g_ideal
[ram_cell_tech_type
];
1800 g_tp
.cam_cell
.C_fringe
+= curr_alpha
* c_fringe
[ram_cell_tech_type
];
1801 g_tp
.cam_cell
.C_junc
+= curr_alpha
* c_junc
[ram_cell_tech_type
];
1802 g_tp
.cam_cell
.C_junc_sidewall
= 0.25e-15; // F/micron
1803 g_tp
.cam_cell
.I_on_n
+= curr_alpha
* I_on_n
[ram_cell_tech_type
];
1804 g_tp
.cam_cell
.R_nch_on
+= curr_alpha
* Rnchannelon
[ram_cell_tech_type
];
1805 g_tp
.cam_cell
.R_pch_on
+= curr_alpha
* Rpchannelon
[ram_cell_tech_type
];
1806 g_tp
.cam_cell
.n_to_p_eff_curr_drv_ratio
+= curr_alpha
* n_to_p_eff_curr_drv_ratio
[ram_cell_tech_type
];
1807 g_tp
.cam_cell
.long_channel_leakage_reduction
+= curr_alpha
* long_channel_leakage_reduction
[ram_cell_tech_type
];
1808 g_tp
.cam_cell
.I_off_n
+= curr_alpha
* I_off_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1809 g_tp
.cam_cell
.I_off_p
+= curr_alpha
* I_off_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1810 g_tp
.cam_cell
.I_g_on_n
+= curr_alpha
* I_g_on_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1811 g_tp
.cam_cell
.I_g_on_p
+= curr_alpha
* I_g_on_n
[ram_cell_tech_type
][g_ip
->temp
- 300];
1813 g_tp
.dram
.cell_a_w
+= curr_alpha
* curr_Wmemcella_dram
;
1814 g_tp
.dram
.cell_pmos_w
+= curr_alpha
* curr_Wmemcellpmos_dram
;
1815 g_tp
.dram
.cell_nmos_w
+= curr_alpha
* curr_Wmemcellnmos_dram
;
1816 area_cell_dram
+= curr_alpha
* curr_area_cell_dram
;
1817 asp_ratio_cell_dram
+= curr_alpha
* curr_asp_ratio_cell_dram
;
1819 g_tp
.sram
.cell_a_w
+= curr_alpha
* curr_Wmemcella_sram
;
1820 g_tp
.sram
.cell_pmos_w
+= curr_alpha
* curr_Wmemcellpmos_sram
;
1821 g_tp
.sram
.cell_nmos_w
+= curr_alpha
* curr_Wmemcellnmos_sram
;
1822 area_cell_sram
+= curr_alpha
* curr_area_cell_sram
;
1823 asp_ratio_cell_sram
+= curr_alpha
* curr_asp_ratio_cell_sram
;
1825 g_tp
.cam
.cell_a_w
+= curr_alpha
* curr_Wmemcella_cam
;//sheng
1826 g_tp
.cam
.cell_pmos_w
+= curr_alpha
* curr_Wmemcellpmos_cam
;
1827 g_tp
.cam
.cell_nmos_w
+= curr_alpha
* curr_Wmemcellnmos_cam
;
1828 area_cell_cam
+= curr_alpha
* curr_area_cell_cam
;
1829 asp_ratio_cell_cam
+= curr_alpha
* curr_asp_ratio_cell_cam
;
1831 //Sense amplifier latch Gm calculation
1832 mobility_eff_periph_global
+= curr_alpha
* mobility_eff
[peri_global_tech_type
];
1833 Vdsat_periph_global
+= curr_alpha
* Vdsat
[peri_global_tech_type
];
1835 //Empirical undifferetiated core/FU coefficient
1836 g_tp
.scaling_factor
.logic_scaling_co_eff
+= curr_alpha
* curr_logic_scaling_co_eff
;
1837 g_tp
.scaling_factor
.core_tx_density
+= curr_alpha
* curr_core_tx_density
;
1838 g_tp
.chip_layout_overhead
+= curr_alpha
* curr_chip_layout_overhead
;
1839 g_tp
.macro_layout_overhead
+= curr_alpha
* curr_macro_layout_overhead
;
1840 g_tp
.sckt_co_eff
+= curr_alpha
* curr_sckt_co_eff
;
1844 //Currently we are not modeling the resistance/capacitance of poly anywhere.
1845 //Continuous function (or date have been processed) does not need linear interpolation
1846 g_tp
.w_comp_inv_p1
= 12.5 * g_ip
->F_sz_um
;//this was 10 micron for the 0.8 micron process
1847 g_tp
.w_comp_inv_n1
= 7.5 * g_ip
->F_sz_um
;//this was 6 micron for the 0.8 micron process
1848 g_tp
.w_comp_inv_p2
= 25 * g_ip
->F_sz_um
;//this was 20 micron for the 0.8 micron process
1849 g_tp
.w_comp_inv_n2
= 15 * g_ip
->F_sz_um
;//this was 12 micron for the 0.8 micron process
1850 g_tp
.w_comp_inv_p3
= 50 * g_ip
->F_sz_um
;//this was 40 micron for the 0.8 micron process
1851 g_tp
.w_comp_inv_n3
= 30 * g_ip
->F_sz_um
;//this was 24 micron for the 0.8 micron process
1852 g_tp
.w_eval_inv_p
= 100 * g_ip
->F_sz_um
;//this was 80 micron for the 0.8 micron process
1853 g_tp
.w_eval_inv_n
= 50 * g_ip
->F_sz_um
;//this was 40 micron for the 0.8 micron process
1854 g_tp
.w_comp_n
= 12.5 * g_ip
->F_sz_um
;//this was 10 micron for the 0.8 micron process
1855 g_tp
.w_comp_p
= 37.5 * g_ip
->F_sz_um
;//this was 30 micron for the 0.8 micron process
1857 g_tp
.MIN_GAP_BET_P_AND_N_DIFFS
= 5 * g_ip
->F_sz_um
;
1858 g_tp
.MIN_GAP_BET_SAME_TYPE_DIFFS
= 1.5 * g_ip
->F_sz_um
;
1859 g_tp
.HPOWERRAIL
= 2 * g_ip
->F_sz_um
;
1860 g_tp
.cell_h_def
= 50 * g_ip
->F_sz_um
;
1861 g_tp
.w_poly_contact
= g_ip
->F_sz_um
;
1862 g_tp
.spacing_poly_to_contact
= g_ip
->F_sz_um
;
1863 g_tp
.spacing_poly_to_poly
= 1.5 * g_ip
->F_sz_um
;
1864 g_tp
.ram_wl_stitching_overhead_
= 7.5 * g_ip
->F_sz_um
;
1866 g_tp
.min_w_nmos_
= 3 * g_ip
->F_sz_um
/ 2;
1867 g_tp
.max_w_nmos_
= 100 * g_ip
->F_sz_um
;
1868 g_tp
.w_iso
= 12.5*g_ip
->F_sz_um
;//was 10 micron for the 0.8 micron process
1869 g_tp
.w_sense_n
= 3.75*g_ip
->F_sz_um
; // sense amplifier N-trans; was 3 micron for the 0.8 micron process
1870 g_tp
.w_sense_p
= 7.5*g_ip
->F_sz_um
; // sense amplifier P-trans; was 6 micron for the 0.8 micron process
1871 g_tp
.w_sense_en
= 5*g_ip
->F_sz_um
; // Sense enable transistor of the sense amplifier; was 4 micron for the 0.8 micron process
1872 g_tp
.w_nmos_b_mux
= 6 * g_tp
.min_w_nmos_
;
1873 g_tp
.w_nmos_sa_mux
= 6 * g_tp
.min_w_nmos_
;
1875 if (ram_cell_tech_type
== comm_dram
)
1877 g_tp
.max_w_nmos_dec
= 8 * g_ip
->F_sz_um
;
1878 g_tp
.h_dec
= 8; // in the unit of memory cell height
1882 g_tp
.max_w_nmos_dec
= g_tp
.max_w_nmos_
;
1883 g_tp
.h_dec
= 4; // in the unit of memory cell height
1886 g_tp
.peri_global
.C_overlap
= 0.2 * g_tp
.peri_global
.C_g_ideal
;
1887 g_tp
.sram_cell
.C_overlap
= 0.2 * g_tp
.sram_cell
.C_g_ideal
;
1888 g_tp
.cam_cell
.C_overlap
= 0.2 * g_tp
.cam_cell
.C_g_ideal
;
1890 g_tp
.dram_acc
.C_overlap
= 0.2 * g_tp
.dram_acc
.C_g_ideal
;
1891 g_tp
.dram_acc
.R_nch_on
= g_tp
.dram_cell_Vdd
/ g_tp
.dram_acc
.I_on_n
;
1892 //g_tp.dram_acc.R_pch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_p;
1894 g_tp
.dram_wl
.C_overlap
= 0.2 * g_tp
.dram_wl
.C_g_ideal
;
1896 double gmn_sense_amp_latch
= (mobility_eff_periph_global
/ 2) * g_tp
.peri_global
.C_ox
* (g_tp
.w_sense_n
/ g_tp
.peri_global
.l_elec
) * Vdsat_periph_global
;
1897 double gmp_sense_amp_latch
= gmp_to_gmn_multiplier_periph_global
* gmn_sense_amp_latch
;
1898 g_tp
.gm_sense_amp_latch
= gmn_sense_amp_latch
+ gmp_sense_amp_latch
;
1900 g_tp
.dram
.b_w
= sqrt(area_cell_dram
/ (asp_ratio_cell_dram
));
1901 g_tp
.dram
.b_h
= asp_ratio_cell_dram
* g_tp
.dram
.b_w
;
1902 g_tp
.sram
.b_w
= sqrt(area_cell_sram
/ (asp_ratio_cell_sram
));
1903 g_tp
.sram
.b_h
= asp_ratio_cell_sram
* g_tp
.sram
.b_w
;
1904 g_tp
.cam
.b_w
= sqrt(area_cell_cam
/ (asp_ratio_cell_cam
));//Sheng
1905 g_tp
.cam
.b_h
= asp_ratio_cell_cam
* g_tp
.cam
.b_w
;
1907 g_tp
.dram
.Vbitpre
= g_tp
.dram_cell_Vdd
;
1908 g_tp
.sram
.Vbitpre
= vdd
[ram_cell_tech_type
];
1909 g_tp
.cam
.Vbitpre
= vdd
[ram_cell_tech_type
];//Sheng
1910 pmos_to_nmos_sizing_r
= pmos_to_nmos_sz_ratio();
1911 g_tp
.w_pmos_bl_precharge
= 6 * pmos_to_nmos_sizing_r
* g_tp
.min_w_nmos_
;
1912 g_tp
.w_pmos_bl_eq
= pmos_to_nmos_sizing_r
* g_tp
.min_w_nmos_
;
1915 double wire_pitch
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1916 wire_r_per_micron
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1917 wire_c_per_micron
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1918 horiz_dielectric_constant
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1919 vert_dielectric_constant
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1920 aspect_ratio
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1921 miller_value
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
],
1922 ild_thickness
[NUMBER_INTERCONNECT_PROJECTION_TYPES
][NUMBER_WIRE_TYPES
];
1924 for (iter
=0; iter
<=1; ++iter
)
1926 // linear interpolation
1930 if (tech_lo
== tech_hi
)
1936 curr_alpha
= (technology
- tech_hi
)/(tech_lo
- tech_hi
);
1942 if (tech_lo
== tech_hi
)
1948 curr_alpha
= (tech_lo
- technology
)/(tech_lo
- tech_hi
);
1954 //Aggressive projections
1955 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;//micron
1956 aspect_ratio
[0][0] = 2.0;
1957 wire_width
= wire_pitch
[0][0] / 2; //micron
1958 wire_thickness
= aspect_ratio
[0][0] * wire_width
;//micron
1959 wire_spacing
= wire_pitch
[0][0] - wire_width
;//micron
1960 barrier_thickness
= 0.017;//micron
1961 dishing_thickness
= 0;//micron
1963 wire_r_per_micron
[0][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
1964 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);//ohm/micron
1965 ild_thickness
[0][0] = 0.75;//micron
1966 miller_value
[0][0] = 1.5;
1967 horiz_dielectric_constant
[0][0] = 2.709;
1968 vert_dielectric_constant
[0][0] = 3.9;
1969 fringe_cap
= 0.115e-15; //F/micron
1970 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
1971 ild_thickness
[0][0], miller_value
[0][0], horiz_dielectric_constant
[0][0],
1972 vert_dielectric_constant
[0][0],
1973 fringe_cap
);//F/micron.
1975 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;
1976 wire_width
= wire_pitch
[0][1] / 2;
1977 aspect_ratio
[0][1] = 2.4;
1978 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
1979 wire_spacing
= wire_pitch
[0][1] - wire_width
;
1980 wire_r_per_micron
[0][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
1981 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
1982 ild_thickness
[0][1] = 0.75;//micron
1983 miller_value
[0][1] = 1.5;
1984 horiz_dielectric_constant
[0][1] = 2.709;
1985 vert_dielectric_constant
[0][1] = 3.9;
1986 fringe_cap
= 0.115e-15; //F/micron
1987 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
1988 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1],
1989 vert_dielectric_constant
[0][1],
1992 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;
1993 aspect_ratio
[0][2] = 2.2;
1994 wire_width
= wire_pitch
[0][2] / 2;
1995 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
1996 wire_spacing
= wire_pitch
[0][2] - wire_width
;
1997 wire_r_per_micron
[0][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
1998 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
1999 ild_thickness
[0][2] = 1.5;
2000 miller_value
[0][2] = 1.5;
2001 horiz_dielectric_constant
[0][2] = 2.709;
2002 vert_dielectric_constant
[0][2] = 3.9;
2003 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2004 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2007 //Conservative projections
2008 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2009 aspect_ratio
[1][0]= 2.0;
2010 wire_width
= wire_pitch
[1][0] / 2;
2011 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2012 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2013 barrier_thickness
= 0.017;
2014 dishing_thickness
= 0;
2016 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2017 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2018 ild_thickness
[1][0] = 0.75;
2019 miller_value
[1][0] = 1.5;
2020 horiz_dielectric_constant
[1][0] = 3.038;
2021 vert_dielectric_constant
[1][0] = 3.9;
2022 fringe_cap
= 0.115e-15;
2023 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2024 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0],
2025 vert_dielectric_constant
[1][0],
2028 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2029 wire_width
= wire_pitch
[1][1] / 2;
2030 aspect_ratio
[1][1] = 2.0;
2031 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2032 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2033 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2034 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2035 ild_thickness
[1][1] = 0.75;
2036 miller_value
[1][1] = 1.5;
2037 horiz_dielectric_constant
[1][1] = 3.038;
2038 vert_dielectric_constant
[1][1] = 3.9;
2039 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2040 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1],
2041 vert_dielectric_constant
[1][1],
2044 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2045 aspect_ratio
[1][2] = 2.2;
2046 wire_width
= wire_pitch
[1][2] / 2;
2047 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2048 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2049 dishing_thickness
= 0.1 * wire_thickness
;
2050 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2051 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2052 ild_thickness
[1][2] = 1.98;
2053 miller_value
[1][2] = 1.5;
2054 horiz_dielectric_constant
[1][2] = 3.038;
2055 vert_dielectric_constant
[1][2] = 3.9;
2056 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2057 ild_thickness
[1][2] , miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2059 //Nominal projections for commodity DRAM wordline/bitline
2060 wire_pitch
[1][3] = 2 * 0.18;
2061 wire_c_per_micron
[1][3] = 60e-15 / (256 * 2 * 0.18);
2062 wire_r_per_micron
[1][3] = 12 / 0.18;
2064 else if (tech
== 90)
2066 //Aggressive projections
2067 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;//micron
2068 aspect_ratio
[0][0] = 2.4;
2069 wire_width
= wire_pitch
[0][0] / 2; //micron
2070 wire_thickness
= aspect_ratio
[0][0] * wire_width
;//micron
2071 wire_spacing
= wire_pitch
[0][0] - wire_width
;//micron
2072 barrier_thickness
= 0.01;//micron
2073 dishing_thickness
= 0;//micron
2075 wire_r_per_micron
[0][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2076 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);//ohm/micron
2077 ild_thickness
[0][0] = 0.48;//micron
2078 miller_value
[0][0] = 1.5;
2079 horiz_dielectric_constant
[0][0] = 2.709;
2080 vert_dielectric_constant
[0][0] = 3.9;
2081 fringe_cap
= 0.115e-15; //F/micron
2082 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2083 ild_thickness
[0][0], miller_value
[0][0], horiz_dielectric_constant
[0][0],
2084 vert_dielectric_constant
[0][0],
2085 fringe_cap
);//F/micron.
2087 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;
2088 wire_width
= wire_pitch
[0][1] / 2;
2089 aspect_ratio
[0][1] = 2.4;
2090 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
2091 wire_spacing
= wire_pitch
[0][1] - wire_width
;
2092 wire_r_per_micron
[0][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2093 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2094 ild_thickness
[0][1] = 0.48;//micron
2095 miller_value
[0][1] = 1.5;
2096 horiz_dielectric_constant
[0][1] = 2.709;
2097 vert_dielectric_constant
[0][1] = 3.9;
2098 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2099 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1],
2100 vert_dielectric_constant
[0][1],
2103 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;
2104 aspect_ratio
[0][2] = 2.7;
2105 wire_width
= wire_pitch
[0][2] / 2;
2106 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
2107 wire_spacing
= wire_pitch
[0][2] - wire_width
;
2108 wire_r_per_micron
[0][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2109 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2110 ild_thickness
[0][2] = 0.96;
2111 miller_value
[0][2] = 1.5;
2112 horiz_dielectric_constant
[0][2] = 2.709;
2113 vert_dielectric_constant
[0][2] = 3.9;
2114 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2115 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2118 //Conservative projections
2119 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2120 aspect_ratio
[1][0] = 2.0;
2121 wire_width
= wire_pitch
[1][0] / 2;
2122 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2123 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2124 barrier_thickness
= 0.008;
2125 dishing_thickness
= 0;
2127 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2128 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2129 ild_thickness
[1][0] = 0.48;
2130 miller_value
[1][0] = 1.5;
2131 horiz_dielectric_constant
[1][0] = 3.038;
2132 vert_dielectric_constant
[1][0] = 3.9;
2133 fringe_cap
= 0.115e-15;
2134 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2135 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0],
2136 vert_dielectric_constant
[1][0],
2139 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2140 wire_width
= wire_pitch
[1][1] / 2;
2141 aspect_ratio
[1][1] = 2.0;
2142 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2143 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2144 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2145 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2146 ild_thickness
[1][1] = 0.48;
2147 miller_value
[1][1] = 1.5;
2148 horiz_dielectric_constant
[1][1] = 3.038;
2149 vert_dielectric_constant
[1][1] = 3.9;
2150 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2151 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1],
2152 vert_dielectric_constant
[1][1],
2155 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2156 aspect_ratio
[1][2] = 2.2;
2157 wire_width
= wire_pitch
[1][2] / 2;
2158 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2159 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2160 dishing_thickness
= 0.1 * wire_thickness
;
2161 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2162 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2163 ild_thickness
[1][2] = 1.1;
2164 miller_value
[1][2] = 1.5;
2165 horiz_dielectric_constant
[1][2] = 3.038;
2166 vert_dielectric_constant
[1][2] = 3.9;
2167 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2168 ild_thickness
[1][2] , miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2170 //Nominal projections for commodity DRAM wordline/bitline
2171 wire_pitch
[1][3] = 2 * 0.09;
2172 wire_c_per_micron
[1][3] = 60e-15 / (256 * 2 * 0.09);
2173 wire_r_per_micron
[1][3] = 12 / 0.09;
2175 else if (tech
== 65)
2177 //Aggressive projections
2178 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;
2179 aspect_ratio
[0][0] = 2.7;
2180 wire_width
= wire_pitch
[0][0] / 2;
2181 wire_thickness
= aspect_ratio
[0][0] * wire_width
;
2182 wire_spacing
= wire_pitch
[0][0] - wire_width
;
2183 barrier_thickness
= 0;
2184 dishing_thickness
= 0;
2186 wire_r_per_micron
[0][0] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2187 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2188 ild_thickness
[0][0] = 0.405;
2189 miller_value
[0][0] = 1.5;
2190 horiz_dielectric_constant
[0][0] = 2.303;
2191 vert_dielectric_constant
[0][0] = 3.9;
2192 fringe_cap
= 0.115e-15;
2193 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2194 ild_thickness
[0][0] , miller_value
[0][0] , horiz_dielectric_constant
[0][0] , vert_dielectric_constant
[0][0] ,
2197 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;
2198 wire_width
= wire_pitch
[0][1] / 2;
2199 aspect_ratio
[0][1] = 2.7;
2200 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
2201 wire_spacing
= wire_pitch
[0][1] - wire_width
;
2202 wire_r_per_micron
[0][1] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2203 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2204 ild_thickness
[0][1] = 0.405;
2205 miller_value
[0][1] = 1.5;
2206 horiz_dielectric_constant
[0][1] = 2.303;
2207 vert_dielectric_constant
[0][1] = 3.9;
2208 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2209 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1],
2210 vert_dielectric_constant
[0][1],
2213 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;
2214 aspect_ratio
[0][2] = 2.8;
2215 wire_width
= wire_pitch
[0][2] / 2;
2216 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
2217 wire_spacing
= wire_pitch
[0][2] - wire_width
;
2218 wire_r_per_micron
[0][2] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2219 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2220 ild_thickness
[0][2] = 0.81;
2221 miller_value
[0][2] = 1.5;
2222 horiz_dielectric_constant
[0][2] = 2.303;
2223 vert_dielectric_constant
[0][2] = 3.9;
2224 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2225 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2228 //Conservative projections
2229 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2230 aspect_ratio
[1][0] = 2.0;
2231 wire_width
= wire_pitch
[1][0] / 2;
2232 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2233 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2234 barrier_thickness
= 0.006;
2235 dishing_thickness
= 0;
2237 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2238 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2239 ild_thickness
[1][0] = 0.405;
2240 miller_value
[1][0] = 1.5;
2241 horiz_dielectric_constant
[1][0] = 2.734;
2242 vert_dielectric_constant
[1][0] = 3.9;
2243 fringe_cap
= 0.115e-15;
2244 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2245 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0], vert_dielectric_constant
[1][0],
2248 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2249 wire_width
= wire_pitch
[1][1] / 2;
2250 aspect_ratio
[1][1] = 2.0;
2251 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2252 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2253 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2254 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2255 ild_thickness
[1][1] = 0.405;
2256 miller_value
[1][1] = 1.5;
2257 horiz_dielectric_constant
[1][1] = 2.734;
2258 vert_dielectric_constant
[1][1] = 3.9;
2259 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2260 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1], vert_dielectric_constant
[1][1],
2263 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2264 aspect_ratio
[1][2] = 2.2;
2265 wire_width
= wire_pitch
[1][2] / 2;
2266 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2267 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2268 dishing_thickness
= 0.1 * wire_thickness
;
2269 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2270 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2271 ild_thickness
[1][2] = 0.77;
2272 miller_value
[1][2] = 1.5;
2273 horiz_dielectric_constant
[1][2] = 2.734;
2274 vert_dielectric_constant
[1][2] = 3.9;
2275 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2276 ild_thickness
[1][2], miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2278 //Nominal projections for commodity DRAM wordline/bitline
2279 wire_pitch
[1][3] = 2 * 0.065;
2280 wire_c_per_micron
[1][3] = 52.5e-15 / (256 * 2 * 0.065);
2281 wire_r_per_micron
[1][3] = 12 / 0.065;
2283 else if (tech
== 45)
2285 //Aggressive projections.
2286 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;
2287 aspect_ratio
[0][0] = 3.0;
2288 wire_width
= wire_pitch
[0][0] / 2;
2289 wire_thickness
= aspect_ratio
[0][0] * wire_width
;
2290 wire_spacing
= wire_pitch
[0][0] - wire_width
;
2291 barrier_thickness
= 0;
2292 dishing_thickness
= 0;
2294 wire_r_per_micron
[0][0] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2295 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2296 ild_thickness
[0][0] = 0.315;
2297 miller_value
[0][0] = 1.5;
2298 horiz_dielectric_constant
[0][0] = 1.958;
2299 vert_dielectric_constant
[0][0] = 3.9;
2300 fringe_cap
= 0.115e-15;
2301 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2302 ild_thickness
[0][0] , miller_value
[0][0] , horiz_dielectric_constant
[0][0] , vert_dielectric_constant
[0][0] ,
2305 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;
2306 wire_width
= wire_pitch
[0][1] / 2;
2307 aspect_ratio
[0][1] = 3.0;
2308 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
2309 wire_spacing
= wire_pitch
[0][1] - wire_width
;
2310 wire_r_per_micron
[0][1] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2311 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2312 ild_thickness
[0][1] = 0.315;
2313 miller_value
[0][1] = 1.5;
2314 horiz_dielectric_constant
[0][1] = 1.958;
2315 vert_dielectric_constant
[0][1] = 3.9;
2316 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2317 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1], vert_dielectric_constant
[0][1],
2320 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;
2321 aspect_ratio
[0][2] = 3.0;
2322 wire_width
= wire_pitch
[0][2] / 2;
2323 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
2324 wire_spacing
= wire_pitch
[0][2] - wire_width
;
2325 wire_r_per_micron
[0][2] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2326 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2327 ild_thickness
[0][2] = 0.63;
2328 miller_value
[0][2] = 1.5;
2329 horiz_dielectric_constant
[0][2] = 1.958;
2330 vert_dielectric_constant
[0][2] = 3.9;
2331 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2332 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2335 //Conservative projections
2336 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2337 aspect_ratio
[1][0] = 2.0;
2338 wire_width
= wire_pitch
[1][0] / 2;
2339 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2340 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2341 barrier_thickness
= 0.004;
2342 dishing_thickness
= 0;
2344 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2345 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2346 ild_thickness
[1][0] = 0.315;
2347 miller_value
[1][0] = 1.5;
2348 horiz_dielectric_constant
[1][0] = 2.46;
2349 vert_dielectric_constant
[1][0] = 3.9;
2350 fringe_cap
= 0.115e-15;
2351 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2352 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0], vert_dielectric_constant
[1][0],
2355 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2356 wire_width
= wire_pitch
[1][1] / 2;
2357 aspect_ratio
[1][1] = 2.0;
2358 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2359 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2360 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2361 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2362 ild_thickness
[1][1] = 0.315;
2363 miller_value
[1][1] = 1.5;
2364 horiz_dielectric_constant
[1][1] = 2.46;
2365 vert_dielectric_constant
[1][1] = 3.9;
2366 fringe_cap
= 0.115e-15;
2367 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2368 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1], vert_dielectric_constant
[1][1],
2371 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2372 aspect_ratio
[1][2] = 2.2;
2373 wire_width
= wire_pitch
[1][2] / 2;
2374 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2375 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2376 dishing_thickness
= 0.1 * wire_thickness
;
2377 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2378 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2379 ild_thickness
[1][2] = 0.55;
2380 miller_value
[1][2] = 1.5;
2381 horiz_dielectric_constant
[1][2] = 2.46;
2382 vert_dielectric_constant
[1][2] = 3.9;
2383 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2384 ild_thickness
[1][2], miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2386 //Nominal projections for commodity DRAM wordline/bitline
2387 wire_pitch
[1][3] = 2 * 0.045;
2388 wire_c_per_micron
[1][3] = 37.5e-15 / (256 * 2 * 0.045);
2389 wire_r_per_micron
[1][3] = 12 / 0.045;
2391 else if (tech
== 32)
2393 //Aggressive projections.
2394 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;
2395 aspect_ratio
[0][0] = 3.0;
2396 wire_width
= wire_pitch
[0][0] / 2;
2397 wire_thickness
= aspect_ratio
[0][0] * wire_width
;
2398 wire_spacing
= wire_pitch
[0][0] - wire_width
;
2399 barrier_thickness
= 0;
2400 dishing_thickness
= 0;
2402 wire_r_per_micron
[0][0] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2403 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2404 ild_thickness
[0][0] = 0.21;
2405 miller_value
[0][0] = 1.5;
2406 horiz_dielectric_constant
[0][0] = 1.664;
2407 vert_dielectric_constant
[0][0] = 3.9;
2408 fringe_cap
= 0.115e-15;
2409 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2410 ild_thickness
[0][0], miller_value
[0][0], horiz_dielectric_constant
[0][0], vert_dielectric_constant
[0][0],
2413 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;
2414 wire_width
= wire_pitch
[0][1] / 2;
2415 aspect_ratio
[0][1] = 3.0;
2416 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
2417 wire_spacing
= wire_pitch
[0][1] - wire_width
;
2418 wire_r_per_micron
[0][1] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2419 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2420 ild_thickness
[0][1] = 0.21;
2421 miller_value
[0][1] = 1.5;
2422 horiz_dielectric_constant
[0][1] = 1.664;
2423 vert_dielectric_constant
[0][1] = 3.9;
2424 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2425 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1], vert_dielectric_constant
[0][1],
2428 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;
2429 aspect_ratio
[0][2] = 3.0;
2430 wire_width
= wire_pitch
[0][2] / 2;
2431 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
2432 wire_spacing
= wire_pitch
[0][2] - wire_width
;
2433 wire_r_per_micron
[0][2] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2434 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2435 ild_thickness
[0][2] = 0.42;
2436 miller_value
[0][2] = 1.5;
2437 horiz_dielectric_constant
[0][2] = 1.664;
2438 vert_dielectric_constant
[0][2] = 3.9;
2439 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2440 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2443 //Conservative projections
2444 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2445 aspect_ratio
[1][0] = 2.0;
2446 wire_width
= wire_pitch
[1][0] / 2;
2447 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2448 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2449 barrier_thickness
= 0.003;
2450 dishing_thickness
= 0;
2452 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2453 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2454 ild_thickness
[1][0] = 0.21;
2455 miller_value
[1][0] = 1.5;
2456 horiz_dielectric_constant
[1][0] = 2.214;
2457 vert_dielectric_constant
[1][0] = 3.9;
2458 fringe_cap
= 0.115e-15;
2459 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2460 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0], vert_dielectric_constant
[1][0],
2463 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2464 aspect_ratio
[1][1] = 2.0;
2465 wire_width
= wire_pitch
[1][1] / 2;
2466 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2467 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2468 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2469 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2470 ild_thickness
[1][1] = 0.21;
2471 miller_value
[1][1] = 1.5;
2472 horiz_dielectric_constant
[1][1] = 2.214;
2473 vert_dielectric_constant
[1][1] = 3.9;
2474 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2475 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1], vert_dielectric_constant
[1][1],
2478 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2479 aspect_ratio
[1][2] = 2.2;
2480 wire_width
= wire_pitch
[1][2] / 2;
2481 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2482 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2483 dishing_thickness
= 0.1 * wire_thickness
;
2484 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2485 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2486 ild_thickness
[1][2] = 0.385;
2487 miller_value
[1][2] = 1.5;
2488 horiz_dielectric_constant
[1][2] = 2.214;
2489 vert_dielectric_constant
[1][2] = 3.9;
2490 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2491 ild_thickness
[1][2], miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2493 //Nominal projections for commodity DRAM wordline/bitline
2494 wire_pitch
[1][3] = 2 * 0.032;//micron
2495 wire_c_per_micron
[1][3] = 31e-15 / (256 * 2 * 0.032);//F/micron
2496 wire_r_per_micron
[1][3] = 12 / 0.032;//ohm/micron
2498 else if (tech
== 22)
2500 //Aggressive projections.
2501 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;//local
2502 aspect_ratio
[0][0] = 3.0;
2503 wire_width
= wire_pitch
[0][0] / 2;
2504 wire_thickness
= aspect_ratio
[0][0] * wire_width
;
2505 wire_spacing
= wire_pitch
[0][0] - wire_width
;
2506 barrier_thickness
= 0;
2507 dishing_thickness
= 0;
2509 wire_r_per_micron
[0][0] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2510 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2511 ild_thickness
[0][0] = 0.15;
2512 miller_value
[0][0] = 1.5;
2513 horiz_dielectric_constant
[0][0] = 1.414;
2514 vert_dielectric_constant
[0][0] = 3.9;
2515 fringe_cap
= 0.115e-15;
2516 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2517 ild_thickness
[0][0], miller_value
[0][0], horiz_dielectric_constant
[0][0], vert_dielectric_constant
[0][0],
2520 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;//semi-global
2521 wire_width
= wire_pitch
[0][1] / 2;
2522 aspect_ratio
[0][1] = 3.0;
2523 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
2524 wire_spacing
= wire_pitch
[0][1] - wire_width
;
2525 wire_r_per_micron
[0][1] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2526 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2527 ild_thickness
[0][1] = 0.15;
2528 miller_value
[0][1] = 1.5;
2529 horiz_dielectric_constant
[0][1] = 1.414;
2530 vert_dielectric_constant
[0][1] = 3.9;
2531 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2532 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1], vert_dielectric_constant
[0][1],
2535 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;//global
2536 aspect_ratio
[0][2] = 3.0;
2537 wire_width
= wire_pitch
[0][2] / 2;
2538 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
2539 wire_spacing
= wire_pitch
[0][2] - wire_width
;
2540 wire_r_per_micron
[0][2] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2541 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2542 ild_thickness
[0][2] = 0.3;
2543 miller_value
[0][2] = 1.5;
2544 horiz_dielectric_constant
[0][2] = 1.414;
2545 vert_dielectric_constant
[0][2] = 3.9;
2546 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2547 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2550 // //*************************
2551 // wire_pitch[0][4] = 16 * g_ip.F_sz_um;//global
2552 // aspect_ratio = 3.0;
2553 // wire_width = wire_pitch[0][4] / 2;
2554 // wire_thickness = aspect_ratio * wire_width;
2555 // wire_spacing = wire_pitch[0][4] - wire_width;
2556 // wire_r_per_micron[0][4] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2557 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2558 // ild_thickness = 0.3;
2559 // wire_c_per_micron[0][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2560 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2563 // wire_pitch[0][5] = 24 * g_ip.F_sz_um;//global
2564 // aspect_ratio = 3.0;
2565 // wire_width = wire_pitch[0][5] / 2;
2566 // wire_thickness = aspect_ratio * wire_width;
2567 // wire_spacing = wire_pitch[0][5] - wire_width;
2568 // wire_r_per_micron[0][5] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2569 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2570 // ild_thickness = 0.3;
2571 // wire_c_per_micron[0][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2572 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2575 // wire_pitch[0][6] = 32 * g_ip.F_sz_um;//global
2576 // aspect_ratio = 3.0;
2577 // wire_width = wire_pitch[0][6] / 2;
2578 // wire_thickness = aspect_ratio * wire_width;
2579 // wire_spacing = wire_pitch[0][6] - wire_width;
2580 // wire_r_per_micron[0][6] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2581 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2582 // ild_thickness = 0.3;
2583 // wire_c_per_micron[0][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2584 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2586 //*************************
2588 //Conservative projections
2589 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2590 aspect_ratio
[1][0] = 2.0;
2591 wire_width
= wire_pitch
[1][0] / 2;
2592 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2593 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2594 barrier_thickness
= 0.003;
2595 dishing_thickness
= 0;
2596 alpha_scatter
= 1.05;
2597 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2598 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2599 ild_thickness
[1][0] = 0.15;
2600 miller_value
[1][0] = 1.5;
2601 horiz_dielectric_constant
[1][0] = 2.104;
2602 vert_dielectric_constant
[1][0] = 3.9;
2603 fringe_cap
= 0.115e-15;
2604 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2605 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0], vert_dielectric_constant
[1][0],
2608 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2609 wire_width
= wire_pitch
[1][1] / 2;
2610 aspect_ratio
[1][1] = 2.0;
2611 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2612 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2613 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2614 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2615 ild_thickness
[1][1] = 0.15;
2616 miller_value
[1][1] = 1.5;
2617 horiz_dielectric_constant
[1][1] = 2.104;
2618 vert_dielectric_constant
[1][1] = 3.9;
2619 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2620 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1], vert_dielectric_constant
[1][1],
2623 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2624 aspect_ratio
[1][2] = 2.2;
2625 wire_width
= wire_pitch
[1][2] / 2;
2626 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2627 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2628 dishing_thickness
= 0.1 * wire_thickness
;
2629 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2630 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2631 ild_thickness
[1][2] = 0.275;
2632 miller_value
[1][2] = 1.5;
2633 horiz_dielectric_constant
[1][2] = 2.104;
2634 vert_dielectric_constant
[1][2] = 3.9;
2635 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2636 ild_thickness
[1][2], miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2638 //Nominal projections for commodity DRAM wordline/bitline
2639 wire_pitch
[1][3] = 2 * 0.022;//micron
2640 wire_c_per_micron
[1][3] = 31e-15 / (256 * 2 * 0.022);//F/micron
2641 wire_r_per_micron
[1][3] = 12 / 0.022;//ohm/micron
2643 //******************
2644 // wire_pitch[1][4] = 16 * g_ip.F_sz_um;
2645 // aspect_ratio = 2.2;
2646 // wire_width = wire_pitch[1][4] / 2;
2647 // wire_thickness = aspect_ratio * wire_width;
2648 // wire_spacing = wire_pitch[1][4] - wire_width;
2649 // dishing_thickness = 0.1 * wire_thickness;
2650 // wire_r_per_micron[1][4] = wire_resistance(CU_RESISTIVITY, wire_width,
2651 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2652 // ild_thickness = 0.275;
2653 // wire_c_per_micron[1][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2654 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2657 // wire_pitch[1][5] = 24 * g_ip.F_sz_um;
2658 // aspect_ratio = 2.2;
2659 // wire_width = wire_pitch[1][5] / 2;
2660 // wire_thickness = aspect_ratio * wire_width;
2661 // wire_spacing = wire_pitch[1][5] - wire_width;
2662 // dishing_thickness = 0.1 * wire_thickness;
2663 // wire_r_per_micron[1][5] = wire_resistance(CU_RESISTIVITY, wire_width,
2664 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2665 // ild_thickness = 0.275;
2666 // wire_c_per_micron[1][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2667 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2670 // wire_pitch[1][6] = 32 * g_ip.F_sz_um;
2671 // aspect_ratio = 2.2;
2672 // wire_width = wire_pitch[1][6] / 2;
2673 // wire_thickness = aspect_ratio * wire_width;
2674 // wire_spacing = wire_pitch[1][6] - wire_width;
2675 // dishing_thickness = 0.1 * wire_thickness;
2676 // wire_r_per_micron[1][6] = wire_resistance(CU_RESISTIVITY, wire_width,
2677 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2678 // ild_thickness = 0.275;
2679 // wire_c_per_micron[1][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2680 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2684 else if (tech
== 16)
2686 //Aggressive projections.
2687 wire_pitch
[0][0] = 2.5 * g_ip
->F_sz_um
;//local
2688 aspect_ratio
[0][0] = 3.0;
2689 wire_width
= wire_pitch
[0][0] / 2;
2690 wire_thickness
= aspect_ratio
[0][0] * wire_width
;
2691 wire_spacing
= wire_pitch
[0][0] - wire_width
;
2692 barrier_thickness
= 0;
2693 dishing_thickness
= 0;
2695 wire_r_per_micron
[0][0] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2696 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2697 ild_thickness
[0][0] = 0.108;
2698 miller_value
[0][0] = 1.5;
2699 horiz_dielectric_constant
[0][0] = 1.202;
2700 vert_dielectric_constant
[0][0] = 3.9;
2701 fringe_cap
= 0.115e-15;
2702 wire_c_per_micron
[0][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2703 ild_thickness
[0][0], miller_value
[0][0], horiz_dielectric_constant
[0][0], vert_dielectric_constant
[0][0],
2706 wire_pitch
[0][1] = 4 * g_ip
->F_sz_um
;//semi-global
2707 aspect_ratio
[0][1] = 3.0;
2708 wire_width
= wire_pitch
[0][1] / 2;
2709 wire_thickness
= aspect_ratio
[0][1] * wire_width
;
2710 wire_spacing
= wire_pitch
[0][1] - wire_width
;
2711 wire_r_per_micron
[0][1] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2712 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2713 ild_thickness
[0][1] = 0.108;
2714 miller_value
[0][1] = 1.5;
2715 horiz_dielectric_constant
[0][1] = 1.202;
2716 vert_dielectric_constant
[0][1] = 3.9;
2717 wire_c_per_micron
[0][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2718 ild_thickness
[0][1], miller_value
[0][1], horiz_dielectric_constant
[0][1], vert_dielectric_constant
[0][1],
2721 wire_pitch
[0][2] = 8 * g_ip
->F_sz_um
;//global
2722 aspect_ratio
[0][2] = 3.0;
2723 wire_width
= wire_pitch
[0][2] / 2;
2724 wire_thickness
= aspect_ratio
[0][2] * wire_width
;
2725 wire_spacing
= wire_pitch
[0][2] - wire_width
;
2726 wire_r_per_micron
[0][2] = wire_resistance(BULK_CU_RESISTIVITY
, wire_width
,
2727 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2728 ild_thickness
[0][2] = 0.216;
2729 miller_value
[0][2] = 1.5;
2730 horiz_dielectric_constant
[0][2] = 1.202;
2731 vert_dielectric_constant
[0][2] = 3.9;
2732 wire_c_per_micron
[0][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2733 ild_thickness
[0][2], miller_value
[0][2], horiz_dielectric_constant
[0][2], vert_dielectric_constant
[0][2],
2736 // //*************************
2737 // wire_pitch[0][4] = 16 * g_ip.F_sz_um;//global
2738 // aspect_ratio = 3.0;
2739 // wire_width = wire_pitch[0][4] / 2;
2740 // wire_thickness = aspect_ratio * wire_width;
2741 // wire_spacing = wire_pitch[0][4] - wire_width;
2742 // wire_r_per_micron[0][4] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2743 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2744 // ild_thickness = 0.3;
2745 // wire_c_per_micron[0][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2746 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2749 // wire_pitch[0][5] = 24 * g_ip.F_sz_um;//global
2750 // aspect_ratio = 3.0;
2751 // wire_width = wire_pitch[0][5] / 2;
2752 // wire_thickness = aspect_ratio * wire_width;
2753 // wire_spacing = wire_pitch[0][5] - wire_width;
2754 // wire_r_per_micron[0][5] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2755 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2756 // ild_thickness = 0.3;
2757 // wire_c_per_micron[0][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2758 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2761 // wire_pitch[0][6] = 32 * g_ip.F_sz_um;//global
2762 // aspect_ratio = 3.0;
2763 // wire_width = wire_pitch[0][6] / 2;
2764 // wire_thickness = aspect_ratio * wire_width;
2765 // wire_spacing = wire_pitch[0][6] - wire_width;
2766 // wire_r_per_micron[0][6] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2767 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2768 // ild_thickness = 0.3;
2769 // wire_c_per_micron[0][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2770 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2772 //*************************
2774 //Conservative projections
2775 wire_pitch
[1][0] = 2.5 * g_ip
->F_sz_um
;
2776 aspect_ratio
[1][0] = 2.0;
2777 wire_width
= wire_pitch
[1][0] / 2;
2778 wire_thickness
= aspect_ratio
[1][0] * wire_width
;
2779 wire_spacing
= wire_pitch
[1][0] - wire_width
;
2780 barrier_thickness
= 0.002;
2781 dishing_thickness
= 0;
2782 alpha_scatter
= 1.05;
2783 wire_r_per_micron
[1][0] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2784 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2785 ild_thickness
[1][0] = 0.108;
2786 miller_value
[1][0] = 1.5;
2787 horiz_dielectric_constant
[1][0] = 1.998;
2788 vert_dielectric_constant
[1][0] = 3.9;
2789 fringe_cap
= 0.115e-15;
2790 wire_c_per_micron
[1][0] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2791 ild_thickness
[1][0], miller_value
[1][0], horiz_dielectric_constant
[1][0], vert_dielectric_constant
[1][0],
2794 wire_pitch
[1][1] = 4 * g_ip
->F_sz_um
;
2795 wire_width
= wire_pitch
[1][1] / 2;
2796 aspect_ratio
[1][1] = 2.0;
2797 wire_thickness
= aspect_ratio
[1][1] * wire_width
;
2798 wire_spacing
= wire_pitch
[1][1] - wire_width
;
2799 wire_r_per_micron
[1][1] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2800 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2801 ild_thickness
[1][1] = 0.108;
2802 miller_value
[1][1] = 1.5;
2803 horiz_dielectric_constant
[1][1] = 1.998;
2804 vert_dielectric_constant
[1][1] = 3.9;
2805 wire_c_per_micron
[1][1] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2806 ild_thickness
[1][1], miller_value
[1][1], horiz_dielectric_constant
[1][1], vert_dielectric_constant
[1][1],
2809 wire_pitch
[1][2] = 8 * g_ip
->F_sz_um
;
2810 aspect_ratio
[1][2] = 2.2;
2811 wire_width
= wire_pitch
[1][2] / 2;
2812 wire_thickness
= aspect_ratio
[1][2] * wire_width
;
2813 wire_spacing
= wire_pitch
[1][2] - wire_width
;
2814 dishing_thickness
= 0.1 * wire_thickness
;
2815 wire_r_per_micron
[1][2] = wire_resistance(CU_RESISTIVITY
, wire_width
,
2816 wire_thickness
, barrier_thickness
, dishing_thickness
, alpha_scatter
);
2817 ild_thickness
[1][2] = 0.198;
2818 miller_value
[1][2] = 1.5;
2819 horiz_dielectric_constant
[1][2] = 1.998;
2820 vert_dielectric_constant
[1][2] = 3.9;
2821 wire_c_per_micron
[1][2] = wire_capacitance(wire_width
, wire_thickness
, wire_spacing
,
2822 ild_thickness
[1][2], miller_value
[1][2], horiz_dielectric_constant
[1][2], vert_dielectric_constant
[1][2],
2824 //Nominal projections for commodity DRAM wordline/bitline
2825 wire_pitch
[1][3] = 2 * 0.016;//micron
2826 wire_c_per_micron
[1][3] = 31e-15 / (256 * 2 * 0.016);//F/micron
2827 wire_r_per_micron
[1][3] = 12 / 0.016;//ohm/micron
2829 //******************
2830 // wire_pitch[1][4] = 16 * g_ip.F_sz_um;
2831 // aspect_ratio = 2.2;
2832 // wire_width = wire_pitch[1][4] / 2;
2833 // wire_thickness = aspect_ratio * wire_width;
2834 // wire_spacing = wire_pitch[1][4] - wire_width;
2835 // dishing_thickness = 0.1 * wire_thickness;
2836 // wire_r_per_micron[1][4] = wire_resistance(CU_RESISTIVITY, wire_width,
2837 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2838 // ild_thickness = 0.275;
2839 // wire_c_per_micron[1][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2840 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2843 // wire_pitch[1][5] = 24 * g_ip.F_sz_um;
2844 // aspect_ratio = 2.2;
2845 // wire_width = wire_pitch[1][5] / 2;
2846 // wire_thickness = aspect_ratio * wire_width;
2847 // wire_spacing = wire_pitch[1][5] - wire_width;
2848 // dishing_thickness = 0.1 * wire_thickness;
2849 // wire_r_per_micron[1][5] = wire_resistance(CU_RESISTIVITY, wire_width,
2850 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2851 // ild_thickness = 0.275;
2852 // wire_c_per_micron[1][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2853 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2856 // wire_pitch[1][6] = 32 * g_ip.F_sz_um;
2857 // aspect_ratio = 2.2;
2858 // wire_width = wire_pitch[1][6] / 2;
2859 // wire_thickness = aspect_ratio * wire_width;
2860 // wire_spacing = wire_pitch[1][6] - wire_width;
2861 // dishing_thickness = 0.1 * wire_thickness;
2862 // wire_r_per_micron[1][6] = wire_resistance(CU_RESISTIVITY, wire_width,
2863 // wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2864 // ild_thickness = 0.275;
2865 // wire_c_per_micron[1][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2866 // ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2869 g_tp
.wire_local
.pitch
+= curr_alpha
* wire_pitch
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2870 g_tp
.wire_local
.R_per_um
+= curr_alpha
* wire_r_per_micron
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2871 g_tp
.wire_local
.C_per_um
+= curr_alpha
* wire_c_per_micron
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2872 g_tp
.wire_local
.aspect_ratio
+= curr_alpha
* aspect_ratio
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2873 g_tp
.wire_local
.ild_thickness
+= curr_alpha
* ild_thickness
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2874 g_tp
.wire_local
.miller_value
+= curr_alpha
* miller_value
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2875 g_tp
.wire_local
.horiz_dielectric_constant
+= curr_alpha
* horiz_dielectric_constant
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2876 g_tp
.wire_local
.vert_dielectric_constant
+= curr_alpha
* vert_dielectric_constant
[g_ip
->ic_proj_type
][(ram_cell_tech_type
== comm_dram
)?3:0];
2878 g_tp
.wire_inside_mat
.pitch
+= curr_alpha
* wire_pitch
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2879 g_tp
.wire_inside_mat
.R_per_um
+= curr_alpha
* wire_r_per_micron
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2880 g_tp
.wire_inside_mat
.C_per_um
+= curr_alpha
* wire_c_per_micron
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2881 g_tp
.wire_inside_mat
.aspect_ratio
+= curr_alpha
* aspect_ratio
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2882 g_tp
.wire_inside_mat
.ild_thickness
+= curr_alpha
* ild_thickness
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2883 g_tp
.wire_inside_mat
.miller_value
+= curr_alpha
* miller_value
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2884 g_tp
.wire_inside_mat
.horiz_dielectric_constant
+= curr_alpha
* horiz_dielectric_constant
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2885 g_tp
.wire_inside_mat
.vert_dielectric_constant
+= curr_alpha
* vert_dielectric_constant
[g_ip
->ic_proj_type
][g_ip
->wire_is_mat_type
];
2887 g_tp
.wire_outside_mat
.pitch
+= curr_alpha
* wire_pitch
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2888 g_tp
.wire_outside_mat
.R_per_um
+= curr_alpha
*wire_r_per_micron
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2889 g_tp
.wire_outside_mat
.C_per_um
+= curr_alpha
*wire_c_per_micron
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2890 g_tp
.wire_outside_mat
.aspect_ratio
+= curr_alpha
* aspect_ratio
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2891 g_tp
.wire_outside_mat
.ild_thickness
+= curr_alpha
* ild_thickness
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2892 g_tp
.wire_outside_mat
.miller_value
+= curr_alpha
* miller_value
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2893 g_tp
.wire_outside_mat
.horiz_dielectric_constant
+= curr_alpha
* horiz_dielectric_constant
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2894 g_tp
.wire_outside_mat
.vert_dielectric_constant
+= curr_alpha
* vert_dielectric_constant
[g_ip
->ic_proj_type
][g_ip
->wire_os_mat_type
];
2896 g_tp
.unit_len_wire_del
= g_tp
.wire_inside_mat
.R_per_um
* g_tp
.wire_inside_mat
.C_per_um
/ 2;
2898 g_tp
.sense_delay
+= curr_alpha
*SENSE_AMP_D
;
2899 g_tp
.sense_dy_power
+= curr_alpha
*SENSE_AMP_P
;
2900 // g_tp.horiz_dielectric_constant += horiz_dielectric_constant;
2901 // g_tp.vert_dielectric_constant += vert_dielectric_constant;
2902 // g_tp.aspect_ratio += aspect_ratio;
2903 // g_tp.miller_value += miller_value;
2904 // g_tp.ild_thickness += ild_thickness;
2907 g_tp
.fringe_cap
= fringe_cap
;
2909 double rd
= tr_R_on(g_tp
.min_w_nmos_
, NCH
, 1);
2910 double p_to_n_sizing_r
= pmos_to_nmos_sz_ratio();
2911 double c_load
= gate_C(g_tp
.min_w_nmos_
* (1 + p_to_n_sizing_r
), 0.0);
2912 double tf
= rd
* c_load
;
2913 g_tp
.kinv
= horowitz(0, tf
, 0.5, 0.5, RISE
);
2915 c_load
= KLOAD
* (drain_C_(g_tp
.min_w_nmos_
, NCH
, 1, 1, g_tp
.cell_h_def
) +
2916 drain_C_(g_tp
.min_w_nmos_
* p_to_n_sizing_r
, PCH
, 1, 1, g_tp
.cell_h_def
) +
2917 gate_C(g_tp
.min_w_nmos_
* 4 * (1 + p_to_n_sizing_r
), 0.0));
2919 g_tp
.FO4
= horowitz(0, tf
, 0.5, 0.5, RISE
);