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

📄 mos1defs.h

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. Quarles**********/#ifndef MOS1#define MOS1#include "ifsim.h"#include "cktdefs.h"#include "gendefs.h"#include "complex.h"#include "noisedef.h"/* declarations for level 1 MOSFETs *//* information needed for each instance */typedef struct sMOS1instance {    struct sMOS1model *sMOS1modPtr; /* backpointer to model */    struct sMOS1instance *MOS1nextInstance;  /* pointer to next instance of                                              *current model*/    IFuid MOS1name; /* pointer to character string naming this instance */    int MOS1owner;  /* number of owner process */    int MOS1states;     /* index into state table for this device */    int MOS1dNode;  /* number of the gate node of the mosfet */    int MOS1gNode;  /* number of the gate node of the mosfet */    int MOS1sNode;  /* number of the source node of the mosfet */    int MOS1bNode;  /* number of the bulk node of the mosfet */    int MOS1dNodePrime; /* number of the internal drain node of the mosfet */    int MOS1sNodePrime; /* number of the internal source node of the mosfet */    double MOS1l;   /* the length of the channel region */    double MOS1w;   /* the width of the channel region */    double MOS1drainArea;   /* the area of the drain diffusion */    double MOS1sourceArea;  /* the area of the source diffusion */    double MOS1drainSquares;    /* the length of the drain in squares */    double MOS1sourceSquares;   /* the length of the source in squares */    double MOS1drainPerimiter;    double MOS1sourcePerimiter;    double MOS1sourceConductance;   /*conductance of source(or 0):set in setup*/    double MOS1drainConductance;    /*conductance of drain(or 0):set in setup*/    double MOS1temp;    /* operating temperature of this instance */    double MOS1tTransconductance;   /* temperature corrected transconductance*/    double MOS1tSurfMob;            /* temperature corrected surface mobility */    double MOS1tPhi;                /* temperature corrected Phi */    double MOS1tVto;                /* temperature corrected Vto */    double MOS1tSatCur;             /* temperature corrected saturation Cur. */    double MOS1tSatCurDens; /* temperature corrected saturation Cur. density*/    double MOS1tCbd;                /* temperature corrected B-D Capacitance */    double MOS1tCbs;                /* temperature corrected B-S Capacitance */    double MOS1tCj;         /* temperature corrected Bulk bottom Capacitance */    double MOS1tCjsw;       /* temperature corrected Bulk side Capacitance */    double MOS1tBulkPot;    /* temperature corrected Bulk potential */    double MOS1tDepCap;     /* temperature adjusted transition point in */                            /* the cureve matching Fc * Vj */    double MOS1tVbi;        /* temperature adjusted Vbi */    double MOS1icVBS;   /* initial condition B-S voltage */    double MOS1icVDS;   /* initial condition D-S voltage */    double MOS1icVGS;   /* initial condition G-S voltage */    double MOS1von;    double MOS1vdsat;    double MOS1sourceVcrit; /* Vcrit for pos. vds */    double MOS1drainVcrit;  /* Vcrit for pos. vds */    double MOS1cd;    double MOS1cbs;    double MOS1cbd;    double MOS1gmbs;    double MOS1gm;    double MOS1gds;    double MOS1gbd;    double MOS1gbs;    double MOS1capbd;    double MOS1capbs;    double MOS1Cbd;    double MOS1Cbdsw;    double MOS1Cbs;    double MOS1Cbssw;    double MOS1f2d;    double MOS1f3d;    double MOS1f4d;    double MOS1f2s;    double MOS1f3s;    double MOS1f4s;/* * naming convention: * x = vgs * y = vbs * z = vds * cdr = cdrain */#define	MOS1NDCOEFFS	30#ifndef NODISTO	double MOS1dCoeffs[MOS1NDCOEFFS];#else /* NODISTO */	double *MOS1dCoeffs;#endif /* NODISTO */#ifndef CONFIG#define	capbs2		MOS1dCoeffs[0]#define	capbs3		MOS1dCoeffs[1]#define	capbd2		MOS1dCoeffs[2]#define	capbd3		MOS1dCoeffs[3]#define	gbs2		MOS1dCoeffs[4]#define	gbs3		MOS1dCoeffs[5]#define	gbd2		MOS1dCoeffs[6]#define	gbd3		MOS1dCoeffs[7]#define	capgb2		MOS1dCoeffs[8]#define	capgb3		MOS1dCoeffs[9]#define	cdr_x2		MOS1dCoeffs[10]#define	cdr_y2		MOS1dCoeffs[11]#define	cdr_z2		MOS1dCoeffs[12]#define	cdr_xy		MOS1dCoeffs[13]#define	cdr_yz		MOS1dCoeffs[14]#define	cdr_xz		MOS1dCoeffs[15]#define	cdr_x3		MOS1dCoeffs[16]#define	cdr_y3		MOS1dCoeffs[17]#define	cdr_z3		MOS1dCoeffs[18]#define	cdr_x2z		MOS1dCoeffs[19]#define	cdr_x2y		MOS1dCoeffs[20]#define	cdr_y2z		MOS1dCoeffs[21]#define	cdr_xy2		MOS1dCoeffs[22]#define	cdr_xz2		MOS1dCoeffs[23]#define	cdr_yz2		MOS1dCoeffs[24]#define	cdr_xyz		MOS1dCoeffs[25]#define	capgs2		MOS1dCoeffs[26]#define	capgs3		MOS1dCoeffs[27]#define	capgd2		MOS1dCoeffs[28]#define	capgd3		MOS1dCoeffs[29]#endif#define MOS1RDNOIZ	0#define MOS1RSNOIZ   1#define MOS1IDNOIZ       2#define MOS1FLNOIZ 3#define MOS1TOTNOIZ    4#define MOS1NSRCS     5     /* the number of MOS1FET noise sources*/#ifndef NONOISE    double MOS1nVar[NSTATVARS][MOS1NSRCS];#else /* NONOISE */	double **MOS1nVar;#endif /* NONOISE */    int MOS1mode;       /* device mode : 1 = normal, -1 = inverse */    unsigned MOS1off:1;  /* non-zero to indicate device is off for dc analysis*/    unsigned MOS1tempGiven :1;  /* instance temperature specified */    unsigned MOS1lGiven :1;    unsigned MOS1wGiven :1;    unsigned MOS1drainAreaGiven :1;    unsigned MOS1sourceAreaGiven    :1;    unsigned MOS1drainSquaresGiven  :1;    unsigned MOS1sourceSquaresGiven :1;    unsigned MOS1drainPerimiterGiven    :1;    unsigned MOS1sourcePerimiterGiven   :1;    unsigned MOS1dNodePrimeSet  :1;    unsigned MOS1sNodePrimeSet  :1;    unsigned MOS1icVBSGiven :1;    unsigned MOS1icVDSGiven :1;    unsigned MOS1icVGSGiven :1;    unsigned MOS1vonGiven   :1;    unsigned MOS1vdsatGiven :1;    unsigned MOS1modeGiven  :1;    double *MOS1DdPtr;      /* pointer to sparse matrix element at                                     * (Drain node,drain node) */    double *MOS1GgPtr;      /* pointer to sparse matrix element at                                     * (gate node,gate node) */    double *MOS1SsPtr;      /* pointer to sparse matrix element at                                     * (source node,source node) */    double *MOS1BbPtr;      /* pointer to sparse matrix element at                                     * (bulk node,bulk node) */    double *MOS1DPdpPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,drain prime node) */    double *MOS1SPspPtr;    /* pointer to sparse matrix element at                                     * (source prime node,source prime node) */    double *MOS1DdpPtr;     /* pointer to sparse matrix element at                                     * (drain node,drain prime node) */    double *MOS1GbPtr;      /* pointer to sparse matrix element at                                     * (gate node,bulk node) */    double *MOS1GdpPtr;     /* pointer to sparse matrix element at                                     * (gate node,drain prime node) */    double *MOS1GspPtr;     /* pointer to sparse matrix element at                                     * (gate node,source prime node) */    double *MOS1SspPtr;     /* pointer to sparse matrix element at                                     * (source node,source prime node) */    double *MOS1BdpPtr;     /* pointer to sparse matrix element at                                     * (bulk node,drain prime node) */    double *MOS1BspPtr;     /* pointer to sparse matrix element at                                     * (bulk node,source prime node) */    double *MOS1DPspPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,source prime node) */    double *MOS1DPdPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,drain node) */    double *MOS1BgPtr;      /* pointer to sparse matrix element at                                     * (bulk node,gate node) */    double *MOS1DPgPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,gate node) */    double *MOS1SPgPtr;     /* pointer to sparse matrix element at                                     * (source prime node,gate node) */    double *MOS1SPsPtr;     /* pointer to sparse matrix element at                                     * (source prime node,source node) */    double *MOS1DPbPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,bulk node) */    double *MOS1SPbPtr;     /* pointer to sparse matrix element at                                     * (source prime node,bulk node) */    double *MOS1SPdpPtr;    /* pointer to sparse matrix element at                                     * (source prime node,drain prime node) */    int  MOS1senParmNo;   /* parameter # for sensitivity use;            set equal to 0  if  neither length            nor width of the mosfet is a design            parameter */    unsigned MOS1sens_l :1;   /* field which indicates whether              length of the mosfet is a design            parameter or not */    unsigned MOS1sens_w :1;   /* field which indicates whether              width of the mosfet is a design            parameter or not */    unsigned MOS1senPertFlag :1; /* indictes whether the the             parameter of the particular instance is             to be perturbed */    double MOS1cgs;    double MOS1cgd;    double MOS1cgb;    double *MOS1sens;#define MOS1senCgs MOS1sens /* contains pertured values of cgs */#define MOS1senCgd MOS1sens + 6 /* contains perturbed values of cgd*/#define MOS1senCgb MOS1sens + 12 /* contains perturbed values of cgb*/#define MOS1senCbd MOS1sens + 18 /* contains perturbed values of cbd*/#define MOS1senCbs MOS1sens + 24 /* contains perturbed values of cbs*/#define MOS1senGds MOS1sens + 30 /* contains perturbed values of gds*/#define MOS1senGbs MOS1sens + 36 /* contains perturbed values of gbs*/#define MOS1senGbd MOS1sens + 42 /* contains perturbed values of gbd*/#define MOS1senGm MOS1sens + 48 /* contains perturbed values of gm*/#define MOS1senGmbs MOS1sens + 54 /* contains perturbed values of gmbs*/#define MOS1dphigs_dl MOS1sens + 60#define MOS1dphigd_dl MOS1sens + 61#define MOS1dphigb_dl MOS1sens + 62#define MOS1dphibs_dl MOS1sens + 63#define MOS1dphibd_dl MOS1sens + 64#define MOS1dphigs_dw MOS1sens + 65

⌨️ 快捷键说明

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