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

📄 mos2defs.h

📁 支持数字元件仿真的SPICE插件
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1985 Thomas L. Quarles */#ifndef MOS2#define MOS2 "MOS2defs.h $Revision: 1.1 $ on $Date: 91/04/02 11:26:28 $"#include "IFsim.h"#include "CKTdefs.h"#include "GENdefs.h"#include "complex.h"/* declarations for level 2 MOSFETs *//* information needed for each instance */typedef struct sMOS2instance {    struct sMOS2model *MOS2modPtr;  /* backpointer to model */    struct sMOS2instance *MOS2nextInstance;  /* pointer to next instance of                                              *current model*/    IFuid MOS2name; /* pointer to character string naming this instance */    int MOS2dNode;  /* number of the gate node of the mosfet */    int MOS2gNode;  /* number of the gate node of the mosfet */    int MOS2sNode;  /* number of the source node of the mosfet */    int MOS2bNode;  /* number of the bulk node of the mosfet */    int MOS2dNodePrime; /* number of the internal drain node of the mosfet */    int MOS2sNodePrime; /* number of the internal source node of the mosfet */    int MOS2mode;       /* device mode : 1 = normal, -1 = inverse */    unsigned MOS2off :1;/* non-zero to indicate device is off for dc analysis*/    unsigned MOS2lGiven :1;    unsigned MOS2wGiven :1;    unsigned MOS2drainAreaGiven :1;    unsigned MOS2sourceAreaGiven    :1;    unsigned MOS2drainSquaresGiven  :1;    unsigned MOS2sourceSquaresGiven :1;    unsigned MOS2drainPerimiterGiven    :1;    unsigned MOS2sourcePerimiterGiven   :1;    unsigned MOS2dNodePrimeSet  :1;    unsigned MOS2sNodePrimeSet  :1;    unsigned MOS2icVBSGiven :1;    unsigned MOS2icVDSGiven :1;    unsigned MOS2icVGSGiven :1;    unsigned MOS2vonGiven   :1;    unsigned MOS2vdsatGiven :1;    unsigned MOS2tempGiven  :1; /* per-instance temperature specified? */    unsigned MOS2sens_l :1;   /* field which indicates whether                                    length of the mosfet is a design                                  parameter or not */    unsigned MOS2sens_w :1;   /* field which indicates whether                                    width of the mosfet is a design                                  parameter or not */    unsigned MOS2senPertFlag :1; /* indictes whether the the parameter of                            the particular instance is to be perturbed */    double *MOS2DdPtr;      /* pointer to sparse matrix element at                                     * (Drain node,drain node) */    double *MOS2GgPtr;      /* pointer to sparse matrix element at                                     * (gate node,gate node) */    double *MOS2SsPtr;      /* pointer to sparse matrix element at                                     * (source node,source node) */    double *MOS2BbPtr;      /* pointer to sparse matrix element at                                     * (bulk node,bulk node) */    double *MOS2DPdpPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,drain prime node) */    double *MOS2SPspPtr;    /* pointer to sparse matrix element at                                     * (source prime node,source prime node) */    double *MOS2DdpPtr;     /* pointer to sparse matrix element at                                     * (drain node,drain prime node) */    double *MOS2GbPtr;      /* pointer to sparse matrix element at                                     * (gate node,bulk node) */    double *MOS2GdpPtr;     /* pointer to sparse matrix element at                                     * (gate node,drain prime node) */    double *MOS2GspPtr;     /* pointer to sparse matrix element at                                     * (gate node,source prime node) */    double *MOS2SspPtr;     /* pointer to sparse matrix element at                                     * (source node,source prime node) */    double *MOS2BdpPtr;     /* pointer to sparse matrix element at                                     * (bulk node,drain prime node) */    double *MOS2BspPtr;     /* pointer to sparse matrix element at                                     * (bulk node,source prime node) */    double *MOS2DPspPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,source prime node) */    double *MOS2DPdPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,drain node) */    double *MOS2BgPtr;      /* pointer to sparse matrix element at                                     * (bulk node,gate node) */    double *MOS2DPgPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,gate node) */    double *MOS2SPgPtr;     /* pointer to sparse matrix element at                                     * (source prime node,gate node) */    double *MOS2SPsPtr;     /* pointer to sparse matrix element at                                     * (source prime node,source node) */    double *MOS2DPbPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,bulk node) */    double *MOS2SPbPtr;     /* pointer to sparse matrix element at                                     * (source prime node,bulk node) */    double *MOS2SPdpPtr;    /* pointer to sparse matrix element at                                     * (source prime node,drain prime node) */    int MOS2states;     /* index into state table for this device */#define MOS2vbd MOS2states+ 0   /* bulk-drain voltage */#define MOS2vbs MOS2states+ 1   /* bulk-source voltage */#define MOS2vgs MOS2states+ 2   /* gate-source voltage */#define MOS2vds MOS2states+ 3   /* drain-source voltage */#define MOS2capgs MOS2states+4  /* gate-source capacitor value */#define MOS2qgs MOS2states+ 5   /* gate-source capacitor charge */#define MOS2cqgs MOS2states+ 6  /* gate-source capacitor current */#define MOS2capgd MOS2states+ 7 /* gate-drain capacitor value */#define MOS2qgd MOS2states+ 8   /* gate-drain capacitor charge */#define MOS2cqgd MOS2states+ 9  /* gate-drain capacitor current */#define MOS2capgb MOS2states+10 /* gate-bulk capacitor value */#define MOS2qgb MOS2states+ 11  /* gate-bulk capacitor charge */#define MOS2cqgb MOS2states+ 12 /* gate-bulk capacitor current */#define MOS2qbd MOS2states+ 13  /* bulk-drain capacitor charge */#define MOS2cqbd MOS2states+ 14 /* bulk-drain capacitor current */#define MOS2qbs MOS2states+ 15  /* bulk-source capacitor charge */#define MOS2cqbs MOS2states+ 16 /* bulk-source capacitor current */#define MOS2numStates 17#define MOS2sensxpgs MOS2states+17 /* charge sensitivities and their derivatives                                     +18 for the derivatives - pointer to the                     beginning of the array */#define MOS2sensxpgd  MOS2states+19#define MOS2sensxpgb  MOS2states+21#define MOS2sensxpbs  MOS2states+23#define MOS2sensxpbd  MOS2states+25#define MOS2numSenStates 10    int  MOS2senParmNo;   /* parameter # for sensitivity use;            set equal to 0  if  neither length            nor width of the mosfet is a design            parameter */    double MOS2cgs;    double MOS2cgd;    double MOS2cgb;    double *MOS2sens;#define MOS2senCgs MOS2sens /* contains pertured values of cgs */#define MOS2senCgd MOS2sens + 6 /* contains perturbed values of cgd*/#define MOS2senCgb MOS2sens + 12 /* contains perturbed values of cgb*/#define MOS2senCbd MOS2sens + 18 /* contains perturbed values of cbd*/#define MOS2senCbs MOS2sens + 24 /* contains perturbed values of cbs*/#define MOS2senGds MOS2sens + 30 /* contains perturbed values of gds*/#define MOS2senGbs MOS2sens + 36 /* contains perturbed values of gbs*/#define MOS2senGbd MOS2sens + 42 /* contains perturbed values of gbd*/#define MOS2senGm MOS2sens + 48 /* contains perturbed values of gm*/#define MOS2senGmbs MOS2sens + 54 /* contains perturbed values of gmbs*/#define MOS2dphigs_dl MOS2sens + 60#define MOS2dphigd_dl MOS2sens + 61#define MOS2dphigb_dl MOS2sens + 62#define MOS2dphibs_dl MOS2sens + 63#define MOS2dphibd_dl MOS2sens + 64#define MOS2dphigs_dw MOS2sens + 65#define MOS2dphigd_dw MOS2sens + 66#define MOS2dphigb_dw MOS2sens + 67#define MOS2dphibs_dw MOS2sens + 68#define MOS2dphibd_dw MOS2sens + 69    double MOS2temp;        /* temperature at which this instance operates */    double MOS2tTransconductance;   /* temperature corrected transconductance*/    double MOS2tSurfMob;            /* temperature corrected surface mobility */    double MOS2tPhi;                /* temperature corrected Phi */    double MOS2tVto;                /* temperature corrected Vto */    double MOS2tSatCur;             /* temperature corrected saturation Cur. */    double MOS2tSatCurDens; /* temperature corrected saturation Cur. density*/    double MOS2tCbd;                /* temperature corrected B-D Capacitance */    double MOS2tCbs;                /* temperature corrected B-S Capacitance */    double MOS2tCj;         /* temperature corrected Bulk bottom Capacitance */    double MOS2tCjsw;       /* temperature corrected Bulk side Capacitance */    double MOS2tBulkPot;    /* temperature corrected Bulk potential */    double MOS2tDepCap;     /* temperature adjusted transition point in */                            /* the cureve matching Fc * Vj */    double MOS2tVbi;        /* temperature adjusted Vbi */    double MOS2l;   /* the length of the channel region */    double MOS2w;   /* the width of the channel region */    double MOS2drainArea;   /* the area of the drain diffusion */    double MOS2sourceArea;  /* the area of the source diffusion */    double MOS2drainSquares;    /* the length of the drain in squares */    double MOS2sourceSquares;   /* the length of the source in squares */    double MOS2drainPerimiter;    double MOS2sourcePerimiter;    double MOS2sourceConductance;   /*conductance of source(or 0):set in setup*/    double MOS2drainConductance;    /*conductance of drain(or 0):set in setup*/    double MOS2icVBS;   /* initial condition B-S voltage */    double MOS2icVDS;   /* initial condition D-S voltage */    double MOS2icVGS;   /* initial condition G-S voltage */    double MOS2von;    double MOS2vdsat;    double MOS2sourceVcrit; /* Vcrit for pos. vds */    double MOS2drainVcrit;  /* Vcrit for pos. vds */    double MOS2cd;    double MOS2cbs;    double MOS2cbd;    double MOS2gmbs;    double MOS2gm;    double MOS2gds;    double MOS2gbd;    double MOS2gbs;    double MOS2capbd;    double MOS2capbs;    double MOS2Cbd;    double MOS2Cbdsw;    double MOS2Cbs;    double MOS2Cbssw;    double MOS2f2d;    double MOS2f3d;    double MOS2f4d;    double MOS2f2s;    double MOS2f3s;    double MOS2f4s;} MOS2instance ;/* per model data */        /* NOTE:  parameters makred 'input - use xxxx' are parameters for         * which a temperature correction is applied in MOS2temp, thus         * the MOS3xxxx value in the per-instance structure should be used         * instead in all calculations         */typedef struct sMOS2model {       /* model structure for a resistor */    int MOS2modType;    /* type index of this device type */    struct sMOS2model *MOS2nextModel;    /* pointer to next possible model                                           *in linked list */    MOS2instance * MOS2instances; /* pointer to list of instances                                    * that have this model */    IFuid MOS2modName;       /* pointer to character string naming this model */    int MOS2type;       /* device type : 1 = nmos,  -1 = pmos */

⌨️ 快捷键说明

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