📄 leakage.c.svn-base
字号:
Na = 3.6 ; /* Empirical param for the Vdd fit */
Nb = 2.5 ; /* Empirical param for the Vdd fit */
Pa = 4.49 ; /* Empirical param for the Vdd fit */
Pb = 2.4 ; /* Empirical param for the Vdd fit */
NEta = 1.7 ; /* Sub-threshold Swing Co-efficient N-Type */
PEta = 1.7 ; /* Sub-threshold Swing Co-efficient P-Type */
/* gate Vss */
Vth0_gate_vss = 0.50;
aspect_gate_vss = 5;
/*drowsy cache*/
Vdd_low = 0.36;
/*RBB*/
k1_body_n = 0.395;
k1_body_p = 0.391;
vfi = 0.5;
VSB_NMOS = 0.4;
VSB_PMOS = 0.4 ;
/* dual VT*/
Vt_cell_nmos_high = 0.31 ;
Vt_cell_pmos_high = 0.35;
Vt_bit_nmos_low = 0.21;
Vt_bit_pmos_low = 0.25;
L_nmos_d = 0.102E+9; /* Adjusting Factor for Length */
Tox_nmos_e = 2.5E+9; /* Adjusting Factor for Tox */
L_pmos_d = 0.21E+9; /* Adjusting Factor for Length */
Tox_pmos_e = 3.1E+9; /* Adjusting Factor for Tox */
} else if (tech > 69 && tech < 71) {
process_tech = 0.07;
tech_length0 = 70E-9;
M0n = 3.5E-2 ; /* Zero Bias Mobility for N-Type */
M0p = 8.0E-3 ; /* Zero Bias Mobility for P-Type */
Tox = 1.0E-9;
Cox = (Eox/Tox) ; /* Gate Oxide Capacitance per unit area */
Vnoff0 = -3.9E-2 ; /* Empirically Determined Model Parameter for N-Type */
/* FIX ME */
Vpoff0 = -4.35E-2; /* Empirically Determined Model Parameter for P-Type */
Nfix = -0.05 ; /* In the equation Voff = Vnoff0 +Nfix*(Vth0-Vthn) */
Pfix = 0.07 ; /* In the equation Voff = Vpoff0 +Pfix*(Vth0-Vthp) */
Vthn = 0.1902 ; /* In the equation Voff = Vnoff0 +Nfix*(Vth0-Vthn) */
Vthp = 0.2130 ; /* In the equation Voff = Vpoff0 +Pfix*(Vth0-Vthp) */
Vnthx = -0.49E-3 ; /* In the Equation Vth = Vth0 +Vnthx*(T-300) */
Vpthx = -0.54E-3; /* In the Equation Vth = Vth0 +Vpthx*(T-300) */
Vdd_init = 1.0; /* Default Vdd. Can be Changed in leakage.c */
Volt0 = 0.8;
Na = -2.94 ; /* Empirical param for the Vdd fit */
Nb = 2.0 ; /* Empirical param for the Vdd fit */
Pa = -2.245; /* Empirical param for the Vdd fit */
Pb = 2.89; /* Empirical param for the Vdd fit */
NEta = 1.3; /* Sub-threshold Swing Co-efficient N-Type */
PEta = 1.4 ; /* Sub-threshold Swing Co-efficient P-Type */
/*gate leakage factor for 70nm*/
nmos_unit_leakage = 53e-12;
a_nmos_vdd = 7.75;
b_nmos_t = 0.15e-12;
c_nmos_tox = 11.75e9;
pmos_unit_leakage = 22.9e-12;
a_pmos_vdd = 12;
b_pmos_t = 0.086e-12;
c_pmos_tox = 11.25e9;
/* gate Vss */
Vth0_gate_vss = 0.45;
aspect_gate_vss = 5;
/*drowsy cache*/
Vdd_low = 0.3;
/*RBB*/
k1_body_n = 0.37;
k1_body_p = 0.38;
vfi = 0.45;
VSB_NMOS = 0.35 ;
VSB_PMOS = 0.35;
/* dual VT*/
Vt_cell_nmos_high = 0.29 ;
Vt_cell_pmos_high = 0.31;
Vt_bit_nmos_low = 0.19;
Vt_bit_pmos_low = 0.21;
L_nmos_d = 0.1E+9; /* Adjusting Factor for Length */
Tox_nmos_e = 3.0E+9; /* Adjusting Factor for Tox */
L_pmos_d = 0.225E+9; /* Adjusting Factor for Length */
Tox_pmos_e = 4.0E+9; /* Adjusting Factor for Tox */
}
else {
have_leakage_params = 0;
//printf("\n ERROR: Technology parameters not known for %3.4f feature size \n (Parameters available for 0.18u, 0.13, 0.10, and 0.07u technologies)\nExiting...\n\n");
//exit(0);
}
//v4.1: Specifying all resistances, capacitances, device/wire dimensions in terms of input tech node.
//Presently derived from original 0.8 micron process
FUDGEFACTOR = 0.8/technology;//Since 0.8 micron is the base process presently
FEATURESIZE = technology;
Cndiffarea = Cndiffarea * FUDGEFACTOR;//Since this is a F/micron2 capacitance, this will scale up by FUDGEFACTOR
Cpdiffarea = Cpdiffarea * FUDGEFACTOR;//Since this is a F/micron2 capacitance, this will scale up by FUDGEFACTOR
Cndiffside = Cndiffside;//Since this is a F/micron capacitance, this doesn't scale
Cpdiffside = Cpdiffside;//Since this is a F/micron capacitance, this doesn't scale
Cndiffovlp = Cndiffovlp;//Since this is a F/micron capacitance, this doesn't scale
Cpdiffovlp = Cpdiffovlp;//Since this is a F/micron capacitance, this doesn't scale
Cnoxideovlp = Cnoxideovlp;//Since this is a F/micron capacitance, this doesn't scale
Cpoxideovlp = Cpoxideovlp;//Since this is a F/micron capacitance, this doesn't scale
Leff = 0.8/FUDGEFACTOR;//Presently the tech parameters are based off a 0.8 micron process
//If the technology node changes, then the 0.8 should be replaced appropriately.
inv_Leff = inv_Leff * FUDGEFACTOR;//Since this is inverse of transistor length
Cgate = Cgate * FUDGEFACTOR;//Since this is a F/micron2 capacitance, this will scale up by FUDGEFACTOR
Cgatepass = Cgatepass * FUDGEFACTOR;//Since this is a F/micron2 capacitance, this will scale up by FUDGEFACTOR
Cpolywire = Cpolywire * FUDGEFACTOR;//Since this is a F/micron2 capacitance, this will scale up by FUDGEFACTOR
Rnchannelstatic = Rnchannelstatic / FUDGEFACTOR;//Since this is an ohm-micron resistance, this will scale down by FUDGEFACTOR
Rpchannelstatic = Rpchannelstatic / FUDGEFACTOR;//Since this is an ohm-micron resistance, this will scale down by FUDGEFACTOR
Rnchannelon = Rnchannelon / FUDGEFACTOR;//Since this is an ohm-micron resistance, this will scale down by FUDGEFACTOR
Rpchannelon = Rpchannelon / FUDGEFACTOR;//Since this is an ohm-micron resistance, this will scale down by FUDGEFACTOR
Wdecdrivep = 450 * FEATURESIZE;//this was 360 micron for the 0.8 micron process
Wdecdriven = 300 * FEATURESIZE;//this was 240 micron for the 0.8 micron process
Wworddrivemax = 125 * FEATURESIZE; //this was 100 micron for the 0.8 micron process
Wmemcella = 1.125 * FEATURESIZE;//this was 0.9 micron for the 0.8 micron process
Wmemcellpmos = 0.8125 * FEATURESIZE;//this was 0.65 micron for the 0.8 micron process
Wmemcellnmos = 2.5 * FEATURESIZE;//this was 2 micron for the 0.8 micron process
Wpchmax = 31.25;//this was 25 micron for the 0.8 micron process
Wcompinvp1 = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wcompinvn1 = 7.5 * FEATURESIZE;//this was 6 micron for the 0.8 micron process
Wcompinvp2 = 25 * FEATURESIZE;//this was 20 micron for the 0.8 micron process
Wcompinvn2 = 15 * FEATURESIZE;//this was 12 micron for the 0.8 micron process
Wcompinvp3 = 50 * FEATURESIZE;//this was 40 micron for the 0.8 micron process
Wcompinvn3 = 30 * FEATURESIZE;//this was 24 micron for the 0.8 micron process
Wevalinvp = 100 * FEATURESIZE;//this was 80 micron for the 0.8 micron process
Wevalinvn = 50 * FEATURESIZE;//this was 40 micron for the 0.8 micron process
Wfadriven = 62.5 * FEATURESIZE;//this was 50 micron for the 0.8 micron process
Wfadrivep = 125 * FEATURESIZE;//this was 100 micron for the 0.8 micron process
Wfadrive2n = 250 * FEATURESIZE;//this was 200 micron for the 0.8 micron process
Wfadrive2p = 500 * FEATURESIZE;//this was 400 micron for the 0.8 micron process
Wfadecdrive1n = 6.25 * FEATURESIZE;//this was 5 micron for the 0.8 micron process
Wfadecdrive1p = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wfadecdrive2n = 25 * FEATURESIZE;//this was 20 micron for the 0.8 micron process
Wfadecdrive2p = 50 * FEATURESIZE;//this was 40 micron for the 0.8 micron process
Wfadecdriven = 62.5 * FEATURESIZE;//this was 50 micron for the 0.8 micron process
Wfadecdrivep = 125 * FEATURESIZE;//this was 100 micron for the 0.8 micron process
Wfaprechn = 7.5 * FEATURESIZE;//this was 6 micron for the 0.8 micron process
Wfaprechp = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wdummyn = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wdummyinvn = 75 * FEATURESIZE;//this was 60 micron for the 0.8 micron process
Wdummyinvp = 100 * FEATURESIZE;//this was 80 micron for the 0.8 micron process
Wfainvn = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wfainvp = 25 * FEATURESIZE;//this was 20 micron for the 0.8 micron process
Waddrnandn = 62.5 * FEATURESIZE;//this was 50 micron for the 0.8 micron process
Waddrnandp = 62.5 * FEATURESIZE;//this was 50 micron for the 0.8 micron process
Wfanandn = 25 * FEATURESIZE;//this was 20 micron for the 0.8 micron process
Wfanandp = 37.5 * FEATURESIZE;//this was 30 micron for the 0.8 micron process
Wfanorn = 6.25 * FEATURESIZE;//this was 5 micron for the 0.8 micron process
Wfanorp = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wdecnandn = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wdecnandp = 37.5 * FEATURESIZE;//this was 30 micron for the 0.8 micron process
Wcompn = 12.5 * FEATURESIZE;//this was 10 micron for the 0.8 micron process
Wcompp = 37.5 * FEATURESIZE;//this was 30 micron for the 0.8 micron process
Wmuxdrv12n = 75 * FEATURESIZE;//this was 60 micron for the 0.8 micron process
Wmuxdrv12p = 125 * FEATURESIZE;//this was 100 micron for the 0.8 micron process
Wsenseextdrv1p = 100 * FEATURESIZE;//this was 80 micron for the 0.8 micron process
Wsenseextdrv1n = 50 * FEATURESIZE;//this was 40 micron for the 0.8 micron process
Wsenseextdrv2p = 300 * FEATURESIZE;//this was 240 micron for the 0.8 micron process
Wsenseextdrv2n = 200 * FEATURESIZE;//this was 160 micron for the 0.8 micron process
krise = krise / FUDGEFACTOR; //this was krise for the 0.8 micron process
tsensedata = tsensedata / FUDGEFACTOR; //this was tsensedata for the 0.8 micron process
//#define psensedata (0.02e-9)
//#define tsensescale 0.02e-10
tsensetag = tsensetag / FUDGEFACTOR; //this was tsensetag for the 0.8 micron process
//#define psensetag (0.016e-9)
tfalldata = tfalldata / FUDGEFACTOR;//this was tfalldata for the 0.8 micron process
tfalltag = tfalltag / FUDGEFACTOR;//this was tfalltag for the 0.8 micron process
BitWidth = 7.746*FEATURESIZE;//this was 7.746*0.8 for the 0.8 micron process
BitHeight = 2*7.746*FEATURESIZE;//this was 2*7.746*0.8 for the 0.8 micron process
Cout = Cout/ FUDGEFACTOR;//this was 0.5e-12 for the 0.8 micron process
//From areadef.h; expressing all dimensions in terms of process feauture size
Widthptondiff = 4*FEATURESIZE; //Was 3.2 micron for the 0.8 micron process
Widthtrack = 3.2*FEATURESIZE; //Was 3.2*0.8 micron for the 0.8 micron process
Widthcontact = 2*FEATURESIZE; //Was 1.6 micron for the 0.8 micron process
Wpoly = FEATURESIZE;//Was 0.8 micron for the 0.8 micron process
ptocontact = FEATURESIZE/2; //Was 0.4 micron for the 0.8 micron process
stitch_ramv = 7.5*FEATURESIZE; //Was 6 micron for the 0.8 micron process
//#define BitHeight16x2 33.6
BitHeight1x1 = 2*7.746*FEATURESIZE; /* see below */ //Was 2*7.746*0.8 micron for the 0.8 micron process
stitch_ramh = 15*FEATURESIZE; //Was 12 micron for the 0.8 micron process
//#define BitWidth16x2 192.8
BitWidth1x1 = 7.746*FEATURESIZE; //Was 7.746*0.8 micron for the 0.8 micron process
/* dt: Assume that each 6-T SRAM cell is 120F^2 and has an aspect ratio of 1(width) to 2(height), than the width is 2*sqrt(60)*F */
WidthNOR1 = 14.5*FEATURESIZE; //Was 11.6 micron for the 0.8 micron process
WidthNOR2 = 17*FEATURESIZE; //Was 13.6 micron for the 0.8 micron process
WidthNOR3 = 26*FEATURESIZE; //Was 20.8 micron for the 0.8 micron process
WidthNOR4 = 36*FEATURESIZE; //Was 28.8 micron for the 0.8 micron process
WidthNOR5 = 43*FEATURESIZE; //Was 34.4 micron for the 0.8 micron process
WidthNOR6 = 52*FEATURESIZE; //Was 41.6 micron for the 0.8 micron process
Predec_height1 = 176*FEATURESIZE; //Was 140.8 micron for the 0.8 micron process
Predec_width1 = 338*FEATURESIZE; //Was 270.4 micron for the 0.8 micron process
Predec_height2 = 176*FEATURESIZE; //Was 140.8 micron for the 0.8 micron process
Predec_width2 = 674*FEATURESIZE; //Was 539.2 micron for the 0.8 micron process
Predec_height3 = 352*FEATURESIZE; //Was 281.6 micron for the 0.8 micron process
Predec_width3 = 730*FEATURESIZE; //Was 584 micron for the 0.8 micron process
Predec_height4 = 352*FEATURESIZE; //Was 281.6 micron for the 0.8 micron process
Predec_width4 = 786*FEATURESIZE; //Was 628.8 micron for the 0.8 micron process
Predec_height5 = 528*FEATURESIZE; //Was 422.4 micron for the 0.8 micron process
Predec_width5 = 842*FEATURESIZE; //Was 673.6 micron for the 0.8 micron process
Predec_height6 = 528*FEATURESIZE; //Was 422.4 micron for the 0.8 micron process
Predec_width6 = 898*FEATURESIZE; //Was 718.4 micron for the 0.8 micron process
Wwrite = 1.5*FEATURESIZE; //Was 1.2 micron for the 0.8 micron process
SenseampHeight = 190*FEATURESIZE; //Was 152 micron for the 0.8 micron process
OutdriveHeight = 250*FEATURESIZE; //Was 200 micron for the 0.8 micron process
FAOutdriveHeight = 286.5*FEATURESIZE; //Was 229.2 micron for the 0.8 micron process
FArowWidth = 478.5*FEATURESIZE; //Was 382.8 micron for the 0.8 micron process
CAM2x2Height_1p = 61*FEATURESIZE; //Was 48.8 micron for the 0.8 micron process
CAM2x2Width_1p = 56*FEATURESIZE; //Was 44.8 micron for the 0.8 micron process
CAM2x2Height_2p = 101*FEATURESIZE; //Was 80.8 micron for the 0.8 micron process
CAM2x2Width_2p = 96*FEATURESIZE; //Was 76.8 micron for the 0.8 micron process
DatainvHeight = 32*FEATURESIZE; //Was 25.6 micron for the 0.8 micron process
Wbitdropv = 37.5*FEATURESIZE; //Was 30 micron for the 0.8 micron process
decNandWidth = 43*FEATURESIZE; //Was 34.4 micron for the 0.8 micron process
FArowNANDWidth = 89*FEATURESIZE; //Was 71.2 micron for the 0.8 micron process
FArowNOR_INVWidth = 35*FEATURESIZE; //Was 28 micron for the 0.8 micron process
FAHeightIncrPer_first_rw_or_w_port = 20*FEATURESIZE; //Was 16 micron for the 0.8 micron process
FAHeightIncrPer_later_rw_or_w_port = 20*FEATURESIZE; //Was 16 micron for the 0.8 micron process
FAHeightIncrPer_first_r_port = 15*FEATURESIZE; //Was 12 micron for the 0.8 micron process
FAHeightIncrPer_later_r_port = 15*FEATURESIZE; //Was 12 micron for the 0.8 micron process
FAWidthIncrPer_first_rw_or_w_port = 20*FEATURESIZE; //Was 16 micron for the 0.8 micron process
FAWidthIncrPer_later_rw_or_w_port = 12*FEATURESIZE; //Was 9.6 micron for the 0.8 micron process
FAWidthIncrPer_first_r_port = 15*FEATURESIZE; //Was 12 micron for the 0.8 micron process
FAWidthIncrPer_later_r_port = 12*FEATURESIZE; //Was 9.6 micron for the 0.8 micron process
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -