📄 bsim2def.h
字号:
/**********Copyright 1990 Regents of the University of California. All rights reserved.Author: 1988 Min-Chie Jeng, Hong June Park, Thomas L. Quarles**********/#ifndef BSIM2#define BSIM2#include "ifsim.h"#include "gendefs.h"#include "cktdefs.h"#include "complex.h" /* declarations for B2 MOSFETs *//* information needed for each instance */typedef struct sBSIM2instance { struct sBSIM2model *B2modPtr; /* pointer to model */ struct sBSIM2instance *B2nextInstance; /* pointer to next instance of *current model*/ IFuid B2name; /* pointer to character string naming this instance */ int B2owner; /* number of owner process */ int B2states; /* index into state table for this device */ int B2dNode; /* number of the gate node of the mosfet */ int B2gNode; /* number of the gate node of the mosfet */ int B2sNode; /* number of the source node of the mosfet */ int B2bNode; /* number of the bulk node of the mosfet */ int B2dNodePrime; /* number of the internal drain node of the mosfet */ int B2sNodePrime; /* number of the internal source node of the mosfet */ double B2l; /* the length of the channel region */ double B2w; /* the width of the channel region */ double B2drainArea; /* the area of the drain diffusion */ double B2sourceArea; /* the area of the source diffusion */ double B2drainSquares; /* the length of the drain in squares */ double B2sourceSquares; /* the length of the source in squares */ double B2drainPerimeter; double B2sourcePerimeter; double B2sourceConductance; /* cond. of source (or 0): set in setup */ double B2drainConductance; /* cond. of drain (or 0): set in setup */ double B2icVBS; /* initial condition B-S voltage */ double B2icVDS; /* initial condition D-S voltage */ double B2icVGS; /* initial condition G-S voltage */ double B2von; double B2vdsat; int B2off; /* non-zero to indicate device is off for dc analysis*/ int B2mode; /* device mode : 1 = normal, -1 = inverse */ struct bsim2SizeDependParam *pParam; unsigned B2lGiven :1; unsigned B2wGiven :1; unsigned B2drainAreaGiven :1; unsigned B2sourceAreaGiven :1; unsigned B2drainSquaresGiven :1; unsigned B2sourceSquaresGiven :1; unsigned B2drainPerimeterGiven :1; unsigned B2sourcePerimeterGiven :1; unsigned B2dNodePrimeSet :1; unsigned B2sNodePrimeSet :1; unsigned B2icVBSGiven :1; unsigned B2icVDSGiven :1; unsigned B2icVGSGiven :1; unsigned B2vonGiven :1; unsigned B2vdsatGiven :1; double *B2DdPtr; /* pointer to sparse matrix element at * (Drain node,drain node) */ double *B2GgPtr; /* pointer to sparse matrix element at * (gate node,gate node) */ double *B2SsPtr; /* pointer to sparse matrix element at * (source node,source node) */ double *B2BbPtr; /* pointer to sparse matrix element at * (bulk node,bulk node) */ double *B2DPdpPtr; /* pointer to sparse matrix element at * (drain prime node,drain prime node) */ double *B2SPspPtr; /* pointer to sparse matrix element at * (source prime node,source prime node) */ double *B2DdpPtr; /* pointer to sparse matrix element at * (drain node,drain prime node) */ double *B2GbPtr; /* pointer to sparse matrix element at * (gate node,bulk node) */ double *B2GdpPtr; /* pointer to sparse matrix element at * (gate node,drain prime node) */ double *B2GspPtr; /* pointer to sparse matrix element at * (gate node,source prime node) */ double *B2SspPtr; /* pointer to sparse matrix element at * (source node,source prime node) */ double *B2BdpPtr; /* pointer to sparse matrix element at * (bulk node,drain prime node) */ double *B2BspPtr; /* pointer to sparse matrix element at * (bulk node,source prime node) */ double *B2DPspPtr; /* pointer to sparse matrix element at * (drain prime node,source prime node) */ double *B2DPdPtr; /* pointer to sparse matrix element at * (drain prime node,drain node) */ double *B2BgPtr; /* pointer to sparse matrix element at * (bulk node,gate node) */ double *B2DPgPtr; /* pointer to sparse matrix element at * (drain prime node,gate node) */ double *B2SPgPtr; /* pointer to sparse matrix element at * (source prime node,gate node) */ double *B2SPsPtr; /* pointer to sparse matrix element at * (source prime node,source node) */ double *B2DPbPtr; /* pointer to sparse matrix element at * (drain prime node,bulk node) */ double *B2SPbPtr; /* pointer to sparse matrix element at * (source prime node,bulk node) */ double *B2SPdpPtr; /* pointer to sparse matrix element at * (source prime node,drain prime node) */#define B2vbd B2states+ 0#define B2vbs B2states+ 1#define B2vgs B2states+ 2#define B2vds B2states+ 3#define B2cd B2states+ 4#define B2id B2states+ 4#define B2cbs B2states+ 5#define B2ibs B2states+ 5#define B2cbd B2states+ 6#define B2ibd B2states+ 6#define B2gm B2states+ 7#define B2gds B2states+ 8#define B2gmbs B2states+ 9#define B2gbd B2states+ 10#define B2gbs B2states+ 11#define B2qb B2states+ 12#define B2cqb B2states+ 13#define B2iqb B2states+ 13#define B2qg B2states+ 14#define B2cqg B2states+ 15#define B2iqg B2states+ 15#define B2qd B2states+ 16#define B2cqd B2states+ 17#define B2iqd B2states+ 17#define B2cggb B2states+ 18#define B2cgdb B2states+ 19#define B2cgsb B2states+ 20#define B2cbgb B2states+ 21#define B2cbdb B2states+ 22#define B2cbsb B2states+ 23#define B2capbd B2states+ 24#define B2iqbd B2states+ 25#define B2cqbd B2states+ 25#define B2capbs B2states+ 26#define B2iqbs B2states+ 27#define B2cqbs B2states+ 27#define B2cdgb B2states+ 28#define B2cddb B2states+ 29#define B2cdsb B2states+ 30#define B2vono B2states+ 31#define B2vdsato B2states+ 32#define B2qbs B2states+ 33#define B2qbd B2states+ 34#define B2numStates 35 } B2instance ;struct bsim2SizeDependParam{ double Width; double Length; double B2vfb; /* flat band voltage at given L and W */ double B2phi; /* surface potential at strong inversion */ double B2k1; /* bulk effect coefficient 1 */ double B2k2; /* bulk effect coefficient 2 */ double B2eta0; /* drain induced barrier lowering */ double B2etaB; /* Vbs dependence of Eta */ double B2beta0; /* Beta at Vds = 0 and Vgs = Vth */ double B2beta0B; /* Vbs dependence of Beta0 */ double B2betas0; /* Beta at Vds=Vdd and Vgs=Vth */ double B2betasB; /* Vbs dependence of Betas */ double B2beta20; /* Vds dependence of Beta in tanh term */ double B2beta2B; /* Vbs dependence of Beta2 */ double B2beta2G; /* Vgs dependence of Beta2 */ double B2beta30; /* Vds dependence of Beta in linear term */ double B2beta3B; /* Vbs dependence of Beta3 */ double B2beta3G; /* Vgs dependence of Beta3 */ double B2beta40; /* Vds dependence of Beta in quadra term */ double B2beta4B; /* Vbs dependence of Beta4 */ double B2beta4G; /* Vgs dependence of Beta4 */ double B2ua0; /* Linear Vgs dependence of Mobility */ double B2uaB; /* Vbs dependence of Ua */ double B2ub0; /* Quadratic Vgs dependence of Mobility */ double B2ubB; /* Vbs dependence of Ub */ double B2u10; /* Drift Velocity Saturation due to Vds */ double B2u1B; /* Vbs dependence of U1 */ double B2u1D; /* Vds dependence of U1 */ double B2n0; /* Subthreshold slope at Vds=0, Vbs=0 */ double B2nB; /* Vbs dependence of n */ double B2nD; /* Vds dependence of n */ double B2vof0; /* Vth offset at Vds=0, Vbs=0 */ double B2vofB; /* Vbs dependence of Vof */ double B2vofD; /* Vds dependence of Vof */ double B2ai0; /* Pre-factor in hot-electron effects */ double B2aiB; /* Vbs dependence of Ai */ double B2bi0; /* Exp-factor in hot-electron effects */ double B2biB; /* Vbs dependence of Bi */ double B2vghigh; /* Upper bound of cubic spline function */ double B2vglow; /* Lower bound of cubic spline function */ double B2GDoverlapCap;/* Gate Drain Overlap Capacitance */ double B2GSoverlapCap;/* Gate Source Overlap Capacitance */ double B2GBoverlapCap;/* Gate Bulk Overlap Capacitance */ double SqrtPhi; double Phis3; double CoxWL; double One_Third_CoxWL; double Two_Third_CoxWL; double Arg; double B2vt0; struct bsim2SizeDependParam *pNext;};/* per model data */typedef struct sBSIM2model { /* model structure for a resistor */ int B2modType; /* type index of this device type */ struct sBSIM2model *B2nextModel; /* pointer to next possible model *in linked list */ B2instance * B2instances; /* pointer to list of instances * that have this model */ IFuid B2modName; /* pointer to the name of this model */ int B2type; /* device type: 1 = nmos, -1 = pmos */ int pad; double B2vfb0; double B2vfbL; double B2vfbW; double B2phi0; double B2phiL; double B2phiW; double B2k10; double B2k1L; double B2k1W; double B2k20; double B2k2L; double B2k2W; double B2eta00; double B2eta0L; double B2eta0W; double B2etaB0; double B2etaBL; double B2etaBW; double B2deltaL; double B2deltaW; double B2mob00; double B2mob0B0; double B2mob0BL; double B2mob0BW ; double B2mobs00; double B2mobs0L; double B2mobs0W; double B2mobsB0; double B2mobsBL; double B2mobsBW; double B2mob200; double B2mob20L; double B2mob20W; double B2mob2B0; double B2mob2BL; double B2mob2BW; double B2mob2G0; double B2mob2GL; double B2mob2GW; double B2mob300; double B2mob30L; double B2mob30W; double B2mob3B0; double B2mob3BL; double B2mob3BW; double B2mob3G0; double B2mob3GL; double B2mob3GW; double B2mob400; double B2mob40L; double B2mob40W; double B2mob4B0; double B2mob4BL; double B2mob4BW; double B2mob4G0; double B2mob4GL; double B2mob4GW; double B2ua00; double B2ua0L; double B2ua0W; double B2uaB0; double B2uaBL; double B2uaBW; double B2ub00; double B2ub0L; double B2ub0W; double B2ubB0; double B2ubBL; double B2ubBW; double B2u100; double B2u10L; double B2u10W; double B2u1B0; double B2u1BL; double B2u1BW; double B2u1D0; double B2u1DL; double B2u1DW; double B2n00; double B2n0L; double B2n0W; double B2nB0; double B2nBL; double B2nBW; double B2nD0; double B2nDL; double B2nDW; double B2vof00; double B2vof0L; double B2vof0W; double B2vofB0; double B2vofBL; double B2vofBW; double B2vofD0; double B2vofDL; double B2vofDW; double B2ai00; double B2ai0L; double B2ai0W; double B2aiB0; double B2aiBL; double B2aiBW; double B2bi00; double B2bi0L; double B2bi0W; double B2biB0; double B2biBL; double B2biBW; double B2vghigh0; double B2vghighL; double B2vghighW; double B2vglow0; double B2vglowL; double B2vglowW; double B2tox; /* unit: micron */ double B2Cox; /* unit: F/cm**2 */ double B2temp; double B2vdd; double B2vdd2; double B2vgg; double B2vgg2; double B2vbb; double B2vbb2; double B2gateSourceOverlapCap; double B2gateDrainOverlapCap; double B2gateBulkOverlapCap; double B2Vtm; double B2sheetResistance; double B2jctSatCurDensity; double B2bulkJctPotential; double B2bulkJctBotGradingCoeff;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -