📄 def.h.svn-base
字号:
double Cdectreesegments[10], Rdectreesegments[10];
int nr_dectreesegments;
double Wdec3to8n ;
double Wdec3to8p ;
double WdecNORn ;
double WdecNORp ;
double Wdecinvn ;
double Wdecinvp ;
double WwlDrvn ;
double WwlDrvp ;
double Wtdecdrivep_second;
double Wtdecdriven_second;
double Wtdecdrivep_first;
double Wtdecdriven_first;
double WtdecdrivetreeN[10];
double Ctdectreesegments[10], Rtdectreesegments[10];
int nr_tdectreesegments;
double Wtdec3to8n ;
double Wtdec3to8p ;
double WtdecNORn ;
double WtdecNORp ;
double Wtdecinvn ;
double Wtdecinvp ;
double WtwlDrvn ;
double WtwlDrvp ;
/* #define Wmemcella (2.4)
// added by MnM
// #define Wmemcellpmos (4.0)
// #define Wmemcellnmos (2.0)
*/
//#define Wmemcella (0.9)
double Wmemcella;
/* added by MnM */
//#define Wmemcellpmos (0.65)
double Wmemcellpmos;
//#define Wmemcellnmos (2.0)
double Wmemcellnmos;
//#define Wmemcellbscale 2 /* means 2x bigger than Wmemcella */
int Wmemcellbscale;
/* #define Wbitpreequ (80.0) */
double Wbitpreequ;
//#define Wpchmax (25.0) /* precharge transistor sizes usually do not exceed 25 */
double Wpchmax;
/* #define Wbitmuxn (10.0)
//#define WsenseQ1to4 (4.0) */
double Wpch;
double Wiso;
double WsenseEn;
double WsenseN;
double WsenseP;
double WsPch;
double WoBufN;
double WoBufP;
double WpchDrvp, WpchDrvn;
double WisoDrvp, WisoDrvn;
double WspchDrvp, WspchDrvn;
double WsenseEnDrvp, WsenseEnDrvn;
double WwrtMuxSelDrvn;
double WwrtMuxSelDrvp;
double WtwrtMuxSelDrvn;
double WtwrtMuxSelDrvp;
double Wtbitpreequ;
double Wtpch;
double Wtiso;
double WtsenseEn;
double WtsenseN;
double WtsenseP;
double WtoBufN;
double WtoBufP;
double WtsPch;
double WtpchDrvp, WtpchDrvn;
double WtisoDrvp, WtisoDrvn;
double WtspchDrvp, WtspchDrvn;
double WtsenseEnDrvp, WtsenseEnDrvn;
//#define Wcompinvp1 (10.0)
double Wcompinvp1;
//#define Wcompinvn1 (6.0)
double Wcompinvn1;
//#define Wcompinvp2 (20.0)
double Wcompinvp2;
//#define Wcompinvn2 (12.0)
double Wcompinvn2;
//#define Wcompinvp3 (40.0)
double Wcompinvp3;
//#define Wcompinvn3 (24.0)
double Wcompinvn3;
//#define Wevalinvp (80.0)
double Wevalinvp;
//#define Wevalinvn (40.0)
double Wevalinvn;
//#define Wfadriven (50.0)
double Wfadriven;
//#define Wfadrivep (100.0)
double Wfadrivep;
//#define Wfadrive2n (200.0)
double Wfadrive2n;
//#define Wfadrive2p (400.0)
double Wfadrive2p;
//#define Wfadecdrive1n (5.0)
double Wfadecdrive1n;
//#define Wfadecdrive1p (10.0)
double Wfadecdrive1p;
//#define Wfadecdrive2n (20.0)
double Wfadecdrive2n;
//#define Wfadecdrive2p (40.0)
double Wfadecdrive2p;
//#define Wfadecdriven (50.0)
double Wfadecdriven;
//#define Wfadecdrivep (100.0)
double Wfadecdrivep;
//#define Wfaprechn (6.0)
double Wfaprechn;
//#define Wfaprechp (10.0)
double Wfaprechp;
//#define Wdummyn (10.0)
double Wdummyn;
//#define Wdummyinvn (60.0)
double Wdummyinvn;
//#define Wdummyinvp (80.0)
double Wdummyinvp;
//#define Wfainvn (10.0)
double Wfainvn;
//#define Wfainvp (20.0)
double Wfainvp;
//#define Waddrnandn (50.0)
double Waddrnandn;
//#define Waddrnandp (50.0)
double Waddrnandp;
//#define Wfanandn (20.0)
double Wfanandn;
//#define Wfanandp (30.0)
double Wfanandp;
//#define Wfanorn (5.0)
double Wfanorn;
//#define Wfanorp (10.0)
double Wfanorp;
//#define Wdecnandn (10.0)
double Wdecnandn;
//#define Wdecnandp (30.0)
double Wdecnandp;
//#define Wcompn (10.0)
double Wcompn;
//#define Wcompp (30.0)
double Wcompp;
//#define Wmuxdrv12n (60.0)
double Wmuxdrv12n;
//#define Wmuxdrv12p (100.0)
double Wmuxdrv12p;
/* #define WmuxdrvNANDn (60.0)
//#define WmuxdrvNANDp (80.0)
//#define WmuxdrvNORn (40.0)
//#define WmuxdrvNORp (100.0)
//#define Wmuxdrv3n (80.0)
//#define Wmuxdrv3p (200.0)
// #define Woutdrvseln (24.0)
// #define Woutdrvselp (40.0)
*/
double Coutdrvtreesegments[20], Routdrvtreesegments[20];
double WoutdrvtreeN[20];
int nr_outdrvtreesegments;
double Cmuxdrvtreesegments[20], Rmuxdrvtreesegments[20];
double WmuxdrvtreeN[20];
int nr_muxdrvtreesegments;
double WmuxdrvNANDn ;
double WmuxdrvNANDp ;
double WmuxdrvNORn ;
double WmuxdrvNORp ;
double Wmuxdrv3n ;
double Wmuxdrv3p ;
double Woutdrvseln ;
double Woutdrvselp ;
/* #define Woutdrvnandn (10.0)
//#define Woutdrvnandp (30.0)
//#define Woutdrvnorn (5.0)
//#define Woutdrvnorp (20.0)
//#define Woutdrivern (48.0)
//#define Woutdriverp (80.0)
*/
double Woutdrvnandn;
double Woutdrvnandp;
double Woutdrvnorn ;
double Woutdrvnorp ;
double Woutdrivern ;
double Woutdriverp ;
//#define Wsenseextdrv1p (80.0)
double Wsenseextdrv1p;
//#define Wsenseextdrv1n (40.0)
double Wsenseextdrv1n;
//#define Wsenseextdrv2p (240.0)
double Wsenseextdrv2p;
//#define Wsenseextdrv2n (160.0)
double Wsenseextdrv2n;
/* other stuff (from tech report, appendix 1) */
//#define krise (0.4e-9)
double krise;
//#define tsensedata (5.8e-10)
double tsensedata;
// #define psensedata (0.025e-9)
//#define psensedata (0.02e-9)
double psensedata;
//#define tsensescale 0.02e-10
double tsensescale;
//#define tsensetag (2.6e-10)
double tsensetag;
// #define psensetag (0.01e-9)
//#define psensetag (0.016e-9)
double psensetag;
//#define tfalldata (7e-10)
double tfalldata;
//#define tfalltag (7e-10)
double tfalltag;
#define Vbitpre (3.3)
static double VbitprePow;
#define Vt (1.09)
/*
was: #define Vbitsense (0.10)
now: 50mV seems to be the norm as of 2005
*/
#define Vbitsense (0.05*Vdd)
#define Vbitswing (0.20*Vdd)
/* bit width of RAM cell in um */
/*
was:
#define BitWidth (8.0)
*/
//#define BitWidth 7.746*0.8
double BitWidth;
/* bit height of RAM cell in um */
/*
was:
#define BitHeight (16.0)
*/
//#define BitHeight 2*7.746*0.8
double BitHeight;
//#define Cout (0.5e-12)
double Cout;
int dualVt ;
int explore;
/*===================================================================*/
/*
* The following are things you probably wouldn't want to change.
*/
#define TRUE 1
#define FALSE 0
#ifndef NULL
#define NULL 0
#endif
#define OK 1
#define ERROR 0
#define BIGNUM 1e30
#define DIVIDE(a,b) ((b)==0)? 0:(a)/(b)
#define MAX(a,b) (((a)>(b))?(a):(b))
#define WAVE_PIPE 3
#define MAX_COL_MUX 16
/* Used to communicate with the horowitz model */
#define RISE 1
#define FALL 0
#define NCH 1
#define PCH 0
/* Used to pass values around the program */
/*dt: maximum numbers of entries in the
caching structures of the tag calculations
*/
#define MAX_CACHE_ENTRIES 512
static int sequential_access_flag;
static int fast_cache_access_flag;
int pure_sram_flag; //Changed from static int to just int as value wasn't getting passed through to
//area function in area.c
#define EPSILON 0.5 //v4.1: This constant is being used in order to fix floating point -> integer
//conversion problems that were occuring within CACTI. Typical problem that was occuring was
//that with different compilers a floating point number like 3.0 would get represented as either
//2.9999....or 3.00000001 and then the integer part of the floating point number (3.0) would
//be computed differently depending on the compiler. What we are doing now is to replace
//int (x) with (int) (x+EPSILON) where EPSILON is 0.5. This would fix such problems. Note that
//this works only when x is an integer >= 0.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -