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

📄 mos9defs.h

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 H
📖 第 1 页 / 共 2 页
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. QuarlesModified: Alan Gillespie**********/#ifndef MOS9#define MOS9#include "ifsim.h"#include "cktdefs.h"#include "gendefs.h"#include "complex.h"#include "noisedef.h"    /* declarations for level 9 MOSFETs *//* information needed for each instance */typedef struct sMOS9instance {    struct sMOS9model *MOS9modPtr;  /* backpointer to model */    struct sMOS9instance *MOS9nextInstance;  /* pointer to next instance of                                               *current model*/    IFuid MOS9name; /* pointer to character string naming this instance */    int MOS9owner;  /* number of owner process */    int MOS9states;     /* index into state table for this device */    int MOS9dNode;  /* number of the gate node of the mosfet */    int MOS9gNode;  /* number of the gate node of the mosfet */    int MOS9sNode;  /* number of the source node of the mosfet */    int MOS9bNode;  /* number of the bulk node of the mosfet */    int MOS9dNodePrime; /* number of the internal drain node of the mosfet */    int MOS9sNodePrime; /* number of the internal source node of the mosfet */    double MOS9m;   /* parallel device multiplier */    double MOS9l;   /* the length of the channel region */    double MOS9w;   /* the width of the channel region */    double MOS9drainArea;   /* the area of the drain diffusion */    double MOS9sourceArea;  /* the area of the source diffusion */    double MOS9drainSquares;    /* the length of the drain in squares */    double MOS9sourceSquares;   /* the length of the source in squares */    double MOS9drainPerimiter;    double MOS9sourcePerimiter;    double MOS9sourceConductance;   /*conductance of source(or 0):set in setup*/    double MOS9drainConductance;    /*conductance of drain(or 0):set in setup*/    double MOS9temp;    /* operating temperature of this instance */    double MOS9dtemp;   /* instance temperature difference */    double MOS9tTransconductance;   /* temperature corrected transconductance*/    double MOS9tSurfMob;            /* temperature corrected surface mobility */    double MOS9tPhi;                /* temperature corrected Phi */    double MOS9tVto;                /* temperature corrected Vto */    double MOS9tSatCur;             /* temperature corrected saturation Cur. */    double MOS9tSatCurDens; /* temperature corrected saturation Cur. density*/    double MOS9tCbd;                /* temperature corrected B-D Capacitance */    double MOS9tCbs;                /* temperature corrected B-S Capacitance */    double MOS9tCj;         /* temperature corrected Bulk bottom Capacitance */    double MOS9tCjsw;       /* temperature corrected Bulk side Capacitance */    double MOS9tBulkPot;    /* temperature corrected Bulk potential */    double MOS9tDepCap;     /* temperature adjusted transition point in */                            /* the cureve matching Fc * Vj */    double MOS9tVbi;        /* temperature adjusted Vbi */    double MOS9icVBS;   /* initial condition B-S voltage */    double MOS9icVDS;   /* initial condition D-S voltage */    double MOS9icVGS;   /* initial condition G-S voltage */    double MOS9von;    double MOS9vdsat;    double MOS9sourceVcrit; /* vcrit for pos. vds */    double MOS9drainVcrit;  /* vcrit for neg. vds */    double MOS9cd;    double MOS9cbs;    double MOS9cbd;    double MOS9gmbs;    double MOS9gm;    double MOS9gds;    double MOS9gbd;    double MOS9gbs;    double MOS9capbd;    double MOS9capbs;    double MOS9Cbd;    double MOS9Cbdsw;    double MOS9Cbs;    double MOS9Cbssw;    double MOS9f2d;    double MOS9f3d;    double MOS9f4d;    double MOS9f2s;    double MOS9f3s;    double MOS9f4s;    int MOS9mode;       /* device mode : 1 = normal, -1 = inverse */    unsigned MOS9off :1;/* non-zero to indicate device is off for dc analysis*/    unsigned MOS9tempGiven :1;  /* instance temperature specified */    unsigned MOS9dtempGiven :1; /* instance temperature difference specified*/    unsigned MOS9mGiven :1;    unsigned MOS9lGiven :1;    unsigned MOS9wGiven :1;    unsigned MOS9drainAreaGiven :1;    unsigned MOS9sourceAreaGiven    :1;    unsigned MOS9drainSquaresGiven  :1;    unsigned MOS9sourceSquaresGiven :1;    unsigned MOS9drainPerimiterGiven    :1;    unsigned MOS9sourcePerimiterGiven   :1;    unsigned MOS9dNodePrimeSet  :1;    unsigned MOS9sNodePrimeSet  :1;    unsigned MOS9icVBSGiven :1;    unsigned MOS9icVDSGiven :1;    unsigned MOS9icVGSGiven :1;    unsigned MOS9vonGiven   :1;    unsigned MOS9vdsatGiven :1;    unsigned MOS9modeGiven  :1;    double *MOS9DdPtr;      /* pointer to sparse matrix element at                                     * (Drain node,drain node) */    double *MOS9GgPtr;      /* pointer to sparse matrix element at                                     * (gate node,gate node) */    double *MOS9SsPtr;      /* pointer to sparse matrix element at                                     * (source node,source node) */    double *MOS9BbPtr;      /* pointer to sparse matrix element at                                     * (bulk node,bulk node) */    double *MOS9DPdpPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,drain prime node) */    double *MOS9SPspPtr;    /* pointer to sparse matrix element at                                     * (source prime node,source prime node) */    double *MOS9DdpPtr;     /* pointer to sparse matrix element at                                     * (drain node,drain prime node) */    double *MOS9GbPtr;      /* pointer to sparse matrix element at                                     * (gate node,bulk node) */    double *MOS9GdpPtr;     /* pointer to sparse matrix element at                                     * (gate node,drain prime node) */    double *MOS9GspPtr;     /* pointer to sparse matrix element at                                     * (gate node,source prime node) */    double *MOS9SspPtr;     /* pointer to sparse matrix element at                                     * (source node,source prime node) */    double *MOS9BdpPtr;     /* pointer to sparse matrix element at                                     * (bulk node,drain prime node) */    double *MOS9BspPtr;     /* pointer to sparse matrix element at                                     * (bulk node,source prime node) */    double *MOS9DPspPtr;    /* pointer to sparse matrix element at                                     * (drain prime node,source prime node) */    double *MOS9DPdPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,drain node) */    double *MOS9BgPtr;      /* pointer to sparse matrix element at                                     * (bulk node,gate node) */    double *MOS9DPgPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,gate node) */    double *MOS9SPgPtr;     /* pointer to sparse matrix element at                                     * (source prime node,gate node) */    double *MOS9SPsPtr;     /* pointer to sparse matrix element at                                     * (source prime node,source node) */    double *MOS9DPbPtr;     /* pointer to sparse matrix element at                                     * (drain prime node,bulk node) */    double *MOS9SPbPtr;     /* pointer to sparse matrix element at                                     * (source prime node,bulk node) */    double *MOS9SPdpPtr;    /* pointer to sparse matrix element at                                     * (source prime node,drain prime node) */    int  MOS9senParmNo;   /* parameter # for sensitivity use;            set equal to 0  if  neither length            nor width of the mosfet is a design            parameter */    unsigned MOS9sens_l :1;   /* field which indicates whether                length of the mosfet is a design              parameter or not */    unsigned MOS9sens_w :1;   /* field which indicates whether                width of the mosfet is a design              parameter or not */    unsigned MOS9senPertFlag :1; /* indictes whether the the parameter of                        the particular instance is to be perturbed */    double MOS9cgs;    double MOS9cgd;    double MOS9cgb;    double *MOS9sens;#define MOS9senGdpr MOS9sens#define MOS9senGspr MOS9sens + 1#define MOS9senCgs MOS9sens + 2 /* contains pertured values of cgs */#define MOS9senCgd MOS9sens + 8 /* contains perturbed values of cgd*/#define MOS9senCgb MOS9sens + 14 /* contains perturbed values of cgb*/#define MOS9senCbd MOS9sens + 20 /* contains perturbed values of cbd*/#define MOS9senCbs MOS9sens + 26 /* contains perturbed values of cbs*/#define MOS9senGds MOS9sens + 32 /* contains perturbed values of gds*/#define MOS9senGbs MOS9sens + 38 /* contains perturbed values of gbs*/#define MOS9senGbd MOS9sens + 44 /* contains perturbed values of gbd*/#define MOS9senGm MOS9sens + 50 /* contains perturbed values of gm*/#define MOS9senGmbs MOS9sens + 56 /* contains perturbed values of gmbs*/#define MOS9dphigs_dl MOS9sens + 62#define MOS9dphigd_dl MOS9sens + 63#define MOS9dphigb_dl MOS9sens + 64#define MOS9dphibs_dl MOS9sens + 65#define MOS9dphibd_dl MOS9sens + 66#define MOS9dphigs_dw MOS9sens + 67#define MOS9dphigd_dw MOS9sens + 68#define MOS9dphigb_dw MOS9sens + 69#define MOS9dphibs_dw MOS9sens + 70#define MOS9dphibd_dw MOS9sens + 71    /* 		distortion stuff 	*//* * naming convention: * x = vgs * y = vbs * z = vds * cdr = cdrain */#define	MOS9NDCOEFFS	30#ifndef NODISTO	double MOS9dCoeffs[MOS9NDCOEFFS];#else /* NODISTO */	double *MOS9dCoeffs;#endif /* NODISTO */#ifndef CONFIG#define	capbs2		MOS9dCoeffs[0]#define	capbs3		MOS9dCoeffs[1]#define	capbd2		MOS9dCoeffs[2]#define	capbd3		MOS9dCoeffs[3]#define	gbs2		MOS9dCoeffs[4]#define	gbs3		MOS9dCoeffs[5]#define	gbd2		MOS9dCoeffs[6]#define	gbd3		MOS9dCoeffs[7]#define	capgb2		MOS9dCoeffs[8]#define	capgb3		MOS9dCoeffs[9]#define	cdr_x2		MOS9dCoeffs[10]#define	cdr_y2		MOS9dCoeffs[11]#define	cdr_z2		MOS9dCoeffs[12]#define	cdr_xy		MOS9dCoeffs[13]#define	cdr_yz		MOS9dCoeffs[14]#define	cdr_xz		MOS9dCoeffs[15]#define	cdr_x3		MOS9dCoeffs[16]#define	cdr_y3		MOS9dCoeffs[17]#define	cdr_z3		MOS9dCoeffs[18]#define	cdr_x2z		MOS9dCoeffs[19]#define	cdr_x2y		MOS9dCoeffs[20]#define	cdr_y2z		MOS9dCoeffs[21]#define	cdr_xy2		MOS9dCoeffs[22]#define	cdr_xz2		MOS9dCoeffs[23]#define	cdr_yz2		MOS9dCoeffs[24]#define	cdr_xyz		MOS9dCoeffs[25]#define	capgs2		MOS9dCoeffs[26]#define	capgs3		MOS9dCoeffs[27]#define	capgd2		MOS9dCoeffs[28]#define	capgd3		MOS9dCoeffs[29]#endif    /* 		end distortion coeffs.  	*//* indices to the array of MOSFET(3) noise sources */#define MOS9RDNOIZ       0#define MOS9RSNOIZ       1#define MOS9IDNOIZ       2#define MOS9FLNOIZ 3#define MOS9TOTNOIZ    4#define MOS9NSRCS     5     /* the number of MOSFET(9) noise sources */#ifndef NONOISE    double MOS9nVar[NSTATVARS][MOS9NSRCS];#else /* NONOISE */	double **MOS9nVar;#endif /* NONOISE */} MOS9instance ;#define MOS9vbd MOS9states+ 0#define MOS9vbs MOS9states+ 1#define MOS9vgs MOS9states+ 2#define MOS9vds MOS9states+ 3/* meyer capacitances */#define MOS9capgs MOS9states+ 4 /* gate-source capacitor value */#define MOS9qgs MOS9states+ 5   /* gate-source capacitor charge */#define MOS9cqgs MOS9states+ 6  /* gate-source capacitor current */

⌨️ 快捷键说明

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