technology.cc (10152:52c552138ba1) technology.cc (10234:5cb711fa6176)
1/*****************************************************************************
2 * McPAT/CACTI
3 * SOFTWARE LICENSE AGREEMENT
4 * Copyright 2012 Hewlett-Packard Development Company, L.P.
1/*****************************************************************************
2 * McPAT/CACTI
3 * SOFTWARE LICENSE AGREEMENT
4 * Copyright 2012 Hewlett-Packard Development Company, L.P.
5 * Copyright (c) 2010-2013 Advanced Micro Devices, Inc.
5 * All Rights Reserved
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are
9 * met: redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer;
11 * redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the

--- 7 unchanged lines hidden (view full) ---

20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
6 * All Rights Reserved
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are
10 * met: redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer;
12 * redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the

--- 7 unchanged lines hidden (view full) ---

21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 *
30 ***************************************************************************/
31
32
33#include "basic_circuit.h"
34
35#include "parameter.h"
36
30 *
31 ***************************************************************************/
32
33
34#include "basic_circuit.h"
35
36#include "parameter.h"
37
37double wire_resistance(double resistivity, double wire_width, double wire_thickness,
38 double barrier_thickness, double dishing_thickness, double alpha_scatter)
39{
40 double resistance;
41 resistance = alpha_scatter * resistivity /((wire_thickness - barrier_thickness - dishing_thickness)*(wire_width - 2 * barrier_thickness));
42 return(resistance);
38double wire_resistance(double resistivity, double wire_width,
39 double wire_thickness,
40 double barrier_thickness, double dishing_thickness,
41 double alpha_scatter) {
42 double resistance;
43 resistance = alpha_scatter * resistivity /
44 ((wire_thickness - barrier_thickness - dishing_thickness) *
45 (wire_width - 2 * barrier_thickness));
46 return(resistance);
43}
44
47}
48
45double wire_capacitance(double wire_width, double wire_thickness, double wire_spacing,
46 double ild_thickness, double miller_value, double horiz_dielectric_constant,
47 double vert_dielectric_constant, double fringe_cap)
48{
49 double vertical_cap, sidewall_cap, total_cap;
50 vertical_cap = 2 * PERMITTIVITY_FREE_SPACE * vert_dielectric_constant * wire_width / ild_thickness;
51 sidewall_cap = 2 * PERMITTIVITY_FREE_SPACE * miller_value * horiz_dielectric_constant * wire_thickness / wire_spacing;
52 total_cap = vertical_cap + sidewall_cap + fringe_cap;
53 return(total_cap);
49double wire_capacitance(double wire_width, double wire_thickness,
50 double wire_spacing,
51 double ild_thickness, double miller_value,
52 double horiz_dielectric_constant,
53 double vert_dielectric_constant, double fringe_cap) {
54 double vertical_cap, sidewall_cap, total_cap;
55 vertical_cap = 2 * PERMITTIVITY_FREE_SPACE * vert_dielectric_constant * wire_width / ild_thickness;
56 sidewall_cap = 2 * PERMITTIVITY_FREE_SPACE * miller_value * horiz_dielectric_constant * wire_thickness / wire_spacing;
57 total_cap = vertical_cap + sidewall_cap + fringe_cap;
58 return(total_cap);
54}
55
56
59}
60
61
57void init_tech_params(double technology, bool is_tag)
58{
59 int iter, tech, tech_lo, tech_hi;
60 double curr_alpha, curr_vpp;
61 double wire_width, wire_thickness, wire_spacing,
62 fringe_cap, pmos_to_nmos_sizing_r;
62void init_tech_params(double technology, bool is_tag) {
63 int iter, tech, tech_lo, tech_hi;
64 double curr_alpha, curr_vpp;
65 double wire_width, wire_thickness, wire_spacing,
66 fringe_cap, pmos_to_nmos_sizing_r;
63// double aspect_ratio,ild_thickness, miller_value = 1.5, horiz_dielectric_constant, vert_dielectric_constant;
67// double aspect_ratio,ild_thickness, miller_value = 1.5, horiz_dielectric_constant, vert_dielectric_constant;
64 double barrier_thickness, dishing_thickness, alpha_scatter;
65 double curr_vdd_dram_cell, curr_v_th_dram_access_transistor, curr_I_on_dram_cell, curr_c_dram_cell;
68 double barrier_thickness, dishing_thickness, alpha_scatter;
69 double curr_vdd_dram_cell, curr_v_th_dram_access_transistor, curr_I_on_dram_cell, curr_c_dram_cell;
66
70
67 uint32_t ram_cell_tech_type = (is_tag) ? g_ip->tag_arr_ram_cell_tech_type : g_ip->data_arr_ram_cell_tech_type;
68 uint32_t peri_global_tech_type = (is_tag) ? g_ip->tag_arr_peri_global_tech_type : g_ip->data_arr_peri_global_tech_type;
71 uint32_t ram_cell_tech_type = (is_tag) ? g_ip->tag_arr_ram_cell_tech_type : g_ip->data_arr_ram_cell_tech_type;
72 uint32_t peri_global_tech_type = (is_tag) ? g_ip->tag_arr_peri_global_tech_type : g_ip->data_arr_peri_global_tech_type;
69
73
70 technology = technology * 1000.0; // in the unit of nm
74 technology = technology * 1000.0; // in the unit of nm
71
75
72 // initialize parameters
73 g_tp.reset();
74 double gmp_to_gmn_multiplier_periph_global = 0;
76 // initialize parameters
77 g_tp.reset();
78 double gmp_to_gmn_multiplier_periph_global = 0;
75
79
76 double curr_Wmemcella_dram, curr_Wmemcellpmos_dram, curr_Wmemcellnmos_dram,
77 curr_area_cell_dram, curr_asp_ratio_cell_dram, curr_Wmemcella_sram,
78 curr_Wmemcellpmos_sram, curr_Wmemcellnmos_sram, curr_area_cell_sram,
79 curr_asp_ratio_cell_sram, curr_I_off_dram_cell_worst_case_length_temp;
80 double curr_Wmemcella_cam, curr_Wmemcellpmos_cam, curr_Wmemcellnmos_cam, curr_area_cell_cam,//Sheng: CAM data
81 curr_asp_ratio_cell_cam;
82 double SENSE_AMP_D, SENSE_AMP_P; // J
83 double area_cell_dram = 0;
84 double asp_ratio_cell_dram = 0;
85 double area_cell_sram = 0;
86 double asp_ratio_cell_sram = 0;
87 double area_cell_cam = 0;
88 double asp_ratio_cell_cam = 0;
89 double mobility_eff_periph_global = 0;
90 double Vdsat_periph_global = 0;
91 double nmos_effective_resistance_multiplier;
92 double width_dram_access_transistor;
80 double curr_Wmemcella_dram, curr_Wmemcellpmos_dram, curr_Wmemcellnmos_dram,
81 curr_area_cell_dram, curr_asp_ratio_cell_dram, curr_Wmemcella_sram,
82 curr_Wmemcellpmos_sram, curr_Wmemcellnmos_sram, curr_area_cell_sram,
83 curr_asp_ratio_cell_sram, curr_I_off_dram_cell_worst_case_length_temp;
84 double curr_Wmemcella_cam, curr_Wmemcellpmos_cam, curr_Wmemcellnmos_cam, curr_area_cell_cam,//Sheng: CAM data
85 curr_asp_ratio_cell_cam;
86 double SENSE_AMP_D, SENSE_AMP_P; // J
87 double area_cell_dram = 0;
88 double asp_ratio_cell_dram = 0;
89 double area_cell_sram = 0;
90 double asp_ratio_cell_sram = 0;
91 double area_cell_cam = 0;
92 double asp_ratio_cell_cam = 0;
93 double mobility_eff_periph_global = 0;
94 double Vdsat_periph_global = 0;
95 double nmos_effective_resistance_multiplier;
96 double width_dram_access_transistor;
93
97
94 double curr_logic_scaling_co_eff = 0;//This is based on the reported numbers of Intel Merom 65nm, Penryn45nm and IBM cell 90/65/45 date
95 double curr_core_tx_density = 0;//this is density per um^2; 90, ...22nm based on Intel Penryn
96 double curr_chip_layout_overhead = 0;
97 double curr_macro_layout_overhead = 0;
98 double curr_sckt_co_eff = 0;
98 double curr_logic_scaling_co_eff = 0;//This is based on the reported numbers of Intel Merom 65nm, Penryn45nm and IBM cell 90/65/45 date
99 double curr_core_tx_density = 0;//this is density per um^2; 90, ...22nm based on Intel Penryn
100 double curr_chip_layout_overhead = 0;
101 double curr_macro_layout_overhead = 0;
102 double curr_sckt_co_eff = 0;
99
103
100 if (technology < 181 && technology > 179)
101 {
104 if (technology < 181 && technology > 179) {
102 tech_lo = 180;
103 tech_hi = 180;
105 tech_lo = 180;
106 tech_hi = 180;
104 }
105 else if (technology < 91 && technology > 89)
106 {
107 tech_lo = 90;
108 tech_hi = 90;
109 }
110 else if (technology < 66 && technology > 64)
111 {
112 tech_lo = 65;
113 tech_hi = 65;
114 }
115 else if (technology < 46 && technology > 44)
116 {
117 tech_lo = 45;
118 tech_hi = 45;
119 }
120 else if (technology < 33 && technology > 31)
121 {
122 tech_lo = 32;
123 tech_hi = 32;
124 }
125 else if (technology < 23 && technology > 21)
126 {
127 tech_lo = 22;
128 tech_hi = 22;
129 if (ram_cell_tech_type == 3 )
130 {
131 cout<<"current version does not support eDRAM technologies at 22nm"<<endl;
132 exit(0);
107 } else if (technology < 91 && technology > 89) {
108 tech_lo = 90;
109 tech_hi = 90;
110 } else if (technology < 66 && technology > 64) {
111 tech_lo = 65;
112 tech_hi = 65;
113 } else if (technology < 46 && technology > 44) {
114 tech_lo = 45;
115 tech_hi = 45;
116 } else if (technology < 33 && technology > 31) {
117 tech_lo = 32;
118 tech_hi = 32;
119 } else if (technology < 23 && technology > 21) {
120 tech_lo = 22;
121 tech_hi = 22;
122 if (ram_cell_tech_type == 3 ) {
123 cout << "current version does not support eDRAM technologies at "
124 << "22nm" << endl;
125 exit(0);
126 }
127 } else if (technology < 180 && technology > 90) {
128 tech_lo = 180;
129 tech_hi = 90;
130 } else if (technology < 90 && technology > 65) {
131 tech_lo = 90;
132 tech_hi = 65;
133 } else if (technology < 65 && technology > 45) {
134 tech_lo = 65;
135 tech_hi = 45;
136 } else if (technology < 45 && technology > 32) {
137 tech_lo = 45;
138 tech_hi = 32;
139 } else if (technology < 32 && technology > 22) {
140 tech_lo = 32;
141 tech_hi = 22;
133 }
142 }
134 }
135// else if (technology < 17 && technology > 15)
136// {
137// tech_lo = 16;
138// tech_hi = 16;
139// }
140 else if (technology < 180 && technology > 90)
141 {
142 tech_lo = 180;
143 tech_hi = 90;
144 }
145 else if (technology < 90 && technology > 65)
146 {
147 tech_lo = 90;
148 tech_hi = 65;
149 }
150 else if (technology < 65 && technology > 45)
151 {
152 tech_lo = 65;
153 tech_hi = 45;
154 }
155 else if (technology < 45 && technology > 32)
156 {
157 tech_lo = 45;
158 tech_hi = 32;
159 }
160 else if (technology < 32 && technology > 22)
161 {
162 tech_lo = 32;
163 tech_hi = 22;
164 }
165// else if (technology < 22 && technology > 16)
166// {
167// tech_lo = 22;
168// tech_hi = 16;
169// }
143// else if (technology < 22 && technology > 16)
144// {
145// tech_lo = 22;
146// tech_hi = 16;
147// }
170 else
171 {
172 cout<<"Invalid technology nodes"<<endl;
173 exit(0);
148 else {
149 cout << "Invalid technology nodes" << endl;
150 exit(0);
174 }
175
151 }
152
176 double vdd[NUMBER_TECH_FLAVORS];
177 double Lphy[NUMBER_TECH_FLAVORS];
178 double Lelec[NUMBER_TECH_FLAVORS];
179 double t_ox[NUMBER_TECH_FLAVORS];
180 double v_th[NUMBER_TECH_FLAVORS];
181 double c_ox[NUMBER_TECH_FLAVORS];
182 double mobility_eff[NUMBER_TECH_FLAVORS];
183 double Vdsat[NUMBER_TECH_FLAVORS];
184 double c_g_ideal[NUMBER_TECH_FLAVORS];
185 double c_fringe[NUMBER_TECH_FLAVORS];
186 double c_junc[NUMBER_TECH_FLAVORS];
187 double I_on_n[NUMBER_TECH_FLAVORS];
188 double I_on_p[NUMBER_TECH_FLAVORS];
189 double Rnchannelon[NUMBER_TECH_FLAVORS];
190 double Rpchannelon[NUMBER_TECH_FLAVORS];
191 double n_to_p_eff_curr_drv_ratio[NUMBER_TECH_FLAVORS];
192 double I_off_n[NUMBER_TECH_FLAVORS][101];
193 double I_g_on_n[NUMBER_TECH_FLAVORS][101];
194 //double I_off_p[NUMBER_TECH_FLAVORS][101];
195 double gmp_to_gmn_multiplier[NUMBER_TECH_FLAVORS];
196 //double curr_sckt_co_eff[NUMBER_TECH_FLAVORS];
197 double long_channel_leakage_reduction[NUMBER_TECH_FLAVORS];
153 double vdd[NUMBER_TECH_FLAVORS];
154 double Lphy[NUMBER_TECH_FLAVORS];
155 double Lelec[NUMBER_TECH_FLAVORS];
156 double t_ox[NUMBER_TECH_FLAVORS];
157 double v_th[NUMBER_TECH_FLAVORS];
158 double c_ox[NUMBER_TECH_FLAVORS];
159 double mobility_eff[NUMBER_TECH_FLAVORS];
160 double Vdsat[NUMBER_TECH_FLAVORS];
161 double c_g_ideal[NUMBER_TECH_FLAVORS];
162 double c_fringe[NUMBER_TECH_FLAVORS];
163 double c_junc[NUMBER_TECH_FLAVORS];
164 double I_on_n[NUMBER_TECH_FLAVORS];
165 double I_on_p[NUMBER_TECH_FLAVORS];
166 double Rnchannelon[NUMBER_TECH_FLAVORS];
167 double Rpchannelon[NUMBER_TECH_FLAVORS];
168 double n_to_p_eff_curr_drv_ratio[NUMBER_TECH_FLAVORS];
169 double I_off_n[NUMBER_TECH_FLAVORS][101];
170 double I_g_on_n[NUMBER_TECH_FLAVORS][101];
171 double gmp_to_gmn_multiplier[NUMBER_TECH_FLAVORS];
172 double long_channel_leakage_reduction[NUMBER_TECH_FLAVORS];
198
173
199 for (iter = 0; iter <= 1; ++iter)
200 {
201 // linear interpolation
202 if (iter == 0)
203 {
204 tech = tech_lo;
205 if (tech_lo == tech_hi)
206 {
207 curr_alpha = 1;
208 }
209 else
210 {
211 curr_alpha = (technology - tech_hi)/(tech_lo - tech_hi);
212 }
213 }
214 else
215 {
216 tech = tech_hi;
217 if (tech_lo == tech_hi)
218 {
219 break;
220 }
221 else
222 {
223 curr_alpha = (tech_lo - technology)/(tech_lo - tech_hi);
224 }
225 }
174 for (iter = 0; iter <= 1; ++iter) {
175 // linear interpolation
176 if (iter == 0) {
177 tech = tech_lo;
178 if (tech_lo == tech_hi) {
179 curr_alpha = 1;
180 } else {
181 curr_alpha = (technology - tech_hi) / (tech_lo - tech_hi);
182 }
183 } else {
184 tech = tech_hi;
185 if (tech_lo == tech_hi) {
186 break;
187 } else {
188 curr_alpha = (tech_lo - technology) / (tech_lo - tech_hi);
189 }
190 }
226
191
227 if (tech == 180)
228 {
229 //180nm technology-node. Corresponds to year 1999 in ITRS
230 //Only HP transistor was of interest that 180nm since leakage power was not a big issue. Performance was the king
231 //MASTAR does not contain data for 0.18um process. The following parameters are projected based on ITRS 2000 update and IBM 0.18 Cu Spice input
232 bool Aggre_proj = false;
233 SENSE_AMP_D = .28e-9; // s
234 SENSE_AMP_P = 14.7e-15; // J
235 vdd[0] = 1.5;
236 Lphy[0] = 0.12;//Lphy is the physical gate-length. micron
237 Lelec[0] = 0.10;//Lelec is the electrical gate-length. micron
238 t_ox[0] = 1.2e-3*(Aggre_proj? 1.9/1.2:2);//micron
239 v_th[0] = Aggre_proj? 0.36 : 0.4407;//V
240 c_ox[0] = 1.79e-14*(Aggre_proj? 1.9/1.2:2);//F/micron2
241 mobility_eff[0] = 302.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
242 Vdsat[0] = 0.128*2; //V
243 c_g_ideal[0] = (Aggre_proj? 1.9/1.2:2)*6.64e-16;//F/micron
244 c_fringe[0] = (Aggre_proj? 1.9/1.2:2)*0.08e-15;//F/micron
245 c_junc[0] = (Aggre_proj? 1.9/1.2:2)*1e-15;//F/micron2
246 I_on_n[0] = 750e-6;//A/micron
247 I_on_p[0] = 350e-6;//A/micron
248 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline
249 nmos_effective_resistance_multiplier = 1.54;
250 n_to_p_eff_curr_drv_ratio[0] = 2.45;
251 gmp_to_gmn_multiplier[0] = 1.22;
252 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
253 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
254 long_channel_leakage_reduction[0] = 1;
255 I_off_n[0][0] = 7e-10;//A/micron
256 I_off_n[0][10] = 8.26e-10;
257 I_off_n[0][20] = 9.74e-10;
258 I_off_n[0][30] = 1.15e-9;
259 I_off_n[0][40] = 1.35e-9;
260 I_off_n[0][50] = 1.60e-9;
261 I_off_n[0][60] = 1.88e-9;
262 I_off_n[0][70] = 2.29e-9;
263 I_off_n[0][80] = 2.70e-9;
264 I_off_n[0][90] = 3.19e-9;
265 I_off_n[0][100] = 3.76e-9;
192 if (tech == 180) {
193 //180nm technology-node. Corresponds to year 1999 in ITRS
194 //Only HP transistor was of interest that 180nm since leakage power was not a big issue. Performance was the king
195 //MASTAR does not contain data for 0.18um process. The following parameters are projected based on ITRS 2000 update and IBM 0.18 Cu Spice input
196 bool Aggre_proj = false;
197 SENSE_AMP_D = .28e-9; // s
198 SENSE_AMP_P = 14.7e-15; // J
199 vdd[0] = 1.5;
200 Lphy[0] = 0.12;//Lphy is the physical gate-length. micron
201 Lelec[0] = 0.10;//Lelec is the electrical gate-length. micron
202 t_ox[0] = 1.2e-3 * (Aggre_proj ? 1.9 / 1.2 : 2);//micron
203 v_th[0] = Aggre_proj ? 0.36 : 0.4407;//V
204 c_ox[0] = 1.79e-14 * (Aggre_proj ? 1.9 / 1.2 : 2);//F/micron2
205 mobility_eff[0] = 302.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
206 Vdsat[0] = 0.128 * 2; //V
207 c_g_ideal[0] = (Aggre_proj ? 1.9 / 1.2 : 2) * 6.64e-16;//F/micron
208 c_fringe[0] = (Aggre_proj ? 1.9 / 1.2 : 2) * 0.08e-15;//F/micron
209 c_junc[0] = (Aggre_proj ? 1.9 / 1.2 : 2) * 1e-15;//F/micron2
210 I_on_n[0] = 750e-6;//A/micron
211 I_on_p[0] = 350e-6;//A/micron
212 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline
213 nmos_effective_resistance_multiplier = 1.54;
214 n_to_p_eff_curr_drv_ratio[0] = 2.45;
215 gmp_to_gmn_multiplier[0] = 1.22;
216 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
217 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
218 long_channel_leakage_reduction[0] = 1;
219 I_off_n[0][0] = 7e-10;//A/micron
220 I_off_n[0][10] = 8.26e-10;
221 I_off_n[0][20] = 9.74e-10;
222 I_off_n[0][30] = 1.15e-9;
223 I_off_n[0][40] = 1.35e-9;
224 I_off_n[0][50] = 1.60e-9;
225 I_off_n[0][60] = 1.88e-9;
226 I_off_n[0][70] = 2.29e-9;
227 I_off_n[0][80] = 2.70e-9;
228 I_off_n[0][90] = 3.19e-9;
229 I_off_n[0][100] = 3.76e-9;
266
230
267 I_g_on_n[0][0] = 1.65e-10;//A/micron
268 I_g_on_n[0][10] = 1.65e-10;
269 I_g_on_n[0][20] = 1.65e-10;
270 I_g_on_n[0][30] = 1.65e-10;
271 I_g_on_n[0][40] = 1.65e-10;
272 I_g_on_n[0][50] = 1.65e-10;
273 I_g_on_n[0][60] = 1.65e-10;
274 I_g_on_n[0][70] = 1.65e-10;
275 I_g_on_n[0][80] = 1.65e-10;
276 I_g_on_n[0][90] = 1.65e-10;
277 I_g_on_n[0][100] = 1.65e-10;
231 I_g_on_n[0][0] = 1.65e-10;//A/micron
232 I_g_on_n[0][10] = 1.65e-10;
233 I_g_on_n[0][20] = 1.65e-10;
234 I_g_on_n[0][30] = 1.65e-10;
235 I_g_on_n[0][40] = 1.65e-10;
236 I_g_on_n[0][50] = 1.65e-10;
237 I_g_on_n[0][60] = 1.65e-10;
238 I_g_on_n[0][70] = 1.65e-10;
239 I_g_on_n[0][80] = 1.65e-10;
240 I_g_on_n[0][90] = 1.65e-10;
241 I_g_on_n[0][100] = 1.65e-10;
278
242
279 //SRAM cell properties
280 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
281 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
282 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
283 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
284 curr_asp_ratio_cell_sram = 1.46;
285 //CAM cell properties //TODO: data need to be revisited
286 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
287 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
288 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
289 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360
290 curr_asp_ratio_cell_cam = 2.92;//2.5
291 //Empirical undifferetiated core/FU coefficient
292 curr_logic_scaling_co_eff = 1.5;//linear scaling from 90nm
293 curr_core_tx_density = 1.25*0.7*0.7*0.4;
294 curr_sckt_co_eff = 1.11;
295 curr_chip_layout_overhead = 1.0;//die measurement results based on Niagara 1 and 2
296 curr_macro_layout_overhead = 1.0;//EDA placement and routing tool rule of thumb
243 //SRAM cell properties
244 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
245 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
246 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
247 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
248 curr_asp_ratio_cell_sram = 1.46;
249 //CAM cell properties //TODO: data need to be revisited
250 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
251 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
252 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
253 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360
254 curr_asp_ratio_cell_cam = 2.92;//2.5
255 //Empirical undifferetiated core/FU coefficient
256 curr_logic_scaling_co_eff = 1.5;//linear scaling from 90nm
257 curr_core_tx_density = 1.25 * 0.7 * 0.7 * 0.4;
258 curr_sckt_co_eff = 1.11;
259 curr_chip_layout_overhead = 1.0;//die measurement results based on Niagara 1 and 2
260 curr_macro_layout_overhead = 1.0;//EDA placement and routing tool rule of thumb
297
261
298 }
262 }
299
263
300 if (tech == 90)
301 {
302 SENSE_AMP_D = .28e-9; // s
303 SENSE_AMP_P = 14.7e-15; // J
304 //90nm technology-node. Corresponds to year 2004 in ITRS
305 //ITRS HP device type
306 vdd[0] = 1.2;
307 Lphy[0] = 0.037;//Lphy is the physical gate-length. micron
308 Lelec[0] = 0.0266;//Lelec is the electrical gate-length. micron
309 t_ox[0] = 1.2e-3;//micron
310 v_th[0] = 0.23707;//V
311 c_ox[0] = 1.79e-14;//F/micron2
312 mobility_eff[0] = 342.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
313 Vdsat[0] = 0.128; //V
314 c_g_ideal[0] = 6.64e-16;//F/micron
315 c_fringe[0] = 0.08e-15;//F/micron
316 c_junc[0] = 1e-15;//F/micron2
317 I_on_n[0] = 1076.9e-6;//A/micron
318 I_on_p[0] = 712.6e-6;//A/micron
319 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline
320 nmos_effective_resistance_multiplier = 1.54;
321 n_to_p_eff_curr_drv_ratio[0] = 2.45;
322 gmp_to_gmn_multiplier[0] = 1.22;
323 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
324 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
325 long_channel_leakage_reduction[0] = 1;
326 I_off_n[0][0] = 3.24e-8;//A/micron
327 I_off_n[0][10] = 4.01e-8;
328 I_off_n[0][20] = 4.90e-8;
329 I_off_n[0][30] = 5.92e-8;
330 I_off_n[0][40] = 7.08e-8;
331 I_off_n[0][50] = 8.38e-8;
332 I_off_n[0][60] = 9.82e-8;
333 I_off_n[0][70] = 1.14e-7;
334 I_off_n[0][80] = 1.29e-7;
335 I_off_n[0][90] = 1.43e-7;
336 I_off_n[0][100] = 1.54e-7;
264 if (tech == 90) {
265 SENSE_AMP_D = .28e-9; // s
266 SENSE_AMP_P = 14.7e-15; // J
267 //90nm technology-node. Corresponds to year 2004 in ITRS
268 //ITRS HP device type
269 vdd[0] = 1.2;
270 Lphy[0] = 0.037;//Lphy is the physical gate-length. micron
271 Lelec[0] = 0.0266;//Lelec is the electrical gate-length. micron
272 t_ox[0] = 1.2e-3;//micron
273 v_th[0] = 0.23707;//V
274 c_ox[0] = 1.79e-14;//F/micron2
275 mobility_eff[0] = 342.16 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
276 Vdsat[0] = 0.128; //V
277 c_g_ideal[0] = 6.64e-16;//F/micron
278 c_fringe[0] = 0.08e-15;//F/micron
279 c_junc[0] = 1e-15;//F/micron2
280 I_on_n[0] = 1076.9e-6;//A/micron
281 I_on_p[0] = 712.6e-6;//A/micron
282 //Note that nmos_effective_resistance_multiplier, n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier values are calculated offline
283 nmos_effective_resistance_multiplier = 1.54;
284 n_to_p_eff_curr_drv_ratio[0] = 2.45;
285 gmp_to_gmn_multiplier[0] = 1.22;
286 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
287 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
288 long_channel_leakage_reduction[0] = 1;
289 I_off_n[0][0] = 3.24e-8;//A/micron
290 I_off_n[0][10] = 4.01e-8;
291 I_off_n[0][20] = 4.90e-8;
292 I_off_n[0][30] = 5.92e-8;
293 I_off_n[0][40] = 7.08e-8;
294 I_off_n[0][50] = 8.38e-8;
295 I_off_n[0][60] = 9.82e-8;
296 I_off_n[0][70] = 1.14e-7;
297 I_off_n[0][80] = 1.29e-7;
298 I_off_n[0][90] = 1.43e-7;
299 I_off_n[0][100] = 1.54e-7;
337
300
338 I_g_on_n[0][0] = 1.65e-8;//A/micron
339 I_g_on_n[0][10] = 1.65e-8;
340 I_g_on_n[0][20] = 1.65e-8;
341 I_g_on_n[0][30] = 1.65e-8;
342 I_g_on_n[0][40] = 1.65e-8;
343 I_g_on_n[0][50] = 1.65e-8;
344 I_g_on_n[0][60] = 1.65e-8;
345 I_g_on_n[0][70] = 1.65e-8;
346 I_g_on_n[0][80] = 1.65e-8;
347 I_g_on_n[0][90] = 1.65e-8;
348 I_g_on_n[0][100] = 1.65e-8;
301 I_g_on_n[0][0] = 1.65e-8;//A/micron
302 I_g_on_n[0][10] = 1.65e-8;
303 I_g_on_n[0][20] = 1.65e-8;
304 I_g_on_n[0][30] = 1.65e-8;
305 I_g_on_n[0][40] = 1.65e-8;
306 I_g_on_n[0][50] = 1.65e-8;
307 I_g_on_n[0][60] = 1.65e-8;
308 I_g_on_n[0][70] = 1.65e-8;
309 I_g_on_n[0][80] = 1.65e-8;
310 I_g_on_n[0][90] = 1.65e-8;
311 I_g_on_n[0][100] = 1.65e-8;
349
312
350 //ITRS LSTP device type
351 vdd[1] = 1.3;
352 Lphy[1] = 0.075;
353 Lelec[1] = 0.0486;
354 t_ox[1] = 2.2e-3;
355 v_th[1] = 0.48203;
356 c_ox[1] = 1.22e-14;
357 mobility_eff[1] = 356.76 * (1e-2 * 1e6 * 1e-2 * 1e6);
358 Vdsat[1] = 0.373;
359 c_g_ideal[1] = 9.15e-16;
360 c_fringe[1] = 0.08e-15;
361 c_junc[1] = 1e-15;
362 I_on_n[1] = 503.6e-6;
363 I_on_p[1] = 235.1e-6;
364 nmos_effective_resistance_multiplier = 1.92;
365 n_to_p_eff_curr_drv_ratio[1] = 2.44;
366 gmp_to_gmn_multiplier[1] =0.88;
367 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
368 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
369 long_channel_leakage_reduction[1] = 1;
370 I_off_n[1][0] = 2.81e-12;
371 I_off_n[1][10] = 4.76e-12;
372 I_off_n[1][20] = 7.82e-12;
373 I_off_n[1][30] = 1.25e-11;
374 I_off_n[1][40] = 1.94e-11;
375 I_off_n[1][50] = 2.94e-11;
376 I_off_n[1][60] = 4.36e-11;
377 I_off_n[1][70] = 6.32e-11;
378 I_off_n[1][80] = 8.95e-11;
379 I_off_n[1][90] = 1.25e-10;
380 I_off_n[1][100] = 1.7e-10;
313 //ITRS LSTP device type
314 vdd[1] = 1.3;
315 Lphy[1] = 0.075;
316 Lelec[1] = 0.0486;
317 t_ox[1] = 2.2e-3;
318 v_th[1] = 0.48203;
319 c_ox[1] = 1.22e-14;
320 mobility_eff[1] = 356.76 * (1e-2 * 1e6 * 1e-2 * 1e6);
321 Vdsat[1] = 0.373;
322 c_g_ideal[1] = 9.15e-16;
323 c_fringe[1] = 0.08e-15;
324 c_junc[1] = 1e-15;
325 I_on_n[1] = 503.6e-6;
326 I_on_p[1] = 235.1e-6;
327 nmos_effective_resistance_multiplier = 1.92;
328 n_to_p_eff_curr_drv_ratio[1] = 2.44;
329 gmp_to_gmn_multiplier[1] = 0.88;
330 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
331 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
332 long_channel_leakage_reduction[1] = 1;
333 I_off_n[1][0] = 2.81e-12;
334 I_off_n[1][10] = 4.76e-12;
335 I_off_n[1][20] = 7.82e-12;
336 I_off_n[1][30] = 1.25e-11;
337 I_off_n[1][40] = 1.94e-11;
338 I_off_n[1][50] = 2.94e-11;
339 I_off_n[1][60] = 4.36e-11;
340 I_off_n[1][70] = 6.32e-11;
341 I_off_n[1][80] = 8.95e-11;
342 I_off_n[1][90] = 1.25e-10;
343 I_off_n[1][100] = 1.7e-10;
381
344
382 I_g_on_n[1][0] = 3.87e-11;//A/micron
383 I_g_on_n[1][10] = 3.87e-11;
384 I_g_on_n[1][20] = 3.87e-11;
385 I_g_on_n[1][30] = 3.87e-11;
386 I_g_on_n[1][40] = 3.87e-11;
387 I_g_on_n[1][50] = 3.87e-11;
388 I_g_on_n[1][60] = 3.87e-11;
389 I_g_on_n[1][70] = 3.87e-11;
390 I_g_on_n[1][80] = 3.87e-11;
391 I_g_on_n[1][90] = 3.87e-11;
392 I_g_on_n[1][100] = 3.87e-11;
345 I_g_on_n[1][0] = 3.87e-11;//A/micron
346 I_g_on_n[1][10] = 3.87e-11;
347 I_g_on_n[1][20] = 3.87e-11;
348 I_g_on_n[1][30] = 3.87e-11;
349 I_g_on_n[1][40] = 3.87e-11;
350 I_g_on_n[1][50] = 3.87e-11;
351 I_g_on_n[1][60] = 3.87e-11;
352 I_g_on_n[1][70] = 3.87e-11;
353 I_g_on_n[1][80] = 3.87e-11;
354 I_g_on_n[1][90] = 3.87e-11;
355 I_g_on_n[1][100] = 3.87e-11;
393
356
394 //ITRS LOP device type
395 vdd[2] = 0.9;
396 Lphy[2] = 0.053;
397 Lelec[2] = 0.0354;
398 t_ox[2] = 1.5e-3;
399 v_th[2] = 0.30764;
400 c_ox[2] = 1.59e-14;
401 mobility_eff[2] = 460.39 * (1e-2 * 1e6 * 1e-2 * 1e6);
402 Vdsat[2] = 0.113;
403 c_g_ideal[2] = 8.45e-16;
404 c_fringe[2] = 0.08e-15;
405 c_junc[2] = 1e-15;
406 I_on_n[2] = 386.6e-6;
407 I_on_p[2] = 209.7e-6;
408 nmos_effective_resistance_multiplier = 1.77;
409 n_to_p_eff_curr_drv_ratio[2] = 2.54;
410 gmp_to_gmn_multiplier[2] = 0.98;
411 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
412 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
413 long_channel_leakage_reduction[2] = 1;
414 I_off_n[2][0] = 2.14e-9;
415 I_off_n[2][10] = 2.9e-9;
416 I_off_n[2][20] = 3.87e-9;
417 I_off_n[2][30] = 5.07e-9;
418 I_off_n[2][40] = 6.54e-9;
419 I_off_n[2][50] = 8.27e-8;
420 I_off_n[2][60] = 1.02e-7;
421 I_off_n[2][70] = 1.20e-7;
422 I_off_n[2][80] = 1.36e-8;
423 I_off_n[2][90] = 1.52e-8;
424 I_off_n[2][100] = 1.73e-8;
357 //ITRS LOP device type
358 vdd[2] = 0.9;
359 Lphy[2] = 0.053;
360 Lelec[2] = 0.0354;
361 t_ox[2] = 1.5e-3;
362 v_th[2] = 0.30764;
363 c_ox[2] = 1.59e-14;
364 mobility_eff[2] = 460.39 * (1e-2 * 1e6 * 1e-2 * 1e6);
365 Vdsat[2] = 0.113;
366 c_g_ideal[2] = 8.45e-16;
367 c_fringe[2] = 0.08e-15;
368 c_junc[2] = 1e-15;
369 I_on_n[2] = 386.6e-6;
370 I_on_p[2] = 209.7e-6;
371 nmos_effective_resistance_multiplier = 1.77;
372 n_to_p_eff_curr_drv_ratio[2] = 2.54;
373 gmp_to_gmn_multiplier[2] = 0.98;
374 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
375 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
376 long_channel_leakage_reduction[2] = 1;
377 I_off_n[2][0] = 2.14e-9;
378 I_off_n[2][10] = 2.9e-9;
379 I_off_n[2][20] = 3.87e-9;
380 I_off_n[2][30] = 5.07e-9;
381 I_off_n[2][40] = 6.54e-9;
382 I_off_n[2][50] = 8.27e-8;
383 I_off_n[2][60] = 1.02e-7;
384 I_off_n[2][70] = 1.20e-7;
385 I_off_n[2][80] = 1.36e-8;
386 I_off_n[2][90] = 1.52e-8;
387 I_off_n[2][100] = 1.73e-8;
425
388
426 I_g_on_n[2][0] = 4.31e-8;//A/micron
427 I_g_on_n[2][10] = 4.31e-8;
428 I_g_on_n[2][20] = 4.31e-8;
429 I_g_on_n[2][30] = 4.31e-8;
430 I_g_on_n[2][40] = 4.31e-8;
431 I_g_on_n[2][50] = 4.31e-8;
432 I_g_on_n[2][60] = 4.31e-8;
433 I_g_on_n[2][70] = 4.31e-8;
434 I_g_on_n[2][80] = 4.31e-8;
435 I_g_on_n[2][90] = 4.31e-8;
436 I_g_on_n[2][100] = 4.31e-8;
389 I_g_on_n[2][0] = 4.31e-8;//A/micron
390 I_g_on_n[2][10] = 4.31e-8;
391 I_g_on_n[2][20] = 4.31e-8;
392 I_g_on_n[2][30] = 4.31e-8;
393 I_g_on_n[2][40] = 4.31e-8;
394 I_g_on_n[2][50] = 4.31e-8;
395 I_g_on_n[2][60] = 4.31e-8;
396 I_g_on_n[2][70] = 4.31e-8;
397 I_g_on_n[2][80] = 4.31e-8;
398 I_g_on_n[2][90] = 4.31e-8;
399 I_g_on_n[2][100] = 4.31e-8;
437
400
438 if (ram_cell_tech_type == lp_dram)
439 {
440 //LP-DRAM cell access transistor technology parameters
441 curr_vdd_dram_cell = 1.2;
442 Lphy[3] = 0.12;
443 Lelec[3] = 0.0756;
444 curr_v_th_dram_access_transistor = 0.4545;
445 width_dram_access_transistor = 0.14;
446 curr_I_on_dram_cell = 45e-6;
447 curr_I_off_dram_cell_worst_case_length_temp = 21.1e-12;
448 curr_Wmemcella_dram = width_dram_access_transistor;
449 curr_Wmemcellpmos_dram = 0;
450 curr_Wmemcellnmos_dram = 0;
451 curr_area_cell_dram = 0.168;
452 curr_asp_ratio_cell_dram = 1.46;
453 curr_c_dram_cell = 20e-15;
401 if (ram_cell_tech_type == lp_dram) {
402 //LP-DRAM cell access transistor technology parameters
403 curr_vdd_dram_cell = 1.2;
404 Lphy[3] = 0.12;
405 Lelec[3] = 0.0756;
406 curr_v_th_dram_access_transistor = 0.4545;
407 width_dram_access_transistor = 0.14;
408 curr_I_on_dram_cell = 45e-6;
409 curr_I_off_dram_cell_worst_case_length_temp = 21.1e-12;
410 curr_Wmemcella_dram = width_dram_access_transistor;
411 curr_Wmemcellpmos_dram = 0;
412 curr_Wmemcellnmos_dram = 0;
413 curr_area_cell_dram = 0.168;
414 curr_asp_ratio_cell_dram = 1.46;
415 curr_c_dram_cell = 20e-15;
454
416
455 //LP-DRAM wordline transistor parameters
456 curr_vpp = 1.6;
457 t_ox[3] = 2.2e-3;
458 v_th[3] = 0.4545;
459 c_ox[3] = 1.22e-14;
460 mobility_eff[3] = 323.95 * (1e-2 * 1e6 * 1e-2 * 1e6);
461 Vdsat[3] = 0.3;
462 c_g_ideal[3] = 1.47e-15;
463 c_fringe[3] = 0.08e-15;
464 c_junc[3] = 1e-15;
465 I_on_n[3] = 321.6e-6;
466 I_on_p[3] = 203.3e-6;
467 nmos_effective_resistance_multiplier = 1.65;
468 n_to_p_eff_curr_drv_ratio[3] = 1.95;
469 gmp_to_gmn_multiplier[3] = 0.90;
470 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
471 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
472 long_channel_leakage_reduction[3] = 1;
473 I_off_n[3][0] = 1.42e-11;
474 I_off_n[3][10] = 2.25e-11;
475 I_off_n[3][20] = 3.46e-11;
476 I_off_n[3][30] = 5.18e-11;
477 I_off_n[3][40] = 7.58e-11;
478 I_off_n[3][50] = 1.08e-10;
479 I_off_n[3][60] = 1.51e-10;
480 I_off_n[3][70] = 2.02e-10;
481 I_off_n[3][80] = 2.57e-10;
482 I_off_n[3][90] = 3.14e-10;
483 I_off_n[3][100] = 3.85e-10;
484 }
485 else if (ram_cell_tech_type == comm_dram)
486 {
487 //COMM-DRAM cell access transistor technology parameters
488 curr_vdd_dram_cell = 1.6;
489 Lphy[3] = 0.09;
490 Lelec[3] = 0.0576;
491 curr_v_th_dram_access_transistor = 1;
492 width_dram_access_transistor = 0.09;
493 curr_I_on_dram_cell = 20e-6;
494 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
495 curr_Wmemcella_dram = width_dram_access_transistor;
496 curr_Wmemcellpmos_dram = 0;
497 curr_Wmemcellnmos_dram = 0;
498 curr_area_cell_dram = 6*0.09*0.09;
499 curr_asp_ratio_cell_dram = 1.5;
500 curr_c_dram_cell = 30e-15;
417 //LP-DRAM wordline transistor parameters
418 curr_vpp = 1.6;
419 t_ox[3] = 2.2e-3;
420 v_th[3] = 0.4545;
421 c_ox[3] = 1.22e-14;
422 mobility_eff[3] = 323.95 * (1e-2 * 1e6 * 1e-2 * 1e6);
423 Vdsat[3] = 0.3;
424 c_g_ideal[3] = 1.47e-15;
425 c_fringe[3] = 0.08e-15;
426 c_junc[3] = 1e-15;
427 I_on_n[3] = 321.6e-6;
428 I_on_p[3] = 203.3e-6;
429 nmos_effective_resistance_multiplier = 1.65;
430 n_to_p_eff_curr_drv_ratio[3] = 1.95;
431 gmp_to_gmn_multiplier[3] = 0.90;
432 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
433 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
434 long_channel_leakage_reduction[3] = 1;
435 I_off_n[3][0] = 1.42e-11;
436 I_off_n[3][10] = 2.25e-11;
437 I_off_n[3][20] = 3.46e-11;
438 I_off_n[3][30] = 5.18e-11;
439 I_off_n[3][40] = 7.58e-11;
440 I_off_n[3][50] = 1.08e-10;
441 I_off_n[3][60] = 1.51e-10;
442 I_off_n[3][70] = 2.02e-10;
443 I_off_n[3][80] = 2.57e-10;
444 I_off_n[3][90] = 3.14e-10;
445 I_off_n[3][100] = 3.85e-10;
446 } else if (ram_cell_tech_type == comm_dram) {
447 //COMM-DRAM cell access transistor technology parameters
448 curr_vdd_dram_cell = 1.6;
449 Lphy[3] = 0.09;
450 Lelec[3] = 0.0576;
451 curr_v_th_dram_access_transistor = 1;
452 width_dram_access_transistor = 0.09;
453 curr_I_on_dram_cell = 20e-6;
454 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
455 curr_Wmemcella_dram = width_dram_access_transistor;
456 curr_Wmemcellpmos_dram = 0;
457 curr_Wmemcellnmos_dram = 0;
458 curr_area_cell_dram = 6 * 0.09 * 0.09;
459 curr_asp_ratio_cell_dram = 1.5;
460 curr_c_dram_cell = 30e-15;
501
461
502 //COMM-DRAM wordline transistor parameters
503 curr_vpp = 3.7;
504 t_ox[3] = 5.5e-3;
505 v_th[3] = 1.0;
506 c_ox[3] = 5.65e-15;
507 mobility_eff[3] = 302.2 * (1e-2 * 1e6 * 1e-2 * 1e6);
508 Vdsat[3] = 0.32;
509 c_g_ideal[3] = 5.08e-16;
510 c_fringe[3] = 0.08e-15;
511 c_junc[3] = 1e-15;
512 I_on_n[3] = 1094.3e-6;
513 I_on_p[3] = I_on_n[3] / 2;
514 nmos_effective_resistance_multiplier = 1.62;
515 n_to_p_eff_curr_drv_ratio[3] = 2.05;
516 gmp_to_gmn_multiplier[3] = 0.90;
517 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
518 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
519 long_channel_leakage_reduction[3] = 1;
520 I_off_n[3][0] = 5.80e-15;
521 I_off_n[3][10] = 1.21e-14;
522 I_off_n[3][20] = 2.42e-14;
523 I_off_n[3][30] = 4.65e-14;
524 I_off_n[3][40] = 8.60e-14;
525 I_off_n[3][50] = 1.54e-13;
526 I_off_n[3][60] = 2.66e-13;
527 I_off_n[3][70] = 4.45e-13;
528 I_off_n[3][80] = 7.17e-13;
529 I_off_n[3][90] = 1.11e-12;
530 I_off_n[3][100] = 1.67e-12;
531 }
462 //COMM-DRAM wordline transistor parameters
463 curr_vpp = 3.7;
464 t_ox[3] = 5.5e-3;
465 v_th[3] = 1.0;
466 c_ox[3] = 5.65e-15;
467 mobility_eff[3] = 302.2 * (1e-2 * 1e6 * 1e-2 * 1e6);
468 Vdsat[3] = 0.32;
469 c_g_ideal[3] = 5.08e-16;
470 c_fringe[3] = 0.08e-15;
471 c_junc[3] = 1e-15;
472 I_on_n[3] = 1094.3e-6;
473 I_on_p[3] = I_on_n[3] / 2;
474 nmos_effective_resistance_multiplier = 1.62;
475 n_to_p_eff_curr_drv_ratio[3] = 2.05;
476 gmp_to_gmn_multiplier[3] = 0.90;
477 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
478 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
479 long_channel_leakage_reduction[3] = 1;
480 I_off_n[3][0] = 5.80e-15;
481 I_off_n[3][10] = 1.21e-14;
482 I_off_n[3][20] = 2.42e-14;
483 I_off_n[3][30] = 4.65e-14;
484 I_off_n[3][40] = 8.60e-14;
485 I_off_n[3][50] = 1.54e-13;
486 I_off_n[3][60] = 2.66e-13;
487 I_off_n[3][70] = 4.45e-13;
488 I_off_n[3][80] = 7.17e-13;
489 I_off_n[3][90] = 1.11e-12;
490 I_off_n[3][100] = 1.67e-12;
491 }
532
492
533 //SRAM cell properties
534 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
535 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
536 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
537 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
538 curr_asp_ratio_cell_sram = 1.46;
539 //CAM cell properties //TODO: data need to be revisited
540 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
541 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
542 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
543 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360
544 curr_asp_ratio_cell_cam = 2.92;//2.5
545 //Empirical undifferetiated core/FU coefficient
546 curr_logic_scaling_co_eff = 1;
547 curr_core_tx_density = 1.25*0.7*0.7;
548 curr_sckt_co_eff = 1.1539;
549 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
550 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
493 //SRAM cell properties
494 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
495 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
496 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
497 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
498 curr_asp_ratio_cell_sram = 1.46;
499 //CAM cell properties //TODO: data need to be revisited
500 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
501 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
502 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
503 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;//360
504 curr_asp_ratio_cell_cam = 2.92;//2.5
505 //Empirical undifferetiated core/FU coefficient
506 curr_logic_scaling_co_eff = 1;
507 curr_core_tx_density = 1.25 * 0.7 * 0.7;
508 curr_sckt_co_eff = 1.1539;
509 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
510 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
551
552
511
512
553 }
513 }
554
514
555 if (tech == 65)
556 { //65nm technology-node. Corresponds to year 2007 in ITRS
557 //ITRS HP device type
558 SENSE_AMP_D = .2e-9; // s
559 SENSE_AMP_P = 5.7e-15; // J
560 vdd[0] = 1.1;
561 Lphy[0] = 0.025;
562 Lelec[0] = 0.019;
563 t_ox[0] = 1.1e-3;
564 v_th[0] = .19491;
565 c_ox[0] = 1.88e-14;
566 mobility_eff[0] = 436.24 * (1e-2 * 1e6 * 1e-2 * 1e6);
567 Vdsat[0] = 7.71e-2;
568 c_g_ideal[0] = 4.69e-16;
569 c_fringe[0] = 0.077e-15;
570 c_junc[0] = 1e-15;
571 I_on_n[0] = 1197.2e-6;
572 I_on_p[0] = 870.8e-6;
573 nmos_effective_resistance_multiplier = 1.50;
574 n_to_p_eff_curr_drv_ratio[0] = 2.41;
575 gmp_to_gmn_multiplier[0] = 1.38;
576 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];
577 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];
578 long_channel_leakage_reduction[0] = 1/3.74;
579 //Using MASTAR, @380K, increase Lgate until Ion reduces to 90% or Lgate increase by 10%, whichever comes first
580 //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74.
581 I_off_n[0][0] = 1.96e-7;
582 I_off_n[0][10] = 2.29e-7;
583 I_off_n[0][20] = 2.66e-7;
584 I_off_n[0][30] = 3.05e-7;
585 I_off_n[0][40] = 3.49e-7;
586 I_off_n[0][50] = 3.95e-7;
587 I_off_n[0][60] = 4.45e-7;
588 I_off_n[0][70] = 4.97e-7;
589 I_off_n[0][80] = 5.48e-7;
590 I_off_n[0][90] = 5.94e-7;
591 I_off_n[0][100] = 6.3e-7;
592 I_g_on_n[0][0] = 4.09e-8;//A/micron
593 I_g_on_n[0][10] = 4.09e-8;
594 I_g_on_n[0][20] = 4.09e-8;
595 I_g_on_n[0][30] = 4.09e-8;
596 I_g_on_n[0][40] = 4.09e-8;
597 I_g_on_n[0][50] = 4.09e-8;
598 I_g_on_n[0][60] = 4.09e-8;
599 I_g_on_n[0][70] = 4.09e-8;
600 I_g_on_n[0][80] = 4.09e-8;
601 I_g_on_n[0][90] = 4.09e-8;
602 I_g_on_n[0][100] = 4.09e-8;
515 if (tech == 65) {
516 //65nm technology-node. Corresponds to year 2007 in ITRS
517 //ITRS HP device type
518 SENSE_AMP_D = .2e-9; // s
519 SENSE_AMP_P = 5.7e-15; // J
520 vdd[0] = 1.1;
521 Lphy[0] = 0.025;
522 Lelec[0] = 0.019;
523 t_ox[0] = 1.1e-3;
524 v_th[0] = .19491;
525 c_ox[0] = 1.88e-14;
526 mobility_eff[0] = 436.24 * (1e-2 * 1e6 * 1e-2 * 1e6);
527 Vdsat[0] = 7.71e-2;
528 c_g_ideal[0] = 4.69e-16;
529 c_fringe[0] = 0.077e-15;
530 c_junc[0] = 1e-15;
531 I_on_n[0] = 1197.2e-6;
532 I_on_p[0] = 870.8e-6;
533 nmos_effective_resistance_multiplier = 1.50;
534 n_to_p_eff_curr_drv_ratio[0] = 2.41;
535 gmp_to_gmn_multiplier[0] = 1.38;
536 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];
537 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];
538 long_channel_leakage_reduction[0] = 1 / 3.74;
539 //Using MASTAR, @380K, increase Lgate until Ion reduces to 90% or Lgate increase by 10%, whichever comes first
540 //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74.
541 I_off_n[0][0] = 1.96e-7;
542 I_off_n[0][10] = 2.29e-7;
543 I_off_n[0][20] = 2.66e-7;
544 I_off_n[0][30] = 3.05e-7;
545 I_off_n[0][40] = 3.49e-7;
546 I_off_n[0][50] = 3.95e-7;
547 I_off_n[0][60] = 4.45e-7;
548 I_off_n[0][70] = 4.97e-7;
549 I_off_n[0][80] = 5.48e-7;
550 I_off_n[0][90] = 5.94e-7;
551 I_off_n[0][100] = 6.3e-7;
552 I_g_on_n[0][0] = 4.09e-8;//A/micron
553 I_g_on_n[0][10] = 4.09e-8;
554 I_g_on_n[0][20] = 4.09e-8;
555 I_g_on_n[0][30] = 4.09e-8;
556 I_g_on_n[0][40] = 4.09e-8;
557 I_g_on_n[0][50] = 4.09e-8;
558 I_g_on_n[0][60] = 4.09e-8;
559 I_g_on_n[0][70] = 4.09e-8;
560 I_g_on_n[0][80] = 4.09e-8;
561 I_g_on_n[0][90] = 4.09e-8;
562 I_g_on_n[0][100] = 4.09e-8;
603
563
604 //ITRS LSTP device type
605 vdd[1] = 1.2;
606 Lphy[1] = 0.045;
607 Lelec[1] = 0.0298;
608 t_ox[1] = 1.9e-3;
609 v_th[1] = 0.52354;
610 c_ox[1] = 1.36e-14;
611 mobility_eff[1] = 341.21 * (1e-2 * 1e6 * 1e-2 * 1e6);
612 Vdsat[1] = 0.128;
613 c_g_ideal[1] = 6.14e-16;
614 c_fringe[1] = 0.08e-15;
615 c_junc[1] = 1e-15;
616 I_on_n[1] = 519.2e-6;
617 I_on_p[1] = 266e-6;
618 nmos_effective_resistance_multiplier = 1.96;
619 n_to_p_eff_curr_drv_ratio[1] = 2.23;
620 gmp_to_gmn_multiplier[1] = 0.99;
621 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
622 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
623 long_channel_leakage_reduction[1] = 1/2.82;
624 I_off_n[1][0] = 9.12e-12;
625 I_off_n[1][10] = 1.49e-11;
626 I_off_n[1][20] = 2.36e-11;
627 I_off_n[1][30] = 3.64e-11;
628 I_off_n[1][40] = 5.48e-11;
629 I_off_n[1][50] = 8.05e-11;
630 I_off_n[1][60] = 1.15e-10;
631 I_off_n[1][70] = 1.59e-10;
632 I_off_n[1][80] = 2.1e-10;
633 I_off_n[1][90] = 2.62e-10;
634 I_off_n[1][100] = 3.21e-10;
564 //ITRS LSTP device type
565 vdd[1] = 1.2;
566 Lphy[1] = 0.045;
567 Lelec[1] = 0.0298;
568 t_ox[1] = 1.9e-3;
569 v_th[1] = 0.52354;
570 c_ox[1] = 1.36e-14;
571 mobility_eff[1] = 341.21 * (1e-2 * 1e6 * 1e-2 * 1e6);
572 Vdsat[1] = 0.128;
573 c_g_ideal[1] = 6.14e-16;
574 c_fringe[1] = 0.08e-15;
575 c_junc[1] = 1e-15;
576 I_on_n[1] = 519.2e-6;
577 I_on_p[1] = 266e-6;
578 nmos_effective_resistance_multiplier = 1.96;
579 n_to_p_eff_curr_drv_ratio[1] = 2.23;
580 gmp_to_gmn_multiplier[1] = 0.99;
581 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
582 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
583 long_channel_leakage_reduction[1] = 1 / 2.82;
584 I_off_n[1][0] = 9.12e-12;
585 I_off_n[1][10] = 1.49e-11;
586 I_off_n[1][20] = 2.36e-11;
587 I_off_n[1][30] = 3.64e-11;
588 I_off_n[1][40] = 5.48e-11;
589 I_off_n[1][50] = 8.05e-11;
590 I_off_n[1][60] = 1.15e-10;
591 I_off_n[1][70] = 1.59e-10;
592 I_off_n[1][80] = 2.1e-10;
593 I_off_n[1][90] = 2.62e-10;
594 I_off_n[1][100] = 3.21e-10;
635
595
636 I_g_on_n[1][0] = 1.09e-10;//A/micron
637 I_g_on_n[1][10] = 1.09e-10;
638 I_g_on_n[1][20] = 1.09e-10;
639 I_g_on_n[1][30] = 1.09e-10;
640 I_g_on_n[1][40] = 1.09e-10;
641 I_g_on_n[1][50] = 1.09e-10;
642 I_g_on_n[1][60] = 1.09e-10;
643 I_g_on_n[1][70] = 1.09e-10;
644 I_g_on_n[1][80] = 1.09e-10;
645 I_g_on_n[1][90] = 1.09e-10;
646 I_g_on_n[1][100] = 1.09e-10;
596 I_g_on_n[1][0] = 1.09e-10;//A/micron
597 I_g_on_n[1][10] = 1.09e-10;
598 I_g_on_n[1][20] = 1.09e-10;
599 I_g_on_n[1][30] = 1.09e-10;
600 I_g_on_n[1][40] = 1.09e-10;
601 I_g_on_n[1][50] = 1.09e-10;
602 I_g_on_n[1][60] = 1.09e-10;
603 I_g_on_n[1][70] = 1.09e-10;
604 I_g_on_n[1][80] = 1.09e-10;
605 I_g_on_n[1][90] = 1.09e-10;
606 I_g_on_n[1][100] = 1.09e-10;
647
607
648 //ITRS LOP device type
649 vdd[2] = 0.8;
650 Lphy[2] = 0.032;
651 Lelec[2] = 0.0216;
652 t_ox[2] = 1.2e-3;
653 v_th[2] = 0.28512;
654 c_ox[2] = 1.87e-14;
655 mobility_eff[2] = 495.19 * (1e-2 * 1e6 * 1e-2 * 1e6);
656 Vdsat[2] = 0.292;
657 c_g_ideal[2] = 6e-16;
658 c_fringe[2] = 0.08e-15;
659 c_junc[2] = 1e-15;
660 I_on_n[2] = 573.1e-6;
661 I_on_p[2] = 340.6e-6;
662 nmos_effective_resistance_multiplier = 1.82;
663 n_to_p_eff_curr_drv_ratio[2] = 2.28;
664 gmp_to_gmn_multiplier[2] = 1.11;
665 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
666 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
667 long_channel_leakage_reduction[2] = 1/2.05;
668 I_off_n[2][0] = 4.9e-9;
669 I_off_n[2][10] = 6.49e-9;
670 I_off_n[2][20] = 8.45e-9;
671 I_off_n[2][30] = 1.08e-8;
672 I_off_n[2][40] = 1.37e-8;
673 I_off_n[2][50] = 1.71e-8;
674 I_off_n[2][60] = 2.09e-8;
675 I_off_n[2][70] = 2.48e-8;
676 I_off_n[2][80] = 2.84e-8;
677 I_off_n[2][90] = 3.13e-8;
678 I_off_n[2][100] = 3.42e-8;
608 //ITRS LOP device type
609 vdd[2] = 0.8;
610 Lphy[2] = 0.032;
611 Lelec[2] = 0.0216;
612 t_ox[2] = 1.2e-3;
613 v_th[2] = 0.28512;
614 c_ox[2] = 1.87e-14;
615 mobility_eff[2] = 495.19 * (1e-2 * 1e6 * 1e-2 * 1e6);
616 Vdsat[2] = 0.292;
617 c_g_ideal[2] = 6e-16;
618 c_fringe[2] = 0.08e-15;
619 c_junc[2] = 1e-15;
620 I_on_n[2] = 573.1e-6;
621 I_on_p[2] = 340.6e-6;
622 nmos_effective_resistance_multiplier = 1.82;
623 n_to_p_eff_curr_drv_ratio[2] = 2.28;
624 gmp_to_gmn_multiplier[2] = 1.11;
625 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
626 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
627 long_channel_leakage_reduction[2] = 1 / 2.05;
628 I_off_n[2][0] = 4.9e-9;
629 I_off_n[2][10] = 6.49e-9;
630 I_off_n[2][20] = 8.45e-9;
631 I_off_n[2][30] = 1.08e-8;
632 I_off_n[2][40] = 1.37e-8;
633 I_off_n[2][50] = 1.71e-8;
634 I_off_n[2][60] = 2.09e-8;
635 I_off_n[2][70] = 2.48e-8;
636 I_off_n[2][80] = 2.84e-8;
637 I_off_n[2][90] = 3.13e-8;
638 I_off_n[2][100] = 3.42e-8;
679
639
680 I_g_on_n[2][0] = 9.61e-9;//A/micron
681 I_g_on_n[2][10] = 9.61e-9;
682 I_g_on_n[2][20] = 9.61e-9;
683 I_g_on_n[2][30] = 9.61e-9;
684 I_g_on_n[2][40] = 9.61e-9;
685 I_g_on_n[2][50] = 9.61e-9;
686 I_g_on_n[2][60] = 9.61e-9;
687 I_g_on_n[2][70] = 9.61e-9;
688 I_g_on_n[2][80] = 9.61e-9;
689 I_g_on_n[2][90] = 9.61e-9;
690 I_g_on_n[2][100] = 9.61e-9;
640 I_g_on_n[2][0] = 9.61e-9;//A/micron
641 I_g_on_n[2][10] = 9.61e-9;
642 I_g_on_n[2][20] = 9.61e-9;
643 I_g_on_n[2][30] = 9.61e-9;
644 I_g_on_n[2][40] = 9.61e-9;
645 I_g_on_n[2][50] = 9.61e-9;
646 I_g_on_n[2][60] = 9.61e-9;
647 I_g_on_n[2][70] = 9.61e-9;
648 I_g_on_n[2][80] = 9.61e-9;
649 I_g_on_n[2][90] = 9.61e-9;
650 I_g_on_n[2][100] = 9.61e-9;
691
651
692 if (ram_cell_tech_type == lp_dram)
693 {
694 //LP-DRAM cell access transistor technology parameters
695 curr_vdd_dram_cell = 1.2;
696 Lphy[3] = 0.12;
697 Lelec[3] = 0.0756;
698 curr_v_th_dram_access_transistor = 0.43806;
699 width_dram_access_transistor = 0.09;
700 curr_I_on_dram_cell = 36e-6;
701 curr_I_off_dram_cell_worst_case_length_temp = 19.6e-12;
702 curr_Wmemcella_dram = width_dram_access_transistor;
703 curr_Wmemcellpmos_dram = 0;
704 curr_Wmemcellnmos_dram = 0;
705 curr_area_cell_dram = 0.11;
706 curr_asp_ratio_cell_dram = 1.46;
707 curr_c_dram_cell = 20e-15;
652 if (ram_cell_tech_type == lp_dram) {
653 //LP-DRAM cell access transistor technology parameters
654 curr_vdd_dram_cell = 1.2;
655 Lphy[3] = 0.12;
656 Lelec[3] = 0.0756;
657 curr_v_th_dram_access_transistor = 0.43806;
658 width_dram_access_transistor = 0.09;
659 curr_I_on_dram_cell = 36e-6;
660 curr_I_off_dram_cell_worst_case_length_temp = 19.6e-12;
661 curr_Wmemcella_dram = width_dram_access_transistor;
662 curr_Wmemcellpmos_dram = 0;
663 curr_Wmemcellnmos_dram = 0;
664 curr_area_cell_dram = 0.11;
665 curr_asp_ratio_cell_dram = 1.46;
666 curr_c_dram_cell = 20e-15;
708
667
709 //LP-DRAM wordline transistor parameters
710 curr_vpp = 1.6;
711 t_ox[3] = 2.2e-3;
712 v_th[3] = 0.43806;
713 c_ox[3] = 1.22e-14;
714 mobility_eff[3] = 328.32 * (1e-2 * 1e6 * 1e-2 * 1e6);
715 Vdsat[3] = 0.43806;
716 c_g_ideal[3] = 1.46e-15;
717 c_fringe[3] = 0.08e-15;
718 c_junc[3] = 1e-15 ;
719 I_on_n[3] = 399.8e-6;
720 I_on_p[3] = 243.4e-6;
721 nmos_effective_resistance_multiplier = 1.65;
722 n_to_p_eff_curr_drv_ratio[3] = 2.05;
723 gmp_to_gmn_multiplier[3] = 0.90;
724 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
725 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
726 long_channel_leakage_reduction[3] = 1;
727 I_off_n[3][0] = 2.23e-11;
728 I_off_n[3][10] = 3.46e-11;
729 I_off_n[3][20] = 5.24e-11;
730 I_off_n[3][30] = 7.75e-11;
731 I_off_n[3][40] = 1.12e-10;
732 I_off_n[3][50] = 1.58e-10;
733 I_off_n[3][60] = 2.18e-10;
734 I_off_n[3][70] = 2.88e-10;
735 I_off_n[3][80] = 3.63e-10;
736 I_off_n[3][90] = 4.41e-10;
737 I_off_n[3][100] = 5.36e-10;
738 }
739 else if (ram_cell_tech_type == comm_dram)
740 {
741 //COMM-DRAM cell access transistor technology parameters
742 curr_vdd_dram_cell = 1.3;
743 Lphy[3] = 0.065;
744 Lelec[3] = 0.0426;
745 curr_v_th_dram_access_transistor = 1;
746 width_dram_access_transistor = 0.065;
747 curr_I_on_dram_cell = 20e-6;
748 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
749 curr_Wmemcella_dram = width_dram_access_transistor;
750 curr_Wmemcellpmos_dram = 0;
751 curr_Wmemcellnmos_dram = 0;
752 curr_area_cell_dram = 6*0.065*0.065;
753 curr_asp_ratio_cell_dram = 1.5;
754 curr_c_dram_cell = 30e-15;
668 //LP-DRAM wordline transistor parameters
669 curr_vpp = 1.6;
670 t_ox[3] = 2.2e-3;
671 v_th[3] = 0.43806;
672 c_ox[3] = 1.22e-14;
673 mobility_eff[3] = 328.32 * (1e-2 * 1e6 * 1e-2 * 1e6);
674 Vdsat[3] = 0.43806;
675 c_g_ideal[3] = 1.46e-15;
676 c_fringe[3] = 0.08e-15;
677 c_junc[3] = 1e-15 ;
678 I_on_n[3] = 399.8e-6;
679 I_on_p[3] = 243.4e-6;
680 nmos_effective_resistance_multiplier = 1.65;
681 n_to_p_eff_curr_drv_ratio[3] = 2.05;
682 gmp_to_gmn_multiplier[3] = 0.90;
683 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
684 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
685 long_channel_leakage_reduction[3] = 1;
686 I_off_n[3][0] = 2.23e-11;
687 I_off_n[3][10] = 3.46e-11;
688 I_off_n[3][20] = 5.24e-11;
689 I_off_n[3][30] = 7.75e-11;
690 I_off_n[3][40] = 1.12e-10;
691 I_off_n[3][50] = 1.58e-10;
692 I_off_n[3][60] = 2.18e-10;
693 I_off_n[3][70] = 2.88e-10;
694 I_off_n[3][80] = 3.63e-10;
695 I_off_n[3][90] = 4.41e-10;
696 I_off_n[3][100] = 5.36e-10;
697 } else if (ram_cell_tech_type == comm_dram) {
698 //COMM-DRAM cell access transistor technology parameters
699 curr_vdd_dram_cell = 1.3;
700 Lphy[3] = 0.065;
701 Lelec[3] = 0.0426;
702 curr_v_th_dram_access_transistor = 1;
703 width_dram_access_transistor = 0.065;
704 curr_I_on_dram_cell = 20e-6;
705 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
706 curr_Wmemcella_dram = width_dram_access_transistor;
707 curr_Wmemcellpmos_dram = 0;
708 curr_Wmemcellnmos_dram = 0;
709 curr_area_cell_dram = 6 * 0.065 * 0.065;
710 curr_asp_ratio_cell_dram = 1.5;
711 curr_c_dram_cell = 30e-15;
755
712
756 //COMM-DRAM wordline transistor parameters
757 curr_vpp = 3.3;
758 t_ox[3] = 5e-3;
759 v_th[3] = 1.0;
760 c_ox[3] = 6.16e-15;
761 mobility_eff[3] = 303.44 * (1e-2 * 1e6 * 1e-2 * 1e6);
762 Vdsat[3] = 0.385;
763 c_g_ideal[3] = 4e-16;
764 c_fringe[3] = 0.08e-15;
765 c_junc[3] = 1e-15 ;
766 I_on_n[3] = 1031e-6;
767 I_on_p[3] = I_on_n[3] / 2;
768 nmos_effective_resistance_multiplier = 1.69;
769 n_to_p_eff_curr_drv_ratio[3] = 2.39;
770 gmp_to_gmn_multiplier[3] = 0.90;
771 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
772 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
773 long_channel_leakage_reduction[3] = 1;
774 I_off_n[3][0] = 1.80e-14;
775 I_off_n[3][10] = 3.64e-14;
776 I_off_n[3][20] = 7.03e-14;
777 I_off_n[3][30] = 1.31e-13;
778 I_off_n[3][40] = 2.35e-13;
779 I_off_n[3][50] = 4.09e-13;
780 I_off_n[3][60] = 6.89e-13;
781 I_off_n[3][70] = 1.13e-12;
782 I_off_n[3][80] = 1.78e-12;
783 I_off_n[3][90] = 2.71e-12;
784 I_off_n[3][100] = 3.99e-12;
785 }
713 //COMM-DRAM wordline transistor parameters
714 curr_vpp = 3.3;
715 t_ox[3] = 5e-3;
716 v_th[3] = 1.0;
717 c_ox[3] = 6.16e-15;
718 mobility_eff[3] = 303.44 * (1e-2 * 1e6 * 1e-2 * 1e6);
719 Vdsat[3] = 0.385;
720 c_g_ideal[3] = 4e-16;
721 c_fringe[3] = 0.08e-15;
722 c_junc[3] = 1e-15 ;
723 I_on_n[3] = 1031e-6;
724 I_on_p[3] = I_on_n[3] / 2;
725 nmos_effective_resistance_multiplier = 1.69;
726 n_to_p_eff_curr_drv_ratio[3] = 2.39;
727 gmp_to_gmn_multiplier[3] = 0.90;
728 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
729 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
730 long_channel_leakage_reduction[3] = 1;
731 I_off_n[3][0] = 1.80e-14;
732 I_off_n[3][10] = 3.64e-14;
733 I_off_n[3][20] = 7.03e-14;
734 I_off_n[3][30] = 1.31e-13;
735 I_off_n[3][40] = 2.35e-13;
736 I_off_n[3][50] = 4.09e-13;
737 I_off_n[3][60] = 6.89e-13;
738 I_off_n[3][70] = 1.13e-12;
739 I_off_n[3][80] = 1.78e-12;
740 I_off_n[3][90] = 2.71e-12;
741 I_off_n[3][100] = 3.99e-12;
742 }
786
743
787 //SRAM cell properties
788 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
789 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
790 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
791 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
792 curr_asp_ratio_cell_sram = 1.46;
793 //CAM cell properties //TODO: data need to be revisited
794 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
795 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
796 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
797 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
798 curr_asp_ratio_cell_cam = 2.92;
799 //Empirical undifferetiated core/FU coefficient
800 curr_logic_scaling_co_eff = 0.7; //Rather than scale proportionally to square of feature size, only scale linearly according to IBM cell processor
801 curr_core_tx_density = 1.25*0.7;
802 curr_sckt_co_eff = 1.1359;
803 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
804 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
805 }
744 //SRAM cell properties
745 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
746 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
747 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
748 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
749 curr_asp_ratio_cell_sram = 1.46;
750 //CAM cell properties //TODO: data need to be revisited
751 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
752 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
753 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
754 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
755 curr_asp_ratio_cell_cam = 2.92;
756 //Empirical undifferetiated core/FU coefficient
757 curr_logic_scaling_co_eff = 0.7; //Rather than scale proportionally to square of feature size, only scale linearly according to IBM cell processor
758 curr_core_tx_density = 1.25 * 0.7;
759 curr_sckt_co_eff = 1.1359;
760 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
761 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
762 }
806
763
807 if (tech == 45)
808 { //45nm technology-node. Corresponds to year 2010 in ITRS
809 //ITRS HP device type
810 SENSE_AMP_D = .04e-9; // s
811 SENSE_AMP_P = 2.7e-15; // J
812 vdd[0] = 1.0;
813 Lphy[0] = 0.018;
814 Lelec[0] = 0.01345;
815 t_ox[0] = 0.65e-3;
816 v_th[0] = .18035;
817 c_ox[0] = 3.77e-14;
818 mobility_eff[0] = 266.68 * (1e-2 * 1e6 * 1e-2 * 1e6);
819 Vdsat[0] = 9.38E-2;
820 c_g_ideal[0] = 6.78e-16;
821 c_fringe[0] = 0.05e-15;
822 c_junc[0] = 1e-15;
823 I_on_n[0] = 2046.6e-6;
824 //There are certain problems with the ITRS PMOS numbers in MASTAR for 45nm. So we are using 65nm values of
825 //n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier for 45nm
826 I_on_p[0] = I_on_n[0] / 2;//This value is fixed arbitrarily but I_on_p is not being used in CACTI
827 nmos_effective_resistance_multiplier = 1.51;
828 n_to_p_eff_curr_drv_ratio[0] = 2.41;
829 gmp_to_gmn_multiplier[0] = 1.38;
830 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];
831 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];
832 long_channel_leakage_reduction[0] = 1/3.546;//Using MASTAR, @380K, increase Lgate until Ion reduces to 90%, Ioff(Lgate normal)/Ioff(Lgate long)= 3.74
833 I_off_n[0][0] = 2.8e-7;
834 I_off_n[0][10] = 3.28e-7;
835 I_off_n[0][20] = 3.81e-7;
836 I_off_n[0][30] = 4.39e-7;
837 I_off_n[0][40] = 5.02e-7;
838 I_off_n[0][50] = 5.69e-7;
839 I_off_n[0][60] = 6.42e-7;
840 I_off_n[0][70] = 7.2e-7;
841 I_off_n[0][80] = 8.03e-7;
842 I_off_n[0][90] = 8.91e-7;
843 I_off_n[0][100] = 9.84e-7;
764 if (tech == 45) {
765 //45nm technology-node. Corresponds to year 2010 in ITRS
766 //ITRS HP device type
767 SENSE_AMP_D = .04e-9; // s
768 SENSE_AMP_P = 2.7e-15; // J
769 vdd[0] = 1.0;
770 Lphy[0] = 0.018;
771 Lelec[0] = 0.01345;
772 t_ox[0] = 0.65e-3;
773 v_th[0] = .18035;
774 c_ox[0] = 3.77e-14;
775 mobility_eff[0] = 266.68 * (1e-2 * 1e6 * 1e-2 * 1e6);
776 Vdsat[0] = 9.38E-2;
777 c_g_ideal[0] = 6.78e-16;
778 c_fringe[0] = 0.05e-15;
779 c_junc[0] = 1e-15;
780 I_on_n[0] = 2046.6e-6;
781 //There are certain problems with the ITRS PMOS numbers in MASTAR for 45nm. So we are using 65nm values of
782 //n_to_p_eff_curr_drv_ratio and gmp_to_gmn_multiplier for 45nm
783 I_on_p[0] = I_on_n[0] / 2;//This value is fixed arbitrarily but I_on_p is not being used in CACTI
784 nmos_effective_resistance_multiplier = 1.51;
785 n_to_p_eff_curr_drv_ratio[0] = 2.41;
786 gmp_to_gmn_multiplier[0] = 1.38;
787 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];
788 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];
789 //Using MASTAR, @380K, increase Lgate until Ion reduces to 90%,
790 //Ioff(Lgate normal)/Ioff(Lgate long)= 3.74
791 long_channel_leakage_reduction[0] = 1 / 3.546;
792 I_off_n[0][0] = 2.8e-7;
793 I_off_n[0][10] = 3.28e-7;
794 I_off_n[0][20] = 3.81e-7;
795 I_off_n[0][30] = 4.39e-7;
796 I_off_n[0][40] = 5.02e-7;
797 I_off_n[0][50] = 5.69e-7;
798 I_off_n[0][60] = 6.42e-7;
799 I_off_n[0][70] = 7.2e-7;
800 I_off_n[0][80] = 8.03e-7;
801 I_off_n[0][90] = 8.91e-7;
802 I_off_n[0][100] = 9.84e-7;
844
803
845 I_g_on_n[0][0] = 3.59e-8;//A/micron
846 I_g_on_n[0][10] = 3.59e-8;
847 I_g_on_n[0][20] = 3.59e-8;
848 I_g_on_n[0][30] = 3.59e-8;
849 I_g_on_n[0][40] = 3.59e-8;
850 I_g_on_n[0][50] = 3.59e-8;
851 I_g_on_n[0][60] = 3.59e-8;
852 I_g_on_n[0][70] = 3.59e-8;
853 I_g_on_n[0][80] = 3.59e-8;
854 I_g_on_n[0][90] = 3.59e-8;
855 I_g_on_n[0][100] = 3.59e-8;
804 I_g_on_n[0][0] = 3.59e-8;//A/micron
805 I_g_on_n[0][10] = 3.59e-8;
806 I_g_on_n[0][20] = 3.59e-8;
807 I_g_on_n[0][30] = 3.59e-8;
808 I_g_on_n[0][40] = 3.59e-8;
809 I_g_on_n[0][50] = 3.59e-8;
810 I_g_on_n[0][60] = 3.59e-8;
811 I_g_on_n[0][70] = 3.59e-8;
812 I_g_on_n[0][80] = 3.59e-8;
813 I_g_on_n[0][90] = 3.59e-8;
814 I_g_on_n[0][100] = 3.59e-8;
856
815
857 //ITRS LSTP device type
858 vdd[1] = 1.1;
859 Lphy[1] = 0.028;
860 Lelec[1] = 0.0212;
861 t_ox[1] = 1.4e-3;
862 v_th[1] = 0.50245;
863 c_ox[1] = 2.01e-14;
864 mobility_eff[1] = 363.96 * (1e-2 * 1e6 * 1e-2 * 1e6);
865 Vdsat[1] = 9.12e-2;
866 c_g_ideal[1] = 5.18e-16;
867 c_fringe[1] = 0.08e-15;
868 c_junc[1] = 1e-15;
869 I_on_n[1] = 666.2e-6;
870 I_on_p[1] = I_on_n[1] / 2;
871 nmos_effective_resistance_multiplier = 1.99;
872 n_to_p_eff_curr_drv_ratio[1] = 2.23;
873 gmp_to_gmn_multiplier[1] = 0.99;
874 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
875 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
876 long_channel_leakage_reduction[1] = 1/2.08;
877 I_off_n[1][0] = 1.01e-11;
878 I_off_n[1][10] = 1.65e-11;
879 I_off_n[1][20] = 2.62e-11;
880 I_off_n[1][30] = 4.06e-11;
881 I_off_n[1][40] = 6.12e-11;
882 I_off_n[1][50] = 9.02e-11;
883 I_off_n[1][60] = 1.3e-10;
884 I_off_n[1][70] = 1.83e-10;
885 I_off_n[1][80] = 2.51e-10;
886 I_off_n[1][90] = 3.29e-10;
887 I_off_n[1][100] = 4.1e-10;
816 //ITRS LSTP device type
817 vdd[1] = 1.1;
818 Lphy[1] = 0.028;
819 Lelec[1] = 0.0212;
820 t_ox[1] = 1.4e-3;
821 v_th[1] = 0.50245;
822 c_ox[1] = 2.01e-14;
823 mobility_eff[1] = 363.96 * (1e-2 * 1e6 * 1e-2 * 1e6);
824 Vdsat[1] = 9.12e-2;
825 c_g_ideal[1] = 5.18e-16;
826 c_fringe[1] = 0.08e-15;
827 c_junc[1] = 1e-15;
828 I_on_n[1] = 666.2e-6;
829 I_on_p[1] = I_on_n[1] / 2;
830 nmos_effective_resistance_multiplier = 1.99;
831 n_to_p_eff_curr_drv_ratio[1] = 2.23;
832 gmp_to_gmn_multiplier[1] = 0.99;
833 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
834 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
835 long_channel_leakage_reduction[1] = 1 / 2.08;
836 I_off_n[1][0] = 1.01e-11;
837 I_off_n[1][10] = 1.65e-11;
838 I_off_n[1][20] = 2.62e-11;
839 I_off_n[1][30] = 4.06e-11;
840 I_off_n[1][40] = 6.12e-11;
841 I_off_n[1][50] = 9.02e-11;
842 I_off_n[1][60] = 1.3e-10;
843 I_off_n[1][70] = 1.83e-10;
844 I_off_n[1][80] = 2.51e-10;
845 I_off_n[1][90] = 3.29e-10;
846 I_off_n[1][100] = 4.1e-10;
888
847
889 I_g_on_n[1][0] = 9.47e-12;//A/micron
890 I_g_on_n[1][10] = 9.47e-12;
891 I_g_on_n[1][20] = 9.47e-12;
892 I_g_on_n[1][30] = 9.47e-12;
893 I_g_on_n[1][40] = 9.47e-12;
894 I_g_on_n[1][50] = 9.47e-12;
895 I_g_on_n[1][60] = 9.47e-12;
896 I_g_on_n[1][70] = 9.47e-12;
897 I_g_on_n[1][80] = 9.47e-12;
898 I_g_on_n[1][90] = 9.47e-12;
899 I_g_on_n[1][100] = 9.47e-12;
848 I_g_on_n[1][0] = 9.47e-12;//A/micron
849 I_g_on_n[1][10] = 9.47e-12;
850 I_g_on_n[1][20] = 9.47e-12;
851 I_g_on_n[1][30] = 9.47e-12;
852 I_g_on_n[1][40] = 9.47e-12;
853 I_g_on_n[1][50] = 9.47e-12;
854 I_g_on_n[1][60] = 9.47e-12;
855 I_g_on_n[1][70] = 9.47e-12;
856 I_g_on_n[1][80] = 9.47e-12;
857 I_g_on_n[1][90] = 9.47e-12;
858 I_g_on_n[1][100] = 9.47e-12;
900
859
901 //ITRS LOP device type
902 vdd[2] = 0.7;
903 Lphy[2] = 0.022;
904 Lelec[2] = 0.016;
905 t_ox[2] = 0.9e-3;
906 v_th[2] = 0.22599;
907 c_ox[2] = 2.82e-14;//F/micron2
908 mobility_eff[2] = 508.9 * (1e-2 * 1e6 * 1e-2 * 1e6);
909 Vdsat[2] = 5.71e-2;
910 c_g_ideal[2] = 6.2e-16;
911 c_fringe[2] = 0.073e-15;
912 c_junc[2] = 1e-15;
913 I_on_n[2] = 748.9e-6;
914 I_on_p[2] = I_on_n[2] / 2;
915 nmos_effective_resistance_multiplier = 1.76;
916 n_to_p_eff_curr_drv_ratio[2] = 2.28;
917 gmp_to_gmn_multiplier[2] = 1.11;
918 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
919 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
920 long_channel_leakage_reduction[2] = 1/1.92;
921 I_off_n[2][0] = 4.03e-9;
922 I_off_n[2][10] = 5.02e-9;
923 I_off_n[2][20] = 6.18e-9;
924 I_off_n[2][30] = 7.51e-9;
925 I_off_n[2][40] = 9.04e-9;
926 I_off_n[2][50] = 1.08e-8;
927 I_off_n[2][60] = 1.27e-8;
928 I_off_n[2][70] = 1.47e-8;
929 I_off_n[2][80] = 1.66e-8;
930 I_off_n[2][90] = 1.84e-8;
931 I_off_n[2][100] = 2.03e-8;
860 //ITRS LOP device type
861 vdd[2] = 0.7;
862 Lphy[2] = 0.022;
863 Lelec[2] = 0.016;
864 t_ox[2] = 0.9e-3;
865 v_th[2] = 0.22599;
866 c_ox[2] = 2.82e-14;//F/micron2
867 mobility_eff[2] = 508.9 * (1e-2 * 1e6 * 1e-2 * 1e6);
868 Vdsat[2] = 5.71e-2;
869 c_g_ideal[2] = 6.2e-16;
870 c_fringe[2] = 0.073e-15;
871 c_junc[2] = 1e-15;
872 I_on_n[2] = 748.9e-6;
873 I_on_p[2] = I_on_n[2] / 2;
874 nmos_effective_resistance_multiplier = 1.76;
875 n_to_p_eff_curr_drv_ratio[2] = 2.28;
876 gmp_to_gmn_multiplier[2] = 1.11;
877 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
878 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
879 long_channel_leakage_reduction[2] = 1 / 1.92;
880 I_off_n[2][0] = 4.03e-9;
881 I_off_n[2][10] = 5.02e-9;
882 I_off_n[2][20] = 6.18e-9;
883 I_off_n[2][30] = 7.51e-9;
884 I_off_n[2][40] = 9.04e-9;
885 I_off_n[2][50] = 1.08e-8;
886 I_off_n[2][60] = 1.27e-8;
887 I_off_n[2][70] = 1.47e-8;
888 I_off_n[2][80] = 1.66e-8;
889 I_off_n[2][90] = 1.84e-8;
890 I_off_n[2][100] = 2.03e-8;
932
891
933 I_g_on_n[2][0] = 3.24e-8;//A/micron
934 I_g_on_n[2][10] = 4.01e-8;
935 I_g_on_n[2][20] = 4.90e-8;
936 I_g_on_n[2][30] = 5.92e-8;
937 I_g_on_n[2][40] = 7.08e-8;
938 I_g_on_n[2][50] = 8.38e-8;
939 I_g_on_n[2][60] = 9.82e-8;
940 I_g_on_n[2][70] = 1.14e-7;
941 I_g_on_n[2][80] = 1.29e-7;
942 I_g_on_n[2][90] = 1.43e-7;
943 I_g_on_n[2][100] = 1.54e-7;
892 I_g_on_n[2][0] = 3.24e-8;//A/micron
893 I_g_on_n[2][10] = 4.01e-8;
894 I_g_on_n[2][20] = 4.90e-8;
895 I_g_on_n[2][30] = 5.92e-8;
896 I_g_on_n[2][40] = 7.08e-8;
897 I_g_on_n[2][50] = 8.38e-8;
898 I_g_on_n[2][60] = 9.82e-8;
899 I_g_on_n[2][70] = 1.14e-7;
900 I_g_on_n[2][80] = 1.29e-7;
901 I_g_on_n[2][90] = 1.43e-7;
902 I_g_on_n[2][100] = 1.54e-7;
944
903
945 if (ram_cell_tech_type == lp_dram)
946 {
947 //LP-DRAM cell access transistor technology parameters
948 curr_vdd_dram_cell = 1.1;
949 Lphy[3] = 0.078;
950 Lelec[3] = 0.0504;// Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
951 curr_v_th_dram_access_transistor = 0.44559;
952 width_dram_access_transistor = 0.079;
953 curr_I_on_dram_cell = 36e-6;//A
954 curr_I_off_dram_cell_worst_case_length_temp = 19.5e-12;
955 curr_Wmemcella_dram = width_dram_access_transistor;
956 curr_Wmemcellpmos_dram = 0;
957 curr_Wmemcellnmos_dram = 0;
958 curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0;
959 curr_asp_ratio_cell_dram = 1.46;
960 curr_c_dram_cell = 20e-15;
904 if (ram_cell_tech_type == lp_dram) {
905 //LP-DRAM cell access transistor technology parameters
906 curr_vdd_dram_cell = 1.1;
907 Lphy[3] = 0.078;
908 Lelec[3] = 0.0504;// Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
909 curr_v_th_dram_access_transistor = 0.44559;
910 width_dram_access_transistor = 0.079;
911 curr_I_on_dram_cell = 36e-6;//A
912 curr_I_off_dram_cell_worst_case_length_temp = 19.5e-12;
913 curr_Wmemcella_dram = width_dram_access_transistor;
914 curr_Wmemcellpmos_dram = 0;
915 curr_Wmemcellnmos_dram = 0;
916 curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0;
917 curr_asp_ratio_cell_dram = 1.46;
918 curr_c_dram_cell = 20e-15;
961
919
962 //LP-DRAM wordline transistor parameters
963 curr_vpp = 1.5;
964 t_ox[3] = 2.1e-3;
965 v_th[3] = 0.44559;
966 c_ox[3] = 1.41e-14;
967 mobility_eff[3] = 426.30 * (1e-2 * 1e6 * 1e-2 * 1e6);
968 Vdsat[3] = 0.181;
969 c_g_ideal[3] = 1.10e-15;
970 c_fringe[3] = 0.08e-15;
971 c_junc[3] = 1e-15;
972 I_on_n[3] = 456e-6;
973 I_on_p[3] = I_on_n[3] / 2;
974 nmos_effective_resistance_multiplier = 1.65;
975 n_to_p_eff_curr_drv_ratio[3] = 2.05;
976 gmp_to_gmn_multiplier[3] = 0.90;
977 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
978 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
979 long_channel_leakage_reduction[3] = 1;
980 I_off_n[3][0] = 2.54e-11;
981 I_off_n[3][10] = 3.94e-11;
982 I_off_n[3][20] = 5.95e-11;
983 I_off_n[3][30] = 8.79e-11;
984 I_off_n[3][40] = 1.27e-10;
985 I_off_n[3][50] = 1.79e-10;
986 I_off_n[3][60] = 2.47e-10;
987 I_off_n[3][70] = 3.31e-10;
988 I_off_n[3][80] = 4.26e-10;
989 I_off_n[3][90] = 5.27e-10;
990 I_off_n[3][100] = 6.46e-10;
991 }
992 else if (ram_cell_tech_type == comm_dram)
993 {
994 //COMM-DRAM cell access transistor technology parameters
995 curr_vdd_dram_cell = 1.1;
996 Lphy[3] = 0.045;
997 Lelec[3] = 0.0298;
998 curr_v_th_dram_access_transistor = 1;
999 width_dram_access_transistor = 0.045;
1000 curr_I_on_dram_cell = 20e-6;//A
1001 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
1002 curr_Wmemcella_dram = width_dram_access_transistor;
1003 curr_Wmemcellpmos_dram = 0;
1004 curr_Wmemcellnmos_dram = 0;
1005 curr_area_cell_dram = 6*0.045*0.045;
1006 curr_asp_ratio_cell_dram = 1.5;
1007 curr_c_dram_cell = 30e-15;
920 //LP-DRAM wordline transistor parameters
921 curr_vpp = 1.5;
922 t_ox[3] = 2.1e-3;
923 v_th[3] = 0.44559;
924 c_ox[3] = 1.41e-14;
925 mobility_eff[3] = 426.30 * (1e-2 * 1e6 * 1e-2 * 1e6);
926 Vdsat[3] = 0.181;
927 c_g_ideal[3] = 1.10e-15;
928 c_fringe[3] = 0.08e-15;
929 c_junc[3] = 1e-15;
930 I_on_n[3] = 456e-6;
931 I_on_p[3] = I_on_n[3] / 2;
932 nmos_effective_resistance_multiplier = 1.65;
933 n_to_p_eff_curr_drv_ratio[3] = 2.05;
934 gmp_to_gmn_multiplier[3] = 0.90;
935 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
936 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
937 long_channel_leakage_reduction[3] = 1;
938 I_off_n[3][0] = 2.54e-11;
939 I_off_n[3][10] = 3.94e-11;
940 I_off_n[3][20] = 5.95e-11;
941 I_off_n[3][30] = 8.79e-11;
942 I_off_n[3][40] = 1.27e-10;
943 I_off_n[3][50] = 1.79e-10;
944 I_off_n[3][60] = 2.47e-10;
945 I_off_n[3][70] = 3.31e-10;
946 I_off_n[3][80] = 4.26e-10;
947 I_off_n[3][90] = 5.27e-10;
948 I_off_n[3][100] = 6.46e-10;
949 } else if (ram_cell_tech_type == comm_dram) {
950 //COMM-DRAM cell access transistor technology parameters
951 curr_vdd_dram_cell = 1.1;
952 Lphy[3] = 0.045;
953 Lelec[3] = 0.0298;
954 curr_v_th_dram_access_transistor = 1;
955 width_dram_access_transistor = 0.045;
956 curr_I_on_dram_cell = 20e-6;//A
957 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
958 curr_Wmemcella_dram = width_dram_access_transistor;
959 curr_Wmemcellpmos_dram = 0;
960 curr_Wmemcellnmos_dram = 0;
961 curr_area_cell_dram = 6 * 0.045 * 0.045;
962 curr_asp_ratio_cell_dram = 1.5;
963 curr_c_dram_cell = 30e-15;
1008
964
1009 //COMM-DRAM wordline transistor parameters
1010 curr_vpp = 2.7;
1011 t_ox[3] = 4e-3;
1012 v_th[3] = 1.0;
1013 c_ox[3] = 7.98e-15;
1014 mobility_eff[3] = 368.58 * (1e-2 * 1e6 * 1e-2 * 1e6);
1015 Vdsat[3] = 0.147;
1016 c_g_ideal[3] = 3.59e-16;
1017 c_fringe[3] = 0.08e-15;
1018 c_junc[3] = 1e-15;
1019 I_on_n[3] = 999.4e-6;
1020 I_on_p[3] = I_on_n[3] / 2;
1021 nmos_effective_resistance_multiplier = 1.69;
1022 n_to_p_eff_curr_drv_ratio[3] = 1.95;
1023 gmp_to_gmn_multiplier[3] = 0.90;
1024 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
1025 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
1026 long_channel_leakage_reduction[3] = 1;
1027 I_off_n[3][0] = 1.31e-14;
1028 I_off_n[3][10] = 2.68e-14;
1029 I_off_n[3][20] = 5.25e-14;
1030 I_off_n[3][30] = 9.88e-14;
1031 I_off_n[3][40] = 1.79e-13;
1032 I_off_n[3][50] = 3.15e-13;
1033 I_off_n[3][60] = 5.36e-13;
1034 I_off_n[3][70] = 8.86e-13;
1035 I_off_n[3][80] = 1.42e-12;
1036 I_off_n[3][90] = 2.20e-12;
1037 I_off_n[3][100] = 3.29e-12;
1038 }
965 //COMM-DRAM wordline transistor parameters
966 curr_vpp = 2.7;
967 t_ox[3] = 4e-3;
968 v_th[3] = 1.0;
969 c_ox[3] = 7.98e-15;
970 mobility_eff[3] = 368.58 * (1e-2 * 1e6 * 1e-2 * 1e6);
971 Vdsat[3] = 0.147;
972 c_g_ideal[3] = 3.59e-16;
973 c_fringe[3] = 0.08e-15;
974 c_junc[3] = 1e-15;
975 I_on_n[3] = 999.4e-6;
976 I_on_p[3] = I_on_n[3] / 2;
977 nmos_effective_resistance_multiplier = 1.69;
978 n_to_p_eff_curr_drv_ratio[3] = 1.95;
979 gmp_to_gmn_multiplier[3] = 0.90;
980 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
981 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
982 long_channel_leakage_reduction[3] = 1;
983 I_off_n[3][0] = 1.31e-14;
984 I_off_n[3][10] = 2.68e-14;
985 I_off_n[3][20] = 5.25e-14;
986 I_off_n[3][30] = 9.88e-14;
987 I_off_n[3][40] = 1.79e-13;
988 I_off_n[3][50] = 3.15e-13;
989 I_off_n[3][60] = 5.36e-13;
990 I_off_n[3][70] = 8.86e-13;
991 I_off_n[3][80] = 1.42e-12;
992 I_off_n[3][90] = 2.20e-12;
993 I_off_n[3][100] = 3.29e-12;
994 }
1039
1040
995
996
1041 //SRAM cell properties
1042 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1043 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1044 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1045 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1046 curr_asp_ratio_cell_sram = 1.46;
1047 //CAM cell properties //TODO: data need to be revisited
1048 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1049 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1050 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1051 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1052 curr_asp_ratio_cell_cam = 2.92;
1053 //Empirical undifferetiated core/FU coefficient
1054 curr_logic_scaling_co_eff = 0.7*0.7;
1055 curr_core_tx_density = 1.25;
1056 curr_sckt_co_eff = 1.1387;
1057 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1058 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1059 }
997 //SRAM cell properties
998 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
999 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1000 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1001 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1002 curr_asp_ratio_cell_sram = 1.46;
1003 //CAM cell properties //TODO: data need to be revisited
1004 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1005 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1006 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1007 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1008 curr_asp_ratio_cell_cam = 2.92;
1009 //Empirical undifferetiated core/FU coefficient
1010 curr_logic_scaling_co_eff = 0.7 * 0.7;
1011 curr_core_tx_density = 1.25;
1012 curr_sckt_co_eff = 1.1387;
1013 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1014 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1015 }
1060
1016
1061 if (tech == 32)
1062 {
1063 SENSE_AMP_D = .03e-9; // s
1064 SENSE_AMP_P = 2.16e-15; // J
1065 //For 2013, MPU/ASIC stagger-contacted M1 half-pitch is 32 nm (so this is 32 nm
1066 //technology i.e. FEATURESIZE = 0.032). Using the SOI process numbers for
1067 //HP and LSTP.
1068 vdd[0] = 0.9;
1069 Lphy[0] = 0.013;
1070 Lelec[0] = 0.01013;
1071 t_ox[0] = 0.5e-3;
1072 v_th[0] = 0.21835;
1073 c_ox[0] = 4.11e-14;
1074 mobility_eff[0] = 361.84 * (1e-2 * 1e6 * 1e-2 * 1e6);
1075 Vdsat[0] = 5.09E-2;
1076 c_g_ideal[0] = 5.34e-16;
1077 c_fringe[0] = 0.04e-15;
1078 c_junc[0] = 1e-15;
1079 I_on_n[0] = 2211.7e-6;
1080 I_on_p[0] = I_on_n[0] / 2;
1081 nmos_effective_resistance_multiplier = 1.49;
1082 n_to_p_eff_curr_drv_ratio[0] = 2.41;
1083 gmp_to_gmn_multiplier[0] = 1.38;
1084 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
1085 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
1086 long_channel_leakage_reduction[0] = 1/3.706;
1087 //Using MASTAR, @300K (380K does not work in MASTAR), increase Lgate until Ion reduces to 95% or Lgate increase by 5% (DG device can only increase by 5%),
1088 //whichever comes first
1089 I_off_n[0][0] = 1.52e-7;
1090 I_off_n[0][10] = 1.55e-7;
1091 I_off_n[0][20] = 1.59e-7;
1092 I_off_n[0][30] = 1.68e-7;
1093 I_off_n[0][40] = 1.90e-7;
1094 I_off_n[0][50] = 2.69e-7;
1095 I_off_n[0][60] = 5.32e-7;
1096 I_off_n[0][70] = 1.02e-6;
1097 I_off_n[0][80] = 1.62e-6;
1098 I_off_n[0][90] = 2.73e-6;
1099 I_off_n[0][100] = 6.1e-6;
1017 if (tech == 32) {
1018 SENSE_AMP_D = .03e-9; // s
1019 SENSE_AMP_P = 2.16e-15; // J
1020 //For 2013, MPU/ASIC stagger-contacted M1 half-pitch is 32 nm (so this is 32 nm
1021 //technology i.e. FEATURESIZE = 0.032). Using the SOI process numbers for
1022 //HP and LSTP.
1023 vdd[0] = 0.9;
1024 Lphy[0] = 0.013;
1025 Lelec[0] = 0.01013;
1026 t_ox[0] = 0.5e-3;
1027 v_th[0] = 0.21835;
1028 c_ox[0] = 4.11e-14;
1029 mobility_eff[0] = 361.84 * (1e-2 * 1e6 * 1e-2 * 1e6);
1030 Vdsat[0] = 5.09E-2;
1031 c_g_ideal[0] = 5.34e-16;
1032 c_fringe[0] = 0.04e-15;
1033 c_junc[0] = 1e-15;
1034 I_on_n[0] = 2211.7e-6;
1035 I_on_p[0] = I_on_n[0] / 2;
1036 nmos_effective_resistance_multiplier = 1.49;
1037 n_to_p_eff_curr_drv_ratio[0] = 2.41;
1038 gmp_to_gmn_multiplier[0] = 1.38;
1039 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
1040 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
1041 long_channel_leakage_reduction[0] = 1 / 3.706;
1042 //Using MASTAR, @300K (380K does not work in MASTAR), increase Lgate until Ion reduces to 95% or Lgate increase by 5% (DG device can only increase by 5%),
1043 //whichever comes first
1044 I_off_n[0][0] = 1.52e-7;
1045 I_off_n[0][10] = 1.55e-7;
1046 I_off_n[0][20] = 1.59e-7;
1047 I_off_n[0][30] = 1.68e-7;
1048 I_off_n[0][40] = 1.90e-7;
1049 I_off_n[0][50] = 2.69e-7;
1050 I_off_n[0][60] = 5.32e-7;
1051 I_off_n[0][70] = 1.02e-6;
1052 I_off_n[0][80] = 1.62e-6;
1053 I_off_n[0][90] = 2.73e-6;
1054 I_off_n[0][100] = 6.1e-6;
1100
1055
1101 I_g_on_n[0][0] = 6.55e-8;//A/micron
1102 I_g_on_n[0][10] = 6.55e-8;
1103 I_g_on_n[0][20] = 6.55e-8;
1104 I_g_on_n[0][30] = 6.55e-8;
1105 I_g_on_n[0][40] = 6.55e-8;
1106 I_g_on_n[0][50] = 6.55e-8;
1107 I_g_on_n[0][60] = 6.55e-8;
1108 I_g_on_n[0][70] = 6.55e-8;
1109 I_g_on_n[0][80] = 6.55e-8;
1110 I_g_on_n[0][90] = 6.55e-8;
1111 I_g_on_n[0][100] = 6.55e-8;
1056 I_g_on_n[0][0] = 6.55e-8;//A/micron
1057 I_g_on_n[0][10] = 6.55e-8;
1058 I_g_on_n[0][20] = 6.55e-8;
1059 I_g_on_n[0][30] = 6.55e-8;
1060 I_g_on_n[0][40] = 6.55e-8;
1061 I_g_on_n[0][50] = 6.55e-8;
1062 I_g_on_n[0][60] = 6.55e-8;
1063 I_g_on_n[0][70] = 6.55e-8;
1064 I_g_on_n[0][80] = 6.55e-8;
1065 I_g_on_n[0][90] = 6.55e-8;
1066 I_g_on_n[0][100] = 6.55e-8;
1112
1067
1113// 32 DG
1114// I_g_on_n[0][0] = 2.71e-9;//A/micron
1115// I_g_on_n[0][10] = 2.71e-9;
1116// I_g_on_n[0][20] = 2.71e-9;
1117// I_g_on_n[0][30] = 2.71e-9;
1118// I_g_on_n[0][40] = 2.71e-9;
1119// I_g_on_n[0][50] = 2.71e-9;
1120// I_g_on_n[0][60] = 2.71e-9;
1121// I_g_on_n[0][70] = 2.71e-9;
1122// I_g_on_n[0][80] = 2.71e-9;
1123// I_g_on_n[0][90] = 2.71e-9;
1124// I_g_on_n[0][100] = 2.71e-9;
1068 //LSTP device type
1069 vdd[1] = 1;
1070 Lphy[1] = 0.020;
1071 Lelec[1] = 0.0173;
1072 t_ox[1] = 1.2e-3;
1073 v_th[1] = 0.513;
1074 c_ox[1] = 2.29e-14;
1075 mobility_eff[1] = 347.46 * (1e-2 * 1e6 * 1e-2 * 1e6);
1076 Vdsat[1] = 8.64e-2;
1077 c_g_ideal[1] = 4.58e-16;
1078 c_fringe[1] = 0.053e-15;
1079 c_junc[1] = 1e-15;
1080 I_on_n[1] = 683.6e-6;
1081 I_on_p[1] = I_on_n[1] / 2;
1082 nmos_effective_resistance_multiplier = 1.99;
1083 n_to_p_eff_curr_drv_ratio[1] = 2.23;
1084 gmp_to_gmn_multiplier[1] = 0.99;
1085 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
1086 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
1087 long_channel_leakage_reduction[1] = 1 / 1.93;
1088 I_off_n[1][0] = 2.06e-11;
1089 I_off_n[1][10] = 3.30e-11;
1090 I_off_n[1][20] = 5.15e-11;
1091 I_off_n[1][30] = 7.83e-11;
1092 I_off_n[1][40] = 1.16e-10;
1093 I_off_n[1][50] = 1.69e-10;
1094 I_off_n[1][60] = 2.40e-10;
1095 I_off_n[1][70] = 3.34e-10;
1096 I_off_n[1][80] = 4.54e-10;
1097 I_off_n[1][90] = 5.96e-10;
1098 I_off_n[1][100] = 7.44e-10;
1125
1099
1126 //LSTP device type
1127 vdd[1] = 1;
1128 Lphy[1] = 0.020;
1129 Lelec[1] = 0.0173;
1130 t_ox[1] = 1.2e-3;
1131 v_th[1] = 0.513;
1132 c_ox[1] = 2.29e-14;
1133 mobility_eff[1] = 347.46 * (1e-2 * 1e6 * 1e-2 * 1e6);
1134 Vdsat[1] = 8.64e-2;
1135 c_g_ideal[1] = 4.58e-16;
1136 c_fringe[1] = 0.053e-15;
1137 c_junc[1] = 1e-15;
1138 I_on_n[1] = 683.6e-6;
1139 I_on_p[1] = I_on_n[1] / 2;
1140 nmos_effective_resistance_multiplier = 1.99;
1141 n_to_p_eff_curr_drv_ratio[1] = 2.23;
1142 gmp_to_gmn_multiplier[1] = 0.99;
1143 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];
1144 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];
1145 long_channel_leakage_reduction[1] = 1/1.93;
1146 I_off_n[1][0] = 2.06e-11;
1147 I_off_n[1][10] = 3.30e-11;
1148 I_off_n[1][20] = 5.15e-11;
1149 I_off_n[1][30] = 7.83e-11;
1150 I_off_n[1][40] = 1.16e-10;
1151 I_off_n[1][50] = 1.69e-10;
1152 I_off_n[1][60] = 2.40e-10;
1153 I_off_n[1][70] = 3.34e-10;
1154 I_off_n[1][80] = 4.54e-10;
1155 I_off_n[1][90] = 5.96e-10;
1156 I_off_n[1][100] = 7.44e-10;
1100 I_g_on_n[1][0] = 3.73e-11;//A/micron
1101 I_g_on_n[1][10] = 3.73e-11;
1102 I_g_on_n[1][20] = 3.73e-11;
1103 I_g_on_n[1][30] = 3.73e-11;
1104 I_g_on_n[1][40] = 3.73e-11;
1105 I_g_on_n[1][50] = 3.73e-11;
1106 I_g_on_n[1][60] = 3.73e-11;
1107 I_g_on_n[1][70] = 3.73e-11;
1108 I_g_on_n[1][80] = 3.73e-11;
1109 I_g_on_n[1][90] = 3.73e-11;
1110 I_g_on_n[1][100] = 3.73e-11;
1157
1111
1158 I_g_on_n[1][0] = 3.73e-11;//A/micron
1159 I_g_on_n[1][10] = 3.73e-11;
1160 I_g_on_n[1][20] = 3.73e-11;
1161 I_g_on_n[1][30] = 3.73e-11;
1162 I_g_on_n[1][40] = 3.73e-11;
1163 I_g_on_n[1][50] = 3.73e-11;
1164 I_g_on_n[1][60] = 3.73e-11;
1165 I_g_on_n[1][70] = 3.73e-11;
1166 I_g_on_n[1][80] = 3.73e-11;
1167 I_g_on_n[1][90] = 3.73e-11;
1168 I_g_on_n[1][100] = 3.73e-11;
1112 //LOP device type
1113 vdd[2] = 0.6;
1114 Lphy[2] = 0.016;
1115 Lelec[2] = 0.01232;
1116 t_ox[2] = 0.9e-3;
1117 v_th[2] = 0.24227;
1118 c_ox[2] = 2.84e-14;
1119 mobility_eff[2] = 513.52 * (1e-2 * 1e6 * 1e-2 * 1e6);
1120 Vdsat[2] = 4.64e-2;
1121 c_g_ideal[2] = 4.54e-16;
1122 c_fringe[2] = 0.057e-15;
1123 c_junc[2] = 1e-15;
1124 I_on_n[2] = 827.8e-6;
1125 I_on_p[2] = I_on_n[2] / 2;
1126 nmos_effective_resistance_multiplier = 1.73;
1127 n_to_p_eff_curr_drv_ratio[2] = 2.28;
1128 gmp_to_gmn_multiplier[2] = 1.11;
1129 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
1130 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
1131 long_channel_leakage_reduction[2] = 1 / 1.89;
1132 I_off_n[2][0] = 5.94e-8;
1133 I_off_n[2][10] = 7.23e-8;
1134 I_off_n[2][20] = 8.7e-8;
1135 I_off_n[2][30] = 1.04e-7;
1136 I_off_n[2][40] = 1.22e-7;
1137 I_off_n[2][50] = 1.43e-7;
1138 I_off_n[2][60] = 1.65e-7;
1139 I_off_n[2][70] = 1.90e-7;
1140 I_off_n[2][80] = 2.15e-7;
1141 I_off_n[2][90] = 2.39e-7;
1142 I_off_n[2][100] = 2.63e-7;
1169
1143
1144 I_g_on_n[2][0] = 2.93e-9;//A/micron
1145 I_g_on_n[2][10] = 2.93e-9;
1146 I_g_on_n[2][20] = 2.93e-9;
1147 I_g_on_n[2][30] = 2.93e-9;
1148 I_g_on_n[2][40] = 2.93e-9;
1149 I_g_on_n[2][50] = 2.93e-9;
1150 I_g_on_n[2][60] = 2.93e-9;
1151 I_g_on_n[2][70] = 2.93e-9;
1152 I_g_on_n[2][80] = 2.93e-9;
1153 I_g_on_n[2][90] = 2.93e-9;
1154 I_g_on_n[2][100] = 2.93e-9;
1170
1155
1171 //LOP device type
1172 vdd[2] = 0.6;
1173 Lphy[2] = 0.016;
1174 Lelec[2] = 0.01232;
1175 t_ox[2] = 0.9e-3;
1176 v_th[2] = 0.24227;
1177 c_ox[2] = 2.84e-14;
1178 mobility_eff[2] = 513.52 * (1e-2 * 1e6 * 1e-2 * 1e6);
1179 Vdsat[2] = 4.64e-2;
1180 c_g_ideal[2] = 4.54e-16;
1181 c_fringe[2] = 0.057e-15;
1182 c_junc[2] = 1e-15;
1183 I_on_n[2] = 827.8e-6;
1184 I_on_p[2] = I_on_n[2] / 2;
1185 nmos_effective_resistance_multiplier = 1.73;
1186 n_to_p_eff_curr_drv_ratio[2] = 2.28;
1187 gmp_to_gmn_multiplier[2] = 1.11;
1188 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];
1189 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];
1190 long_channel_leakage_reduction[2] = 1/1.89;
1191 I_off_n[2][0] = 5.94e-8;
1192 I_off_n[2][10] = 7.23e-8;
1193 I_off_n[2][20] = 8.7e-8;
1194 I_off_n[2][30] = 1.04e-7;
1195 I_off_n[2][40] = 1.22e-7;
1196 I_off_n[2][50] = 1.43e-7;
1197 I_off_n[2][60] = 1.65e-7;
1198 I_off_n[2][70] = 1.90e-7;
1199 I_off_n[2][80] = 2.15e-7;
1200 I_off_n[2][90] = 2.39e-7;
1201 I_off_n[2][100] = 2.63e-7;
1156 if (ram_cell_tech_type == lp_dram) {
1157 //LP-DRAM cell access transistor technology parameters
1158 curr_vdd_dram_cell = 1.0;
1159 Lphy[3] = 0.056;
1160 Lelec[3] = 0.0419;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
1161 curr_v_th_dram_access_transistor = 0.44129;
1162 width_dram_access_transistor = 0.056;
1163 curr_I_on_dram_cell = 36e-6;
1164 curr_I_off_dram_cell_worst_case_length_temp = 18.9e-12;
1165 curr_Wmemcella_dram = width_dram_access_transistor;
1166 curr_Wmemcellpmos_dram = 0;
1167 curr_Wmemcellnmos_dram = 0;
1168 curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0;
1169 curr_asp_ratio_cell_dram = 1.46;
1170 curr_c_dram_cell = 20e-15;
1202
1171
1203 I_g_on_n[2][0] = 2.93e-9;//A/micron
1204 I_g_on_n[2][10] = 2.93e-9;
1205 I_g_on_n[2][20] = 2.93e-9;
1206 I_g_on_n[2][30] = 2.93e-9;
1207 I_g_on_n[2][40] = 2.93e-9;
1208 I_g_on_n[2][50] = 2.93e-9;
1209 I_g_on_n[2][60] = 2.93e-9;
1210 I_g_on_n[2][70] = 2.93e-9;
1211 I_g_on_n[2][80] = 2.93e-9;
1212 I_g_on_n[2][90] = 2.93e-9;
1213 I_g_on_n[2][100] = 2.93e-9;
1172 //LP-DRAM wordline transistor parameters
1173 curr_vpp = 1.5;
1174 t_ox[3] = 2e-3;
1175 v_th[3] = 0.44467;
1176 c_ox[3] = 1.48e-14;
1177 mobility_eff[3] = 408.12 * (1e-2 * 1e6 * 1e-2 * 1e6);
1178 Vdsat[3] = 0.174;
1179 c_g_ideal[3] = 7.45e-16;
1180 c_fringe[3] = 0.053e-15;
1181 c_junc[3] = 1e-15;
1182 I_on_n[3] = 1055.4e-6;
1183 I_on_p[3] = I_on_n[3] / 2;
1184 nmos_effective_resistance_multiplier = 1.65;
1185 n_to_p_eff_curr_drv_ratio[3] = 2.05;
1186 gmp_to_gmn_multiplier[3] = 0.90;
1187 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
1188 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
1189 long_channel_leakage_reduction[3] = 1;
1190 I_off_n[3][0] = 3.57e-11;
1191 I_off_n[3][10] = 5.51e-11;
1192 I_off_n[3][20] = 8.27e-11;
1193 I_off_n[3][30] = 1.21e-10;
1194 I_off_n[3][40] = 1.74e-10;
1195 I_off_n[3][50] = 2.45e-10;
1196 I_off_n[3][60] = 3.38e-10;
1197 I_off_n[3][70] = 4.53e-10;
1198 I_off_n[3][80] = 5.87e-10;
1199 I_off_n[3][90] = 7.29e-10;
1200 I_off_n[3][100] = 8.87e-10;
1201 } else if (ram_cell_tech_type == comm_dram) {
1202 //COMM-DRAM cell access transistor technology parameters
1203 curr_vdd_dram_cell = 1.0;
1204 Lphy[3] = 0.032;
1205 Lelec[3] = 0.0205;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
1206 curr_v_th_dram_access_transistor = 1;
1207 width_dram_access_transistor = 0.032;
1208 curr_I_on_dram_cell = 20e-6;
1209 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
1210 curr_Wmemcella_dram = width_dram_access_transistor;
1211 curr_Wmemcellpmos_dram = 0;
1212 curr_Wmemcellnmos_dram = 0;
1213 curr_area_cell_dram = 6 * 0.032 * 0.032;
1214 curr_asp_ratio_cell_dram = 1.5;
1215 curr_c_dram_cell = 30e-15;
1214
1216
1215 if (ram_cell_tech_type == lp_dram)
1216 {
1217 //LP-DRAM cell access transistor technology parameters
1218 curr_vdd_dram_cell = 1.0;
1219 Lphy[3] = 0.056;
1220 Lelec[3] = 0.0419;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
1221 curr_v_th_dram_access_transistor = 0.44129;
1222 width_dram_access_transistor = 0.056;
1223 curr_I_on_dram_cell = 36e-6;
1224 curr_I_off_dram_cell_worst_case_length_temp = 18.9e-12;
1225 curr_Wmemcella_dram = width_dram_access_transistor;
1226 curr_Wmemcellpmos_dram = 0;
1227 curr_Wmemcellnmos_dram = 0;
1228 curr_area_cell_dram = width_dram_access_transistor * Lphy[3] * 10.0;
1229 curr_asp_ratio_cell_dram = 1.46;
1230 curr_c_dram_cell = 20e-15;
1217 //COMM-DRAM wordline transistor parameters
1218 curr_vpp = 2.6;
1219 t_ox[3] = 4e-3;
1220 v_th[3] = 1.0;
1221 c_ox[3] = 7.99e-15;
1222 mobility_eff[3] = 380.76 * (1e-2 * 1e6 * 1e-2 * 1e6);
1223 Vdsat[3] = 0.129;
1224 c_g_ideal[3] = 2.56e-16;
1225 c_fringe[3] = 0.053e-15;
1226 c_junc[3] = 1e-15;
1227 I_on_n[3] = 1024.5e-6;
1228 I_on_p[3] = I_on_n[3] / 2;
1229 nmos_effective_resistance_multiplier = 1.69;
1230 n_to_p_eff_curr_drv_ratio[3] = 1.95;
1231 gmp_to_gmn_multiplier[3] = 0.90;
1232 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
1233 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
1234 long_channel_leakage_reduction[3] = 1;
1235 I_off_n[3][0] = 3.63e-14;
1236 I_off_n[3][10] = 7.18e-14;
1237 I_off_n[3][20] = 1.36e-13;
1238 I_off_n[3][30] = 2.49e-13;
1239 I_off_n[3][40] = 4.41e-13;
1240 I_off_n[3][50] = 7.55e-13;
1241 I_off_n[3][60] = 1.26e-12;
1242 I_off_n[3][70] = 2.03e-12;
1243 I_off_n[3][80] = 3.19e-12;
1244 I_off_n[3][90] = 4.87e-12;
1245 I_off_n[3][100] = 7.16e-12;
1246 }
1231
1247
1232 //LP-DRAM wordline transistor parameters
1233 curr_vpp = 1.5;
1234 t_ox[3] = 2e-3;
1235 v_th[3] = 0.44467;
1236 c_ox[3] = 1.48e-14;
1237 mobility_eff[3] = 408.12 * (1e-2 * 1e6 * 1e-2 * 1e6);
1238 Vdsat[3] = 0.174;
1239 c_g_ideal[3] = 7.45e-16;
1240 c_fringe[3] = 0.053e-15;
1241 c_junc[3] = 1e-15;
1242 I_on_n[3] = 1055.4e-6;
1243 I_on_p[3] = I_on_n[3] / 2;
1244 nmos_effective_resistance_multiplier = 1.65;
1245 n_to_p_eff_curr_drv_ratio[3] = 2.05;
1246 gmp_to_gmn_multiplier[3] = 0.90;
1247 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
1248 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
1249 long_channel_leakage_reduction[3] = 1;
1250 I_off_n[3][0] = 3.57e-11;
1251 I_off_n[3][10] = 5.51e-11;
1252 I_off_n[3][20] = 8.27e-11;
1253 I_off_n[3][30] = 1.21e-10;
1254 I_off_n[3][40] = 1.74e-10;
1255 I_off_n[3][50] = 2.45e-10;
1256 I_off_n[3][60] = 3.38e-10;
1257 I_off_n[3][70] = 4.53e-10;
1258 I_off_n[3][80] = 5.87e-10;
1259 I_off_n[3][90] = 7.29e-10;
1260 I_off_n[3][100] = 8.87e-10;
1261 }
1262 else if (ram_cell_tech_type == comm_dram)
1263 {
1264 //COMM-DRAM cell access transistor technology parameters
1265 curr_vdd_dram_cell = 1.0;
1266 Lphy[3] = 0.032;
1267 Lelec[3] = 0.0205;//Assume Lelec is 30% lesser than Lphy for DRAM access and wordline transistors.
1268 curr_v_th_dram_access_transistor = 1;
1269 width_dram_access_transistor = 0.032;
1270 curr_I_on_dram_cell = 20e-6;
1271 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;
1272 curr_Wmemcella_dram = width_dram_access_transistor;
1273 curr_Wmemcellpmos_dram = 0;
1274 curr_Wmemcellnmos_dram = 0;
1275 curr_area_cell_dram = 6*0.032*0.032;
1276 curr_asp_ratio_cell_dram = 1.5;
1277 curr_c_dram_cell = 30e-15;
1248 //SRAM cell properties
1249 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1250 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1251 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1252 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1253 curr_asp_ratio_cell_sram = 1.46;
1254 //CAM cell properties //TODO: data need to be revisited
1255 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1256 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1257 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1258 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1259 curr_asp_ratio_cell_cam = 2.92;
1260 //Empirical undifferetiated core/FU coefficient
1261 curr_logic_scaling_co_eff = 0.7 * 0.7 * 0.7;
1262 curr_core_tx_density = 1.25 / 0.7;
1263 curr_sckt_co_eff = 1.1111;
1264 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1265 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1266 }
1278
1267
1279 //COMM-DRAM wordline transistor parameters
1280 curr_vpp = 2.6;
1281 t_ox[3] = 4e-3;
1282 v_th[3] = 1.0;
1283 c_ox[3] = 7.99e-15;
1284 mobility_eff[3] = 380.76 * (1e-2 * 1e6 * 1e-2 * 1e6);
1285 Vdsat[3] = 0.129;
1286 c_g_ideal[3] = 2.56e-16;
1287 c_fringe[3] = 0.053e-15;
1288 c_junc[3] = 1e-15;
1289 I_on_n[3] = 1024.5e-6;
1290 I_on_p[3] = I_on_n[3] / 2;
1291 nmos_effective_resistance_multiplier = 1.69;
1292 n_to_p_eff_curr_drv_ratio[3] = 1.95;
1293 gmp_to_gmn_multiplier[3] = 0.90;
1294 Rnchannelon[3] = nmos_effective_resistance_multiplier * curr_vpp / I_on_n[3];
1295 Rpchannelon[3] = n_to_p_eff_curr_drv_ratio[3] * Rnchannelon[3];
1296 long_channel_leakage_reduction[3] = 1;
1297 I_off_n[3][0] = 3.63e-14;
1298 I_off_n[3][10] = 7.18e-14;
1299 I_off_n[3][20] = 1.36e-13;
1300 I_off_n[3][30] = 2.49e-13;
1301 I_off_n[3][40] = 4.41e-13;
1302 I_off_n[3][50] = 7.55e-13;
1303 I_off_n[3][60] = 1.26e-12;
1304 I_off_n[3][70] = 2.03e-12;
1305 I_off_n[3][80] = 3.19e-12;
1306 I_off_n[3][90] = 4.87e-12;
1307 I_off_n[3][100] = 7.16e-12;
1308 }
1268 if (tech == 22) {
1269 SENSE_AMP_D = .03e-9; // s
1270 SENSE_AMP_P = 2.16e-15; // J
1271 //For 2016, MPU/ASIC stagger-contacted M1 half-pitch is 22 nm (so this is 22 nm
1272 //technology i.e. FEATURESIZE = 0.022). Using the DG process numbers for HP.
1273 //22 nm HP
1274 vdd[0] = 0.8;
1275 Lphy[0] = 0.009;//Lphy is the physical gate-length.
1276 Lelec[0] = 0.00468;//Lelec is the electrical gate-length.
1277 t_ox[0] = 0.55e-3;//micron
1278 v_th[0] = 0.1395;//V
1279 c_ox[0] = 3.63e-14;//F/micron2
1280 mobility_eff[0] = 426.07 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1281 Vdsat[0] = 2.33e-2; //V/micron
1282 c_g_ideal[0] = 3.27e-16;//F/micron
1283 c_fringe[0] = 0.06e-15;//F/micron
1284 c_junc[0] = 0;//F/micron2
1285 I_on_n[0] = 2626.4e-6;//A/micron
1286 I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used.
1287 nmos_effective_resistance_multiplier = 1.45;
1288 n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in
1289 //"Dynamic" tab of Device workspace.
1290 gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value.
1291 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
1292 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
1293 long_channel_leakage_reduction[0] = 1 / 3.274;
1294 //From 22nm, leakage current are directly from ITRS report rather
1295 //than MASTAR, since MASTAR has serious bugs there.
1296 I_off_n[0][0] = 1.52e-7 / 1.5 * 1.2;
1297 I_off_n[0][10] = 1.55e-7 / 1.5 * 1.2;
1298 I_off_n[0][20] = 1.59e-7 / 1.5 * 1.2;
1299 I_off_n[0][30] = 1.68e-7 / 1.5 * 1.2;
1300 I_off_n[0][40] = 1.90e-7 / 1.5 * 1.2;
1301 I_off_n[0][50] = 2.69e-7 / 1.5 * 1.2;
1302 I_off_n[0][60] = 5.32e-7 / 1.5 * 1.2;
1303 I_off_n[0][70] = 1.02e-6 / 1.5 * 1.2;
1304 I_off_n[0][80] = 1.62e-6 / 1.5 * 1.2;
1305 I_off_n[0][90] = 2.73e-6 / 1.5 * 1.2;
1306 I_off_n[0][100] = 6.1e-6 / 1.5 * 1.2;
1307 //for 22nm DG HP
1308 I_g_on_n[0][0] = 1.81e-9;//A/micron
1309 I_g_on_n[0][10] = 1.81e-9;
1310 I_g_on_n[0][20] = 1.81e-9;
1311 I_g_on_n[0][30] = 1.81e-9;
1312 I_g_on_n[0][40] = 1.81e-9;
1313 I_g_on_n[0][50] = 1.81e-9;
1314 I_g_on_n[0][60] = 1.81e-9;
1315 I_g_on_n[0][70] = 1.81e-9;
1316 I_g_on_n[0][80] = 1.81e-9;
1317 I_g_on_n[0][90] = 1.81e-9;
1318 I_g_on_n[0][100] = 1.81e-9;
1309
1319
1310 //SRAM cell properties
1311 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1312 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1313 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1314 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1315 curr_asp_ratio_cell_sram = 1.46;
1316 //CAM cell properties //TODO: data need to be revisited
1317 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1318 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1319 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1320 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1321 curr_asp_ratio_cell_cam = 2.92;
1322 //Empirical undifferetiated core/FU coefficient
1323 curr_logic_scaling_co_eff = 0.7*0.7*0.7;
1324 curr_core_tx_density = 1.25/0.7;
1325 curr_sckt_co_eff = 1.1111;
1326 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1327 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1328 }
1320 //22 nm LSTP DG
1321 vdd[1] = 0.8;
1322 Lphy[1] = 0.014;
1323 Lelec[1] = 0.008;//Lelec is the electrical gate-length.
1324 t_ox[1] = 1.1e-3;//micron
1325 v_th[1] = 0.40126;//V
1326 c_ox[1] = 2.30e-14;//F/micron2
1327 mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1328 Vdsat[1] = 6.64e-2; //V/micron
1329 c_g_ideal[1] = 3.22e-16;//F/micron
1330 c_fringe[1] = 0.08e-15;
1331 c_junc[1] = 0;//F/micron2
1332 I_on_n[1] = 727.6e-6;//A/micron
1333 I_on_p[1] = I_on_n[1] / 2;
1334 nmos_effective_resistance_multiplier = 1.99;
1335 n_to_p_eff_curr_drv_ratio[1] = 2;
1336 gmp_to_gmn_multiplier[1] = 0.99;
1337 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron
1338 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron
1339 long_channel_leakage_reduction[1] = 1 / 1.89;
1340 I_off_n[1][0] = 2.43e-11;
1341 I_off_n[1][10] = 4.85e-11;
1342 I_off_n[1][20] = 9.68e-11;
1343 I_off_n[1][30] = 1.94e-10;
1344 I_off_n[1][40] = 3.87e-10;
1345 I_off_n[1][50] = 7.73e-10;
1346 I_off_n[1][60] = 3.55e-10;
1347 I_off_n[1][70] = 3.09e-9;
1348 I_off_n[1][80] = 6.19e-9;
1349 I_off_n[1][90] = 1.24e-8;
1350 I_off_n[1][100] = 2.48e-8;
1329
1351
1330 if(tech == 22){
1331 SENSE_AMP_D = .03e-9; // s
1332 SENSE_AMP_P = 2.16e-15; // J
1333 //For 2016, MPU/ASIC stagger-contacted M1 half-pitch is 22 nm (so this is 22 nm
1334 //technology i.e. FEATURESIZE = 0.022). Using the DG process numbers for HP.
1335 //22 nm HP
1336 vdd[0] = 0.8;
1337 Lphy[0] = 0.009;//Lphy is the physical gate-length.
1338 Lelec[0] = 0.00468;//Lelec is the electrical gate-length.
1339 t_ox[0] = 0.55e-3;//micron
1340 v_th[0] = 0.1395;//V
1341 c_ox[0] = 3.63e-14;//F/micron2
1342 mobility_eff[0] = 426.07 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1343 Vdsat[0] = 2.33e-2; //V/micron
1344 c_g_ideal[0] = 3.27e-16;//F/micron
1345 c_fringe[0] = 0.06e-15;//F/micron
1346 c_junc[0] = 0;//F/micron2
1347 I_on_n[0] = 2626.4e-6;//A/micron
1348 I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used.
1349 nmos_effective_resistance_multiplier = 1.45;
1350 n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in
1351 //"Dynamic" tab of Device workspace.
1352 gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value.
1353 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
1354 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
1355 long_channel_leakage_reduction[0] = 1/3.274;
1356 I_off_n[0][0] = 1.52e-7/1.5*1.2;//From 22nm, leakage current are directly from ITRS report rather than MASTAR, since MASTAR has serious bugs there.
1357 I_off_n[0][10] = 1.55e-7/1.5*1.2;
1358 I_off_n[0][20] = 1.59e-7/1.5*1.2;
1359 I_off_n[0][30] = 1.68e-7/1.5*1.2;
1360 I_off_n[0][40] = 1.90e-7/1.5*1.2;
1361 I_off_n[0][50] = 2.69e-7/1.5*1.2;
1362 I_off_n[0][60] = 5.32e-7/1.5*1.2;
1363 I_off_n[0][70] = 1.02e-6/1.5*1.2;
1364 I_off_n[0][80] = 1.62e-6/1.5*1.2;
1365 I_off_n[0][90] = 2.73e-6/1.5*1.2;
1366 I_off_n[0][100] = 6.1e-6/1.5*1.2;
1367 //for 22nm DG HP
1368 I_g_on_n[0][0] = 1.81e-9;//A/micron
1369 I_g_on_n[0][10] = 1.81e-9;
1370 I_g_on_n[0][20] = 1.81e-9;
1371 I_g_on_n[0][30] = 1.81e-9;
1372 I_g_on_n[0][40] = 1.81e-9;
1373 I_g_on_n[0][50] = 1.81e-9;
1374 I_g_on_n[0][60] = 1.81e-9;
1375 I_g_on_n[0][70] = 1.81e-9;
1376 I_g_on_n[0][80] = 1.81e-9;
1377 I_g_on_n[0][90] = 1.81e-9;
1378 I_g_on_n[0][100] = 1.81e-9;
1352 I_g_on_n[1][0] = 4.51e-10;//A/micron
1353 I_g_on_n[1][10] = 4.51e-10;
1354 I_g_on_n[1][20] = 4.51e-10;
1355 I_g_on_n[1][30] = 4.51e-10;
1356 I_g_on_n[1][40] = 4.51e-10;
1357 I_g_on_n[1][50] = 4.51e-10;
1358 I_g_on_n[1][60] = 4.51e-10;
1359 I_g_on_n[1][70] = 4.51e-10;
1360 I_g_on_n[1][80] = 4.51e-10;
1361 I_g_on_n[1][90] = 4.51e-10;
1362 I_g_on_n[1][100] = 4.51e-10;
1379
1363
1380 //22 nm LSTP DG
1381 vdd[1] = 0.8;
1382 Lphy[1] = 0.014;
1383 Lelec[1] = 0.008;//Lelec is the electrical gate-length.
1384 t_ox[1] = 1.1e-3;//micron
1385 v_th[1] = 0.40126;//V
1386 c_ox[1] = 2.30e-14;//F/micron2
1387 mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1388 Vdsat[1] = 6.64e-2; //V/micron
1389 c_g_ideal[1] = 3.22e-16;//F/micron
1390 c_fringe[1] = 0.08e-15;
1391 c_junc[1] = 0;//F/micron2
1392 I_on_n[1] = 727.6e-6;//A/micron
1393 I_on_p[1] = I_on_n[1] / 2;
1394 nmos_effective_resistance_multiplier = 1.99;
1395 n_to_p_eff_curr_drv_ratio[1] = 2;
1396 gmp_to_gmn_multiplier[1] = 0.99;
1397 Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron
1398 Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron
1399 long_channel_leakage_reduction[1] = 1/1.89;
1400 I_off_n[1][0] = 2.43e-11;
1401 I_off_n[1][10] = 4.85e-11;
1402 I_off_n[1][20] = 9.68e-11;
1403 I_off_n[1][30] = 1.94e-10;
1404 I_off_n[1][40] = 3.87e-10;
1405 I_off_n[1][50] = 7.73e-10;
1406 I_off_n[1][60] = 3.55e-10;
1407 I_off_n[1][70] = 3.09e-9;
1408 I_off_n[1][80] = 6.19e-9;
1409 I_off_n[1][90] = 1.24e-8;
1410 I_off_n[1][100]= 2.48e-8;
1364 //22 nm LOP
1365 vdd[2] = 0.6;
1366 Lphy[2] = 0.011;
1367 Lelec[2] = 0.00604;//Lelec is the electrical gate-length.
1368 t_ox[2] = 0.8e-3;//micron
1369 v_th[2] = 0.2315;//V
1370 c_ox[2] = 2.87e-14;//F/micron2
1371 mobility_eff[2] = 698.37 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1372 Vdsat[2] = 1.81e-2; //V/micron
1373 c_g_ideal[2] = 3.16e-16;//F/micron
1374 c_fringe[2] = 0.08e-15;
1375 c_junc[2] = 0;//F/micron2 This is Cj0 not Cjunc in MASTAR results->Dynamic Tab
1376 I_on_n[2] = 916.1e-6;//A/micron
1377 I_on_p[2] = I_on_n[2] / 2;
1378 nmos_effective_resistance_multiplier = 1.73;
1379 n_to_p_eff_curr_drv_ratio[2] = 2;
1380 gmp_to_gmn_multiplier[2] = 1.11;
1381 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];//ohm-micron
1382 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];//ohm-micron
1383 long_channel_leakage_reduction[2] = 1 / 2.38;
1411
1384
1412 I_g_on_n[1][0] = 4.51e-10;//A/micron
1413 I_g_on_n[1][10] = 4.51e-10;
1414 I_g_on_n[1][20] = 4.51e-10;
1415 I_g_on_n[1][30] = 4.51e-10;
1416 I_g_on_n[1][40] = 4.51e-10;
1417 I_g_on_n[1][50] = 4.51e-10;
1418 I_g_on_n[1][60] = 4.51e-10;
1419 I_g_on_n[1][70] = 4.51e-10;
1420 I_g_on_n[1][80] = 4.51e-10;
1421 I_g_on_n[1][90] = 4.51e-10;
1422 I_g_on_n[1][100] = 4.51e-10;
1385 I_off_n[2][0] = 1.31e-8;
1386 I_off_n[2][10] = 2.60e-8;
1387 I_off_n[2][20] = 5.14e-8;
1388 I_off_n[2][30] = 1.02e-7;
1389 I_off_n[2][40] = 2.02e-7;
1390 I_off_n[2][50] = 3.99e-7;
1391 I_off_n[2][60] = 7.91e-7;
1392 I_off_n[2][70] = 1.09e-6;
1393 I_off_n[2][80] = 2.09e-6;
1394 I_off_n[2][90] = 4.04e-6;
1395 I_off_n[2][100] = 4.48e-6;
1423
1396
1424 //22 nm LOP
1425 vdd[2] = 0.6;
1426 Lphy[2] = 0.011;
1427 Lelec[2] = 0.00604;//Lelec is the electrical gate-length.
1428 t_ox[2] = 0.8e-3;//micron
1429 v_th[2] = 0.2315;//V
1430 c_ox[2] = 2.87e-14;//F/micron2
1431 mobility_eff[2] = 698.37 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1432 Vdsat[2] = 1.81e-2; //V/micron
1433 c_g_ideal[2] = 3.16e-16;//F/micron
1434 c_fringe[2] = 0.08e-15;
1435 c_junc[2] = 0;//F/micron2 This is Cj0 not Cjunc in MASTAR results->Dynamic Tab
1436 I_on_n[2] = 916.1e-6;//A/micron
1437 I_on_p[2] = I_on_n[2] / 2;
1438 nmos_effective_resistance_multiplier = 1.73;
1439 n_to_p_eff_curr_drv_ratio[2] = 2;
1440 gmp_to_gmn_multiplier[2] = 1.11;
1441 Rnchannelon[2] = nmos_effective_resistance_multiplier * vdd[2] / I_on_n[2];//ohm-micron
1442 Rpchannelon[2] = n_to_p_eff_curr_drv_ratio[2] * Rnchannelon[2];//ohm-micron
1443 long_channel_leakage_reduction[2] = 1/2.38;
1397 I_g_on_n[2][0] = 2.74e-9;//A/micron
1398 I_g_on_n[2][10] = 2.74e-9;
1399 I_g_on_n[2][20] = 2.74e-9;
1400 I_g_on_n[2][30] = 2.74e-9;
1401 I_g_on_n[2][40] = 2.74e-9;
1402 I_g_on_n[2][50] = 2.74e-9;
1403 I_g_on_n[2][60] = 2.74e-9;
1404 I_g_on_n[2][70] = 2.74e-9;
1405 I_g_on_n[2][80] = 2.74e-9;
1406 I_g_on_n[2][90] = 2.74e-9;
1407 I_g_on_n[2][100] = 2.74e-9;
1444
1408
1445 I_off_n[2][0] = 1.31e-8;
1446 I_off_n[2][10] = 2.60e-8;
1447 I_off_n[2][20] = 5.14e-8;
1448 I_off_n[2][30] = 1.02e-7;
1449 I_off_n[2][40] = 2.02e-7;
1450 I_off_n[2][50] = 3.99e-7;
1451 I_off_n[2][60] = 7.91e-7;
1452 I_off_n[2][70] = 1.09e-6;
1453 I_off_n[2][80] = 2.09e-6;
1454 I_off_n[2][90] = 4.04e-6;
1455 I_off_n[2][100]= 4.48e-6;
1456
1409
1457 I_g_on_n[2][0] = 2.74e-9;//A/micron
1458 I_g_on_n[2][10] = 2.74e-9;
1459 I_g_on_n[2][20] = 2.74e-9;
1460 I_g_on_n[2][30] = 2.74e-9;
1461 I_g_on_n[2][40] = 2.74e-9;
1462 I_g_on_n[2][50] = 2.74e-9;
1463 I_g_on_n[2][60] = 2.74e-9;
1464 I_g_on_n[2][70] = 2.74e-9;
1465 I_g_on_n[2][80] = 2.74e-9;
1466 I_g_on_n[2][90] = 2.74e-9;
1467 I_g_on_n[2][100] = 2.74e-9;
1468
1410
1469
1470
1471 if (ram_cell_tech_type == 3)
1472 {}
1473 else if (ram_cell_tech_type == 4)
1474 {
1475 //22 nm commodity DRAM cell access transistor technology parameters.
1411 if (ram_cell_tech_type == 3) {} else if (ram_cell_tech_type == 4) {
1412 //22 nm commodity DRAM cell access transistor technology parameters.
1476 //parameters
1477 curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In
1478 //2005 ITRS, the value was about twice the value in 2007 ITRS
1479 Lphy[3] = 0.022;//micron
1480 Lelec[3] = 0.0181;//micron.
1481 curr_v_th_dram_access_transistor = 1;//V
1482 width_dram_access_transistor = 0.022;//micron
1483 curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always
1484 //kept constant. In reality this could perhaps be lower
1485 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A
1486 curr_Wmemcella_dram = width_dram_access_transistor;
1487 curr_Wmemcellpmos_dram = 0;
1488 curr_Wmemcellnmos_dram = 0;
1413 //parameters
1414 curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In
1415 //2005 ITRS, the value was about twice the value in 2007 ITRS
1416 Lphy[3] = 0.022;//micron
1417 Lelec[3] = 0.0181;//micron.
1418 curr_v_th_dram_access_transistor = 1;//V
1419 width_dram_access_transistor = 0.022;//micron
1420 curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always
1421 //kept constant. In reality this could perhaps be lower
1422 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A
1423 curr_Wmemcella_dram = width_dram_access_transistor;
1424 curr_Wmemcellpmos_dram = 0;
1425 curr_Wmemcellnmos_dram = 0;
1489 curr_area_cell_dram = 6*0.022*0.022;//micron2.
1426 curr_area_cell_dram = 6 * 0.022 * 0.022;//micron2.
1490 curr_asp_ratio_cell_dram = 0.667;
1491 curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus
1492 //kept constant.
1493
1427 curr_asp_ratio_cell_dram = 0.667;
1428 curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus
1429 //kept constant.
1430
1494 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR.
1431 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR.
1495 curr_vpp = 2.3;//vpp. V
1496 t_ox[3] = 3.5e-3;//micron
1497 v_th[3] = 1.0;//V
1498 c_ox[3] = 9.06e-15;//F/micron2
1499 mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs
1500 Vdsat[3] = 0.0972; //V/micron
1501 c_g_ideal[3] = 1.99e-16;//F/micron
1502 c_fringe[3] = 0.053e-15;//F/micron

--- 14 unchanged lines hidden (view full) ---

1517 I_off_n[3][40] = 1.19e-12;
1518 I_off_n[3][50] = 1.98e-12;
1519 I_off_n[3][60] = 3.22e-12;
1520 I_off_n[3][70] = 5.09e-12;
1521 I_off_n[3][80] = 7.85e-12;
1522 I_off_n[3][90] = 1.18e-11;
1523 I_off_n[3][100] = 1.72e-11;
1524
1432 curr_vpp = 2.3;//vpp. V
1433 t_ox[3] = 3.5e-3;//micron
1434 v_th[3] = 1.0;//V
1435 c_ox[3] = 9.06e-15;//F/micron2
1436 mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs
1437 Vdsat[3] = 0.0972; //V/micron
1438 c_g_ideal[3] = 1.99e-16;//F/micron
1439 c_fringe[3] = 0.053e-15;//F/micron

--- 14 unchanged lines hidden (view full) ---

1454 I_off_n[3][40] = 1.19e-12;
1455 I_off_n[3][50] = 1.98e-12;
1456 I_off_n[3][60] = 3.22e-12;
1457 I_off_n[3][70] = 5.09e-12;
1458 I_off_n[3][80] = 7.85e-12;
1459 I_off_n[3][90] = 1.18e-11;
1460 I_off_n[3][100] = 1.72e-11;
1461
1525 }
1526 else
1527 {
1528 //some error handler
1529 }
1462 } else {
1463 //some error handler
1464 }
1530
1465
1531 //SRAM cell properties
1532 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1533 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1534 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1535 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1536 curr_asp_ratio_cell_sram = 1.46;
1537 //CAM cell properties //TODO: data need to be revisited
1538 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1539 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1540 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1541 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1542 curr_asp_ratio_cell_cam = 2.92;
1543 //Empirical undifferetiated core/FU coefficient
1544 curr_logic_scaling_co_eff = 0.7*0.7*0.7*0.7;
1545 curr_core_tx_density = 1.25/0.7/0.7;
1546 curr_sckt_co_eff = 1.1296;
1547 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1548 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1466 //SRAM cell properties
1467 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1468 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1469 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1470 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1471 curr_asp_ratio_cell_sram = 1.46;
1472 //CAM cell properties //TODO: data need to be revisited
1473 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1474 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1475 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1476 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1477 curr_asp_ratio_cell_cam = 2.92;
1478 //Empirical undifferetiated core/FU coefficient
1479 curr_logic_scaling_co_eff = 0.7 * 0.7 * 0.7 * 0.7;
1480 curr_core_tx_density = 1.25 / 0.7 / 0.7;
1481 curr_sckt_co_eff = 1.1296;
1482 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1483 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1549 }
1550
1484 }
1485
1551 if(tech == 16){
1552 //For 2019, MPU/ASIC stagger-contacted M1 half-pitch is 16 nm (so this is 16 nm
1553 //technology i.e. FEATURESIZE = 0.016). Using the DG process numbers for HP.
1554 //16 nm HP
1555 vdd[0] = 0.7;
1556 Lphy[0] = 0.006;//Lphy is the physical gate-length.
1557 Lelec[0] = 0.00315;//Lelec is the electrical gate-length.
1558 t_ox[0] = 0.5e-3;//micron
1559 v_th[0] = 0.1489;//V
1560 c_ox[0] = 3.83e-14;//F/micron2 Cox_elec in MASTAR
1561 mobility_eff[0] = 476.15 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1562 Vdsat[0] = 1.42e-2; //V/micron calculated in spreadsheet
1563 c_g_ideal[0] = 2.30e-16;//F/micron
1564 c_fringe[0] = 0.06e-15;//F/micron MASTAR inputdynamic/3
1565 c_junc[0] = 0;//F/micron2 MASTAR result dynamic
1566 I_on_n[0] = 2768.4e-6;//A/micron
1567 I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used.
1568 nmos_effective_resistance_multiplier = 1.48;//nmos_effective_resistance_multiplier is the ratio of Ieff to Idsat where Ieff is the effective NMOS current and Idsat is the saturation current.
1569 n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in
1570 //"Dynamic" tab of Device workspace.
1571 gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value.
1572 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
1573 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
1574 long_channel_leakage_reduction[0] = 1/2.655;
1575 I_off_n[0][0] = 1.52e-7/1.5*1.2*1.07;
1576 I_off_n[0][10] = 1.55e-7/1.5*1.2*1.07;
1577 I_off_n[0][20] = 1.59e-7/1.5*1.2*1.07;
1578 I_off_n[0][30] = 1.68e-7/1.5*1.2*1.07;
1579 I_off_n[0][40] = 1.90e-7/1.5*1.2*1.07;
1580 I_off_n[0][50] = 2.69e-7/1.5*1.2*1.07;
1581 I_off_n[0][60] = 5.32e-7/1.5*1.2*1.07;
1582 I_off_n[0][70] = 1.02e-6/1.5*1.2*1.07;
1583 I_off_n[0][80] = 1.62e-6/1.5*1.2*1.07;
1584 I_off_n[0][90] = 2.73e-6/1.5*1.2*1.07;
1585 I_off_n[0][100] = 6.1e-6/1.5*1.2*1.07;
1586 //for 16nm DG HP
1587 I_g_on_n[0][0] = 1.07e-9;//A/micron
1588 I_g_on_n[0][10] = 1.07e-9;
1589 I_g_on_n[0][20] = 1.07e-9;
1590 I_g_on_n[0][30] = 1.07e-9;
1591 I_g_on_n[0][40] = 1.07e-9;
1592 I_g_on_n[0][50] = 1.07e-9;
1593 I_g_on_n[0][60] = 1.07e-9;
1594 I_g_on_n[0][70] = 1.07e-9;
1595 I_g_on_n[0][80] = 1.07e-9;
1596 I_g_on_n[0][90] = 1.07e-9;
1597 I_g_on_n[0][100] = 1.07e-9;
1486 if (tech == 16) {
1487 //For 2019, MPU/ASIC stagger-contacted M1 half-pitch is 16 nm (so this is 16 nm
1488 //technology i.e. FEATURESIZE = 0.016). Using the DG process numbers for HP.
1489 //16 nm HP
1490 vdd[0] = 0.7;
1491 Lphy[0] = 0.006;//Lphy is the physical gate-length.
1492 Lelec[0] = 0.00315;//Lelec is the electrical gate-length.
1493 t_ox[0] = 0.5e-3;//micron
1494 v_th[0] = 0.1489;//V
1495 c_ox[0] = 3.83e-14;//F/micron2 Cox_elec in MASTAR
1496 mobility_eff[0] = 476.15 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1497 Vdsat[0] = 1.42e-2; //V/micron calculated in spreadsheet
1498 c_g_ideal[0] = 2.30e-16;//F/micron
1499 c_fringe[0] = 0.06e-15;//F/micron MASTAR inputdynamic/3
1500 c_junc[0] = 0;//F/micron2 MASTAR result dynamic
1501 I_on_n[0] = 2768.4e-6;//A/micron
1502 I_on_p[0] = I_on_n[0] / 2;//A/micron //This value for I_on_p is not really used.
1503 nmos_effective_resistance_multiplier = 1.48;//nmos_effective_resistance_multiplier is the ratio of Ieff to Idsat where Ieff is the effective NMOS current and Idsat is the saturation current.
1504 n_to_p_eff_curr_drv_ratio[0] = 2; //Wpmos/Wnmos = 2 in 2007 MASTAR. Look in
1505 //"Dynamic" tab of Device workspace.
1506 gmp_to_gmn_multiplier[0] = 1.38; //Just using the 32nm SOI value.
1507 Rnchannelon[0] = nmos_effective_resistance_multiplier * vdd[0] / I_on_n[0];//ohm-micron
1508 Rpchannelon[0] = n_to_p_eff_curr_drv_ratio[0] * Rnchannelon[0];//ohm-micron
1509 long_channel_leakage_reduction[0] = 1 / 2.655;
1510 I_off_n[0][0] = 1.52e-7 / 1.5 * 1.2 * 1.07;
1511 I_off_n[0][10] = 1.55e-7 / 1.5 * 1.2 * 1.07;
1512 I_off_n[0][20] = 1.59e-7 / 1.5 * 1.2 * 1.07;
1513 I_off_n[0][30] = 1.68e-7 / 1.5 * 1.2 * 1.07;
1514 I_off_n[0][40] = 1.90e-7 / 1.5 * 1.2 * 1.07;
1515 I_off_n[0][50] = 2.69e-7 / 1.5 * 1.2 * 1.07;
1516 I_off_n[0][60] = 5.32e-7 / 1.5 * 1.2 * 1.07;
1517 I_off_n[0][70] = 1.02e-6 / 1.5 * 1.2 * 1.07;
1518 I_off_n[0][80] = 1.62e-6 / 1.5 * 1.2 * 1.07;
1519 I_off_n[0][90] = 2.73e-6 / 1.5 * 1.2 * 1.07;
1520 I_off_n[0][100] = 6.1e-6 / 1.5 * 1.2 * 1.07;
1521 //for 16nm DG HP
1522 I_g_on_n[0][0] = 1.07e-9;//A/micron
1523 I_g_on_n[0][10] = 1.07e-9;
1524 I_g_on_n[0][20] = 1.07e-9;
1525 I_g_on_n[0][30] = 1.07e-9;
1526 I_g_on_n[0][40] = 1.07e-9;
1527 I_g_on_n[0][50] = 1.07e-9;
1528 I_g_on_n[0][60] = 1.07e-9;
1529 I_g_on_n[0][70] = 1.07e-9;
1530 I_g_on_n[0][80] = 1.07e-9;
1531 I_g_on_n[0][90] = 1.07e-9;
1532 I_g_on_n[0][100] = 1.07e-9;
1598
1533
1599// //16 nm LSTP DG
1600// vdd[1] = 0.8;
1601// Lphy[1] = 0.014;
1602// Lelec[1] = 0.008;//Lelec is the electrical gate-length.
1603// t_ox[1] = 1.1e-3;//micron
1604// v_th[1] = 0.40126;//V
1605// c_ox[1] = 2.30e-14;//F/micron2
1606// mobility_eff[1] = 738.09 * (1e-2 * 1e6 * 1e-2 * 1e6); //micron2 / Vs
1607// Vdsat[1] = 6.64e-2; //V/micron
1608// c_g_ideal[1] = 3.22e-16;//F/micron
1609// c_fringe[1] = 0.008e-15;
1610// c_junc[1] = 0;//F/micron2
1611// I_on_n[1] = 727.6e-6;//A/micron
1612// I_on_p[1] = I_on_n[1] / 2;
1613// nmos_effective_resistance_multiplier = 1.99;
1614// n_to_p_eff_curr_drv_ratio[1] = 2;
1615// gmp_to_gmn_multiplier[1] = 0.99;
1616// Rnchannelon[1] = nmos_effective_resistance_multiplier * vdd[1] / I_on_n[1];//ohm-micron
1617// Rpchannelon[1] = n_to_p_eff_curr_drv_ratio[1] * Rnchannelon[1];//ohm-micron
1618// I_off_n[1][0] = 2.43e-11;
1619// I_off_n[1][10] = 4.85e-11;
1620// I_off_n[1][20] = 9.68e-11;
1621// I_off_n[1][30] = 1.94e-10;
1622// I_off_n[1][40] = 3.87e-10;
1623// I_off_n[1][50] = 7.73e-10;
1624// I_off_n[1][60] = 3.55e-10;
1625// I_off_n[1][70] = 3.09e-9;
1626// I_off_n[1][80] = 6.19e-9;
1627// I_off_n[1][90] = 1.24e-8;
1628// I_off_n[1][100]= 2.48e-8;
1629//
1630// // for 22nm LSTP HP
1631// I_g_on_n[1][0] = 4.51e-10;//A/micron
1632// I_g_on_n[1][10] = 4.51e-10;
1633// I_g_on_n[1][20] = 4.51e-10;
1634// I_g_on_n[1][30] = 4.51e-10;
1635// I_g_on_n[1][40] = 4.51e-10;
1636// I_g_on_n[1][50] = 4.51e-10;
1637// I_g_on_n[1][60] = 4.51e-10;
1638// I_g_on_n[1][70] = 4.51e-10;
1639// I_g_on_n[1][80] = 4.51e-10;
1640// I_g_on_n[1][90] = 4.51e-10;
1641// I_g_on_n[1][100] = 4.51e-10;
1642
1643
1644 if (ram_cell_tech_type == 3)
1645 {}
1646 else if (ram_cell_tech_type == 4)
1647 {
1648 //22 nm commodity DRAM cell access transistor technology parameters.
1534 if (ram_cell_tech_type == 3) {} else if (ram_cell_tech_type == 4) {
1535 //22 nm commodity DRAM cell access transistor technology parameters.
1649 //parameters
1650 curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In
1651 //2005 ITRS, the value was about twice the value in 2007 ITRS
1652 Lphy[3] = 0.022;//micron
1653 Lelec[3] = 0.0181;//micron.
1654 curr_v_th_dram_access_transistor = 1;//V
1655 width_dram_access_transistor = 0.022;//micron
1656 curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always
1657 //kept constant. In reality this could perhaps be lower
1658 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A
1659 curr_Wmemcella_dram = width_dram_access_transistor;
1660 curr_Wmemcellpmos_dram = 0;
1661 curr_Wmemcellnmos_dram = 0;
1536 //parameters
1537 curr_vdd_dram_cell = 0.9;//0.45;//This value has reduced greatly in 2007 ITRS for all technology nodes. In
1538 //2005 ITRS, the value was about twice the value in 2007 ITRS
1539 Lphy[3] = 0.022;//micron
1540 Lelec[3] = 0.0181;//micron.
1541 curr_v_th_dram_access_transistor = 1;//V
1542 width_dram_access_transistor = 0.022;//micron
1543 curr_I_on_dram_cell = 20e-6; //This is a typical value that I have always
1544 //kept constant. In reality this could perhaps be lower
1545 curr_I_off_dram_cell_worst_case_length_temp = 1e-15;//A
1546 curr_Wmemcella_dram = width_dram_access_transistor;
1547 curr_Wmemcellpmos_dram = 0;
1548 curr_Wmemcellnmos_dram = 0;
1662 curr_area_cell_dram = 6*0.022*0.022;//micron2.
1549 curr_area_cell_dram = 6 * 0.022 * 0.022;//micron2.
1663 curr_asp_ratio_cell_dram = 0.667;
1664 curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus
1665 //kept constant.
1666
1550 curr_asp_ratio_cell_dram = 0.667;
1551 curr_c_dram_cell = 30e-15;//This is a typical value that I have alwaus
1552 //kept constant.
1553
1667 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR.
1554 //22 nm commodity DRAM wordline transistor parameters obtained using MASTAR.
1668 curr_vpp = 2.3;//vpp. V
1669 t_ox[3] = 3.5e-3;//micron
1670 v_th[3] = 1.0;//V
1671 c_ox[3] = 9.06e-15;//F/micron2
1672 mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs
1673 Vdsat[3] = 0.0972; //V/micron
1674 c_g_ideal[3] = 1.99e-16;//F/micron
1675 c_fringe[3] = 0.053e-15;//F/micron

--- 14 unchanged lines hidden (view full) ---

1690 I_off_n[3][40] = 1.19e-12;
1691 I_off_n[3][50] = 1.98e-12;
1692 I_off_n[3][60] = 3.22e-12;
1693 I_off_n[3][70] = 5.09e-12;
1694 I_off_n[3][80] = 7.85e-12;
1695 I_off_n[3][90] = 1.18e-11;
1696 I_off_n[3][100] = 1.72e-11;
1697
1555 curr_vpp = 2.3;//vpp. V
1556 t_ox[3] = 3.5e-3;//micron
1557 v_th[3] = 1.0;//V
1558 c_ox[3] = 9.06e-15;//F/micron2
1559 mobility_eff[3] = 367.29 * (1e-2 * 1e6 * 1e-2 * 1e6);//micron2 / Vs
1560 Vdsat[3] = 0.0972; //V/micron
1561 c_g_ideal[3] = 1.99e-16;//F/micron
1562 c_fringe[3] = 0.053e-15;//F/micron

--- 14 unchanged lines hidden (view full) ---

1577 I_off_n[3][40] = 1.19e-12;
1578 I_off_n[3][50] = 1.98e-12;
1579 I_off_n[3][60] = 3.22e-12;
1580 I_off_n[3][70] = 5.09e-12;
1581 I_off_n[3][80] = 7.85e-12;
1582 I_off_n[3][90] = 1.18e-11;
1583 I_off_n[3][100] = 1.72e-11;
1584
1698 }
1699 else
1700 {
1701 //some error handler
1702 }
1585 } else {
1586 //some error handler
1587 }
1703
1588
1704 //SRAM cell properties
1705 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1706 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1707 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1708 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1709 curr_asp_ratio_cell_sram = 1.46;
1710 //CAM cell properties //TODO: data need to be revisited
1711 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1712 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1713 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1714 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1715 curr_asp_ratio_cell_cam = 2.92;
1716 //Empirical undifferetiated core/FU coefficient
1717 curr_logic_scaling_co_eff = 0.7*0.7*0.7*0.7*0.7;
1718 curr_core_tx_density = 1.25/0.7/0.7/0.7;
1719 curr_sckt_co_eff = 1.1296;
1720 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1721 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1589 //SRAM cell properties
1590 curr_Wmemcella_sram = 1.31 * g_ip->F_sz_um;
1591 curr_Wmemcellpmos_sram = 1.23 * g_ip->F_sz_um;
1592 curr_Wmemcellnmos_sram = 2.08 * g_ip->F_sz_um;
1593 curr_area_cell_sram = 146 * g_ip->F_sz_um * g_ip->F_sz_um;
1594 curr_asp_ratio_cell_sram = 1.46;
1595 //CAM cell properties //TODO: data need to be revisited
1596 curr_Wmemcella_cam = 1.31 * g_ip->F_sz_um;
1597 curr_Wmemcellpmos_cam = 1.23 * g_ip->F_sz_um;
1598 curr_Wmemcellnmos_cam = 2.08 * g_ip->F_sz_um;
1599 curr_area_cell_cam = 292 * g_ip->F_sz_um * g_ip->F_sz_um;
1600 curr_asp_ratio_cell_cam = 2.92;
1601 //Empirical undifferetiated core/FU coefficient
1602 curr_logic_scaling_co_eff = 0.7 * 0.7 * 0.7 * 0.7 * 0.7;
1603 curr_core_tx_density = 1.25 / 0.7 / 0.7 / 0.7;
1604 curr_sckt_co_eff = 1.1296;
1605 curr_chip_layout_overhead = 1.2;//die measurement results based on Niagara 1 and 2
1606 curr_macro_layout_overhead = 1.1;//EDA placement and routing tool rule of thumb
1722 }
1723
1724
1607 }
1608
1609
1725 g_tp.peri_global.Vdd += curr_alpha * vdd[peri_global_tech_type];
1726 g_tp.peri_global.t_ox += curr_alpha * t_ox[peri_global_tech_type];
1727 g_tp.peri_global.Vth += curr_alpha * v_th[peri_global_tech_type];
1728 g_tp.peri_global.C_ox += curr_alpha * c_ox[peri_global_tech_type];
1729 g_tp.peri_global.C_g_ideal += curr_alpha * c_g_ideal[peri_global_tech_type];
1730 g_tp.peri_global.C_fringe += curr_alpha * c_fringe[peri_global_tech_type];
1731 g_tp.peri_global.C_junc += curr_alpha * c_junc[peri_global_tech_type];
1732 g_tp.peri_global.C_junc_sidewall = 0.25e-15; // F/micron
1733 g_tp.peri_global.l_phy += curr_alpha * Lphy[peri_global_tech_type];
1734 g_tp.peri_global.l_elec += curr_alpha * Lelec[peri_global_tech_type];
1735 g_tp.peri_global.I_on_n += curr_alpha * I_on_n[peri_global_tech_type];
1736 g_tp.peri_global.R_nch_on += curr_alpha * Rnchannelon[peri_global_tech_type];
1737 g_tp.peri_global.R_pch_on += curr_alpha * Rpchannelon[peri_global_tech_type];
1738 g_tp.peri_global.n_to_p_eff_curr_drv_ratio
1739 += curr_alpha * n_to_p_eff_curr_drv_ratio[peri_global_tech_type];
1740 g_tp.peri_global.long_channel_leakage_reduction
1741 += curr_alpha * long_channel_leakage_reduction[peri_global_tech_type];
1742 g_tp.peri_global.I_off_n += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300];
1743 g_tp.peri_global.I_off_p += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300];
1744 g_tp.peri_global.I_g_on_n += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300];
1745 g_tp.peri_global.I_g_on_p += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300];
1746 gmp_to_gmn_multiplier_periph_global += curr_alpha * gmp_to_gmn_multiplier[peri_global_tech_type];
1610 g_tp.peri_global.Vdd += curr_alpha * vdd[peri_global_tech_type];
1611 g_tp.peri_global.t_ox += curr_alpha * t_ox[peri_global_tech_type];
1612 g_tp.peri_global.Vth += curr_alpha * v_th[peri_global_tech_type];
1613 g_tp.peri_global.C_ox += curr_alpha * c_ox[peri_global_tech_type];
1614 g_tp.peri_global.C_g_ideal += curr_alpha * c_g_ideal[peri_global_tech_type];
1615 g_tp.peri_global.C_fringe += curr_alpha * c_fringe[peri_global_tech_type];
1616 g_tp.peri_global.C_junc += curr_alpha * c_junc[peri_global_tech_type];
1617 g_tp.peri_global.C_junc_sidewall = 0.25e-15; // F/micron
1618 g_tp.peri_global.l_phy += curr_alpha * Lphy[peri_global_tech_type];
1619 g_tp.peri_global.l_elec += curr_alpha * Lelec[peri_global_tech_type];
1620 g_tp.peri_global.I_on_n += curr_alpha * I_on_n[peri_global_tech_type];
1621 g_tp.peri_global.R_nch_on += curr_alpha * Rnchannelon[peri_global_tech_type];
1622 g_tp.peri_global.R_pch_on += curr_alpha * Rpchannelon[peri_global_tech_type];
1623 g_tp.peri_global.n_to_p_eff_curr_drv_ratio
1624 += curr_alpha * n_to_p_eff_curr_drv_ratio[peri_global_tech_type];
1625 g_tp.peri_global.long_channel_leakage_reduction
1626 += curr_alpha * long_channel_leakage_reduction[peri_global_tech_type];
1627 g_tp.peri_global.I_off_n += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300];
1628 g_tp.peri_global.I_off_p += curr_alpha * I_off_n[peri_global_tech_type][g_ip->temp - 300];
1629 g_tp.peri_global.I_g_on_n += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300];
1630 g_tp.peri_global.I_g_on_p += curr_alpha * I_g_on_n[peri_global_tech_type][g_ip->temp - 300];
1631 gmp_to_gmn_multiplier_periph_global += curr_alpha * gmp_to_gmn_multiplier[peri_global_tech_type];
1747
1632
1748 g_tp.sram_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type];
1749 g_tp.sram_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type];
1750 g_tp.sram_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type];
1751 g_tp.sram_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type];
1752 g_tp.sram_cell.Vth += curr_alpha * v_th[ram_cell_tech_type];
1753 g_tp.sram_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type];
1754 g_tp.sram_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type];
1755 g_tp.sram_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type];
1756 g_tp.sram_cell.C_junc_sidewall = 0.25e-15; // F/micron
1757 g_tp.sram_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type];
1758 g_tp.sram_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type];
1759 g_tp.sram_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type];
1760 g_tp.sram_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type];
1761 g_tp.sram_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type];
1762 g_tp.sram_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1763 g_tp.sram_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1764 g_tp.sram_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1765 g_tp.sram_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1633 g_tp.sram_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type];
1634 g_tp.sram_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type];
1635 g_tp.sram_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type];
1636 g_tp.sram_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type];
1637 g_tp.sram_cell.Vth += curr_alpha * v_th[ram_cell_tech_type];
1638 g_tp.sram_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type];
1639 g_tp.sram_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type];
1640 g_tp.sram_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type];
1641 g_tp.sram_cell.C_junc_sidewall = 0.25e-15; // F/micron
1642 g_tp.sram_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type];
1643 g_tp.sram_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type];
1644 g_tp.sram_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type];
1645 g_tp.sram_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type];
1646 g_tp.sram_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type];
1647 g_tp.sram_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1648 g_tp.sram_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1649 g_tp.sram_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1650 g_tp.sram_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1766
1651
1767 g_tp.dram_cell_Vdd += curr_alpha * curr_vdd_dram_cell;
1768 g_tp.dram_acc.Vth += curr_alpha * curr_v_th_dram_access_transistor;
1769 g_tp.dram_acc.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor];
1770 g_tp.dram_acc.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor];
1771 g_tp.dram_acc.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor];
1772 g_tp.dram_acc.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor];
1773 g_tp.dram_acc.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor];
1774 g_tp.dram_acc.C_junc_sidewall = 0.25e-15; // F/micron
1775 g_tp.dram_cell_I_on += curr_alpha * curr_I_on_dram_cell;
1776 g_tp.dram_cell_I_off_worst_case_len_temp += curr_alpha * curr_I_off_dram_cell_worst_case_length_temp;
1777 g_tp.dram_acc.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor];
1778 g_tp.dram_cell_C += curr_alpha * curr_c_dram_cell;
1779 g_tp.vpp += curr_alpha * curr_vpp;
1780 g_tp.dram_wl.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor];
1781 g_tp.dram_wl.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor];
1782 g_tp.dram_wl.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor];
1783 g_tp.dram_wl.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor];
1784 g_tp.dram_wl.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor];
1785 g_tp.dram_wl.C_junc_sidewall = 0.25e-15; // F/micron
1786 g_tp.dram_wl.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor];
1787 g_tp.dram_wl.R_nch_on += curr_alpha * Rnchannelon[dram_cell_tech_flavor];
1788 g_tp.dram_wl.R_pch_on += curr_alpha * Rpchannelon[dram_cell_tech_flavor];
1789 g_tp.dram_wl.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[dram_cell_tech_flavor];
1790 g_tp.dram_wl.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[dram_cell_tech_flavor];
1791 g_tp.dram_wl.I_off_n += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300];
1792 g_tp.dram_wl.I_off_p += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300];
1652 g_tp.dram_cell_Vdd += curr_alpha * curr_vdd_dram_cell;
1653 g_tp.dram_acc.Vth += curr_alpha * curr_v_th_dram_access_transistor;
1654 g_tp.dram_acc.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor];
1655 g_tp.dram_acc.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor];
1656 g_tp.dram_acc.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor];
1657 g_tp.dram_acc.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor];
1658 g_tp.dram_acc.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor];
1659 g_tp.dram_acc.C_junc_sidewall = 0.25e-15; // F/micron
1660 g_tp.dram_cell_I_on += curr_alpha * curr_I_on_dram_cell;
1661 g_tp.dram_cell_I_off_worst_case_len_temp += curr_alpha * curr_I_off_dram_cell_worst_case_length_temp;
1662 g_tp.dram_acc.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor];
1663 g_tp.dram_cell_C += curr_alpha * curr_c_dram_cell;
1664 g_tp.vpp += curr_alpha * curr_vpp;
1665 g_tp.dram_wl.l_phy += curr_alpha * Lphy[dram_cell_tech_flavor];
1666 g_tp.dram_wl.l_elec += curr_alpha * Lelec[dram_cell_tech_flavor];
1667 g_tp.dram_wl.C_g_ideal += curr_alpha * c_g_ideal[dram_cell_tech_flavor];
1668 g_tp.dram_wl.C_fringe += curr_alpha * c_fringe[dram_cell_tech_flavor];
1669 g_tp.dram_wl.C_junc += curr_alpha * c_junc[dram_cell_tech_flavor];
1670 g_tp.dram_wl.C_junc_sidewall = 0.25e-15; // F/micron
1671 g_tp.dram_wl.I_on_n += curr_alpha * I_on_n[dram_cell_tech_flavor];
1672 g_tp.dram_wl.R_nch_on += curr_alpha * Rnchannelon[dram_cell_tech_flavor];
1673 g_tp.dram_wl.R_pch_on += curr_alpha * Rpchannelon[dram_cell_tech_flavor];
1674 g_tp.dram_wl.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[dram_cell_tech_flavor];
1675 g_tp.dram_wl.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[dram_cell_tech_flavor];
1676 g_tp.dram_wl.I_off_n += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300];
1677 g_tp.dram_wl.I_off_p += curr_alpha * I_off_n[dram_cell_tech_flavor][g_ip->temp - 300];
1793
1678
1794 g_tp.cam_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type];
1795 g_tp.cam_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type];
1796 g_tp.cam_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type];
1797 g_tp.cam_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type];
1798 g_tp.cam_cell.Vth += curr_alpha * v_th[ram_cell_tech_type];
1799 g_tp.cam_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type];
1800 g_tp.cam_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type];
1801 g_tp.cam_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type];
1802 g_tp.cam_cell.C_junc_sidewall = 0.25e-15; // F/micron
1803 g_tp.cam_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type];
1804 g_tp.cam_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type];
1805 g_tp.cam_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type];
1806 g_tp.cam_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type];
1807 g_tp.cam_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type];
1808 g_tp.cam_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1809 g_tp.cam_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1810 g_tp.cam_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1811 g_tp.cam_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1679 g_tp.cam_cell.Vdd += curr_alpha * vdd[ram_cell_tech_type];
1680 g_tp.cam_cell.l_phy += curr_alpha * Lphy[ram_cell_tech_type];
1681 g_tp.cam_cell.l_elec += curr_alpha * Lelec[ram_cell_tech_type];
1682 g_tp.cam_cell.t_ox += curr_alpha * t_ox[ram_cell_tech_type];
1683 g_tp.cam_cell.Vth += curr_alpha * v_th[ram_cell_tech_type];
1684 g_tp.cam_cell.C_g_ideal += curr_alpha * c_g_ideal[ram_cell_tech_type];
1685 g_tp.cam_cell.C_fringe += curr_alpha * c_fringe[ram_cell_tech_type];
1686 g_tp.cam_cell.C_junc += curr_alpha * c_junc[ram_cell_tech_type];
1687 g_tp.cam_cell.C_junc_sidewall = 0.25e-15; // F/micron
1688 g_tp.cam_cell.I_on_n += curr_alpha * I_on_n[ram_cell_tech_type];
1689 g_tp.cam_cell.R_nch_on += curr_alpha * Rnchannelon[ram_cell_tech_type];
1690 g_tp.cam_cell.R_pch_on += curr_alpha * Rpchannelon[ram_cell_tech_type];
1691 g_tp.cam_cell.n_to_p_eff_curr_drv_ratio += curr_alpha * n_to_p_eff_curr_drv_ratio[ram_cell_tech_type];
1692 g_tp.cam_cell.long_channel_leakage_reduction += curr_alpha * long_channel_leakage_reduction[ram_cell_tech_type];
1693 g_tp.cam_cell.I_off_n += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1694 g_tp.cam_cell.I_off_p += curr_alpha * I_off_n[ram_cell_tech_type][g_ip->temp - 300];
1695 g_tp.cam_cell.I_g_on_n += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1696 g_tp.cam_cell.I_g_on_p += curr_alpha * I_g_on_n[ram_cell_tech_type][g_ip->temp - 300];
1812
1697
1813 g_tp.dram.cell_a_w += curr_alpha * curr_Wmemcella_dram;
1814 g_tp.dram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_dram;
1815 g_tp.dram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_dram;
1816 area_cell_dram += curr_alpha * curr_area_cell_dram;
1817 asp_ratio_cell_dram += curr_alpha * curr_asp_ratio_cell_dram;
1698 g_tp.dram.cell_a_w += curr_alpha * curr_Wmemcella_dram;
1699 g_tp.dram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_dram;
1700 g_tp.dram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_dram;
1701 area_cell_dram += curr_alpha * curr_area_cell_dram;
1702 asp_ratio_cell_dram += curr_alpha * curr_asp_ratio_cell_dram;
1818
1703
1819 g_tp.sram.cell_a_w += curr_alpha * curr_Wmemcella_sram;
1820 g_tp.sram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_sram;
1821 g_tp.sram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_sram;
1822 area_cell_sram += curr_alpha * curr_area_cell_sram;
1823 asp_ratio_cell_sram += curr_alpha * curr_asp_ratio_cell_sram;
1704 g_tp.sram.cell_a_w += curr_alpha * curr_Wmemcella_sram;
1705 g_tp.sram.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_sram;
1706 g_tp.sram.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_sram;
1707 area_cell_sram += curr_alpha * curr_area_cell_sram;
1708 asp_ratio_cell_sram += curr_alpha * curr_asp_ratio_cell_sram;
1824
1709
1825 g_tp.cam.cell_a_w += curr_alpha * curr_Wmemcella_cam;//sheng
1826 g_tp.cam.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_cam;
1827 g_tp.cam.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_cam;
1828 area_cell_cam += curr_alpha * curr_area_cell_cam;
1829 asp_ratio_cell_cam += curr_alpha * curr_asp_ratio_cell_cam;
1710 g_tp.cam.cell_a_w += curr_alpha * curr_Wmemcella_cam;//sheng
1711 g_tp.cam.cell_pmos_w += curr_alpha * curr_Wmemcellpmos_cam;
1712 g_tp.cam.cell_nmos_w += curr_alpha * curr_Wmemcellnmos_cam;
1713 area_cell_cam += curr_alpha * curr_area_cell_cam;
1714 asp_ratio_cell_cam += curr_alpha * curr_asp_ratio_cell_cam;
1830
1715
1831 //Sense amplifier latch Gm calculation
1832 mobility_eff_periph_global += curr_alpha * mobility_eff[peri_global_tech_type];
1833 Vdsat_periph_global += curr_alpha * Vdsat[peri_global_tech_type];
1716 //Sense amplifier latch Gm calculation
1717 mobility_eff_periph_global += curr_alpha * mobility_eff[peri_global_tech_type];
1718 Vdsat_periph_global += curr_alpha * Vdsat[peri_global_tech_type];
1834
1719
1835 //Empirical undifferetiated core/FU coefficient
1836 g_tp.scaling_factor.logic_scaling_co_eff += curr_alpha * curr_logic_scaling_co_eff;
1837 g_tp.scaling_factor.core_tx_density += curr_alpha * curr_core_tx_density;
1838 g_tp.chip_layout_overhead += curr_alpha * curr_chip_layout_overhead;
1839 g_tp.macro_layout_overhead += curr_alpha * curr_macro_layout_overhead;
1840 g_tp.sckt_co_eff += curr_alpha * curr_sckt_co_eff;
1841 }
1720 //Empirical undifferetiated core/FU coefficient
1721 g_tp.scaling_factor.logic_scaling_co_eff += curr_alpha * curr_logic_scaling_co_eff;
1722 g_tp.scaling_factor.core_tx_density += curr_alpha * curr_core_tx_density;
1723 g_tp.chip_layout_overhead += curr_alpha * curr_chip_layout_overhead;
1724 g_tp.macro_layout_overhead += curr_alpha * curr_macro_layout_overhead;
1725 g_tp.sckt_co_eff += curr_alpha * curr_sckt_co_eff;
1726 }
1842
1843
1727
1728
1844 //Currently we are not modeling the resistance/capacitance of poly anywhere.
1845 //Continuous function (or date have been processed) does not need linear interpolation
1846 g_tp.w_comp_inv_p1 = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process
1847 g_tp.w_comp_inv_n1 = 7.5 * g_ip->F_sz_um;//this was 6 micron for the 0.8 micron process
1848 g_tp.w_comp_inv_p2 = 25 * g_ip->F_sz_um;//this was 20 micron for the 0.8 micron process
1849 g_tp.w_comp_inv_n2 = 15 * g_ip->F_sz_um;//this was 12 micron for the 0.8 micron process
1850 g_tp.w_comp_inv_p3 = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process
1851 g_tp.w_comp_inv_n3 = 30 * g_ip->F_sz_um;//this was 24 micron for the 0.8 micron process
1852 g_tp.w_eval_inv_p = 100 * g_ip->F_sz_um;//this was 80 micron for the 0.8 micron process
1853 g_tp.w_eval_inv_n = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process
1854 g_tp.w_comp_n = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process
1855 g_tp.w_comp_p = 37.5 * g_ip->F_sz_um;//this was 30 micron for the 0.8 micron process
1729 //Currently we are not modeling the resistance/capacitance of poly anywhere.
1730 //Continuous function (or date have been processed) does not need linear interpolation
1731 g_tp.w_comp_inv_p1 = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process
1732 g_tp.w_comp_inv_n1 = 7.5 * g_ip->F_sz_um;//this was 6 micron for the 0.8 micron process
1733 g_tp.w_comp_inv_p2 = 25 * g_ip->F_sz_um;//this was 20 micron for the 0.8 micron process
1734 g_tp.w_comp_inv_n2 = 15 * g_ip->F_sz_um;//this was 12 micron for the 0.8 micron process
1735 g_tp.w_comp_inv_p3 = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process
1736 g_tp.w_comp_inv_n3 = 30 * g_ip->F_sz_um;//this was 24 micron for the 0.8 micron process
1737 g_tp.w_eval_inv_p = 100 * g_ip->F_sz_um;//this was 80 micron for the 0.8 micron process
1738 g_tp.w_eval_inv_n = 50 * g_ip->F_sz_um;//this was 40 micron for the 0.8 micron process
1739 g_tp.w_comp_n = 12.5 * g_ip->F_sz_um;//this was 10 micron for the 0.8 micron process
1740 g_tp.w_comp_p = 37.5 * g_ip->F_sz_um;//this was 30 micron for the 0.8 micron process
1856
1741
1857 g_tp.MIN_GAP_BET_P_AND_N_DIFFS = 5 * g_ip->F_sz_um;
1858 g_tp.MIN_GAP_BET_SAME_TYPE_DIFFS = 1.5 * g_ip->F_sz_um;
1859 g_tp.HPOWERRAIL = 2 * g_ip->F_sz_um;
1860 g_tp.cell_h_def = 50 * g_ip->F_sz_um;
1861 g_tp.w_poly_contact = g_ip->F_sz_um;
1862 g_tp.spacing_poly_to_contact = g_ip->F_sz_um;
1863 g_tp.spacing_poly_to_poly = 1.5 * g_ip->F_sz_um;
1864 g_tp.ram_wl_stitching_overhead_ = 7.5 * g_ip->F_sz_um;
1742 g_tp.MIN_GAP_BET_P_AND_N_DIFFS = 5 * g_ip->F_sz_um;
1743 g_tp.MIN_GAP_BET_SAME_TYPE_DIFFS = 1.5 * g_ip->F_sz_um;
1744 g_tp.HPOWERRAIL = 2 * g_ip->F_sz_um;
1745 g_tp.cell_h_def = 50 * g_ip->F_sz_um;
1746 g_tp.w_poly_contact = g_ip->F_sz_um;
1747 g_tp.spacing_poly_to_contact = g_ip->F_sz_um;
1748 g_tp.spacing_poly_to_poly = 1.5 * g_ip->F_sz_um;
1749 g_tp.ram_wl_stitching_overhead_ = 7.5 * g_ip->F_sz_um;
1865
1750
1866 g_tp.min_w_nmos_ = 3 * g_ip->F_sz_um / 2;
1867 g_tp.max_w_nmos_ = 100 * g_ip->F_sz_um;
1868 g_tp.w_iso = 12.5*g_ip->F_sz_um;//was 10 micron for the 0.8 micron process
1869 g_tp.w_sense_n = 3.75*g_ip->F_sz_um; // sense amplifier N-trans; was 3 micron for the 0.8 micron process
1870 g_tp.w_sense_p = 7.5*g_ip->F_sz_um; // sense amplifier P-trans; was 6 micron for the 0.8 micron process
1871 g_tp.w_sense_en = 5*g_ip->F_sz_um; // Sense enable transistor of the sense amplifier; was 4 micron for the 0.8 micron process
1872 g_tp.w_nmos_b_mux = 6 * g_tp.min_w_nmos_;
1873 g_tp.w_nmos_sa_mux = 6 * g_tp.min_w_nmos_;
1751 g_tp.min_w_nmos_ = 3 * g_ip->F_sz_um / 2;
1752 g_tp.max_w_nmos_ = 100 * g_ip->F_sz_um;
1753 //was 10 micron for the 0.8 micron process
1754 g_tp.w_iso = 12.5 * g_ip->F_sz_um;
1755 // sense amplifier N-trans; was 3 micron for the 0.8 micron process
1756 g_tp.w_sense_n = 3.75 * g_ip->F_sz_um;
1757 // sense amplifier P-trans; was 6 micron for the 0.8 micron process
1758 g_tp.w_sense_p = 7.5 * g_ip->F_sz_um;
1759 // Sense enable transistor of the sense amplifier; was 4 micron for the
1760 //0.8 micron process
1761 g_tp.w_sense_en = 5 * g_ip->F_sz_um;
1762 g_tp.w_nmos_b_mux = 6 * g_tp.min_w_nmos_;
1763 g_tp.w_nmos_sa_mux= 6 * g_tp.min_w_nmos_;
1874
1764
1875 if (ram_cell_tech_type == comm_dram)
1876 {
1877 g_tp.max_w_nmos_dec = 8 * g_ip->F_sz_um;
1878 g_tp.h_dec = 8; // in the unit of memory cell height
1879 }
1880 else
1881 {
1882 g_tp.max_w_nmos_dec = g_tp.max_w_nmos_;
1883 g_tp.h_dec = 4; // in the unit of memory cell height
1884 }
1765 if (ram_cell_tech_type == comm_dram) {
1766 g_tp.max_w_nmos_dec = 8 * g_ip->F_sz_um;
1767 g_tp.h_dec = 8; // in the unit of memory cell height
1768 } else {
1769 g_tp.max_w_nmos_dec = g_tp.max_w_nmos_;
1770 g_tp.h_dec = 4; // in the unit of memory cell height
1771 }
1885
1772
1886 g_tp.peri_global.C_overlap = 0.2 * g_tp.peri_global.C_g_ideal;
1887 g_tp.sram_cell.C_overlap = 0.2 * g_tp.sram_cell.C_g_ideal;
1888 g_tp.cam_cell.C_overlap = 0.2 * g_tp.cam_cell.C_g_ideal;
1773 g_tp.peri_global.C_overlap = 0.2 * g_tp.peri_global.C_g_ideal;
1774 g_tp.sram_cell.C_overlap = 0.2 * g_tp.sram_cell.C_g_ideal;
1775 g_tp.cam_cell.C_overlap = 0.2 * g_tp.cam_cell.C_g_ideal;
1889
1776
1890 g_tp.dram_acc.C_overlap = 0.2 * g_tp.dram_acc.C_g_ideal;
1891 g_tp.dram_acc.R_nch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_n;
1892 //g_tp.dram_acc.R_pch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_p;
1777 g_tp.dram_acc.C_overlap = 0.2 * g_tp.dram_acc.C_g_ideal;
1778 g_tp.dram_acc.R_nch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_n;
1779 //g_tp.dram_acc.R_pch_on = g_tp.dram_cell_Vdd / g_tp.dram_acc.I_on_p;
1893
1780
1894 g_tp.dram_wl.C_overlap = 0.2 * g_tp.dram_wl.C_g_ideal;
1781 g_tp.dram_wl.C_overlap = 0.2 * g_tp.dram_wl.C_g_ideal;
1895
1782
1896 double gmn_sense_amp_latch = (mobility_eff_periph_global / 2) * g_tp.peri_global.C_ox * (g_tp.w_sense_n / g_tp.peri_global.l_elec) * Vdsat_periph_global;
1897 double gmp_sense_amp_latch = gmp_to_gmn_multiplier_periph_global * gmn_sense_amp_latch;
1898 g_tp.gm_sense_amp_latch = gmn_sense_amp_latch + gmp_sense_amp_latch;
1783 double gmn_sense_amp_latch = (mobility_eff_periph_global / 2) * g_tp.peri_global.C_ox * (g_tp.w_sense_n / g_tp.peri_global.l_elec) * Vdsat_periph_global;
1784 double gmp_sense_amp_latch = gmp_to_gmn_multiplier_periph_global * gmn_sense_amp_latch;
1785 g_tp.gm_sense_amp_latch = gmn_sense_amp_latch + gmp_sense_amp_latch;
1899
1786
1900 g_tp.dram.b_w = sqrt(area_cell_dram / (asp_ratio_cell_dram));
1901 g_tp.dram.b_h = asp_ratio_cell_dram * g_tp.dram.b_w;
1902 g_tp.sram.b_w = sqrt(area_cell_sram / (asp_ratio_cell_sram));
1903 g_tp.sram.b_h = asp_ratio_cell_sram * g_tp.sram.b_w;
1904 g_tp.cam.b_w = sqrt(area_cell_cam / (asp_ratio_cell_cam));//Sheng
1905 g_tp.cam.b_h = asp_ratio_cell_cam * g_tp.cam.b_w;
1787 g_tp.dram.b_w = sqrt(area_cell_dram / (asp_ratio_cell_dram));
1788 g_tp.dram.b_h = asp_ratio_cell_dram * g_tp.dram.b_w;
1789 g_tp.sram.b_w = sqrt(area_cell_sram / (asp_ratio_cell_sram));
1790 g_tp.sram.b_h = asp_ratio_cell_sram * g_tp.sram.b_w;
1791 g_tp.cam.b_w = sqrt(area_cell_cam / (asp_ratio_cell_cam));//Sheng
1792 g_tp.cam.b_h = asp_ratio_cell_cam * g_tp.cam.b_w;
1906
1793
1907 g_tp.dram.Vbitpre = g_tp.dram_cell_Vdd;
1908 g_tp.sram.Vbitpre = vdd[ram_cell_tech_type];
1909 g_tp.cam.Vbitpre = vdd[ram_cell_tech_type];//Sheng
1910 pmos_to_nmos_sizing_r = pmos_to_nmos_sz_ratio();
1911 g_tp.w_pmos_bl_precharge = 6 * pmos_to_nmos_sizing_r * g_tp.min_w_nmos_;
1912 g_tp.w_pmos_bl_eq = pmos_to_nmos_sizing_r * g_tp.min_w_nmos_;
1794 g_tp.dram.Vbitpre = g_tp.dram_cell_Vdd;
1795 g_tp.sram.Vbitpre = vdd[ram_cell_tech_type];
1796 g_tp.cam.Vbitpre = vdd[ram_cell_tech_type];//Sheng
1797 pmos_to_nmos_sizing_r = pmos_to_nmos_sz_ratio();
1798 g_tp.w_pmos_bl_precharge = 6 * pmos_to_nmos_sizing_r * g_tp.min_w_nmos_;
1799 g_tp.w_pmos_bl_eq = pmos_to_nmos_sizing_r * g_tp.min_w_nmos_;
1913
1914
1800
1801
1915 double wire_pitch [NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1916 wire_r_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1917 wire_c_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1918 horiz_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1919 vert_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1920 aspect_ratio[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1921 miller_value[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1922 ild_thickness[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES];
1802 double wire_pitch [NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1803 wire_r_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1804 wire_c_per_micron[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1805 horiz_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1806 vert_dielectric_constant[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1807 aspect_ratio[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1808 miller_value[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES],
1809 ild_thickness[NUMBER_INTERCONNECT_PROJECTION_TYPES][NUMBER_WIRE_TYPES];
1923
1810
1924 for (iter=0; iter<=1; ++iter)
1925 {
1926 // linear interpolation
1927 if (iter == 0)
1928 {
1929 tech = tech_lo;
1930 if (tech_lo == tech_hi)
1931 {
1932 curr_alpha = 1;
1933 }
1934 else
1935 {
1936 curr_alpha = (technology - tech_hi)/(tech_lo - tech_hi);
1937 }
1938 }
1939 else
1940 {
1941 tech = tech_hi;
1942 if (tech_lo == tech_hi)
1943 {
1944 break;
1945 }
1946 else
1947 {
1948 curr_alpha = (tech_lo - technology)/(tech_lo - tech_hi);
1949 }
1950 }
1811 for (iter = 0; iter <= 1; ++iter) {
1812 // linear interpolation
1813 if (iter == 0) {
1814 tech = tech_lo;
1815 if (tech_lo == tech_hi) {
1816 curr_alpha = 1;
1817 } else {
1818 curr_alpha = (technology - tech_hi) / (tech_lo - tech_hi);
1819 }
1820 } else {
1821 tech = tech_hi;
1822 if (tech_lo == tech_hi) {
1823 break;
1824 } else {
1825 curr_alpha = (tech_lo - technology) / (tech_lo - tech_hi);
1826 }
1827 }
1951
1828
1952 if (tech == 180)
1953 {
1954 //Aggressive projections
1955 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron
1956 aspect_ratio[0][0] = 2.0;
1957 wire_width = wire_pitch[0][0] / 2; //micron
1958 wire_thickness = aspect_ratio[0][0] * wire_width;//micron
1959 wire_spacing = wire_pitch[0][0] - wire_width;//micron
1960 barrier_thickness = 0.017;//micron
1961 dishing_thickness = 0;//micron
1962 alpha_scatter = 1;
1963 wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width,
1964 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron
1965 ild_thickness[0][0] = 0.75;//micron
1966 miller_value[0][0] = 1.5;
1967 horiz_dielectric_constant[0][0] = 2.709;
1968 vert_dielectric_constant[0][0] = 3.9;
1969 fringe_cap = 0.115e-15; //F/micron
1970 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1971 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0],
1972 vert_dielectric_constant[0][0],
1973 fringe_cap);//F/micron.
1829 if (tech == 180) {
1830 //Aggressive projections
1831 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron
1832 aspect_ratio[0][0] = 2.0;
1833 wire_width = wire_pitch[0][0] / 2; //micron
1834 wire_thickness = aspect_ratio[0][0] * wire_width;//micron
1835 wire_spacing = wire_pitch[0][0] - wire_width;//micron
1836 barrier_thickness = 0.017;//micron
1837 dishing_thickness = 0;//micron
1838 alpha_scatter = 1;
1839 wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width,
1840 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron
1841 ild_thickness[0][0] = 0.75;//micron
1842 miller_value[0][0] = 1.5;
1843 horiz_dielectric_constant[0][0] = 2.709;
1844 vert_dielectric_constant[0][0] = 3.9;
1845 fringe_cap = 0.115e-15; //F/micron
1846 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1847 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0],
1848 vert_dielectric_constant[0][0],
1849 fringe_cap);//F/micron.
1974
1850
1975 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
1976 wire_width = wire_pitch[0][1] / 2;
1977 aspect_ratio[0][1] = 2.4;
1978 wire_thickness = aspect_ratio[0][1] * wire_width;
1979 wire_spacing = wire_pitch[0][1] - wire_width;
1980 wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width,
1981 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1982 ild_thickness[0][1] = 0.75;//micron
1983 miller_value[0][1] = 1.5;
1984 horiz_dielectric_constant[0][1] = 2.709;
1985 vert_dielectric_constant[0][1] = 3.9;
1986 fringe_cap = 0.115e-15; //F/micron
1987 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1988 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1],
1989 vert_dielectric_constant[0][1],
1990 fringe_cap);
1851 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
1852 wire_width = wire_pitch[0][1] / 2;
1853 aspect_ratio[0][1] = 2.4;
1854 wire_thickness = aspect_ratio[0][1] * wire_width;
1855 wire_spacing = wire_pitch[0][1] - wire_width;
1856 wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width,
1857 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1858 ild_thickness[0][1] = 0.75;//micron
1859 miller_value[0][1] = 1.5;
1860 horiz_dielectric_constant[0][1] = 2.709;
1861 vert_dielectric_constant[0][1] = 3.9;
1862 fringe_cap = 0.115e-15; //F/micron
1863 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1864 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1],
1865 vert_dielectric_constant[0][1],
1866 fringe_cap);
1991
1867
1992 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
1993 aspect_ratio[0][2] = 2.2;
1994 wire_width = wire_pitch[0][2] / 2;
1995 wire_thickness = aspect_ratio[0][2] * wire_width;
1996 wire_spacing = wire_pitch[0][2] - wire_width;
1997 wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width,
1998 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1999 ild_thickness[0][2] = 1.5;
2000 miller_value[0][2] = 1.5;
2001 horiz_dielectric_constant[0][2] = 2.709;
2002 vert_dielectric_constant[0][2] = 3.9;
2003 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2004 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2005 fringe_cap);
1868 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
1869 aspect_ratio[0][2] = 2.2;
1870 wire_width = wire_pitch[0][2] / 2;
1871 wire_thickness = aspect_ratio[0][2] * wire_width;
1872 wire_spacing = wire_pitch[0][2] - wire_width;
1873 wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width,
1874 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1875 ild_thickness[0][2] = 1.5;
1876 miller_value[0][2] = 1.5;
1877 horiz_dielectric_constant[0][2] = 2.709;
1878 vert_dielectric_constant[0][2] = 3.9;
1879 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1880 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
1881 fringe_cap);
2006
1882
2007 //Conservative projections
2008 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2009 aspect_ratio[1][0]= 2.0;
2010 wire_width = wire_pitch[1][0] / 2;
2011 wire_thickness = aspect_ratio[1][0] * wire_width;
2012 wire_spacing = wire_pitch[1][0] - wire_width;
2013 barrier_thickness = 0.017;
2014 dishing_thickness = 0;
2015 alpha_scatter = 1;
2016 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2017 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2018 ild_thickness[1][0] = 0.75;
2019 miller_value[1][0] = 1.5;
2020 horiz_dielectric_constant[1][0] = 3.038;
2021 vert_dielectric_constant[1][0] = 3.9;
2022 fringe_cap = 0.115e-15;
2023 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2024 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0],
2025 vert_dielectric_constant[1][0],
2026 fringe_cap);
1883 //Conservative projections
1884 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
1885 aspect_ratio[1][0] = 2.0;
1886 wire_width = wire_pitch[1][0] / 2;
1887 wire_thickness = aspect_ratio[1][0] * wire_width;
1888 wire_spacing = wire_pitch[1][0] - wire_width;
1889 barrier_thickness = 0.017;
1890 dishing_thickness = 0;
1891 alpha_scatter = 1;
1892 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
1893 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1894 ild_thickness[1][0] = 0.75;
1895 miller_value[1][0] = 1.5;
1896 horiz_dielectric_constant[1][0] = 3.038;
1897 vert_dielectric_constant[1][0] = 3.9;
1898 fringe_cap = 0.115e-15;
1899 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1900 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0],
1901 vert_dielectric_constant[1][0],
1902 fringe_cap);
2027
1903
2028 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2029 wire_width = wire_pitch[1][1] / 2;
2030 aspect_ratio[1][1] = 2.0;
2031 wire_thickness = aspect_ratio[1][1] * wire_width;
2032 wire_spacing = wire_pitch[1][1] - wire_width;
2033 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2034 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2035 ild_thickness[1][1] = 0.75;
2036 miller_value[1][1] = 1.5;
2037 horiz_dielectric_constant[1][1] = 3.038;
2038 vert_dielectric_constant[1][1] = 3.9;
2039 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2040 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1],
2041 vert_dielectric_constant[1][1],
2042 fringe_cap);
1904 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
1905 wire_width = wire_pitch[1][1] / 2;
1906 aspect_ratio[1][1] = 2.0;
1907 wire_thickness = aspect_ratio[1][1] * wire_width;
1908 wire_spacing = wire_pitch[1][1] - wire_width;
1909 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
1910 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1911 ild_thickness[1][1] = 0.75;
1912 miller_value[1][1] = 1.5;
1913 horiz_dielectric_constant[1][1] = 3.038;
1914 vert_dielectric_constant[1][1] = 3.9;
1915 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1916 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1],
1917 vert_dielectric_constant[1][1],
1918 fringe_cap);
2043
1919
2044 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2045 aspect_ratio[1][2] = 2.2;
2046 wire_width = wire_pitch[1][2] / 2;
2047 wire_thickness = aspect_ratio[1][2] * wire_width;
2048 wire_spacing = wire_pitch[1][2] - wire_width;
2049 dishing_thickness = 0.1 * wire_thickness;
2050 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2051 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2052 ild_thickness[1][2] = 1.98;
2053 miller_value[1][2] = 1.5;
2054 horiz_dielectric_constant[1][2] = 3.038;
2055 vert_dielectric_constant[1][2] = 3.9;
2056 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2057 ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2058 fringe_cap);
2059 //Nominal projections for commodity DRAM wordline/bitline
2060 wire_pitch[1][3] = 2 * 0.18;
2061 wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.18);
2062 wire_r_per_micron[1][3] = 12 / 0.18;
2063 }
2064 else if (tech == 90)
2065 {
2066 //Aggressive projections
2067 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron
2068 aspect_ratio[0][0] = 2.4;
2069 wire_width = wire_pitch[0][0] / 2; //micron
2070 wire_thickness = aspect_ratio[0][0] * wire_width;//micron
2071 wire_spacing = wire_pitch[0][0] - wire_width;//micron
2072 barrier_thickness = 0.01;//micron
2073 dishing_thickness = 0;//micron
2074 alpha_scatter = 1;
2075 wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2076 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron
2077 ild_thickness[0][0] = 0.48;//micron
2078 miller_value[0][0] = 1.5;
2079 horiz_dielectric_constant[0][0] = 2.709;
2080 vert_dielectric_constant[0][0] = 3.9;
2081 fringe_cap = 0.115e-15; //F/micron
2082 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2083 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0],
2084 vert_dielectric_constant[0][0],
2085 fringe_cap);//F/micron.
1920 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
1921 aspect_ratio[1][2] = 2.2;
1922 wire_width = wire_pitch[1][2] / 2;
1923 wire_thickness = aspect_ratio[1][2] * wire_width;
1924 wire_spacing = wire_pitch[1][2] - wire_width;
1925 dishing_thickness = 0.1 * wire_thickness;
1926 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
1927 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1928 ild_thickness[1][2] = 1.98;
1929 miller_value[1][2] = 1.5;
1930 horiz_dielectric_constant[1][2] = 3.038;
1931 vert_dielectric_constant[1][2] = 3.9;
1932 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1933 ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
1934 fringe_cap);
1935 //Nominal projections for commodity DRAM wordline/bitline
1936 wire_pitch[1][3] = 2 * 0.18;
1937 wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.18);
1938 wire_r_per_micron[1][3] = 12 / 0.18;
1939 } else if (tech == 90) {
1940 //Aggressive projections
1941 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//micron
1942 aspect_ratio[0][0] = 2.4;
1943 wire_width = wire_pitch[0][0] / 2; //micron
1944 wire_thickness = aspect_ratio[0][0] * wire_width;//micron
1945 wire_spacing = wire_pitch[0][0] - wire_width;//micron
1946 barrier_thickness = 0.01;//micron
1947 dishing_thickness = 0;//micron
1948 alpha_scatter = 1;
1949 wire_r_per_micron[0][0] = wire_resistance(CU_RESISTIVITY, wire_width,
1950 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);//ohm/micron
1951 ild_thickness[0][0] = 0.48;//micron
1952 miller_value[0][0] = 1.5;
1953 horiz_dielectric_constant[0][0] = 2.709;
1954 vert_dielectric_constant[0][0] = 3.9;
1955 fringe_cap = 0.115e-15; //F/micron
1956 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1957 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0],
1958 vert_dielectric_constant[0][0],
1959 fringe_cap);//F/micron.
2086
1960
2087 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2088 wire_width = wire_pitch[0][1] / 2;
2089 aspect_ratio[0][1] = 2.4;
2090 wire_thickness = aspect_ratio[0][1] * wire_width;
2091 wire_spacing = wire_pitch[0][1] - wire_width;
2092 wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2093 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2094 ild_thickness[0][1] = 0.48;//micron
2095 miller_value[0][1] = 1.5;
2096 horiz_dielectric_constant[0][1] = 2.709;
2097 vert_dielectric_constant[0][1] = 3.9;
2098 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2099 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1],
2100 vert_dielectric_constant[0][1],
2101 fringe_cap);
1961 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
1962 wire_width = wire_pitch[0][1] / 2;
1963 aspect_ratio[0][1] = 2.4;
1964 wire_thickness = aspect_ratio[0][1] * wire_width;
1965 wire_spacing = wire_pitch[0][1] - wire_width;
1966 wire_r_per_micron[0][1] = wire_resistance(CU_RESISTIVITY, wire_width,
1967 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1968 ild_thickness[0][1] = 0.48;//micron
1969 miller_value[0][1] = 1.5;
1970 horiz_dielectric_constant[0][1] = 2.709;
1971 vert_dielectric_constant[0][1] = 3.9;
1972 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1973 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1],
1974 vert_dielectric_constant[0][1],
1975 fringe_cap);
2102
1976
2103 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2104 aspect_ratio[0][2] = 2.7;
2105 wire_width = wire_pitch[0][2] / 2;
2106 wire_thickness = aspect_ratio[0][2] * wire_width;
2107 wire_spacing = wire_pitch[0][2] - wire_width;
2108 wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2109 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2110 ild_thickness[0][2] = 0.96;
2111 miller_value[0][2] = 1.5;
2112 horiz_dielectric_constant[0][2] = 2.709;
2113 vert_dielectric_constant[0][2] = 3.9;
2114 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2115 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2116 fringe_cap);
1977 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
1978 aspect_ratio[0][2] = 2.7;
1979 wire_width = wire_pitch[0][2] / 2;
1980 wire_thickness = aspect_ratio[0][2] * wire_width;
1981 wire_spacing = wire_pitch[0][2] - wire_width;
1982 wire_r_per_micron[0][2] = wire_resistance(CU_RESISTIVITY, wire_width,
1983 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
1984 ild_thickness[0][2] = 0.96;
1985 miller_value[0][2] = 1.5;
1986 horiz_dielectric_constant[0][2] = 2.709;
1987 vert_dielectric_constant[0][2] = 3.9;
1988 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
1989 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
1990 fringe_cap);
2117
1991
2118 //Conservative projections
2119 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2120 aspect_ratio[1][0] = 2.0;
2121 wire_width = wire_pitch[1][0] / 2;
2122 wire_thickness = aspect_ratio[1][0] * wire_width;
2123 wire_spacing = wire_pitch[1][0] - wire_width;
2124 barrier_thickness = 0.008;
2125 dishing_thickness = 0;
2126 alpha_scatter = 1;
2127 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2128 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2129 ild_thickness[1][0] = 0.48;
2130 miller_value[1][0] = 1.5;
2131 horiz_dielectric_constant[1][0] = 3.038;
2132 vert_dielectric_constant[1][0] = 3.9;
2133 fringe_cap = 0.115e-15;
2134 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2135 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0],
2136 vert_dielectric_constant[1][0],
2137 fringe_cap);
1992 //Conservative projections
1993 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
1994 aspect_ratio[1][0] = 2.0;
1995 wire_width = wire_pitch[1][0] / 2;
1996 wire_thickness = aspect_ratio[1][0] * wire_width;
1997 wire_spacing = wire_pitch[1][0] - wire_width;
1998 barrier_thickness = 0.008;
1999 dishing_thickness = 0;
2000 alpha_scatter = 1;
2001 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2002 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2003 ild_thickness[1][0] = 0.48;
2004 miller_value[1][0] = 1.5;
2005 horiz_dielectric_constant[1][0] = 3.038;
2006 vert_dielectric_constant[1][0] = 3.9;
2007 fringe_cap = 0.115e-15;
2008 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2009 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0],
2010 vert_dielectric_constant[1][0],
2011 fringe_cap);
2138
2012
2139 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2140 wire_width = wire_pitch[1][1] / 2;
2141 aspect_ratio[1][1] = 2.0;
2142 wire_thickness = aspect_ratio[1][1] * wire_width;
2143 wire_spacing = wire_pitch[1][1] - wire_width;
2144 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2145 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2146 ild_thickness[1][1] = 0.48;
2147 miller_value[1][1] = 1.5;
2148 horiz_dielectric_constant[1][1] = 3.038;
2149 vert_dielectric_constant[1][1] = 3.9;
2150 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2151 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1],
2152 vert_dielectric_constant[1][1],
2153 fringe_cap);
2013 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2014 wire_width = wire_pitch[1][1] / 2;
2015 aspect_ratio[1][1] = 2.0;
2016 wire_thickness = aspect_ratio[1][1] * wire_width;
2017 wire_spacing = wire_pitch[1][1] - wire_width;
2018 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2019 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2020 ild_thickness[1][1] = 0.48;
2021 miller_value[1][1] = 1.5;
2022 horiz_dielectric_constant[1][1] = 3.038;
2023 vert_dielectric_constant[1][1] = 3.9;
2024 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2025 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1],
2026 vert_dielectric_constant[1][1],
2027 fringe_cap);
2154
2028
2155 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2156 aspect_ratio[1][2] = 2.2;
2157 wire_width = wire_pitch[1][2] / 2;
2158 wire_thickness = aspect_ratio[1][2] * wire_width;
2159 wire_spacing = wire_pitch[1][2] - wire_width;
2160 dishing_thickness = 0.1 * wire_thickness;
2161 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2162 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2163 ild_thickness[1][2] = 1.1;
2164 miller_value[1][2] = 1.5;
2165 horiz_dielectric_constant[1][2] = 3.038;
2166 vert_dielectric_constant[1][2] = 3.9;
2167 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2168 ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2169 fringe_cap);
2170 //Nominal projections for commodity DRAM wordline/bitline
2171 wire_pitch[1][3] = 2 * 0.09;
2172 wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.09);
2173 wire_r_per_micron[1][3] = 12 / 0.09;
2174 }
2175 else if (tech == 65)
2176 {
2177 //Aggressive projections
2178 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;
2179 aspect_ratio[0][0] = 2.7;
2180 wire_width = wire_pitch[0][0] / 2;
2181 wire_thickness = aspect_ratio[0][0] * wire_width;
2182 wire_spacing = wire_pitch[0][0] - wire_width;
2183 barrier_thickness = 0;
2184 dishing_thickness = 0;
2185 alpha_scatter = 1;
2186 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2187 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2188 ild_thickness[0][0] = 0.405;
2189 miller_value[0][0] = 1.5;
2190 horiz_dielectric_constant[0][0] = 2.303;
2191 vert_dielectric_constant[0][0] = 3.9;
2192 fringe_cap = 0.115e-15;
2193 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2194 ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] ,
2195 fringe_cap);
2029 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2030 aspect_ratio[1][2] = 2.2;
2031 wire_width = wire_pitch[1][2] / 2;
2032 wire_thickness = aspect_ratio[1][2] * wire_width;
2033 wire_spacing = wire_pitch[1][2] - wire_width;
2034 dishing_thickness = 0.1 * wire_thickness;
2035 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2036 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2037 ild_thickness[1][2] = 1.1;
2038 miller_value[1][2] = 1.5;
2039 horiz_dielectric_constant[1][2] = 3.038;
2040 vert_dielectric_constant[1][2] = 3.9;
2041 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2042 ild_thickness[1][2] , miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2043 fringe_cap);
2044 //Nominal projections for commodity DRAM wordline/bitline
2045 wire_pitch[1][3] = 2 * 0.09;
2046 wire_c_per_micron[1][3] = 60e-15 / (256 * 2 * 0.09);
2047 wire_r_per_micron[1][3] = 12 / 0.09;
2048 } else if (tech == 65) {
2049 //Aggressive projections
2050 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;
2051 aspect_ratio[0][0] = 2.7;
2052 wire_width = wire_pitch[0][0] / 2;
2053 wire_thickness = aspect_ratio[0][0] * wire_width;
2054 wire_spacing = wire_pitch[0][0] - wire_width;
2055 barrier_thickness = 0;
2056 dishing_thickness = 0;
2057 alpha_scatter = 1;
2058 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2059 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2060 ild_thickness[0][0] = 0.405;
2061 miller_value[0][0] = 1.5;
2062 horiz_dielectric_constant[0][0] = 2.303;
2063 vert_dielectric_constant[0][0] = 3.9;
2064 fringe_cap = 0.115e-15;
2065 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2066 ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] ,
2067 fringe_cap);
2196
2068
2197 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2198 wire_width = wire_pitch[0][1] / 2;
2199 aspect_ratio[0][1] = 2.7;
2200 wire_thickness = aspect_ratio[0][1] * wire_width;
2201 wire_spacing = wire_pitch[0][1] - wire_width;
2202 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2203 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2204 ild_thickness[0][1] = 0.405;
2205 miller_value[0][1] = 1.5;
2206 horiz_dielectric_constant[0][1] = 2.303;
2207 vert_dielectric_constant[0][1] = 3.9;
2208 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2209 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1],
2210 vert_dielectric_constant[0][1],
2211 fringe_cap);
2069 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2070 wire_width = wire_pitch[0][1] / 2;
2071 aspect_ratio[0][1] = 2.7;
2072 wire_thickness = aspect_ratio[0][1] * wire_width;
2073 wire_spacing = wire_pitch[0][1] - wire_width;
2074 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2075 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2076 ild_thickness[0][1] = 0.405;
2077 miller_value[0][1] = 1.5;
2078 horiz_dielectric_constant[0][1] = 2.303;
2079 vert_dielectric_constant[0][1] = 3.9;
2080 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2081 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1],
2082 vert_dielectric_constant[0][1],
2083 fringe_cap);
2212
2084
2213 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2214 aspect_ratio[0][2] = 2.8;
2215 wire_width = wire_pitch[0][2] / 2;
2216 wire_thickness = aspect_ratio[0][2] * wire_width;
2217 wire_spacing = wire_pitch[0][2] - wire_width;
2218 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2219 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2220 ild_thickness[0][2] = 0.81;
2221 miller_value[0][2] = 1.5;
2222 horiz_dielectric_constant[0][2] = 2.303;
2223 vert_dielectric_constant[0][2] = 3.9;
2224 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2225 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2226 fringe_cap);
2085 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2086 aspect_ratio[0][2] = 2.8;
2087 wire_width = wire_pitch[0][2] / 2;
2088 wire_thickness = aspect_ratio[0][2] * wire_width;
2089 wire_spacing = wire_pitch[0][2] - wire_width;
2090 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2091 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2092 ild_thickness[0][2] = 0.81;
2093 miller_value[0][2] = 1.5;
2094 horiz_dielectric_constant[0][2] = 2.303;
2095 vert_dielectric_constant[0][2] = 3.9;
2096 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2097 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2098 fringe_cap);
2227
2099
2228 //Conservative projections
2229 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2230 aspect_ratio[1][0] = 2.0;
2231 wire_width = wire_pitch[1][0] / 2;
2232 wire_thickness = aspect_ratio[1][0] * wire_width;
2233 wire_spacing = wire_pitch[1][0] - wire_width;
2234 barrier_thickness = 0.006;
2235 dishing_thickness = 0;
2236 alpha_scatter = 1;
2237 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2238 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2239 ild_thickness[1][0] = 0.405;
2240 miller_value[1][0] = 1.5;
2241 horiz_dielectric_constant[1][0] = 2.734;
2242 vert_dielectric_constant[1][0] = 3.9;
2243 fringe_cap = 0.115e-15;
2244 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2245 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2246 fringe_cap);
2100 //Conservative projections
2101 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2102 aspect_ratio[1][0] = 2.0;
2103 wire_width = wire_pitch[1][0] / 2;
2104 wire_thickness = aspect_ratio[1][0] * wire_width;
2105 wire_spacing = wire_pitch[1][0] - wire_width;
2106 barrier_thickness = 0.006;
2107 dishing_thickness = 0;
2108 alpha_scatter = 1;
2109 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2110 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2111 ild_thickness[1][0] = 0.405;
2112 miller_value[1][0] = 1.5;
2113 horiz_dielectric_constant[1][0] = 2.734;
2114 vert_dielectric_constant[1][0] = 3.9;
2115 fringe_cap = 0.115e-15;
2116 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2117 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2118 fringe_cap);
2247
2119
2248 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2249 wire_width = wire_pitch[1][1] / 2;
2250 aspect_ratio[1][1] = 2.0;
2251 wire_thickness = aspect_ratio[1][1] * wire_width;
2252 wire_spacing = wire_pitch[1][1] - wire_width;
2253 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2254 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2255 ild_thickness[1][1] = 0.405;
2256 miller_value[1][1] = 1.5;
2257 horiz_dielectric_constant[1][1] = 2.734;
2258 vert_dielectric_constant[1][1] = 3.9;
2259 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2260 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2261 fringe_cap);
2120 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2121 wire_width = wire_pitch[1][1] / 2;
2122 aspect_ratio[1][1] = 2.0;
2123 wire_thickness = aspect_ratio[1][1] * wire_width;
2124 wire_spacing = wire_pitch[1][1] - wire_width;
2125 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2126 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2127 ild_thickness[1][1] = 0.405;
2128 miller_value[1][1] = 1.5;
2129 horiz_dielectric_constant[1][1] = 2.734;
2130 vert_dielectric_constant[1][1] = 3.9;
2131 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2132 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2133 fringe_cap);
2262
2134
2263 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2264 aspect_ratio[1][2] = 2.2;
2265 wire_width = wire_pitch[1][2] / 2;
2266 wire_thickness = aspect_ratio[1][2] * wire_width;
2267 wire_spacing = wire_pitch[1][2] - wire_width;
2268 dishing_thickness = 0.1 * wire_thickness;
2269 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2270 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2271 ild_thickness[1][2] = 0.77;
2272 miller_value[1][2] = 1.5;
2273 horiz_dielectric_constant[1][2] = 2.734;
2274 vert_dielectric_constant[1][2] = 3.9;
2275 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2276 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2277 fringe_cap);
2278 //Nominal projections for commodity DRAM wordline/bitline
2279 wire_pitch[1][3] = 2 * 0.065;
2280 wire_c_per_micron[1][3] = 52.5e-15 / (256 * 2 * 0.065);
2281 wire_r_per_micron[1][3] = 12 / 0.065;
2282 }
2283 else if (tech == 45)
2284 {
2285 //Aggressive projections.
2286 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;
2287 aspect_ratio[0][0] = 3.0;
2288 wire_width = wire_pitch[0][0] / 2;
2289 wire_thickness = aspect_ratio[0][0] * wire_width;
2290 wire_spacing = wire_pitch[0][0] - wire_width;
2291 barrier_thickness = 0;
2292 dishing_thickness = 0;
2293 alpha_scatter = 1;
2294 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2295 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2296 ild_thickness[0][0] = 0.315;
2297 miller_value[0][0] = 1.5;
2298 horiz_dielectric_constant[0][0] = 1.958;
2299 vert_dielectric_constant[0][0] = 3.9;
2300 fringe_cap = 0.115e-15;
2301 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2302 ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] ,
2303 fringe_cap);
2135 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2136 aspect_ratio[1][2] = 2.2;
2137 wire_width = wire_pitch[1][2] / 2;
2138 wire_thickness = aspect_ratio[1][2] * wire_width;
2139 wire_spacing = wire_pitch[1][2] - wire_width;
2140 dishing_thickness = 0.1 * wire_thickness;
2141 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2142 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2143 ild_thickness[1][2] = 0.77;
2144 miller_value[1][2] = 1.5;
2145 horiz_dielectric_constant[1][2] = 2.734;
2146 vert_dielectric_constant[1][2] = 3.9;
2147 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2148 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2149 fringe_cap);
2150 //Nominal projections for commodity DRAM wordline/bitline
2151 wire_pitch[1][3] = 2 * 0.065;
2152 wire_c_per_micron[1][3] = 52.5e-15 / (256 * 2 * 0.065);
2153 wire_r_per_micron[1][3] = 12 / 0.065;
2154 } else if (tech == 45) {
2155 //Aggressive projections.
2156 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;
2157 aspect_ratio[0][0] = 3.0;
2158 wire_width = wire_pitch[0][0] / 2;
2159 wire_thickness = aspect_ratio[0][0] * wire_width;
2160 wire_spacing = wire_pitch[0][0] - wire_width;
2161 barrier_thickness = 0;
2162 dishing_thickness = 0;
2163 alpha_scatter = 1;
2164 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2165 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2166 ild_thickness[0][0] = 0.315;
2167 miller_value[0][0] = 1.5;
2168 horiz_dielectric_constant[0][0] = 1.958;
2169 vert_dielectric_constant[0][0] = 3.9;
2170 fringe_cap = 0.115e-15;
2171 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2172 ild_thickness[0][0] , miller_value[0][0] , horiz_dielectric_constant[0][0] , vert_dielectric_constant[0][0] ,
2173 fringe_cap);
2304
2174
2305 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2306 wire_width = wire_pitch[0][1] / 2;
2307 aspect_ratio[0][1] = 3.0;
2308 wire_thickness = aspect_ratio[0][1] * wire_width;
2309 wire_spacing = wire_pitch[0][1] - wire_width;
2310 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2311 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2312 ild_thickness[0][1] = 0.315;
2313 miller_value[0][1] = 1.5;
2314 horiz_dielectric_constant[0][1] = 1.958;
2315 vert_dielectric_constant[0][1] = 3.9;
2316 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2317 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2318 fringe_cap);
2175 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2176 wire_width = wire_pitch[0][1] / 2;
2177 aspect_ratio[0][1] = 3.0;
2178 wire_thickness = aspect_ratio[0][1] * wire_width;
2179 wire_spacing = wire_pitch[0][1] - wire_width;
2180 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2181 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2182 ild_thickness[0][1] = 0.315;
2183 miller_value[0][1] = 1.5;
2184 horiz_dielectric_constant[0][1] = 1.958;
2185 vert_dielectric_constant[0][1] = 3.9;
2186 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2187 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2188 fringe_cap);
2319
2189
2320 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2321 aspect_ratio[0][2] = 3.0;
2322 wire_width = wire_pitch[0][2] / 2;
2323 wire_thickness = aspect_ratio[0][2] * wire_width;
2324 wire_spacing = wire_pitch[0][2] - wire_width;
2325 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2326 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2327 ild_thickness[0][2] = 0.63;
2328 miller_value[0][2] = 1.5;
2329 horiz_dielectric_constant[0][2] = 1.958;
2330 vert_dielectric_constant[0][2] = 3.9;
2331 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2332 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2333 fringe_cap);
2190 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2191 aspect_ratio[0][2] = 3.0;
2192 wire_width = wire_pitch[0][2] / 2;
2193 wire_thickness = aspect_ratio[0][2] * wire_width;
2194 wire_spacing = wire_pitch[0][2] - wire_width;
2195 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2196 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2197 ild_thickness[0][2] = 0.63;
2198 miller_value[0][2] = 1.5;
2199 horiz_dielectric_constant[0][2] = 1.958;
2200 vert_dielectric_constant[0][2] = 3.9;
2201 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2202 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2203 fringe_cap);
2334
2204
2335 //Conservative projections
2336 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2337 aspect_ratio[1][0] = 2.0;
2338 wire_width = wire_pitch[1][0] / 2;
2339 wire_thickness = aspect_ratio[1][0] * wire_width;
2340 wire_spacing = wire_pitch[1][0] - wire_width;
2341 barrier_thickness = 0.004;
2342 dishing_thickness = 0;
2343 alpha_scatter = 1;
2344 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2345 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2346 ild_thickness[1][0] = 0.315;
2347 miller_value[1][0] = 1.5;
2348 horiz_dielectric_constant[1][0] = 2.46;
2349 vert_dielectric_constant[1][0] = 3.9;
2350 fringe_cap = 0.115e-15;
2351 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2352 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2353 fringe_cap);
2205 //Conservative projections
2206 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2207 aspect_ratio[1][0] = 2.0;
2208 wire_width = wire_pitch[1][0] / 2;
2209 wire_thickness = aspect_ratio[1][0] * wire_width;
2210 wire_spacing = wire_pitch[1][0] - wire_width;
2211 barrier_thickness = 0.004;
2212 dishing_thickness = 0;
2213 alpha_scatter = 1;
2214 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2215 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2216 ild_thickness[1][0] = 0.315;
2217 miller_value[1][0] = 1.5;
2218 horiz_dielectric_constant[1][0] = 2.46;
2219 vert_dielectric_constant[1][0] = 3.9;
2220 fringe_cap = 0.115e-15;
2221 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2222 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2223 fringe_cap);
2354
2224
2355 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2356 wire_width = wire_pitch[1][1] / 2;
2357 aspect_ratio[1][1] = 2.0;
2358 wire_thickness = aspect_ratio[1][1] * wire_width;
2359 wire_spacing = wire_pitch[1][1] - wire_width;
2360 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2361 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2362 ild_thickness[1][1] = 0.315;
2363 miller_value[1][1] = 1.5;
2364 horiz_dielectric_constant[1][1] = 2.46;
2365 vert_dielectric_constant[1][1] = 3.9;
2366 fringe_cap = 0.115e-15;
2367 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2368 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2369 fringe_cap);
2225 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2226 wire_width = wire_pitch[1][1] / 2;
2227 aspect_ratio[1][1] = 2.0;
2228 wire_thickness = aspect_ratio[1][1] * wire_width;
2229 wire_spacing = wire_pitch[1][1] - wire_width;
2230 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2231 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2232 ild_thickness[1][1] = 0.315;
2233 miller_value[1][1] = 1.5;
2234 horiz_dielectric_constant[1][1] = 2.46;
2235 vert_dielectric_constant[1][1] = 3.9;
2236 fringe_cap = 0.115e-15;
2237 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2238 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2239 fringe_cap);
2370
2240
2371 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2372 aspect_ratio[1][2] = 2.2;
2373 wire_width = wire_pitch[1][2] / 2;
2374 wire_thickness = aspect_ratio[1][2] * wire_width;
2375 wire_spacing = wire_pitch[1][2] - wire_width;
2376 dishing_thickness = 0.1 * wire_thickness;
2377 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2378 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2379 ild_thickness[1][2] = 0.55;
2380 miller_value[1][2] = 1.5;
2381 horiz_dielectric_constant[1][2] = 2.46;
2382 vert_dielectric_constant[1][2] = 3.9;
2383 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2384 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2385 fringe_cap);
2386 //Nominal projections for commodity DRAM wordline/bitline
2387 wire_pitch[1][3] = 2 * 0.045;
2388 wire_c_per_micron[1][3] = 37.5e-15 / (256 * 2 * 0.045);
2389 wire_r_per_micron[1][3] = 12 / 0.045;
2390 }
2391 else if (tech == 32)
2392 {
2393 //Aggressive projections.
2394 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;
2395 aspect_ratio[0][0] = 3.0;
2396 wire_width = wire_pitch[0][0] / 2;
2397 wire_thickness = aspect_ratio[0][0] * wire_width;
2398 wire_spacing = wire_pitch[0][0] - wire_width;
2399 barrier_thickness = 0;
2400 dishing_thickness = 0;
2401 alpha_scatter = 1;
2402 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2403 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2404 ild_thickness[0][0] = 0.21;
2405 miller_value[0][0] = 1.5;
2406 horiz_dielectric_constant[0][0] = 1.664;
2407 vert_dielectric_constant[0][0] = 3.9;
2408 fringe_cap = 0.115e-15;
2409 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2410 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0],
2411 fringe_cap);
2241 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2242 aspect_ratio[1][2] = 2.2;
2243 wire_width = wire_pitch[1][2] / 2;
2244 wire_thickness = aspect_ratio[1][2] * wire_width;
2245 wire_spacing = wire_pitch[1][2] - wire_width;
2246 dishing_thickness = 0.1 * wire_thickness;
2247 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2248 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2249 ild_thickness[1][2] = 0.55;
2250 miller_value[1][2] = 1.5;
2251 horiz_dielectric_constant[1][2] = 2.46;
2252 vert_dielectric_constant[1][2] = 3.9;
2253 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2254 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2255 fringe_cap);
2256 //Nominal projections for commodity DRAM wordline/bitline
2257 wire_pitch[1][3] = 2 * 0.045;
2258 wire_c_per_micron[1][3] = 37.5e-15 / (256 * 2 * 0.045);
2259 wire_r_per_micron[1][3] = 12 / 0.045;
2260 } else if (tech == 32) {
2261 //Aggressive projections.
2262 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;
2263 aspect_ratio[0][0] = 3.0;
2264 wire_width = wire_pitch[0][0] / 2;
2265 wire_thickness = aspect_ratio[0][0] * wire_width;
2266 wire_spacing = wire_pitch[0][0] - wire_width;
2267 barrier_thickness = 0;
2268 dishing_thickness = 0;
2269 alpha_scatter = 1;
2270 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2271 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2272 ild_thickness[0][0] = 0.21;
2273 miller_value[0][0] = 1.5;
2274 horiz_dielectric_constant[0][0] = 1.664;
2275 vert_dielectric_constant[0][0] = 3.9;
2276 fringe_cap = 0.115e-15;
2277 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2278 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0],
2279 fringe_cap);
2412
2280
2413 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2414 wire_width = wire_pitch[0][1] / 2;
2415 aspect_ratio[0][1] = 3.0;
2416 wire_thickness = aspect_ratio[0][1] * wire_width;
2417 wire_spacing = wire_pitch[0][1] - wire_width;
2418 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2419 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2420 ild_thickness[0][1] = 0.21;
2421 miller_value[0][1] = 1.5;
2422 horiz_dielectric_constant[0][1] = 1.664;
2423 vert_dielectric_constant[0][1] = 3.9;
2424 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2425 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2426 fringe_cap);
2281 wire_pitch[0][1] = 4 * g_ip->F_sz_um;
2282 wire_width = wire_pitch[0][1] / 2;
2283 aspect_ratio[0][1] = 3.0;
2284 wire_thickness = aspect_ratio[0][1] * wire_width;
2285 wire_spacing = wire_pitch[0][1] - wire_width;
2286 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2287 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2288 ild_thickness[0][1] = 0.21;
2289 miller_value[0][1] = 1.5;
2290 horiz_dielectric_constant[0][1] = 1.664;
2291 vert_dielectric_constant[0][1] = 3.9;
2292 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2293 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2294 fringe_cap);
2427
2295
2428 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2429 aspect_ratio[0][2] = 3.0;
2430 wire_width = wire_pitch[0][2] / 2;
2431 wire_thickness = aspect_ratio[0][2] * wire_width;
2432 wire_spacing = wire_pitch[0][2] - wire_width;
2433 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2434 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2435 ild_thickness[0][2] = 0.42;
2436 miller_value[0][2] = 1.5;
2437 horiz_dielectric_constant[0][2] = 1.664;
2438 vert_dielectric_constant[0][2] = 3.9;
2439 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2440 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2441 fringe_cap);
2296 wire_pitch[0][2] = 8 * g_ip->F_sz_um;
2297 aspect_ratio[0][2] = 3.0;
2298 wire_width = wire_pitch[0][2] / 2;
2299 wire_thickness = aspect_ratio[0][2] * wire_width;
2300 wire_spacing = wire_pitch[0][2] - wire_width;
2301 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2302 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2303 ild_thickness[0][2] = 0.42;
2304 miller_value[0][2] = 1.5;
2305 horiz_dielectric_constant[0][2] = 1.664;
2306 vert_dielectric_constant[0][2] = 3.9;
2307 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2308 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2309 fringe_cap);
2442
2310
2443 //Conservative projections
2444 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2445 aspect_ratio[1][0] = 2.0;
2446 wire_width = wire_pitch[1][0] / 2;
2447 wire_thickness = aspect_ratio[1][0] * wire_width;
2448 wire_spacing = wire_pitch[1][0] - wire_width;
2449 barrier_thickness = 0.003;
2450 dishing_thickness = 0;
2451 alpha_scatter = 1;
2452 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2453 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2454 ild_thickness[1][0] = 0.21;
2455 miller_value[1][0] = 1.5;
2456 horiz_dielectric_constant[1][0] = 2.214;
2457 vert_dielectric_constant[1][0] = 3.9;
2458 fringe_cap = 0.115e-15;
2459 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2460 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2461 fringe_cap);
2311 //Conservative projections
2312 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2313 aspect_ratio[1][0] = 2.0;
2314 wire_width = wire_pitch[1][0] / 2;
2315 wire_thickness = aspect_ratio[1][0] * wire_width;
2316 wire_spacing = wire_pitch[1][0] - wire_width;
2317 barrier_thickness = 0.003;
2318 dishing_thickness = 0;
2319 alpha_scatter = 1;
2320 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2321 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2322 ild_thickness[1][0] = 0.21;
2323 miller_value[1][0] = 1.5;
2324 horiz_dielectric_constant[1][0] = 2.214;
2325 vert_dielectric_constant[1][0] = 3.9;
2326 fringe_cap = 0.115e-15;
2327 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2328 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2329 fringe_cap);
2462
2330
2463 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2464 aspect_ratio[1][1] = 2.0;
2465 wire_width = wire_pitch[1][1] / 2;
2466 wire_thickness = aspect_ratio[1][1] * wire_width;
2467 wire_spacing = wire_pitch[1][1] - wire_width;
2468 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2469 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2470 ild_thickness[1][1] = 0.21;
2471 miller_value[1][1] = 1.5;
2472 horiz_dielectric_constant[1][1] = 2.214;
2473 vert_dielectric_constant[1][1] = 3.9;
2474 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2475 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2476 fringe_cap);
2331 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2332 aspect_ratio[1][1] = 2.0;
2333 wire_width = wire_pitch[1][1] / 2;
2334 wire_thickness = aspect_ratio[1][1] * wire_width;
2335 wire_spacing = wire_pitch[1][1] - wire_width;
2336 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2337 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2338 ild_thickness[1][1] = 0.21;
2339 miller_value[1][1] = 1.5;
2340 horiz_dielectric_constant[1][1] = 2.214;
2341 vert_dielectric_constant[1][1] = 3.9;
2342 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2343 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2344 fringe_cap);
2477
2345
2478 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2479 aspect_ratio[1][2] = 2.2;
2480 wire_width = wire_pitch[1][2] / 2;
2481 wire_thickness = aspect_ratio[1][2] * wire_width;
2482 wire_spacing = wire_pitch[1][2] - wire_width;
2483 dishing_thickness = 0.1 * wire_thickness;
2484 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2485 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2486 ild_thickness[1][2] = 0.385;
2487 miller_value[1][2] = 1.5;
2488 horiz_dielectric_constant[1][2] = 2.214;
2489 vert_dielectric_constant[1][2] = 3.9;
2490 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2491 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2492 fringe_cap);
2493 //Nominal projections for commodity DRAM wordline/bitline
2494 wire_pitch[1][3] = 2 * 0.032;//micron
2495 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.032);//F/micron
2496 wire_r_per_micron[1][3] = 12 / 0.032;//ohm/micron
2497 }
2498 else if (tech == 22)
2499 {
2500 //Aggressive projections.
2501 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local
2502 aspect_ratio[0][0] = 3.0;
2503 wire_width = wire_pitch[0][0] / 2;
2504 wire_thickness = aspect_ratio[0][0] * wire_width;
2505 wire_spacing = wire_pitch[0][0] - wire_width;
2506 barrier_thickness = 0;
2507 dishing_thickness = 0;
2508 alpha_scatter = 1;
2509 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2510 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2511 ild_thickness[0][0] = 0.15;
2512 miller_value[0][0] = 1.5;
2513 horiz_dielectric_constant[0][0] = 1.414;
2514 vert_dielectric_constant[0][0] = 3.9;
2515 fringe_cap = 0.115e-15;
2516 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2517 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0],
2518 fringe_cap);
2346 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2347 aspect_ratio[1][2] = 2.2;
2348 wire_width = wire_pitch[1][2] / 2;
2349 wire_thickness = aspect_ratio[1][2] * wire_width;
2350 wire_spacing = wire_pitch[1][2] - wire_width;
2351 dishing_thickness = 0.1 * wire_thickness;
2352 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2353 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2354 ild_thickness[1][2] = 0.385;
2355 miller_value[1][2] = 1.5;
2356 horiz_dielectric_constant[1][2] = 2.214;
2357 vert_dielectric_constant[1][2] = 3.9;
2358 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2359 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2360 fringe_cap);
2361 //Nominal projections for commodity DRAM wordline/bitline
2362 wire_pitch[1][3] = 2 * 0.032;//micron
2363 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.032);//F/micron
2364 wire_r_per_micron[1][3] = 12 / 0.032;//ohm/micron
2365 } else if (tech == 22) {
2366 //Aggressive projections.
2367 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local
2368 aspect_ratio[0][0] = 3.0;
2369 wire_width = wire_pitch[0][0] / 2;
2370 wire_thickness = aspect_ratio[0][0] * wire_width;
2371 wire_spacing = wire_pitch[0][0] - wire_width;
2372 barrier_thickness = 0;
2373 dishing_thickness = 0;
2374 alpha_scatter = 1;
2375 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2376 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2377 ild_thickness[0][0] = 0.15;
2378 miller_value[0][0] = 1.5;
2379 horiz_dielectric_constant[0][0] = 1.414;
2380 vert_dielectric_constant[0][0] = 3.9;
2381 fringe_cap = 0.115e-15;
2382 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2383 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0],
2384 fringe_cap);
2519
2385
2520 wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global
2521 wire_width = wire_pitch[0][1] / 2;
2522 aspect_ratio[0][1] = 3.0;
2523 wire_thickness = aspect_ratio[0][1] * wire_width;
2524 wire_spacing = wire_pitch[0][1] - wire_width;
2525 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2526 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2527 ild_thickness[0][1] = 0.15;
2528 miller_value[0][1] = 1.5;
2529 horiz_dielectric_constant[0][1] = 1.414;
2530 vert_dielectric_constant[0][1] = 3.9;
2531 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2532 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2533 fringe_cap);
2386 wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global
2387 wire_width = wire_pitch[0][1] / 2;
2388 aspect_ratio[0][1] = 3.0;
2389 wire_thickness = aspect_ratio[0][1] * wire_width;
2390 wire_spacing = wire_pitch[0][1] - wire_width;
2391 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2392 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2393 ild_thickness[0][1] = 0.15;
2394 miller_value[0][1] = 1.5;
2395 horiz_dielectric_constant[0][1] = 1.414;
2396 vert_dielectric_constant[0][1] = 3.9;
2397 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2398 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2399 fringe_cap);
2534
2400
2535 wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global
2536 aspect_ratio[0][2] = 3.0;
2537 wire_width = wire_pitch[0][2] / 2;
2538 wire_thickness = aspect_ratio[0][2] * wire_width;
2539 wire_spacing = wire_pitch[0][2] - wire_width;
2540 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2541 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2542 ild_thickness[0][2] = 0.3;
2543 miller_value[0][2] = 1.5;
2544 horiz_dielectric_constant[0][2] = 1.414;
2545 vert_dielectric_constant[0][2] = 3.9;
2546 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2547 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2548 fringe_cap);
2401 wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global
2402 aspect_ratio[0][2] = 3.0;
2403 wire_width = wire_pitch[0][2] / 2;
2404 wire_thickness = aspect_ratio[0][2] * wire_width;
2405 wire_spacing = wire_pitch[0][2] - wire_width;
2406 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2407 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2408 ild_thickness[0][2] = 0.3;
2409 miller_value[0][2] = 1.5;
2410 horiz_dielectric_constant[0][2] = 1.414;
2411 vert_dielectric_constant[0][2] = 3.9;
2412 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2413 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2414 fringe_cap);
2549
2415
2550// //*************************
2551// wire_pitch[0][4] = 16 * g_ip.F_sz_um;//global
2552// aspect_ratio = 3.0;
2553// wire_width = wire_pitch[0][4] / 2;
2554// wire_thickness = aspect_ratio * wire_width;
2555// wire_spacing = wire_pitch[0][4] - wire_width;
2556// wire_r_per_micron[0][4] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2557// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2558// ild_thickness = 0.3;
2559// wire_c_per_micron[0][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2560// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2561// fringe_cap);
2562//
2563// wire_pitch[0][5] = 24 * g_ip.F_sz_um;//global
2564// aspect_ratio = 3.0;
2565// wire_width = wire_pitch[0][5] / 2;
2566// wire_thickness = aspect_ratio * wire_width;
2567// wire_spacing = wire_pitch[0][5] - wire_width;
2568// wire_r_per_micron[0][5] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2569// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2570// ild_thickness = 0.3;
2571// wire_c_per_micron[0][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2572// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2573// fringe_cap);
2574//
2575// wire_pitch[0][6] = 32 * g_ip.F_sz_um;//global
2576// aspect_ratio = 3.0;
2577// wire_width = wire_pitch[0][6] / 2;
2578// wire_thickness = aspect_ratio * wire_width;
2579// wire_spacing = wire_pitch[0][6] - wire_width;
2580// wire_r_per_micron[0][6] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2581// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2582// ild_thickness = 0.3;
2583// wire_c_per_micron[0][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2584// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2585// fringe_cap);
2586 //*************************
2416 //Conservative projections
2417 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2418 aspect_ratio[1][0] = 2.0;
2419 wire_width = wire_pitch[1][0] / 2;
2420 wire_thickness = aspect_ratio[1][0] * wire_width;
2421 wire_spacing = wire_pitch[1][0] - wire_width;
2422 barrier_thickness = 0.003;
2423 dishing_thickness = 0;
2424 alpha_scatter = 1.05;
2425 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2426 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2427 ild_thickness[1][0] = 0.15;
2428 miller_value[1][0] = 1.5;
2429 horiz_dielectric_constant[1][0] = 2.104;
2430 vert_dielectric_constant[1][0] = 3.9;
2431 fringe_cap = 0.115e-15;
2432 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2433 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2434 fringe_cap);
2587
2435
2588 //Conservative projections
2589 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2590 aspect_ratio[1][0] = 2.0;
2591 wire_width = wire_pitch[1][0] / 2;
2592 wire_thickness = aspect_ratio[1][0] * wire_width;
2593 wire_spacing = wire_pitch[1][0] - wire_width;
2594 barrier_thickness = 0.003;
2595 dishing_thickness = 0;
2596 alpha_scatter = 1.05;
2597 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2598 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2599 ild_thickness[1][0] = 0.15;
2600 miller_value[1][0] = 1.5;
2601 horiz_dielectric_constant[1][0] = 2.104;
2602 vert_dielectric_constant[1][0] = 3.9;
2603 fringe_cap = 0.115e-15;
2604 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2605 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2606 fringe_cap);
2436 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2437 wire_width = wire_pitch[1][1] / 2;
2438 aspect_ratio[1][1] = 2.0;
2439 wire_thickness = aspect_ratio[1][1] * wire_width;
2440 wire_spacing = wire_pitch[1][1] - wire_width;
2441 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2442 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2443 ild_thickness[1][1] = 0.15;
2444 miller_value[1][1] = 1.5;
2445 horiz_dielectric_constant[1][1] = 2.104;
2446 vert_dielectric_constant[1][1] = 3.9;
2447 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2448 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2449 fringe_cap);
2607
2450
2608 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2609 wire_width = wire_pitch[1][1] / 2;
2610 aspect_ratio[1][1] = 2.0;
2611 wire_thickness = aspect_ratio[1][1] * wire_width;
2612 wire_spacing = wire_pitch[1][1] - wire_width;
2613 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2614 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2615 ild_thickness[1][1] = 0.15;
2616 miller_value[1][1] = 1.5;
2617 horiz_dielectric_constant[1][1] = 2.104;
2618 vert_dielectric_constant[1][1] = 3.9;
2619 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2620 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2621 fringe_cap);
2622
2623 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2624 aspect_ratio[1][2] = 2.2;
2625 wire_width = wire_pitch[1][2] / 2;
2626 wire_thickness = aspect_ratio[1][2] * wire_width;
2627 wire_spacing = wire_pitch[1][2] - wire_width;
2628 dishing_thickness = 0.1 * wire_thickness;
2629 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2451 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2452 aspect_ratio[1][2] = 2.2;
2453 wire_width = wire_pitch[1][2] / 2;
2454 wire_thickness = aspect_ratio[1][2] * wire_width;
2455 wire_spacing = wire_pitch[1][2] - wire_width;
2456 dishing_thickness = 0.1 * wire_thickness;
2457 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2630 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2458 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2631 ild_thickness[1][2] = 0.275;
2632 miller_value[1][2] = 1.5;
2633 horiz_dielectric_constant[1][2] = 2.104;
2634 vert_dielectric_constant[1][2] = 3.9;
2635 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2459 ild_thickness[1][2] = 0.275;
2460 miller_value[1][2] = 1.5;
2461 horiz_dielectric_constant[1][2] = 2.104;
2462 vert_dielectric_constant[1][2] = 3.9;
2463 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2636 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2637 fringe_cap);
2464 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2465 fringe_cap);
2638 //Nominal projections for commodity DRAM wordline/bitline
2639 wire_pitch[1][3] = 2 * 0.022;//micron
2640 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.022);//F/micron
2641 wire_r_per_micron[1][3] = 12 / 0.022;//ohm/micron
2466 //Nominal projections for commodity DRAM wordline/bitline
2467 wire_pitch[1][3] = 2 * 0.022;//micron
2468 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.022);//F/micron
2469 wire_r_per_micron[1][3] = 12 / 0.022;//ohm/micron
2642
2643 //******************
2644// wire_pitch[1][4] = 16 * g_ip.F_sz_um;
2645// aspect_ratio = 2.2;
2646// wire_width = wire_pitch[1][4] / 2;
2647// wire_thickness = aspect_ratio * wire_width;
2648// wire_spacing = wire_pitch[1][4] - wire_width;
2649// dishing_thickness = 0.1 * wire_thickness;
2650// wire_r_per_micron[1][4] = wire_resistance(CU_RESISTIVITY, wire_width,
2651// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2652// ild_thickness = 0.275;
2653// wire_c_per_micron[1][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2654// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2655// fringe_cap);
2656//
2657// wire_pitch[1][5] = 24 * g_ip.F_sz_um;
2658// aspect_ratio = 2.2;
2659// wire_width = wire_pitch[1][5] / 2;
2660// wire_thickness = aspect_ratio * wire_width;
2661// wire_spacing = wire_pitch[1][5] - wire_width;
2662// dishing_thickness = 0.1 * wire_thickness;
2663// wire_r_per_micron[1][5] = wire_resistance(CU_RESISTIVITY, wire_width,
2664// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2665// ild_thickness = 0.275;
2666// wire_c_per_micron[1][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2667// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2668// fringe_cap);
2669//
2670// wire_pitch[1][6] = 32 * g_ip.F_sz_um;
2671// aspect_ratio = 2.2;
2672// wire_width = wire_pitch[1][6] / 2;
2673// wire_thickness = aspect_ratio * wire_width;
2674// wire_spacing = wire_pitch[1][6] - wire_width;
2675// dishing_thickness = 0.1 * wire_thickness;
2676// wire_r_per_micron[1][6] = wire_resistance(CU_RESISTIVITY, wire_width,
2677// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2678// ild_thickness = 0.275;
2679// wire_c_per_micron[1][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2680// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2681// fringe_cap);
2682 }
2683
2470 }
2471
2684 else if (tech == 16)
2685 {
2686 //Aggressive projections.
2687 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local
2688 aspect_ratio[0][0] = 3.0;
2689 wire_width = wire_pitch[0][0] / 2;
2690 wire_thickness = aspect_ratio[0][0] * wire_width;
2691 wire_spacing = wire_pitch[0][0] - wire_width;
2692 barrier_thickness = 0;
2693 dishing_thickness = 0;
2694 alpha_scatter = 1;
2695 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2696 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2697 ild_thickness[0][0] = 0.108;
2698 miller_value[0][0] = 1.5;
2699 horiz_dielectric_constant[0][0] = 1.202;
2700 vert_dielectric_constant[0][0] = 3.9;
2701 fringe_cap = 0.115e-15;
2702 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2703 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0],
2704 fringe_cap);
2472 else if (tech == 16) {
2473 //Aggressive projections.
2474 wire_pitch[0][0] = 2.5 * g_ip->F_sz_um;//local
2475 aspect_ratio[0][0] = 3.0;
2476 wire_width = wire_pitch[0][0] / 2;
2477 wire_thickness = aspect_ratio[0][0] * wire_width;
2478 wire_spacing = wire_pitch[0][0] - wire_width;
2479 barrier_thickness = 0;
2480 dishing_thickness = 0;
2481 alpha_scatter = 1;
2482 wire_r_per_micron[0][0] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2483 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2484 ild_thickness[0][0] = 0.108;
2485 miller_value[0][0] = 1.5;
2486 horiz_dielectric_constant[0][0] = 1.202;
2487 vert_dielectric_constant[0][0] = 3.9;
2488 fringe_cap = 0.115e-15;
2489 wire_c_per_micron[0][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2490 ild_thickness[0][0], miller_value[0][0], horiz_dielectric_constant[0][0], vert_dielectric_constant[0][0],
2491 fringe_cap);
2705
2492
2706 wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global
2707 aspect_ratio[0][1] = 3.0;
2708 wire_width = wire_pitch[0][1] / 2;
2709 wire_thickness = aspect_ratio[0][1] * wire_width;
2710 wire_spacing = wire_pitch[0][1] - wire_width;
2711 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2712 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2713 ild_thickness[0][1] = 0.108;
2714 miller_value[0][1] = 1.5;
2715 horiz_dielectric_constant[0][1] = 1.202;
2716 vert_dielectric_constant[0][1] = 3.9;
2717 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2718 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2719 fringe_cap);
2493 wire_pitch[0][1] = 4 * g_ip->F_sz_um;//semi-global
2494 aspect_ratio[0][1] = 3.0;
2495 wire_width = wire_pitch[0][1] / 2;
2496 wire_thickness = aspect_ratio[0][1] * wire_width;
2497 wire_spacing = wire_pitch[0][1] - wire_width;
2498 wire_r_per_micron[0][1] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2499 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2500 ild_thickness[0][1] = 0.108;
2501 miller_value[0][1] = 1.5;
2502 horiz_dielectric_constant[0][1] = 1.202;
2503 vert_dielectric_constant[0][1] = 3.9;
2504 wire_c_per_micron[0][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2505 ild_thickness[0][1], miller_value[0][1], horiz_dielectric_constant[0][1], vert_dielectric_constant[0][1],
2506 fringe_cap);
2720
2507
2721 wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global
2722 aspect_ratio[0][2] = 3.0;
2723 wire_width = wire_pitch[0][2] / 2;
2724 wire_thickness = aspect_ratio[0][2] * wire_width;
2725 wire_spacing = wire_pitch[0][2] - wire_width;
2726 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2727 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2728 ild_thickness[0][2] = 0.216;
2729 miller_value[0][2] = 1.5;
2730 horiz_dielectric_constant[0][2] = 1.202;
2731 vert_dielectric_constant[0][2] = 3.9;
2732 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2733 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2734 fringe_cap);
2508 wire_pitch[0][2] = 8 * g_ip->F_sz_um;//global
2509 aspect_ratio[0][2] = 3.0;
2510 wire_width = wire_pitch[0][2] / 2;
2511 wire_thickness = aspect_ratio[0][2] * wire_width;
2512 wire_spacing = wire_pitch[0][2] - wire_width;
2513 wire_r_per_micron[0][2] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2514 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2515 ild_thickness[0][2] = 0.216;
2516 miller_value[0][2] = 1.5;
2517 horiz_dielectric_constant[0][2] = 1.202;
2518 vert_dielectric_constant[0][2] = 3.9;
2519 wire_c_per_micron[0][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2520 ild_thickness[0][2], miller_value[0][2], horiz_dielectric_constant[0][2], vert_dielectric_constant[0][2],
2521 fringe_cap);
2735
2522
2736// //*************************
2737// wire_pitch[0][4] = 16 * g_ip.F_sz_um;//global
2738// aspect_ratio = 3.0;
2739// wire_width = wire_pitch[0][4] / 2;
2740// wire_thickness = aspect_ratio * wire_width;
2741// wire_spacing = wire_pitch[0][4] - wire_width;
2742// wire_r_per_micron[0][4] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2743// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2744// ild_thickness = 0.3;
2745// wire_c_per_micron[0][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2746// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2747// fringe_cap);
2748//
2749// wire_pitch[0][5] = 24 * g_ip.F_sz_um;//global
2750// aspect_ratio = 3.0;
2751// wire_width = wire_pitch[0][5] / 2;
2752// wire_thickness = aspect_ratio * wire_width;
2753// wire_spacing = wire_pitch[0][5] - wire_width;
2754// wire_r_per_micron[0][5] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2755// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2756// ild_thickness = 0.3;
2757// wire_c_per_micron[0][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2758// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2759// fringe_cap);
2760//
2761// wire_pitch[0][6] = 32 * g_ip.F_sz_um;//global
2762// aspect_ratio = 3.0;
2763// wire_width = wire_pitch[0][6] / 2;
2764// wire_thickness = aspect_ratio * wire_width;
2765// wire_spacing = wire_pitch[0][6] - wire_width;
2766// wire_r_per_micron[0][6] = wire_resistance(BULK_CU_RESISTIVITY, wire_width,
2767// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2768// ild_thickness = 0.3;
2769// wire_c_per_micron[0][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2770// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2771// fringe_cap);
2772 //*************************
2523 //Conservative projections
2524 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2525 aspect_ratio[1][0] = 2.0;
2526 wire_width = wire_pitch[1][0] / 2;
2527 wire_thickness = aspect_ratio[1][0] * wire_width;
2528 wire_spacing = wire_pitch[1][0] - wire_width;
2529 barrier_thickness = 0.002;
2530 dishing_thickness = 0;
2531 alpha_scatter = 1.05;
2532 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2533 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2534 ild_thickness[1][0] = 0.108;
2535 miller_value[1][0] = 1.5;
2536 horiz_dielectric_constant[1][0] = 1.998;
2537 vert_dielectric_constant[1][0] = 3.9;
2538 fringe_cap = 0.115e-15;
2539 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2540 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2541 fringe_cap);
2773
2542
2774 //Conservative projections
2775 wire_pitch[1][0] = 2.5 * g_ip->F_sz_um;
2776 aspect_ratio[1][0] = 2.0;
2777 wire_width = wire_pitch[1][0] / 2;
2778 wire_thickness = aspect_ratio[1][0] * wire_width;
2779 wire_spacing = wire_pitch[1][0] - wire_width;
2780 barrier_thickness = 0.002;
2781 dishing_thickness = 0;
2782 alpha_scatter = 1.05;
2783 wire_r_per_micron[1][0] = wire_resistance(CU_RESISTIVITY, wire_width,
2784 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2785 ild_thickness[1][0] = 0.108;
2786 miller_value[1][0] = 1.5;
2787 horiz_dielectric_constant[1][0] = 1.998;
2788 vert_dielectric_constant[1][0] = 3.9;
2789 fringe_cap = 0.115e-15;
2790 wire_c_per_micron[1][0] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2791 ild_thickness[1][0], miller_value[1][0], horiz_dielectric_constant[1][0], vert_dielectric_constant[1][0],
2792 fringe_cap);
2793
2794 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2795 wire_width = wire_pitch[1][1] / 2;
2796 aspect_ratio[1][1] = 2.0;
2797 wire_thickness = aspect_ratio[1][1] * wire_width;
2798 wire_spacing = wire_pitch[1][1] - wire_width;
2799 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2800 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2801 ild_thickness[1][1] = 0.108;
2802 miller_value[1][1] = 1.5;
2803 horiz_dielectric_constant[1][1] = 1.998;
2804 vert_dielectric_constant[1][1] = 3.9;
2543 wire_pitch[1][1] = 4 * g_ip->F_sz_um;
2544 wire_width = wire_pitch[1][1] / 2;
2545 aspect_ratio[1][1] = 2.0;
2546 wire_thickness = aspect_ratio[1][1] * wire_width;
2547 wire_spacing = wire_pitch[1][1] - wire_width;
2548 wire_r_per_micron[1][1] = wire_resistance(CU_RESISTIVITY, wire_width,
2549 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2550 ild_thickness[1][1] = 0.108;
2551 miller_value[1][1] = 1.5;
2552 horiz_dielectric_constant[1][1] = 1.998;
2553 vert_dielectric_constant[1][1] = 3.9;
2805 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2554 wire_c_per_micron[1][1] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2806 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2807 fringe_cap);
2555 ild_thickness[1][1], miller_value[1][1], horiz_dielectric_constant[1][1], vert_dielectric_constant[1][1],
2556 fringe_cap);
2808
2809 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2810 aspect_ratio[1][2] = 2.2;
2811 wire_width = wire_pitch[1][2] / 2;
2812 wire_thickness = aspect_ratio[1][2] * wire_width;
2813 wire_spacing = wire_pitch[1][2] - wire_width;
2814 dishing_thickness = 0.1 * wire_thickness;
2815 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2557
2558 wire_pitch[1][2] = 8 * g_ip->F_sz_um;
2559 aspect_ratio[1][2] = 2.2;
2560 wire_width = wire_pitch[1][2] / 2;
2561 wire_thickness = aspect_ratio[1][2] * wire_width;
2562 wire_spacing = wire_pitch[1][2] - wire_width;
2563 dishing_thickness = 0.1 * wire_thickness;
2564 wire_r_per_micron[1][2] = wire_resistance(CU_RESISTIVITY, wire_width,
2816 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2565 wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2817 ild_thickness[1][2] = 0.198;
2818 miller_value[1][2] = 1.5;
2819 horiz_dielectric_constant[1][2] = 1.998;
2820 vert_dielectric_constant[1][2] = 3.9;
2821 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2566 ild_thickness[1][2] = 0.198;
2567 miller_value[1][2] = 1.5;
2568 horiz_dielectric_constant[1][2] = 1.998;
2569 vert_dielectric_constant[1][2] = 3.9;
2570 wire_c_per_micron[1][2] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2822 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2823 fringe_cap);
2571 ild_thickness[1][2], miller_value[1][2], horiz_dielectric_constant[1][2], vert_dielectric_constant[1][2],
2572 fringe_cap);
2824 //Nominal projections for commodity DRAM wordline/bitline
2825 wire_pitch[1][3] = 2 * 0.016;//micron
2826 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.016);//F/micron
2827 wire_r_per_micron[1][3] = 12 / 0.016;//ohm/micron
2573 //Nominal projections for commodity DRAM wordline/bitline
2574 wire_pitch[1][3] = 2 * 0.016;//micron
2575 wire_c_per_micron[1][3] = 31e-15 / (256 * 2 * 0.016);//F/micron
2576 wire_r_per_micron[1][3] = 12 / 0.016;//ohm/micron
2828
2829 //******************
2830// wire_pitch[1][4] = 16 * g_ip.F_sz_um;
2831// aspect_ratio = 2.2;
2832// wire_width = wire_pitch[1][4] / 2;
2833// wire_thickness = aspect_ratio * wire_width;
2834// wire_spacing = wire_pitch[1][4] - wire_width;
2835// dishing_thickness = 0.1 * wire_thickness;
2836// wire_r_per_micron[1][4] = wire_resistance(CU_RESISTIVITY, wire_width,
2837// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2838// ild_thickness = 0.275;
2839// wire_c_per_micron[1][4] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2840// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2841// fringe_cap);
2842//
2843// wire_pitch[1][5] = 24 * g_ip.F_sz_um;
2844// aspect_ratio = 2.2;
2845// wire_width = wire_pitch[1][5] / 2;
2846// wire_thickness = aspect_ratio * wire_width;
2847// wire_spacing = wire_pitch[1][5] - wire_width;
2848// dishing_thickness = 0.1 * wire_thickness;
2849// wire_r_per_micron[1][5] = wire_resistance(CU_RESISTIVITY, wire_width,
2850// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2851// ild_thickness = 0.275;
2852// wire_c_per_micron[1][5] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2853// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2854// fringe_cap);
2855//
2856// wire_pitch[1][6] = 32 * g_ip.F_sz_um;
2857// aspect_ratio = 2.2;
2858// wire_width = wire_pitch[1][6] / 2;
2859// wire_thickness = aspect_ratio * wire_width;
2860// wire_spacing = wire_pitch[1][6] - wire_width;
2861// dishing_thickness = 0.1 * wire_thickness;
2862// wire_r_per_micron[1][6] = wire_resistance(CU_RESISTIVITY, wire_width,
2863// wire_thickness, barrier_thickness, dishing_thickness, alpha_scatter);
2864// ild_thickness = 0.275;
2865// wire_c_per_micron[1][6] = wire_capacitance(wire_width, wire_thickness, wire_spacing,
2866// ild_thickness, miller_value, horiz_dielectric_constant, vert_dielectric_constant,
2867// fringe_cap);
2868 }
2577 }
2869 g_tp.wire_local.pitch += curr_alpha * wire_pitch[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2870 g_tp.wire_local.R_per_um += curr_alpha * wire_r_per_micron[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2871 g_tp.wire_local.C_per_um += curr_alpha * wire_c_per_micron[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2872 g_tp.wire_local.aspect_ratio += curr_alpha * aspect_ratio[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2873 g_tp.wire_local.ild_thickness += curr_alpha * ild_thickness[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2874 g_tp.wire_local.miller_value += curr_alpha * miller_value[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2875 g_tp.wire_local.horiz_dielectric_constant += curr_alpha* horiz_dielectric_constant[g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2876 g_tp.wire_local.vert_dielectric_constant += curr_alpha* vert_dielectric_constant [g_ip->ic_proj_type][(ram_cell_tech_type == comm_dram)?3:0];
2578 g_tp.wire_local.pitch += curr_alpha *
2579 wire_pitch[g_ip->ic_proj_type]
2580 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2581 g_tp.wire_local.R_per_um += curr_alpha *
2582 wire_r_per_micron[g_ip->ic_proj_type]
2583 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2584 g_tp.wire_local.C_per_um += curr_alpha *
2585 wire_c_per_micron[g_ip->ic_proj_type]
2586 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2587 g_tp.wire_local.aspect_ratio += curr_alpha *
2588 aspect_ratio[g_ip->ic_proj_type]
2589 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2590 g_tp.wire_local.ild_thickness += curr_alpha *
2591 ild_thickness[g_ip->ic_proj_type]
2592 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2593 g_tp.wire_local.miller_value += curr_alpha *
2594 miller_value[g_ip->ic_proj_type]
2595 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2596 g_tp.wire_local.horiz_dielectric_constant += curr_alpha *
2597 horiz_dielectric_constant[g_ip->ic_proj_type]
2598 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2599 g_tp.wire_local.vert_dielectric_constant += curr_alpha *
2600 vert_dielectric_constant[g_ip->ic_proj_type]
2601 [(ram_cell_tech_type == comm_dram) ? 3 : 0];
2877
2602
2878 g_tp.wire_inside_mat.pitch += curr_alpha * wire_pitch[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2879 g_tp.wire_inside_mat.R_per_um += curr_alpha* wire_r_per_micron[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2880 g_tp.wire_inside_mat.C_per_um += curr_alpha* wire_c_per_micron[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2881 g_tp.wire_inside_mat.aspect_ratio += curr_alpha * aspect_ratio[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2882 g_tp.wire_inside_mat.ild_thickness += curr_alpha * ild_thickness[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2883 g_tp.wire_inside_mat.miller_value += curr_alpha * miller_value[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2884 g_tp.wire_inside_mat.horiz_dielectric_constant += curr_alpha* horiz_dielectric_constant[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2885 g_tp.wire_inside_mat.vert_dielectric_constant += curr_alpha* vert_dielectric_constant [g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2603 g_tp.wire_inside_mat.pitch += curr_alpha *
2604 wire_pitch[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2605 g_tp.wire_inside_mat.R_per_um += curr_alpha *
2606 wire_r_per_micron[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2607 g_tp.wire_inside_mat.C_per_um += curr_alpha *
2608 wire_c_per_micron[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2609 g_tp.wire_inside_mat.aspect_ratio += curr_alpha *
2610 aspect_ratio[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2611 g_tp.wire_inside_mat.ild_thickness += curr_alpha *
2612 ild_thickness[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2613 g_tp.wire_inside_mat.miller_value += curr_alpha *
2614 miller_value[g_ip->ic_proj_type][g_ip->wire_is_mat_type];
2615 g_tp.wire_inside_mat.horiz_dielectric_constant += curr_alpha *
2616 horiz_dielectric_constant[g_ip->ic_proj_type]
2617 [g_ip->wire_is_mat_type];
2618 g_tp.wire_inside_mat.vert_dielectric_constant += curr_alpha *
2619 vert_dielectric_constant [g_ip->ic_proj_type]
2620 [g_ip->wire_is_mat_type];
2886
2621
2887 g_tp.wire_outside_mat.pitch += curr_alpha * wire_pitch[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2888 g_tp.wire_outside_mat.R_per_um += curr_alpha*wire_r_per_micron[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2889 g_tp.wire_outside_mat.C_per_um += curr_alpha*wire_c_per_micron[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2890 g_tp.wire_outside_mat.aspect_ratio += curr_alpha * aspect_ratio[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2891 g_tp.wire_outside_mat.ild_thickness += curr_alpha * ild_thickness[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2892 g_tp.wire_outside_mat.miller_value += curr_alpha * miller_value[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2893 g_tp.wire_outside_mat.horiz_dielectric_constant += curr_alpha* horiz_dielectric_constant[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2894 g_tp.wire_outside_mat.vert_dielectric_constant += curr_alpha* vert_dielectric_constant [g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2622 g_tp.wire_outside_mat.pitch += curr_alpha *
2623 wire_pitch[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2624 g_tp.wire_outside_mat.R_per_um += curr_alpha *
2625 wire_r_per_micron[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2626 g_tp.wire_outside_mat.C_per_um += curr_alpha *
2627 wire_c_per_micron[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2628 g_tp.wire_outside_mat.aspect_ratio += curr_alpha *
2629 aspect_ratio[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2630 g_tp.wire_outside_mat.ild_thickness += curr_alpha *
2631 ild_thickness[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2632 g_tp.wire_outside_mat.miller_value += curr_alpha *
2633 miller_value[g_ip->ic_proj_type][g_ip->wire_os_mat_type];
2634 g_tp.wire_outside_mat.horiz_dielectric_constant += curr_alpha *
2635 horiz_dielectric_constant[g_ip->ic_proj_type]
2636 [g_ip->wire_os_mat_type];
2637 g_tp.wire_outside_mat.vert_dielectric_constant += curr_alpha *
2638 vert_dielectric_constant [g_ip->ic_proj_type]
2639 [g_ip->wire_os_mat_type];
2895
2640
2896 g_tp.unit_len_wire_del = g_tp.wire_inside_mat.R_per_um * g_tp.wire_inside_mat.C_per_um / 2;
2641 g_tp.unit_len_wire_del = g_tp.wire_inside_mat.R_per_um *
2642 g_tp.wire_inside_mat.C_per_um / 2;
2897
2643
2898 g_tp.sense_delay += curr_alpha *SENSE_AMP_D;
2899 g_tp.sense_dy_power += curr_alpha *SENSE_AMP_P;
2900// g_tp.horiz_dielectric_constant += horiz_dielectric_constant;
2901// g_tp.vert_dielectric_constant += vert_dielectric_constant;
2902// g_tp.aspect_ratio += aspect_ratio;
2903// g_tp.miller_value += miller_value;
2904// g_tp.ild_thickness += ild_thickness;
2644 g_tp.sense_delay += curr_alpha * SENSE_AMP_D;
2645 g_tp.sense_dy_power += curr_alpha * SENSE_AMP_P;
2905
2646
2906 }
2907 g_tp.fringe_cap = fringe_cap;
2647 }
2648 g_tp.fringe_cap = fringe_cap;
2908
2649
2909 double rd = tr_R_on(g_tp.min_w_nmos_, NCH, 1);
2910 double p_to_n_sizing_r = pmos_to_nmos_sz_ratio();
2911 double c_load = gate_C(g_tp.min_w_nmos_ * (1 + p_to_n_sizing_r), 0.0);
2912 double tf = rd * c_load;
2913 g_tp.kinv = horowitz(0, tf, 0.5, 0.5, RISE);
2914 double KLOAD = 1;
2915 c_load = KLOAD * (drain_C_(g_tp.min_w_nmos_, NCH, 1, 1, g_tp.cell_h_def) +
2916 drain_C_(g_tp.min_w_nmos_ * p_to_n_sizing_r, PCH, 1, 1, g_tp.cell_h_def) +
2917 gate_C(g_tp.min_w_nmos_ * 4 * (1 + p_to_n_sizing_r), 0.0));
2918 tf = rd * c_load;
2919 g_tp.FO4 = horowitz(0, tf, 0.5, 0.5, RISE);
2650 double rd = tr_R_on(g_tp.min_w_nmos_, NCH, 1);
2651 double p_to_n_sizing_r = pmos_to_nmos_sz_ratio();
2652 double c_load = gate_C(g_tp.min_w_nmos_ * (1 + p_to_n_sizing_r), 0.0);
2653 double tf = rd * c_load;
2654 g_tp.kinv = horowitz(0, tf, 0.5, 0.5, RISE);
2655 double KLOAD = 1;
2656 c_load = KLOAD * (drain_C_(g_tp.min_w_nmos_, NCH, 1, 1, g_tp.cell_h_def) +
2657 drain_C_(g_tp.min_w_nmos_ * p_to_n_sizing_r, PCH, 1, 1, g_tp.cell_h_def) +
2658 gate_C(g_tp.min_w_nmos_ * 4 * (1 + p_to_n_sizing_r), 0.0));
2659 tf = rd * c_load;
2660 g_tp.FO4 = horowitz(0, tf, 0.5, 0.5, RISE);
2920}
2921
2661}
2662