bsim3def.h

来自「ngspice又一个电子CAD仿真软件代码.功能更全」· C头文件 代码 · 共 1,811 行 · 第 1/4 页

H
1,811
字号
/**********Copyright 2001 Regents of the University of California.  All rights reserved.Author: 1995 Min-Chie Jeng and Mansun Chan.Author: 1997-1999 Weidong Liu.Author: 2001 Xuemei XiModified by Paolo Nenzi 2002 and Dietmar Warning 2003File: bsim3def.h**********/#ifndef BSIM3#define BSIM3#include "ifsim.h"#include "gendefs.h"#include "cktdefs.h"#include "complex.h"#include "noisedef.h"         typedef struct sBSIM3instance{    struct sBSIM3model *BSIM3modPtr;    struct sBSIM3instance *BSIM3nextInstance;    IFuid BSIM3name;    int BSIM3owner;      /* number of owner process */       int BSIM3states;     /* index into state table for this device */    int BSIM3dNode;    int BSIM3gNode;    int BSIM3sNode;    int BSIM3bNode;    int BSIM3dNodePrime;    int BSIM3sNodePrime;    int BSIM3qNode; /* MCJ */    /* MCJ */    double BSIM3ueff;    double BSIM3thetavth;     double BSIM3von;    double BSIM3vdsat;    double BSIM3cgdo;    double BSIM3cgso;    double BSIM3vjsm;    double BSIM3IsEvjsm;    double BSIM3vjdm;    double BSIM3IsEvjdm;    double BSIM3l;    double BSIM3w;    double BSIM3m;      double BSIM3drainArea;    double BSIM3sourceArea;    double BSIM3drainSquares;    double BSIM3sourceSquares;    double BSIM3drainPerimeter;    double BSIM3sourcePerimeter;    double BSIM3sourceConductance;    double BSIM3drainConductance;    double BSIM3icVBS;    double BSIM3icVDS;    double BSIM3icVGS;    int BSIM3off;    int BSIM3mode;    int BSIM3nqsMod;    /* OP point */    double BSIM3qinv;    double BSIM3cd;    double BSIM3cbs;    double BSIM3cbd;    double BSIM3csub;    double BSIM3gm;    double BSIM3gds;    double BSIM3gmbs;    double BSIM3gbd;    double BSIM3gbs;    double BSIM3gbbs;    double BSIM3gbgs;    double BSIM3gbds;    double BSIM3cggb;    double BSIM3cgdb;    double BSIM3cgsb;    double BSIM3cbgb;    double BSIM3cbdb;    double BSIM3cbsb;    double BSIM3cdgb;    double BSIM3cddb;    double BSIM3cdsb;    double BSIM3capbd;    double BSIM3capbs;    double BSIM3cqgb;    double BSIM3cqdb;    double BSIM3cqsb;    double BSIM3cqbb;    double BSIM3qgate;    double BSIM3qbulk;    double BSIM3qdrn;    double BSIM3gtau;    double BSIM3gtg;    double BSIM3gtd;    double BSIM3gts;    double BSIM3gtb;    double BSIM3rds;  /* Noise bugfix */    double BSIM3Vgsteff;    double BSIM3Vdseff;    double BSIM3Abulk;    double BSIM3AbovVgst2Vtm;    struct bsim3SizeDependParam  *pParam;    unsigned BSIM3lGiven :1;    unsigned BSIM3wGiven :1;    unsigned BSIM3mGiven :1;        unsigned BSIM3drainAreaGiven :1;    unsigned BSIM3sourceAreaGiven    :1;    unsigned BSIM3drainSquaresGiven  :1;    unsigned BSIM3sourceSquaresGiven :1;    unsigned BSIM3drainPerimeterGiven    :1;    unsigned BSIM3sourcePerimeterGiven   :1;    unsigned BSIM3dNodePrimeSet  :1;    unsigned BSIM3sNodePrimeSet  :1;    unsigned BSIM3icVBSGiven :1;    unsigned BSIM3icVDSGiven :1;    unsigned BSIM3icVGSGiven :1;    unsigned BSIM3nqsModGiven :1;    double *BSIM3DdPtr;    double *BSIM3GgPtr;    double *BSIM3SsPtr;    double *BSIM3BbPtr;    double *BSIM3DPdpPtr;    double *BSIM3SPspPtr;    double *BSIM3DdpPtr;    double *BSIM3GbPtr;    double *BSIM3GdpPtr;    double *BSIM3GspPtr;    double *BSIM3SspPtr;    double *BSIM3BdpPtr;    double *BSIM3BspPtr;    double *BSIM3DPspPtr;    double *BSIM3DPdPtr;    double *BSIM3BgPtr;    double *BSIM3DPgPtr;    double *BSIM3SPgPtr;    double *BSIM3SPsPtr;    double *BSIM3DPbPtr;    double *BSIM3SPbPtr;    double *BSIM3SPdpPtr;    double *BSIM3QqPtr;    double *BSIM3QdpPtr;    double *BSIM3QgPtr;    double *BSIM3QspPtr;    double *BSIM3QbPtr;    double *BSIM3DPqPtr;    double *BSIM3GqPtr;    double *BSIM3SPqPtr;    double *BSIM3BqPtr;#define BSIM3vbd BSIM3states+ 0#define BSIM3vbs BSIM3states+ 1#define BSIM3vgs BSIM3states+ 2#define BSIM3vds BSIM3states+ 3#define BSIM3qb BSIM3states+ 4#define BSIM3cqb BSIM3states+ 5#define BSIM3qg BSIM3states+ 6#define BSIM3cqg BSIM3states+ 7#define BSIM3qd BSIM3states+ 8#define BSIM3cqd BSIM3states+ 9#define BSIM3qbs  BSIM3states+ 10#define BSIM3qbd  BSIM3states+ 11#define BSIM3qcheq BSIM3states+ 12#define BSIM3cqcheq BSIM3states+ 13#define BSIM3qcdump BSIM3states+ 14#define BSIM3cqcdump BSIM3states+ 15#define BSIM3qdef BSIM3states+ 16#define BSIM3numStates 17/* indices to the array of BSIM3 NOISE SOURCES */#define BSIM3RDNOIZ       0#define BSIM3RSNOIZ       1#define BSIM3IDNOIZ       2#define BSIM3FLNOIZ       3#define BSIM3TOTNOIZ      4#define BSIM3NSRCS        5  /* the number of BSIM3 MOSFET noise sources */#ifndef NONOISE    double BSIM3nVar[NSTATVARS][BSIM3NSRCS];#else /* NONOISE */        double **BSIM3nVar;#endif /* NONOISE */} BSIM3instance ;struct bsim3SizeDependParam{    double Width;    double Length;    double BSIM3cdsc;               double BSIM3cdscb;        double BSIM3cdscd;           double BSIM3cit;               double BSIM3nfactor;          double BSIM3xj;    double BSIM3vsat;             double BSIM3at;             double BSIM3a0;       double BSIM3ags;          double BSIM3a1;             double BSIM3a2;             double BSIM3keta;         double BSIM3nsub;    double BSIM3npeak;            double BSIM3ngate;            double BSIM3gamma1;          double BSIM3gamma2;         double BSIM3vbx;          double BSIM3vbi;           double BSIM3vbm;           double BSIM3vbsc;           double BSIM3xt;           double BSIM3phi;    double BSIM3litl;    double BSIM3k1;    double BSIM3kt1;    double BSIM3kt1l;    double BSIM3kt2;    double BSIM3k2;    double BSIM3k3;    double BSIM3k3b;    double BSIM3w0;    double BSIM3nlx;    double BSIM3dvt0;          double BSIM3dvt1;          double BSIM3dvt2;          double BSIM3dvt0w;          double BSIM3dvt1w;          double BSIM3dvt2w;          double BSIM3drout;          double BSIM3dsub;          double BSIM3vth0;    double BSIM3ua;    double BSIM3ua1;    double BSIM3ub;    double BSIM3ub1;    double BSIM3uc;    double BSIM3uc1;    double BSIM3u0;    double BSIM3ute;    double BSIM3voff;    double BSIM3vfb;    double BSIM3delta;    double BSIM3rdsw;           double BSIM3rds0;           double BSIM3prwg;           double BSIM3prwb;           double BSIM3prt;           double BSIM3eta0;             double BSIM3etab;             double BSIM3pclm;          double BSIM3pdibl1;          double BSIM3pdibl2;          double BSIM3pdiblb;          double BSIM3pscbe1;           double BSIM3pscbe2;           double BSIM3pvag;           double BSIM3wr;    double BSIM3dwg;    double BSIM3dwb;    double BSIM3b0;    double BSIM3b1;    double BSIM3alpha0;    double BSIM3alpha1;    double BSIM3beta0;    /* CV model */    double BSIM3elm;    double BSIM3cgsl;    double BSIM3cgdl;    double BSIM3ckappa;    double BSIM3cf;    double BSIM3clc;    double BSIM3cle;    double BSIM3vfbcv;    double BSIM3noff;    double BSIM3voffcv;    double BSIM3acde;    double BSIM3moin;/* Pre-calculated constants */    double BSIM3dw;    double BSIM3dl;    double BSIM3leff;    double BSIM3weff;    double BSIM3dwc;    double BSIM3dlc;    double BSIM3leffCV;    double BSIM3weffCV;    double BSIM3abulkCVfactor;    double BSIM3cgso;    double BSIM3cgdo;    double BSIM3cgbo;    double BSIM3tconst;    double BSIM3u0temp;           double BSIM3vsattemp;       double BSIM3sqrtPhi;       double BSIM3phis3;       double BSIM3Xdep0;              double BSIM3sqrtXdep0;              double BSIM3theta0vb0;    double BSIM3thetaRout;     double BSIM3cof1;    double BSIM3cof2;    double BSIM3cof3;    double BSIM3cof4;    double BSIM3cdep0;    double BSIM3vfbzb;    double BSIM3ldeb;    double BSIM3k1ox;    double BSIM3k2ox;    struct bsim3SizeDependParam  *pNext;};typedef struct sBSIM3model {    int BSIM3modType;    struct sBSIM3model *BSIM3nextModel;    BSIM3instance *BSIM3instances;    IFuid BSIM3modName;     int BSIM3type;    int    BSIM3mobMod;    int    BSIM3capMod;    int    BSIM3acmMod;    int    BSIM3noiMod;    int    BSIM3binUnit;    int    BSIM3paramChk;    char   *BSIM3version;                 /* The following field is an integer coding     * of BSIM3version.     */         int    BSIM3intVersion;             #define BSIM3V324  324       /* BSIM3 V3.2.4 */#define BSIM3V323  323       /* BSIM3 V3.2.3 */#define BSIM3V322  322       /* BSIM3 V3.2.2 */#define BSIM3V32   32        /* BSIM3 V3.2   */#define BSIM3V3OLD 0         /* Old model    */    double BSIM3tox;                 double BSIM3toxm;    double BSIM3cdsc;               double BSIM3cdscb;     double BSIM3cdscd;              double BSIM3cit;               double BSIM3nfactor;          double BSIM3xj;    double BSIM3vsat;             double BSIM3at;             double BSIM3a0;       double BSIM3ags;          double BSIM3a1;             double BSIM3a2;             double BSIM3keta;         double BSIM3nsub;    double BSIM3npeak;            double BSIM3ngate;            double BSIM3gamma1;          double BSIM3gamma2;         double BSIM3vbx;          double BSIM3vbm;           double BSIM3xt;           double BSIM3k1;    double BSIM3kt1;    double BSIM3kt1l;    double BSIM3kt2;    double BSIM3k2;    double BSIM3k3;    double BSIM3k3b;    double BSIM3w0;    double BSIM3nlx;    double BSIM3dvt0;          double BSIM3dvt1;          double BSIM3dvt2;          double BSIM3dvt0w;          double BSIM3dvt1w;          double BSIM3dvt2w;          double BSIM3drout;          double BSIM3dsub;          double BSIM3vth0;    double BSIM3ua;    double BSIM3ua1;    double BSIM3ub;    double BSIM3ub1;    double BSIM3uc;    double BSIM3uc1;    double BSIM3u0;    double BSIM3ute;    double BSIM3voff;    double BSIM3delta;    double BSIM3rdsw;           double BSIM3prwg;    double BSIM3prwb;    double BSIM3prt;           double BSIM3eta0;             double BSIM3etab;             double BSIM3pclm;          double BSIM3pdibl1;          double BSIM3pdibl2;          double BSIM3pdiblb;    double BSIM3pscbe1;           double BSIM3pscbe2;           double BSIM3pvag;           double BSIM3wr;    double BSIM3dwg;    double BSIM3dwb;    double BSIM3b0;    double BSIM3b1;    double BSIM3alpha0;    double BSIM3alpha1;    double BSIM3beta0;    double BSIM3ijth;    double BSIM3vfb;    /* CV model */    double BSIM3elm;    double BSIM3cgsl;    double BSIM3cgdl;    double BSIM3ckappa;    double BSIM3cf;    double BSIM3vfbcv;    double BSIM3clc;    double BSIM3cle;    double BSIM3dwc;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?