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

📄 mos6defs.h

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. Quarles**********/#ifndef MOS6#define MOS6#include "ifsim.h"#include "cktdefs.h"#include "gendefs.h"#include "complex.h"/* declarations for level 5 MOSFETs *//* information needed for each instance */typedef struct sMOS6instance {    struct sMOS6model *sMOS6modPtr; /* backpointer to model */    struct sMOS6instance *MOS6nextInstance;  /* pointer to next instance of                                              *current model*/    IFuid MOS6name; /* pointer to character string naming this instance */    int MOS6owner;  /* number of owner process */    int MOS6states;     /* index into state table for this device */    int MOS6dNode;  /* number of the gate node of the mosfet */    int MOS6gNode;  /* number of the gate node of the mosfet */    int MOS6sNode;  /* number of the source node of the mosfet */    int MOS6bNode;  /* number of the bulk node of the mosfet */    int MOS6dNodePrime; /* number of the internal drain node of the mosfet */    int MOS6sNodePrime; /* number of the internal source node of the mosfet */    double MOS6l;   /* the length of the channel region */    double MOS6w;   /* the width of the channel region */    double MOS6drainArea;   /* the area of the drain diffusion */    double MOS6sourceArea;  /* the area of the source diffusion */    double MOS6drainSquares;    /* the length of the drain in squares */    double MOS6sourceSquares;   /* the length of the source in squares */    double MOS6drainPerimiter;    double MOS6sourcePerimiter;    double MOS6sourceConductance;   /*conductance of source(or 0):set in setup*/    double MOS6drainConductance;    /*conductance of drain(or 0):set in setup*/    double MOS6temp;    /* operating temperature of this instance */    double MOS6tKv;         /* temperature corrected drain linear cond. factor*/    double MOS6tKc;         /* temperature corrected saturation cur. factor*/    double MOS6tSurfMob;    /* temperature corrected surface mobility */    double MOS6tPhi;        /* temperature corrected Phi */    double MOS6tVto;        /* temperature corrected Vto */    double MOS6tSatCur;     /* temperature corrected saturation Cur. */    double MOS6tSatCurDens; /* temperature corrected saturation Cur. density*/    double MOS6tCbd;        /* temperature corrected B-D Capacitance */    double MOS6tCbs;        /* temperature corrected B-S Capacitance */    double MOS6tCj;         /* temperature corrected Bulk bottom Capacitance */    double MOS6tCjsw;       /* temperature corrected Bulk side Capacitance */    double MOS6tBulkPot;    /* temperature corrected Bulk potential */    double MOS6tDepCap;     /* temperature adjusted transition point in */                            /* the cureve matching Fc * Vj */    double MOS6tVbi;        /* temperature adjusted Vbi */    double MOS6icVBS;   /* initial condition B-S voltage */    double MOS6icVDS;   /* initial condition D-S voltage */    double MOS6icVGS;   /* initial condition G-S voltage */    double MOS6von;    double MOS6vdsat;    double MOS6sourceVcrit; /* Vcrit for pos. vds */    double MOS6drainVcrit;  /* Vcrit for pos. vds */    double MOS6cd;    double MOS6cbs;    double MOS6cbd;    double MOS6gmbs;    double MOS6gm;    double MOS6gds;    double MOS6gbd;    double MOS6gbs;    double MOS6capbd;    double MOS6capbs;    double MOS6Cbd;    double MOS6Cbdsw;    double MOS6Cbs;    double MOS6Cbssw;    double MOS6f2d;    double MOS6f3d;    double MOS6f4d;    double MOS6f2s;    double MOS6f3s;    double MOS6f4s;    int MOS6mode;       /* device mode : 1 = normal, -1 = inverse */    unsigned MOS6off:1;  /* non-zero to indicate device is off for dc analysis*/    unsigned MOS6tempGiven :1;  /* instance temperature specified */    unsigned MOS6lGiven :1;    unsigned MOS6wGiven :1;    unsigned MOS6drainAreaGiven :1;    unsigned MOS6sourceAreaGiven    :1;    unsigned MOS6drainSquaresGiven  :1;    unsigned MOS6sourceSquaresGiven :1;    unsigned MOS6drainPerimiterGiven    :1;    unsigned MOS6sourcePerimiterGiven   :1;    unsigned MOS6dNodePrimeSet  :1;    unsigned MOS6sNodePrimeSet  :1;    unsigned MOS6icVBSGiven :1;    unsigned MOS6icVDSGiven :1;    unsigned MOS6icVGSGiven :1;    unsigned MOS6vonGiven   :1;    unsigned MOS6vdsatGiven :1;    unsigned MOS6modeGiven  :1;    double *MOS6DdPtr;      /* pointer to sparse matrix element at                                     * (Drain node,drain node) */    double *MOS6GgPtr;      /* pointer to sparse matrix element at                                     * (gate node,gate node) */    double *MOS6SsPtr;      /* pointer to sparse matrix element at                                     * (source node,source node) */    double *MOS6BbPtr;      /* pointer to sparse matrix element at                                     * (bulk node,bulk node) */    double *MOS6DPdpPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,drain prime node) */    double *MOS6SPspPtr;    /* pointer to sparse matrix element at                                     * (source prime node,source prime node) */    double *MOS6DdpPtr;     /* pointer to sparse matrix element at                                     * (drain node,drain prime node) */    double *MOS6GbPtr;      /* pointer to sparse matrix element at                                     * (gate node,bulk node) */    double *MOS6GdpPtr;     /* pointer to sparse matrix element at                                     * (gate node,drain prime node) */    double *MOS6GspPtr;     /* pointer to sparse matrix element at                                     * (gate node,source prime node) */    double *MOS6SspPtr;     /* pointer to sparse matrix element at                                     * (source node,source prime node) */    double *MOS6BdpPtr;     /* pointer to sparse matrix element at                                     * (bulk node,drain prime node) */    double *MOS6BspPtr;     /* pointer to sparse matrix element at                                     * (bulk node,source prime node) */    double *MOS6DPspPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,source prime node) */    double *MOS6DPdPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,drain node) */    double *MOS6BgPtr;      /* pointer to sparse matrix element at                                     * (bulk node,gate node) */    double *MOS6DPgPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,gate node) */    double *MOS6SPgPtr;     /* pointer to sparse matrix element at                                     * (source prime node,gate node) */    double *MOS6SPsPtr;     /* pointer to sparse matrix element at                                     * (source prime node,source node) */    double *MOS6DPbPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,bulk node) */    double *MOS6SPbPtr;     /* pointer to sparse matrix element at                                     * (source prime node,bulk node) */    double *MOS6SPdpPtr;    /* pointer to sparse matrix element at                                     * (source prime node,drain prime node) */    int  MOS6senParmNo;   /* parameter # for sensitivity use;            set equal to 0  if  neither length            nor width of the mosfet is a design            parameter */    unsigned MOS6sens_l :1;   /* field which indicates whether              length of the mosfet is a design            parameter or not */    unsigned MOS6sens_w :1;   /* field which indicates whether              width of the mosfet is a design            parameter or not */    unsigned MOS6senPertFlag :1; /* indictes whether the the             parameter of the particular instance is             to be perturbed */    double MOS6cgs;    double MOS6cgd;    double MOS6cgb;    double *MOS6sens;#define MOS6senCgs MOS6sens /* contains pertured values of cgs */#define MOS6senCgd MOS6sens + 6 /* contains perturbed values of cgd*/#define MOS6senCgb MOS6sens + 12 /* contains perturbed values of cgb*/#define MOS6senCbd MOS6sens + 18 /* contains perturbed values of cbd*/#define MOS6senCbs MOS6sens + 24 /* contains perturbed values of cbs*/#define MOS6senGds MOS6sens + 30 /* contains perturbed values of gds*/#define MOS6senGbs MOS6sens + 36 /* contains perturbed values of gbs*/#define MOS6senGbd MOS6sens + 42 /* contains perturbed values of gbd*/#define MOS6senGm MOS6sens + 48 /* contains perturbed values of gm*/#define MOS6senGmbs MOS6sens + 54 /* contains perturbed values of gmbs*/#define MOS6dphigs_dl MOS6sens + 60#define MOS6dphigd_dl MOS6sens + 61#define MOS6dphigb_dl MOS6sens + 62#define MOS6dphibs_dl MOS6sens + 63#define MOS6dphibd_dl MOS6sens + 64#define MOS6dphigs_dw MOS6sens + 65#define MOS6dphigd_dw MOS6sens + 66#define MOS6dphigb_dw MOS6sens + 67#define MOS6dphibs_dw MOS6sens + 68#define MOS6dphibd_dw MOS6sens + 69} MOS6instance ;#define MOS6vbd MOS6states+ 0   /* bulk-drain voltage */#define MOS6vbs MOS6states+ 1   /* bulk-source voltage */#define MOS6vgs MOS6states+ 2   /* gate-source voltage */#define MOS6vds MOS6states+ 3   /* drain-source voltage */#define MOS6capgs MOS6states+4  /* gate-source capacitor value */#define MOS6qgs MOS6states+ 5   /* gate-source capacitor charge */#define MOS6cqgs MOS6states+ 6  /* gate-source capacitor current */#define MOS6capgd MOS6states+ 7 /* gate-drain capacitor value */#define MOS6qgd MOS6states+ 8   /* gate-drain capacitor charge */#define MOS6cqgd MOS6states+ 9  /* gate-drain capacitor current */#define MOS6capgb MOS6states+10 /* gate-bulk capacitor value */#define MOS6qgb MOS6states+ 11  /* gate-bulk capacitor charge */#define MOS6cqgb MOS6states+ 12 /* gate-bulk capacitor current */#define MOS6qbd MOS6states+ 13  /* bulk-drain capacitor charge */#define MOS6cqbd MOS6states+ 14 /* bulk-drain capacitor current */#define MOS6qbs MOS6states+ 15  /* bulk-source capacitor charge */#define MOS6cqbs MOS6states+ 16 /* bulk-source capacitor current */#define MOS6numStates 17#define MOS6sensxpgs MOS6states+17 /* charge sensitivities and           their derivatives.  +18 for the derivatives:          pointer to the beginning of the array */#define MOS6sensxpgd  MOS6states+19#define MOS6sensxpgb  MOS6states+21#define MOS6sensxpbs  MOS6states+23#define MOS6sensxpbd  MOS6states+25#define MOS6numSenStates 10/* per model data */

⌨️ 快捷键说明

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