📄 numosdef.h
字号:
/**********Copyright 1991 Regents of the University of California. All rights reserved.Authors: 1987 Karti Mayaram, 1991 David Gates**********/#ifndef NUMOS_H#define NUMOS_H "NUMOSdefs.h $Revision: 1.0 $ on $Date: 87/10/12 10:05:00 $ "/* data structures used to describe 2D Numerical MOSFETs *//* circuit level includes */#include "ifsim.h"#include "cktdefs.h"#include "gendefs.h"/* device level includes */#include "twomesh.h"#include "twodev.h"#include "profile.h"#include "numglobs.h"#include "carddefs.h"/* information needed per instance */typedef struct sNUMOSinstance { struct sNUMOSmodel *NUMOSmodPtr; /* back pointer to model */ struct sNUMOSinstance *NUMOSnextInstance; /* pointer to next instance * of current model */ IFuid NUMOSname; /* pointer to character string naming this * instance */ int NUMOSowner; /* number of owner process */ int NUMOSstate; /* pointer to start of state vector for * mosfet */ /* entries in the state vector for mosfet: */#define NUMOSvdb NUMOSstate#define NUMOSvsb NUMOSstate+1#define NUMOSvgb NUMOSstate+2#define NUMOSid NUMOSstate+3#define NUMOSis NUMOSstate+4#define NUMOSig NUMOSstate+5#define NUMOSdIdDVdb NUMOSstate+6#define NUMOSdIdDVsb NUMOSstate+7#define NUMOSdIdDVgb NUMOSstate+8#define NUMOSdIsDVdb NUMOSstate+9#define NUMOSdIsDVsb NUMOSstate+10#define NUMOSdIsDVgb NUMOSstate+11#define NUMOSdIgDVdb NUMOSstate+12#define NUMOSdIgDVsb NUMOSstate+13#define NUMOSdIgDVgb NUMOSstate+14#define NUMOSnumStates 15 int NUMOSdrainNode; /* number of drain node of MOSFET */ int NUMOSgateNode; /* number of gate node of MOSFET */ int NUMOSsourceNode; /* number of source node of MOSFET */ int NUMOSbulkNode; /* number of bulk node of MOSFET */ double NUMOSarea; /* area factor for the mosfet */ double NUMOSwidth; /* width factor for the mosfet */ double NUMOSlength; /* length factor for the mosfet */ TWOdevice *NUMOSpDevice; int NUMOStype; double NUMOStemp; /* Instance Temperature */ double NUMOSc11; /* small-signal capacitance */ double NUMOSy11r; /* small-signal admittance, real part */ double NUMOSy11i; /* small-signal admittance, imag part */ double NUMOSc12; /* small-signal capacitance */ double NUMOSy12r; /* small-signal admittance, real part */ double NUMOSy12i; /* small-signal admittance, imag part */ double NUMOSc13; /* small-signal capacitance */ double NUMOSy13r; /* small-signal admittance, real part */ double NUMOSy13i; /* small-signal admittance, imag part */ double NUMOSc21; /* small-signal capacitance */ double NUMOSy21r; /* small-signal admittance, real part */ double NUMOSy21i; /* small-signal admittance, imag part */ double NUMOSc22; /* small-signal capacitance */ double NUMOSy22r; /* small-signal admittance, real part */ double NUMOSy22i; /* small-signal admittance, imag part */ double NUMOSc23; /* small-signal capacitance */ double NUMOSy23r; /* small-signal admittance, real part */ double NUMOSy23i; /* small-signal admittance, imag part */ double NUMOSc31; /* small-signal capacitance */ double NUMOSy31r; /* small-signal admittance, real part */ double NUMOSy31i; /* small-signal admittance, imag part */ double NUMOSc32; /* small-signal capacitance */ double NUMOSy32r; /* small-signal admittance, real part */ double NUMOSy32i; /* small-signal admittance, imag part */ double NUMOSc33; /* small-signal capacitance */ double NUMOSy33r; /* small-signal admittance, real part */ double NUMOSy33i; /* small-signal admittance, imag part */ GLOBvalues NUMOSglobals; /* Temp.-Dep. Global Parameters */ int NUMOSprint; /* print timepoints */ char *NUMOSicFile; /* Name of initial condition file */ double *NUMOSdrainDrainPtr; /* pointer to sparse matrix at (drain,drain) */ double *NUMOSdrainSourcePtr; /* pointer to sparse matrix at (drain,source) */ double *NUMOSdrainGatePtr; /* pointer to sparse matrix at (drain,gate) */ double *NUMOSdrainBulkPtr; /* pointer to sparse matrix at (drain,bulk) */ double *NUMOSsourceDrainPtr; /* pointer to sparse matrix at (source,drain) */ double *NUMOSsourceSourcePtr; /* pointer to sparse matrix at * (source,source) */ double *NUMOSsourceGatePtr; /* pointer to sparse matrix at (source,gate) */ double *NUMOSsourceBulkPtr; /* pointer to sparse matrix at (source,bulk) */ double *NUMOSgateDrainPtr; /* pointer to sparse matrix at (gate,drain) */ double *NUMOSgateSourcePtr; /* pointer to sparse matrix at (gate,source) */ double *NUMOSgateGatePtr; /* pointer to sparse matrix at (gate,gate) */ double *NUMOSgateBulkPtr; /* pointer to sparse matrix at (gate,bulk) */ double *NUMOSbulkDrainPtr; /* pointer to sparse matrix at (bulk,drain) */ double *NUMOSbulkSourcePtr; /* pointer to sparse matrix at (bulk,source) */ double *NUMOSbulkGatePtr; /* pointer to sparse matrix at (bulk,gate) */ double *NUMOSbulkBulkPtr; /* pointer to sparse matrix at (bulk,bulk) */ int NUMOSoff; /* 'off' flag for mosfet */ unsigned NUMOSsmSigAvail:1; /* flag to indicate small-signal done */ unsigned NUMOSareaGiven:1; /* flag to indicate area was specified */ unsigned NUMOSwidthGiven:1; /* flag to indicate width was specified */ unsigned NUMOSlengthGiven:1; /* flag to indicate length was specified */ unsigned NUMOSicFileGiven:1; /* flag to indicate init. cond. file given */ unsigned NUMOSprintGiven:1; /* flag to indicate print was given */ unsigned NUMOStempGiven:1; /* flag to indicate temp was given */} NUMOSinstance;/* per model data */typedef struct sNUMOSmodel { /* model structure for a numerical device */ int NUMOSmodType; /* type index of this device type */ struct sNUMOSmodel *NUMOSnextModel; /* pointer to next model in list */ NUMOSinstance *NUMOSinstances;/* pointer to list of instances */ IFuid NUMOSmodName; /* pointer to string naming this model */ /* Everything below here is numerical-device-specific */ MESHcard *NUMOSxMeshes; /* list of xmesh cards */ MESHcard *NUMOSyMeshes; /* list of ymesh cards */ DOMNcard *NUMOSdomains; /* list of domain cards */ BDRYcard *NUMOSboundaries; /* list of boundary cards */ DOPcard *NUMOSdopings; /* list of doping cards */ ELCTcard *NUMOSelectrodes; /* list of electrode cards */ CONTcard *NUMOScontacts; /* list of contact cards */ MODLcard *NUMOSmodels; /* list of model cards */ MATLcard *NUMOSmaterials; /* list of material cards */ MOBcard *NUMOSmobility; /* list of mobility cards */ METHcard *NUMOSmethods; /* list of method cards */ OPTNcard *NUMOSoptions; /* list of option cards */ OUTPcard *NUMOSoutputs; /* list of output cards */ TWOtranInfo *NUMOSpInfo; /* transient analysis information */ DOPprofile *NUMOSprofiles; /* expanded list of doping profiles */ DOPtable *NUMOSdopTables; /* list of tables used by profiles */ TWOmaterial *NUMOSmatlInfo; /* list of material info structures */} NUMOSmodel;/* type of 2D MOSFET */#define N_CH 1#define P_CH -1/* device parameters */#define NUMOS_AREA 1#define NUMOS_WIDTH 2#define NUMOS_LENGTH 3#define NUMOS_OFF 4#define NUMOS_IC_FILE 5#define NUMOS_PRINT 9#define NUMOS_TEMP 10#define NUMOS_G11 11#define NUMOS_C11 12#define NUMOS_Y11 13#define NUMOS_G12 14#define NUMOS_C12 15#define NUMOS_Y12 16#define NUMOS_G13 17#define NUMOS_C13 18#define NUMOS_Y13 19#define NUMOS_G14 20#define NUMOS_C14 21#define NUMOS_Y14 22#define NUMOS_G21 23#define NUMOS_C21 24#define NUMOS_Y21 25#define NUMOS_G22 26#define NUMOS_C22 27#define NUMOS_Y22 28#define NUMOS_G23 29#define NUMOS_C23 30#define NUMOS_Y23 31#define NUMOS_G24 32#define NUMOS_C24 33#define NUMOS_Y24 34#define NUMOS_G31 35#define NUMOS_C31 36#define NUMOS_Y31 37#define NUMOS_G32 38#define NUMOS_C32 39#define NUMOS_Y32 40#define NUMOS_G33 41#define NUMOS_C33 42#define NUMOS_Y33 43#define NUMOS_G34 44#define NUMOS_C34 45#define NUMOS_Y34 46#define NUMOS_G41 47#define NUMOS_C41 48#define NUMOS_Y41 49#define NUMOS_G42 50#define NUMOS_C42 51#define NUMOS_Y42 52#define NUMOS_G43 53#define NUMOS_C43 54#define NUMOS_Y43 55#define NUMOS_G44 56#define NUMOS_C44 57#define NUMOS_Y44 58/* model parameters *//* NOTE: all true model parameters have been moved to IFcardInfo structures */#define NUMOS_MOD_NUMOS 1/* device questions *//* model questions */#include "numosext.h"#endif /* NUMOS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -