technology.cc (10152:52c552138ba1) | technology.cc (10234:5cb711fa6176) |
---|---|
1/***************************************************************************** 2 * McPAT/CACTI 3 * SOFTWARE LICENSE AGREEMENT 4 * Copyright 2012 Hewlett-Packard Development Company, L.P. | 1/***************************************************************************** 2 * McPAT/CACTI 3 * SOFTWARE LICENSE AGREEMENT 4 * Copyright 2012 Hewlett-Packard Development Company, L.P. |
5 * Copyright (c) 2010-2013 Advanced Micro Devices, Inc. |
|
5 * All Rights Reserved 6 * 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 --- 7 unchanged lines hidden (view full) --- 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 | 6 * All Rights Reserved 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions are 10 * met: redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer; 12 * redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the --- 7 unchanged lines hidden (view full) --- 21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 * (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.” | 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 * 30 ***************************************************************************/ 31 32 33#include "basic_circuit.h" 34 35#include "parameter.h" 36 | 30 * 31 ***************************************************************************/ 32 33 34#include "basic_circuit.h" 35 36#include "parameter.h" 37 |
37double wire_resistance(double resistivity, double wire_width, double wire_thickness, 38 double barrier_thickness, double dishing_thickness, double alpha_scatter) 39{ 40 double resistance; 41 resistance = alpha_scatter * resistivity /((wire_thickness - barrier_thickness - dishing_thickness)*(wire_width - 2 * barrier_thickness)); 42 return(resistance); | 38double wire_resistance(double resistivity, double wire_width, 39 double wire_thickness, 40 double barrier_thickness, double dishing_thickness, 41 double alpha_scatter) { 42 double resistance; 43 resistance = alpha_scatter * resistivity / 44 ((wire_thickness - barrier_thickness - dishing_thickness) * 45 (wire_width - 2 * barrier_thickness)); 46 return(resistance); |
43} 44 | 47} 48 |
45double 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) 48{ 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; 53 return(total_cap); | 49double wire_capacitance(double wire_width, double wire_thickness, 50 double wire_spacing, 51 double ild_thickness, double miller_value, 52 double horiz_dielectric_constant, 53 double vert_dielectric_constant, double fringe_cap) { 54 double vertical_cap, sidewall_cap, total_cap; 55 vertical_cap = 2 * PERMITTIVITY_FREE_SPACE * vert_dielectric_constant * wire_width / ild_thickness; 56 sidewall_cap = 2 * PERMITTIVITY_FREE_SPACE * miller_value * horiz_dielectric_constant * wire_thickness / wire_spacing; 57 total_cap = vertical_cap + sidewall_cap + fringe_cap; 58 return(total_cap); |
54} 55 56 | 59} 60 61 |
57void init_tech_params(double technology, bool is_tag) 58{ 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; | 62void init_tech_params(double technology, bool is_tag) { 63 int iter, tech, tech_lo, tech_hi; 64 double curr_alpha, curr_vpp; 65 double wire_width, wire_thickness, wire_spacing, 66 fringe_cap, pmos_to_nmos_sizing_r; |
63// double aspect_ratio,ild_thickness, miller_value = 1.5, horiz_dielectric_constant, vert_dielectric_constant; | 67// 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; | 68 double barrier_thickness, dishing_thickness, alpha_scatter; 69 double curr_vdd_dram_cell, curr_v_th_dram_access_transistor, curr_I_on_dram_cell, curr_c_dram_cell; |
66 | 70 |
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; | 71 uint32_t ram_cell_tech_type = (is_tag) ? g_ip->tag_arr_ram_cell_tech_type : g_ip->data_arr_ram_cell_tech_type; 72 uint32_t peri_global_tech_type = (is_tag) ? g_ip->tag_arr_peri_global_tech_type : g_ip->data_arr_peri_global_tech_type; |
69 | 73 |
70 technology = technology * 1000.0; // in the unit of nm | 74 technology = technology * 1000.0; // in the unit of nm |
71 | 75 |
72 // initialize parameters 73 g_tp.reset(); 74 double gmp_to_gmn_multiplier_periph_global = 0; | 76 // initialize parameters 77 g_tp.reset(); 78 double gmp_to_gmn_multiplier_periph_global = 0; |
75 | 79 |
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; | 80 double curr_Wmemcella_dram, curr_Wmemcellpmos_dram, curr_Wmemcellnmos_dram, 81 curr_area_cell_dram, curr_asp_ratio_cell_dram, curr_Wmemcella_sram, 82 curr_Wmemcellpmos_sram, curr_Wmemcellnmos_sram, curr_area_cell_sram, 83 curr_asp_ratio_cell_sram, curr_I_off_dram_cell_worst_case_length_temp; 84 double curr_Wmemcella_cam, curr_Wmemcellpmos_cam, curr_Wmemcellnmos_cam, curr_area_cell_cam,//Sheng: CAM data 85 curr_asp_ratio_cell_cam; 86 double SENSE_AMP_D, SENSE_AMP_P; // J 87 double area_cell_dram = 0; 88 double asp_ratio_cell_dram = 0; 89 double area_cell_sram = 0; 90 double asp_ratio_cell_sram = 0; 91 double area_cell_cam = 0; 92 double asp_ratio_cell_cam = 0; 93 double mobility_eff_periph_global = 0; 94 double Vdsat_periph_global = 0; 95 double nmos_effective_resistance_multiplier; 96 double width_dram_access_transistor; |
93 | 97 |
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; | 98 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 99 double curr_core_tx_density = 0;//this is density per um^2; 90, ...22nm based on Intel Penryn 100 double curr_chip_layout_overhead = 0; 101 double curr_macro_layout_overhead = 0; 102 double curr_sckt_co_eff = 0; |
99 | 103 |
100 if (technology < 181 && technology > 179) 101 { | 104 if (technology < 181 && technology > 179) { |
102 tech_lo = 180; 103 tech_hi = 180; | 105 tech_lo = 180; 106 tech_hi = 180; |
104 } 105 else if (technology < 91 && technology > 89) 106 { 107 tech_lo = 90; 108 tech_hi = 90; 109 } 110 else if (technology < 66 && technology > 64) 111 { 112 tech_lo = 65; 113 tech_hi = 65; 114 } 115 else if (technology < 46 && technology > 44) 116 { 117 tech_lo = 45; 118 tech_hi = 45; 119 } 120 else if (technology < 33 && technology > 31) 121 { 122 tech_lo = 32; 123 tech_hi = 32; 124 } 125 else if (technology < 23 && technology > 21) 126 { 127 tech_lo = 22; 128 tech_hi = 22; 129 if (ram_cell_tech_type == 3 ) 130 { 131 cout<<"current version does not support eDRAM technologies at 22nm"<<endl; 132 exit(0); | 107 } else if (technology < 91 && technology > 89) { 108 tech_lo = 90; 109 tech_hi = 90; 110 } else if (technology < 66 && technology > 64) { 111 tech_lo = 65; 112 tech_hi = 65; 113 } else if (technology < 46 && technology > 44) { 114 tech_lo = 45; 115 tech_hi = 45; 116 } else if (technology < 33 && technology > 31) { 117 tech_lo = 32; 118 tech_hi = 32; 119 } else if (technology < 23 && technology > 21) { 120 tech_lo = 22; 121 tech_hi = 22; 122 if (ram_cell_tech_type == 3 ) { 123 cout << "current version does not support eDRAM technologies at " 124 << "22nm" << endl; 125 exit(0); 126 } 127 } else if (technology < 180 && technology > 90) { 128 tech_lo = 180; 129 tech_hi = 90; 130 } else if (technology < 90 && technology > 65) { 131 tech_lo = 90; 132 tech_hi = 65; 133 } else if (technology < 65 && technology > 45) { 134 tech_lo = 65; 135 tech_hi = 45; 136 } else if (technology < 45 && technology > 32) { 137 tech_lo = 45; 138 tech_hi = 32; 139 } else if (technology < 32 && technology > 22) { 140 tech_lo = 32; 141 tech_hi = 22; |
133 } | 142 } |
134 } 135// else if (technology < 17 && technology > 15) 136// { 137// tech_lo = 16; 138// tech_hi = 16; 139// } 140 else if (technology < 180 && technology > 90) 141 { 142 tech_lo = 180; 143 tech_hi = 90; 144 } 145 else if (technology < 90 && technology > 65) 146 { 147 tech_lo = 90; 148 tech_hi = 65; 149 } 150 else if (technology < 65 && technology > 45) 151 { 152 tech_lo = 65; 153 tech_hi = 45; 154 } 155 else if (technology < 45 && technology > 32) 156 { 157 tech_lo = 45; 158 tech_hi = 32; 159 } 160 else if (technology < 32 && technology > 22) 161 { 162 tech_lo = 32; 163 tech_hi = 22; 164 } | |
165// else if (technology < 22 && technology > 16) 166// { 167// tech_lo = 22; 168// tech_hi = 16; 169// } | 143// else if (technology < 22 && technology > 16) 144// { 145// tech_lo = 22; 146// tech_hi = 16; 147// } |
170 else 171 { 172 cout<<"Invalid technology nodes"<<endl; 173 exit(0); | 148 else { 149 cout << "Invalid technology nodes" << endl; 150 exit(0); |
174 } 175 | 151 } 152 |
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]; | 153 double vdd[NUMBER_TECH_FLAVORS]; 154 double Lphy[NUMBER_TECH_FLAVORS]; 155 double Lelec[NUMBER_TECH_FLAVORS]; 156 double t_ox[NUMBER_TECH_FLAVORS]; 157 double v_th[NUMBER_TECH_FLAVORS]; 158 double c_ox[NUMBER_TECH_FLAVORS]; 159 double mobility_eff[NUMBER_TECH_FLAVORS]; 160 double Vdsat[NUMBER_TECH_FLAVORS]; 161 double c_g_ideal[NUMBER_TECH_FLAVORS]; 162 double c_fringe[NUMBER_TECH_FLAVORS]; 163 double c_junc[NUMBER_TECH_FLAVORS]; 164 double I_on_n[NUMBER_TECH_FLAVORS]; 165 double I_on_p[NUMBER_TECH_FLAVORS]; 166 double Rnchannelon[NUMBER_TECH_FLAVORS]; 167 double Rpchannelon[NUMBER_TECH_FLAVORS]; 168 double n_to_p_eff_curr_drv_ratio[NUMBER_TECH_FLAVORS]; 169 double I_off_n[NUMBER_TECH_FLAVORS][101]; 170 double I_g_on_n[NUMBER_TECH_FLAVORS][101]; 171 double gmp_to_gmn_multiplier[NUMBER_TECH_FLAVORS]; 172 double long_channel_leakage_reduction[NUMBER_TECH_FLAVORS]; |
198 | 173 |
199 for (iter = 0; iter <= 1; ++iter) 200 { 201 // linear interpolation 202 if (iter == 0) 203 { 204 tech = tech_lo; 205 if (tech_lo == tech_hi) 206 { 207 curr_alpha = 1; 208 } 209 else 210 { 211 curr_alpha = (technology - tech_hi)/(tech_lo - tech_hi); 212 } 213 } 214 else 215 { 216 tech = tech_hi; 217 if (tech_lo == tech_hi) 218 { 219 break; 220 } 221 else 222 { 223 curr_alpha = (tech_lo - technology)/(tech_lo - tech_hi); 224 } 225 } | 174 for (iter = 0; iter <= 1; ++iter) { 175 // linear interpolation 176 if (iter == 0) { 177 tech = tech_lo; 178 if (tech_lo == tech_hi) { 179 curr_alpha = 1; 180 } else { 181 curr_alpha = (technology - tech_hi) / (tech_lo - tech_hi); 182 } 183 } else { 184 tech = tech_hi; 185 if (tech_lo == tech_hi) { 186 break; 187 } else { 188 curr_alpha = (tech_lo - technology) / (tech_lo - tech_hi); 189 } 190 } |
226 | 191 |
227 if (tech == 180) 228 { 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 235 vdd[0] = 1.5; 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; | 192 if (tech == 180) { 193 //180nm technology-node. Corresponds to year 1999 in ITRS 194 //Only HP transistor was of interest that 180nm since leakage power was not a big issue. Performance was the king 195 //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 196 bool Aggre_proj = false; 197 SENSE_AMP_D = .28e-9; // s 198 SENSE_AMP_P = 14.7e-15; // J 199 vdd[0] = 1.5; 200 Lphy[0] = 0.12;//Lphy is the physical gate-length. micron 201 Lelec[0] = 0.10;//Lelec is the electrical gate-length. micron 202 t_ox[0] = 1.2e-3 * (Aggre_proj ? 1.9 / 1.2 : 2);//micron 203 v_th[0] = Aggre_proj ? 0.36 : 0.4407;//V 204 c_ox[0] = 1.79e-14 * (Aggre_proj ? 1.9 / 1.2 : 2);//F/micron2 205 mobility_eff[0] = 302.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 206 Vdsat[0] = 0.128 * 2; //V 207 c_g_ideal[0] = (Aggre_proj ? 1.9 / 1.2 : 2) * 6.64e-16;//F/micron 208 c_fringe[0] = (Aggre_proj ? 1.9 / 1.2 : 2) * 0.08e-15;//F/micron 209 c_junc[0] = (Aggre_proj ? 1.9 / 1.2 : 2) * 1e-15;//F/micron2 210 I_on_n[0] = 750e-6;//A/micron 211 I_on_p[0] = 350e-6;//A/micron 212 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline 213 nmos_effective_resistance_multiplier = 1.54; 214 n_to_p_eff_curr_drv_ratio[0] = 2.45; 215 gmp_to_gmn_multiplier[0] = 1.22; 216 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 217 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 218 long_channel_leakage_reduction[0] = 1; 219 I_off_n[0][0] = 7e-10;//A/micron 220 I_off_n[0][10] = 8.26e-10; 221 I_off_n[0][20] = 9.74e-10; 222 I_off_n[0][30] = 1.15e-9; 223 I_off_n[0][40] = 1.35e-9; 224 I_off_n[0][50] = 1.60e-9; 225 I_off_n[0][60] = 1.88e-9; 226 I_off_n[0][70] = 2.29e-9; 227 I_off_n[0][80] = 2.70e-9; 228 I_off_n[0][90] = 3.19e-9; 229 I_off_n[0][100] = 3.76e-9; |
266 | 230 |
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; | 231 I_g_on_n[0][0] = 1.65e-10;//A/micron 232 I_g_on_n[0][10] = 1.65e-10; 233 I_g_on_n[0][20] = 1.65e-10; 234 I_g_on_n[0][30] = 1.65e-10; 235 I_g_on_n[0][40] = 1.65e-10; 236 I_g_on_n[0][50] = 1.65e-10; 237 I_g_on_n[0][60] = 1.65e-10; 238 I_g_on_n[0][70] = 1.65e-10; 239 I_g_on_n[0][80] = 1.65e-10; 240 I_g_on_n[0][90] = 1.65e-10; 241 I_g_on_n[0][100] = 1.65e-10; |
278 | 242 |
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 | 243 //SRAM cell properties 244 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 245 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 246 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 247 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 248 curr_asp_ratio_cell_sram = 1.46; 249 //CAM cell properties //TODO: data need to be revisited 250 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 251 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 252 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 253 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360 254 curr_asp_ratio_cell_cam = 2.92;//2.5 255 //Empirical undifferetiated core/FU coefficient 256 curr_logic_scaling_co_eff = 1.5;//linear scaling from 90nm 257 curr_core_tx_density = 1.25 * 0.7 * 0.7 * 0.4; 258 curr_sckt_co_eff = 1.11; 259 curr_chip_layout_overhead = 1.0;//die measurement results based on Niagara 1 and 2 260 curr_macro_layout_overhead = 1.0;//EDA placement and routing tool rule of thumb |
297 | 261 |
298 } | 262 } |
299 | 263 |
300 if (tech == 90) 301 { 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 306 vdd[0] = 1.2; 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; | 264 if (tech == 90) { 265 SENSE_AMP_D = .28e-9; // s 266 SENSE_AMP_P = 14.7e-15; // J 267 //90nm technology-node. Corresponds to year 2004 in ITRS 268 //ITRS HP device type 269 vdd[0] = 1.2; 270 Lphy[0] = 0.037;//Lphy is the physical gate-length. micron 271 Lelec[0] = 0.0266;//Lelec is the electrical gate-length. micron 272 t_ox[0] = 1.2e-3;//micron 273 v_th[0] = 0.23707;//V 274 c_ox[0] = 1.79e-14;//F/micron2 275 mobility_eff[0] = 342.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 276 Vdsat[0] = 0.128; //V 277 c_g_ideal[0] = 6.64e-16;//F/micron 278 c_fringe[0] = 0.08e-15;//F/micron 279 c_junc[0] = 1e-15;//F/micron2 280 I_on_n[0] = 1076.9e-6;//A/micron 281 I_on_p[0] = 712.6e-6;//A/micron 282 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline 283 nmos_effective_resistance_multiplier = 1.54; 284 n_to_p_eff_curr_drv_ratio[0] = 2.45; 285 gmp_to_gmn_multiplier[0] = 1.22; 286 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 287 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 288 long_channel_leakage_reduction[0] = 1; 289 I_off_n[0][0] = 3.24e-8;//A/micron 290 I_off_n[0][10] = 4.01e-8; 291 I_off_n[0][20] = 4.90e-8; 292 I_off_n[0][30] = 5.92e-8; 293 I_off_n[0][40] = 7.08e-8; 294 I_off_n[0][50] = 8.38e-8; 295 I_off_n[0][60] = 9.82e-8; 296 I_off_n[0][70] = 1.14e-7; 297 I_off_n[0][80] = 1.29e-7; 298 I_off_n[0][90] = 1.43e-7; 299 I_off_n[0][100] = 1.54e-7; |
337 | 300 |
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; | 301 I_g_on_n[0][0] = 1.65e-8;//A/micron 302 I_g_on_n[0][10] = 1.65e-8; 303 I_g_on_n[0][20] = 1.65e-8; 304 I_g_on_n[0][30] = 1.65e-8; 305 I_g_on_n[0][40] = 1.65e-8; 306 I_g_on_n[0][50] = 1.65e-8; 307 I_g_on_n[0][60] = 1.65e-8; 308 I_g_on_n[0][70] = 1.65e-8; 309 I_g_on_n[0][80] = 1.65e-8; 310 I_g_on_n[0][90] = 1.65e-8; 311 I_g_on_n[0][100] = 1.65e-8; |
349 | 312 |
350 //ITRS LSTP device type 351 vdd[1] = 1.3; 352 Lphy[1] = 0.075; 353 Lelec[1] = 0.0486; 354 t_ox[1] = 2.2e-3; 355 v_th[1] = 0.48203; 356 c_ox[1] = 1.22e-14; 357 mobility_eff[1] = 356.76 * (1e-2 * 1e6 * 1e-2 * 1e6); 358 Vdsat[1] = 0.373; 359 c_g_ideal[1] = 9.15e-16; 360 c_fringe[1] = 0.08e-15; 361 c_junc[1] = 1e-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; | 313 //ITRS LSTP device type 314 vdd[1] = 1.3; 315 Lphy[1] = 0.075; 316 Lelec[1] = 0.0486; 317 t_ox[1] = 2.2e-3; 318 v_th[1] = 0.48203; 319 c_ox[1] = 1.22e-14; 320 mobility_eff[1] = 356.76 * (1e-2 * 1e6 * 1e-2 * 1e6); 321 Vdsat[1] = 0.373; 322 c_g_ideal[1] = 9.15e-16; 323 c_fringe[1] = 0.08e-15; 324 c_junc[1] = 1e-15; 325 I_on_n[1] = 503.6e-6; 326 I_on_p[1] = 235.1e-6; 327 nmos_effective_resistance_multiplier = 1.92; 328 n_to_p_eff_curr_drv_ratio[1] = 2.44; 329 gmp_to_gmn_multiplier[1] = 0.88; 330 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 331 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 332 long_channel_leakage_reduction[1] = 1; 333 I_off_n[1][0] = 2.81e-12; 334 I_off_n[1][10] = 4.76e-12; 335 I_off_n[1][20] = 7.82e-12; 336 I_off_n[1][30] = 1.25e-11; 337 I_off_n[1][40] = 1.94e-11; 338 I_off_n[1][50] = 2.94e-11; 339 I_off_n[1][60] = 4.36e-11; 340 I_off_n[1][70] = 6.32e-11; 341 I_off_n[1][80] = 8.95e-11; 342 I_off_n[1][90] = 1.25e-10; 343 I_off_n[1][100] = 1.7e-10; |
381 | 344 |
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; | 345 I_g_on_n[1][0] = 3.87e-11;//A/micron 346 I_g_on_n[1][10] = 3.87e-11; 347 I_g_on_n[1][20] = 3.87e-11; 348 I_g_on_n[1][30] = 3.87e-11; 349 I_g_on_n[1][40] = 3.87e-11; 350 I_g_on_n[1][50] = 3.87e-11; 351 I_g_on_n[1][60] = 3.87e-11; 352 I_g_on_n[1][70] = 3.87e-11; 353 I_g_on_n[1][80] = 3.87e-11; 354 I_g_on_n[1][90] = 3.87e-11; 355 I_g_on_n[1][100] = 3.87e-11; |
393 | 356 |
394 //ITRS LOP device type 395 vdd[2] = 0.9; 396 Lphy[2] = 0.053; 397 Lelec[2] = 0.0354; 398 t_ox[2] = 1.5e-3; 399 v_th[2] = 0.30764; 400 c_ox[2] = 1.59e-14; 401 mobility_eff[2] = 460.39 * (1e-2 * 1e6 * 1e-2 * 1e6); 402 Vdsat[2] = 0.113; 403 c_g_ideal[2] = 8.45e-16; 404 c_fringe[2] = 0.08e-15; 405 c_junc[2] = 1e-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; | 357 //ITRS LOP device type 358 vdd[2] = 0.9; 359 Lphy[2] = 0.053; 360 Lelec[2] = 0.0354; 361 t_ox[2] = 1.5e-3; 362 v_th[2] = 0.30764; 363 c_ox[2] = 1.59e-14; 364 mobility_eff[2] = 460.39 * (1e-2 * 1e6 * 1e-2 * 1e6); 365 Vdsat[2] = 0.113; 366 c_g_ideal[2] = 8.45e-16; 367 c_fringe[2] = 0.08e-15; 368 c_junc[2] = 1e-15; 369 I_on_n[2] = 386.6e-6; 370 I_on_p[2] = 209.7e-6; 371 nmos_effective_resistance_multiplier = 1.77; 372 n_to_p_eff_curr_drv_ratio[2] = 2.54; 373 gmp_to_gmn_multiplier[2] = 0.98; 374 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 375 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 376 long_channel_leakage_reduction[2] = 1; 377 I_off_n[2][0] = 2.14e-9; 378 I_off_n[2][10] = 2.9e-9; 379 I_off_n[2][20] = 3.87e-9; 380 I_off_n[2][30] = 5.07e-9; 381 I_off_n[2][40] = 6.54e-9; 382 I_off_n[2][50] = 8.27e-8; 383 I_off_n[2][60] = 1.02e-7; 384 I_off_n[2][70] = 1.20e-7; 385 I_off_n[2][80] = 1.36e-8; 386 I_off_n[2][90] = 1.52e-8; 387 I_off_n[2][100] = 1.73e-8; |
425 | 388 |
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; | 389 I_g_on_n[2][0] = 4.31e-8;//A/micron 390 I_g_on_n[2][10] = 4.31e-8; 391 I_g_on_n[2][20] = 4.31e-8; 392 I_g_on_n[2][30] = 4.31e-8; 393 I_g_on_n[2][40] = 4.31e-8; 394 I_g_on_n[2][50] = 4.31e-8; 395 I_g_on_n[2][60] = 4.31e-8; 396 I_g_on_n[2][70] = 4.31e-8; 397 I_g_on_n[2][80] = 4.31e-8; 398 I_g_on_n[2][90] = 4.31e-8; 399 I_g_on_n[2][100] = 4.31e-8; |
437 | 400 |
438 if (ram_cell_tech_type == lp_dram) 439 { 440 //LP-DRAM cell access transistor technology parameters 441 curr_vdd_dram_cell = 1.2; 442 Lphy[3] = 0.12; 443 Lelec[3] = 0.0756; 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; | 401 if (ram_cell_tech_type == lp_dram) { 402 //LP-DRAM cell access transistor technology parameters 403 curr_vdd_dram_cell = 1.2; 404 Lphy[3] = 0.12; 405 Lelec[3] = 0.0756; 406 curr_v_th_dram_access_transistor = 0.4545; 407 width_dram_access_transistor = 0.14; 408 curr_I_on_dram_cell = 45e-6; 409 curr_I_off_dram_cell_worst_case_length_temp = 21.1e-12; 410 curr_Wmemcella_dram = width_dram_access_transistor; 411 curr_Wmemcellpmos_dram = 0; 412 curr_Wmemcellnmos_dram = 0; 413 curr_area_cell_dram = 0.168; 414 curr_asp_ratio_cell_dram = 1.46; 415 curr_c_dram_cell = 20e-15; |
454 | 416 |
455 //LP-DRAM wordline transistor parameters 456 curr_vpp = 1.6; 457 t_ox[3] = 2.2e-3; 458 v_th[3] = 0.4545; 459 c_ox[3] = 1.22e-14; 460 mobility_eff[3] = 323.95 * (1e-2 * 1e6 * 1e-2 * 1e6); 461 Vdsat[3] = 0.3; 462 c_g_ideal[3] = 1.47e-15; 463 c_fringe[3] = 0.08e-15; 464 c_junc[3] = 1e-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; 484 } 485 else if (ram_cell_tech_type == comm_dram) 486 { 487 //COMM-DRAM cell access transistor technology parameters 488 curr_vdd_dram_cell = 1.6; 489 Lphy[3] = 0.09; 490 Lelec[3] = 0.0576; 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; | 417 //LP-DRAM wordline transistor parameters 418 curr_vpp = 1.6; 419 t_ox[3] = 2.2e-3; 420 v_th[3] = 0.4545; 421 c_ox[3] = 1.22e-14; 422 mobility_eff[3] = 323.95 * (1e-2 * 1e6 * 1e-2 * 1e6); 423 Vdsat[3] = 0.3; 424 c_g_ideal[3] = 1.47e-15; 425 c_fringe[3] = 0.08e-15; 426 c_junc[3] = 1e-15; 427 I_on_n[3] = 321.6e-6; 428 I_on_p[3] = 203.3e-6; 429 nmos_effective_resistance_multiplier = 1.65; 430 n_to_p_eff_curr_drv_ratio[3] = 1.95; 431 gmp_to_gmn_multiplier[3] = 0.90; 432 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 433 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 434 long_channel_leakage_reduction[3] = 1; 435 I_off_n[3][0] = 1.42e-11; 436 I_off_n[3][10] = 2.25e-11; 437 I_off_n[3][20] = 3.46e-11; 438 I_off_n[3][30] = 5.18e-11; 439 I_off_n[3][40] = 7.58e-11; 440 I_off_n[3][50] = 1.08e-10; 441 I_off_n[3][60] = 1.51e-10; 442 I_off_n[3][70] = 2.02e-10; 443 I_off_n[3][80] = 2.57e-10; 444 I_off_n[3][90] = 3.14e-10; 445 I_off_n[3][100] = 3.85e-10; 446 } else if (ram_cell_tech_type == comm_dram) { 447 //COMM-DRAM cell access transistor technology parameters 448 curr_vdd_dram_cell = 1.6; 449 Lphy[3] = 0.09; 450 Lelec[3] = 0.0576; 451 curr_v_th_dram_access_transistor = 1; 452 width_dram_access_transistor = 0.09; 453 curr_I_on_dram_cell = 20e-6; 454 curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 455 curr_Wmemcella_dram = width_dram_access_transistor; 456 curr_Wmemcellpmos_dram = 0; 457 curr_Wmemcellnmos_dram = 0; 458 curr_area_cell_dram = 6 * 0.09 * 0.09; 459 curr_asp_ratio_cell_dram = 1.5; 460 curr_c_dram_cell = 30e-15; |
501 | 461 |
502 //COMM-DRAM wordline transistor parameters 503 curr_vpp = 3.7; 504 t_ox[3] = 5.5e-3; 505 v_th[3] = 1.0; 506 c_ox[3] = 5.65e-15; 507 mobility_eff[3] = 302.2 * (1e-2 * 1e6 * 1e-2 * 1e6); 508 Vdsat[3] = 0.32; 509 c_g_ideal[3] = 5.08e-16; 510 c_fringe[3] = 0.08e-15; 511 c_junc[3] = 1e-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; 531 } | 462 //COMM-DRAM wordline transistor parameters 463 curr_vpp = 3.7; 464 t_ox[3] = 5.5e-3; 465 v_th[3] = 1.0; 466 c_ox[3] = 5.65e-15; 467 mobility_eff[3] = 302.2 * (1e-2 * 1e6 * 1e-2 * 1e6); 468 Vdsat[3] = 0.32; 469 c_g_ideal[3] = 5.08e-16; 470 c_fringe[3] = 0.08e-15; 471 c_junc[3] = 1e-15; 472 I_on_n[3] = 1094.3e-6; 473 I_on_p[3] = I_on_n[3] / 2; 474 nmos_effective_resistance_multiplier = 1.62; 475 n_to_p_eff_curr_drv_ratio[3] = 2.05; 476 gmp_to_gmn_multiplier[3] = 0.90; 477 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 478 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 479 long_channel_leakage_reduction[3] = 1; 480 I_off_n[3][0] = 5.80e-15; 481 I_off_n[3][10] = 1.21e-14; 482 I_off_n[3][20] = 2.42e-14; 483 I_off_n[3][30] = 4.65e-14; 484 I_off_n[3][40] = 8.60e-14; 485 I_off_n[3][50] = 1.54e-13; 486 I_off_n[3][60] = 2.66e-13; 487 I_off_n[3][70] = 4.45e-13; 488 I_off_n[3][80] = 7.17e-13; 489 I_off_n[3][90] = 1.11e-12; 490 I_off_n[3][100] = 1.67e-12; 491 } |
532 | 492 |
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 | 493 //SRAM cell properties 494 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 495 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 496 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 497 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 498 curr_asp_ratio_cell_sram = 1.46; 499 //CAM cell properties //TODO: data need to be revisited 500 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 501 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 502 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 503 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360 504 curr_asp_ratio_cell_cam = 2.92;//2.5 505 //Empirical undifferetiated core/FU coefficient 506 curr_logic_scaling_co_eff = 1; 507 curr_core_tx_density = 1.25 * 0.7 * 0.7; 508 curr_sckt_co_eff = 1.1539; 509 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 510 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb |
551 552 | 511 512 |
553 } | 513 } |
554 | 514 |
555 if (tech == 65) 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 560 vdd[0] = 1.1; 561 Lphy[0] = 0.025; 562 Lelec[0] = 0.019; 563 t_ox[0] = 1.1e-3; 564 v_th[0] = .19491; 565 c_ox[0] = 1.88e-14; 566 mobility_eff[0] = 436.24 * (1e-2 * 1e6 * 1e-2 * 1e6); 567 Vdsat[0] = 7.71e-2; 568 c_g_ideal[0] = 4.69e-16; 569 c_fringe[0] = 0.077e-15; 570 c_junc[0] = 1e-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; | 515 if (tech == 65) { 516 //65nm technology-node. Corresponds to year 2007 in ITRS 517 //ITRS HP device type 518 SENSE_AMP_D = .2e-9; // s 519 SENSE_AMP_P = 5.7e-15; // J 520 vdd[0] = 1.1; 521 Lphy[0] = 0.025; 522 Lelec[0] = 0.019; 523 t_ox[0] = 1.1e-3; 524 v_th[0] = .19491; 525 c_ox[0] = 1.88e-14; 526 mobility_eff[0] = 436.24 * (1e-2 * 1e6 * 1e-2 * 1e6); 527 Vdsat[0] = 7.71e-2; 528 c_g_ideal[0] = 4.69e-16; 529 c_fringe[0] = 0.077e-15; 530 c_junc[0] = 1e-15; 531 I_on_n[0] = 1197.2e-6; 532 I_on_p[0] = 870.8e-6; 533 nmos_effective_resistance_multiplier = 1.50; 534 n_to_p_eff_curr_drv_ratio[0] = 2.41; 535 gmp_to_gmn_multiplier[0] = 1.38; 536 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0]; 537 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0]; 538 long_channel_leakage_reduction[0] = 1 / 3.74; 539 //Using MASTAR, @380K, increase Lgate until Ion reduces to 90% or Lgate increase by 10%, whichever comes first 540 //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74. 541 I_off_n[0][0] = 1.96e-7; 542 I_off_n[0][10] = 2.29e-7; 543 I_off_n[0][20] = 2.66e-7; 544 I_off_n[0][30] = 3.05e-7; 545 I_off_n[0][40] = 3.49e-7; 546 I_off_n[0][50] = 3.95e-7; 547 I_off_n[0][60] = 4.45e-7; 548 I_off_n[0][70] = 4.97e-7; 549 I_off_n[0][80] = 5.48e-7; 550 I_off_n[0][90] = 5.94e-7; 551 I_off_n[0][100] = 6.3e-7; 552 I_g_on_n[0][0] = 4.09e-8;//A/micron 553 I_g_on_n[0][10] = 4.09e-8; 554 I_g_on_n[0][20] = 4.09e-8; 555 I_g_on_n[0][30] = 4.09e-8; 556 I_g_on_n[0][40] = 4.09e-8; 557 I_g_on_n[0][50] = 4.09e-8; 558 I_g_on_n[0][60] = 4.09e-8; 559 I_g_on_n[0][70] = 4.09e-8; 560 I_g_on_n[0][80] = 4.09e-8; 561 I_g_on_n[0][90] = 4.09e-8; 562 I_g_on_n[0][100] = 4.09e-8; |
603 | 563 |
604 //ITRS LSTP device type 605 vdd[1] = 1.2; 606 Lphy[1] = 0.045; 607 Lelec[1] = 0.0298; 608 t_ox[1] = 1.9e-3; 609 v_th[1] = 0.52354; 610 c_ox[1] = 1.36e-14; 611 mobility_eff[1] = 341.21 * (1e-2 * 1e6 * 1e-2 * 1e6); 612 Vdsat[1] = 0.128; 613 c_g_ideal[1] = 6.14e-16; 614 c_fringe[1] = 0.08e-15; 615 c_junc[1] = 1e-15; 616 I_on_n[1] = 519.2e-6; 617 I_on_p[1] = 266e-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; | 564 //ITRS LSTP device type 565 vdd[1] = 1.2; 566 Lphy[1] = 0.045; 567 Lelec[1] = 0.0298; 568 t_ox[1] = 1.9e-3; 569 v_th[1] = 0.52354; 570 c_ox[1] = 1.36e-14; 571 mobility_eff[1] = 341.21 * (1e-2 * 1e6 * 1e-2 * 1e6); 572 Vdsat[1] = 0.128; 573 c_g_ideal[1] = 6.14e-16; 574 c_fringe[1] = 0.08e-15; 575 c_junc[1] = 1e-15; 576 I_on_n[1] = 519.2e-6; 577 I_on_p[1] = 266e-6; 578 nmos_effective_resistance_multiplier = 1.96; 579 n_to_p_eff_curr_drv_ratio[1] = 2.23; 580 gmp_to_gmn_multiplier[1] = 0.99; 581 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 582 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 583 long_channel_leakage_reduction[1] = 1 / 2.82; 584 I_off_n[1][0] = 9.12e-12; 585 I_off_n[1][10] = 1.49e-11; 586 I_off_n[1][20] = 2.36e-11; 587 I_off_n[1][30] = 3.64e-11; 588 I_off_n[1][40] = 5.48e-11; 589 I_off_n[1][50] = 8.05e-11; 590 I_off_n[1][60] = 1.15e-10; 591 I_off_n[1][70] = 1.59e-10; 592 I_off_n[1][80] = 2.1e-10; 593 I_off_n[1][90] = 2.62e-10; 594 I_off_n[1][100] = 3.21e-10; |
635 | 595 |
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; | 596 I_g_on_n[1][0] = 1.09e-10;//A/micron 597 I_g_on_n[1][10] = 1.09e-10; 598 I_g_on_n[1][20] = 1.09e-10; 599 I_g_on_n[1][30] = 1.09e-10; 600 I_g_on_n[1][40] = 1.09e-10; 601 I_g_on_n[1][50] = 1.09e-10; 602 I_g_on_n[1][60] = 1.09e-10; 603 I_g_on_n[1][70] = 1.09e-10; 604 I_g_on_n[1][80] = 1.09e-10; 605 I_g_on_n[1][90] = 1.09e-10; 606 I_g_on_n[1][100] = 1.09e-10; |
647 | 607 |
648 //ITRS LOP device type 649 vdd[2] = 0.8; 650 Lphy[2] = 0.032; 651 Lelec[2] = 0.0216; 652 t_ox[2] = 1.2e-3; 653 v_th[2] = 0.28512; 654 c_ox[2] = 1.87e-14; 655 mobility_eff[2] = 495.19 * (1e-2 * 1e6 * 1e-2 * 1e6); 656 Vdsat[2] = 0.292; 657 c_g_ideal[2] = 6e-16; 658 c_fringe[2] = 0.08e-15; 659 c_junc[2] = 1e-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; | 608 //ITRS LOP device type 609 vdd[2] = 0.8; 610 Lphy[2] = 0.032; 611 Lelec[2] = 0.0216; 612 t_ox[2] = 1.2e-3; 613 v_th[2] = 0.28512; 614 c_ox[2] = 1.87e-14; 615 mobility_eff[2] = 495.19 * (1e-2 * 1e6 * 1e-2 * 1e6); 616 Vdsat[2] = 0.292; 617 c_g_ideal[2] = 6e-16; 618 c_fringe[2] = 0.08e-15; 619 c_junc[2] = 1e-15; 620 I_on_n[2] = 573.1e-6; 621 I_on_p[2] = 340.6e-6; 622 nmos_effective_resistance_multiplier = 1.82; 623 n_to_p_eff_curr_drv_ratio[2] = 2.28; 624 gmp_to_gmn_multiplier[2] = 1.11; 625 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 626 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 627 long_channel_leakage_reduction[2] = 1 / 2.05; 628 I_off_n[2][0] = 4.9e-9; 629 I_off_n[2][10] = 6.49e-9; 630 I_off_n[2][20] = 8.45e-9; 631 I_off_n[2][30] = 1.08e-8; 632 I_off_n[2][40] = 1.37e-8; 633 I_off_n[2][50] = 1.71e-8; 634 I_off_n[2][60] = 2.09e-8; 635 I_off_n[2][70] = 2.48e-8; 636 I_off_n[2][80] = 2.84e-8; 637 I_off_n[2][90] = 3.13e-8; 638 I_off_n[2][100] = 3.42e-8; |
679 | 639 |
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; | 640 I_g_on_n[2][0] = 9.61e-9;//A/micron 641 I_g_on_n[2][10] = 9.61e-9; 642 I_g_on_n[2][20] = 9.61e-9; 643 I_g_on_n[2][30] = 9.61e-9; 644 I_g_on_n[2][40] = 9.61e-9; 645 I_g_on_n[2][50] = 9.61e-9; 646 I_g_on_n[2][60] = 9.61e-9; 647 I_g_on_n[2][70] = 9.61e-9; 648 I_g_on_n[2][80] = 9.61e-9; 649 I_g_on_n[2][90] = 9.61e-9; 650 I_g_on_n[2][100] = 9.61e-9; |
691 | 651 |
692 if (ram_cell_tech_type == lp_dram) 693 { 694 //LP-DRAM cell access transistor technology parameters 695 curr_vdd_dram_cell = 1.2; 696 Lphy[3] = 0.12; 697 Lelec[3] = 0.0756; 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; | 652 if (ram_cell_tech_type == lp_dram) { 653 //LP-DRAM cell access transistor technology parameters 654 curr_vdd_dram_cell = 1.2; 655 Lphy[3] = 0.12; 656 Lelec[3] = 0.0756; 657 curr_v_th_dram_access_transistor = 0.43806; 658 width_dram_access_transistor = 0.09; 659 curr_I_on_dram_cell = 36e-6; 660 curr_I_off_dram_cell_worst_case_length_temp = 19.6e-12; 661 curr_Wmemcella_dram = width_dram_access_transistor; 662 curr_Wmemcellpmos_dram = 0; 663 curr_Wmemcellnmos_dram = 0; 664 curr_area_cell_dram = 0.11; 665 curr_asp_ratio_cell_dram = 1.46; 666 curr_c_dram_cell = 20e-15; |
708 | 667 |
709 //LP-DRAM wordline transistor parameters 710 curr_vpp = 1.6; 711 t_ox[3] = 2.2e-3; 712 v_th[3] = 0.43806; 713 c_ox[3] = 1.22e-14; 714 mobility_eff[3] = 328.32 * (1e-2 * 1e6 * 1e-2 * 1e6); 715 Vdsat[3] = 0.43806; 716 c_g_ideal[3] = 1.46e-15; 717 c_fringe[3] = 0.08e-15; 718 c_junc[3] = 1e-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; 738 } 739 else if (ram_cell_tech_type == comm_dram) 740 { 741 //COMM-DRAM cell access transistor technology parameters 742 curr_vdd_dram_cell = 1.3; 743 Lphy[3] = 0.065; 744 Lelec[3] = 0.0426; 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; | 668 //LP-DRAM wordline transistor parameters 669 curr_vpp = 1.6; 670 t_ox[3] = 2.2e-3; 671 v_th[3] = 0.43806; 672 c_ox[3] = 1.22e-14; 673 mobility_eff[3] = 328.32 * (1e-2 * 1e6 * 1e-2 * 1e6); 674 Vdsat[3] = 0.43806; 675 c_g_ideal[3] = 1.46e-15; 676 c_fringe[3] = 0.08e-15; 677 c_junc[3] = 1e-15 ; 678 I_on_n[3] = 399.8e-6; 679 I_on_p[3] = 243.4e-6; 680 nmos_effective_resistance_multiplier = 1.65; 681 n_to_p_eff_curr_drv_ratio[3] = 2.05; 682 gmp_to_gmn_multiplier[3] = 0.90; 683 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 684 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 685 long_channel_leakage_reduction[3] = 1; 686 I_off_n[3][0] = 2.23e-11; 687 I_off_n[3][10] = 3.46e-11; 688 I_off_n[3][20] = 5.24e-11; 689 I_off_n[3][30] = 7.75e-11; 690 I_off_n[3][40] = 1.12e-10; 691 I_off_n[3][50] = 1.58e-10; 692 I_off_n[3][60] = 2.18e-10; 693 I_off_n[3][70] = 2.88e-10; 694 I_off_n[3][80] = 3.63e-10; 695 I_off_n[3][90] = 4.41e-10; 696 I_off_n[3][100] = 5.36e-10; 697 } else if (ram_cell_tech_type == comm_dram) { 698 //COMM-DRAM cell access transistor technology parameters 699 curr_vdd_dram_cell = 1.3; 700 Lphy[3] = 0.065; 701 Lelec[3] = 0.0426; 702 curr_v_th_dram_access_transistor = 1; 703 width_dram_access_transistor = 0.065; 704 curr_I_on_dram_cell = 20e-6; 705 curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 706 curr_Wmemcella_dram = width_dram_access_transistor; 707 curr_Wmemcellpmos_dram = 0; 708 curr_Wmemcellnmos_dram = 0; 709 curr_area_cell_dram = 6 * 0.065 * 0.065; 710 curr_asp_ratio_cell_dram = 1.5; 711 curr_c_dram_cell = 30e-15; |
755 | 712 |
756 //COMM-DRAM wordline transistor parameters 757 curr_vpp = 3.3; 758 t_ox[3] = 5e-3; 759 v_th[3] = 1.0; 760 c_ox[3] = 6.16e-15; 761 mobility_eff[3] = 303.44 * (1e-2 * 1e6 * 1e-2 * 1e6); 762 Vdsat[3] = 0.385; 763 c_g_ideal[3] = 4e-16; 764 c_fringe[3] = 0.08e-15; 765 c_junc[3] = 1e-15 ; 766 I_on_n[3] = 1031e-6; 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; 785 } | 713 //COMM-DRAM wordline transistor parameters 714 curr_vpp = 3.3; 715 t_ox[3] = 5e-3; 716 v_th[3] = 1.0; 717 c_ox[3] = 6.16e-15; 718 mobility_eff[3] = 303.44 * (1e-2 * 1e6 * 1e-2 * 1e6); 719 Vdsat[3] = 0.385; 720 c_g_ideal[3] = 4e-16; 721 c_fringe[3] = 0.08e-15; 722 c_junc[3] = 1e-15 ; 723 I_on_n[3] = 1031e-6; 724 I_on_p[3] = I_on_n[3] / 2; 725 nmos_effective_resistance_multiplier = 1.69; 726 n_to_p_eff_curr_drv_ratio[3] = 2.39; 727 gmp_to_gmn_multiplier[3] = 0.90; 728 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 729 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 730 long_channel_leakage_reduction[3] = 1; 731 I_off_n[3][0] = 1.80e-14; 732 I_off_n[3][10] = 3.64e-14; 733 I_off_n[3][20] = 7.03e-14; 734 I_off_n[3][30] = 1.31e-13; 735 I_off_n[3][40] = 2.35e-13; 736 I_off_n[3][50] = 4.09e-13; 737 I_off_n[3][60] = 6.89e-13; 738 I_off_n[3][70] = 1.13e-12; 739 I_off_n[3][80] = 1.78e-12; 740 I_off_n[3][90] = 2.71e-12; 741 I_off_n[3][100] = 3.99e-12; 742 } |
786 | 743 |
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 805 } | 744 //SRAM cell properties 745 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 746 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 747 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 748 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 749 curr_asp_ratio_cell_sram = 1.46; 750 //CAM cell properties //TODO: data need to be revisited 751 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 752 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 753 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 754 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 755 curr_asp_ratio_cell_cam = 2.92; 756 //Empirical undifferetiated core/FU coefficient 757 curr_logic_scaling_co_eff = 0.7; //Rather than scale proportionally to square of feature size, only scale linearly according to IBM cell processor 758 curr_core_tx_density = 1.25 * 0.7; 759 curr_sckt_co_eff = 1.1359; 760 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 761 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 762 } |
806 | 763 |
807 if (tech == 45) 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 812 vdd[0] = 1.0; 813 Lphy[0] = 0.018; 814 Lelec[0] = 0.01345; 815 t_ox[0] = 0.65e-3; 816 v_th[0] = .18035; 817 c_ox[0] = 3.77e-14; 818 mobility_eff[0] = 266.68 * (1e-2 * 1e6 * 1e-2 * 1e6); 819 Vdsat[0] = 9.38E-2; 820 c_g_ideal[0] = 6.78e-16; 821 c_fringe[0] = 0.05e-15; 822 c_junc[0] = 1e-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; | 764 if (tech == 45) { 765 //45nm technology-node. Corresponds to year 2010 in ITRS 766 //ITRS HP device type 767 SENSE_AMP_D = .04e-9; // s 768 SENSE_AMP_P = 2.7e-15; // J 769 vdd[0] = 1.0; 770 Lphy[0] = 0.018; 771 Lelec[0] = 0.01345; 772 t_ox[0] = 0.65e-3; 773 v_th[0] = .18035; 774 c_ox[0] = 3.77e-14; 775 mobility_eff[0] = 266.68 * (1e-2 * 1e6 * 1e-2 * 1e6); 776 Vdsat[0] = 9.38E-2; 777 c_g_ideal[0] = 6.78e-16; 778 c_fringe[0] = 0.05e-15; 779 c_junc[0] = 1e-15; 780 I_on_n[0] = 2046.6e-6; 781 //There are certain problems with the ITRS PMOS numbers in MASTAR for 45nm. So we are using 65nm values of 782 //n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier for 45nm 783 I_on_p[0] = I_on_n[0] / 2;//This value is fixed arbitrarily but I_on_p is not being used in CACTI 784 nmos_effective_resistance_multiplier = 1.51; 785 n_to_p_eff_curr_drv_ratio[0] = 2.41; 786 gmp_to_gmn_multiplier[0] = 1.38; 787 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0]; 788 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0]; 789 //Using MASTAR, @380K, increase Lgate until Ion reduces to 90%, 790 //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74 791 long_channel_leakage_reduction[0] = 1 / 3.546; 792 I_off_n[0][0] = 2.8e-7; 793 I_off_n[0][10] = 3.28e-7; 794 I_off_n[0][20] = 3.81e-7; 795 I_off_n[0][30] = 4.39e-7; 796 I_off_n[0][40] = 5.02e-7; 797 I_off_n[0][50] = 5.69e-7; 798 I_off_n[0][60] = 6.42e-7; 799 I_off_n[0][70] = 7.2e-7; 800 I_off_n[0][80] = 8.03e-7; 801 I_off_n[0][90] = 8.91e-7; 802 I_off_n[0][100] = 9.84e-7; |
844 | 803 |
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; | 804 I_g_on_n[0][0] = 3.59e-8;//A/micron 805 I_g_on_n[0][10] = 3.59e-8; 806 I_g_on_n[0][20] = 3.59e-8; 807 I_g_on_n[0][30] = 3.59e-8; 808 I_g_on_n[0][40] = 3.59e-8; 809 I_g_on_n[0][50] = 3.59e-8; 810 I_g_on_n[0][60] = 3.59e-8; 811 I_g_on_n[0][70] = 3.59e-8; 812 I_g_on_n[0][80] = 3.59e-8; 813 I_g_on_n[0][90] = 3.59e-8; 814 I_g_on_n[0][100] = 3.59e-8; |
856 | 815 |
857 //ITRS LSTP device type 858 vdd[1] = 1.1; 859 Lphy[1] = 0.028; 860 Lelec[1] = 0.0212; 861 t_ox[1] = 1.4e-3; 862 v_th[1] = 0.50245; 863 c_ox[1] = 2.01e-14; 864 mobility_eff[1] = 363.96 * (1e-2 * 1e6 * 1e-2 * 1e6); 865 Vdsat[1] = 9.12e-2; 866 c_g_ideal[1] = 5.18e-16; 867 c_fringe[1] = 0.08e-15; 868 c_junc[1] = 1e-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; | 816 //ITRS LSTP device type 817 vdd[1] = 1.1; 818 Lphy[1] = 0.028; 819 Lelec[1] = 0.0212; 820 t_ox[1] = 1.4e-3; 821 v_th[1] = 0.50245; 822 c_ox[1] = 2.01e-14; 823 mobility_eff[1] = 363.96 * (1e-2 * 1e6 * 1e-2 * 1e6); 824 Vdsat[1] = 9.12e-2; 825 c_g_ideal[1] = 5.18e-16; 826 c_fringe[1] = 0.08e-15; 827 c_junc[1] = 1e-15; 828 I_on_n[1] = 666.2e-6; 829 I_on_p[1] = I_on_n[1] / 2; 830 nmos_effective_resistance_multiplier = 1.99; 831 n_to_p_eff_curr_drv_ratio[1] = 2.23; 832 gmp_to_gmn_multiplier[1] = 0.99; 833 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 834 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 835 long_channel_leakage_reduction[1] = 1 / 2.08; 836 I_off_n[1][0] = 1.01e-11; 837 I_off_n[1][10] = 1.65e-11; 838 I_off_n[1][20] = 2.62e-11; 839 I_off_n[1][30] = 4.06e-11; 840 I_off_n[1][40] = 6.12e-11; 841 I_off_n[1][50] = 9.02e-11; 842 I_off_n[1][60] = 1.3e-10; 843 I_off_n[1][70] = 1.83e-10; 844 I_off_n[1][80] = 2.51e-10; 845 I_off_n[1][90] = 3.29e-10; 846 I_off_n[1][100] = 4.1e-10; |
888 | 847 |
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; | 848 I_g_on_n[1][0] = 9.47e-12;//A/micron 849 I_g_on_n[1][10] = 9.47e-12; 850 I_g_on_n[1][20] = 9.47e-12; 851 I_g_on_n[1][30] = 9.47e-12; 852 I_g_on_n[1][40] = 9.47e-12; 853 I_g_on_n[1][50] = 9.47e-12; 854 I_g_on_n[1][60] = 9.47e-12; 855 I_g_on_n[1][70] = 9.47e-12; 856 I_g_on_n[1][80] = 9.47e-12; 857 I_g_on_n[1][90] = 9.47e-12; 858 I_g_on_n[1][100] = 9.47e-12; |
900 | 859 |
901 //ITRS LOP device type 902 vdd[2] = 0.7; 903 Lphy[2] = 0.022; 904 Lelec[2] = 0.016; 905 t_ox[2] = 0.9e-3; 906 v_th[2] = 0.22599; 907 c_ox[2] = 2.82e-14;//F/micron2 908 mobility_eff[2] = 508.9 * (1e-2 * 1e6 * 1e-2 * 1e6); 909 Vdsat[2] = 5.71e-2; 910 c_g_ideal[2] = 6.2e-16; 911 c_fringe[2] = 0.073e-15; 912 c_junc[2] = 1e-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; | 860 //ITRS LOP device type 861 vdd[2] = 0.7; 862 Lphy[2] = 0.022; 863 Lelec[2] = 0.016; 864 t_ox[2] = 0.9e-3; 865 v_th[2] = 0.22599; 866 c_ox[2] = 2.82e-14;//F/micron2 867 mobility_eff[2] = 508.9 * (1e-2 * 1e6 * 1e-2 * 1e6); 868 Vdsat[2] = 5.71e-2; 869 c_g_ideal[2] = 6.2e-16; 870 c_fringe[2] = 0.073e-15; 871 c_junc[2] = 1e-15; 872 I_on_n[2] = 748.9e-6; 873 I_on_p[2] = I_on_n[2] / 2; 874 nmos_effective_resistance_multiplier = 1.76; 875 n_to_p_eff_curr_drv_ratio[2] = 2.28; 876 gmp_to_gmn_multiplier[2] = 1.11; 877 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 878 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 879 long_channel_leakage_reduction[2] = 1 / 1.92; 880 I_off_n[2][0] = 4.03e-9; 881 I_off_n[2][10] = 5.02e-9; 882 I_off_n[2][20] = 6.18e-9; 883 I_off_n[2][30] = 7.51e-9; 884 I_off_n[2][40] = 9.04e-9; 885 I_off_n[2][50] = 1.08e-8; 886 I_off_n[2][60] = 1.27e-8; 887 I_off_n[2][70] = 1.47e-8; 888 I_off_n[2][80] = 1.66e-8; 889 I_off_n[2][90] = 1.84e-8; 890 I_off_n[2][100] = 2.03e-8; |
932 | 891 |
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; | 892 I_g_on_n[2][0] = 3.24e-8;//A/micron 893 I_g_on_n[2][10] = 4.01e-8; 894 I_g_on_n[2][20] = 4.90e-8; 895 I_g_on_n[2][30] = 5.92e-8; 896 I_g_on_n[2][40] = 7.08e-8; 897 I_g_on_n[2][50] = 8.38e-8; 898 I_g_on_n[2][60] = 9.82e-8; 899 I_g_on_n[2][70] = 1.14e-7; 900 I_g_on_n[2][80] = 1.29e-7; 901 I_g_on_n[2][90] = 1.43e-7; 902 I_g_on_n[2][100] = 1.54e-7; |
944 | 903 |
945 if (ram_cell_tech_type == lp_dram) 946 { 947 //LP-DRAM cell access transistor technology parameters 948 curr_vdd_dram_cell = 1.1; 949 Lphy[3] = 0.078; 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; | 904 if (ram_cell_tech_type == lp_dram) { 905 //LP-DRAM cell access transistor technology parameters 906 curr_vdd_dram_cell = 1.1; 907 Lphy[3] = 0.078; 908 Lelec[3] = 0.0504;// Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors. 909 curr_v_th_dram_access_transistor = 0.44559; 910 width_dram_access_transistor = 0.079; 911 curr_I_on_dram_cell = 36e-6;//A 912 curr_I_off_dram_cell_worst_case_length_temp = 19.5e-12; 913 curr_Wmemcella_dram = width_dram_access_transistor; 914 curr_Wmemcellpmos_dram = 0; 915 curr_Wmemcellnmos_dram = 0; 916 curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0; 917 curr_asp_ratio_cell_dram = 1.46; 918 curr_c_dram_cell = 20e-15; |
961 | 919 |
962 //LP-DRAM wordline transistor parameters 963 curr_vpp = 1.5; 964 t_ox[3] = 2.1e-3; 965 v_th[3] = 0.44559; 966 c_ox[3] = 1.41e-14; 967 mobility_eff[3] = 426.30 * (1e-2 * 1e6 * 1e-2 * 1e6); 968 Vdsat[3] = 0.181; 969 c_g_ideal[3] = 1.10e-15; 970 c_fringe[3] = 0.08e-15; 971 c_junc[3] = 1e-15; 972 I_on_n[3] = 456e-6; 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; 991 } 992 else if (ram_cell_tech_type == comm_dram) 993 { 994 //COMM-DRAM cell access transistor technology parameters 995 curr_vdd_dram_cell = 1.1; 996 Lphy[3] = 0.045; 997 Lelec[3] = 0.0298; 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; | 920 //LP-DRAM wordline transistor parameters 921 curr_vpp = 1.5; 922 t_ox[3] = 2.1e-3; 923 v_th[3] = 0.44559; 924 c_ox[3] = 1.41e-14; 925 mobility_eff[3] = 426.30 * (1e-2 * 1e6 * 1e-2 * 1e6); 926 Vdsat[3] = 0.181; 927 c_g_ideal[3] = 1.10e-15; 928 c_fringe[3] = 0.08e-15; 929 c_junc[3] = 1e-15; 930 I_on_n[3] = 456e-6; 931 I_on_p[3] = I_on_n[3] / 2; 932 nmos_effective_resistance_multiplier = 1.65; 933 n_to_p_eff_curr_drv_ratio[3] = 2.05; 934 gmp_to_gmn_multiplier[3] = 0.90; 935 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 936 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 937 long_channel_leakage_reduction[3] = 1; 938 I_off_n[3][0] = 2.54e-11; 939 I_off_n[3][10] = 3.94e-11; 940 I_off_n[3][20] = 5.95e-11; 941 I_off_n[3][30] = 8.79e-11; 942 I_off_n[3][40] = 1.27e-10; 943 I_off_n[3][50] = 1.79e-10; 944 I_off_n[3][60] = 2.47e-10; 945 I_off_n[3][70] = 3.31e-10; 946 I_off_n[3][80] = 4.26e-10; 947 I_off_n[3][90] = 5.27e-10; 948 I_off_n[3][100] = 6.46e-10; 949 } else if (ram_cell_tech_type == comm_dram) { 950 //COMM-DRAM cell access transistor technology parameters 951 curr_vdd_dram_cell = 1.1; 952 Lphy[3] = 0.045; 953 Lelec[3] = 0.0298; 954 curr_v_th_dram_access_transistor = 1; 955 width_dram_access_transistor = 0.045; 956 curr_I_on_dram_cell = 20e-6;//A 957 curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 958 curr_Wmemcella_dram = width_dram_access_transistor; 959 curr_Wmemcellpmos_dram = 0; 960 curr_Wmemcellnmos_dram = 0; 961 curr_area_cell_dram = 6 * 0.045 * 0.045; 962 curr_asp_ratio_cell_dram = 1.5; 963 curr_c_dram_cell = 30e-15; |
1008 | 964 |
1009 //COMM-DRAM wordline transistor parameters 1010 curr_vpp = 2.7; 1011 t_ox[3] = 4e-3; 1012 v_th[3] = 1.0; 1013 c_ox[3] = 7.98e-15; 1014 mobility_eff[3] = 368.58 * (1e-2 * 1e6 * 1e-2 * 1e6); 1015 Vdsat[3] = 0.147; 1016 c_g_ideal[3] = 3.59e-16; 1017 c_fringe[3] = 0.08e-15; 1018 c_junc[3] = 1e-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; 1038 } | 965 //COMM-DRAM wordline transistor parameters 966 curr_vpp = 2.7; 967 t_ox[3] = 4e-3; 968 v_th[3] = 1.0; 969 c_ox[3] = 7.98e-15; 970 mobility_eff[3] = 368.58 * (1e-2 * 1e6 * 1e-2 * 1e6); 971 Vdsat[3] = 0.147; 972 c_g_ideal[3] = 3.59e-16; 973 c_fringe[3] = 0.08e-15; 974 c_junc[3] = 1e-15; 975 I_on_n[3] = 999.4e-6; 976 I_on_p[3] = I_on_n[3] / 2; 977 nmos_effective_resistance_multiplier = 1.69; 978 n_to_p_eff_curr_drv_ratio[3] = 1.95; 979 gmp_to_gmn_multiplier[3] = 0.90; 980 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 981 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 982 long_channel_leakage_reduction[3] = 1; 983 I_off_n[3][0] = 1.31e-14; 984 I_off_n[3][10] = 2.68e-14; 985 I_off_n[3][20] = 5.25e-14; 986 I_off_n[3][30] = 9.88e-14; 987 I_off_n[3][40] = 1.79e-13; 988 I_off_n[3][50] = 3.15e-13; 989 I_off_n[3][60] = 5.36e-13; 990 I_off_n[3][70] = 8.86e-13; 991 I_off_n[3][80] = 1.42e-12; 992 I_off_n[3][90] = 2.20e-12; 993 I_off_n[3][100] = 3.29e-12; 994 } |
1039 1040 | 995 996 |
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 1059 } | 997 //SRAM cell properties 998 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 999 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 1000 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 1001 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 1002 curr_asp_ratio_cell_sram = 1.46; 1003 //CAM cell properties //TODO: data need to be revisited 1004 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 1005 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 1006 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 1007 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 1008 curr_asp_ratio_cell_cam = 2.92; 1009 //Empirical undifferetiated core/FU coefficient 1010 curr_logic_scaling_co_eff = 0.7 * 0.7; 1011 curr_core_tx_density = 1.25; 1012 curr_sckt_co_eff = 1.1387; 1013 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 1014 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 1015 } |
1060 | 1016 |
1061 if (tech == 32) 1062 { 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 1067 //HP and LSTP. 1068 vdd[0] = 0.9; 1069 Lphy[0] = 0.013; 1070 Lelec[0] = 0.01013; 1071 t_ox[0] = 0.5e-3; 1072 v_th[0] = 0.21835; 1073 c_ox[0] = 4.11e-14; 1074 mobility_eff[0] = 361.84 * (1e-2 * 1e6 * 1e-2 * 1e6); 1075 Vdsat[0] = 5.09E-2; 1076 c_g_ideal[0] = 5.34e-16; 1077 c_fringe[0] = 0.04e-15; 1078 c_junc[0] = 1e-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; | 1017 if (tech == 32) { 1018 SENSE_AMP_D = .03e-9; // s 1019 SENSE_AMP_P = 2.16e-15; // J 1020 //For 2013, MPU/ASIC stagger-contacted M1 half-pitch is 32 nm (so this is 32 nm 1021 //technology i.e. FEATURESIZE = 0.032). Using the SOI process numbers for 1022 //HP and LSTP. 1023 vdd[0] = 0.9; 1024 Lphy[0] = 0.013; 1025 Lelec[0] = 0.01013; 1026 t_ox[0] = 0.5e-3; 1027 v_th[0] = 0.21835; 1028 c_ox[0] = 4.11e-14; 1029 mobility_eff[0] = 361.84 * (1e-2 * 1e6 * 1e-2 * 1e6); 1030 Vdsat[0] = 5.09E-2; 1031 c_g_ideal[0] = 5.34e-16; 1032 c_fringe[0] = 0.04e-15; 1033 c_junc[0] = 1e-15; 1034 I_on_n[0] = 2211.7e-6; 1035 I_on_p[0] = I_on_n[0] / 2; 1036 nmos_effective_resistance_multiplier = 1.49; 1037 n_to_p_eff_curr_drv_ratio[0] = 2.41; 1038 gmp_to_gmn_multiplier[0] = 1.38; 1039 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 1040 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 1041 long_channel_leakage_reduction[0] = 1 / 3.706; 1042 //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%), 1043 //whichever comes first 1044 I_off_n[0][0] = 1.52e-7; 1045 I_off_n[0][10] = 1.55e-7; 1046 I_off_n[0][20] = 1.59e-7; 1047 I_off_n[0][30] = 1.68e-7; 1048 I_off_n[0][40] = 1.90e-7; 1049 I_off_n[0][50] = 2.69e-7; 1050 I_off_n[0][60] = 5.32e-7; 1051 I_off_n[0][70] = 1.02e-6; 1052 I_off_n[0][80] = 1.62e-6; 1053 I_off_n[0][90] = 2.73e-6; 1054 I_off_n[0][100] = 6.1e-6; |
1100 | 1055 |
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; | 1056 I_g_on_n[0][0] = 6.55e-8;//A/micron 1057 I_g_on_n[0][10] = 6.55e-8; 1058 I_g_on_n[0][20] = 6.55e-8; 1059 I_g_on_n[0][30] = 6.55e-8; 1060 I_g_on_n[0][40] = 6.55e-8; 1061 I_g_on_n[0][50] = 6.55e-8; 1062 I_g_on_n[0][60] = 6.55e-8; 1063 I_g_on_n[0][70] = 6.55e-8; 1064 I_g_on_n[0][80] = 6.55e-8; 1065 I_g_on_n[0][90] = 6.55e-8; 1066 I_g_on_n[0][100] = 6.55e-8; |
1112 | 1067 |
1113// 32 DG 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; | 1068 //LSTP device type 1069 vdd[1] = 1; 1070 Lphy[1] = 0.020; 1071 Lelec[1] = 0.0173; 1072 t_ox[1] = 1.2e-3; 1073 v_th[1] = 0.513; 1074 c_ox[1] = 2.29e-14; 1075 mobility_eff[1] = 347.46 * (1e-2 * 1e6 * 1e-2 * 1e6); 1076 Vdsat[1] = 8.64e-2; 1077 c_g_ideal[1] = 4.58e-16; 1078 c_fringe[1] = 0.053e-15; 1079 c_junc[1] = 1e-15; 1080 I_on_n[1] = 683.6e-6; 1081 I_on_p[1] = I_on_n[1] / 2; 1082 nmos_effective_resistance_multiplier = 1.99; 1083 n_to_p_eff_curr_drv_ratio[1] = 2.23; 1084 gmp_to_gmn_multiplier[1] = 0.99; 1085 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 1086 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 1087 long_channel_leakage_reduction[1] = 1 / 1.93; 1088 I_off_n[1][0] = 2.06e-11; 1089 I_off_n[1][10] = 3.30e-11; 1090 I_off_n[1][20] = 5.15e-11; 1091 I_off_n[1][30] = 7.83e-11; 1092 I_off_n[1][40] = 1.16e-10; 1093 I_off_n[1][50] = 1.69e-10; 1094 I_off_n[1][60] = 2.40e-10; 1095 I_off_n[1][70] = 3.34e-10; 1096 I_off_n[1][80] = 4.54e-10; 1097 I_off_n[1][90] = 5.96e-10; 1098 I_off_n[1][100] = 7.44e-10; |
1125 | 1099 |
1126 //LSTP device type 1127 vdd[1] = 1; 1128 Lphy[1] = 0.020; 1129 Lelec[1] = 0.0173; 1130 t_ox[1] = 1.2e-3; 1131 v_th[1] = 0.513; 1132 c_ox[1] = 2.29e-14; 1133 mobility_eff[1] = 347.46 * (1e-2 * 1e6 * 1e-2 * 1e6); 1134 Vdsat[1] = 8.64e-2; 1135 c_g_ideal[1] = 4.58e-16; 1136 c_fringe[1] = 0.053e-15; 1137 c_junc[1] = 1e-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; | 1100 I_g_on_n[1][0] = 3.73e-11;//A/micron 1101 I_g_on_n[1][10] = 3.73e-11; 1102 I_g_on_n[1][20] = 3.73e-11; 1103 I_g_on_n[1][30] = 3.73e-11; 1104 I_g_on_n[1][40] = 3.73e-11; 1105 I_g_on_n[1][50] = 3.73e-11; 1106 I_g_on_n[1][60] = 3.73e-11; 1107 I_g_on_n[1][70] = 3.73e-11; 1108 I_g_on_n[1][80] = 3.73e-11; 1109 I_g_on_n[1][90] = 3.73e-11; 1110 I_g_on_n[1][100] = 3.73e-11; |
1157 | 1111 |
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; | 1112 //LOP device type 1113 vdd[2] = 0.6; 1114 Lphy[2] = 0.016; 1115 Lelec[2] = 0.01232; 1116 t_ox[2] = 0.9e-3; 1117 v_th[2] = 0.24227; 1118 c_ox[2] = 2.84e-14; 1119 mobility_eff[2] = 513.52 * (1e-2 * 1e6 * 1e-2 * 1e6); 1120 Vdsat[2] = 4.64e-2; 1121 c_g_ideal[2] = 4.54e-16; 1122 c_fringe[2] = 0.057e-15; 1123 c_junc[2] = 1e-15; 1124 I_on_n[2] = 827.8e-6; 1125 I_on_p[2] = I_on_n[2] / 2; 1126 nmos_effective_resistance_multiplier = 1.73; 1127 n_to_p_eff_curr_drv_ratio[2] = 2.28; 1128 gmp_to_gmn_multiplier[2] = 1.11; 1129 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 1130 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 1131 long_channel_leakage_reduction[2] = 1 / 1.89; 1132 I_off_n[2][0] = 5.94e-8; 1133 I_off_n[2][10] = 7.23e-8; 1134 I_off_n[2][20] = 8.7e-8; 1135 I_off_n[2][30] = 1.04e-7; 1136 I_off_n[2][40] = 1.22e-7; 1137 I_off_n[2][50] = 1.43e-7; 1138 I_off_n[2][60] = 1.65e-7; 1139 I_off_n[2][70] = 1.90e-7; 1140 I_off_n[2][80] = 2.15e-7; 1141 I_off_n[2][90] = 2.39e-7; 1142 I_off_n[2][100] = 2.63e-7; |
1169 | 1143 |
1144 I_g_on_n[2][0] = 2.93e-9;//A/micron 1145 I_g_on_n[2][10] = 2.93e-9; 1146 I_g_on_n[2][20] = 2.93e-9; 1147 I_g_on_n[2][30] = 2.93e-9; 1148 I_g_on_n[2][40] = 2.93e-9; 1149 I_g_on_n[2][50] = 2.93e-9; 1150 I_g_on_n[2][60] = 2.93e-9; 1151 I_g_on_n[2][70] = 2.93e-9; 1152 I_g_on_n[2][80] = 2.93e-9; 1153 I_g_on_n[2][90] = 2.93e-9; 1154 I_g_on_n[2][100] = 2.93e-9; |
|
1170 | 1155 |
1171 //LOP device type 1172 vdd[2] = 0.6; 1173 Lphy[2] = 0.016; 1174 Lelec[2] = 0.01232; 1175 t_ox[2] = 0.9e-3; 1176 v_th[2] = 0.24227; 1177 c_ox[2] = 2.84e-14; 1178 mobility_eff[2] = 513.52 * (1e-2 * 1e6 * 1e-2 * 1e6); 1179 Vdsat[2] = 4.64e-2; 1180 c_g_ideal[2] = 4.54e-16; 1181 c_fringe[2] = 0.057e-15; 1182 c_junc[2] = 1e-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; | 1156 if (ram_cell_tech_type == lp_dram) { 1157 //LP-DRAM cell access transistor technology parameters 1158 curr_vdd_dram_cell = 1.0; 1159 Lphy[3] = 0.056; 1160 Lelec[3] = 0.0419;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors. 1161 curr_v_th_dram_access_transistor = 0.44129; 1162 width_dram_access_transistor = 0.056; 1163 curr_I_on_dram_cell = 36e-6; 1164 curr_I_off_dram_cell_worst_case_length_temp = 18.9e-12; 1165 curr_Wmemcella_dram = width_dram_access_transistor; 1166 curr_Wmemcellpmos_dram = 0; 1167 curr_Wmemcellnmos_dram = 0; 1168 curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0; 1169 curr_asp_ratio_cell_dram = 1.46; 1170 curr_c_dram_cell = 20e-15; |
1202 | 1171 |
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; | 1172 //LP-DRAM wordline transistor parameters 1173 curr_vpp = 1.5; 1174 t_ox[3] = 2e-3; 1175 v_th[3] = 0.44467; 1176 c_ox[3] = 1.48e-14; 1177 mobility_eff[3] = 408.12 * (1e-2 * 1e6 * 1e-2 * 1e6); 1178 Vdsat[3] = 0.174; 1179 c_g_ideal[3] = 7.45e-16; 1180 c_fringe[3] = 0.053e-15; 1181 c_junc[3] = 1e-15; 1182 I_on_n[3] = 1055.4e-6; 1183 I_on_p[3] = I_on_n[3] / 2; 1184 nmos_effective_resistance_multiplier = 1.65; 1185 n_to_p_eff_curr_drv_ratio[3] = 2.05; 1186 gmp_to_gmn_multiplier[3] = 0.90; 1187 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 1188 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 1189 long_channel_leakage_reduction[3] = 1; 1190 I_off_n[3][0] = 3.57e-11; 1191 I_off_n[3][10] = 5.51e-11; 1192 I_off_n[3][20] = 8.27e-11; 1193 I_off_n[3][30] = 1.21e-10; 1194 I_off_n[3][40] = 1.74e-10; 1195 I_off_n[3][50] = 2.45e-10; 1196 I_off_n[3][60] = 3.38e-10; 1197 I_off_n[3][70] = 4.53e-10; 1198 I_off_n[3][80] = 5.87e-10; 1199 I_off_n[3][90] = 7.29e-10; 1200 I_off_n[3][100] = 8.87e-10; 1201 } else if (ram_cell_tech_type == comm_dram) { 1202 //COMM-DRAM cell access transistor technology parameters 1203 curr_vdd_dram_cell = 1.0; 1204 Lphy[3] = 0.032; 1205 Lelec[3] = 0.0205;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors. 1206 curr_v_th_dram_access_transistor = 1; 1207 width_dram_access_transistor = 0.032; 1208 curr_I_on_dram_cell = 20e-6; 1209 curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 1210 curr_Wmemcella_dram = width_dram_access_transistor; 1211 curr_Wmemcellpmos_dram = 0; 1212 curr_Wmemcellnmos_dram = 0; 1213 curr_area_cell_dram = 6 * 0.032 * 0.032; 1214 curr_asp_ratio_cell_dram = 1.5; 1215 curr_c_dram_cell = 30e-15; |
1214 | 1216 |
1215 if (ram_cell_tech_type == lp_dram) 1216 { 1217 //LP-DRAM cell access transistor technology parameters 1218 curr_vdd_dram_cell = 1.0; 1219 Lphy[3] = 0.056; 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; | 1217 //COMM-DRAM wordline transistor parameters 1218 curr_vpp = 2.6; 1219 t_ox[3] = 4e-3; 1220 v_th[3] = 1.0; 1221 c_ox[3] = 7.99e-15; 1222 mobility_eff[3] = 380.76 * (1e-2 * 1e6 * 1e-2 * 1e6); 1223 Vdsat[3] = 0.129; 1224 c_g_ideal[3] = 2.56e-16; 1225 c_fringe[3] = 0.053e-15; 1226 c_junc[3] = 1e-15; 1227 I_on_n[3] = 1024.5e-6; 1228 I_on_p[3] = I_on_n[3] / 2; 1229 nmos_effective_resistance_multiplier = 1.69; 1230 n_to_p_eff_curr_drv_ratio[3] = 1.95; 1231 gmp_to_gmn_multiplier[3] = 0.90; 1232 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 1233 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 1234 long_channel_leakage_reduction[3] = 1; 1235 I_off_n[3][0] = 3.63e-14; 1236 I_off_n[3][10] = 7.18e-14; 1237 I_off_n[3][20] = 1.36e-13; 1238 I_off_n[3][30] = 2.49e-13; 1239 I_off_n[3][40] = 4.41e-13; 1240 I_off_n[3][50] = 7.55e-13; 1241 I_off_n[3][60] = 1.26e-12; 1242 I_off_n[3][70] = 2.03e-12; 1243 I_off_n[3][80] = 3.19e-12; 1244 I_off_n[3][90] = 4.87e-12; 1245 I_off_n[3][100] = 7.16e-12; 1246 } |
1231 | 1247 |
1232 //LP-DRAM wordline transistor parameters 1233 curr_vpp = 1.5; 1234 t_ox[3] = 2e-3; 1235 v_th[3] = 0.44467; 1236 c_ox[3] = 1.48e-14; 1237 mobility_eff[3] = 408.12 * (1e-2 * 1e6 * 1e-2 * 1e6); 1238 Vdsat[3] = 0.174; 1239 c_g_ideal[3] = 7.45e-16; 1240 c_fringe[3] = 0.053e-15; 1241 c_junc[3] = 1e-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; 1261 } 1262 else if (ram_cell_tech_type == comm_dram) 1263 { 1264 //COMM-DRAM cell access transistor technology parameters 1265 curr_vdd_dram_cell = 1.0; 1266 Lphy[3] = 0.032; 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; | 1248 //SRAM cell properties 1249 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 1250 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 1251 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 1252 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 1253 curr_asp_ratio_cell_sram = 1.46; 1254 //CAM cell properties //TODO: data need to be revisited 1255 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 1256 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 1257 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 1258 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 1259 curr_asp_ratio_cell_cam = 2.92; 1260 //Empirical undifferetiated core/FU coefficient 1261 curr_logic_scaling_co_eff = 0.7 * 0.7 * 0.7; 1262 curr_core_tx_density = 1.25 / 0.7; 1263 curr_sckt_co_eff = 1.1111; 1264 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 1265 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 1266 } |
1278 | 1267 |
1279 //COMM-DRAM wordline transistor parameters 1280 curr_vpp = 2.6; 1281 t_ox[3] = 4e-3; 1282 v_th[3] = 1.0; 1283 c_ox[3] = 7.99e-15; 1284 mobility_eff[3] = 380.76 * (1e-2 * 1e6 * 1e-2 * 1e6); 1285 Vdsat[3] = 0.129; 1286 c_g_ideal[3] = 2.56e-16; 1287 c_fringe[3] = 0.053e-15; 1288 c_junc[3] = 1e-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; 1308 } | 1268 if (tech == 22) { 1269 SENSE_AMP_D = .03e-9; // s 1270 SENSE_AMP_P = 2.16e-15; // J 1271 //For 2016, MPU/ASIC stagger-contacted M1 half-pitch is 22 nm (so this is 22 nm 1272 //technology i.e. FEATURESIZE = 0.022). Using the DG process numbers for HP. 1273 //22 nm HP 1274 vdd[0] = 0.8; 1275 Lphy[0] = 0.009;//Lphy is the physical gate-length. 1276 Lelec[0] = 0.00468;//Lelec is the electrical gate-length. 1277 t_ox[0] = 0.55e-3;//micron 1278 v_th[0] = 0.1395;//V 1279 c_ox[0] = 3.63e-14;//F/micron2 1280 mobility_eff[0] = 426.07 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 1281 Vdsat[0] = 2.33e-2; //V/micron 1282 c_g_ideal[0] = 3.27e-16;//F/micron 1283 c_fringe[0] = 0.06e-15;//F/micron 1284 c_junc[0] = 0;//F/micron2 1285 I_on_n[0] = 2626.4e-6;//A/micron 1286 I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used. 1287 nmos_effective_resistance_multiplier = 1.45; 1288 n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in 1289 //"Dynamic" tab of Device workspace. 1290 gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value. 1291 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 1292 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 1293 long_channel_leakage_reduction[0] = 1 / 3.274; 1294 //From 22nm, leakage current are directly from ITRS report rather 1295 //than MASTAR, since MASTAR has serious bugs there. 1296 I_off_n[0][0] = 1.52e-7 / 1.5 * 1.2; 1297 I_off_n[0][10] = 1.55e-7 / 1.5 * 1.2; 1298 I_off_n[0][20] = 1.59e-7 / 1.5 * 1.2; 1299 I_off_n[0][30] = 1.68e-7 / 1.5 * 1.2; 1300 I_off_n[0][40] = 1.90e-7 / 1.5 * 1.2; 1301 I_off_n[0][50] = 2.69e-7 / 1.5 * 1.2; 1302 I_off_n[0][60] = 5.32e-7 / 1.5 * 1.2; 1303 I_off_n[0][70] = 1.02e-6 / 1.5 * 1.2; 1304 I_off_n[0][80] = 1.62e-6 / 1.5 * 1.2; 1305 I_off_n[0][90] = 2.73e-6 / 1.5 * 1.2; 1306 I_off_n[0][100] = 6.1e-6 / 1.5 * 1.2; 1307 //for 22nm DG HP 1308 I_g_on_n[0][0] = 1.81e-9;//A/micron 1309 I_g_on_n[0][10] = 1.81e-9; 1310 I_g_on_n[0][20] = 1.81e-9; 1311 I_g_on_n[0][30] = 1.81e-9; 1312 I_g_on_n[0][40] = 1.81e-9; 1313 I_g_on_n[0][50] = 1.81e-9; 1314 I_g_on_n[0][60] = 1.81e-9; 1315 I_g_on_n[0][70] = 1.81e-9; 1316 I_g_on_n[0][80] = 1.81e-9; 1317 I_g_on_n[0][90] = 1.81e-9; 1318 I_g_on_n[0][100] = 1.81e-9; |
1309 | 1319 |
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 1328 } | 1320 //22 nm LSTP DG 1321 vdd[1] = 0.8; 1322 Lphy[1] = 0.014; 1323 Lelec[1] = 0.008;//Lelec is the electrical gate-length. 1324 t_ox[1] = 1.1e-3;//micron 1325 v_th[1] = 0.40126;//V 1326 c_ox[1] = 2.30e-14;//F/micron2 1327 mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 1328 Vdsat[1] = 6.64e-2; //V/micron 1329 c_g_ideal[1] = 3.22e-16;//F/micron 1330 c_fringe[1] = 0.08e-15; 1331 c_junc[1] = 0;//F/micron2 1332 I_on_n[1] = 727.6e-6;//A/micron 1333 I_on_p[1] = I_on_n[1] / 2; 1334 nmos_effective_resistance_multiplier = 1.99; 1335 n_to_p_eff_curr_drv_ratio[1] = 2; 1336 gmp_to_gmn_multiplier[1] = 0.99; 1337 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron 1338 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron 1339 long_channel_leakage_reduction[1] = 1 / 1.89; 1340 I_off_n[1][0] = 2.43e-11; 1341 I_off_n[1][10] = 4.85e-11; 1342 I_off_n[1][20] = 9.68e-11; 1343 I_off_n[1][30] = 1.94e-10; 1344 I_off_n[1][40] = 3.87e-10; 1345 I_off_n[1][50] = 7.73e-10; 1346 I_off_n[1][60] = 3.55e-10; 1347 I_off_n[1][70] = 3.09e-9; 1348 I_off_n[1][80] = 6.19e-9; 1349 I_off_n[1][90] = 1.24e-8; 1350 I_off_n[1][100] = 2.48e-8; |
1329 | 1351 |
1330 if(tech == 22){ 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. 1335 //22 nm HP 1336 vdd[0] = 0.8; 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; 1367 //for 22nm DG HP 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; | 1352 I_g_on_n[1][0] = 4.51e-10;//A/micron 1353 I_g_on_n[1][10] = 4.51e-10; 1354 I_g_on_n[1][20] = 4.51e-10; 1355 I_g_on_n[1][30] = 4.51e-10; 1356 I_g_on_n[1][40] = 4.51e-10; 1357 I_g_on_n[1][50] = 4.51e-10; 1358 I_g_on_n[1][60] = 4.51e-10; 1359 I_g_on_n[1][70] = 4.51e-10; 1360 I_g_on_n[1][80] = 4.51e-10; 1361 I_g_on_n[1][90] = 4.51e-10; 1362 I_g_on_n[1][100] = 4.51e-10; |
1379 | 1363 |
1380 //22 nm LSTP DG 1381 vdd[1] = 0.8; 1382 Lphy[1] = 0.014; 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; | 1364 //22 nm LOP 1365 vdd[2] = 0.6; 1366 Lphy[2] = 0.011; 1367 Lelec[2] = 0.00604;//Lelec is the electrical gate-length. 1368 t_ox[2] = 0.8e-3;//micron 1369 v_th[2] = 0.2315;//V 1370 c_ox[2] = 2.87e-14;//F/micron2 1371 mobility_eff[2] = 698.37 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 1372 Vdsat[2] = 1.81e-2; //V/micron 1373 c_g_ideal[2] = 3.16e-16;//F/micron 1374 c_fringe[2] = 0.08e-15; 1375 c_junc[2] = 0;//F/micron2 This is Cj0 not Cjunc in MASTAR results->Dynamic Tab 1376 I_on_n[2] = 916.1e-6;//A/micron 1377 I_on_p[2] = I_on_n[2] / 2; 1378 nmos_effective_resistance_multiplier = 1.73; 1379 n_to_p_eff_curr_drv_ratio[2] = 2; 1380 gmp_to_gmn_multiplier[2] = 1.11; 1381 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];//ohm-micron 1382 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];//ohm-micron 1383 long_channel_leakage_reduction[2] = 1 / 2.38; |
1411 | 1384 |
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; | 1385 I_off_n[2][0] = 1.31e-8; 1386 I_off_n[2][10] = 2.60e-8; 1387 I_off_n[2][20] = 5.14e-8; 1388 I_off_n[2][30] = 1.02e-7; 1389 I_off_n[2][40] = 2.02e-7; 1390 I_off_n[2][50] = 3.99e-7; 1391 I_off_n[2][60] = 7.91e-7; 1392 I_off_n[2][70] = 1.09e-6; 1393 I_off_n[2][80] = 2.09e-6; 1394 I_off_n[2][90] = 4.04e-6; 1395 I_off_n[2][100] = 4.48e-6; |
1423 | 1396 |
1424 //22 nm LOP 1425 vdd[2] = 0.6; 1426 Lphy[2] = 0.011; 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; | 1397 I_g_on_n[2][0] = 2.74e-9;//A/micron 1398 I_g_on_n[2][10] = 2.74e-9; 1399 I_g_on_n[2][20] = 2.74e-9; 1400 I_g_on_n[2][30] = 2.74e-9; 1401 I_g_on_n[2][40] = 2.74e-9; 1402 I_g_on_n[2][50] = 2.74e-9; 1403 I_g_on_n[2][60] = 2.74e-9; 1404 I_g_on_n[2][70] = 2.74e-9; 1405 I_g_on_n[2][80] = 2.74e-9; 1406 I_g_on_n[2][90] = 2.74e-9; 1407 I_g_on_n[2][100] = 2.74e-9; |
1444 | 1408 |
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; | |
1456 | 1409 |
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; | |
1468 | 1410 |
1469 1470 1471 if (ram_cell_tech_type == 3) 1472 {} 1473 else if (ram_cell_tech_type == 4) 1474 { 1475 //22 nm commodity DRAM cell access transistor technology parameters. | 1411 if (ram_cell_tech_type == 3) {} else if (ram_cell_tech_type == 4) { 1412 //22 nm commodity DRAM cell access transistor technology parameters. |
1476 //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; | 1413 //parameters 1414 curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In 1415 //2005 ITRS, the value was about twice the value in 2007 ITRS 1416 Lphy[3] = 0.022;//micron 1417 Lelec[3] = 0.0181;//micron. 1418 curr_v_th_dram_access_transistor = 1;//V 1419 width_dram_access_transistor = 0.022;//micron 1420 curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always 1421 //kept constant. In reality this could perhaps be lower 1422 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A 1423 curr_Wmemcella_dram = width_dram_access_transistor; 1424 curr_Wmemcellpmos_dram = 0; 1425 curr_Wmemcellnmos_dram = 0; |
1489 curr_area_cell_dram = 6*0.022*0.022;//micron2. | 1426 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 1492 //kept constant. 1493 | 1427 curr_asp_ratio_cell_dram = 0.667; 1428 curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus 1429 //kept constant. 1430 |
1494 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR. | 1431 //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 1497 v_th[3] = 1.0;//V 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 --- 14 unchanged lines hidden (view full) --- 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; 1524 | 1432 curr_vpp = 2.3;//vpp. V 1433 t_ox[3] = 3.5e-3;//micron 1434 v_th[3] = 1.0;//V 1435 c_ox[3] = 9.06e-15;//F/micron2 1436 mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs 1437 Vdsat[3] = 0.0972; //V/micron 1438 c_g_ideal[3] = 1.99e-16;//F/micron 1439 c_fringe[3] = 0.053e-15;//F/micron --- 14 unchanged lines hidden (view full) --- 1454 I_off_n[3][40] = 1.19e-12; 1455 I_off_n[3][50] = 1.98e-12; 1456 I_off_n[3][60] = 3.22e-12; 1457 I_off_n[3][70] = 5.09e-12; 1458 I_off_n[3][80] = 7.85e-12; 1459 I_off_n[3][90] = 1.18e-11; 1460 I_off_n[3][100] = 1.72e-11; 1461 |
1525 } 1526 else 1527 { 1528 //some error handler 1529 } | 1462 } else { 1463 //some error handler 1464 } |
1530 | 1465 |
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 | 1466 //SRAM cell properties 1467 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 1468 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 1469 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 1470 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 1471 curr_asp_ratio_cell_sram = 1.46; 1472 //CAM cell properties //TODO: data need to be revisited 1473 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 1474 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 1475 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 1476 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 1477 curr_asp_ratio_cell_cam = 2.92; 1478 //Empirical undifferetiated core/FU coefficient 1479 curr_logic_scaling_co_eff = 0.7 * 0.7 * 0.7 * 0.7; 1480 curr_core_tx_density = 1.25 / 0.7 / 0.7; 1481 curr_sckt_co_eff = 1.1296; 1482 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 1483 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb |
1549 } 1550 | 1484 } 1485 |
1551 if(tech == 16){ 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. 1554 //16 nm HP 1555 vdd[0] = 0.7; 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; 1586 //for 16nm DG HP 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; | 1486 if (tech == 16) { 1487 //For 2019, MPU/ASIC stagger-contacted M1 half-pitch is 16 nm (so this is 16 nm 1488 //technology i.e. FEATURESIZE = 0.016). Using the DG process numbers for HP. 1489 //16 nm HP 1490 vdd[0] = 0.7; 1491 Lphy[0] = 0.006;//Lphy is the physical gate-length. 1492 Lelec[0] = 0.00315;//Lelec is the electrical gate-length. 1493 t_ox[0] = 0.5e-3;//micron 1494 v_th[0] = 0.1489;//V 1495 c_ox[0] = 3.83e-14;//F/micron2 Cox_elec in MASTAR 1496 mobility_eff[0] = 476.15 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 1497 Vdsat[0] = 1.42e-2; //V/micron calculated in spreadsheet 1498 c_g_ideal[0] = 2.30e-16;//F/micron 1499 c_fringe[0] = 0.06e-15;//F/micron MASTAR inputdynamic/3 1500 c_junc[0] = 0;//F/micron2 MASTAR result dynamic 1501 I_on_n[0] = 2768.4e-6;//A/micron 1502 I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used. 1503 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. 1504 n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in 1505 //"Dynamic" tab of Device workspace. 1506 gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value. 1507 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 1508 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 1509 long_channel_leakage_reduction[0] = 1 / 2.655; 1510 I_off_n[0][0] = 1.52e-7 / 1.5 * 1.2 * 1.07; 1511 I_off_n[0][10] = 1.55e-7 / 1.5 * 1.2 * 1.07; 1512 I_off_n[0][20] = 1.59e-7 / 1.5 * 1.2 * 1.07; 1513 I_off_n[0][30] = 1.68e-7 / 1.5 * 1.2 * 1.07; 1514 I_off_n[0][40] = 1.90e-7 / 1.5 * 1.2 * 1.07; 1515 I_off_n[0][50] = 2.69e-7 / 1.5 * 1.2 * 1.07; 1516 I_off_n[0][60] = 5.32e-7 / 1.5 * 1.2 * 1.07; 1517 I_off_n[0][70] = 1.02e-6 / 1.5 * 1.2 * 1.07; 1518 I_off_n[0][80] = 1.62e-6 / 1.5 * 1.2 * 1.07; 1519 I_off_n[0][90] = 2.73e-6 / 1.5 * 1.2 * 1.07; 1520 I_off_n[0][100] = 6.1e-6 / 1.5 * 1.2 * 1.07; 1521 //for 16nm DG HP 1522 I_g_on_n[0][0] = 1.07e-9;//A/micron 1523 I_g_on_n[0][10] = 1.07e-9; 1524 I_g_on_n[0][20] = 1.07e-9; 1525 I_g_on_n[0][30] = 1.07e-9; 1526 I_g_on_n[0][40] = 1.07e-9; 1527 I_g_on_n[0][50] = 1.07e-9; 1528 I_g_on_n[0][60] = 1.07e-9; 1529 I_g_on_n[0][70] = 1.07e-9; 1530 I_g_on_n[0][80] = 1.07e-9; 1531 I_g_on_n[0][90] = 1.07e-9; 1532 I_g_on_n[0][100] = 1.07e-9; |
1598 | 1533 |
1599// //16 nm LSTP DG 1600// vdd[1] = 0.8; 1601// Lphy[1] = 0.014; 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; 1629// 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; 1642 1643 1644 if (ram_cell_tech_type == 3) 1645 {} 1646 else if (ram_cell_tech_type == 4) 1647 { 1648 //22 nm commodity DRAM cell access transistor technology parameters. | 1534 if (ram_cell_tech_type == 3) {} else if (ram_cell_tech_type == 4) { 1535 //22 nm commodity DRAM cell access transistor technology parameters. |
1649 //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; | 1536 //parameters 1537 curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In 1538 //2005 ITRS, the value was about twice the value in 2007 ITRS 1539 Lphy[3] = 0.022;//micron 1540 Lelec[3] = 0.0181;//micron. 1541 curr_v_th_dram_access_transistor = 1;//V 1542 width_dram_access_transistor = 0.022;//micron 1543 curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always 1544 //kept constant. In reality this could perhaps be lower 1545 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A 1546 curr_Wmemcella_dram = width_dram_access_transistor; 1547 curr_Wmemcellpmos_dram = 0; 1548 curr_Wmemcellnmos_dram = 0; |
1662 curr_area_cell_dram = 6*0.022*0.022;//micron2. | 1549 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 1665 //kept constant. 1666 | 1550 curr_asp_ratio_cell_dram = 0.667; 1551 curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus 1552 //kept constant. 1553 |
1667 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR. | 1554 //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 1670 v_th[3] = 1.0;//V 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 --- 14 unchanged lines hidden (view full) --- 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; 1697 | 1555 curr_vpp = 2.3;//vpp. V 1556 t_ox[3] = 3.5e-3;//micron 1557 v_th[3] = 1.0;//V 1558 c_ox[3] = 9.06e-15;//F/micron2 1559 mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs 1560 Vdsat[3] = 0.0972; //V/micron 1561 c_g_ideal[3] = 1.99e-16;//F/micron 1562 c_fringe[3] = 0.053e-15;//F/micron --- 14 unchanged lines hidden (view full) --- 1577 I_off_n[3][40] = 1.19e-12; 1578 I_off_n[3][50] = 1.98e-12; 1579 I_off_n[3][60] = 3.22e-12; 1580 I_off_n[3][70] = 5.09e-12; 1581 I_off_n[3][80] = 7.85e-12; 1582 I_off_n[3][90] = 1.18e-11; 1583 I_off_n[3][100] = 1.72e-11; 1584 |
1698 } 1699 else 1700 { 1701 //some error handler 1702 } | 1585 } else { 1586 //some error handler 1587 } |
1703 | 1588 |
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 | 1589 //SRAM cell properties 1590 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 1591 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 1592 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 1593 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 1594 curr_asp_ratio_cell_sram = 1.46; 1595 //CAM cell properties //TODO: data need to be revisited 1596 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 1597 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 1598 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 1599 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 1600 curr_asp_ratio_cell_cam = 2.92; 1601 //Empirical undifferetiated core/FU coefficient 1602 curr_logic_scaling_co_eff = 0.7 * 0.7 * 0.7 * 0.7 * 0.7; 1603 curr_core_tx_density = 1.25 / 0.7 / 0.7 / 0.7; 1604 curr_sckt_co_eff = 1.1296; 1605 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 1606 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb |
1722 } 1723 1724 | 1607 } 1608 1609 |
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]; | 1610 g_tp.peri_global.Vdd += curr_alpha * vdd[peri_global_tech_type]; 1611 g_tp.peri_global.t_ox += curr_alpha * t_ox[peri_global_tech_type]; 1612 g_tp.peri_global.Vth += curr_alpha * v_th[peri_global_tech_type]; 1613 g_tp.peri_global.C_ox += curr_alpha * c_ox[peri_global_tech_type]; 1614 g_tp.peri_global.C_g_ideal += curr_alpha * c_g_ideal[peri_global_tech_type]; 1615 g_tp.peri_global.C_fringe += curr_alpha * c_fringe[peri_global_tech_type]; 1616 g_tp.peri_global.C_junc += curr_alpha * c_junc[peri_global_tech_type]; 1617 g_tp.peri_global.C_junc_sidewall = 0.25e-15; // F/micron 1618 g_tp.peri_global.l_phy += curr_alpha * Lphy[peri_global_tech_type]; 1619 g_tp.peri_global.l_elec += curr_alpha * Lelec[peri_global_tech_type]; 1620 g_tp.peri_global.I_on_n += curr_alpha * I_on_n[peri_global_tech_type]; 1621 g_tp.peri_global.R_nch_on += curr_alpha * Rnchannelon[peri_global_tech_type]; 1622 g_tp.peri_global.R_pch_on += curr_alpha * Rpchannelon[peri_global_tech_type]; 1623 g_tp.peri_global.n_to_p_eff_curr_drv_ratio 1624 += curr_alpha * n_to_p_eff_curr_drv_ratio[peri_global_tech_type]; 1625 g_tp.peri_global.long_channel_leakage_reduction 1626 += curr_alpha * long_channel_leakage_reduction[peri_global_tech_type]; 1627 g_tp.peri_global.I_off_n += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300]; 1628 g_tp.peri_global.I_off_p += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300]; 1629 g_tp.peri_global.I_g_on_n += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300]; 1630 g_tp.peri_global.I_g_on_p += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300]; 1631 gmp_to_gmn_multiplier_periph_global += curr_alpha * gmp_to_gmn_multiplier[peri_global_tech_type]; |
1747 | 1632 |
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]; | 1633 g_tp.sram_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type]; 1634 g_tp.sram_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type]; 1635 g_tp.sram_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type]; 1636 g_tp.sram_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type]; 1637 g_tp.sram_cell.Vth += curr_alpha * v_th[ram_cell_tech_type]; 1638 g_tp.sram_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type]; 1639 g_tp.sram_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type]; 1640 g_tp.sram_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type]; 1641 g_tp.sram_cell.C_junc_sidewall = 0.25e-15; // F/micron 1642 g_tp.sram_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type]; 1643 g_tp.sram_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type]; 1644 g_tp.sram_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type]; 1645 g_tp.sram_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type]; 1646 g_tp.sram_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type]; 1647 g_tp.sram_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 1648 g_tp.sram_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 1649 g_tp.sram_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; 1650 g_tp.sram_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; |
1766 | 1651 |
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]; | 1652 g_tp.dram_cell_Vdd += curr_alpha * curr_vdd_dram_cell; 1653 g_tp.dram_acc.Vth += curr_alpha * curr_v_th_dram_access_transistor; 1654 g_tp.dram_acc.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor]; 1655 g_tp.dram_acc.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor]; 1656 g_tp.dram_acc.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor]; 1657 g_tp.dram_acc.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor]; 1658 g_tp.dram_acc.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor]; 1659 g_tp.dram_acc.C_junc_sidewall = 0.25e-15; // F/micron 1660 g_tp.dram_cell_I_on += curr_alpha * curr_I_on_dram_cell; 1661 g_tp.dram_cell_I_off_worst_case_len_temp += curr_alpha * curr_I_off_dram_cell_worst_case_length_temp; 1662 g_tp.dram_acc.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor]; 1663 g_tp.dram_cell_C += curr_alpha * curr_c_dram_cell; 1664 g_tp.vpp += curr_alpha * curr_vpp; 1665 g_tp.dram_wl.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor]; 1666 g_tp.dram_wl.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor]; 1667 g_tp.dram_wl.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor]; 1668 g_tp.dram_wl.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor]; 1669 g_tp.dram_wl.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor]; 1670 g_tp.dram_wl.C_junc_sidewall = 0.25e-15; // F/micron 1671 g_tp.dram_wl.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor]; 1672 g_tp.dram_wl.R_nch_on += curr_alpha * Rnchannelon[dram_cell_tech_flavor]; 1673 g_tp.dram_wl.R_pch_on += curr_alpha * Rpchannelon[dram_cell_tech_flavor]; 1674 g_tp.dram_wl.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[dram_cell_tech_flavor]; 1675 g_tp.dram_wl.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[dram_cell_tech_flavor]; 1676 g_tp.dram_wl.I_off_n += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300]; 1677 g_tp.dram_wl.I_off_p += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300]; |
1793 | 1678 |
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]; | 1679 g_tp.cam_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type]; 1680 g_tp.cam_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type]; 1681 g_tp.cam_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type]; 1682 g_tp.cam_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type]; 1683 g_tp.cam_cell.Vth += curr_alpha * v_th[ram_cell_tech_type]; 1684 g_tp.cam_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type]; 1685 g_tp.cam_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type]; 1686 g_tp.cam_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type]; 1687 g_tp.cam_cell.C_junc_sidewall = 0.25e-15; // F/micron 1688 g_tp.cam_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type]; 1689 g_tp.cam_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type]; 1690 g_tp.cam_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type]; 1691 g_tp.cam_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type]; 1692 g_tp.cam_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type]; 1693 g_tp.cam_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 1694 g_tp.cam_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 1695 g_tp.cam_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; 1696 g_tp.cam_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; |
1812 | 1697 |
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; | 1698 g_tp.dram.cell_a_w += curr_alpha * curr_Wmemcella_dram; 1699 g_tp.dram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_dram; 1700 g_tp.dram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_dram; 1701 area_cell_dram += curr_alpha * curr_area_cell_dram; 1702 asp_ratio_cell_dram += curr_alpha * curr_asp_ratio_cell_dram; |
1818 | 1703 |
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; | 1704 g_tp.sram.cell_a_w += curr_alpha * curr_Wmemcella_sram; 1705 g_tp.sram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_sram; 1706 g_tp.sram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_sram; 1707 area_cell_sram += curr_alpha * curr_area_cell_sram; 1708 asp_ratio_cell_sram += curr_alpha * curr_asp_ratio_cell_sram; |
1824 | 1709 |
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; | 1710 g_tp.cam.cell_a_w += curr_alpha * curr_Wmemcella_cam;//sheng 1711 g_tp.cam.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_cam; 1712 g_tp.cam.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_cam; 1713 area_cell_cam += curr_alpha * curr_area_cell_cam; 1714 asp_ratio_cell_cam += curr_alpha * curr_asp_ratio_cell_cam; |
1830 | 1715 |
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]; | 1716 //Sense amplifier latch Gm calculation 1717 mobility_eff_periph_global += curr_alpha * mobility_eff[peri_global_tech_type]; 1718 Vdsat_periph_global += curr_alpha * Vdsat[peri_global_tech_type]; |
1834 | 1719 |
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; 1841 } | 1720 //Empirical undifferetiated core/FU coefficient 1721 g_tp.scaling_factor.logic_scaling_co_eff += curr_alpha * curr_logic_scaling_co_eff; 1722 g_tp.scaling_factor.core_tx_density += curr_alpha * curr_core_tx_density; 1723 g_tp.chip_layout_overhead += curr_alpha * curr_chip_layout_overhead; 1724 g_tp.macro_layout_overhead += curr_alpha * curr_macro_layout_overhead; 1725 g_tp.sckt_co_eff += curr_alpha * curr_sckt_co_eff; 1726 } |
1842 1843 | 1727 1728 |
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 | 1729 //Currently we are not modeling the resistance/capacitance of poly anywhere. 1730 //Continuous function (or date have been processed) does not need linear interpolation 1731 g_tp.w_comp_inv_p1 = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process 1732 g_tp.w_comp_inv_n1 = 7.5 * g_ip->F_sz_um;//this was 6 micron for the 0.8 micron process 1733 g_tp.w_comp_inv_p2 = 25 * g_ip->F_sz_um;//this was 20 micron for the 0.8 micron process 1734 g_tp.w_comp_inv_n2 = 15 * g_ip->F_sz_um;//this was 12 micron for the 0.8 micron process 1735 g_tp.w_comp_inv_p3 = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process 1736 g_tp.w_comp_inv_n3 = 30 * g_ip->F_sz_um;//this was 24 micron for the 0.8 micron process 1737 g_tp.w_eval_inv_p = 100 * g_ip->F_sz_um;//this was 80 micron for the 0.8 micron process 1738 g_tp.w_eval_inv_n = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process 1739 g_tp.w_comp_n = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process 1740 g_tp.w_comp_p = 37.5 * g_ip->F_sz_um;//this was 30 micron for the 0.8 micron process |
1856 | 1741 |
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; | 1742 g_tp.MIN_GAP_BET_P_AND_N_DIFFS = 5 * g_ip->F_sz_um; 1743 g_tp.MIN_GAP_BET_SAME_TYPE_DIFFS = 1.5 * g_ip->F_sz_um; 1744 g_tp.HPOWERRAIL = 2 * g_ip->F_sz_um; 1745 g_tp.cell_h_def = 50 * g_ip->F_sz_um; 1746 g_tp.w_poly_contact = g_ip->F_sz_um; 1747 g_tp.spacing_poly_to_contact = g_ip->F_sz_um; 1748 g_tp.spacing_poly_to_poly = 1.5 * g_ip->F_sz_um; 1749 g_tp.ram_wl_stitching_overhead_ = 7.5 * g_ip->F_sz_um; |
1865 | 1750 |
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_; | 1751 g_tp.min_w_nmos_ = 3 * g_ip->F_sz_um / 2; 1752 g_tp.max_w_nmos_ = 100 * g_ip->F_sz_um; 1753 //was 10 micron for the 0.8 micron process 1754 g_tp.w_iso = 12.5 * g_ip->F_sz_um; 1755 // sense amplifier N-trans; was 3 micron for the 0.8 micron process 1756 g_tp.w_sense_n = 3.75 * g_ip->F_sz_um; 1757 // sense amplifier P-trans; was 6 micron for the 0.8 micron process 1758 g_tp.w_sense_p = 7.5 * g_ip->F_sz_um; 1759 // Sense enable transistor of the sense amplifier; was 4 micron for the 1760 //0.8 micron process 1761 g_tp.w_sense_en = 5 * g_ip->F_sz_um; 1762 g_tp.w_nmos_b_mux = 6 * g_tp.min_w_nmos_; 1763 g_tp.w_nmos_sa_mux= 6 * g_tp.min_w_nmos_; |
1874 | 1764 |
1875 if (ram_cell_tech_type == comm_dram) 1876 { 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 1879 } 1880 else 1881 { 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 1884 } | 1765 if (ram_cell_tech_type == comm_dram) { 1766 g_tp.max_w_nmos_dec = 8 * g_ip->F_sz_um; 1767 g_tp.h_dec = 8; // in the unit of memory cell height 1768 } else { 1769 g_tp.max_w_nmos_dec = g_tp.max_w_nmos_; 1770 g_tp.h_dec = 4; // in the unit of memory cell height 1771 } |
1885 | 1772 |
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; | 1773 g_tp.peri_global.C_overlap = 0.2 * g_tp.peri_global.C_g_ideal; 1774 g_tp.sram_cell.C_overlap = 0.2 * g_tp.sram_cell.C_g_ideal; 1775 g_tp.cam_cell.C_overlap = 0.2 * g_tp.cam_cell.C_g_ideal; |
1889 | 1776 |
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; | 1777 g_tp.dram_acc.C_overlap = 0.2 * g_tp.dram_acc.C_g_ideal; 1778 g_tp.dram_acc.R_nch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_n; 1779 //g_tp.dram_acc.R_pch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_p; |
1893 | 1780 |
1894 g_tp.dram_wl.C_overlap = 0.2 * g_tp.dram_wl.C_g_ideal; | 1781 g_tp.dram_wl.C_overlap = 0.2 * g_tp.dram_wl.C_g_ideal; |
1895 | 1782 |
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; | 1783 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; 1784 double gmp_sense_amp_latch = gmp_to_gmn_multiplier_periph_global * gmn_sense_amp_latch; 1785 g_tp.gm_sense_amp_latch = gmn_sense_amp_latch + gmp_sense_amp_latch; |
1899 | 1786 |
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; | 1787 g_tp.dram.b_w = sqrt(area_cell_dram / (asp_ratio_cell_dram)); 1788 g_tp.dram.b_h = asp_ratio_cell_dram * g_tp.dram.b_w; 1789 g_tp.sram.b_w = sqrt(area_cell_sram / (asp_ratio_cell_sram)); 1790 g_tp.sram.b_h = asp_ratio_cell_sram * g_tp.sram.b_w; 1791 g_tp.cam.b_w = sqrt(area_cell_cam / (asp_ratio_cell_cam));//Sheng 1792 g_tp.cam.b_h = asp_ratio_cell_cam * g_tp.cam.b_w; |
1906 | 1793 |
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_; | 1794 g_tp.dram.Vbitpre = g_tp.dram_cell_Vdd; 1795 g_tp.sram.Vbitpre = vdd[ram_cell_tech_type]; 1796 g_tp.cam.Vbitpre = vdd[ram_cell_tech_type];//Sheng 1797 pmos_to_nmos_sizing_r = pmos_to_nmos_sz_ratio(); 1798 g_tp.w_pmos_bl_precharge = 6 * pmos_to_nmos_sizing_r * g_tp.min_w_nmos_; 1799 g_tp.w_pmos_bl_eq = pmos_to_nmos_sizing_r * g_tp.min_w_nmos_; |
1913 1914 | 1800 1801 |
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]; | 1802 double wire_pitch [NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1803 wire_r_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1804 wire_c_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1805 horiz_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1806 vert_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1807 aspect_ratio[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1808 miller_value[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 1809 ild_thickness[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES]; |
1923 | 1810 |
1924 for (iter=0; iter<=1; ++iter) 1925 { 1926 // linear interpolation 1927 if (iter == 0) 1928 { 1929 tech = tech_lo; 1930 if (tech_lo == tech_hi) 1931 { 1932 curr_alpha = 1; 1933 } 1934 else 1935 { 1936 curr_alpha = (technology - tech_hi)/(tech_lo - tech_hi); 1937 } 1938 } 1939 else 1940 { 1941 tech = tech_hi; 1942 if (tech_lo == tech_hi) 1943 { 1944 break; 1945 } 1946 else 1947 { 1948 curr_alpha = (tech_lo - technology)/(tech_lo - tech_hi); 1949 } 1950 } | 1811 for (iter = 0; iter <= 1; ++iter) { 1812 // linear interpolation 1813 if (iter == 0) { 1814 tech = tech_lo; 1815 if (tech_lo == tech_hi) { 1816 curr_alpha = 1; 1817 } else { 1818 curr_alpha = (technology - tech_hi) / (tech_lo - tech_hi); 1819 } 1820 } else { 1821 tech = tech_hi; 1822 if (tech_lo == tech_hi) { 1823 break; 1824 } else { 1825 curr_alpha = (tech_lo - technology) / (tech_lo - tech_hi); 1826 } 1827 } |
1951 | 1828 |
1952 if (tech == 180) 1953 { 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 1962 alpha_scatter = 1; 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. | 1829 if (tech == 180) { 1830 //Aggressive projections 1831 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron 1832 aspect_ratio[0][0] = 2.0; 1833 wire_width = wire_pitch[0][0] / 2; //micron 1834 wire_thickness = aspect_ratio[0][0] * wire_width;//micron 1835 wire_spacing = wire_pitch[0][0] - wire_width;//micron 1836 barrier_thickness = 0.017;//micron 1837 dishing_thickness = 0;//micron 1838 alpha_scatter = 1; 1839 wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width, 1840 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron 1841 ild_thickness[0][0] = 0.75;//micron 1842 miller_value[0][0] = 1.5; 1843 horiz_dielectric_constant[0][0] = 2.709; 1844 vert_dielectric_constant[0][0] = 3.9; 1845 fringe_cap = 0.115e-15; //F/micron 1846 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1847 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], 1848 vert_dielectric_constant[0][0], 1849 fringe_cap);//F/micron. |
1974 | 1850 |
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], 1990 fringe_cap); | 1851 wire_pitch[0][1] = 4 * g_ip->F_sz_um; 1852 wire_width = wire_pitch[0][1] / 2; 1853 aspect_ratio[0][1] = 2.4; 1854 wire_thickness = aspect_ratio[0][1] * wire_width; 1855 wire_spacing = wire_pitch[0][1] - wire_width; 1856 wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width, 1857 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1858 ild_thickness[0][1] = 0.75;//micron 1859 miller_value[0][1] = 1.5; 1860 horiz_dielectric_constant[0][1] = 2.709; 1861 vert_dielectric_constant[0][1] = 3.9; 1862 fringe_cap = 0.115e-15; //F/micron 1863 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1864 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], 1865 vert_dielectric_constant[0][1], 1866 fringe_cap); |
1991 | 1867 |
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], 2005 fringe_cap); | 1868 wire_pitch[0][2] = 8 * g_ip->F_sz_um; 1869 aspect_ratio[0][2] = 2.2; 1870 wire_width = wire_pitch[0][2] / 2; 1871 wire_thickness = aspect_ratio[0][2] * wire_width; 1872 wire_spacing = wire_pitch[0][2] - wire_width; 1873 wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width, 1874 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1875 ild_thickness[0][2] = 1.5; 1876 miller_value[0][2] = 1.5; 1877 horiz_dielectric_constant[0][2] = 2.709; 1878 vert_dielectric_constant[0][2] = 3.9; 1879 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1880 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 1881 fringe_cap); |
2006 | 1882 |
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; 2015 alpha_scatter = 1; 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], 2026 fringe_cap); | 1883 //Conservative projections 1884 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 1885 aspect_ratio[1][0] = 2.0; 1886 wire_width = wire_pitch[1][0] / 2; 1887 wire_thickness = aspect_ratio[1][0] * wire_width; 1888 wire_spacing = wire_pitch[1][0] - wire_width; 1889 barrier_thickness = 0.017; 1890 dishing_thickness = 0; 1891 alpha_scatter = 1; 1892 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 1893 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1894 ild_thickness[1][0] = 0.75; 1895 miller_value[1][0] = 1.5; 1896 horiz_dielectric_constant[1][0] = 3.038; 1897 vert_dielectric_constant[1][0] = 3.9; 1898 fringe_cap = 0.115e-15; 1899 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1900 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], 1901 vert_dielectric_constant[1][0], 1902 fringe_cap); |
2027 | 1903 |
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], 2042 fringe_cap); | 1904 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 1905 wire_width = wire_pitch[1][1] / 2; 1906 aspect_ratio[1][1] = 2.0; 1907 wire_thickness = aspect_ratio[1][1] * wire_width; 1908 wire_spacing = wire_pitch[1][1] - wire_width; 1909 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 1910 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1911 ild_thickness[1][1] = 0.75; 1912 miller_value[1][1] = 1.5; 1913 horiz_dielectric_constant[1][1] = 3.038; 1914 vert_dielectric_constant[1][1] = 3.9; 1915 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1916 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], 1917 vert_dielectric_constant[1][1], 1918 fringe_cap); |
2043 | 1919 |
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], 2058 fringe_cap); 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; 2063 } 2064 else if (tech == 90) 2065 { 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 2074 alpha_scatter = 1; 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. | 1920 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 1921 aspect_ratio[1][2] = 2.2; 1922 wire_width = wire_pitch[1][2] / 2; 1923 wire_thickness = aspect_ratio[1][2] * wire_width; 1924 wire_spacing = wire_pitch[1][2] - wire_width; 1925 dishing_thickness = 0.1 * wire_thickness; 1926 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 1927 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1928 ild_thickness[1][2] = 1.98; 1929 miller_value[1][2] = 1.5; 1930 horiz_dielectric_constant[1][2] = 3.038; 1931 vert_dielectric_constant[1][2] = 3.9; 1932 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1933 ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 1934 fringe_cap); 1935 //Nominal projections for commodity DRAM wordline/bitline 1936 wire_pitch[1][3] = 2 * 0.18; 1937 wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.18); 1938 wire_r_per_micron[1][3] = 12 / 0.18; 1939 } else if (tech == 90) { 1940 //Aggressive projections 1941 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron 1942 aspect_ratio[0][0] = 2.4; 1943 wire_width = wire_pitch[0][0] / 2; //micron 1944 wire_thickness = aspect_ratio[0][0] * wire_width;//micron 1945 wire_spacing = wire_pitch[0][0] - wire_width;//micron 1946 barrier_thickness = 0.01;//micron 1947 dishing_thickness = 0;//micron 1948 alpha_scatter = 1; 1949 wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width, 1950 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron 1951 ild_thickness[0][0] = 0.48;//micron 1952 miller_value[0][0] = 1.5; 1953 horiz_dielectric_constant[0][0] = 2.709; 1954 vert_dielectric_constant[0][0] = 3.9; 1955 fringe_cap = 0.115e-15; //F/micron 1956 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1957 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], 1958 vert_dielectric_constant[0][0], 1959 fringe_cap);//F/micron. |
2086 | 1960 |
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], 2101 fringe_cap); | 1961 wire_pitch[0][1] = 4 * g_ip->F_sz_um; 1962 wire_width = wire_pitch[0][1] / 2; 1963 aspect_ratio[0][1] = 2.4; 1964 wire_thickness = aspect_ratio[0][1] * wire_width; 1965 wire_spacing = wire_pitch[0][1] - wire_width; 1966 wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width, 1967 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1968 ild_thickness[0][1] = 0.48;//micron 1969 miller_value[0][1] = 1.5; 1970 horiz_dielectric_constant[0][1] = 2.709; 1971 vert_dielectric_constant[0][1] = 3.9; 1972 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1973 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], 1974 vert_dielectric_constant[0][1], 1975 fringe_cap); |
2102 | 1976 |
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], 2116 fringe_cap); | 1977 wire_pitch[0][2] = 8 * g_ip->F_sz_um; 1978 aspect_ratio[0][2] = 2.7; 1979 wire_width = wire_pitch[0][2] / 2; 1980 wire_thickness = aspect_ratio[0][2] * wire_width; 1981 wire_spacing = wire_pitch[0][2] - wire_width; 1982 wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width, 1983 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 1984 ild_thickness[0][2] = 0.96; 1985 miller_value[0][2] = 1.5; 1986 horiz_dielectric_constant[0][2] = 2.709; 1987 vert_dielectric_constant[0][2] = 3.9; 1988 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 1989 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 1990 fringe_cap); |
2117 | 1991 |
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; 2126 alpha_scatter = 1; 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], 2137 fringe_cap); | 1992 //Conservative projections 1993 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 1994 aspect_ratio[1][0] = 2.0; 1995 wire_width = wire_pitch[1][0] / 2; 1996 wire_thickness = aspect_ratio[1][0] * wire_width; 1997 wire_spacing = wire_pitch[1][0] - wire_width; 1998 barrier_thickness = 0.008; 1999 dishing_thickness = 0; 2000 alpha_scatter = 1; 2001 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 2002 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2003 ild_thickness[1][0] = 0.48; 2004 miller_value[1][0] = 1.5; 2005 horiz_dielectric_constant[1][0] = 3.038; 2006 vert_dielectric_constant[1][0] = 3.9; 2007 fringe_cap = 0.115e-15; 2008 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2009 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], 2010 vert_dielectric_constant[1][0], 2011 fringe_cap); |
2138 | 2012 |
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], 2153 fringe_cap); | 2013 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 2014 wire_width = wire_pitch[1][1] / 2; 2015 aspect_ratio[1][1] = 2.0; 2016 wire_thickness = aspect_ratio[1][1] * wire_width; 2017 wire_spacing = wire_pitch[1][1] - wire_width; 2018 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 2019 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2020 ild_thickness[1][1] = 0.48; 2021 miller_value[1][1] = 1.5; 2022 horiz_dielectric_constant[1][1] = 3.038; 2023 vert_dielectric_constant[1][1] = 3.9; 2024 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2025 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], 2026 vert_dielectric_constant[1][1], 2027 fringe_cap); |
2154 | 2028 |
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], 2169 fringe_cap); 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; 2174 } 2175 else if (tech == 65) 2176 { 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; 2185 alpha_scatter = 1; 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] , 2195 fringe_cap); | 2029 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 2030 aspect_ratio[1][2] = 2.2; 2031 wire_width = wire_pitch[1][2] / 2; 2032 wire_thickness = aspect_ratio[1][2] * wire_width; 2033 wire_spacing = wire_pitch[1][2] - wire_width; 2034 dishing_thickness = 0.1 * wire_thickness; 2035 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 2036 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2037 ild_thickness[1][2] = 1.1; 2038 miller_value[1][2] = 1.5; 2039 horiz_dielectric_constant[1][2] = 3.038; 2040 vert_dielectric_constant[1][2] = 3.9; 2041 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2042 ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 2043 fringe_cap); 2044 //Nominal projections for commodity DRAM wordline/bitline 2045 wire_pitch[1][3] = 2 * 0.09; 2046 wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.09); 2047 wire_r_per_micron[1][3] = 12 / 0.09; 2048 } else if (tech == 65) { 2049 //Aggressive projections 2050 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um; 2051 aspect_ratio[0][0] = 2.7; 2052 wire_width = wire_pitch[0][0] / 2; 2053 wire_thickness = aspect_ratio[0][0] * wire_width; 2054 wire_spacing = wire_pitch[0][0] - wire_width; 2055 barrier_thickness = 0; 2056 dishing_thickness = 0; 2057 alpha_scatter = 1; 2058 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2059 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2060 ild_thickness[0][0] = 0.405; 2061 miller_value[0][0] = 1.5; 2062 horiz_dielectric_constant[0][0] = 2.303; 2063 vert_dielectric_constant[0][0] = 3.9; 2064 fringe_cap = 0.115e-15; 2065 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2066 ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] , 2067 fringe_cap); |
2196 | 2068 |
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], 2211 fringe_cap); | 2069 wire_pitch[0][1] = 4 * g_ip->F_sz_um; 2070 wire_width = wire_pitch[0][1] / 2; 2071 aspect_ratio[0][1] = 2.7; 2072 wire_thickness = aspect_ratio[0][1] * wire_width; 2073 wire_spacing = wire_pitch[0][1] - wire_width; 2074 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2075 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2076 ild_thickness[0][1] = 0.405; 2077 miller_value[0][1] = 1.5; 2078 horiz_dielectric_constant[0][1] = 2.303; 2079 vert_dielectric_constant[0][1] = 3.9; 2080 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2081 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], 2082 vert_dielectric_constant[0][1], 2083 fringe_cap); |
2212 | 2084 |
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], 2226 fringe_cap); | 2085 wire_pitch[0][2] = 8 * g_ip->F_sz_um; 2086 aspect_ratio[0][2] = 2.8; 2087 wire_width = wire_pitch[0][2] / 2; 2088 wire_thickness = aspect_ratio[0][2] * wire_width; 2089 wire_spacing = wire_pitch[0][2] - wire_width; 2090 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2091 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2092 ild_thickness[0][2] = 0.81; 2093 miller_value[0][2] = 1.5; 2094 horiz_dielectric_constant[0][2] = 2.303; 2095 vert_dielectric_constant[0][2] = 3.9; 2096 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2097 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 2098 fringe_cap); |
2227 | 2099 |
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; 2236 alpha_scatter = 1; 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], 2246 fringe_cap); | 2100 //Conservative projections 2101 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 2102 aspect_ratio[1][0] = 2.0; 2103 wire_width = wire_pitch[1][0] / 2; 2104 wire_thickness = aspect_ratio[1][0] * wire_width; 2105 wire_spacing = wire_pitch[1][0] - wire_width; 2106 barrier_thickness = 0.006; 2107 dishing_thickness = 0; 2108 alpha_scatter = 1; 2109 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 2110 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2111 ild_thickness[1][0] = 0.405; 2112 miller_value[1][0] = 1.5; 2113 horiz_dielectric_constant[1][0] = 2.734; 2114 vert_dielectric_constant[1][0] = 3.9; 2115 fringe_cap = 0.115e-15; 2116 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2117 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 2118 fringe_cap); |
2247 | 2119 |
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], 2261 fringe_cap); | 2120 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 2121 wire_width = wire_pitch[1][1] / 2; 2122 aspect_ratio[1][1] = 2.0; 2123 wire_thickness = aspect_ratio[1][1] * wire_width; 2124 wire_spacing = wire_pitch[1][1] - wire_width; 2125 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 2126 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2127 ild_thickness[1][1] = 0.405; 2128 miller_value[1][1] = 1.5; 2129 horiz_dielectric_constant[1][1] = 2.734; 2130 vert_dielectric_constant[1][1] = 3.9; 2131 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2132 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 2133 fringe_cap); |
2262 | 2134 |
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], 2277 fringe_cap); 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; 2282 } 2283 else if (tech == 45) 2284 { 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; 2293 alpha_scatter = 1; 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] , 2303 fringe_cap); | 2135 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 2136 aspect_ratio[1][2] = 2.2; 2137 wire_width = wire_pitch[1][2] / 2; 2138 wire_thickness = aspect_ratio[1][2] * wire_width; 2139 wire_spacing = wire_pitch[1][2] - wire_width; 2140 dishing_thickness = 0.1 * wire_thickness; 2141 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 2142 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2143 ild_thickness[1][2] = 0.77; 2144 miller_value[1][2] = 1.5; 2145 horiz_dielectric_constant[1][2] = 2.734; 2146 vert_dielectric_constant[1][2] = 3.9; 2147 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2148 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 2149 fringe_cap); 2150 //Nominal projections for commodity DRAM wordline/bitline 2151 wire_pitch[1][3] = 2 * 0.065; 2152 wire_c_per_micron[1][3] = 52.5e-15 / (256 * 2 * 0.065); 2153 wire_r_per_micron[1][3] = 12 / 0.065; 2154 } else if (tech == 45) { 2155 //Aggressive projections. 2156 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um; 2157 aspect_ratio[0][0] = 3.0; 2158 wire_width = wire_pitch[0][0] / 2; 2159 wire_thickness = aspect_ratio[0][0] * wire_width; 2160 wire_spacing = wire_pitch[0][0] - wire_width; 2161 barrier_thickness = 0; 2162 dishing_thickness = 0; 2163 alpha_scatter = 1; 2164 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2165 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2166 ild_thickness[0][0] = 0.315; 2167 miller_value[0][0] = 1.5; 2168 horiz_dielectric_constant[0][0] = 1.958; 2169 vert_dielectric_constant[0][0] = 3.9; 2170 fringe_cap = 0.115e-15; 2171 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2172 ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] , 2173 fringe_cap); |
2304 | 2174 |
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], 2318 fringe_cap); | 2175 wire_pitch[0][1] = 4 * g_ip->F_sz_um; 2176 wire_width = wire_pitch[0][1] / 2; 2177 aspect_ratio[0][1] = 3.0; 2178 wire_thickness = aspect_ratio[0][1] * wire_width; 2179 wire_spacing = wire_pitch[0][1] - wire_width; 2180 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2181 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2182 ild_thickness[0][1] = 0.315; 2183 miller_value[0][1] = 1.5; 2184 horiz_dielectric_constant[0][1] = 1.958; 2185 vert_dielectric_constant[0][1] = 3.9; 2186 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2187 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 2188 fringe_cap); |
2319 | 2189 |
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], 2333 fringe_cap); | 2190 wire_pitch[0][2] = 8 * g_ip->F_sz_um; 2191 aspect_ratio[0][2] = 3.0; 2192 wire_width = wire_pitch[0][2] / 2; 2193 wire_thickness = aspect_ratio[0][2] * wire_width; 2194 wire_spacing = wire_pitch[0][2] - wire_width; 2195 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2196 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2197 ild_thickness[0][2] = 0.63; 2198 miller_value[0][2] = 1.5; 2199 horiz_dielectric_constant[0][2] = 1.958; 2200 vert_dielectric_constant[0][2] = 3.9; 2201 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2202 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 2203 fringe_cap); |
2334 | 2204 |
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; 2343 alpha_scatter = 1; 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], 2353 fringe_cap); | 2205 //Conservative projections 2206 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 2207 aspect_ratio[1][0] = 2.0; 2208 wire_width = wire_pitch[1][0] / 2; 2209 wire_thickness = aspect_ratio[1][0] * wire_width; 2210 wire_spacing = wire_pitch[1][0] - wire_width; 2211 barrier_thickness = 0.004; 2212 dishing_thickness = 0; 2213 alpha_scatter = 1; 2214 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 2215 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2216 ild_thickness[1][0] = 0.315; 2217 miller_value[1][0] = 1.5; 2218 horiz_dielectric_constant[1][0] = 2.46; 2219 vert_dielectric_constant[1][0] = 3.9; 2220 fringe_cap = 0.115e-15; 2221 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2222 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 2223 fringe_cap); |
2354 | 2224 |
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], 2369 fringe_cap); | 2225 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 2226 wire_width = wire_pitch[1][1] / 2; 2227 aspect_ratio[1][1] = 2.0; 2228 wire_thickness = aspect_ratio[1][1] * wire_width; 2229 wire_spacing = wire_pitch[1][1] - wire_width; 2230 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 2231 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2232 ild_thickness[1][1] = 0.315; 2233 miller_value[1][1] = 1.5; 2234 horiz_dielectric_constant[1][1] = 2.46; 2235 vert_dielectric_constant[1][1] = 3.9; 2236 fringe_cap = 0.115e-15; 2237 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2238 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 2239 fringe_cap); |
2370 | 2240 |
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], 2385 fringe_cap); 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; 2390 } 2391 else if (tech == 32) 2392 { 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; 2401 alpha_scatter = 1; 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], 2411 fringe_cap); | 2241 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 2242 aspect_ratio[1][2] = 2.2; 2243 wire_width = wire_pitch[1][2] / 2; 2244 wire_thickness = aspect_ratio[1][2] * wire_width; 2245 wire_spacing = wire_pitch[1][2] - wire_width; 2246 dishing_thickness = 0.1 * wire_thickness; 2247 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 2248 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2249 ild_thickness[1][2] = 0.55; 2250 miller_value[1][2] = 1.5; 2251 horiz_dielectric_constant[1][2] = 2.46; 2252 vert_dielectric_constant[1][2] = 3.9; 2253 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2254 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 2255 fringe_cap); 2256 //Nominal projections for commodity DRAM wordline/bitline 2257 wire_pitch[1][3] = 2 * 0.045; 2258 wire_c_per_micron[1][3] = 37.5e-15 / (256 * 2 * 0.045); 2259 wire_r_per_micron[1][3] = 12 / 0.045; 2260 } else if (tech == 32) { 2261 //Aggressive projections. 2262 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um; 2263 aspect_ratio[0][0] = 3.0; 2264 wire_width = wire_pitch[0][0] / 2; 2265 wire_thickness = aspect_ratio[0][0] * wire_width; 2266 wire_spacing = wire_pitch[0][0] - wire_width; 2267 barrier_thickness = 0; 2268 dishing_thickness = 0; 2269 alpha_scatter = 1; 2270 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2271 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2272 ild_thickness[0][0] = 0.21; 2273 miller_value[0][0] = 1.5; 2274 horiz_dielectric_constant[0][0] = 1.664; 2275 vert_dielectric_constant[0][0] = 3.9; 2276 fringe_cap = 0.115e-15; 2277 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2278 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0], 2279 fringe_cap); |
2412 | 2280 |
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], 2426 fringe_cap); | 2281 wire_pitch[0][1] = 4 * g_ip->F_sz_um; 2282 wire_width = wire_pitch[0][1] / 2; 2283 aspect_ratio[0][1] = 3.0; 2284 wire_thickness = aspect_ratio[0][1] * wire_width; 2285 wire_spacing = wire_pitch[0][1] - wire_width; 2286 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2287 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2288 ild_thickness[0][1] = 0.21; 2289 miller_value[0][1] = 1.5; 2290 horiz_dielectric_constant[0][1] = 1.664; 2291 vert_dielectric_constant[0][1] = 3.9; 2292 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2293 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 2294 fringe_cap); |
2427 | 2295 |
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], 2441 fringe_cap); | 2296 wire_pitch[0][2] = 8 * g_ip->F_sz_um; 2297 aspect_ratio[0][2] = 3.0; 2298 wire_width = wire_pitch[0][2] / 2; 2299 wire_thickness = aspect_ratio[0][2] * wire_width; 2300 wire_spacing = wire_pitch[0][2] - wire_width; 2301 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2302 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2303 ild_thickness[0][2] = 0.42; 2304 miller_value[0][2] = 1.5; 2305 horiz_dielectric_constant[0][2] = 1.664; 2306 vert_dielectric_constant[0][2] = 3.9; 2307 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2308 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 2309 fringe_cap); |
2442 | 2310 |
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; 2451 alpha_scatter = 1; 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], 2461 fringe_cap); | 2311 //Conservative projections 2312 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 2313 aspect_ratio[1][0] = 2.0; 2314 wire_width = wire_pitch[1][0] / 2; 2315 wire_thickness = aspect_ratio[1][0] * wire_width; 2316 wire_spacing = wire_pitch[1][0] - wire_width; 2317 barrier_thickness = 0.003; 2318 dishing_thickness = 0; 2319 alpha_scatter = 1; 2320 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 2321 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2322 ild_thickness[1][0] = 0.21; 2323 miller_value[1][0] = 1.5; 2324 horiz_dielectric_constant[1][0] = 2.214; 2325 vert_dielectric_constant[1][0] = 3.9; 2326 fringe_cap = 0.115e-15; 2327 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2328 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 2329 fringe_cap); |
2462 | 2330 |
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], 2476 fringe_cap); | 2331 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 2332 aspect_ratio[1][1] = 2.0; 2333 wire_width = wire_pitch[1][1] / 2; 2334 wire_thickness = aspect_ratio[1][1] * wire_width; 2335 wire_spacing = wire_pitch[1][1] - wire_width; 2336 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 2337 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2338 ild_thickness[1][1] = 0.21; 2339 miller_value[1][1] = 1.5; 2340 horiz_dielectric_constant[1][1] = 2.214; 2341 vert_dielectric_constant[1][1] = 3.9; 2342 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2343 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 2344 fringe_cap); |
2477 | 2345 |
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], 2492 fringe_cap); 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 2497 } 2498 else if (tech == 22) 2499 { 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; 2508 alpha_scatter = 1; 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], 2518 fringe_cap); | 2346 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 2347 aspect_ratio[1][2] = 2.2; 2348 wire_width = wire_pitch[1][2] / 2; 2349 wire_thickness = aspect_ratio[1][2] * wire_width; 2350 wire_spacing = wire_pitch[1][2] - wire_width; 2351 dishing_thickness = 0.1 * wire_thickness; 2352 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 2353 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2354 ild_thickness[1][2] = 0.385; 2355 miller_value[1][2] = 1.5; 2356 horiz_dielectric_constant[1][2] = 2.214; 2357 vert_dielectric_constant[1][2] = 3.9; 2358 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2359 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 2360 fringe_cap); 2361 //Nominal projections for commodity DRAM wordline/bitline 2362 wire_pitch[1][3] = 2 * 0.032;//micron 2363 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.032);//F/micron 2364 wire_r_per_micron[1][3] = 12 / 0.032;//ohm/micron 2365 } else if (tech == 22) { 2366 //Aggressive projections. 2367 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local 2368 aspect_ratio[0][0] = 3.0; 2369 wire_width = wire_pitch[0][0] / 2; 2370 wire_thickness = aspect_ratio[0][0] * wire_width; 2371 wire_spacing = wire_pitch[0][0] - wire_width; 2372 barrier_thickness = 0; 2373 dishing_thickness = 0; 2374 alpha_scatter = 1; 2375 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2376 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2377 ild_thickness[0][0] = 0.15; 2378 miller_value[0][0] = 1.5; 2379 horiz_dielectric_constant[0][0] = 1.414; 2380 vert_dielectric_constant[0][0] = 3.9; 2381 fringe_cap = 0.115e-15; 2382 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2383 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0], 2384 fringe_cap); |
2519 | 2385 |
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], 2533 fringe_cap); | 2386 wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global 2387 wire_width = wire_pitch[0][1] / 2; 2388 aspect_ratio[0][1] = 3.0; 2389 wire_thickness = aspect_ratio[0][1] * wire_width; 2390 wire_spacing = wire_pitch[0][1] - wire_width; 2391 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2392 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2393 ild_thickness[0][1] = 0.15; 2394 miller_value[0][1] = 1.5; 2395 horiz_dielectric_constant[0][1] = 1.414; 2396 vert_dielectric_constant[0][1] = 3.9; 2397 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2398 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 2399 fringe_cap); |
2534 | 2400 |
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], 2548 fringe_cap); | 2401 wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global 2402 aspect_ratio[0][2] = 3.0; 2403 wire_width = wire_pitch[0][2] / 2; 2404 wire_thickness = aspect_ratio[0][2] * wire_width; 2405 wire_spacing = wire_pitch[0][2] - wire_width; 2406 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2407 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2408 ild_thickness[0][2] = 0.3; 2409 miller_value[0][2] = 1.5; 2410 horiz_dielectric_constant[0][2] = 1.414; 2411 vert_dielectric_constant[0][2] = 3.9; 2412 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2413 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 2414 fringe_cap); |
2549 | 2415 |
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, 2561// fringe_cap); 2562// 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, 2573// fringe_cap); 2574// 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, 2585// fringe_cap); 2586 //************************* | 2416 //Conservative projections 2417 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 2418 aspect_ratio[1][0] = 2.0; 2419 wire_width = wire_pitch[1][0] / 2; 2420 wire_thickness = aspect_ratio[1][0] * wire_width; 2421 wire_spacing = wire_pitch[1][0] - wire_width; 2422 barrier_thickness = 0.003; 2423 dishing_thickness = 0; 2424 alpha_scatter = 1.05; 2425 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 2426 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2427 ild_thickness[1][0] = 0.15; 2428 miller_value[1][0] = 1.5; 2429 horiz_dielectric_constant[1][0] = 2.104; 2430 vert_dielectric_constant[1][0] = 3.9; 2431 fringe_cap = 0.115e-15; 2432 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2433 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 2434 fringe_cap); |
2587 | 2435 |
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], 2606 fringe_cap); | 2436 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 2437 wire_width = wire_pitch[1][1] / 2; 2438 aspect_ratio[1][1] = 2.0; 2439 wire_thickness = aspect_ratio[1][1] * wire_width; 2440 wire_spacing = wire_pitch[1][1] - wire_width; 2441 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 2442 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2443 ild_thickness[1][1] = 0.15; 2444 miller_value[1][1] = 1.5; 2445 horiz_dielectric_constant[1][1] = 2.104; 2446 vert_dielectric_constant[1][1] = 3.9; 2447 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2448 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 2449 fringe_cap); |
2607 | 2450 |
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], 2621 fringe_cap); 2622 | |
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, | 2451 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 2452 aspect_ratio[1][2] = 2.2; 2453 wire_width = wire_pitch[1][2] / 2; 2454 wire_thickness = aspect_ratio[1][2] * wire_width; 2455 wire_spacing = wire_pitch[1][2] - wire_width; 2456 dishing_thickness = 0.1 * wire_thickness; 2457 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, |
2630 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); | 2458 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, | 2459 ild_thickness[1][2] = 0.275; 2460 miller_value[1][2] = 1.5; 2461 horiz_dielectric_constant[1][2] = 2.104; 2462 vert_dielectric_constant[1][2] = 3.9; 2463 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], 2637 fringe_cap); | 2464 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 2465 fringe_cap); |
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 | 2466 //Nominal projections for commodity DRAM wordline/bitline 2467 wire_pitch[1][3] = 2 * 0.022;//micron 2468 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.022);//F/micron 2469 wire_r_per_micron[1][3] = 12 / 0.022;//ohm/micron |
2642 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, 2655// fringe_cap); 2656// 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, 2668// fringe_cap); 2669// 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, 2681// fringe_cap); | |
2682 } 2683 | 2470 } 2471 |
2684 else if (tech == 16) 2685 { 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; 2694 alpha_scatter = 1; 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], 2704 fringe_cap); | 2472 else if (tech == 16) { 2473 //Aggressive projections. 2474 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local 2475 aspect_ratio[0][0] = 3.0; 2476 wire_width = wire_pitch[0][0] / 2; 2477 wire_thickness = aspect_ratio[0][0] * wire_width; 2478 wire_spacing = wire_pitch[0][0] - wire_width; 2479 barrier_thickness = 0; 2480 dishing_thickness = 0; 2481 alpha_scatter = 1; 2482 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2483 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2484 ild_thickness[0][0] = 0.108; 2485 miller_value[0][0] = 1.5; 2486 horiz_dielectric_constant[0][0] = 1.202; 2487 vert_dielectric_constant[0][0] = 3.9; 2488 fringe_cap = 0.115e-15; 2489 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2490 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0], 2491 fringe_cap); |
2705 | 2492 |
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], 2719 fringe_cap); | 2493 wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global 2494 aspect_ratio[0][1] = 3.0; 2495 wire_width = wire_pitch[0][1] / 2; 2496 wire_thickness = aspect_ratio[0][1] * wire_width; 2497 wire_spacing = wire_pitch[0][1] - wire_width; 2498 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2499 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2500 ild_thickness[0][1] = 0.108; 2501 miller_value[0][1] = 1.5; 2502 horiz_dielectric_constant[0][1] = 1.202; 2503 vert_dielectric_constant[0][1] = 3.9; 2504 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2505 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 2506 fringe_cap); |
2720 | 2507 |
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], 2734 fringe_cap); | 2508 wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global 2509 aspect_ratio[0][2] = 3.0; 2510 wire_width = wire_pitch[0][2] / 2; 2511 wire_thickness = aspect_ratio[0][2] * wire_width; 2512 wire_spacing = wire_pitch[0][2] - wire_width; 2513 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 2514 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2515 ild_thickness[0][2] = 0.216; 2516 miller_value[0][2] = 1.5; 2517 horiz_dielectric_constant[0][2] = 1.202; 2518 vert_dielectric_constant[0][2] = 3.9; 2519 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2520 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 2521 fringe_cap); |
2735 | 2522 |
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, 2747// fringe_cap); 2748// 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, 2759// fringe_cap); 2760// 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, 2771// fringe_cap); 2772 //************************* | 2523 //Conservative projections 2524 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 2525 aspect_ratio[1][0] = 2.0; 2526 wire_width = wire_pitch[1][0] / 2; 2527 wire_thickness = aspect_ratio[1][0] * wire_width; 2528 wire_spacing = wire_pitch[1][0] - wire_width; 2529 barrier_thickness = 0.002; 2530 dishing_thickness = 0; 2531 alpha_scatter = 1.05; 2532 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 2533 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2534 ild_thickness[1][0] = 0.108; 2535 miller_value[1][0] = 1.5; 2536 horiz_dielectric_constant[1][0] = 1.998; 2537 vert_dielectric_constant[1][0] = 3.9; 2538 fringe_cap = 0.115e-15; 2539 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 2540 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 2541 fringe_cap); |
2773 | 2542 |
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], 2792 fringe_cap); 2793 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; | 2543 wire_pitch[1][1] = 4 * g_ip->F_sz_um; 2544 wire_width = wire_pitch[1][1] / 2; 2545 aspect_ratio[1][1] = 2.0; 2546 wire_thickness = aspect_ratio[1][1] * wire_width; 2547 wire_spacing = wire_pitch[1][1] - wire_width; 2548 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 2549 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 2550 ild_thickness[1][1] = 0.108; 2551 miller_value[1][1] = 1.5; 2552 horiz_dielectric_constant[1][1] = 1.998; 2553 vert_dielectric_constant[1][1] = 3.9; |
2805 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, | 2554 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], 2807 fringe_cap); | 2555 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 2556 fringe_cap); |
2808 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, | 2557 2558 wire_pitch[1][2] = 8 * g_ip->F_sz_um; 2559 aspect_ratio[1][2] = 2.2; 2560 wire_width = wire_pitch[1][2] / 2; 2561 wire_thickness = aspect_ratio[1][2] * wire_width; 2562 wire_spacing = wire_pitch[1][2] - wire_width; 2563 dishing_thickness = 0.1 * wire_thickness; 2564 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, |
2816 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); | 2565 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, | 2566 ild_thickness[1][2] = 0.198; 2567 miller_value[1][2] = 1.5; 2568 horiz_dielectric_constant[1][2] = 1.998; 2569 vert_dielectric_constant[1][2] = 3.9; 2570 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], 2823 fringe_cap); | 2571 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 2572 fringe_cap); |
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 | 2573 //Nominal projections for commodity DRAM wordline/bitline 2574 wire_pitch[1][3] = 2 * 0.016;//micron 2575 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.016);//F/micron 2576 wire_r_per_micron[1][3] = 12 / 0.016;//ohm/micron |
2828 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, 2841// fringe_cap); 2842// 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, 2854// fringe_cap); 2855// 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, 2867// fringe_cap); | |
2868 } | 2577 } |
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]; | 2578 g_tp.wire_local.pitch += curr_alpha * 2579 wire_pitch[g_ip->ic_proj_type] 2580 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2581 g_tp.wire_local.R_per_um += curr_alpha * 2582 wire_r_per_micron[g_ip->ic_proj_type] 2583 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2584 g_tp.wire_local.C_per_um += curr_alpha * 2585 wire_c_per_micron[g_ip->ic_proj_type] 2586 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2587 g_tp.wire_local.aspect_ratio += curr_alpha * 2588 aspect_ratio[g_ip->ic_proj_type] 2589 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2590 g_tp.wire_local.ild_thickness += curr_alpha * 2591 ild_thickness[g_ip->ic_proj_type] 2592 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2593 g_tp.wire_local.miller_value += curr_alpha * 2594 miller_value[g_ip->ic_proj_type] 2595 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2596 g_tp.wire_local.horiz_dielectric_constant += curr_alpha * 2597 horiz_dielectric_constant[g_ip->ic_proj_type] 2598 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; 2599 g_tp.wire_local.vert_dielectric_constant += curr_alpha * 2600 vert_dielectric_constant[g_ip->ic_proj_type] 2601 [(ram_cell_tech_type == comm_dram) ? 3 : 0]; |
2877 | 2602 |
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]; | 2603 g_tp.wire_inside_mat.pitch += curr_alpha * 2604 wire_pitch[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 2605 g_tp.wire_inside_mat.R_per_um += curr_alpha * 2606 wire_r_per_micron[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 2607 g_tp.wire_inside_mat.C_per_um += curr_alpha * 2608 wire_c_per_micron[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 2609 g_tp.wire_inside_mat.aspect_ratio += curr_alpha * 2610 aspect_ratio[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 2611 g_tp.wire_inside_mat.ild_thickness += curr_alpha * 2612 ild_thickness[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 2613 g_tp.wire_inside_mat.miller_value += curr_alpha * 2614 miller_value[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 2615 g_tp.wire_inside_mat.horiz_dielectric_constant += curr_alpha * 2616 horiz_dielectric_constant[g_ip->ic_proj_type] 2617 [g_ip->wire_is_mat_type]; 2618 g_tp.wire_inside_mat.vert_dielectric_constant += curr_alpha * 2619 vert_dielectric_constant [g_ip->ic_proj_type] 2620 [g_ip->wire_is_mat_type]; |
2886 | 2621 |
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]; | 2622 g_tp.wire_outside_mat.pitch += curr_alpha * 2623 wire_pitch[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 2624 g_tp.wire_outside_mat.R_per_um += curr_alpha * 2625 wire_r_per_micron[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 2626 g_tp.wire_outside_mat.C_per_um += curr_alpha * 2627 wire_c_per_micron[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 2628 g_tp.wire_outside_mat.aspect_ratio += curr_alpha * 2629 aspect_ratio[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 2630 g_tp.wire_outside_mat.ild_thickness += curr_alpha * 2631 ild_thickness[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 2632 g_tp.wire_outside_mat.miller_value += curr_alpha * 2633 miller_value[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 2634 g_tp.wire_outside_mat.horiz_dielectric_constant += curr_alpha * 2635 horiz_dielectric_constant[g_ip->ic_proj_type] 2636 [g_ip->wire_os_mat_type]; 2637 g_tp.wire_outside_mat.vert_dielectric_constant += curr_alpha * 2638 vert_dielectric_constant [g_ip->ic_proj_type] 2639 [g_ip->wire_os_mat_type]; |
2895 | 2640 |
2896 g_tp.unit_len_wire_del = g_tp.wire_inside_mat.R_per_um * g_tp.wire_inside_mat.C_per_um / 2; | 2641 g_tp.unit_len_wire_del = g_tp.wire_inside_mat.R_per_um * 2642 g_tp.wire_inside_mat.C_per_um / 2; |
2897 | 2643 |
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; | 2644 g_tp.sense_delay += curr_alpha * SENSE_AMP_D; 2645 g_tp.sense_dy_power += curr_alpha * SENSE_AMP_P; |
2905 | 2646 |
2906 } 2907 g_tp.fringe_cap = fringe_cap; | 2647 } 2648 g_tp.fringe_cap = fringe_cap; |
2908 | 2649 |
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); 2914 double KLOAD = 1; 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)); 2918 tf = rd * c_load; 2919 g_tp.FO4 = horowitz(0, tf, 0.5, 0.5, RISE); | 2650 double rd = tr_R_on(g_tp.min_w_nmos_, NCH, 1); 2651 double p_to_n_sizing_r = pmos_to_nmos_sz_ratio(); 2652 double c_load = gate_C(g_tp.min_w_nmos_ * (1 + p_to_n_sizing_r), 0.0); 2653 double tf = rd * c_load; 2654 g_tp.kinv = horowitz(0, tf, 0.5, 0.5, RISE); 2655 double KLOAD = 1; 2656 c_load = KLOAD * (drain_C_(g_tp.min_w_nmos_, NCH, 1, 1, g_tp.cell_h_def) + 2657 drain_C_(g_tp.min_w_nmos_ * p_to_n_sizing_r, PCH, 1, 1, g_tp.cell_h_def) + 2658 gate_C(g_tp.min_w_nmos_ * 4 * (1 + p_to_n_sizing_r), 0.0)); 2659 tf = rd * c_load; 2660 g_tp.FO4 = horowitz(0, tf, 0.5, 0.5, RISE); |
2920} 2921 | 2661} 2662 |