📄 mos6defs.h
字号:
/**********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 + -