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

📄 bsimdefs.h

📁 支持数字元件仿真的SPICE插件
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1985      Hong June Park, Thomas L. Quarles */#ifndef BSIM#define BSIM "BSIMdefs.h $Revision: 1.1 $  on $Date: 91/04/02 11:25:12 $ "#include "IFsim.h"#include "GENdefs.h"#include "CKTdefs.h"#include "complex.h"    /* declarations for BSIM MOSFETs *//* information needed for each instance */typedef struct sBSIMinstance {    struct sBSIMmodel *BSIMmodPtr;      /* pointer to model */    struct sBSIMinstance *BSIMnextInstance;  /* pointer to next instance of                                               *current model*/    IFuid BSIMname; /* pointer to character string naming this instance */    int BSIMdNode;  /* number of the gate node of the mosfet */    int BSIMgNode;  /* number of the gate node of the mosfet */    int BSIMsNode;  /* number of the source node of the mosfet */    int BSIMbNode;  /* number of the bulk node of the mosfet */    int BSIMdNodePrime; /* number of the internal drain node of the mosfet */    int BSIMsNodePrime; /* number of the internal source node of the mosfet */    double BSIMl;   /* the length of the channel region */    double BSIMw;   /* the width of the channel region */    double BSIMdrainArea;   /* the area of the drain diffusion */    double BSIMsourceArea;  /* the area of the source diffusion */    double BSIMdrainSquares;    /* the length of the drain in squares */    double BSIMsourceSquares;   /* the length of the source in squares */    double BSIMdrainPerimeter;    double BSIMsourcePerimeter;    double BSIMsourceConductance;   /*conductance of source(or 0):set in setup*/    double BSIMdrainConductance;    /*conductance of drain(or 0):set in setup*/    double BSIMicVBS;   /* initial condition B-S voltage */    double BSIMicVDS;   /* initial condition D-S voltage */    double BSIMicVGS;   /* initial condition G-S voltage */    double BSIMvon;    double BSIMvdsat;    int BSIMoff;        /* non-zero to indicate device is off for dc analysis*/    int BSIMmode;       /* device mode : 1 = normal, -1 = inverse */    double BSIMvfb;      /* flat band voltage at given L and W */    double BSIMphi;      /* surface potential at strong inversion */    double BSIMK1;       /* bulk effect coefficient 1             */    double BSIMK2;       /* bulk effect coefficient 2             */    double BSIMeta;      /* drain induced barrier lowering        */    double BSIMetaB;     /* Vbs dependence of Eta                 */    double BSIMetaD;     /* Vds dependence of Eta                 */    double BSIMbetaZero; /* Beta at vds = 0 and vgs = Vth         */    double BSIMbetaZeroB; /* Vbs dependence of BetaZero           */    double BSIMbetaVdd;  /* Beta at vds=Vdd and vgs=Vth           */    double BSIMbetaVddB; /* Vbs dependence of BetaVdd             */    double BSIMbetaVddD; /* Vds dependence of BetaVdd             */    double BSIMugs;      /* Mobility degradation due to gate field*/    double BSIMugsB;     /* Vbs dependence of Ugs                 */    double BSIMuds;      /* Drift Velocity Saturation due to Vds  */    double BSIMudsB;     /* Vbs dependence of Uds                 */    double BSIMudsD;     /* Vds dependence of Uds                 */    double BSIMsubthSlope; /* slope of subthreshold current with Vgs*/    double BSIMsubthSlopeB; /* Vbs dependence of Subthreshold Slope */    double BSIMsubthSlopeD; /* Vds dependence of Subthreshold Slope */    double BSIMGDoverlapCap;/* Gate Drain Overlap Capacitance       */    double BSIMGSoverlapCap;/* Gate Source Overlap Capacitance      */    double BSIMGBoverlapCap;/* Gate Bulk Overlap Capacitance        */    double BSIMvt0;    double BSIMvdd;         /* Supply Voltage                       */    double BSIMtemp;    double BSIMoxideThickness;    double BSIMchannelChargePartitionFlag;    unsigned BSIMlGiven :1;    unsigned BSIMwGiven :1;    unsigned BSIMdrainAreaGiven :1;    unsigned BSIMsourceAreaGiven    :1;    unsigned BSIMdrainSquaresGiven  :1;    unsigned BSIMsourceSquaresGiven :1;    unsigned BSIMdrainPerimeterGiven    :1;    unsigned BSIMsourcePerimeterGiven   :1;    unsigned BSIMdNodePrimeSet  :1;    unsigned BSIMsNodePrimeSet  :1;    unsigned BSIMicVBSGiven :1;    unsigned BSIMicVDSGiven :1;    unsigned BSIMicVGSGiven :1;    unsigned BSIMvonGiven   :1;    unsigned BSIMvdsatGiven :1;    double *BSIMDdPtr;      /* pointer to sparse matrix element at                                     * (Drain node,drain node) */    double *BSIMGgPtr;      /* pointer to sparse matrix element at                                     * (gate node,gate node) */    double *BSIMSsPtr;      /* pointer to sparse matrix element at                                     * (source node,source node) */    double *BSIMBbPtr;      /* pointer to sparse matrix element at                                     * (bulk node,bulk node) */    double *BSIMDPdpPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,drain prime node) */    double *BSIMSPspPtr;    /* pointer to sparse matrix element at                                     * (source prime node,source prime node) */    double *BSIMDdpPtr;     /* pointer to sparse matrix element at                                     * (drain node,drain prime node) */    double *BSIMGbPtr;      /* pointer to sparse matrix element at                                     * (gate node,bulk node) */    double *BSIMGdpPtr;     /* pointer to sparse matrix element at                                     * (gate node,drain prime node) */    double *BSIMGspPtr;     /* pointer to sparse matrix element at                                     * (gate node,source prime node) */    double *BSIMSspPtr;     /* pointer to sparse matrix element at                                     * (source node,source prime node) */    double *BSIMBdpPtr;     /* pointer to sparse matrix element at                                     * (bulk node,drain prime node) */    double *BSIMBspPtr;     /* pointer to sparse matrix element at                                     * (bulk node,source prime node) */    double *BSIMDPspPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,source prime node) */    double *BSIMDPdPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,drain node) */    double *BSIMBgPtr;      /* pointer to sparse matrix element at                                     * (bulk node,gate node) */    double *BSIMDPgPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,gate node) */    double *BSIMSPgPtr;     /* pointer to sparse matrix element at                                     * (source prime node,gate node) */    double *BSIMSPsPtr;     /* pointer to sparse matrix element at                                     * (source prime node,source node) */    double *BSIMDPbPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,bulk node) */    double *BSIMSPbPtr;     /* pointer to sparse matrix element at                                     * (source prime node,bulk node) */    double *BSIMSPdpPtr;    /* pointer to sparse matrix element at                                     * (source prime node,drain prime node) */    int BSIMstates;     /* index into state table for this device */#define BSIMvbd BSIMstates+ 0#define BSIMvbs BSIMstates+ 1#define BSIMvgs BSIMstates+ 2#define BSIMvds BSIMstates+ 3#define BSIMcd BSIMstates+ 4#define BSIMid BSIMstates+ 4#define BSIMcbs BSIMstates+ 5#define BSIMibs BSIMstates+ 5#define BSIMcbd BSIMstates+ 6#define BSIMibd BSIMstates+ 6#define BSIMgm BSIMstates+ 7#define BSIMgds BSIMstates+ 8#define BSIMgmbs BSIMstates+ 9#define BSIMgbd BSIMstates+ 10#define BSIMgbs BSIMstates+ 11#define BSIMqb BSIMstates+ 12#define BSIMcqb BSIMstates+ 13#define BSIMiqb BSIMstates+ 13#define BSIMqg BSIMstates+ 14#define BSIMcqg BSIMstates+ 15#define BSIMiqg BSIMstates+ 15#define BSIMqd BSIMstates+ 16#define BSIMcqd BSIMstates+ 17#define BSIMiqd BSIMstates+ 17#define BSIMcggb BSIMstates+ 18#define BSIMcgdb BSIMstates+ 19#define BSIMcgsb BSIMstates+ 20#define BSIMcbgb BSIMstates+ 21#define BSIMcbdb BSIMstates+ 22#define BSIMcbsb BSIMstates+ 23#define BSIMcapbd BSIMstates+ 24#define BSIMiqbd BSIMstates+ 25#define BSIMcqbd BSIMstates+ 25#define BSIMcapbs BSIMstates+ 26#define BSIMiqbs BSIMstates+ 27#define BSIMcqbs BSIMstates+ 27#define BSIMcdgb BSIMstates+ 28#define BSIMcddb BSIMstates+ 29#define BSIMcdsb BSIMstates+ 30#define BSIMvono BSIMstates+ 31#define BSIMvdsato BSIMstates+ 32#define BSIMqbs  BSIMstates+ 33#define BSIMqbd  BSIMstates+ 34#define BSIMnumStates 35           } BSIMinstance ;/* per model data */typedef struct sBSIMmodel {       /* model structure for a resistor */    int BSIMmodType;    /* type index of this device type */    struct sBSIMmodel *BSIMnextModel;    /* pointer to next possible model                                           *in linked list */    BSIMinstance * BSIMinstances; /* pointer to list of instances                                    * that have this model */    IFuid BSIMmodName;       /* pointer to character string naming this model */    int BSIMtype;       /* device type : 1 = nmos,  -1 = pmos */    double BSIMvfb0;    double BSIMvfbL;    double BSIMvfbW;    double BSIMphi0;    double BSIMphiL;    double BSIMphiW;    double BSIMK10;    double BSIMK1L;    double BSIMK1W;    double BSIMK20;    double BSIMK2L;    double BSIMK2W;    double BSIMeta0;    double BSIMetaL;    double BSIMetaW;    double BSIMetaB0;    double BSIMetaBl;    double BSIMetaBw;    double BSIMetaD0;    double BSIMetaDl;    double BSIMetaDw;    double BSIMdeltaL;    double BSIMdeltaW;    double BSIMmobZero;    double BSIMmobZeroB0;    double BSIMmobZeroBl;    double BSIMmobZeroBw ;    double BSIMmobVdd0;    double BSIMmobVddl;    double BSIMmobVddw;    double BSIMmobVddB0;    double BSIMmobVddBl;    double BSIMmobVddBw;    double BSIMmobVddD0;    double BSIMmobVddDl;    double BSIMmobVddDw;    double BSIMugs0;    double BSIMugsL;    double BSIMugsW;    double BSIMugsB0;    double BSIMugsBL;    double BSIMugsBW;    double BSIMuds0;    double BSIMudsL;    double BSIMudsW;    double BSIMudsB0;    double BSIMudsBL;    double BSIMudsBW;    double BSIMudsD0;    double BSIMudsDL;    double BSIMudsDW;    double BSIMsubthSlope0;    double BSIMsubthSlopeL;    double BSIMsubthSlopeW;    double BSIMsubthSlopeB0;    double BSIMsubthSlopeBL;    double BSIMsubthSlopeBW;    double BSIMsubthSlopeD0;    double BSIMsubthSlopeDL;    double BSIMsubthSlopeDW;    double BSIMoxideThickness;              /* unit: micron  */    double BSIMCox;                         /* unit: F/cm**2 */    double BSIMtemp;    double BSIMvdd;    double BSIMgateSourceOverlapCap;    double BSIMgateDrainOverlapCap;    double BSIMgateBulkOverlapCap;    double BSIMchannelChargePartitionFlag;    double BSIMsheetResistance;    double BSIMjctSatCurDensity;    double BSIMbulkJctPotential;    double BSIMbulkJctBotGradingCoeff;    double BSIMbulkJctSideGradingCoeff;    double BSIMsidewallJctPotential;    double BSIMunitAreaJctCap;    double BSIMunitLengthSidewallJctCap;    double BSIMdefaultWidth;

⌨️ 快捷键说明

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