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

📄 mos3defs.h

📁 支持数字元件仿真的SPICE插件
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1985 Thomas L. Quarles */#ifndef MOS3#define MOS3 "MOS3defs.h $Revision: 1.1 $  on $Date: 91/04/02 11:26:30 $ "#include "IFsim.h"#include "CKTdefs.h"#include "GENdefs.h"#include "complex.h"    /* declarations for level 3 MOSFETs *//* information needed for each instance */typedef struct sMOS3instance {    struct sMOS3model *MOS3modPtr;  /* backpointer to model */    struct sMOS3instance *MOS3nextInstance;  /* pointer to next instance of                                               *current model*/    IFuid MOS3name; /* pointer to character string naming this instance */    int MOS3dNode;  /* number of the gate node of the mosfet */    int MOS3gNode;  /* number of the gate node of the mosfet */    int MOS3sNode;  /* number of the source node of the mosfet */    int MOS3bNode;  /* number of the bulk node of the mosfet */    int MOS3dNodePrime; /* number of the internal drain node of the mosfet */    int MOS3sNodePrime; /* number of the internal source node of the mosfet */    double MOS3l;   /* the length of the channel region */    double MOS3w;   /* the width of the channel region */    double MOS3drainArea;   /* the area of the drain diffusion */    double MOS3sourceArea;  /* the area of the source diffusion */    double MOS3drainSquares;    /* the length of the drain in squares */    double MOS3sourceSquares;   /* the length of the source in squares */    double MOS3drainPerimiter;    double MOS3sourcePerimiter;    double MOS3sourceConductance;   /*conductance of source(or 0):set in setup*/    double MOS3drainConductance;    /*conductance of drain(or 0):set in setup*/    double MOS3temp;    /* operating temperature of this instance */    double MOS3tTransconductance;   /* temperature corrected transconductance*/    double MOS3tSurfMob;            /* temperature corrected surface mobility */    double MOS3tPhi;                /* temperature corrected Phi */    double MOS3tVto;                /* temperature corrected Vto */    double MOS3tSatCur;             /* temperature corrected saturation Cur. */    double MOS3tSatCurDens; /* temperature corrected saturation Cur. density*/    double MOS3tCbd;                /* temperature corrected B-D Capacitance */    double MOS3tCbs;                /* temperature corrected B-S Capacitance */    double MOS3tCj;         /* temperature corrected Bulk bottom Capacitance */    double MOS3tCjsw;       /* temperature corrected Bulk side Capacitance */    double MOS3tBulkPot;    /* temperature corrected Bulk potential */    double MOS3tDepCap;     /* temperature adjusted transition point in */                            /* the cureve matching Fc * Vj */    double MOS3tVbi;        /* temperature adjusted Vbi */    double MOS3icVBS;   /* initial condition B-S voltage */    double MOS3icVDS;   /* initial condition D-S voltage */    double MOS3icVGS;   /* initial condition G-S voltage */    double MOS3von;    double MOS3vdsat;    double MOS3sourceVcrit; /* vcrit for pos. vds */    double MOS3drainVcrit;  /* vcrit for neg. vds */    double MOS3cd;    double MOS3cbs;    double MOS3cbd;    double MOS3gmbs;    double MOS3gm;    double MOS3gds;    double MOS3gbd;    double MOS3gbs;    double MOS3capbd;    double MOS3capbs;    double MOS3Cbd;    double MOS3Cbdsw;    double MOS3Cbs;    double MOS3Cbssw;    double MOS3f2d;    double MOS3f3d;    double MOS3f4d;    double MOS3f2s;    double MOS3f3s;    double MOS3f4s;    int MOS3mode;       /* device mode : 1 = normal, -1 = inverse */    unsigned MOS3off :1;/* non-zero to indicate device is off for dc analysis*/    unsigned MOS3tempGiven :1;  /* instance temperature specified */    unsigned MOS3lGiven :1;    unsigned MOS3wGiven :1;    unsigned MOS3drainAreaGiven :1;    unsigned MOS3sourceAreaGiven    :1;    unsigned MOS3drainSquaresGiven  :1;    unsigned MOS3sourceSquaresGiven :1;    unsigned MOS3drainPerimiterGiven    :1;    unsigned MOS3sourcePerimiterGiven   :1;    unsigned MOS3dNodePrimeSet  :1;    unsigned MOS3sNodePrimeSet  :1;    unsigned MOS3icVBSGiven :1;    unsigned MOS3icVDSGiven :1;    unsigned MOS3icVGSGiven :1;    unsigned MOS3vonGiven   :1;    unsigned MOS3vdsatGiven :1;    unsigned MOS3modeGiven  :1;    double *MOS3DdPtr;      /* pointer to sparse matrix element at                                     * (Drain node,drain node) */    double *MOS3GgPtr;      /* pointer to sparse matrix element at                                     * (gate node,gate node) */    double *MOS3SsPtr;      /* pointer to sparse matrix element at                                     * (source node,source node) */    double *MOS3BbPtr;      /* pointer to sparse matrix element at                                     * (bulk node,bulk node) */    double *MOS3DPdpPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,drain prime node) */    double *MOS3SPspPtr;    /* pointer to sparse matrix element at                                     * (source prime node,source prime node) */    double *MOS3DdpPtr;     /* pointer to sparse matrix element at                                     * (drain node,drain prime node) */    double *MOS3GbPtr;      /* pointer to sparse matrix element at                                     * (gate node,bulk node) */    double *MOS3GdpPtr;     /* pointer to sparse matrix element at                                     * (gate node,drain prime node) */    double *MOS3GspPtr;     /* pointer to sparse matrix element at                                     * (gate node,source prime node) */    double *MOS3SspPtr;     /* pointer to sparse matrix element at                                     * (source node,source prime node) */    double *MOS3BdpPtr;     /* pointer to sparse matrix element at                                     * (bulk node,drain prime node) */    double *MOS3BspPtr;     /* pointer to sparse matrix element at                                     * (bulk node,source prime node) */    double *MOS3DPspPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,source prime node) */    double *MOS3DPdPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,drain node) */    double *MOS3BgPtr;      /* pointer to sparse matrix element at                                     * (bulk node,gate node) */    double *MOS3DPgPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,gate node) */    double *MOS3SPgPtr;     /* pointer to sparse matrix element at                                     * (source prime node,gate node) */    double *MOS3SPsPtr;     /* pointer to sparse matrix element at                                     * (source prime node,source node) */    double *MOS3DPbPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,bulk node) */    double *MOS3SPbPtr;     /* pointer to sparse matrix element at                                     * (source prime node,bulk node) */    double *MOS3SPdpPtr;    /* pointer to sparse matrix element at                                     * (source prime node,drain prime node) */    int MOS3states;     /* index into state table for this device */#define MOS3vbd MOS3states+ 0#define MOS3vbs MOS3states+ 1#define MOS3vgs MOS3states+ 2#define MOS3vds MOS3states+ 3/* meyer capacitances */#define MOS3capgs MOS3states+ 4 /* gate-source capacitor value */#define MOS3qgs MOS3states+ 5   /* gate-source capacitor charge */#define MOS3cqgs MOS3states+ 6  /* gate-source capacitor current */#define MOS3capgd MOS3states+ 7 /* gate-drain capacitor value */#define MOS3qgd MOS3states+ 8   /* gate-drain capacitor charge */#define MOS3cqgd MOS3states+ 9  /* gate-drain capacitor current */#define MOS3capgb MOS3states+ 10/* gate-bulk capacitor value */#define MOS3qgb MOS3states+ 11  /* gate-bulk capacitor charge */#define MOS3cqgb MOS3states+ 12 /* gate-bulk capacitor current *//* diode capacitances */#define MOS3qbd MOS3states+ 13  /* bulk-drain capacitor charge */#define MOS3cqbd MOS3states+ 14 /* bulk-drain capacitor current */#define MOS3qbs MOS3states+ 15  /* bulk-source capacitor charge */#define MOS3cqbs MOS3states+ 16 /* bulk-source capacitor current */ #define MOS3NUMSTATES 17#define MOS3sensxpgs MOS3states+17 /* charge sensitivities and their derivatives                                     +18 for the derivatives - pointer to the                     beginning of the array */#define MOS3sensxpgd  MOS3states+19#define MOS3sensxpgb  MOS3states+21#define MOS3sensxpbs  MOS3states+23#define MOS3sensxpbd  MOS3states+25#define MOS3numSenStates 10    int  MOS3senParmNo;   /* parameter # for sensitivity use;            set equal to 0  if  neither length            nor width of the mosfet is a design            parameter */    unsigned MOS3sens_l :1;   /* field which indicates whether                length of the mosfet is a design              parameter or not */    unsigned MOS3sens_w :1;   /* field which indicates whether                width of the mosfet is a design              parameter or not */    unsigned MOS3senPertFlag :1; /* indictes whether the the parameter of                        the particular instance is to be perturbed */    double MOS3cgs;    double MOS3cgd;    double MOS3cgb;    double *MOS3sens;#define MOS3senGdpr MOS3sens#define MOS3senGspr MOS3sens + 1#define MOS3senCgs MOS3sens + 2 /* contains pertured values of cgs */#define MOS3senCgd MOS3sens + 8 /* contains perturbed values of cgd*/#define MOS3senCgb MOS3sens + 14 /* contains perturbed values of cgb*/#define MOS3senCbd MOS3sens + 20 /* contains perturbed values of cbd*/#define MOS3senCbs MOS3sens + 26 /* contains perturbed values of cbs*/#define MOS3senGds MOS3sens + 32 /* contains perturbed values of gds*/#define MOS3senGbs MOS3sens + 38 /* contains perturbed values of gbs*/#define MOS3senGbd MOS3sens + 44 /* contains perturbed values of gbd*/#define MOS3senGm MOS3sens + 50 /* contains perturbed values of gm*/#define MOS3senGmbs MOS3sens + 56 /* contains perturbed values of gmbs*/#define MOS3dphigs_dl MOS3sens + 62#define MOS3dphigd_dl MOS3sens + 63#define MOS3dphigb_dl MOS3sens + 64#define MOS3dphibs_dl MOS3sens + 65#define MOS3dphibd_dl MOS3sens + 66#define MOS3dphigs_dw MOS3sens + 67#define MOS3dphigd_dw MOS3sens + 68#define MOS3dphigb_dw MOS3sens + 69#define MOS3dphibs_dw MOS3sens + 70#define MOS3dphibd_dw MOS3sens + 71} MOS3instance ;/* per model data */    /* NOTE:  parameters marked 'input - use xxxx' are paramters for     * which a temperature correction is applied in MOS3temp, thus     * the MOS3xxxx value in the per-instance structure should be used     * instead in all calculations      */typedef struct sMOS3model {       /* model structure for a resistor */    int MOS3modType;    /* type index of this device type */    struct sMOS3model *MOS3nextModel;    /* pointer to next possible model                                           *in linked list */    MOS3instance * MOS3instances; /* pointer to list of instances                                    * that have this model */    IFuid MOS3modName;       /* pointer to character string naming this model */    int MOS3type;       /* device type : 1 = nmos,  -1 = pmos */    double MOS3tnom;        /* temperature at which parameters measured */    double MOS3latDiff;    double MOS3jctSatCurDensity;    /* input - use tSatCurDens*/

⌨️ 快捷键说明

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