technology.cc revision 10152
110152Satgutier@umich.edu/***************************************************************************** 210152Satgutier@umich.edu * McPAT/CACTI 310152Satgutier@umich.edu * SOFTWARE LICENSE AGREEMENT 410152Satgutier@umich.edu * Copyright 2012 Hewlett-Packard Development Company, L.P. 510152Satgutier@umich.edu * All Rights Reserved 610152Satgutier@umich.edu * 710152Satgutier@umich.edu * Redistribution and use in source and binary forms, with or without 810152Satgutier@umich.edu * modification, are permitted provided that the following conditions are 910152Satgutier@umich.edu * met: redistributions of source code must retain the above copyright 1010152Satgutier@umich.edu * notice, this list of conditions and the following disclaimer; 1110152Satgutier@umich.edu * redistributions in binary form must reproduce the above copyright 1210152Satgutier@umich.edu * notice, this list of conditions and the following disclaimer in the 1310152Satgutier@umich.edu * documentation and/or other materials provided with the distribution; 1410152Satgutier@umich.edu * neither the name of the copyright holders nor the names of its 1510152Satgutier@umich.edu * contributors may be used to endorse or promote products derived from 1610152Satgutier@umich.edu * this software without specific prior written permission. 1710152Satgutier@umich.edu 1810152Satgutier@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1910152Satgutier@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2010152Satgutier@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2110152Satgutier@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2210152Satgutier@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2310152Satgutier@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2410152Satgutier@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2510152Satgutier@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2610152Satgutier@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2710152Satgutier@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2810152Satgutier@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” 2910152Satgutier@umich.edu * 3010152Satgutier@umich.edu ***************************************************************************/ 3110152Satgutier@umich.edu 3210152Satgutier@umich.edu 3310152Satgutier@umich.edu#include "basic_circuit.h" 3410152Satgutier@umich.edu 3510152Satgutier@umich.edu#include "parameter.h" 3610152Satgutier@umich.edu 3710152Satgutier@umich.edudouble wire_resistance(double resistivity, double wire_width, double wire_thickness, 3810152Satgutier@umich.edu double barrier_thickness, double dishing_thickness, double alpha_scatter) 3910152Satgutier@umich.edu{ 4010152Satgutier@umich.edu double resistance; 4110152Satgutier@umich.edu resistance = alpha_scatter * resistivity /((wire_thickness - barrier_thickness - dishing_thickness)*(wire_width - 2 * barrier_thickness)); 4210152Satgutier@umich.edu return(resistance); 4310152Satgutier@umich.edu} 4410152Satgutier@umich.edu 4510152Satgutier@umich.edudouble wire_capacitance(double wire_width, double wire_thickness, double wire_spacing, 4610152Satgutier@umich.edu double ild_thickness, double miller_value, double horiz_dielectric_constant, 4710152Satgutier@umich.edu double vert_dielectric_constant, double fringe_cap) 4810152Satgutier@umich.edu{ 4910152Satgutier@umich.edu double vertical_cap, sidewall_cap, total_cap; 5010152Satgutier@umich.edu vertical_cap = 2 * PERMITTIVITY_FREE_SPACE * vert_dielectric_constant * wire_width / ild_thickness; 5110152Satgutier@umich.edu sidewall_cap = 2 * PERMITTIVITY_FREE_SPACE * miller_value * horiz_dielectric_constant * wire_thickness / wire_spacing; 5210152Satgutier@umich.edu total_cap = vertical_cap + sidewall_cap + fringe_cap; 5310152Satgutier@umich.edu return(total_cap); 5410152Satgutier@umich.edu} 5510152Satgutier@umich.edu 5610152Satgutier@umich.edu 5710152Satgutier@umich.eduvoid init_tech_params(double technology, bool is_tag) 5810152Satgutier@umich.edu{ 5910152Satgutier@umich.edu int iter, tech, tech_lo, tech_hi; 6010152Satgutier@umich.edu double curr_alpha, curr_vpp; 6110152Satgutier@umich.edu double wire_width, wire_thickness, wire_spacing, 6210152Satgutier@umich.edu fringe_cap, pmos_to_nmos_sizing_r; 6310152Satgutier@umich.edu// double aspect_ratio,ild_thickness, miller_value = 1.5, horiz_dielectric_constant, vert_dielectric_constant; 6410152Satgutier@umich.edu double barrier_thickness, dishing_thickness, alpha_scatter; 6510152Satgutier@umich.edu double curr_vdd_dram_cell, curr_v_th_dram_access_transistor, curr_I_on_dram_cell, curr_c_dram_cell; 6610152Satgutier@umich.edu 6710152Satgutier@umich.edu uint32_t ram_cell_tech_type = (is_tag) ? g_ip->tag_arr_ram_cell_tech_type : g_ip->data_arr_ram_cell_tech_type; 6810152Satgutier@umich.edu uint32_t peri_global_tech_type = (is_tag) ? g_ip->tag_arr_peri_global_tech_type : g_ip->data_arr_peri_global_tech_type; 6910152Satgutier@umich.edu 7010152Satgutier@umich.edu technology = technology * 1000.0; // in the unit of nm 7110152Satgutier@umich.edu 7210152Satgutier@umich.edu // initialize parameters 7310152Satgutier@umich.edu g_tp.reset(); 7410152Satgutier@umich.edu double gmp_to_gmn_multiplier_periph_global = 0; 7510152Satgutier@umich.edu 7610152Satgutier@umich.edu double curr_Wmemcella_dram, curr_Wmemcellpmos_dram, curr_Wmemcellnmos_dram, 7710152Satgutier@umich.edu curr_area_cell_dram, curr_asp_ratio_cell_dram, curr_Wmemcella_sram, 7810152Satgutier@umich.edu curr_Wmemcellpmos_sram, curr_Wmemcellnmos_sram, curr_area_cell_sram, 7910152Satgutier@umich.edu curr_asp_ratio_cell_sram, curr_I_off_dram_cell_worst_case_length_temp; 8010152Satgutier@umich.edu double curr_Wmemcella_cam, curr_Wmemcellpmos_cam, curr_Wmemcellnmos_cam, curr_area_cell_cam,//Sheng: CAM data 8110152Satgutier@umich.edu curr_asp_ratio_cell_cam; 8210152Satgutier@umich.edu double SENSE_AMP_D, SENSE_AMP_P; // J 8310152Satgutier@umich.edu double area_cell_dram = 0; 8410152Satgutier@umich.edu double asp_ratio_cell_dram = 0; 8510152Satgutier@umich.edu double area_cell_sram = 0; 8610152Satgutier@umich.edu double asp_ratio_cell_sram = 0; 8710152Satgutier@umich.edu double area_cell_cam = 0; 8810152Satgutier@umich.edu double asp_ratio_cell_cam = 0; 8910152Satgutier@umich.edu double mobility_eff_periph_global = 0; 9010152Satgutier@umich.edu double Vdsat_periph_global = 0; 9110152Satgutier@umich.edu double nmos_effective_resistance_multiplier; 9210152Satgutier@umich.edu double width_dram_access_transistor; 9310152Satgutier@umich.edu 9410152Satgutier@umich.edu 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 9510152Satgutier@umich.edu double curr_core_tx_density = 0;//this is density per um^2; 90, ...22nm based on Intel Penryn 9610152Satgutier@umich.edu double curr_chip_layout_overhead = 0; 9710152Satgutier@umich.edu double curr_macro_layout_overhead = 0; 9810152Satgutier@umich.edu double curr_sckt_co_eff = 0; 9910152Satgutier@umich.edu 10010152Satgutier@umich.edu if (technology < 181 && technology > 179) 10110152Satgutier@umich.edu { 10210152Satgutier@umich.edu tech_lo = 180; 10310152Satgutier@umich.edu tech_hi = 180; 10410152Satgutier@umich.edu } 10510152Satgutier@umich.edu else if (technology < 91 && technology > 89) 10610152Satgutier@umich.edu { 10710152Satgutier@umich.edu tech_lo = 90; 10810152Satgutier@umich.edu tech_hi = 90; 10910152Satgutier@umich.edu } 11010152Satgutier@umich.edu else if (technology < 66 && technology > 64) 11110152Satgutier@umich.edu { 11210152Satgutier@umich.edu tech_lo = 65; 11310152Satgutier@umich.edu tech_hi = 65; 11410152Satgutier@umich.edu } 11510152Satgutier@umich.edu else if (technology < 46 && technology > 44) 11610152Satgutier@umich.edu { 11710152Satgutier@umich.edu tech_lo = 45; 11810152Satgutier@umich.edu tech_hi = 45; 11910152Satgutier@umich.edu } 12010152Satgutier@umich.edu else if (technology < 33 && technology > 31) 12110152Satgutier@umich.edu { 12210152Satgutier@umich.edu tech_lo = 32; 12310152Satgutier@umich.edu tech_hi = 32; 12410152Satgutier@umich.edu } 12510152Satgutier@umich.edu else if (technology < 23 && technology > 21) 12610152Satgutier@umich.edu { 12710152Satgutier@umich.edu tech_lo = 22; 12810152Satgutier@umich.edu tech_hi = 22; 12910152Satgutier@umich.edu if (ram_cell_tech_type == 3 ) 13010152Satgutier@umich.edu { 13110152Satgutier@umich.edu cout<<"current version does not support eDRAM technologies at 22nm"<<endl; 13210152Satgutier@umich.edu exit(0); 13310152Satgutier@umich.edu } 13410152Satgutier@umich.edu } 13510152Satgutier@umich.edu// else if (technology < 17 && technology > 15) 13610152Satgutier@umich.edu// { 13710152Satgutier@umich.edu// tech_lo = 16; 13810152Satgutier@umich.edu// tech_hi = 16; 13910152Satgutier@umich.edu// } 14010152Satgutier@umich.edu else if (technology < 180 && technology > 90) 14110152Satgutier@umich.edu { 14210152Satgutier@umich.edu tech_lo = 180; 14310152Satgutier@umich.edu tech_hi = 90; 14410152Satgutier@umich.edu } 14510152Satgutier@umich.edu else if (technology < 90 && technology > 65) 14610152Satgutier@umich.edu { 14710152Satgutier@umich.edu tech_lo = 90; 14810152Satgutier@umich.edu tech_hi = 65; 14910152Satgutier@umich.edu } 15010152Satgutier@umich.edu else if (technology < 65 && technology > 45) 15110152Satgutier@umich.edu { 15210152Satgutier@umich.edu tech_lo = 65; 15310152Satgutier@umich.edu tech_hi = 45; 15410152Satgutier@umich.edu } 15510152Satgutier@umich.edu else if (technology < 45 && technology > 32) 15610152Satgutier@umich.edu { 15710152Satgutier@umich.edu tech_lo = 45; 15810152Satgutier@umich.edu tech_hi = 32; 15910152Satgutier@umich.edu } 16010152Satgutier@umich.edu else if (technology < 32 && technology > 22) 16110152Satgutier@umich.edu { 16210152Satgutier@umich.edu tech_lo = 32; 16310152Satgutier@umich.edu tech_hi = 22; 16410152Satgutier@umich.edu } 16510152Satgutier@umich.edu// else if (technology < 22 && technology > 16) 16610152Satgutier@umich.edu// { 16710152Satgutier@umich.edu// tech_lo = 22; 16810152Satgutier@umich.edu// tech_hi = 16; 16910152Satgutier@umich.edu// } 17010152Satgutier@umich.edu else 17110152Satgutier@umich.edu { 17210152Satgutier@umich.edu cout<<"Invalid technology nodes"<<endl; 17310152Satgutier@umich.edu exit(0); 17410152Satgutier@umich.edu } 17510152Satgutier@umich.edu 17610152Satgutier@umich.edu double vdd[NUMBER_TECH_FLAVORS]; 17710152Satgutier@umich.edu double Lphy[NUMBER_TECH_FLAVORS]; 17810152Satgutier@umich.edu double Lelec[NUMBER_TECH_FLAVORS]; 17910152Satgutier@umich.edu double t_ox[NUMBER_TECH_FLAVORS]; 18010152Satgutier@umich.edu double v_th[NUMBER_TECH_FLAVORS]; 18110152Satgutier@umich.edu double c_ox[NUMBER_TECH_FLAVORS]; 18210152Satgutier@umich.edu double mobility_eff[NUMBER_TECH_FLAVORS]; 18310152Satgutier@umich.edu double Vdsat[NUMBER_TECH_FLAVORS]; 18410152Satgutier@umich.edu double c_g_ideal[NUMBER_TECH_FLAVORS]; 18510152Satgutier@umich.edu double c_fringe[NUMBER_TECH_FLAVORS]; 18610152Satgutier@umich.edu double c_junc[NUMBER_TECH_FLAVORS]; 18710152Satgutier@umich.edu double I_on_n[NUMBER_TECH_FLAVORS]; 18810152Satgutier@umich.edu double I_on_p[NUMBER_TECH_FLAVORS]; 18910152Satgutier@umich.edu double Rnchannelon[NUMBER_TECH_FLAVORS]; 19010152Satgutier@umich.edu double Rpchannelon[NUMBER_TECH_FLAVORS]; 19110152Satgutier@umich.edu double n_to_p_eff_curr_drv_ratio[NUMBER_TECH_FLAVORS]; 19210152Satgutier@umich.edu double I_off_n[NUMBER_TECH_FLAVORS][101]; 19310152Satgutier@umich.edu double I_g_on_n[NUMBER_TECH_FLAVORS][101]; 19410152Satgutier@umich.edu //double I_off_p[NUMBER_TECH_FLAVORS][101]; 19510152Satgutier@umich.edu double gmp_to_gmn_multiplier[NUMBER_TECH_FLAVORS]; 19610152Satgutier@umich.edu //double curr_sckt_co_eff[NUMBER_TECH_FLAVORS]; 19710152Satgutier@umich.edu double long_channel_leakage_reduction[NUMBER_TECH_FLAVORS]; 19810152Satgutier@umich.edu 19910152Satgutier@umich.edu for (iter = 0; iter <= 1; ++iter) 20010152Satgutier@umich.edu { 20110152Satgutier@umich.edu // linear interpolation 20210152Satgutier@umich.edu if (iter == 0) 20310152Satgutier@umich.edu { 20410152Satgutier@umich.edu tech = tech_lo; 20510152Satgutier@umich.edu if (tech_lo == tech_hi) 20610152Satgutier@umich.edu { 20710152Satgutier@umich.edu curr_alpha = 1; 20810152Satgutier@umich.edu } 20910152Satgutier@umich.edu else 21010152Satgutier@umich.edu { 21110152Satgutier@umich.edu curr_alpha = (technology - tech_hi)/(tech_lo - tech_hi); 21210152Satgutier@umich.edu } 21310152Satgutier@umich.edu } 21410152Satgutier@umich.edu else 21510152Satgutier@umich.edu { 21610152Satgutier@umich.edu tech = tech_hi; 21710152Satgutier@umich.edu if (tech_lo == tech_hi) 21810152Satgutier@umich.edu { 21910152Satgutier@umich.edu break; 22010152Satgutier@umich.edu } 22110152Satgutier@umich.edu else 22210152Satgutier@umich.edu { 22310152Satgutier@umich.edu curr_alpha = (tech_lo - technology)/(tech_lo - tech_hi); 22410152Satgutier@umich.edu } 22510152Satgutier@umich.edu } 22610152Satgutier@umich.edu 22710152Satgutier@umich.edu if (tech == 180) 22810152Satgutier@umich.edu { 22910152Satgutier@umich.edu //180nm technology-node. Corresponds to year 1999 in ITRS 23010152Satgutier@umich.edu //Only HP transistor was of interest that 180nm since leakage power was not a big issue. Performance was the king 23110152Satgutier@umich.edu //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 23210152Satgutier@umich.edu bool Aggre_proj = false; 23310152Satgutier@umich.edu SENSE_AMP_D = .28e-9; // s 23410152Satgutier@umich.edu SENSE_AMP_P = 14.7e-15; // J 23510152Satgutier@umich.edu vdd[0] = 1.5; 23610152Satgutier@umich.edu Lphy[0] = 0.12;//Lphy is the physical gate-length. micron 23710152Satgutier@umich.edu Lelec[0] = 0.10;//Lelec is the electrical gate-length. micron 23810152Satgutier@umich.edu t_ox[0] = 1.2e-3*(Aggre_proj? 1.9/1.2:2);//micron 23910152Satgutier@umich.edu v_th[0] = Aggre_proj? 0.36 : 0.4407;//V 24010152Satgutier@umich.edu c_ox[0] = 1.79e-14*(Aggre_proj? 1.9/1.2:2);//F/micron2 24110152Satgutier@umich.edu mobility_eff[0] = 302.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 24210152Satgutier@umich.edu Vdsat[0] = 0.128*2; //V 24310152Satgutier@umich.edu c_g_ideal[0] = (Aggre_proj? 1.9/1.2:2)*6.64e-16;//F/micron 24410152Satgutier@umich.edu c_fringe[0] = (Aggre_proj? 1.9/1.2:2)*0.08e-15;//F/micron 24510152Satgutier@umich.edu c_junc[0] = (Aggre_proj? 1.9/1.2:2)*1e-15;//F/micron2 24610152Satgutier@umich.edu I_on_n[0] = 750e-6;//A/micron 24710152Satgutier@umich.edu I_on_p[0] = 350e-6;//A/micron 24810152Satgutier@umich.edu //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline 24910152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.54; 25010152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2.45; 25110152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.22; 25210152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 25310152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 25410152Satgutier@umich.edu long_channel_leakage_reduction[0] = 1; 25510152Satgutier@umich.edu I_off_n[0][0] = 7e-10;//A/micron 25610152Satgutier@umich.edu I_off_n[0][10] = 8.26e-10; 25710152Satgutier@umich.edu I_off_n[0][20] = 9.74e-10; 25810152Satgutier@umich.edu I_off_n[0][30] = 1.15e-9; 25910152Satgutier@umich.edu I_off_n[0][40] = 1.35e-9; 26010152Satgutier@umich.edu I_off_n[0][50] = 1.60e-9; 26110152Satgutier@umich.edu I_off_n[0][60] = 1.88e-9; 26210152Satgutier@umich.edu I_off_n[0][70] = 2.29e-9; 26310152Satgutier@umich.edu I_off_n[0][80] = 2.70e-9; 26410152Satgutier@umich.edu I_off_n[0][90] = 3.19e-9; 26510152Satgutier@umich.edu I_off_n[0][100] = 3.76e-9; 26610152Satgutier@umich.edu 26710152Satgutier@umich.edu I_g_on_n[0][0] = 1.65e-10;//A/micron 26810152Satgutier@umich.edu I_g_on_n[0][10] = 1.65e-10; 26910152Satgutier@umich.edu I_g_on_n[0][20] = 1.65e-10; 27010152Satgutier@umich.edu I_g_on_n[0][30] = 1.65e-10; 27110152Satgutier@umich.edu I_g_on_n[0][40] = 1.65e-10; 27210152Satgutier@umich.edu I_g_on_n[0][50] = 1.65e-10; 27310152Satgutier@umich.edu I_g_on_n[0][60] = 1.65e-10; 27410152Satgutier@umich.edu I_g_on_n[0][70] = 1.65e-10; 27510152Satgutier@umich.edu I_g_on_n[0][80] = 1.65e-10; 27610152Satgutier@umich.edu I_g_on_n[0][90] = 1.65e-10; 27710152Satgutier@umich.edu I_g_on_n[0][100] = 1.65e-10; 27810152Satgutier@umich.edu 27910152Satgutier@umich.edu //SRAM cell properties 28010152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 28110152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 28210152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 28310152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 28410152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 28510152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 28610152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 28710152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 28810152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 28910152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360 29010152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92;//2.5 29110152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 29210152Satgutier@umich.edu curr_logic_scaling_co_eff = 1.5;//linear scaling from 90nm 29310152Satgutier@umich.edu curr_core_tx_density = 1.25*0.7*0.7*0.4; 29410152Satgutier@umich.edu curr_sckt_co_eff = 1.11; 29510152Satgutier@umich.edu curr_chip_layout_overhead = 1.0;//die measurement results based on Niagara 1 and 2 29610152Satgutier@umich.edu curr_macro_layout_overhead = 1.0;//EDA placement and routing tool rule of thumb 29710152Satgutier@umich.edu 29810152Satgutier@umich.edu } 29910152Satgutier@umich.edu 30010152Satgutier@umich.edu if (tech == 90) 30110152Satgutier@umich.edu { 30210152Satgutier@umich.edu SENSE_AMP_D = .28e-9; // s 30310152Satgutier@umich.edu SENSE_AMP_P = 14.7e-15; // J 30410152Satgutier@umich.edu //90nm technology-node. Corresponds to year 2004 in ITRS 30510152Satgutier@umich.edu //ITRS HP device type 30610152Satgutier@umich.edu vdd[0] = 1.2; 30710152Satgutier@umich.edu Lphy[0] = 0.037;//Lphy is the physical gate-length. micron 30810152Satgutier@umich.edu Lelec[0] = 0.0266;//Lelec is the electrical gate-length. micron 30910152Satgutier@umich.edu t_ox[0] = 1.2e-3;//micron 31010152Satgutier@umich.edu v_th[0] = 0.23707;//V 31110152Satgutier@umich.edu c_ox[0] = 1.79e-14;//F/micron2 31210152Satgutier@umich.edu mobility_eff[0] = 342.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 31310152Satgutier@umich.edu Vdsat[0] = 0.128; //V 31410152Satgutier@umich.edu c_g_ideal[0] = 6.64e-16;//F/micron 31510152Satgutier@umich.edu c_fringe[0] = 0.08e-15;//F/micron 31610152Satgutier@umich.edu c_junc[0] = 1e-15;//F/micron2 31710152Satgutier@umich.edu I_on_n[0] = 1076.9e-6;//A/micron 31810152Satgutier@umich.edu I_on_p[0] = 712.6e-6;//A/micron 31910152Satgutier@umich.edu //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline 32010152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.54; 32110152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2.45; 32210152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.22; 32310152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 32410152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 32510152Satgutier@umich.edu long_channel_leakage_reduction[0] = 1; 32610152Satgutier@umich.edu I_off_n[0][0] = 3.24e-8;//A/micron 32710152Satgutier@umich.edu I_off_n[0][10] = 4.01e-8; 32810152Satgutier@umich.edu I_off_n[0][20] = 4.90e-8; 32910152Satgutier@umich.edu I_off_n[0][30] = 5.92e-8; 33010152Satgutier@umich.edu I_off_n[0][40] = 7.08e-8; 33110152Satgutier@umich.edu I_off_n[0][50] = 8.38e-8; 33210152Satgutier@umich.edu I_off_n[0][60] = 9.82e-8; 33310152Satgutier@umich.edu I_off_n[0][70] = 1.14e-7; 33410152Satgutier@umich.edu I_off_n[0][80] = 1.29e-7; 33510152Satgutier@umich.edu I_off_n[0][90] = 1.43e-7; 33610152Satgutier@umich.edu I_off_n[0][100] = 1.54e-7; 33710152Satgutier@umich.edu 33810152Satgutier@umich.edu I_g_on_n[0][0] = 1.65e-8;//A/micron 33910152Satgutier@umich.edu I_g_on_n[0][10] = 1.65e-8; 34010152Satgutier@umich.edu I_g_on_n[0][20] = 1.65e-8; 34110152Satgutier@umich.edu I_g_on_n[0][30] = 1.65e-8; 34210152Satgutier@umich.edu I_g_on_n[0][40] = 1.65e-8; 34310152Satgutier@umich.edu I_g_on_n[0][50] = 1.65e-8; 34410152Satgutier@umich.edu I_g_on_n[0][60] = 1.65e-8; 34510152Satgutier@umich.edu I_g_on_n[0][70] = 1.65e-8; 34610152Satgutier@umich.edu I_g_on_n[0][80] = 1.65e-8; 34710152Satgutier@umich.edu I_g_on_n[0][90] = 1.65e-8; 34810152Satgutier@umich.edu I_g_on_n[0][100] = 1.65e-8; 34910152Satgutier@umich.edu 35010152Satgutier@umich.edu //ITRS LSTP device type 35110152Satgutier@umich.edu vdd[1] = 1.3; 35210152Satgutier@umich.edu Lphy[1] = 0.075; 35310152Satgutier@umich.edu Lelec[1] = 0.0486; 35410152Satgutier@umich.edu t_ox[1] = 2.2e-3; 35510152Satgutier@umich.edu v_th[1] = 0.48203; 35610152Satgutier@umich.edu c_ox[1] = 1.22e-14; 35710152Satgutier@umich.edu mobility_eff[1] = 356.76 * (1e-2 * 1e6 * 1e-2 * 1e6); 35810152Satgutier@umich.edu Vdsat[1] = 0.373; 35910152Satgutier@umich.edu c_g_ideal[1] = 9.15e-16; 36010152Satgutier@umich.edu c_fringe[1] = 0.08e-15; 36110152Satgutier@umich.edu c_junc[1] = 1e-15; 36210152Satgutier@umich.edu I_on_n[1] = 503.6e-6; 36310152Satgutier@umich.edu I_on_p[1] = 235.1e-6; 36410152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.92; 36510152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[1] = 2.44; 36610152Satgutier@umich.edu gmp_to_gmn_multiplier[1] =0.88; 36710152Satgutier@umich.edu Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 36810152Satgutier@umich.edu Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 36910152Satgutier@umich.edu long_channel_leakage_reduction[1] = 1; 37010152Satgutier@umich.edu I_off_n[1][0] = 2.81e-12; 37110152Satgutier@umich.edu I_off_n[1][10] = 4.76e-12; 37210152Satgutier@umich.edu I_off_n[1][20] = 7.82e-12; 37310152Satgutier@umich.edu I_off_n[1][30] = 1.25e-11; 37410152Satgutier@umich.edu I_off_n[1][40] = 1.94e-11; 37510152Satgutier@umich.edu I_off_n[1][50] = 2.94e-11; 37610152Satgutier@umich.edu I_off_n[1][60] = 4.36e-11; 37710152Satgutier@umich.edu I_off_n[1][70] = 6.32e-11; 37810152Satgutier@umich.edu I_off_n[1][80] = 8.95e-11; 37910152Satgutier@umich.edu I_off_n[1][90] = 1.25e-10; 38010152Satgutier@umich.edu I_off_n[1][100] = 1.7e-10; 38110152Satgutier@umich.edu 38210152Satgutier@umich.edu I_g_on_n[1][0] = 3.87e-11;//A/micron 38310152Satgutier@umich.edu I_g_on_n[1][10] = 3.87e-11; 38410152Satgutier@umich.edu I_g_on_n[1][20] = 3.87e-11; 38510152Satgutier@umich.edu I_g_on_n[1][30] = 3.87e-11; 38610152Satgutier@umich.edu I_g_on_n[1][40] = 3.87e-11; 38710152Satgutier@umich.edu I_g_on_n[1][50] = 3.87e-11; 38810152Satgutier@umich.edu I_g_on_n[1][60] = 3.87e-11; 38910152Satgutier@umich.edu I_g_on_n[1][70] = 3.87e-11; 39010152Satgutier@umich.edu I_g_on_n[1][80] = 3.87e-11; 39110152Satgutier@umich.edu I_g_on_n[1][90] = 3.87e-11; 39210152Satgutier@umich.edu I_g_on_n[1][100] = 3.87e-11; 39310152Satgutier@umich.edu 39410152Satgutier@umich.edu //ITRS LOP device type 39510152Satgutier@umich.edu vdd[2] = 0.9; 39610152Satgutier@umich.edu Lphy[2] = 0.053; 39710152Satgutier@umich.edu Lelec[2] = 0.0354; 39810152Satgutier@umich.edu t_ox[2] = 1.5e-3; 39910152Satgutier@umich.edu v_th[2] = 0.30764; 40010152Satgutier@umich.edu c_ox[2] = 1.59e-14; 40110152Satgutier@umich.edu mobility_eff[2] = 460.39 * (1e-2 * 1e6 * 1e-2 * 1e6); 40210152Satgutier@umich.edu Vdsat[2] = 0.113; 40310152Satgutier@umich.edu c_g_ideal[2] = 8.45e-16; 40410152Satgutier@umich.edu c_fringe[2] = 0.08e-15; 40510152Satgutier@umich.edu c_junc[2] = 1e-15; 40610152Satgutier@umich.edu I_on_n[2] = 386.6e-6; 40710152Satgutier@umich.edu I_on_p[2] = 209.7e-6; 40810152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.77; 40910152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[2] = 2.54; 41010152Satgutier@umich.edu gmp_to_gmn_multiplier[2] = 0.98; 41110152Satgutier@umich.edu Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 41210152Satgutier@umich.edu Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 41310152Satgutier@umich.edu long_channel_leakage_reduction[2] = 1; 41410152Satgutier@umich.edu I_off_n[2][0] = 2.14e-9; 41510152Satgutier@umich.edu I_off_n[2][10] = 2.9e-9; 41610152Satgutier@umich.edu I_off_n[2][20] = 3.87e-9; 41710152Satgutier@umich.edu I_off_n[2][30] = 5.07e-9; 41810152Satgutier@umich.edu I_off_n[2][40] = 6.54e-9; 41910152Satgutier@umich.edu I_off_n[2][50] = 8.27e-8; 42010152Satgutier@umich.edu I_off_n[2][60] = 1.02e-7; 42110152Satgutier@umich.edu I_off_n[2][70] = 1.20e-7; 42210152Satgutier@umich.edu I_off_n[2][80] = 1.36e-8; 42310152Satgutier@umich.edu I_off_n[2][90] = 1.52e-8; 42410152Satgutier@umich.edu I_off_n[2][100] = 1.73e-8; 42510152Satgutier@umich.edu 42610152Satgutier@umich.edu I_g_on_n[2][0] = 4.31e-8;//A/micron 42710152Satgutier@umich.edu I_g_on_n[2][10] = 4.31e-8; 42810152Satgutier@umich.edu I_g_on_n[2][20] = 4.31e-8; 42910152Satgutier@umich.edu I_g_on_n[2][30] = 4.31e-8; 43010152Satgutier@umich.edu I_g_on_n[2][40] = 4.31e-8; 43110152Satgutier@umich.edu I_g_on_n[2][50] = 4.31e-8; 43210152Satgutier@umich.edu I_g_on_n[2][60] = 4.31e-8; 43310152Satgutier@umich.edu I_g_on_n[2][70] = 4.31e-8; 43410152Satgutier@umich.edu I_g_on_n[2][80] = 4.31e-8; 43510152Satgutier@umich.edu I_g_on_n[2][90] = 4.31e-8; 43610152Satgutier@umich.edu I_g_on_n[2][100] = 4.31e-8; 43710152Satgutier@umich.edu 43810152Satgutier@umich.edu if (ram_cell_tech_type == lp_dram) 43910152Satgutier@umich.edu { 44010152Satgutier@umich.edu //LP-DRAM cell access transistor technology parameters 44110152Satgutier@umich.edu curr_vdd_dram_cell = 1.2; 44210152Satgutier@umich.edu Lphy[3] = 0.12; 44310152Satgutier@umich.edu Lelec[3] = 0.0756; 44410152Satgutier@umich.edu curr_v_th_dram_access_transistor = 0.4545; 44510152Satgutier@umich.edu width_dram_access_transistor = 0.14; 44610152Satgutier@umich.edu curr_I_on_dram_cell = 45e-6; 44710152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 21.1e-12; 44810152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 44910152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 45010152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 45110152Satgutier@umich.edu curr_area_cell_dram = 0.168; 45210152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.46; 45310152Satgutier@umich.edu curr_c_dram_cell = 20e-15; 45410152Satgutier@umich.edu 45510152Satgutier@umich.edu //LP-DRAM wordline transistor parameters 45610152Satgutier@umich.edu curr_vpp = 1.6; 45710152Satgutier@umich.edu t_ox[3] = 2.2e-3; 45810152Satgutier@umich.edu v_th[3] = 0.4545; 45910152Satgutier@umich.edu c_ox[3] = 1.22e-14; 46010152Satgutier@umich.edu mobility_eff[3] = 323.95 * (1e-2 * 1e6 * 1e-2 * 1e6); 46110152Satgutier@umich.edu Vdsat[3] = 0.3; 46210152Satgutier@umich.edu c_g_ideal[3] = 1.47e-15; 46310152Satgutier@umich.edu c_fringe[3] = 0.08e-15; 46410152Satgutier@umich.edu c_junc[3] = 1e-15; 46510152Satgutier@umich.edu I_on_n[3] = 321.6e-6; 46610152Satgutier@umich.edu I_on_p[3] = 203.3e-6; 46710152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.65; 46810152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 1.95; 46910152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 47010152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 47110152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 47210152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 47310152Satgutier@umich.edu I_off_n[3][0] = 1.42e-11; 47410152Satgutier@umich.edu I_off_n[3][10] = 2.25e-11; 47510152Satgutier@umich.edu I_off_n[3][20] = 3.46e-11; 47610152Satgutier@umich.edu I_off_n[3][30] = 5.18e-11; 47710152Satgutier@umich.edu I_off_n[3][40] = 7.58e-11; 47810152Satgutier@umich.edu I_off_n[3][50] = 1.08e-10; 47910152Satgutier@umich.edu I_off_n[3][60] = 1.51e-10; 48010152Satgutier@umich.edu I_off_n[3][70] = 2.02e-10; 48110152Satgutier@umich.edu I_off_n[3][80] = 2.57e-10; 48210152Satgutier@umich.edu I_off_n[3][90] = 3.14e-10; 48310152Satgutier@umich.edu I_off_n[3][100] = 3.85e-10; 48410152Satgutier@umich.edu } 48510152Satgutier@umich.edu else if (ram_cell_tech_type == comm_dram) 48610152Satgutier@umich.edu { 48710152Satgutier@umich.edu //COMM-DRAM cell access transistor technology parameters 48810152Satgutier@umich.edu curr_vdd_dram_cell = 1.6; 48910152Satgutier@umich.edu Lphy[3] = 0.09; 49010152Satgutier@umich.edu Lelec[3] = 0.0576; 49110152Satgutier@umich.edu curr_v_th_dram_access_transistor = 1; 49210152Satgutier@umich.edu width_dram_access_transistor = 0.09; 49310152Satgutier@umich.edu curr_I_on_dram_cell = 20e-6; 49410152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 49510152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 49610152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 49710152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 49810152Satgutier@umich.edu curr_area_cell_dram = 6*0.09*0.09; 49910152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.5; 50010152Satgutier@umich.edu curr_c_dram_cell = 30e-15; 50110152Satgutier@umich.edu 50210152Satgutier@umich.edu //COMM-DRAM wordline transistor parameters 50310152Satgutier@umich.edu curr_vpp = 3.7; 50410152Satgutier@umich.edu t_ox[3] = 5.5e-3; 50510152Satgutier@umich.edu v_th[3] = 1.0; 50610152Satgutier@umich.edu c_ox[3] = 5.65e-15; 50710152Satgutier@umich.edu mobility_eff[3] = 302.2 * (1e-2 * 1e6 * 1e-2 * 1e6); 50810152Satgutier@umich.edu Vdsat[3] = 0.32; 50910152Satgutier@umich.edu c_g_ideal[3] = 5.08e-16; 51010152Satgutier@umich.edu c_fringe[3] = 0.08e-15; 51110152Satgutier@umich.edu c_junc[3] = 1e-15; 51210152Satgutier@umich.edu I_on_n[3] = 1094.3e-6; 51310152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2; 51410152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.62; 51510152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 2.05; 51610152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 51710152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 51810152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 51910152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 52010152Satgutier@umich.edu I_off_n[3][0] = 5.80e-15; 52110152Satgutier@umich.edu I_off_n[3][10] = 1.21e-14; 52210152Satgutier@umich.edu I_off_n[3][20] = 2.42e-14; 52310152Satgutier@umich.edu I_off_n[3][30] = 4.65e-14; 52410152Satgutier@umich.edu I_off_n[3][40] = 8.60e-14; 52510152Satgutier@umich.edu I_off_n[3][50] = 1.54e-13; 52610152Satgutier@umich.edu I_off_n[3][60] = 2.66e-13; 52710152Satgutier@umich.edu I_off_n[3][70] = 4.45e-13; 52810152Satgutier@umich.edu I_off_n[3][80] = 7.17e-13; 52910152Satgutier@umich.edu I_off_n[3][90] = 1.11e-12; 53010152Satgutier@umich.edu I_off_n[3][100] = 1.67e-12; 53110152Satgutier@umich.edu } 53210152Satgutier@umich.edu 53310152Satgutier@umich.edu //SRAM cell properties 53410152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 53510152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 53610152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 53710152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 53810152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 53910152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 54010152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 54110152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 54210152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 54310152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360 54410152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92;//2.5 54510152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 54610152Satgutier@umich.edu curr_logic_scaling_co_eff = 1; 54710152Satgutier@umich.edu curr_core_tx_density = 1.25*0.7*0.7; 54810152Satgutier@umich.edu curr_sckt_co_eff = 1.1539; 54910152Satgutier@umich.edu curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 55010152Satgutier@umich.edu curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 55110152Satgutier@umich.edu 55210152Satgutier@umich.edu 55310152Satgutier@umich.edu } 55410152Satgutier@umich.edu 55510152Satgutier@umich.edu if (tech == 65) 55610152Satgutier@umich.edu { //65nm technology-node. Corresponds to year 2007 in ITRS 55710152Satgutier@umich.edu //ITRS HP device type 55810152Satgutier@umich.edu SENSE_AMP_D = .2e-9; // s 55910152Satgutier@umich.edu SENSE_AMP_P = 5.7e-15; // J 56010152Satgutier@umich.edu vdd[0] = 1.1; 56110152Satgutier@umich.edu Lphy[0] = 0.025; 56210152Satgutier@umich.edu Lelec[0] = 0.019; 56310152Satgutier@umich.edu t_ox[0] = 1.1e-3; 56410152Satgutier@umich.edu v_th[0] = .19491; 56510152Satgutier@umich.edu c_ox[0] = 1.88e-14; 56610152Satgutier@umich.edu mobility_eff[0] = 436.24 * (1e-2 * 1e6 * 1e-2 * 1e6); 56710152Satgutier@umich.edu Vdsat[0] = 7.71e-2; 56810152Satgutier@umich.edu c_g_ideal[0] = 4.69e-16; 56910152Satgutier@umich.edu c_fringe[0] = 0.077e-15; 57010152Satgutier@umich.edu c_junc[0] = 1e-15; 57110152Satgutier@umich.edu I_on_n[0] = 1197.2e-6; 57210152Satgutier@umich.edu I_on_p[0] = 870.8e-6; 57310152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.50; 57410152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2.41; 57510152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.38; 57610152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0]; 57710152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0]; 57810152Satgutier@umich.edu long_channel_leakage_reduction[0] = 1/3.74; 57910152Satgutier@umich.edu //Using MASTAR, @380K, increase Lgate until Ion reduces to 90% or Lgate increase by 10%, whichever comes first 58010152Satgutier@umich.edu //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74. 58110152Satgutier@umich.edu I_off_n[0][0] = 1.96e-7; 58210152Satgutier@umich.edu I_off_n[0][10] = 2.29e-7; 58310152Satgutier@umich.edu I_off_n[0][20] = 2.66e-7; 58410152Satgutier@umich.edu I_off_n[0][30] = 3.05e-7; 58510152Satgutier@umich.edu I_off_n[0][40] = 3.49e-7; 58610152Satgutier@umich.edu I_off_n[0][50] = 3.95e-7; 58710152Satgutier@umich.edu I_off_n[0][60] = 4.45e-7; 58810152Satgutier@umich.edu I_off_n[0][70] = 4.97e-7; 58910152Satgutier@umich.edu I_off_n[0][80] = 5.48e-7; 59010152Satgutier@umich.edu I_off_n[0][90] = 5.94e-7; 59110152Satgutier@umich.edu I_off_n[0][100] = 6.3e-7; 59210152Satgutier@umich.edu I_g_on_n[0][0] = 4.09e-8;//A/micron 59310152Satgutier@umich.edu I_g_on_n[0][10] = 4.09e-8; 59410152Satgutier@umich.edu I_g_on_n[0][20] = 4.09e-8; 59510152Satgutier@umich.edu I_g_on_n[0][30] = 4.09e-8; 59610152Satgutier@umich.edu I_g_on_n[0][40] = 4.09e-8; 59710152Satgutier@umich.edu I_g_on_n[0][50] = 4.09e-8; 59810152Satgutier@umich.edu I_g_on_n[0][60] = 4.09e-8; 59910152Satgutier@umich.edu I_g_on_n[0][70] = 4.09e-8; 60010152Satgutier@umich.edu I_g_on_n[0][80] = 4.09e-8; 60110152Satgutier@umich.edu I_g_on_n[0][90] = 4.09e-8; 60210152Satgutier@umich.edu I_g_on_n[0][100] = 4.09e-8; 60310152Satgutier@umich.edu 60410152Satgutier@umich.edu //ITRS LSTP device type 60510152Satgutier@umich.edu vdd[1] = 1.2; 60610152Satgutier@umich.edu Lphy[1] = 0.045; 60710152Satgutier@umich.edu Lelec[1] = 0.0298; 60810152Satgutier@umich.edu t_ox[1] = 1.9e-3; 60910152Satgutier@umich.edu v_th[1] = 0.52354; 61010152Satgutier@umich.edu c_ox[1] = 1.36e-14; 61110152Satgutier@umich.edu mobility_eff[1] = 341.21 * (1e-2 * 1e6 * 1e-2 * 1e6); 61210152Satgutier@umich.edu Vdsat[1] = 0.128; 61310152Satgutier@umich.edu c_g_ideal[1] = 6.14e-16; 61410152Satgutier@umich.edu c_fringe[1] = 0.08e-15; 61510152Satgutier@umich.edu c_junc[1] = 1e-15; 61610152Satgutier@umich.edu I_on_n[1] = 519.2e-6; 61710152Satgutier@umich.edu I_on_p[1] = 266e-6; 61810152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.96; 61910152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[1] = 2.23; 62010152Satgutier@umich.edu gmp_to_gmn_multiplier[1] = 0.99; 62110152Satgutier@umich.edu Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 62210152Satgutier@umich.edu Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 62310152Satgutier@umich.edu long_channel_leakage_reduction[1] = 1/2.82; 62410152Satgutier@umich.edu I_off_n[1][0] = 9.12e-12; 62510152Satgutier@umich.edu I_off_n[1][10] = 1.49e-11; 62610152Satgutier@umich.edu I_off_n[1][20] = 2.36e-11; 62710152Satgutier@umich.edu I_off_n[1][30] = 3.64e-11; 62810152Satgutier@umich.edu I_off_n[1][40] = 5.48e-11; 62910152Satgutier@umich.edu I_off_n[1][50] = 8.05e-11; 63010152Satgutier@umich.edu I_off_n[1][60] = 1.15e-10; 63110152Satgutier@umich.edu I_off_n[1][70] = 1.59e-10; 63210152Satgutier@umich.edu I_off_n[1][80] = 2.1e-10; 63310152Satgutier@umich.edu I_off_n[1][90] = 2.62e-10; 63410152Satgutier@umich.edu I_off_n[1][100] = 3.21e-10; 63510152Satgutier@umich.edu 63610152Satgutier@umich.edu I_g_on_n[1][0] = 1.09e-10;//A/micron 63710152Satgutier@umich.edu I_g_on_n[1][10] = 1.09e-10; 63810152Satgutier@umich.edu I_g_on_n[1][20] = 1.09e-10; 63910152Satgutier@umich.edu I_g_on_n[1][30] = 1.09e-10; 64010152Satgutier@umich.edu I_g_on_n[1][40] = 1.09e-10; 64110152Satgutier@umich.edu I_g_on_n[1][50] = 1.09e-10; 64210152Satgutier@umich.edu I_g_on_n[1][60] = 1.09e-10; 64310152Satgutier@umich.edu I_g_on_n[1][70] = 1.09e-10; 64410152Satgutier@umich.edu I_g_on_n[1][80] = 1.09e-10; 64510152Satgutier@umich.edu I_g_on_n[1][90] = 1.09e-10; 64610152Satgutier@umich.edu I_g_on_n[1][100] = 1.09e-10; 64710152Satgutier@umich.edu 64810152Satgutier@umich.edu //ITRS LOP device type 64910152Satgutier@umich.edu vdd[2] = 0.8; 65010152Satgutier@umich.edu Lphy[2] = 0.032; 65110152Satgutier@umich.edu Lelec[2] = 0.0216; 65210152Satgutier@umich.edu t_ox[2] = 1.2e-3; 65310152Satgutier@umich.edu v_th[2] = 0.28512; 65410152Satgutier@umich.edu c_ox[2] = 1.87e-14; 65510152Satgutier@umich.edu mobility_eff[2] = 495.19 * (1e-2 * 1e6 * 1e-2 * 1e6); 65610152Satgutier@umich.edu Vdsat[2] = 0.292; 65710152Satgutier@umich.edu c_g_ideal[2] = 6e-16; 65810152Satgutier@umich.edu c_fringe[2] = 0.08e-15; 65910152Satgutier@umich.edu c_junc[2] = 1e-15; 66010152Satgutier@umich.edu I_on_n[2] = 573.1e-6; 66110152Satgutier@umich.edu I_on_p[2] = 340.6e-6; 66210152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.82; 66310152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[2] = 2.28; 66410152Satgutier@umich.edu gmp_to_gmn_multiplier[2] = 1.11; 66510152Satgutier@umich.edu Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 66610152Satgutier@umich.edu Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 66710152Satgutier@umich.edu long_channel_leakage_reduction[2] = 1/2.05; 66810152Satgutier@umich.edu I_off_n[2][0] = 4.9e-9; 66910152Satgutier@umich.edu I_off_n[2][10] = 6.49e-9; 67010152Satgutier@umich.edu I_off_n[2][20] = 8.45e-9; 67110152Satgutier@umich.edu I_off_n[2][30] = 1.08e-8; 67210152Satgutier@umich.edu I_off_n[2][40] = 1.37e-8; 67310152Satgutier@umich.edu I_off_n[2][50] = 1.71e-8; 67410152Satgutier@umich.edu I_off_n[2][60] = 2.09e-8; 67510152Satgutier@umich.edu I_off_n[2][70] = 2.48e-8; 67610152Satgutier@umich.edu I_off_n[2][80] = 2.84e-8; 67710152Satgutier@umich.edu I_off_n[2][90] = 3.13e-8; 67810152Satgutier@umich.edu I_off_n[2][100] = 3.42e-8; 67910152Satgutier@umich.edu 68010152Satgutier@umich.edu I_g_on_n[2][0] = 9.61e-9;//A/micron 68110152Satgutier@umich.edu I_g_on_n[2][10] = 9.61e-9; 68210152Satgutier@umich.edu I_g_on_n[2][20] = 9.61e-9; 68310152Satgutier@umich.edu I_g_on_n[2][30] = 9.61e-9; 68410152Satgutier@umich.edu I_g_on_n[2][40] = 9.61e-9; 68510152Satgutier@umich.edu I_g_on_n[2][50] = 9.61e-9; 68610152Satgutier@umich.edu I_g_on_n[2][60] = 9.61e-9; 68710152Satgutier@umich.edu I_g_on_n[2][70] = 9.61e-9; 68810152Satgutier@umich.edu I_g_on_n[2][80] = 9.61e-9; 68910152Satgutier@umich.edu I_g_on_n[2][90] = 9.61e-9; 69010152Satgutier@umich.edu I_g_on_n[2][100] = 9.61e-9; 69110152Satgutier@umich.edu 69210152Satgutier@umich.edu if (ram_cell_tech_type == lp_dram) 69310152Satgutier@umich.edu { 69410152Satgutier@umich.edu //LP-DRAM cell access transistor technology parameters 69510152Satgutier@umich.edu curr_vdd_dram_cell = 1.2; 69610152Satgutier@umich.edu Lphy[3] = 0.12; 69710152Satgutier@umich.edu Lelec[3] = 0.0756; 69810152Satgutier@umich.edu curr_v_th_dram_access_transistor = 0.43806; 69910152Satgutier@umich.edu width_dram_access_transistor = 0.09; 70010152Satgutier@umich.edu curr_I_on_dram_cell = 36e-6; 70110152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 19.6e-12; 70210152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 70310152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 70410152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 70510152Satgutier@umich.edu curr_area_cell_dram = 0.11; 70610152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.46; 70710152Satgutier@umich.edu curr_c_dram_cell = 20e-15; 70810152Satgutier@umich.edu 70910152Satgutier@umich.edu //LP-DRAM wordline transistor parameters 71010152Satgutier@umich.edu curr_vpp = 1.6; 71110152Satgutier@umich.edu t_ox[3] = 2.2e-3; 71210152Satgutier@umich.edu v_th[3] = 0.43806; 71310152Satgutier@umich.edu c_ox[3] = 1.22e-14; 71410152Satgutier@umich.edu mobility_eff[3] = 328.32 * (1e-2 * 1e6 * 1e-2 * 1e6); 71510152Satgutier@umich.edu Vdsat[3] = 0.43806; 71610152Satgutier@umich.edu c_g_ideal[3] = 1.46e-15; 71710152Satgutier@umich.edu c_fringe[3] = 0.08e-15; 71810152Satgutier@umich.edu c_junc[3] = 1e-15 ; 71910152Satgutier@umich.edu I_on_n[3] = 399.8e-6; 72010152Satgutier@umich.edu I_on_p[3] = 243.4e-6; 72110152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.65; 72210152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 2.05; 72310152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 72410152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 72510152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 72610152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 72710152Satgutier@umich.edu I_off_n[3][0] = 2.23e-11; 72810152Satgutier@umich.edu I_off_n[3][10] = 3.46e-11; 72910152Satgutier@umich.edu I_off_n[3][20] = 5.24e-11; 73010152Satgutier@umich.edu I_off_n[3][30] = 7.75e-11; 73110152Satgutier@umich.edu I_off_n[3][40] = 1.12e-10; 73210152Satgutier@umich.edu I_off_n[3][50] = 1.58e-10; 73310152Satgutier@umich.edu I_off_n[3][60] = 2.18e-10; 73410152Satgutier@umich.edu I_off_n[3][70] = 2.88e-10; 73510152Satgutier@umich.edu I_off_n[3][80] = 3.63e-10; 73610152Satgutier@umich.edu I_off_n[3][90] = 4.41e-10; 73710152Satgutier@umich.edu I_off_n[3][100] = 5.36e-10; 73810152Satgutier@umich.edu } 73910152Satgutier@umich.edu else if (ram_cell_tech_type == comm_dram) 74010152Satgutier@umich.edu { 74110152Satgutier@umich.edu //COMM-DRAM cell access transistor technology parameters 74210152Satgutier@umich.edu curr_vdd_dram_cell = 1.3; 74310152Satgutier@umich.edu Lphy[3] = 0.065; 74410152Satgutier@umich.edu Lelec[3] = 0.0426; 74510152Satgutier@umich.edu curr_v_th_dram_access_transistor = 1; 74610152Satgutier@umich.edu width_dram_access_transistor = 0.065; 74710152Satgutier@umich.edu curr_I_on_dram_cell = 20e-6; 74810152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 74910152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 75010152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 75110152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 75210152Satgutier@umich.edu curr_area_cell_dram = 6*0.065*0.065; 75310152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.5; 75410152Satgutier@umich.edu curr_c_dram_cell = 30e-15; 75510152Satgutier@umich.edu 75610152Satgutier@umich.edu //COMM-DRAM wordline transistor parameters 75710152Satgutier@umich.edu curr_vpp = 3.3; 75810152Satgutier@umich.edu t_ox[3] = 5e-3; 75910152Satgutier@umich.edu v_th[3] = 1.0; 76010152Satgutier@umich.edu c_ox[3] = 6.16e-15; 76110152Satgutier@umich.edu mobility_eff[3] = 303.44 * (1e-2 * 1e6 * 1e-2 * 1e6); 76210152Satgutier@umich.edu Vdsat[3] = 0.385; 76310152Satgutier@umich.edu c_g_ideal[3] = 4e-16; 76410152Satgutier@umich.edu c_fringe[3] = 0.08e-15; 76510152Satgutier@umich.edu c_junc[3] = 1e-15 ; 76610152Satgutier@umich.edu I_on_n[3] = 1031e-6; 76710152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2; 76810152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.69; 76910152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 2.39; 77010152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 77110152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 77210152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 77310152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 77410152Satgutier@umich.edu I_off_n[3][0] = 1.80e-14; 77510152Satgutier@umich.edu I_off_n[3][10] = 3.64e-14; 77610152Satgutier@umich.edu I_off_n[3][20] = 7.03e-14; 77710152Satgutier@umich.edu I_off_n[3][30] = 1.31e-13; 77810152Satgutier@umich.edu I_off_n[3][40] = 2.35e-13; 77910152Satgutier@umich.edu I_off_n[3][50] = 4.09e-13; 78010152Satgutier@umich.edu I_off_n[3][60] = 6.89e-13; 78110152Satgutier@umich.edu I_off_n[3][70] = 1.13e-12; 78210152Satgutier@umich.edu I_off_n[3][80] = 1.78e-12; 78310152Satgutier@umich.edu I_off_n[3][90] = 2.71e-12; 78410152Satgutier@umich.edu I_off_n[3][100] = 3.99e-12; 78510152Satgutier@umich.edu } 78610152Satgutier@umich.edu 78710152Satgutier@umich.edu //SRAM cell properties 78810152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 78910152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 79010152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 79110152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 79210152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 79310152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 79410152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 79510152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 79610152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 79710152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 79810152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92; 79910152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 80010152Satgutier@umich.edu curr_logic_scaling_co_eff = 0.7; //Rather than scale proportionally to square of feature size, only scale linearly according to IBM cell processor 80110152Satgutier@umich.edu curr_core_tx_density = 1.25*0.7; 80210152Satgutier@umich.edu curr_sckt_co_eff = 1.1359; 80310152Satgutier@umich.edu curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 80410152Satgutier@umich.edu curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 80510152Satgutier@umich.edu } 80610152Satgutier@umich.edu 80710152Satgutier@umich.edu if (tech == 45) 80810152Satgutier@umich.edu { //45nm technology-node. Corresponds to year 2010 in ITRS 80910152Satgutier@umich.edu //ITRS HP device type 81010152Satgutier@umich.edu SENSE_AMP_D = .04e-9; // s 81110152Satgutier@umich.edu SENSE_AMP_P = 2.7e-15; // J 81210152Satgutier@umich.edu vdd[0] = 1.0; 81310152Satgutier@umich.edu Lphy[0] = 0.018; 81410152Satgutier@umich.edu Lelec[0] = 0.01345; 81510152Satgutier@umich.edu t_ox[0] = 0.65e-3; 81610152Satgutier@umich.edu v_th[0] = .18035; 81710152Satgutier@umich.edu c_ox[0] = 3.77e-14; 81810152Satgutier@umich.edu mobility_eff[0] = 266.68 * (1e-2 * 1e6 * 1e-2 * 1e6); 81910152Satgutier@umich.edu Vdsat[0] = 9.38E-2; 82010152Satgutier@umich.edu c_g_ideal[0] = 6.78e-16; 82110152Satgutier@umich.edu c_fringe[0] = 0.05e-15; 82210152Satgutier@umich.edu c_junc[0] = 1e-15; 82310152Satgutier@umich.edu I_on_n[0] = 2046.6e-6; 82410152Satgutier@umich.edu //There are certain problems with the ITRS PMOS numbers in MASTAR for 45nm. So we are using 65nm values of 82510152Satgutier@umich.edu //n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier for 45nm 82610152Satgutier@umich.edu I_on_p[0] = I_on_n[0] / 2;//This value is fixed arbitrarily but I_on_p is not being used in CACTI 82710152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.51; 82810152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2.41; 82910152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.38; 83010152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0]; 83110152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0]; 83210152Satgutier@umich.edu 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 83310152Satgutier@umich.edu I_off_n[0][0] = 2.8e-7; 83410152Satgutier@umich.edu I_off_n[0][10] = 3.28e-7; 83510152Satgutier@umich.edu I_off_n[0][20] = 3.81e-7; 83610152Satgutier@umich.edu I_off_n[0][30] = 4.39e-7; 83710152Satgutier@umich.edu I_off_n[0][40] = 5.02e-7; 83810152Satgutier@umich.edu I_off_n[0][50] = 5.69e-7; 83910152Satgutier@umich.edu I_off_n[0][60] = 6.42e-7; 84010152Satgutier@umich.edu I_off_n[0][70] = 7.2e-7; 84110152Satgutier@umich.edu I_off_n[0][80] = 8.03e-7; 84210152Satgutier@umich.edu I_off_n[0][90] = 8.91e-7; 84310152Satgutier@umich.edu I_off_n[0][100] = 9.84e-7; 84410152Satgutier@umich.edu 84510152Satgutier@umich.edu I_g_on_n[0][0] = 3.59e-8;//A/micron 84610152Satgutier@umich.edu I_g_on_n[0][10] = 3.59e-8; 84710152Satgutier@umich.edu I_g_on_n[0][20] = 3.59e-8; 84810152Satgutier@umich.edu I_g_on_n[0][30] = 3.59e-8; 84910152Satgutier@umich.edu I_g_on_n[0][40] = 3.59e-8; 85010152Satgutier@umich.edu I_g_on_n[0][50] = 3.59e-8; 85110152Satgutier@umich.edu I_g_on_n[0][60] = 3.59e-8; 85210152Satgutier@umich.edu I_g_on_n[0][70] = 3.59e-8; 85310152Satgutier@umich.edu I_g_on_n[0][80] = 3.59e-8; 85410152Satgutier@umich.edu I_g_on_n[0][90] = 3.59e-8; 85510152Satgutier@umich.edu I_g_on_n[0][100] = 3.59e-8; 85610152Satgutier@umich.edu 85710152Satgutier@umich.edu //ITRS LSTP device type 85810152Satgutier@umich.edu vdd[1] = 1.1; 85910152Satgutier@umich.edu Lphy[1] = 0.028; 86010152Satgutier@umich.edu Lelec[1] = 0.0212; 86110152Satgutier@umich.edu t_ox[1] = 1.4e-3; 86210152Satgutier@umich.edu v_th[1] = 0.50245; 86310152Satgutier@umich.edu c_ox[1] = 2.01e-14; 86410152Satgutier@umich.edu mobility_eff[1] = 363.96 * (1e-2 * 1e6 * 1e-2 * 1e6); 86510152Satgutier@umich.edu Vdsat[1] = 9.12e-2; 86610152Satgutier@umich.edu c_g_ideal[1] = 5.18e-16; 86710152Satgutier@umich.edu c_fringe[1] = 0.08e-15; 86810152Satgutier@umich.edu c_junc[1] = 1e-15; 86910152Satgutier@umich.edu I_on_n[1] = 666.2e-6; 87010152Satgutier@umich.edu I_on_p[1] = I_on_n[1] / 2; 87110152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.99; 87210152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[1] = 2.23; 87310152Satgutier@umich.edu gmp_to_gmn_multiplier[1] = 0.99; 87410152Satgutier@umich.edu Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 87510152Satgutier@umich.edu Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 87610152Satgutier@umich.edu long_channel_leakage_reduction[1] = 1/2.08; 87710152Satgutier@umich.edu I_off_n[1][0] = 1.01e-11; 87810152Satgutier@umich.edu I_off_n[1][10] = 1.65e-11; 87910152Satgutier@umich.edu I_off_n[1][20] = 2.62e-11; 88010152Satgutier@umich.edu I_off_n[1][30] = 4.06e-11; 88110152Satgutier@umich.edu I_off_n[1][40] = 6.12e-11; 88210152Satgutier@umich.edu I_off_n[1][50] = 9.02e-11; 88310152Satgutier@umich.edu I_off_n[1][60] = 1.3e-10; 88410152Satgutier@umich.edu I_off_n[1][70] = 1.83e-10; 88510152Satgutier@umich.edu I_off_n[1][80] = 2.51e-10; 88610152Satgutier@umich.edu I_off_n[1][90] = 3.29e-10; 88710152Satgutier@umich.edu I_off_n[1][100] = 4.1e-10; 88810152Satgutier@umich.edu 88910152Satgutier@umich.edu I_g_on_n[1][0] = 9.47e-12;//A/micron 89010152Satgutier@umich.edu I_g_on_n[1][10] = 9.47e-12; 89110152Satgutier@umich.edu I_g_on_n[1][20] = 9.47e-12; 89210152Satgutier@umich.edu I_g_on_n[1][30] = 9.47e-12; 89310152Satgutier@umich.edu I_g_on_n[1][40] = 9.47e-12; 89410152Satgutier@umich.edu I_g_on_n[1][50] = 9.47e-12; 89510152Satgutier@umich.edu I_g_on_n[1][60] = 9.47e-12; 89610152Satgutier@umich.edu I_g_on_n[1][70] = 9.47e-12; 89710152Satgutier@umich.edu I_g_on_n[1][80] = 9.47e-12; 89810152Satgutier@umich.edu I_g_on_n[1][90] = 9.47e-12; 89910152Satgutier@umich.edu I_g_on_n[1][100] = 9.47e-12; 90010152Satgutier@umich.edu 90110152Satgutier@umich.edu //ITRS LOP device type 90210152Satgutier@umich.edu vdd[2] = 0.7; 90310152Satgutier@umich.edu Lphy[2] = 0.022; 90410152Satgutier@umich.edu Lelec[2] = 0.016; 90510152Satgutier@umich.edu t_ox[2] = 0.9e-3; 90610152Satgutier@umich.edu v_th[2] = 0.22599; 90710152Satgutier@umich.edu c_ox[2] = 2.82e-14;//F/micron2 90810152Satgutier@umich.edu mobility_eff[2] = 508.9 * (1e-2 * 1e6 * 1e-2 * 1e6); 90910152Satgutier@umich.edu Vdsat[2] = 5.71e-2; 91010152Satgutier@umich.edu c_g_ideal[2] = 6.2e-16; 91110152Satgutier@umich.edu c_fringe[2] = 0.073e-15; 91210152Satgutier@umich.edu c_junc[2] = 1e-15; 91310152Satgutier@umich.edu I_on_n[2] = 748.9e-6; 91410152Satgutier@umich.edu I_on_p[2] = I_on_n[2] / 2; 91510152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.76; 91610152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[2] = 2.28; 91710152Satgutier@umich.edu gmp_to_gmn_multiplier[2] = 1.11; 91810152Satgutier@umich.edu Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 91910152Satgutier@umich.edu Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 92010152Satgutier@umich.edu long_channel_leakage_reduction[2] = 1/1.92; 92110152Satgutier@umich.edu I_off_n[2][0] = 4.03e-9; 92210152Satgutier@umich.edu I_off_n[2][10] = 5.02e-9; 92310152Satgutier@umich.edu I_off_n[2][20] = 6.18e-9; 92410152Satgutier@umich.edu I_off_n[2][30] = 7.51e-9; 92510152Satgutier@umich.edu I_off_n[2][40] = 9.04e-9; 92610152Satgutier@umich.edu I_off_n[2][50] = 1.08e-8; 92710152Satgutier@umich.edu I_off_n[2][60] = 1.27e-8; 92810152Satgutier@umich.edu I_off_n[2][70] = 1.47e-8; 92910152Satgutier@umich.edu I_off_n[2][80] = 1.66e-8; 93010152Satgutier@umich.edu I_off_n[2][90] = 1.84e-8; 93110152Satgutier@umich.edu I_off_n[2][100] = 2.03e-8; 93210152Satgutier@umich.edu 93310152Satgutier@umich.edu I_g_on_n[2][0] = 3.24e-8;//A/micron 93410152Satgutier@umich.edu I_g_on_n[2][10] = 4.01e-8; 93510152Satgutier@umich.edu I_g_on_n[2][20] = 4.90e-8; 93610152Satgutier@umich.edu I_g_on_n[2][30] = 5.92e-8; 93710152Satgutier@umich.edu I_g_on_n[2][40] = 7.08e-8; 93810152Satgutier@umich.edu I_g_on_n[2][50] = 8.38e-8; 93910152Satgutier@umich.edu I_g_on_n[2][60] = 9.82e-8; 94010152Satgutier@umich.edu I_g_on_n[2][70] = 1.14e-7; 94110152Satgutier@umich.edu I_g_on_n[2][80] = 1.29e-7; 94210152Satgutier@umich.edu I_g_on_n[2][90] = 1.43e-7; 94310152Satgutier@umich.edu I_g_on_n[2][100] = 1.54e-7; 94410152Satgutier@umich.edu 94510152Satgutier@umich.edu if (ram_cell_tech_type == lp_dram) 94610152Satgutier@umich.edu { 94710152Satgutier@umich.edu //LP-DRAM cell access transistor technology parameters 94810152Satgutier@umich.edu curr_vdd_dram_cell = 1.1; 94910152Satgutier@umich.edu Lphy[3] = 0.078; 95010152Satgutier@umich.edu Lelec[3] = 0.0504;// Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors. 95110152Satgutier@umich.edu curr_v_th_dram_access_transistor = 0.44559; 95210152Satgutier@umich.edu width_dram_access_transistor = 0.079; 95310152Satgutier@umich.edu curr_I_on_dram_cell = 36e-6;//A 95410152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 19.5e-12; 95510152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 95610152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 95710152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 95810152Satgutier@umich.edu curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0; 95910152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.46; 96010152Satgutier@umich.edu curr_c_dram_cell = 20e-15; 96110152Satgutier@umich.edu 96210152Satgutier@umich.edu //LP-DRAM wordline transistor parameters 96310152Satgutier@umich.edu curr_vpp = 1.5; 96410152Satgutier@umich.edu t_ox[3] = 2.1e-3; 96510152Satgutier@umich.edu v_th[3] = 0.44559; 96610152Satgutier@umich.edu c_ox[3] = 1.41e-14; 96710152Satgutier@umich.edu mobility_eff[3] = 426.30 * (1e-2 * 1e6 * 1e-2 * 1e6); 96810152Satgutier@umich.edu Vdsat[3] = 0.181; 96910152Satgutier@umich.edu c_g_ideal[3] = 1.10e-15; 97010152Satgutier@umich.edu c_fringe[3] = 0.08e-15; 97110152Satgutier@umich.edu c_junc[3] = 1e-15; 97210152Satgutier@umich.edu I_on_n[3] = 456e-6; 97310152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2; 97410152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.65; 97510152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 2.05; 97610152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 97710152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 97810152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 97910152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 98010152Satgutier@umich.edu I_off_n[3][0] = 2.54e-11; 98110152Satgutier@umich.edu I_off_n[3][10] = 3.94e-11; 98210152Satgutier@umich.edu I_off_n[3][20] = 5.95e-11; 98310152Satgutier@umich.edu I_off_n[3][30] = 8.79e-11; 98410152Satgutier@umich.edu I_off_n[3][40] = 1.27e-10; 98510152Satgutier@umich.edu I_off_n[3][50] = 1.79e-10; 98610152Satgutier@umich.edu I_off_n[3][60] = 2.47e-10; 98710152Satgutier@umich.edu I_off_n[3][70] = 3.31e-10; 98810152Satgutier@umich.edu I_off_n[3][80] = 4.26e-10; 98910152Satgutier@umich.edu I_off_n[3][90] = 5.27e-10; 99010152Satgutier@umich.edu I_off_n[3][100] = 6.46e-10; 99110152Satgutier@umich.edu } 99210152Satgutier@umich.edu else if (ram_cell_tech_type == comm_dram) 99310152Satgutier@umich.edu { 99410152Satgutier@umich.edu //COMM-DRAM cell access transistor technology parameters 99510152Satgutier@umich.edu curr_vdd_dram_cell = 1.1; 99610152Satgutier@umich.edu Lphy[3] = 0.045; 99710152Satgutier@umich.edu Lelec[3] = 0.0298; 99810152Satgutier@umich.edu curr_v_th_dram_access_transistor = 1; 99910152Satgutier@umich.edu width_dram_access_transistor = 0.045; 100010152Satgutier@umich.edu curr_I_on_dram_cell = 20e-6;//A 100110152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 100210152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 100310152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 100410152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 100510152Satgutier@umich.edu curr_area_cell_dram = 6*0.045*0.045; 100610152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.5; 100710152Satgutier@umich.edu curr_c_dram_cell = 30e-15; 100810152Satgutier@umich.edu 100910152Satgutier@umich.edu //COMM-DRAM wordline transistor parameters 101010152Satgutier@umich.edu curr_vpp = 2.7; 101110152Satgutier@umich.edu t_ox[3] = 4e-3; 101210152Satgutier@umich.edu v_th[3] = 1.0; 101310152Satgutier@umich.edu c_ox[3] = 7.98e-15; 101410152Satgutier@umich.edu mobility_eff[3] = 368.58 * (1e-2 * 1e6 * 1e-2 * 1e6); 101510152Satgutier@umich.edu Vdsat[3] = 0.147; 101610152Satgutier@umich.edu c_g_ideal[3] = 3.59e-16; 101710152Satgutier@umich.edu c_fringe[3] = 0.08e-15; 101810152Satgutier@umich.edu c_junc[3] = 1e-15; 101910152Satgutier@umich.edu I_on_n[3] = 999.4e-6; 102010152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2; 102110152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.69; 102210152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 1.95; 102310152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 102410152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 102510152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 102610152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 102710152Satgutier@umich.edu I_off_n[3][0] = 1.31e-14; 102810152Satgutier@umich.edu I_off_n[3][10] = 2.68e-14; 102910152Satgutier@umich.edu I_off_n[3][20] = 5.25e-14; 103010152Satgutier@umich.edu I_off_n[3][30] = 9.88e-14; 103110152Satgutier@umich.edu I_off_n[3][40] = 1.79e-13; 103210152Satgutier@umich.edu I_off_n[3][50] = 3.15e-13; 103310152Satgutier@umich.edu I_off_n[3][60] = 5.36e-13; 103410152Satgutier@umich.edu I_off_n[3][70] = 8.86e-13; 103510152Satgutier@umich.edu I_off_n[3][80] = 1.42e-12; 103610152Satgutier@umich.edu I_off_n[3][90] = 2.20e-12; 103710152Satgutier@umich.edu I_off_n[3][100] = 3.29e-12; 103810152Satgutier@umich.edu } 103910152Satgutier@umich.edu 104010152Satgutier@umich.edu 104110152Satgutier@umich.edu //SRAM cell properties 104210152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 104310152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 104410152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 104510152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 104610152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 104710152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 104810152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 104910152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 105010152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 105110152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 105210152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92; 105310152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 105410152Satgutier@umich.edu curr_logic_scaling_co_eff = 0.7*0.7; 105510152Satgutier@umich.edu curr_core_tx_density = 1.25; 105610152Satgutier@umich.edu curr_sckt_co_eff = 1.1387; 105710152Satgutier@umich.edu curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 105810152Satgutier@umich.edu curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 105910152Satgutier@umich.edu } 106010152Satgutier@umich.edu 106110152Satgutier@umich.edu if (tech == 32) 106210152Satgutier@umich.edu { 106310152Satgutier@umich.edu SENSE_AMP_D = .03e-9; // s 106410152Satgutier@umich.edu SENSE_AMP_P = 2.16e-15; // J 106510152Satgutier@umich.edu //For 2013, MPU/ASIC stagger-contacted M1 half-pitch is 32 nm (so this is 32 nm 106610152Satgutier@umich.edu //technology i.e. FEATURESIZE = 0.032). Using the SOI process numbers for 106710152Satgutier@umich.edu //HP and LSTP. 106810152Satgutier@umich.edu vdd[0] = 0.9; 106910152Satgutier@umich.edu Lphy[0] = 0.013; 107010152Satgutier@umich.edu Lelec[0] = 0.01013; 107110152Satgutier@umich.edu t_ox[0] = 0.5e-3; 107210152Satgutier@umich.edu v_th[0] = 0.21835; 107310152Satgutier@umich.edu c_ox[0] = 4.11e-14; 107410152Satgutier@umich.edu mobility_eff[0] = 361.84 * (1e-2 * 1e6 * 1e-2 * 1e6); 107510152Satgutier@umich.edu Vdsat[0] = 5.09E-2; 107610152Satgutier@umich.edu c_g_ideal[0] = 5.34e-16; 107710152Satgutier@umich.edu c_fringe[0] = 0.04e-15; 107810152Satgutier@umich.edu c_junc[0] = 1e-15; 107910152Satgutier@umich.edu I_on_n[0] = 2211.7e-6; 108010152Satgutier@umich.edu I_on_p[0] = I_on_n[0] / 2; 108110152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.49; 108210152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2.41; 108310152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.38; 108410152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 108510152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 108610152Satgutier@umich.edu long_channel_leakage_reduction[0] = 1/3.706; 108710152Satgutier@umich.edu //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%), 108810152Satgutier@umich.edu //whichever comes first 108910152Satgutier@umich.edu I_off_n[0][0] = 1.52e-7; 109010152Satgutier@umich.edu I_off_n[0][10] = 1.55e-7; 109110152Satgutier@umich.edu I_off_n[0][20] = 1.59e-7; 109210152Satgutier@umich.edu I_off_n[0][30] = 1.68e-7; 109310152Satgutier@umich.edu I_off_n[0][40] = 1.90e-7; 109410152Satgutier@umich.edu I_off_n[0][50] = 2.69e-7; 109510152Satgutier@umich.edu I_off_n[0][60] = 5.32e-7; 109610152Satgutier@umich.edu I_off_n[0][70] = 1.02e-6; 109710152Satgutier@umich.edu I_off_n[0][80] = 1.62e-6; 109810152Satgutier@umich.edu I_off_n[0][90] = 2.73e-6; 109910152Satgutier@umich.edu I_off_n[0][100] = 6.1e-6; 110010152Satgutier@umich.edu 110110152Satgutier@umich.edu I_g_on_n[0][0] = 6.55e-8;//A/micron 110210152Satgutier@umich.edu I_g_on_n[0][10] = 6.55e-8; 110310152Satgutier@umich.edu I_g_on_n[0][20] = 6.55e-8; 110410152Satgutier@umich.edu I_g_on_n[0][30] = 6.55e-8; 110510152Satgutier@umich.edu I_g_on_n[0][40] = 6.55e-8; 110610152Satgutier@umich.edu I_g_on_n[0][50] = 6.55e-8; 110710152Satgutier@umich.edu I_g_on_n[0][60] = 6.55e-8; 110810152Satgutier@umich.edu I_g_on_n[0][70] = 6.55e-8; 110910152Satgutier@umich.edu I_g_on_n[0][80] = 6.55e-8; 111010152Satgutier@umich.edu I_g_on_n[0][90] = 6.55e-8; 111110152Satgutier@umich.edu I_g_on_n[0][100] = 6.55e-8; 111210152Satgutier@umich.edu 111310152Satgutier@umich.edu// 32 DG 111410152Satgutier@umich.edu// I_g_on_n[0][0] = 2.71e-9;//A/micron 111510152Satgutier@umich.edu// I_g_on_n[0][10] = 2.71e-9; 111610152Satgutier@umich.edu// I_g_on_n[0][20] = 2.71e-9; 111710152Satgutier@umich.edu// I_g_on_n[0][30] = 2.71e-9; 111810152Satgutier@umich.edu// I_g_on_n[0][40] = 2.71e-9; 111910152Satgutier@umich.edu// I_g_on_n[0][50] = 2.71e-9; 112010152Satgutier@umich.edu// I_g_on_n[0][60] = 2.71e-9; 112110152Satgutier@umich.edu// I_g_on_n[0][70] = 2.71e-9; 112210152Satgutier@umich.edu// I_g_on_n[0][80] = 2.71e-9; 112310152Satgutier@umich.edu// I_g_on_n[0][90] = 2.71e-9; 112410152Satgutier@umich.edu// I_g_on_n[0][100] = 2.71e-9; 112510152Satgutier@umich.edu 112610152Satgutier@umich.edu //LSTP device type 112710152Satgutier@umich.edu vdd[1] = 1; 112810152Satgutier@umich.edu Lphy[1] = 0.020; 112910152Satgutier@umich.edu Lelec[1] = 0.0173; 113010152Satgutier@umich.edu t_ox[1] = 1.2e-3; 113110152Satgutier@umich.edu v_th[1] = 0.513; 113210152Satgutier@umich.edu c_ox[1] = 2.29e-14; 113310152Satgutier@umich.edu mobility_eff[1] = 347.46 * (1e-2 * 1e6 * 1e-2 * 1e6); 113410152Satgutier@umich.edu Vdsat[1] = 8.64e-2; 113510152Satgutier@umich.edu c_g_ideal[1] = 4.58e-16; 113610152Satgutier@umich.edu c_fringe[1] = 0.053e-15; 113710152Satgutier@umich.edu c_junc[1] = 1e-15; 113810152Satgutier@umich.edu I_on_n[1] = 683.6e-6; 113910152Satgutier@umich.edu I_on_p[1] = I_on_n[1] / 2; 114010152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.99; 114110152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[1] = 2.23; 114210152Satgutier@umich.edu gmp_to_gmn_multiplier[1] = 0.99; 114310152Satgutier@umich.edu Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1]; 114410152Satgutier@umich.edu Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1]; 114510152Satgutier@umich.edu long_channel_leakage_reduction[1] = 1/1.93; 114610152Satgutier@umich.edu I_off_n[1][0] = 2.06e-11; 114710152Satgutier@umich.edu I_off_n[1][10] = 3.30e-11; 114810152Satgutier@umich.edu I_off_n[1][20] = 5.15e-11; 114910152Satgutier@umich.edu I_off_n[1][30] = 7.83e-11; 115010152Satgutier@umich.edu I_off_n[1][40] = 1.16e-10; 115110152Satgutier@umich.edu I_off_n[1][50] = 1.69e-10; 115210152Satgutier@umich.edu I_off_n[1][60] = 2.40e-10; 115310152Satgutier@umich.edu I_off_n[1][70] = 3.34e-10; 115410152Satgutier@umich.edu I_off_n[1][80] = 4.54e-10; 115510152Satgutier@umich.edu I_off_n[1][90] = 5.96e-10; 115610152Satgutier@umich.edu I_off_n[1][100] = 7.44e-10; 115710152Satgutier@umich.edu 115810152Satgutier@umich.edu I_g_on_n[1][0] = 3.73e-11;//A/micron 115910152Satgutier@umich.edu I_g_on_n[1][10] = 3.73e-11; 116010152Satgutier@umich.edu I_g_on_n[1][20] = 3.73e-11; 116110152Satgutier@umich.edu I_g_on_n[1][30] = 3.73e-11; 116210152Satgutier@umich.edu I_g_on_n[1][40] = 3.73e-11; 116310152Satgutier@umich.edu I_g_on_n[1][50] = 3.73e-11; 116410152Satgutier@umich.edu I_g_on_n[1][60] = 3.73e-11; 116510152Satgutier@umich.edu I_g_on_n[1][70] = 3.73e-11; 116610152Satgutier@umich.edu I_g_on_n[1][80] = 3.73e-11; 116710152Satgutier@umich.edu I_g_on_n[1][90] = 3.73e-11; 116810152Satgutier@umich.edu I_g_on_n[1][100] = 3.73e-11; 116910152Satgutier@umich.edu 117010152Satgutier@umich.edu 117110152Satgutier@umich.edu //LOP device type 117210152Satgutier@umich.edu vdd[2] = 0.6; 117310152Satgutier@umich.edu Lphy[2] = 0.016; 117410152Satgutier@umich.edu Lelec[2] = 0.01232; 117510152Satgutier@umich.edu t_ox[2] = 0.9e-3; 117610152Satgutier@umich.edu v_th[2] = 0.24227; 117710152Satgutier@umich.edu c_ox[2] = 2.84e-14; 117810152Satgutier@umich.edu mobility_eff[2] = 513.52 * (1e-2 * 1e6 * 1e-2 * 1e6); 117910152Satgutier@umich.edu Vdsat[2] = 4.64e-2; 118010152Satgutier@umich.edu c_g_ideal[2] = 4.54e-16; 118110152Satgutier@umich.edu c_fringe[2] = 0.057e-15; 118210152Satgutier@umich.edu c_junc[2] = 1e-15; 118310152Satgutier@umich.edu I_on_n[2] = 827.8e-6; 118410152Satgutier@umich.edu I_on_p[2] = I_on_n[2] / 2; 118510152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.73; 118610152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[2] = 2.28; 118710152Satgutier@umich.edu gmp_to_gmn_multiplier[2] = 1.11; 118810152Satgutier@umich.edu Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2]; 118910152Satgutier@umich.edu Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2]; 119010152Satgutier@umich.edu long_channel_leakage_reduction[2] = 1/1.89; 119110152Satgutier@umich.edu I_off_n[2][0] = 5.94e-8; 119210152Satgutier@umich.edu I_off_n[2][10] = 7.23e-8; 119310152Satgutier@umich.edu I_off_n[2][20] = 8.7e-8; 119410152Satgutier@umich.edu I_off_n[2][30] = 1.04e-7; 119510152Satgutier@umich.edu I_off_n[2][40] = 1.22e-7; 119610152Satgutier@umich.edu I_off_n[2][50] = 1.43e-7; 119710152Satgutier@umich.edu I_off_n[2][60] = 1.65e-7; 119810152Satgutier@umich.edu I_off_n[2][70] = 1.90e-7; 119910152Satgutier@umich.edu I_off_n[2][80] = 2.15e-7; 120010152Satgutier@umich.edu I_off_n[2][90] = 2.39e-7; 120110152Satgutier@umich.edu I_off_n[2][100] = 2.63e-7; 120210152Satgutier@umich.edu 120310152Satgutier@umich.edu I_g_on_n[2][0] = 2.93e-9;//A/micron 120410152Satgutier@umich.edu I_g_on_n[2][10] = 2.93e-9; 120510152Satgutier@umich.edu I_g_on_n[2][20] = 2.93e-9; 120610152Satgutier@umich.edu I_g_on_n[2][30] = 2.93e-9; 120710152Satgutier@umich.edu I_g_on_n[2][40] = 2.93e-9; 120810152Satgutier@umich.edu I_g_on_n[2][50] = 2.93e-9; 120910152Satgutier@umich.edu I_g_on_n[2][60] = 2.93e-9; 121010152Satgutier@umich.edu I_g_on_n[2][70] = 2.93e-9; 121110152Satgutier@umich.edu I_g_on_n[2][80] = 2.93e-9; 121210152Satgutier@umich.edu I_g_on_n[2][90] = 2.93e-9; 121310152Satgutier@umich.edu I_g_on_n[2][100] = 2.93e-9; 121410152Satgutier@umich.edu 121510152Satgutier@umich.edu if (ram_cell_tech_type == lp_dram) 121610152Satgutier@umich.edu { 121710152Satgutier@umich.edu //LP-DRAM cell access transistor technology parameters 121810152Satgutier@umich.edu curr_vdd_dram_cell = 1.0; 121910152Satgutier@umich.edu Lphy[3] = 0.056; 122010152Satgutier@umich.edu Lelec[3] = 0.0419;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors. 122110152Satgutier@umich.edu curr_v_th_dram_access_transistor = 0.44129; 122210152Satgutier@umich.edu width_dram_access_transistor = 0.056; 122310152Satgutier@umich.edu curr_I_on_dram_cell = 36e-6; 122410152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 18.9e-12; 122510152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 122610152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 122710152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 122810152Satgutier@umich.edu curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0; 122910152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.46; 123010152Satgutier@umich.edu curr_c_dram_cell = 20e-15; 123110152Satgutier@umich.edu 123210152Satgutier@umich.edu //LP-DRAM wordline transistor parameters 123310152Satgutier@umich.edu curr_vpp = 1.5; 123410152Satgutier@umich.edu t_ox[3] = 2e-3; 123510152Satgutier@umich.edu v_th[3] = 0.44467; 123610152Satgutier@umich.edu c_ox[3] = 1.48e-14; 123710152Satgutier@umich.edu mobility_eff[3] = 408.12 * (1e-2 * 1e6 * 1e-2 * 1e6); 123810152Satgutier@umich.edu Vdsat[3] = 0.174; 123910152Satgutier@umich.edu c_g_ideal[3] = 7.45e-16; 124010152Satgutier@umich.edu c_fringe[3] = 0.053e-15; 124110152Satgutier@umich.edu c_junc[3] = 1e-15; 124210152Satgutier@umich.edu I_on_n[3] = 1055.4e-6; 124310152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2; 124410152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.65; 124510152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 2.05; 124610152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 124710152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 124810152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 124910152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 125010152Satgutier@umich.edu I_off_n[3][0] = 3.57e-11; 125110152Satgutier@umich.edu I_off_n[3][10] = 5.51e-11; 125210152Satgutier@umich.edu I_off_n[3][20] = 8.27e-11; 125310152Satgutier@umich.edu I_off_n[3][30] = 1.21e-10; 125410152Satgutier@umich.edu I_off_n[3][40] = 1.74e-10; 125510152Satgutier@umich.edu I_off_n[3][50] = 2.45e-10; 125610152Satgutier@umich.edu I_off_n[3][60] = 3.38e-10; 125710152Satgutier@umich.edu I_off_n[3][70] = 4.53e-10; 125810152Satgutier@umich.edu I_off_n[3][80] = 5.87e-10; 125910152Satgutier@umich.edu I_off_n[3][90] = 7.29e-10; 126010152Satgutier@umich.edu I_off_n[3][100] = 8.87e-10; 126110152Satgutier@umich.edu } 126210152Satgutier@umich.edu else if (ram_cell_tech_type == comm_dram) 126310152Satgutier@umich.edu { 126410152Satgutier@umich.edu //COMM-DRAM cell access transistor technology parameters 126510152Satgutier@umich.edu curr_vdd_dram_cell = 1.0; 126610152Satgutier@umich.edu Lphy[3] = 0.032; 126710152Satgutier@umich.edu Lelec[3] = 0.0205;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors. 126810152Satgutier@umich.edu curr_v_th_dram_access_transistor = 1; 126910152Satgutier@umich.edu width_dram_access_transistor = 0.032; 127010152Satgutier@umich.edu curr_I_on_dram_cell = 20e-6; 127110152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 1e-15; 127210152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 127310152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 127410152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 127510152Satgutier@umich.edu curr_area_cell_dram = 6*0.032*0.032; 127610152Satgutier@umich.edu curr_asp_ratio_cell_dram = 1.5; 127710152Satgutier@umich.edu curr_c_dram_cell = 30e-15; 127810152Satgutier@umich.edu 127910152Satgutier@umich.edu //COMM-DRAM wordline transistor parameters 128010152Satgutier@umich.edu curr_vpp = 2.6; 128110152Satgutier@umich.edu t_ox[3] = 4e-3; 128210152Satgutier@umich.edu v_th[3] = 1.0; 128310152Satgutier@umich.edu c_ox[3] = 7.99e-15; 128410152Satgutier@umich.edu mobility_eff[3] = 380.76 * (1e-2 * 1e6 * 1e-2 * 1e6); 128510152Satgutier@umich.edu Vdsat[3] = 0.129; 128610152Satgutier@umich.edu c_g_ideal[3] = 2.56e-16; 128710152Satgutier@umich.edu c_fringe[3] = 0.053e-15; 128810152Satgutier@umich.edu c_junc[3] = 1e-15; 128910152Satgutier@umich.edu I_on_n[3] = 1024.5e-6; 129010152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2; 129110152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.69; 129210152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 1.95; 129310152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 129410152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3]; 129510152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3]; 129610152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 129710152Satgutier@umich.edu I_off_n[3][0] = 3.63e-14; 129810152Satgutier@umich.edu I_off_n[3][10] = 7.18e-14; 129910152Satgutier@umich.edu I_off_n[3][20] = 1.36e-13; 130010152Satgutier@umich.edu I_off_n[3][30] = 2.49e-13; 130110152Satgutier@umich.edu I_off_n[3][40] = 4.41e-13; 130210152Satgutier@umich.edu I_off_n[3][50] = 7.55e-13; 130310152Satgutier@umich.edu I_off_n[3][60] = 1.26e-12; 130410152Satgutier@umich.edu I_off_n[3][70] = 2.03e-12; 130510152Satgutier@umich.edu I_off_n[3][80] = 3.19e-12; 130610152Satgutier@umich.edu I_off_n[3][90] = 4.87e-12; 130710152Satgutier@umich.edu I_off_n[3][100] = 7.16e-12; 130810152Satgutier@umich.edu } 130910152Satgutier@umich.edu 131010152Satgutier@umich.edu //SRAM cell properties 131110152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 131210152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 131310152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 131410152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 131510152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 131610152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 131710152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 131810152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 131910152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 132010152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 132110152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92; 132210152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 132310152Satgutier@umich.edu curr_logic_scaling_co_eff = 0.7*0.7*0.7; 132410152Satgutier@umich.edu curr_core_tx_density = 1.25/0.7; 132510152Satgutier@umich.edu curr_sckt_co_eff = 1.1111; 132610152Satgutier@umich.edu curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 132710152Satgutier@umich.edu curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 132810152Satgutier@umich.edu } 132910152Satgutier@umich.edu 133010152Satgutier@umich.edu if(tech == 22){ 133110152Satgutier@umich.edu SENSE_AMP_D = .03e-9; // s 133210152Satgutier@umich.edu SENSE_AMP_P = 2.16e-15; // J 133310152Satgutier@umich.edu //For 2016, MPU/ASIC stagger-contacted M1 half-pitch is 22 nm (so this is 22 nm 133410152Satgutier@umich.edu //technology i.e. FEATURESIZE = 0.022). Using the DG process numbers for HP. 133510152Satgutier@umich.edu //22 nm HP 133610152Satgutier@umich.edu vdd[0] = 0.8; 133710152Satgutier@umich.edu Lphy[0] = 0.009;//Lphy is the physical gate-length. 133810152Satgutier@umich.edu Lelec[0] = 0.00468;//Lelec is the electrical gate-length. 133910152Satgutier@umich.edu t_ox[0] = 0.55e-3;//micron 134010152Satgutier@umich.edu v_th[0] = 0.1395;//V 134110152Satgutier@umich.edu c_ox[0] = 3.63e-14;//F/micron2 134210152Satgutier@umich.edu mobility_eff[0] = 426.07 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 134310152Satgutier@umich.edu Vdsat[0] = 2.33e-2; //V/micron 134410152Satgutier@umich.edu c_g_ideal[0] = 3.27e-16;//F/micron 134510152Satgutier@umich.edu c_fringe[0] = 0.06e-15;//F/micron 134610152Satgutier@umich.edu c_junc[0] = 0;//F/micron2 134710152Satgutier@umich.edu I_on_n[0] = 2626.4e-6;//A/micron 134810152Satgutier@umich.edu I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used. 134910152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.45; 135010152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in 135110152Satgutier@umich.edu //"Dynamic" tab of Device workspace. 135210152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value. 135310152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 135410152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 135510152Satgutier@umich.edu long_channel_leakage_reduction[0] = 1/3.274; 135610152Satgutier@umich.edu 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. 135710152Satgutier@umich.edu I_off_n[0][10] = 1.55e-7/1.5*1.2; 135810152Satgutier@umich.edu I_off_n[0][20] = 1.59e-7/1.5*1.2; 135910152Satgutier@umich.edu I_off_n[0][30] = 1.68e-7/1.5*1.2; 136010152Satgutier@umich.edu I_off_n[0][40] = 1.90e-7/1.5*1.2; 136110152Satgutier@umich.edu I_off_n[0][50] = 2.69e-7/1.5*1.2; 136210152Satgutier@umich.edu I_off_n[0][60] = 5.32e-7/1.5*1.2; 136310152Satgutier@umich.edu I_off_n[0][70] = 1.02e-6/1.5*1.2; 136410152Satgutier@umich.edu I_off_n[0][80] = 1.62e-6/1.5*1.2; 136510152Satgutier@umich.edu I_off_n[0][90] = 2.73e-6/1.5*1.2; 136610152Satgutier@umich.edu I_off_n[0][100] = 6.1e-6/1.5*1.2; 136710152Satgutier@umich.edu //for 22nm DG HP 136810152Satgutier@umich.edu I_g_on_n[0][0] = 1.81e-9;//A/micron 136910152Satgutier@umich.edu I_g_on_n[0][10] = 1.81e-9; 137010152Satgutier@umich.edu I_g_on_n[0][20] = 1.81e-9; 137110152Satgutier@umich.edu I_g_on_n[0][30] = 1.81e-9; 137210152Satgutier@umich.edu I_g_on_n[0][40] = 1.81e-9; 137310152Satgutier@umich.edu I_g_on_n[0][50] = 1.81e-9; 137410152Satgutier@umich.edu I_g_on_n[0][60] = 1.81e-9; 137510152Satgutier@umich.edu I_g_on_n[0][70] = 1.81e-9; 137610152Satgutier@umich.edu I_g_on_n[0][80] = 1.81e-9; 137710152Satgutier@umich.edu I_g_on_n[0][90] = 1.81e-9; 137810152Satgutier@umich.edu I_g_on_n[0][100] = 1.81e-9; 137910152Satgutier@umich.edu 138010152Satgutier@umich.edu //22 nm LSTP DG 138110152Satgutier@umich.edu vdd[1] = 0.8; 138210152Satgutier@umich.edu Lphy[1] = 0.014; 138310152Satgutier@umich.edu Lelec[1] = 0.008;//Lelec is the electrical gate-length. 138410152Satgutier@umich.edu t_ox[1] = 1.1e-3;//micron 138510152Satgutier@umich.edu v_th[1] = 0.40126;//V 138610152Satgutier@umich.edu c_ox[1] = 2.30e-14;//F/micron2 138710152Satgutier@umich.edu mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 138810152Satgutier@umich.edu Vdsat[1] = 6.64e-2; //V/micron 138910152Satgutier@umich.edu c_g_ideal[1] = 3.22e-16;//F/micron 139010152Satgutier@umich.edu c_fringe[1] = 0.08e-15; 139110152Satgutier@umich.edu c_junc[1] = 0;//F/micron2 139210152Satgutier@umich.edu I_on_n[1] = 727.6e-6;//A/micron 139310152Satgutier@umich.edu I_on_p[1] = I_on_n[1] / 2; 139410152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.99; 139510152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[1] = 2; 139610152Satgutier@umich.edu gmp_to_gmn_multiplier[1] = 0.99; 139710152Satgutier@umich.edu Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron 139810152Satgutier@umich.edu Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron 139910152Satgutier@umich.edu long_channel_leakage_reduction[1] = 1/1.89; 140010152Satgutier@umich.edu I_off_n[1][0] = 2.43e-11; 140110152Satgutier@umich.edu I_off_n[1][10] = 4.85e-11; 140210152Satgutier@umich.edu I_off_n[1][20] = 9.68e-11; 140310152Satgutier@umich.edu I_off_n[1][30] = 1.94e-10; 140410152Satgutier@umich.edu I_off_n[1][40] = 3.87e-10; 140510152Satgutier@umich.edu I_off_n[1][50] = 7.73e-10; 140610152Satgutier@umich.edu I_off_n[1][60] = 3.55e-10; 140710152Satgutier@umich.edu I_off_n[1][70] = 3.09e-9; 140810152Satgutier@umich.edu I_off_n[1][80] = 6.19e-9; 140910152Satgutier@umich.edu I_off_n[1][90] = 1.24e-8; 141010152Satgutier@umich.edu I_off_n[1][100]= 2.48e-8; 141110152Satgutier@umich.edu 141210152Satgutier@umich.edu I_g_on_n[1][0] = 4.51e-10;//A/micron 141310152Satgutier@umich.edu I_g_on_n[1][10] = 4.51e-10; 141410152Satgutier@umich.edu I_g_on_n[1][20] = 4.51e-10; 141510152Satgutier@umich.edu I_g_on_n[1][30] = 4.51e-10; 141610152Satgutier@umich.edu I_g_on_n[1][40] = 4.51e-10; 141710152Satgutier@umich.edu I_g_on_n[1][50] = 4.51e-10; 141810152Satgutier@umich.edu I_g_on_n[1][60] = 4.51e-10; 141910152Satgutier@umich.edu I_g_on_n[1][70] = 4.51e-10; 142010152Satgutier@umich.edu I_g_on_n[1][80] = 4.51e-10; 142110152Satgutier@umich.edu I_g_on_n[1][90] = 4.51e-10; 142210152Satgutier@umich.edu I_g_on_n[1][100] = 4.51e-10; 142310152Satgutier@umich.edu 142410152Satgutier@umich.edu //22 nm LOP 142510152Satgutier@umich.edu vdd[2] = 0.6; 142610152Satgutier@umich.edu Lphy[2] = 0.011; 142710152Satgutier@umich.edu Lelec[2] = 0.00604;//Lelec is the electrical gate-length. 142810152Satgutier@umich.edu t_ox[2] = 0.8e-3;//micron 142910152Satgutier@umich.edu v_th[2] = 0.2315;//V 143010152Satgutier@umich.edu c_ox[2] = 2.87e-14;//F/micron2 143110152Satgutier@umich.edu mobility_eff[2] = 698.37 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 143210152Satgutier@umich.edu Vdsat[2] = 1.81e-2; //V/micron 143310152Satgutier@umich.edu c_g_ideal[2] = 3.16e-16;//F/micron 143410152Satgutier@umich.edu c_fringe[2] = 0.08e-15; 143510152Satgutier@umich.edu c_junc[2] = 0;//F/micron2 This is Cj0 not Cjunc in MASTAR results->Dynamic Tab 143610152Satgutier@umich.edu I_on_n[2] = 916.1e-6;//A/micron 143710152Satgutier@umich.edu I_on_p[2] = I_on_n[2] / 2; 143810152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.73; 143910152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[2] = 2; 144010152Satgutier@umich.edu gmp_to_gmn_multiplier[2] = 1.11; 144110152Satgutier@umich.edu Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];//ohm-micron 144210152Satgutier@umich.edu Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];//ohm-micron 144310152Satgutier@umich.edu long_channel_leakage_reduction[2] = 1/2.38; 144410152Satgutier@umich.edu 144510152Satgutier@umich.edu I_off_n[2][0] = 1.31e-8; 144610152Satgutier@umich.edu I_off_n[2][10] = 2.60e-8; 144710152Satgutier@umich.edu I_off_n[2][20] = 5.14e-8; 144810152Satgutier@umich.edu I_off_n[2][30] = 1.02e-7; 144910152Satgutier@umich.edu I_off_n[2][40] = 2.02e-7; 145010152Satgutier@umich.edu I_off_n[2][50] = 3.99e-7; 145110152Satgutier@umich.edu I_off_n[2][60] = 7.91e-7; 145210152Satgutier@umich.edu I_off_n[2][70] = 1.09e-6; 145310152Satgutier@umich.edu I_off_n[2][80] = 2.09e-6; 145410152Satgutier@umich.edu I_off_n[2][90] = 4.04e-6; 145510152Satgutier@umich.edu I_off_n[2][100]= 4.48e-6; 145610152Satgutier@umich.edu 145710152Satgutier@umich.edu I_g_on_n[2][0] = 2.74e-9;//A/micron 145810152Satgutier@umich.edu I_g_on_n[2][10] = 2.74e-9; 145910152Satgutier@umich.edu I_g_on_n[2][20] = 2.74e-9; 146010152Satgutier@umich.edu I_g_on_n[2][30] = 2.74e-9; 146110152Satgutier@umich.edu I_g_on_n[2][40] = 2.74e-9; 146210152Satgutier@umich.edu I_g_on_n[2][50] = 2.74e-9; 146310152Satgutier@umich.edu I_g_on_n[2][60] = 2.74e-9; 146410152Satgutier@umich.edu I_g_on_n[2][70] = 2.74e-9; 146510152Satgutier@umich.edu I_g_on_n[2][80] = 2.74e-9; 146610152Satgutier@umich.edu I_g_on_n[2][90] = 2.74e-9; 146710152Satgutier@umich.edu I_g_on_n[2][100] = 2.74e-9; 146810152Satgutier@umich.edu 146910152Satgutier@umich.edu 147010152Satgutier@umich.edu 147110152Satgutier@umich.edu if (ram_cell_tech_type == 3) 147210152Satgutier@umich.edu {} 147310152Satgutier@umich.edu else if (ram_cell_tech_type == 4) 147410152Satgutier@umich.edu { 147510152Satgutier@umich.edu //22 nm commodity DRAM cell access transistor technology parameters. 147610152Satgutier@umich.edu //parameters 147710152Satgutier@umich.edu curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In 147810152Satgutier@umich.edu //2005 ITRS, the value was about twice the value in 2007 ITRS 147910152Satgutier@umich.edu Lphy[3] = 0.022;//micron 148010152Satgutier@umich.edu Lelec[3] = 0.0181;//micron. 148110152Satgutier@umich.edu curr_v_th_dram_access_transistor = 1;//V 148210152Satgutier@umich.edu width_dram_access_transistor = 0.022;//micron 148310152Satgutier@umich.edu curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always 148410152Satgutier@umich.edu //kept constant. In reality this could perhaps be lower 148510152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A 148610152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 148710152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 148810152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 148910152Satgutier@umich.edu curr_area_cell_dram = 6*0.022*0.022;//micron2. 149010152Satgutier@umich.edu curr_asp_ratio_cell_dram = 0.667; 149110152Satgutier@umich.edu curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus 149210152Satgutier@umich.edu //kept constant. 149310152Satgutier@umich.edu 149410152Satgutier@umich.edu //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR. 149510152Satgutier@umich.edu curr_vpp = 2.3;//vpp. V 149610152Satgutier@umich.edu t_ox[3] = 3.5e-3;//micron 149710152Satgutier@umich.edu v_th[3] = 1.0;//V 149810152Satgutier@umich.edu c_ox[3] = 9.06e-15;//F/micron2 149910152Satgutier@umich.edu mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs 150010152Satgutier@umich.edu Vdsat[3] = 0.0972; //V/micron 150110152Satgutier@umich.edu c_g_ideal[3] = 1.99e-16;//F/micron 150210152Satgutier@umich.edu c_fringe[3] = 0.053e-15;//F/micron 150310152Satgutier@umich.edu c_junc[3] = 1e-15;//F/micron2 150410152Satgutier@umich.edu I_on_n[3] = 910.5e-6;//A/micron 150510152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2;//This value for I_on_p is not really used. 150610152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.69;//Using the value from 32nm. 150710152Satgutier@umich.edu // 150810152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 1.95;//Using the value from 32nm 150910152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 151010152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];//ohm-micron 151110152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];//ohm-micron 151210152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 151310152Satgutier@umich.edu I_off_n[3][0] = 1.1e-13; //A/micron 151410152Satgutier@umich.edu I_off_n[3][10] = 2.11e-13; 151510152Satgutier@umich.edu I_off_n[3][20] = 3.88e-13; 151610152Satgutier@umich.edu I_off_n[3][30] = 6.9e-13; 151710152Satgutier@umich.edu I_off_n[3][40] = 1.19e-12; 151810152Satgutier@umich.edu I_off_n[3][50] = 1.98e-12; 151910152Satgutier@umich.edu I_off_n[3][60] = 3.22e-12; 152010152Satgutier@umich.edu I_off_n[3][70] = 5.09e-12; 152110152Satgutier@umich.edu I_off_n[3][80] = 7.85e-12; 152210152Satgutier@umich.edu I_off_n[3][90] = 1.18e-11; 152310152Satgutier@umich.edu I_off_n[3][100] = 1.72e-11; 152410152Satgutier@umich.edu 152510152Satgutier@umich.edu } 152610152Satgutier@umich.edu else 152710152Satgutier@umich.edu { 152810152Satgutier@umich.edu //some error handler 152910152Satgutier@umich.edu } 153010152Satgutier@umich.edu 153110152Satgutier@umich.edu //SRAM cell properties 153210152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 153310152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 153410152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 153510152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 153610152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 153710152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 153810152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 153910152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 154010152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 154110152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 154210152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92; 154310152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 154410152Satgutier@umich.edu curr_logic_scaling_co_eff = 0.7*0.7*0.7*0.7; 154510152Satgutier@umich.edu curr_core_tx_density = 1.25/0.7/0.7; 154610152Satgutier@umich.edu curr_sckt_co_eff = 1.1296; 154710152Satgutier@umich.edu curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 154810152Satgutier@umich.edu curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 154910152Satgutier@umich.edu } 155010152Satgutier@umich.edu 155110152Satgutier@umich.edu if(tech == 16){ 155210152Satgutier@umich.edu //For 2019, MPU/ASIC stagger-contacted M1 half-pitch is 16 nm (so this is 16 nm 155310152Satgutier@umich.edu //technology i.e. FEATURESIZE = 0.016). Using the DG process numbers for HP. 155410152Satgutier@umich.edu //16 nm HP 155510152Satgutier@umich.edu vdd[0] = 0.7; 155610152Satgutier@umich.edu Lphy[0] = 0.006;//Lphy is the physical gate-length. 155710152Satgutier@umich.edu Lelec[0] = 0.00315;//Lelec is the electrical gate-length. 155810152Satgutier@umich.edu t_ox[0] = 0.5e-3;//micron 155910152Satgutier@umich.edu v_th[0] = 0.1489;//V 156010152Satgutier@umich.edu c_ox[0] = 3.83e-14;//F/micron2 Cox_elec in MASTAR 156110152Satgutier@umich.edu mobility_eff[0] = 476.15 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 156210152Satgutier@umich.edu Vdsat[0] = 1.42e-2; //V/micron calculated in spreadsheet 156310152Satgutier@umich.edu c_g_ideal[0] = 2.30e-16;//F/micron 156410152Satgutier@umich.edu c_fringe[0] = 0.06e-15;//F/micron MASTAR inputdynamic/3 156510152Satgutier@umich.edu c_junc[0] = 0;//F/micron2 MASTAR result dynamic 156610152Satgutier@umich.edu I_on_n[0] = 2768.4e-6;//A/micron 156710152Satgutier@umich.edu I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used. 156810152Satgutier@umich.edu 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. 156910152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in 157010152Satgutier@umich.edu //"Dynamic" tab of Device workspace. 157110152Satgutier@umich.edu gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value. 157210152Satgutier@umich.edu Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron 157310152Satgutier@umich.edu Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron 157410152Satgutier@umich.edu long_channel_leakage_reduction[0] = 1/2.655; 157510152Satgutier@umich.edu I_off_n[0][0] = 1.52e-7/1.5*1.2*1.07; 157610152Satgutier@umich.edu I_off_n[0][10] = 1.55e-7/1.5*1.2*1.07; 157710152Satgutier@umich.edu I_off_n[0][20] = 1.59e-7/1.5*1.2*1.07; 157810152Satgutier@umich.edu I_off_n[0][30] = 1.68e-7/1.5*1.2*1.07; 157910152Satgutier@umich.edu I_off_n[0][40] = 1.90e-7/1.5*1.2*1.07; 158010152Satgutier@umich.edu I_off_n[0][50] = 2.69e-7/1.5*1.2*1.07; 158110152Satgutier@umich.edu I_off_n[0][60] = 5.32e-7/1.5*1.2*1.07; 158210152Satgutier@umich.edu I_off_n[0][70] = 1.02e-6/1.5*1.2*1.07; 158310152Satgutier@umich.edu I_off_n[0][80] = 1.62e-6/1.5*1.2*1.07; 158410152Satgutier@umich.edu I_off_n[0][90] = 2.73e-6/1.5*1.2*1.07; 158510152Satgutier@umich.edu I_off_n[0][100] = 6.1e-6/1.5*1.2*1.07; 158610152Satgutier@umich.edu //for 16nm DG HP 158710152Satgutier@umich.edu I_g_on_n[0][0] = 1.07e-9;//A/micron 158810152Satgutier@umich.edu I_g_on_n[0][10] = 1.07e-9; 158910152Satgutier@umich.edu I_g_on_n[0][20] = 1.07e-9; 159010152Satgutier@umich.edu I_g_on_n[0][30] = 1.07e-9; 159110152Satgutier@umich.edu I_g_on_n[0][40] = 1.07e-9; 159210152Satgutier@umich.edu I_g_on_n[0][50] = 1.07e-9; 159310152Satgutier@umich.edu I_g_on_n[0][60] = 1.07e-9; 159410152Satgutier@umich.edu I_g_on_n[0][70] = 1.07e-9; 159510152Satgutier@umich.edu I_g_on_n[0][80] = 1.07e-9; 159610152Satgutier@umich.edu I_g_on_n[0][90] = 1.07e-9; 159710152Satgutier@umich.edu I_g_on_n[0][100] = 1.07e-9; 159810152Satgutier@umich.edu 159910152Satgutier@umich.edu// //16 nm LSTP DG 160010152Satgutier@umich.edu// vdd[1] = 0.8; 160110152Satgutier@umich.edu// Lphy[1] = 0.014; 160210152Satgutier@umich.edu// Lelec[1] = 0.008;//Lelec is the electrical gate-length. 160310152Satgutier@umich.edu// t_ox[1] = 1.1e-3;//micron 160410152Satgutier@umich.edu// v_th[1] = 0.40126;//V 160510152Satgutier@umich.edu// c_ox[1] = 2.30e-14;//F/micron2 160610152Satgutier@umich.edu// mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs 160710152Satgutier@umich.edu// Vdsat[1] = 6.64e-2; //V/micron 160810152Satgutier@umich.edu// c_g_ideal[1] = 3.22e-16;//F/micron 160910152Satgutier@umich.edu// c_fringe[1] = 0.008e-15; 161010152Satgutier@umich.edu// c_junc[1] = 0;//F/micron2 161110152Satgutier@umich.edu// I_on_n[1] = 727.6e-6;//A/micron 161210152Satgutier@umich.edu// I_on_p[1] = I_on_n[1] / 2; 161310152Satgutier@umich.edu// nmos_effective_resistance_multiplier = 1.99; 161410152Satgutier@umich.edu// n_to_p_eff_curr_drv_ratio[1] = 2; 161510152Satgutier@umich.edu// gmp_to_gmn_multiplier[1] = 0.99; 161610152Satgutier@umich.edu// Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron 161710152Satgutier@umich.edu// Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron 161810152Satgutier@umich.edu// I_off_n[1][0] = 2.43e-11; 161910152Satgutier@umich.edu// I_off_n[1][10] = 4.85e-11; 162010152Satgutier@umich.edu// I_off_n[1][20] = 9.68e-11; 162110152Satgutier@umich.edu// I_off_n[1][30] = 1.94e-10; 162210152Satgutier@umich.edu// I_off_n[1][40] = 3.87e-10; 162310152Satgutier@umich.edu// I_off_n[1][50] = 7.73e-10; 162410152Satgutier@umich.edu// I_off_n[1][60] = 3.55e-10; 162510152Satgutier@umich.edu// I_off_n[1][70] = 3.09e-9; 162610152Satgutier@umich.edu// I_off_n[1][80] = 6.19e-9; 162710152Satgutier@umich.edu// I_off_n[1][90] = 1.24e-8; 162810152Satgutier@umich.edu// I_off_n[1][100]= 2.48e-8; 162910152Satgutier@umich.edu// 163010152Satgutier@umich.edu// // for 22nm LSTP HP 163110152Satgutier@umich.edu// I_g_on_n[1][0] = 4.51e-10;//A/micron 163210152Satgutier@umich.edu// I_g_on_n[1][10] = 4.51e-10; 163310152Satgutier@umich.edu// I_g_on_n[1][20] = 4.51e-10; 163410152Satgutier@umich.edu// I_g_on_n[1][30] = 4.51e-10; 163510152Satgutier@umich.edu// I_g_on_n[1][40] = 4.51e-10; 163610152Satgutier@umich.edu// I_g_on_n[1][50] = 4.51e-10; 163710152Satgutier@umich.edu// I_g_on_n[1][60] = 4.51e-10; 163810152Satgutier@umich.edu// I_g_on_n[1][70] = 4.51e-10; 163910152Satgutier@umich.edu// I_g_on_n[1][80] = 4.51e-10; 164010152Satgutier@umich.edu// I_g_on_n[1][90] = 4.51e-10; 164110152Satgutier@umich.edu// I_g_on_n[1][100] = 4.51e-10; 164210152Satgutier@umich.edu 164310152Satgutier@umich.edu 164410152Satgutier@umich.edu if (ram_cell_tech_type == 3) 164510152Satgutier@umich.edu {} 164610152Satgutier@umich.edu else if (ram_cell_tech_type == 4) 164710152Satgutier@umich.edu { 164810152Satgutier@umich.edu //22 nm commodity DRAM cell access transistor technology parameters. 164910152Satgutier@umich.edu //parameters 165010152Satgutier@umich.edu curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In 165110152Satgutier@umich.edu //2005 ITRS, the value was about twice the value in 2007 ITRS 165210152Satgutier@umich.edu Lphy[3] = 0.022;//micron 165310152Satgutier@umich.edu Lelec[3] = 0.0181;//micron. 165410152Satgutier@umich.edu curr_v_th_dram_access_transistor = 1;//V 165510152Satgutier@umich.edu width_dram_access_transistor = 0.022;//micron 165610152Satgutier@umich.edu curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always 165710152Satgutier@umich.edu //kept constant. In reality this could perhaps be lower 165810152Satgutier@umich.edu curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A 165910152Satgutier@umich.edu curr_Wmemcella_dram = width_dram_access_transistor; 166010152Satgutier@umich.edu curr_Wmemcellpmos_dram = 0; 166110152Satgutier@umich.edu curr_Wmemcellnmos_dram = 0; 166210152Satgutier@umich.edu curr_area_cell_dram = 6*0.022*0.022;//micron2. 166310152Satgutier@umich.edu curr_asp_ratio_cell_dram = 0.667; 166410152Satgutier@umich.edu curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus 166510152Satgutier@umich.edu //kept constant. 166610152Satgutier@umich.edu 166710152Satgutier@umich.edu //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR. 166810152Satgutier@umich.edu curr_vpp = 2.3;//vpp. V 166910152Satgutier@umich.edu t_ox[3] = 3.5e-3;//micron 167010152Satgutier@umich.edu v_th[3] = 1.0;//V 167110152Satgutier@umich.edu c_ox[3] = 9.06e-15;//F/micron2 167210152Satgutier@umich.edu mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs 167310152Satgutier@umich.edu Vdsat[3] = 0.0972; //V/micron 167410152Satgutier@umich.edu c_g_ideal[3] = 1.99e-16;//F/micron 167510152Satgutier@umich.edu c_fringe[3] = 0.053e-15;//F/micron 167610152Satgutier@umich.edu c_junc[3] = 1e-15;//F/micron2 167710152Satgutier@umich.edu I_on_n[3] = 910.5e-6;//A/micron 167810152Satgutier@umich.edu I_on_p[3] = I_on_n[3] / 2;//This value for I_on_p is not really used. 167910152Satgutier@umich.edu nmos_effective_resistance_multiplier = 1.69;//Using the value from 32nm. 168010152Satgutier@umich.edu // 168110152Satgutier@umich.edu n_to_p_eff_curr_drv_ratio[3] = 1.95;//Using the value from 32nm 168210152Satgutier@umich.edu gmp_to_gmn_multiplier[3] = 0.90; 168310152Satgutier@umich.edu Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];//ohm-micron 168410152Satgutier@umich.edu Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];//ohm-micron 168510152Satgutier@umich.edu long_channel_leakage_reduction[3] = 1; 168610152Satgutier@umich.edu I_off_n[3][0] = 1.1e-13; //A/micron 168710152Satgutier@umich.edu I_off_n[3][10] = 2.11e-13; 168810152Satgutier@umich.edu I_off_n[3][20] = 3.88e-13; 168910152Satgutier@umich.edu I_off_n[3][30] = 6.9e-13; 169010152Satgutier@umich.edu I_off_n[3][40] = 1.19e-12; 169110152Satgutier@umich.edu I_off_n[3][50] = 1.98e-12; 169210152Satgutier@umich.edu I_off_n[3][60] = 3.22e-12; 169310152Satgutier@umich.edu I_off_n[3][70] = 5.09e-12; 169410152Satgutier@umich.edu I_off_n[3][80] = 7.85e-12; 169510152Satgutier@umich.edu I_off_n[3][90] = 1.18e-11; 169610152Satgutier@umich.edu I_off_n[3][100] = 1.72e-11; 169710152Satgutier@umich.edu 169810152Satgutier@umich.edu } 169910152Satgutier@umich.edu else 170010152Satgutier@umich.edu { 170110152Satgutier@umich.edu //some error handler 170210152Satgutier@umich.edu } 170310152Satgutier@umich.edu 170410152Satgutier@umich.edu //SRAM cell properties 170510152Satgutier@umich.edu curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um; 170610152Satgutier@umich.edu curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um; 170710152Satgutier@umich.edu curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um; 170810152Satgutier@umich.edu curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um; 170910152Satgutier@umich.edu curr_asp_ratio_cell_sram = 1.46; 171010152Satgutier@umich.edu //CAM cell properties //TODO: data need to be revisited 171110152Satgutier@umich.edu curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um; 171210152Satgutier@umich.edu curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um; 171310152Satgutier@umich.edu curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um; 171410152Satgutier@umich.edu curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um; 171510152Satgutier@umich.edu curr_asp_ratio_cell_cam = 2.92; 171610152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 171710152Satgutier@umich.edu curr_logic_scaling_co_eff = 0.7*0.7*0.7*0.7*0.7; 171810152Satgutier@umich.edu curr_core_tx_density = 1.25/0.7/0.7/0.7; 171910152Satgutier@umich.edu curr_sckt_co_eff = 1.1296; 172010152Satgutier@umich.edu curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2 172110152Satgutier@umich.edu curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb 172210152Satgutier@umich.edu } 172310152Satgutier@umich.edu 172410152Satgutier@umich.edu 172510152Satgutier@umich.edu g_tp.peri_global.Vdd += curr_alpha * vdd[peri_global_tech_type]; 172610152Satgutier@umich.edu g_tp.peri_global.t_ox += curr_alpha * t_ox[peri_global_tech_type]; 172710152Satgutier@umich.edu g_tp.peri_global.Vth += curr_alpha * v_th[peri_global_tech_type]; 172810152Satgutier@umich.edu g_tp.peri_global.C_ox += curr_alpha * c_ox[peri_global_tech_type]; 172910152Satgutier@umich.edu g_tp.peri_global.C_g_ideal += curr_alpha * c_g_ideal[peri_global_tech_type]; 173010152Satgutier@umich.edu g_tp.peri_global.C_fringe += curr_alpha * c_fringe[peri_global_tech_type]; 173110152Satgutier@umich.edu g_tp.peri_global.C_junc += curr_alpha * c_junc[peri_global_tech_type]; 173210152Satgutier@umich.edu g_tp.peri_global.C_junc_sidewall = 0.25e-15; // F/micron 173310152Satgutier@umich.edu g_tp.peri_global.l_phy += curr_alpha * Lphy[peri_global_tech_type]; 173410152Satgutier@umich.edu g_tp.peri_global.l_elec += curr_alpha * Lelec[peri_global_tech_type]; 173510152Satgutier@umich.edu g_tp.peri_global.I_on_n += curr_alpha * I_on_n[peri_global_tech_type]; 173610152Satgutier@umich.edu g_tp.peri_global.R_nch_on += curr_alpha * Rnchannelon[peri_global_tech_type]; 173710152Satgutier@umich.edu g_tp.peri_global.R_pch_on += curr_alpha * Rpchannelon[peri_global_tech_type]; 173810152Satgutier@umich.edu g_tp.peri_global.n_to_p_eff_curr_drv_ratio 173910152Satgutier@umich.edu += curr_alpha * n_to_p_eff_curr_drv_ratio[peri_global_tech_type]; 174010152Satgutier@umich.edu g_tp.peri_global.long_channel_leakage_reduction 174110152Satgutier@umich.edu += curr_alpha * long_channel_leakage_reduction[peri_global_tech_type]; 174210152Satgutier@umich.edu g_tp.peri_global.I_off_n += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300]; 174310152Satgutier@umich.edu g_tp.peri_global.I_off_p += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300]; 174410152Satgutier@umich.edu g_tp.peri_global.I_g_on_n += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300]; 174510152Satgutier@umich.edu g_tp.peri_global.I_g_on_p += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300]; 174610152Satgutier@umich.edu gmp_to_gmn_multiplier_periph_global += curr_alpha * gmp_to_gmn_multiplier[peri_global_tech_type]; 174710152Satgutier@umich.edu 174810152Satgutier@umich.edu g_tp.sram_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type]; 174910152Satgutier@umich.edu g_tp.sram_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type]; 175010152Satgutier@umich.edu g_tp.sram_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type]; 175110152Satgutier@umich.edu g_tp.sram_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type]; 175210152Satgutier@umich.edu g_tp.sram_cell.Vth += curr_alpha * v_th[ram_cell_tech_type]; 175310152Satgutier@umich.edu g_tp.sram_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type]; 175410152Satgutier@umich.edu g_tp.sram_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type]; 175510152Satgutier@umich.edu g_tp.sram_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type]; 175610152Satgutier@umich.edu g_tp.sram_cell.C_junc_sidewall = 0.25e-15; // F/micron 175710152Satgutier@umich.edu g_tp.sram_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type]; 175810152Satgutier@umich.edu g_tp.sram_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type]; 175910152Satgutier@umich.edu g_tp.sram_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type]; 176010152Satgutier@umich.edu g_tp.sram_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type]; 176110152Satgutier@umich.edu g_tp.sram_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type]; 176210152Satgutier@umich.edu g_tp.sram_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 176310152Satgutier@umich.edu g_tp.sram_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 176410152Satgutier@umich.edu g_tp.sram_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; 176510152Satgutier@umich.edu g_tp.sram_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; 176610152Satgutier@umich.edu 176710152Satgutier@umich.edu g_tp.dram_cell_Vdd += curr_alpha * curr_vdd_dram_cell; 176810152Satgutier@umich.edu g_tp.dram_acc.Vth += curr_alpha * curr_v_th_dram_access_transistor; 176910152Satgutier@umich.edu g_tp.dram_acc.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor]; 177010152Satgutier@umich.edu g_tp.dram_acc.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor]; 177110152Satgutier@umich.edu g_tp.dram_acc.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor]; 177210152Satgutier@umich.edu g_tp.dram_acc.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor]; 177310152Satgutier@umich.edu g_tp.dram_acc.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor]; 177410152Satgutier@umich.edu g_tp.dram_acc.C_junc_sidewall = 0.25e-15; // F/micron 177510152Satgutier@umich.edu g_tp.dram_cell_I_on += curr_alpha * curr_I_on_dram_cell; 177610152Satgutier@umich.edu g_tp.dram_cell_I_off_worst_case_len_temp += curr_alpha * curr_I_off_dram_cell_worst_case_length_temp; 177710152Satgutier@umich.edu g_tp.dram_acc.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor]; 177810152Satgutier@umich.edu g_tp.dram_cell_C += curr_alpha * curr_c_dram_cell; 177910152Satgutier@umich.edu g_tp.vpp += curr_alpha * curr_vpp; 178010152Satgutier@umich.edu g_tp.dram_wl.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor]; 178110152Satgutier@umich.edu g_tp.dram_wl.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor]; 178210152Satgutier@umich.edu g_tp.dram_wl.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor]; 178310152Satgutier@umich.edu g_tp.dram_wl.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor]; 178410152Satgutier@umich.edu g_tp.dram_wl.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor]; 178510152Satgutier@umich.edu g_tp.dram_wl.C_junc_sidewall = 0.25e-15; // F/micron 178610152Satgutier@umich.edu g_tp.dram_wl.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor]; 178710152Satgutier@umich.edu g_tp.dram_wl.R_nch_on += curr_alpha * Rnchannelon[dram_cell_tech_flavor]; 178810152Satgutier@umich.edu g_tp.dram_wl.R_pch_on += curr_alpha * Rpchannelon[dram_cell_tech_flavor]; 178910152Satgutier@umich.edu g_tp.dram_wl.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[dram_cell_tech_flavor]; 179010152Satgutier@umich.edu g_tp.dram_wl.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[dram_cell_tech_flavor]; 179110152Satgutier@umich.edu g_tp.dram_wl.I_off_n += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300]; 179210152Satgutier@umich.edu g_tp.dram_wl.I_off_p += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300]; 179310152Satgutier@umich.edu 179410152Satgutier@umich.edu g_tp.cam_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type]; 179510152Satgutier@umich.edu g_tp.cam_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type]; 179610152Satgutier@umich.edu g_tp.cam_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type]; 179710152Satgutier@umich.edu g_tp.cam_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type]; 179810152Satgutier@umich.edu g_tp.cam_cell.Vth += curr_alpha * v_th[ram_cell_tech_type]; 179910152Satgutier@umich.edu g_tp.cam_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type]; 180010152Satgutier@umich.edu g_tp.cam_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type]; 180110152Satgutier@umich.edu g_tp.cam_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type]; 180210152Satgutier@umich.edu g_tp.cam_cell.C_junc_sidewall = 0.25e-15; // F/micron 180310152Satgutier@umich.edu g_tp.cam_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type]; 180410152Satgutier@umich.edu g_tp.cam_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type]; 180510152Satgutier@umich.edu g_tp.cam_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type]; 180610152Satgutier@umich.edu g_tp.cam_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type]; 180710152Satgutier@umich.edu g_tp.cam_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type]; 180810152Satgutier@umich.edu g_tp.cam_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 180910152Satgutier@umich.edu g_tp.cam_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300]; 181010152Satgutier@umich.edu g_tp.cam_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; 181110152Satgutier@umich.edu g_tp.cam_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300]; 181210152Satgutier@umich.edu 181310152Satgutier@umich.edu g_tp.dram.cell_a_w += curr_alpha * curr_Wmemcella_dram; 181410152Satgutier@umich.edu g_tp.dram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_dram; 181510152Satgutier@umich.edu g_tp.dram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_dram; 181610152Satgutier@umich.edu area_cell_dram += curr_alpha * curr_area_cell_dram; 181710152Satgutier@umich.edu asp_ratio_cell_dram += curr_alpha * curr_asp_ratio_cell_dram; 181810152Satgutier@umich.edu 181910152Satgutier@umich.edu g_tp.sram.cell_a_w += curr_alpha * curr_Wmemcella_sram; 182010152Satgutier@umich.edu g_tp.sram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_sram; 182110152Satgutier@umich.edu g_tp.sram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_sram; 182210152Satgutier@umich.edu area_cell_sram += curr_alpha * curr_area_cell_sram; 182310152Satgutier@umich.edu asp_ratio_cell_sram += curr_alpha * curr_asp_ratio_cell_sram; 182410152Satgutier@umich.edu 182510152Satgutier@umich.edu g_tp.cam.cell_a_w += curr_alpha * curr_Wmemcella_cam;//sheng 182610152Satgutier@umich.edu g_tp.cam.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_cam; 182710152Satgutier@umich.edu g_tp.cam.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_cam; 182810152Satgutier@umich.edu area_cell_cam += curr_alpha * curr_area_cell_cam; 182910152Satgutier@umich.edu asp_ratio_cell_cam += curr_alpha * curr_asp_ratio_cell_cam; 183010152Satgutier@umich.edu 183110152Satgutier@umich.edu //Sense amplifier latch Gm calculation 183210152Satgutier@umich.edu mobility_eff_periph_global += curr_alpha * mobility_eff[peri_global_tech_type]; 183310152Satgutier@umich.edu Vdsat_periph_global += curr_alpha * Vdsat[peri_global_tech_type]; 183410152Satgutier@umich.edu 183510152Satgutier@umich.edu //Empirical undifferetiated core/FU coefficient 183610152Satgutier@umich.edu g_tp.scaling_factor.logic_scaling_co_eff += curr_alpha * curr_logic_scaling_co_eff; 183710152Satgutier@umich.edu g_tp.scaling_factor.core_tx_density += curr_alpha * curr_core_tx_density; 183810152Satgutier@umich.edu g_tp.chip_layout_overhead += curr_alpha * curr_chip_layout_overhead; 183910152Satgutier@umich.edu g_tp.macro_layout_overhead += curr_alpha * curr_macro_layout_overhead; 184010152Satgutier@umich.edu g_tp.sckt_co_eff += curr_alpha * curr_sckt_co_eff; 184110152Satgutier@umich.edu } 184210152Satgutier@umich.edu 184310152Satgutier@umich.edu 184410152Satgutier@umich.edu //Currently we are not modeling the resistance/capacitance of poly anywhere. 184510152Satgutier@umich.edu //Continuous function (or date have been processed) does not need linear interpolation 184610152Satgutier@umich.edu g_tp.w_comp_inv_p1 = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process 184710152Satgutier@umich.edu g_tp.w_comp_inv_n1 = 7.5 * g_ip->F_sz_um;//this was 6 micron for the 0.8 micron process 184810152Satgutier@umich.edu g_tp.w_comp_inv_p2 = 25 * g_ip->F_sz_um;//this was 20 micron for the 0.8 micron process 184910152Satgutier@umich.edu g_tp.w_comp_inv_n2 = 15 * g_ip->F_sz_um;//this was 12 micron for the 0.8 micron process 185010152Satgutier@umich.edu g_tp.w_comp_inv_p3 = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process 185110152Satgutier@umich.edu g_tp.w_comp_inv_n3 = 30 * g_ip->F_sz_um;//this was 24 micron for the 0.8 micron process 185210152Satgutier@umich.edu g_tp.w_eval_inv_p = 100 * g_ip->F_sz_um;//this was 80 micron for the 0.8 micron process 185310152Satgutier@umich.edu g_tp.w_eval_inv_n = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process 185410152Satgutier@umich.edu g_tp.w_comp_n = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process 185510152Satgutier@umich.edu g_tp.w_comp_p = 37.5 * g_ip->F_sz_um;//this was 30 micron for the 0.8 micron process 185610152Satgutier@umich.edu 185710152Satgutier@umich.edu g_tp.MIN_GAP_BET_P_AND_N_DIFFS = 5 * g_ip->F_sz_um; 185810152Satgutier@umich.edu g_tp.MIN_GAP_BET_SAME_TYPE_DIFFS = 1.5 * g_ip->F_sz_um; 185910152Satgutier@umich.edu g_tp.HPOWERRAIL = 2 * g_ip->F_sz_um; 186010152Satgutier@umich.edu g_tp.cell_h_def = 50 * g_ip->F_sz_um; 186110152Satgutier@umich.edu g_tp.w_poly_contact = g_ip->F_sz_um; 186210152Satgutier@umich.edu g_tp.spacing_poly_to_contact = g_ip->F_sz_um; 186310152Satgutier@umich.edu g_tp.spacing_poly_to_poly = 1.5 * g_ip->F_sz_um; 186410152Satgutier@umich.edu g_tp.ram_wl_stitching_overhead_ = 7.5 * g_ip->F_sz_um; 186510152Satgutier@umich.edu 186610152Satgutier@umich.edu g_tp.min_w_nmos_ = 3 * g_ip->F_sz_um / 2; 186710152Satgutier@umich.edu g_tp.max_w_nmos_ = 100 * g_ip->F_sz_um; 186810152Satgutier@umich.edu g_tp.w_iso = 12.5*g_ip->F_sz_um;//was 10 micron for the 0.8 micron process 186910152Satgutier@umich.edu 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 187010152Satgutier@umich.edu 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 187110152Satgutier@umich.edu 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 187210152Satgutier@umich.edu g_tp.w_nmos_b_mux = 6 * g_tp.min_w_nmos_; 187310152Satgutier@umich.edu g_tp.w_nmos_sa_mux = 6 * g_tp.min_w_nmos_; 187410152Satgutier@umich.edu 187510152Satgutier@umich.edu if (ram_cell_tech_type == comm_dram) 187610152Satgutier@umich.edu { 187710152Satgutier@umich.edu g_tp.max_w_nmos_dec = 8 * g_ip->F_sz_um; 187810152Satgutier@umich.edu g_tp.h_dec = 8; // in the unit of memory cell height 187910152Satgutier@umich.edu } 188010152Satgutier@umich.edu else 188110152Satgutier@umich.edu { 188210152Satgutier@umich.edu g_tp.max_w_nmos_dec = g_tp.max_w_nmos_; 188310152Satgutier@umich.edu g_tp.h_dec = 4; // in the unit of memory cell height 188410152Satgutier@umich.edu } 188510152Satgutier@umich.edu 188610152Satgutier@umich.edu g_tp.peri_global.C_overlap = 0.2 * g_tp.peri_global.C_g_ideal; 188710152Satgutier@umich.edu g_tp.sram_cell.C_overlap = 0.2 * g_tp.sram_cell.C_g_ideal; 188810152Satgutier@umich.edu g_tp.cam_cell.C_overlap = 0.2 * g_tp.cam_cell.C_g_ideal; 188910152Satgutier@umich.edu 189010152Satgutier@umich.edu g_tp.dram_acc.C_overlap = 0.2 * g_tp.dram_acc.C_g_ideal; 189110152Satgutier@umich.edu g_tp.dram_acc.R_nch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_n; 189210152Satgutier@umich.edu //g_tp.dram_acc.R_pch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_p; 189310152Satgutier@umich.edu 189410152Satgutier@umich.edu g_tp.dram_wl.C_overlap = 0.2 * g_tp.dram_wl.C_g_ideal; 189510152Satgutier@umich.edu 189610152Satgutier@umich.edu 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; 189710152Satgutier@umich.edu double gmp_sense_amp_latch = gmp_to_gmn_multiplier_periph_global * gmn_sense_amp_latch; 189810152Satgutier@umich.edu g_tp.gm_sense_amp_latch = gmn_sense_amp_latch + gmp_sense_amp_latch; 189910152Satgutier@umich.edu 190010152Satgutier@umich.edu g_tp.dram.b_w = sqrt(area_cell_dram / (asp_ratio_cell_dram)); 190110152Satgutier@umich.edu g_tp.dram.b_h = asp_ratio_cell_dram * g_tp.dram.b_w; 190210152Satgutier@umich.edu g_tp.sram.b_w = sqrt(area_cell_sram / (asp_ratio_cell_sram)); 190310152Satgutier@umich.edu g_tp.sram.b_h = asp_ratio_cell_sram * g_tp.sram.b_w; 190410152Satgutier@umich.edu g_tp.cam.b_w = sqrt(area_cell_cam / (asp_ratio_cell_cam));//Sheng 190510152Satgutier@umich.edu g_tp.cam.b_h = asp_ratio_cell_cam * g_tp.cam.b_w; 190610152Satgutier@umich.edu 190710152Satgutier@umich.edu g_tp.dram.Vbitpre = g_tp.dram_cell_Vdd; 190810152Satgutier@umich.edu g_tp.sram.Vbitpre = vdd[ram_cell_tech_type]; 190910152Satgutier@umich.edu g_tp.cam.Vbitpre = vdd[ram_cell_tech_type];//Sheng 191010152Satgutier@umich.edu pmos_to_nmos_sizing_r = pmos_to_nmos_sz_ratio(); 191110152Satgutier@umich.edu g_tp.w_pmos_bl_precharge = 6 * pmos_to_nmos_sizing_r * g_tp.min_w_nmos_; 191210152Satgutier@umich.edu g_tp.w_pmos_bl_eq = pmos_to_nmos_sizing_r * g_tp.min_w_nmos_; 191310152Satgutier@umich.edu 191410152Satgutier@umich.edu 191510152Satgutier@umich.edu double wire_pitch [NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 191610152Satgutier@umich.edu wire_r_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 191710152Satgutier@umich.edu wire_c_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 191810152Satgutier@umich.edu horiz_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 191910152Satgutier@umich.edu vert_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 192010152Satgutier@umich.edu aspect_ratio[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 192110152Satgutier@umich.edu miller_value[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES], 192210152Satgutier@umich.edu ild_thickness[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES]; 192310152Satgutier@umich.edu 192410152Satgutier@umich.edu for (iter=0; iter<=1; ++iter) 192510152Satgutier@umich.edu { 192610152Satgutier@umich.edu // linear interpolation 192710152Satgutier@umich.edu if (iter == 0) 192810152Satgutier@umich.edu { 192910152Satgutier@umich.edu tech = tech_lo; 193010152Satgutier@umich.edu if (tech_lo == tech_hi) 193110152Satgutier@umich.edu { 193210152Satgutier@umich.edu curr_alpha = 1; 193310152Satgutier@umich.edu } 193410152Satgutier@umich.edu else 193510152Satgutier@umich.edu { 193610152Satgutier@umich.edu curr_alpha = (technology - tech_hi)/(tech_lo - tech_hi); 193710152Satgutier@umich.edu } 193810152Satgutier@umich.edu } 193910152Satgutier@umich.edu else 194010152Satgutier@umich.edu { 194110152Satgutier@umich.edu tech = tech_hi; 194210152Satgutier@umich.edu if (tech_lo == tech_hi) 194310152Satgutier@umich.edu { 194410152Satgutier@umich.edu break; 194510152Satgutier@umich.edu } 194610152Satgutier@umich.edu else 194710152Satgutier@umich.edu { 194810152Satgutier@umich.edu curr_alpha = (tech_lo - technology)/(tech_lo - tech_hi); 194910152Satgutier@umich.edu } 195010152Satgutier@umich.edu } 195110152Satgutier@umich.edu 195210152Satgutier@umich.edu if (tech == 180) 195310152Satgutier@umich.edu { 195410152Satgutier@umich.edu //Aggressive projections 195510152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron 195610152Satgutier@umich.edu aspect_ratio[0][0] = 2.0; 195710152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; //micron 195810152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width;//micron 195910152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width;//micron 196010152Satgutier@umich.edu barrier_thickness = 0.017;//micron 196110152Satgutier@umich.edu dishing_thickness = 0;//micron 196210152Satgutier@umich.edu alpha_scatter = 1; 196310152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width, 196410152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron 196510152Satgutier@umich.edu ild_thickness[0][0] = 0.75;//micron 196610152Satgutier@umich.edu miller_value[0][0] = 1.5; 196710152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 2.709; 196810152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 196910152Satgutier@umich.edu fringe_cap = 0.115e-15; //F/micron 197010152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 197110152Satgutier@umich.edu ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], 197210152Satgutier@umich.edu vert_dielectric_constant[0][0], 197310152Satgutier@umich.edu fringe_cap);//F/micron. 197410152Satgutier@umich.edu 197510152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um; 197610152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 197710152Satgutier@umich.edu aspect_ratio[0][1] = 2.4; 197810152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 197910152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 198010152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width, 198110152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 198210152Satgutier@umich.edu ild_thickness[0][1] = 0.75;//micron 198310152Satgutier@umich.edu miller_value[0][1] = 1.5; 198410152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 2.709; 198510152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 198610152Satgutier@umich.edu fringe_cap = 0.115e-15; //F/micron 198710152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 198810152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], 198910152Satgutier@umich.edu vert_dielectric_constant[0][1], 199010152Satgutier@umich.edu fringe_cap); 199110152Satgutier@umich.edu 199210152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um; 199310152Satgutier@umich.edu aspect_ratio[0][2] = 2.2; 199410152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 199510152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 199610152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 199710152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width, 199810152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 199910152Satgutier@umich.edu ild_thickness[0][2] = 1.5; 200010152Satgutier@umich.edu miller_value[0][2] = 1.5; 200110152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 2.709; 200210152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 200310152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 200410152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 200510152Satgutier@umich.edu fringe_cap); 200610152Satgutier@umich.edu 200710152Satgutier@umich.edu //Conservative projections 200810152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 200910152Satgutier@umich.edu aspect_ratio[1][0]= 2.0; 201010152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 201110152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 201210152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 201310152Satgutier@umich.edu barrier_thickness = 0.017; 201410152Satgutier@umich.edu dishing_thickness = 0; 201510152Satgutier@umich.edu alpha_scatter = 1; 201610152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 201710152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 201810152Satgutier@umich.edu ild_thickness[1][0] = 0.75; 201910152Satgutier@umich.edu miller_value[1][0] = 1.5; 202010152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 3.038; 202110152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 202210152Satgutier@umich.edu fringe_cap = 0.115e-15; 202310152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 202410152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], 202510152Satgutier@umich.edu vert_dielectric_constant[1][0], 202610152Satgutier@umich.edu fringe_cap); 202710152Satgutier@umich.edu 202810152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 202910152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 203010152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 203110152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 203210152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 203310152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 203410152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 203510152Satgutier@umich.edu ild_thickness[1][1] = 0.75; 203610152Satgutier@umich.edu miller_value[1][1] = 1.5; 203710152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 3.038; 203810152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 203910152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 204010152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], 204110152Satgutier@umich.edu vert_dielectric_constant[1][1], 204210152Satgutier@umich.edu fringe_cap); 204310152Satgutier@umich.edu 204410152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 204510152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 204610152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 204710152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 204810152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 204910152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 205010152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 205110152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 205210152Satgutier@umich.edu ild_thickness[1][2] = 1.98; 205310152Satgutier@umich.edu miller_value[1][2] = 1.5; 205410152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 3.038; 205510152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 205610152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 205710152Satgutier@umich.edu ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 205810152Satgutier@umich.edu fringe_cap); 205910152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 206010152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.18; 206110152Satgutier@umich.edu wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.18); 206210152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.18; 206310152Satgutier@umich.edu } 206410152Satgutier@umich.edu else if (tech == 90) 206510152Satgutier@umich.edu { 206610152Satgutier@umich.edu //Aggressive projections 206710152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron 206810152Satgutier@umich.edu aspect_ratio[0][0] = 2.4; 206910152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; //micron 207010152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width;//micron 207110152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width;//micron 207210152Satgutier@umich.edu barrier_thickness = 0.01;//micron 207310152Satgutier@umich.edu dishing_thickness = 0;//micron 207410152Satgutier@umich.edu alpha_scatter = 1; 207510152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width, 207610152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron 207710152Satgutier@umich.edu ild_thickness[0][0] = 0.48;//micron 207810152Satgutier@umich.edu miller_value[0][0] = 1.5; 207910152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 2.709; 208010152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 208110152Satgutier@umich.edu fringe_cap = 0.115e-15; //F/micron 208210152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 208310152Satgutier@umich.edu ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], 208410152Satgutier@umich.edu vert_dielectric_constant[0][0], 208510152Satgutier@umich.edu fringe_cap);//F/micron. 208610152Satgutier@umich.edu 208710152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um; 208810152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 208910152Satgutier@umich.edu aspect_ratio[0][1] = 2.4; 209010152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 209110152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 209210152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width, 209310152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 209410152Satgutier@umich.edu ild_thickness[0][1] = 0.48;//micron 209510152Satgutier@umich.edu miller_value[0][1] = 1.5; 209610152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 2.709; 209710152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 209810152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 209910152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], 210010152Satgutier@umich.edu vert_dielectric_constant[0][1], 210110152Satgutier@umich.edu fringe_cap); 210210152Satgutier@umich.edu 210310152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um; 210410152Satgutier@umich.edu aspect_ratio[0][2] = 2.7; 210510152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 210610152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 210710152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 210810152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width, 210910152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 211010152Satgutier@umich.edu ild_thickness[0][2] = 0.96; 211110152Satgutier@umich.edu miller_value[0][2] = 1.5; 211210152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 2.709; 211310152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 211410152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 211510152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 211610152Satgutier@umich.edu fringe_cap); 211710152Satgutier@umich.edu 211810152Satgutier@umich.edu //Conservative projections 211910152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 212010152Satgutier@umich.edu aspect_ratio[1][0] = 2.0; 212110152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 212210152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 212310152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 212410152Satgutier@umich.edu barrier_thickness = 0.008; 212510152Satgutier@umich.edu dishing_thickness = 0; 212610152Satgutier@umich.edu alpha_scatter = 1; 212710152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 212810152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 212910152Satgutier@umich.edu ild_thickness[1][0] = 0.48; 213010152Satgutier@umich.edu miller_value[1][0] = 1.5; 213110152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 3.038; 213210152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 213310152Satgutier@umich.edu fringe_cap = 0.115e-15; 213410152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 213510152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], 213610152Satgutier@umich.edu vert_dielectric_constant[1][0], 213710152Satgutier@umich.edu fringe_cap); 213810152Satgutier@umich.edu 213910152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 214010152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 214110152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 214210152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 214310152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 214410152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 214510152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 214610152Satgutier@umich.edu ild_thickness[1][1] = 0.48; 214710152Satgutier@umich.edu miller_value[1][1] = 1.5; 214810152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 3.038; 214910152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 215010152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 215110152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], 215210152Satgutier@umich.edu vert_dielectric_constant[1][1], 215310152Satgutier@umich.edu fringe_cap); 215410152Satgutier@umich.edu 215510152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 215610152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 215710152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 215810152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 215910152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 216010152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 216110152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 216210152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 216310152Satgutier@umich.edu ild_thickness[1][2] = 1.1; 216410152Satgutier@umich.edu miller_value[1][2] = 1.5; 216510152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 3.038; 216610152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 216710152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 216810152Satgutier@umich.edu ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 216910152Satgutier@umich.edu fringe_cap); 217010152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 217110152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.09; 217210152Satgutier@umich.edu wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.09); 217310152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.09; 217410152Satgutier@umich.edu } 217510152Satgutier@umich.edu else if (tech == 65) 217610152Satgutier@umich.edu { 217710152Satgutier@umich.edu //Aggressive projections 217810152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um; 217910152Satgutier@umich.edu aspect_ratio[0][0] = 2.7; 218010152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; 218110152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width; 218210152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width; 218310152Satgutier@umich.edu barrier_thickness = 0; 218410152Satgutier@umich.edu dishing_thickness = 0; 218510152Satgutier@umich.edu alpha_scatter = 1; 218610152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 218710152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 218810152Satgutier@umich.edu ild_thickness[0][0] = 0.405; 218910152Satgutier@umich.edu miller_value[0][0] = 1.5; 219010152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 2.303; 219110152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 219210152Satgutier@umich.edu fringe_cap = 0.115e-15; 219310152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 219410152Satgutier@umich.edu ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] , 219510152Satgutier@umich.edu fringe_cap); 219610152Satgutier@umich.edu 219710152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um; 219810152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 219910152Satgutier@umich.edu aspect_ratio[0][1] = 2.7; 220010152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 220110152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 220210152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 220310152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 220410152Satgutier@umich.edu ild_thickness[0][1] = 0.405; 220510152Satgutier@umich.edu miller_value[0][1] = 1.5; 220610152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 2.303; 220710152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 220810152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 220910152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], 221010152Satgutier@umich.edu vert_dielectric_constant[0][1], 221110152Satgutier@umich.edu fringe_cap); 221210152Satgutier@umich.edu 221310152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um; 221410152Satgutier@umich.edu aspect_ratio[0][2] = 2.8; 221510152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 221610152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 221710152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 221810152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 221910152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 222010152Satgutier@umich.edu ild_thickness[0][2] = 0.81; 222110152Satgutier@umich.edu miller_value[0][2] = 1.5; 222210152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 2.303; 222310152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 222410152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 222510152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 222610152Satgutier@umich.edu fringe_cap); 222710152Satgutier@umich.edu 222810152Satgutier@umich.edu //Conservative projections 222910152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 223010152Satgutier@umich.edu aspect_ratio[1][0] = 2.0; 223110152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 223210152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 223310152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 223410152Satgutier@umich.edu barrier_thickness = 0.006; 223510152Satgutier@umich.edu dishing_thickness = 0; 223610152Satgutier@umich.edu alpha_scatter = 1; 223710152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 223810152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 223910152Satgutier@umich.edu ild_thickness[1][0] = 0.405; 224010152Satgutier@umich.edu miller_value[1][0] = 1.5; 224110152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 2.734; 224210152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 224310152Satgutier@umich.edu fringe_cap = 0.115e-15; 224410152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 224510152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 224610152Satgutier@umich.edu fringe_cap); 224710152Satgutier@umich.edu 224810152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 224910152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 225010152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 225110152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 225210152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 225310152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 225410152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 225510152Satgutier@umich.edu ild_thickness[1][1] = 0.405; 225610152Satgutier@umich.edu miller_value[1][1] = 1.5; 225710152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 2.734; 225810152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 225910152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 226010152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 226110152Satgutier@umich.edu fringe_cap); 226210152Satgutier@umich.edu 226310152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 226410152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 226510152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 226610152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 226710152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 226810152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 226910152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 227010152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 227110152Satgutier@umich.edu ild_thickness[1][2] = 0.77; 227210152Satgutier@umich.edu miller_value[1][2] = 1.5; 227310152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 2.734; 227410152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 227510152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 227610152Satgutier@umich.edu ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 227710152Satgutier@umich.edu fringe_cap); 227810152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 227910152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.065; 228010152Satgutier@umich.edu wire_c_per_micron[1][3] = 52.5e-15 / (256 * 2 * 0.065); 228110152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.065; 228210152Satgutier@umich.edu } 228310152Satgutier@umich.edu else if (tech == 45) 228410152Satgutier@umich.edu { 228510152Satgutier@umich.edu //Aggressive projections. 228610152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um; 228710152Satgutier@umich.edu aspect_ratio[0][0] = 3.0; 228810152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; 228910152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width; 229010152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width; 229110152Satgutier@umich.edu barrier_thickness = 0; 229210152Satgutier@umich.edu dishing_thickness = 0; 229310152Satgutier@umich.edu alpha_scatter = 1; 229410152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 229510152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 229610152Satgutier@umich.edu ild_thickness[0][0] = 0.315; 229710152Satgutier@umich.edu miller_value[0][0] = 1.5; 229810152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 1.958; 229910152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 230010152Satgutier@umich.edu fringe_cap = 0.115e-15; 230110152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 230210152Satgutier@umich.edu ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] , 230310152Satgutier@umich.edu fringe_cap); 230410152Satgutier@umich.edu 230510152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um; 230610152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 230710152Satgutier@umich.edu aspect_ratio[0][1] = 3.0; 230810152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 230910152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 231010152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 231110152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 231210152Satgutier@umich.edu ild_thickness[0][1] = 0.315; 231310152Satgutier@umich.edu miller_value[0][1] = 1.5; 231410152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 1.958; 231510152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 231610152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 231710152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 231810152Satgutier@umich.edu fringe_cap); 231910152Satgutier@umich.edu 232010152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um; 232110152Satgutier@umich.edu aspect_ratio[0][2] = 3.0; 232210152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 232310152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 232410152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 232510152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 232610152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 232710152Satgutier@umich.edu ild_thickness[0][2] = 0.63; 232810152Satgutier@umich.edu miller_value[0][2] = 1.5; 232910152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 1.958; 233010152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 233110152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 233210152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 233310152Satgutier@umich.edu fringe_cap); 233410152Satgutier@umich.edu 233510152Satgutier@umich.edu //Conservative projections 233610152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 233710152Satgutier@umich.edu aspect_ratio[1][0] = 2.0; 233810152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 233910152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 234010152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 234110152Satgutier@umich.edu barrier_thickness = 0.004; 234210152Satgutier@umich.edu dishing_thickness = 0; 234310152Satgutier@umich.edu alpha_scatter = 1; 234410152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 234510152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 234610152Satgutier@umich.edu ild_thickness[1][0] = 0.315; 234710152Satgutier@umich.edu miller_value[1][0] = 1.5; 234810152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 2.46; 234910152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 235010152Satgutier@umich.edu fringe_cap = 0.115e-15; 235110152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 235210152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 235310152Satgutier@umich.edu fringe_cap); 235410152Satgutier@umich.edu 235510152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 235610152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 235710152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 235810152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 235910152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 236010152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 236110152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 236210152Satgutier@umich.edu ild_thickness[1][1] = 0.315; 236310152Satgutier@umich.edu miller_value[1][1] = 1.5; 236410152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 2.46; 236510152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 236610152Satgutier@umich.edu fringe_cap = 0.115e-15; 236710152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 236810152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 236910152Satgutier@umich.edu fringe_cap); 237010152Satgutier@umich.edu 237110152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 237210152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 237310152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 237410152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 237510152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 237610152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 237710152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 237810152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 237910152Satgutier@umich.edu ild_thickness[1][2] = 0.55; 238010152Satgutier@umich.edu miller_value[1][2] = 1.5; 238110152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 2.46; 238210152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 238310152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 238410152Satgutier@umich.edu ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 238510152Satgutier@umich.edu fringe_cap); 238610152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 238710152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.045; 238810152Satgutier@umich.edu wire_c_per_micron[1][3] = 37.5e-15 / (256 * 2 * 0.045); 238910152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.045; 239010152Satgutier@umich.edu } 239110152Satgutier@umich.edu else if (tech == 32) 239210152Satgutier@umich.edu { 239310152Satgutier@umich.edu //Aggressive projections. 239410152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um; 239510152Satgutier@umich.edu aspect_ratio[0][0] = 3.0; 239610152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; 239710152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width; 239810152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width; 239910152Satgutier@umich.edu barrier_thickness = 0; 240010152Satgutier@umich.edu dishing_thickness = 0; 240110152Satgutier@umich.edu alpha_scatter = 1; 240210152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 240310152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 240410152Satgutier@umich.edu ild_thickness[0][0] = 0.21; 240510152Satgutier@umich.edu miller_value[0][0] = 1.5; 240610152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 1.664; 240710152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 240810152Satgutier@umich.edu fringe_cap = 0.115e-15; 240910152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 241010152Satgutier@umich.edu ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0], 241110152Satgutier@umich.edu fringe_cap); 241210152Satgutier@umich.edu 241310152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um; 241410152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 241510152Satgutier@umich.edu aspect_ratio[0][1] = 3.0; 241610152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 241710152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 241810152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 241910152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 242010152Satgutier@umich.edu ild_thickness[0][1] = 0.21; 242110152Satgutier@umich.edu miller_value[0][1] = 1.5; 242210152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 1.664; 242310152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 242410152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 242510152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 242610152Satgutier@umich.edu fringe_cap); 242710152Satgutier@umich.edu 242810152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um; 242910152Satgutier@umich.edu aspect_ratio[0][2] = 3.0; 243010152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 243110152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 243210152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 243310152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 243410152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 243510152Satgutier@umich.edu ild_thickness[0][2] = 0.42; 243610152Satgutier@umich.edu miller_value[0][2] = 1.5; 243710152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 1.664; 243810152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 243910152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 244010152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 244110152Satgutier@umich.edu fringe_cap); 244210152Satgutier@umich.edu 244310152Satgutier@umich.edu //Conservative projections 244410152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 244510152Satgutier@umich.edu aspect_ratio[1][0] = 2.0; 244610152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 244710152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 244810152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 244910152Satgutier@umich.edu barrier_thickness = 0.003; 245010152Satgutier@umich.edu dishing_thickness = 0; 245110152Satgutier@umich.edu alpha_scatter = 1; 245210152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 245310152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 245410152Satgutier@umich.edu ild_thickness[1][0] = 0.21; 245510152Satgutier@umich.edu miller_value[1][0] = 1.5; 245610152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 2.214; 245710152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 245810152Satgutier@umich.edu fringe_cap = 0.115e-15; 245910152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 246010152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 246110152Satgutier@umich.edu fringe_cap); 246210152Satgutier@umich.edu 246310152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 246410152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 246510152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 246610152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 246710152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 246810152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 246910152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 247010152Satgutier@umich.edu ild_thickness[1][1] = 0.21; 247110152Satgutier@umich.edu miller_value[1][1] = 1.5; 247210152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 2.214; 247310152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 247410152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 247510152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 247610152Satgutier@umich.edu fringe_cap); 247710152Satgutier@umich.edu 247810152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 247910152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 248010152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 248110152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 248210152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 248310152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 248410152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 248510152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 248610152Satgutier@umich.edu ild_thickness[1][2] = 0.385; 248710152Satgutier@umich.edu miller_value[1][2] = 1.5; 248810152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 2.214; 248910152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 249010152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 249110152Satgutier@umich.edu ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 249210152Satgutier@umich.edu fringe_cap); 249310152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 249410152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.032;//micron 249510152Satgutier@umich.edu wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.032);//F/micron 249610152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.032;//ohm/micron 249710152Satgutier@umich.edu } 249810152Satgutier@umich.edu else if (tech == 22) 249910152Satgutier@umich.edu { 250010152Satgutier@umich.edu //Aggressive projections. 250110152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local 250210152Satgutier@umich.edu aspect_ratio[0][0] = 3.0; 250310152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; 250410152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width; 250510152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width; 250610152Satgutier@umich.edu barrier_thickness = 0; 250710152Satgutier@umich.edu dishing_thickness = 0; 250810152Satgutier@umich.edu alpha_scatter = 1; 250910152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 251010152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 251110152Satgutier@umich.edu ild_thickness[0][0] = 0.15; 251210152Satgutier@umich.edu miller_value[0][0] = 1.5; 251310152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 1.414; 251410152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 251510152Satgutier@umich.edu fringe_cap = 0.115e-15; 251610152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 251710152Satgutier@umich.edu ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0], 251810152Satgutier@umich.edu fringe_cap); 251910152Satgutier@umich.edu 252010152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global 252110152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 252210152Satgutier@umich.edu aspect_ratio[0][1] = 3.0; 252310152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 252410152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 252510152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 252610152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 252710152Satgutier@umich.edu ild_thickness[0][1] = 0.15; 252810152Satgutier@umich.edu miller_value[0][1] = 1.5; 252910152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 1.414; 253010152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 253110152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 253210152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 253310152Satgutier@umich.edu fringe_cap); 253410152Satgutier@umich.edu 253510152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global 253610152Satgutier@umich.edu aspect_ratio[0][2] = 3.0; 253710152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 253810152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 253910152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 254010152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 254110152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 254210152Satgutier@umich.edu ild_thickness[0][2] = 0.3; 254310152Satgutier@umich.edu miller_value[0][2] = 1.5; 254410152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 1.414; 254510152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 254610152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 254710152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 254810152Satgutier@umich.edu fringe_cap); 254910152Satgutier@umich.edu 255010152Satgutier@umich.edu// //************************* 255110152Satgutier@umich.edu// wire_pitch[0][4] = 16 * g_ip.F_sz_um;//global 255210152Satgutier@umich.edu// aspect_ratio = 3.0; 255310152Satgutier@umich.edu// wire_width = wire_pitch[0][4] / 2; 255410152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 255510152Satgutier@umich.edu// wire_spacing = wire_pitch[0][4] - wire_width; 255610152Satgutier@umich.edu// wire_r_per_micron[0][4] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 255710152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 255810152Satgutier@umich.edu// ild_thickness = 0.3; 255910152Satgutier@umich.edu// wire_c_per_micron[0][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 256010152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 256110152Satgutier@umich.edu// fringe_cap); 256210152Satgutier@umich.edu// 256310152Satgutier@umich.edu// wire_pitch[0][5] = 24 * g_ip.F_sz_um;//global 256410152Satgutier@umich.edu// aspect_ratio = 3.0; 256510152Satgutier@umich.edu// wire_width = wire_pitch[0][5] / 2; 256610152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 256710152Satgutier@umich.edu// wire_spacing = wire_pitch[0][5] - wire_width; 256810152Satgutier@umich.edu// wire_r_per_micron[0][5] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 256910152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 257010152Satgutier@umich.edu// ild_thickness = 0.3; 257110152Satgutier@umich.edu// wire_c_per_micron[0][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 257210152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 257310152Satgutier@umich.edu// fringe_cap); 257410152Satgutier@umich.edu// 257510152Satgutier@umich.edu// wire_pitch[0][6] = 32 * g_ip.F_sz_um;//global 257610152Satgutier@umich.edu// aspect_ratio = 3.0; 257710152Satgutier@umich.edu// wire_width = wire_pitch[0][6] / 2; 257810152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 257910152Satgutier@umich.edu// wire_spacing = wire_pitch[0][6] - wire_width; 258010152Satgutier@umich.edu// wire_r_per_micron[0][6] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 258110152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 258210152Satgutier@umich.edu// ild_thickness = 0.3; 258310152Satgutier@umich.edu// wire_c_per_micron[0][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 258410152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 258510152Satgutier@umich.edu// fringe_cap); 258610152Satgutier@umich.edu //************************* 258710152Satgutier@umich.edu 258810152Satgutier@umich.edu //Conservative projections 258910152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 259010152Satgutier@umich.edu aspect_ratio[1][0] = 2.0; 259110152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 259210152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 259310152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 259410152Satgutier@umich.edu barrier_thickness = 0.003; 259510152Satgutier@umich.edu dishing_thickness = 0; 259610152Satgutier@umich.edu alpha_scatter = 1.05; 259710152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 259810152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 259910152Satgutier@umich.edu ild_thickness[1][0] = 0.15; 260010152Satgutier@umich.edu miller_value[1][0] = 1.5; 260110152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 2.104; 260210152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 260310152Satgutier@umich.edu fringe_cap = 0.115e-15; 260410152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 260510152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 260610152Satgutier@umich.edu fringe_cap); 260710152Satgutier@umich.edu 260810152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 260910152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 261010152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 261110152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 261210152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 261310152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 261410152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 261510152Satgutier@umich.edu ild_thickness[1][1] = 0.15; 261610152Satgutier@umich.edu miller_value[1][1] = 1.5; 261710152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 2.104; 261810152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 261910152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 262010152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 262110152Satgutier@umich.edu fringe_cap); 262210152Satgutier@umich.edu 262310152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 262410152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 262510152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 262610152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 262710152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 262810152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 262910152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 263010152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 263110152Satgutier@umich.edu ild_thickness[1][2] = 0.275; 263210152Satgutier@umich.edu miller_value[1][2] = 1.5; 263310152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 2.104; 263410152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 263510152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 263610152Satgutier@umich.edu ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 263710152Satgutier@umich.edu fringe_cap); 263810152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 263910152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.022;//micron 264010152Satgutier@umich.edu wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.022);//F/micron 264110152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.022;//ohm/micron 264210152Satgutier@umich.edu 264310152Satgutier@umich.edu //****************** 264410152Satgutier@umich.edu// wire_pitch[1][4] = 16 * g_ip.F_sz_um; 264510152Satgutier@umich.edu// aspect_ratio = 2.2; 264610152Satgutier@umich.edu// wire_width = wire_pitch[1][4] / 2; 264710152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 264810152Satgutier@umich.edu// wire_spacing = wire_pitch[1][4] - wire_width; 264910152Satgutier@umich.edu// dishing_thickness = 0.1 * wire_thickness; 265010152Satgutier@umich.edu// wire_r_per_micron[1][4] = wire_resistance(CU_RESISTIVITY, wire_width, 265110152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 265210152Satgutier@umich.edu// ild_thickness = 0.275; 265310152Satgutier@umich.edu// wire_c_per_micron[1][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 265410152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 265510152Satgutier@umich.edu// fringe_cap); 265610152Satgutier@umich.edu// 265710152Satgutier@umich.edu// wire_pitch[1][5] = 24 * g_ip.F_sz_um; 265810152Satgutier@umich.edu// aspect_ratio = 2.2; 265910152Satgutier@umich.edu// wire_width = wire_pitch[1][5] / 2; 266010152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 266110152Satgutier@umich.edu// wire_spacing = wire_pitch[1][5] - wire_width; 266210152Satgutier@umich.edu// dishing_thickness = 0.1 * wire_thickness; 266310152Satgutier@umich.edu// wire_r_per_micron[1][5] = wire_resistance(CU_RESISTIVITY, wire_width, 266410152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 266510152Satgutier@umich.edu// ild_thickness = 0.275; 266610152Satgutier@umich.edu// wire_c_per_micron[1][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 266710152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 266810152Satgutier@umich.edu// fringe_cap); 266910152Satgutier@umich.edu// 267010152Satgutier@umich.edu// wire_pitch[1][6] = 32 * g_ip.F_sz_um; 267110152Satgutier@umich.edu// aspect_ratio = 2.2; 267210152Satgutier@umich.edu// wire_width = wire_pitch[1][6] / 2; 267310152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 267410152Satgutier@umich.edu// wire_spacing = wire_pitch[1][6] - wire_width; 267510152Satgutier@umich.edu// dishing_thickness = 0.1 * wire_thickness; 267610152Satgutier@umich.edu// wire_r_per_micron[1][6] = wire_resistance(CU_RESISTIVITY, wire_width, 267710152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 267810152Satgutier@umich.edu// ild_thickness = 0.275; 267910152Satgutier@umich.edu// wire_c_per_micron[1][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 268010152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 268110152Satgutier@umich.edu// fringe_cap); 268210152Satgutier@umich.edu } 268310152Satgutier@umich.edu 268410152Satgutier@umich.edu else if (tech == 16) 268510152Satgutier@umich.edu { 268610152Satgutier@umich.edu //Aggressive projections. 268710152Satgutier@umich.edu wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local 268810152Satgutier@umich.edu aspect_ratio[0][0] = 3.0; 268910152Satgutier@umich.edu wire_width = wire_pitch[0][0] / 2; 269010152Satgutier@umich.edu wire_thickness = aspect_ratio[0][0] * wire_width; 269110152Satgutier@umich.edu wire_spacing = wire_pitch[0][0] - wire_width; 269210152Satgutier@umich.edu barrier_thickness = 0; 269310152Satgutier@umich.edu dishing_thickness = 0; 269410152Satgutier@umich.edu alpha_scatter = 1; 269510152Satgutier@umich.edu wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 269610152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 269710152Satgutier@umich.edu ild_thickness[0][0] = 0.108; 269810152Satgutier@umich.edu miller_value[0][0] = 1.5; 269910152Satgutier@umich.edu horiz_dielectric_constant[0][0] = 1.202; 270010152Satgutier@umich.edu vert_dielectric_constant[0][0] = 3.9; 270110152Satgutier@umich.edu fringe_cap = 0.115e-15; 270210152Satgutier@umich.edu wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 270310152Satgutier@umich.edu ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0], 270410152Satgutier@umich.edu fringe_cap); 270510152Satgutier@umich.edu 270610152Satgutier@umich.edu wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global 270710152Satgutier@umich.edu aspect_ratio[0][1] = 3.0; 270810152Satgutier@umich.edu wire_width = wire_pitch[0][1] / 2; 270910152Satgutier@umich.edu wire_thickness = aspect_ratio[0][1] * wire_width; 271010152Satgutier@umich.edu wire_spacing = wire_pitch[0][1] - wire_width; 271110152Satgutier@umich.edu wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 271210152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 271310152Satgutier@umich.edu ild_thickness[0][1] = 0.108; 271410152Satgutier@umich.edu miller_value[0][1] = 1.5; 271510152Satgutier@umich.edu horiz_dielectric_constant[0][1] = 1.202; 271610152Satgutier@umich.edu vert_dielectric_constant[0][1] = 3.9; 271710152Satgutier@umich.edu wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 271810152Satgutier@umich.edu ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1], 271910152Satgutier@umich.edu fringe_cap); 272010152Satgutier@umich.edu 272110152Satgutier@umich.edu wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global 272210152Satgutier@umich.edu aspect_ratio[0][2] = 3.0; 272310152Satgutier@umich.edu wire_width = wire_pitch[0][2] / 2; 272410152Satgutier@umich.edu wire_thickness = aspect_ratio[0][2] * wire_width; 272510152Satgutier@umich.edu wire_spacing = wire_pitch[0][2] - wire_width; 272610152Satgutier@umich.edu wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 272710152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 272810152Satgutier@umich.edu ild_thickness[0][2] = 0.216; 272910152Satgutier@umich.edu miller_value[0][2] = 1.5; 273010152Satgutier@umich.edu horiz_dielectric_constant[0][2] = 1.202; 273110152Satgutier@umich.edu vert_dielectric_constant[0][2] = 3.9; 273210152Satgutier@umich.edu wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 273310152Satgutier@umich.edu ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2], 273410152Satgutier@umich.edu fringe_cap); 273510152Satgutier@umich.edu 273610152Satgutier@umich.edu// //************************* 273710152Satgutier@umich.edu// wire_pitch[0][4] = 16 * g_ip.F_sz_um;//global 273810152Satgutier@umich.edu// aspect_ratio = 3.0; 273910152Satgutier@umich.edu// wire_width = wire_pitch[0][4] / 2; 274010152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 274110152Satgutier@umich.edu// wire_spacing = wire_pitch[0][4] - wire_width; 274210152Satgutier@umich.edu// wire_r_per_micron[0][4] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 274310152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 274410152Satgutier@umich.edu// ild_thickness = 0.3; 274510152Satgutier@umich.edu// wire_c_per_micron[0][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 274610152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 274710152Satgutier@umich.edu// fringe_cap); 274810152Satgutier@umich.edu// 274910152Satgutier@umich.edu// wire_pitch[0][5] = 24 * g_ip.F_sz_um;//global 275010152Satgutier@umich.edu// aspect_ratio = 3.0; 275110152Satgutier@umich.edu// wire_width = wire_pitch[0][5] / 2; 275210152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 275310152Satgutier@umich.edu// wire_spacing = wire_pitch[0][5] - wire_width; 275410152Satgutier@umich.edu// wire_r_per_micron[0][5] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 275510152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 275610152Satgutier@umich.edu// ild_thickness = 0.3; 275710152Satgutier@umich.edu// wire_c_per_micron[0][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 275810152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 275910152Satgutier@umich.edu// fringe_cap); 276010152Satgutier@umich.edu// 276110152Satgutier@umich.edu// wire_pitch[0][6] = 32 * g_ip.F_sz_um;//global 276210152Satgutier@umich.edu// aspect_ratio = 3.0; 276310152Satgutier@umich.edu// wire_width = wire_pitch[0][6] / 2; 276410152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 276510152Satgutier@umich.edu// wire_spacing = wire_pitch[0][6] - wire_width; 276610152Satgutier@umich.edu// wire_r_per_micron[0][6] = wire_resistance(BULK_CU_RESISTIVITY, wire_width, 276710152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 276810152Satgutier@umich.edu// ild_thickness = 0.3; 276910152Satgutier@umich.edu// wire_c_per_micron[0][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 277010152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 277110152Satgutier@umich.edu// fringe_cap); 277210152Satgutier@umich.edu //************************* 277310152Satgutier@umich.edu 277410152Satgutier@umich.edu //Conservative projections 277510152Satgutier@umich.edu wire_pitch[1][0] = 2.5 * g_ip->F_sz_um; 277610152Satgutier@umich.edu aspect_ratio[1][0] = 2.0; 277710152Satgutier@umich.edu wire_width = wire_pitch[1][0] / 2; 277810152Satgutier@umich.edu wire_thickness = aspect_ratio[1][0] * wire_width; 277910152Satgutier@umich.edu wire_spacing = wire_pitch[1][0] - wire_width; 278010152Satgutier@umich.edu barrier_thickness = 0.002; 278110152Satgutier@umich.edu dishing_thickness = 0; 278210152Satgutier@umich.edu alpha_scatter = 1.05; 278310152Satgutier@umich.edu wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width, 278410152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 278510152Satgutier@umich.edu ild_thickness[1][0] = 0.108; 278610152Satgutier@umich.edu miller_value[1][0] = 1.5; 278710152Satgutier@umich.edu horiz_dielectric_constant[1][0] = 1.998; 278810152Satgutier@umich.edu vert_dielectric_constant[1][0] = 3.9; 278910152Satgutier@umich.edu fringe_cap = 0.115e-15; 279010152Satgutier@umich.edu wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 279110152Satgutier@umich.edu ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0], 279210152Satgutier@umich.edu fringe_cap); 279310152Satgutier@umich.edu 279410152Satgutier@umich.edu wire_pitch[1][1] = 4 * g_ip->F_sz_um; 279510152Satgutier@umich.edu wire_width = wire_pitch[1][1] / 2; 279610152Satgutier@umich.edu aspect_ratio[1][1] = 2.0; 279710152Satgutier@umich.edu wire_thickness = aspect_ratio[1][1] * wire_width; 279810152Satgutier@umich.edu wire_spacing = wire_pitch[1][1] - wire_width; 279910152Satgutier@umich.edu wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width, 280010152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 280110152Satgutier@umich.edu ild_thickness[1][1] = 0.108; 280210152Satgutier@umich.edu miller_value[1][1] = 1.5; 280310152Satgutier@umich.edu horiz_dielectric_constant[1][1] = 1.998; 280410152Satgutier@umich.edu vert_dielectric_constant[1][1] = 3.9; 280510152Satgutier@umich.edu wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 280610152Satgutier@umich.edu ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1], 280710152Satgutier@umich.edu fringe_cap); 280810152Satgutier@umich.edu 280910152Satgutier@umich.edu wire_pitch[1][2] = 8 * g_ip->F_sz_um; 281010152Satgutier@umich.edu aspect_ratio[1][2] = 2.2; 281110152Satgutier@umich.edu wire_width = wire_pitch[1][2] / 2; 281210152Satgutier@umich.edu wire_thickness = aspect_ratio[1][2] * wire_width; 281310152Satgutier@umich.edu wire_spacing = wire_pitch[1][2] - wire_width; 281410152Satgutier@umich.edu dishing_thickness = 0.1 * wire_thickness; 281510152Satgutier@umich.edu wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width, 281610152Satgutier@umich.edu wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 281710152Satgutier@umich.edu ild_thickness[1][2] = 0.198; 281810152Satgutier@umich.edu miller_value[1][2] = 1.5; 281910152Satgutier@umich.edu horiz_dielectric_constant[1][2] = 1.998; 282010152Satgutier@umich.edu vert_dielectric_constant[1][2] = 3.9; 282110152Satgutier@umich.edu wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 282210152Satgutier@umich.edu ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2], 282310152Satgutier@umich.edu fringe_cap); 282410152Satgutier@umich.edu //Nominal projections for commodity DRAM wordline/bitline 282510152Satgutier@umich.edu wire_pitch[1][3] = 2 * 0.016;//micron 282610152Satgutier@umich.edu wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.016);//F/micron 282710152Satgutier@umich.edu wire_r_per_micron[1][3] = 12 / 0.016;//ohm/micron 282810152Satgutier@umich.edu 282910152Satgutier@umich.edu //****************** 283010152Satgutier@umich.edu// wire_pitch[1][4] = 16 * g_ip.F_sz_um; 283110152Satgutier@umich.edu// aspect_ratio = 2.2; 283210152Satgutier@umich.edu// wire_width = wire_pitch[1][4] / 2; 283310152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 283410152Satgutier@umich.edu// wire_spacing = wire_pitch[1][4] - wire_width; 283510152Satgutier@umich.edu// dishing_thickness = 0.1 * wire_thickness; 283610152Satgutier@umich.edu// wire_r_per_micron[1][4] = wire_resistance(CU_RESISTIVITY, wire_width, 283710152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 283810152Satgutier@umich.edu// ild_thickness = 0.275; 283910152Satgutier@umich.edu// wire_c_per_micron[1][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 284010152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 284110152Satgutier@umich.edu// fringe_cap); 284210152Satgutier@umich.edu// 284310152Satgutier@umich.edu// wire_pitch[1][5] = 24 * g_ip.F_sz_um; 284410152Satgutier@umich.edu// aspect_ratio = 2.2; 284510152Satgutier@umich.edu// wire_width = wire_pitch[1][5] / 2; 284610152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 284710152Satgutier@umich.edu// wire_spacing = wire_pitch[1][5] - wire_width; 284810152Satgutier@umich.edu// dishing_thickness = 0.1 * wire_thickness; 284910152Satgutier@umich.edu// wire_r_per_micron[1][5] = wire_resistance(CU_RESISTIVITY, wire_width, 285010152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 285110152Satgutier@umich.edu// ild_thickness = 0.275; 285210152Satgutier@umich.edu// wire_c_per_micron[1][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 285310152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 285410152Satgutier@umich.edu// fringe_cap); 285510152Satgutier@umich.edu// 285610152Satgutier@umich.edu// wire_pitch[1][6] = 32 * g_ip.F_sz_um; 285710152Satgutier@umich.edu// aspect_ratio = 2.2; 285810152Satgutier@umich.edu// wire_width = wire_pitch[1][6] / 2; 285910152Satgutier@umich.edu// wire_thickness = aspect_ratio * wire_width; 286010152Satgutier@umich.edu// wire_spacing = wire_pitch[1][6] - wire_width; 286110152Satgutier@umich.edu// dishing_thickness = 0.1 * wire_thickness; 286210152Satgutier@umich.edu// wire_r_per_micron[1][6] = wire_resistance(CU_RESISTIVITY, wire_width, 286310152Satgutier@umich.edu// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter); 286410152Satgutier@umich.edu// ild_thickness = 0.275; 286510152Satgutier@umich.edu// wire_c_per_micron[1][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing, 286610152Satgutier@umich.edu// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant, 286710152Satgutier@umich.edu// fringe_cap); 286810152Satgutier@umich.edu } 286910152Satgutier@umich.edu g_tp.wire_local.pitch += curr_alpha * wire_pitch[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0]; 287010152Satgutier@umich.edu 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]; 287110152Satgutier@umich.edu 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]; 287210152Satgutier@umich.edu g_tp.wire_local.aspect_ratio += curr_alpha * aspect_ratio[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0]; 287310152Satgutier@umich.edu g_tp.wire_local.ild_thickness += curr_alpha * ild_thickness[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0]; 287410152Satgutier@umich.edu g_tp.wire_local.miller_value += curr_alpha * miller_value[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0]; 287510152Satgutier@umich.edu 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]; 287610152Satgutier@umich.edu 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]; 287710152Satgutier@umich.edu 287810152Satgutier@umich.edu g_tp.wire_inside_mat.pitch += curr_alpha * wire_pitch[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 287910152Satgutier@umich.edu 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]; 288010152Satgutier@umich.edu 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]; 288110152Satgutier@umich.edu g_tp.wire_inside_mat.aspect_ratio += curr_alpha * aspect_ratio[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 288210152Satgutier@umich.edu g_tp.wire_inside_mat.ild_thickness += curr_alpha * ild_thickness[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 288310152Satgutier@umich.edu g_tp.wire_inside_mat.miller_value += curr_alpha * miller_value[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 288410152Satgutier@umich.edu g_tp.wire_inside_mat.horiz_dielectric_constant += curr_alpha* horiz_dielectric_constant[g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 288510152Satgutier@umich.edu g_tp.wire_inside_mat.vert_dielectric_constant += curr_alpha* vert_dielectric_constant [g_ip->ic_proj_type][g_ip->wire_is_mat_type]; 288610152Satgutier@umich.edu 288710152Satgutier@umich.edu g_tp.wire_outside_mat.pitch += curr_alpha * wire_pitch[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 288810152Satgutier@umich.edu 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]; 288910152Satgutier@umich.edu 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]; 289010152Satgutier@umich.edu g_tp.wire_outside_mat.aspect_ratio += curr_alpha * aspect_ratio[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 289110152Satgutier@umich.edu g_tp.wire_outside_mat.ild_thickness += curr_alpha * ild_thickness[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 289210152Satgutier@umich.edu g_tp.wire_outside_mat.miller_value += curr_alpha * miller_value[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 289310152Satgutier@umich.edu g_tp.wire_outside_mat.horiz_dielectric_constant += curr_alpha* horiz_dielectric_constant[g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 289410152Satgutier@umich.edu g_tp.wire_outside_mat.vert_dielectric_constant += curr_alpha* vert_dielectric_constant [g_ip->ic_proj_type][g_ip->wire_os_mat_type]; 289510152Satgutier@umich.edu 289610152Satgutier@umich.edu g_tp.unit_len_wire_del = g_tp.wire_inside_mat.R_per_um * g_tp.wire_inside_mat.C_per_um / 2; 289710152Satgutier@umich.edu 289810152Satgutier@umich.edu g_tp.sense_delay += curr_alpha *SENSE_AMP_D; 289910152Satgutier@umich.edu g_tp.sense_dy_power += curr_alpha *SENSE_AMP_P; 290010152Satgutier@umich.edu// g_tp.horiz_dielectric_constant += horiz_dielectric_constant; 290110152Satgutier@umich.edu// g_tp.vert_dielectric_constant += vert_dielectric_constant; 290210152Satgutier@umich.edu// g_tp.aspect_ratio += aspect_ratio; 290310152Satgutier@umich.edu// g_tp.miller_value += miller_value; 290410152Satgutier@umich.edu// g_tp.ild_thickness += ild_thickness; 290510152Satgutier@umich.edu 290610152Satgutier@umich.edu } 290710152Satgutier@umich.edu g_tp.fringe_cap = fringe_cap; 290810152Satgutier@umich.edu 290910152Satgutier@umich.edu double rd = tr_R_on(g_tp.min_w_nmos_, NCH, 1); 291010152Satgutier@umich.edu double p_to_n_sizing_r = pmos_to_nmos_sz_ratio(); 291110152Satgutier@umich.edu double c_load = gate_C(g_tp.min_w_nmos_ * (1 + p_to_n_sizing_r), 0.0); 291210152Satgutier@umich.edu double tf = rd * c_load; 291310152Satgutier@umich.edu g_tp.kinv = horowitz(0, tf, 0.5, 0.5, RISE); 291410152Satgutier@umich.edu double KLOAD = 1; 291510152Satgutier@umich.edu c_load = KLOAD * (drain_C_(g_tp.min_w_nmos_, NCH, 1, 1, g_tp.cell_h_def) + 291610152Satgutier@umich.edu drain_C_(g_tp.min_w_nmos_ * p_to_n_sizing_r, PCH, 1, 1, g_tp.cell_h_def) + 291710152Satgutier@umich.edu gate_C(g_tp.min_w_nmos_ * 4 * (1 + p_to_n_sizing_r), 0.0)); 291810152Satgutier@umich.edu tf = rd * c_load; 291910152Satgutier@umich.edu g_tp.FO4 = horowitz(0, tf, 0.5, 0.5, RISE); 292010152Satgutier@umich.edu} 292110152Satgutier@umich.edu 2922