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

📄 mos3defs.h

📁 linux平台下类似著名的电路板作图软件 Spice的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. Quarles**********/#ifndef MOS3#define MOS3#include "ifsim.h"#include "cktdefs.h"#include "gendefs.h"#include "complex.h"#include "noisedef.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 MOS3states;     /* index into state table for this device */    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  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    /* 		distortion stuff 	*//* * naming convention: * x = vgs * y = vbs * z = vds * cdr = cdrain */#define	MOS3NDCOEFFS	30#ifndef NODISTO	double MOS3dCoeffs[MOS3NDCOEFFS];#else /* NODISTO */	double *MOS3dCoeffs;#endif /* NODISTO */#ifndef CONFIG#define	capbs2		MOS3dCoeffs[0]#define	capbs3		MOS3dCoeffs[1]#define	capbd2		MOS3dCoeffs[2]#define	capbd3		MOS3dCoeffs[3]#define	gbs2		MOS3dCoeffs[4]#define	gbs3		MOS3dCoeffs[5]#define	gbd2		MOS3dCoeffs[6]#define	gbd3		MOS3dCoeffs[7]#define	capgb2		MOS3dCoeffs[8]#define	capgb3		MOS3dCoeffs[9]#define	cdr_x2		MOS3dCoeffs[10]#define	cdr_y2		MOS3dCoeffs[11]#define	cdr_z2		MOS3dCoeffs[12]#define	cdr_xy		MOS3dCoeffs[13]#define	cdr_yz		MOS3dCoeffs[14]#define	cdr_xz		MOS3dCoeffs[15]#define	cdr_x3		MOS3dCoeffs[16]#define	cdr_y3		MOS3dCoeffs[17]#define	cdr_z3		MOS3dCoeffs[18]#define	cdr_x2z		MOS3dCoeffs[19]#define	cdr_x2y		MOS3dCoeffs[20]#define	cdr_y2z		MOS3dCoeffs[21]#define	cdr_xy2		MOS3dCoeffs[22]#define	cdr_xz2		MOS3dCoeffs[23]#define	cdr_yz2		MOS3dCoeffs[24]#define	cdr_xyz		MOS3dCoeffs[25]#define	capgs2		MOS3dCoeffs[26]#define	capgs3		MOS3dCoeffs[27]#define	capgd2		MOS3dCoeffs[28]#define	capgd3		MOS3dCoeffs[29]#endif    /* 		end distortion coeffs.  	*//* indices to the array of MOSFET(3) noise sources */#define MOS3RDNOIZ       0#define MOS3RSNOIZ       1#define MOS3IDNOIZ       2#define MOS3FLNOIZ 3#define MOS3TOTNOIZ    4#define MOS3NSRCS     5     /* the number of MOSFET(3) noise sources */#ifndef NONOISE    double MOS3nVar[NSTATVARS][MOS3NSRCS];#else /* NONOISE */	double **MOS3nVar;#endif /* NONOISE */} MOS3instance ;#define MOS3vbd MOS3states+ 0#define MOS3vbs MOS3states+ 1#define MOS3vgs MOS3states+ 2#define MOS3vds MOS3states+ 3/* meyer capacitances */

⌨️ 快捷键说明

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