⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leakage.c.svn-base

📁 模拟多核状态下龙芯处理器的功能
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
  		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 + -