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

📄 bjt2defs.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 BJT2#define BJT2#include "cktdefs.h"#include "ifsim.h"#include "gendefs.h"#include "complex.h"#include "noisedef.h"/* structures to describe Bipolar Junction Transistors *//* data needed to describe a single instance */typedef struct sBJT2instance {    struct sBJT2model *BJT2modPtr;    /* backpointer to model */    struct sBJT2instance *BJT2nextInstance;   /* pointer to next instance of                                             * current model*/    IFuid BJT2name;  /* pointer to character string naming this instance */    int BJT2owner;  /* number of owner process */    int BJT2state; /* pointer to start of state vector for bjt2 */    int BJT2colNode; /* number of collector node of bjt2 */    int BJT2baseNode;    /* number of base node of bjt2 */    int BJT2emitNode;    /* number of emitter node of bjt2 */    int BJT2substNode;   /* number of substrate node of bjt2 */    int BJT2colPrimeNode;    /* number of internal collector node of bjt2 */    int BJT2basePrimeNode;   /* number of internal base node of bjt2 */    int BJT2emitPrimeNode;   /* number of internal emitter node of bjt2 */    int BJT2substConNode;   /* number of node which substrate is connected to */                            /* Substrate connection is either base prime      *                             * or collector prime depending on whether        *                             * the device is VERTICAL or LATERAL              */    double BJT2area;     /* (emitter) area factor for the bjt2 */    double BJT2areab;    /* base area factor for the bjt2 */    double BJT2areac;    /* collector area factor for the bjt2 */    double BJT2m;        /* parallel multiplier */    double BJT2icVBE;    /* initial condition voltage B-E*/    double BJT2icVCE;    /* initial condition voltage C-E*/    double BJT2temp;     /* instance temperature */    double BJT2dtemp;    /* instance delta temperature from circuit */    double BJT2tSatCur;  /* temperature adjusted saturation current */    double BJT2tSubSatCur; /* temperature adjusted subst. saturation current */    double BJT2tEmitterConduct;   /* emitter conductance */    double BJT2tCollectorConduct; /* collector conductance */    double BJT2tBaseResist;  /* temperature adjusted base resistance */    double BJT2tMinBaseResist;  /* temperature adjusted base resistance */    double BJT2tBetaF;   /* temperature adjusted forward beta */    double BJT2tBetaR;   /* temperature adjusted reverse beta */    double BJT2tBEleakCur;   /* temperature adjusted B-E leakage current */    double BJT2tBCleakCur;   /* temperature adjusted B-C leakage current */    double BJT2tBEcap;   /* temperature adjusted B-E capacitance */    double BJT2tBEpot;   /* temperature adjusted B-E potential */    double BJT2tBCcap;   /* temperature adjusted B-C capacitance */    double BJT2tBCpot;   /* temperature adjusted B-C potential */    double BJT2tSubcap;   /* temperature adjusted Substrate capacitance */    double BJT2tSubpot;   /* temperature adjusted Substrate potential */    double BJT2tDepCap;  /* temperature adjusted join point in diode curve */    double BJT2tf1;      /* temperature adjusted polynomial coefficient */    double BJT2tf4;      /* temperature adjusted polynomial coefficient */    double BJT2tf5;      /* temperature adjusted polynomial coefficient */    double BJT2tVcrit;   /* temperature adjusted critical voltage */    double BJT2tSubVcrit; /* temperature adjusted substrate critical voltage */    double *BJT2colColPrimePtr;  /* pointer to sparse matrix at                             * (collector,collector prime) */    double *BJT2baseBasePrimePtr;    /* pointer to sparse matrix at                             * (base,base prime) */    double *BJT2emitEmitPrimePtr;    /* pointer to sparse matrix at                             * (emitter,emitter prime) */    double *BJT2colPrimeColPtr;  /* pointer to sparse matrix at                             * (collector prime,collector) */    double *BJT2colPrimeBasePrimePtr;    /* pointer to sparse matrix at                             * (collector prime,base prime) */    double *BJT2colPrimeEmitPrimePtr;    /* pointer to sparse matrix at                             * (collector prime,emitter prime) */    double *BJT2basePrimeBasePtr;    /* pointer to sparse matrix at                             * (base prime,base ) */    double *BJT2basePrimeColPrimePtr;    /* pointer to sparse matrix at                             * (base prime,collector prime) */    double *BJT2basePrimeEmitPrimePtr;   /* pointer to sparse matrix at                             * (base primt,emitter prime) */    double *BJT2emitPrimeEmitPtr;    /* pointer to sparse matrix at                             * (emitter prime,emitter) */    double *BJT2emitPrimeColPrimePtr;    /* pointer to sparse matrix at                             * (emitter prime,collector prime) */    double *BJT2emitPrimeBasePrimePtr;   /* pointer to sparse matrix at                             * (emitter prime,base prime) */    double *BJT2colColPtr;   /* pointer to sparse matrix at                             * (collector,collector) */    double *BJT2baseBasePtr; /* pointer to sparse matrix at                             * (base,base) */    double *BJT2emitEmitPtr; /* pointer to sparse matrix at                             * (emitter,emitter) */    double *BJT2colPrimeColPrimePtr; /* pointer to sparse matrix at                             * (collector prime,collector prime) */    double *BJT2basePrimeBasePrimePtr;   /* pointer to sparse matrix at                             * (base prime,base prime) */    double *BJT2emitPrimeEmitPrimePtr;   /* pointer to sparse matrix at                             * (emitter prime,emitter prime) */    double *BJT2substSubstPtr;   /* pointer to sparse matrix at                             * (substrate,substrate) */    double *BJT2substConSubstPtr;    /* pointer to sparse matrix at                             * (Substrate connection, substrate) */    double *BJT2substSubstConPtr;    /* pointer to sparse matrix at                             * (substrate, Substrate connection) */    double *BJT2substConSubstConPtr;    /* pointer to sparse matrix at                             * (Substrate connection, Substrate connection) */                            /* Substrate connection is either base prime *                             * or collector prime depending on whether   *                             * the device is VERTICAL or LATERAL         */    double *BJT2baseColPrimePtr; /* pointer to sparse matrix at                             * (base,collector prime) */    double *BJT2colPrimeBasePtr; /* pointer to sparse matrix at                             * (collector prime,base) */    unsigned BJT2off :1;   /* 'off' flag for bjt2 */    unsigned BJT2tempGiven    :1; /* temperature given  for bjt2 instance*/    unsigned BJT2dtempGiven   :1; /* temperature given  for bjt2 instance*/        unsigned BJT2areaGiven    :1; /* flag to indicate (emitter) area was specified */    unsigned BJT2areabGiven   :1; /* flag to indicate base area was specified */    unsigned BJT2areacGiven   :1; /* flag to indicate collector area was specified */    unsigned BJT2mGiven       :1; /* flag to indicate m parameter specified */    unsigned BJT2icVBEGiven   :1; /* flag to indicate VBE init. cond. given */    unsigned BJT2icVCEGiven   :1; /* flag to indicate VCE init. cond. given */    unsigned BJT2senPertFlag  :1; /* indictes whether the the parameter of                        the particular instance is to be perturbed */    int  BJT2senParmNo;   /* parameter # for sensitivity use;            set equal to  0 if not a design parameter*/    double BJT2capbe;    double BJT2capbc;    double BJT2capsub;    double BJT2capbx;    double *BJT2sens;#define BJT2senGpi BJT2sens /* stores the perturbed values of gpi */#define BJT2senGmu BJT2sens+5 /* stores the perturbed values of gmu */#define BJT2senGm BJT2sens+10 /* stores the perturbed values of gm */#define BJT2senGo BJT2sens+15 /* stores the perturbed values of go */#define BJT2senGx BJT2sens+20 /* stores the perturbed values of gx */#define BJT2senCpi BJT2sens+25 /* stores the perturbed values of cpi */#define BJT2senCmu BJT2sens+30 /* stores the perturbed values of cmu */#define BJT2senCbx BJT2sens+35 /* stores the perturbed values of cbx */#define BJT2senCmcb BJT2sens+40 /* stores the perturbed values of cmcb */#define BJT2senCsub BJT2sens+45 /* stores the perturbed values of csub */#define BJT2dphibedp BJT2sens+51#define BJT2dphibcdp BJT2sens+52#define BJT2dphisubdp BJT2sens+53#define BJT2dphibxdp BJT2sens+54/* * distortion stuff * the following naming convention is used: * x = vbe * y = vbc * z = vbb * w = vbed (vbe delayed for the linear gm delay) * therefore ic_xyz stands for the coefficient of the vbe*vbc*vbb * term in the multidimensional Taylor expansion for ic; and ibb_x2y * for the coeff. of the vbe*vbe*vbc term in the ibb expansion. */#define BJT2NDCOEFFS	65#ifndef NODISTO	double BJT2dCoeffs[BJT2NDCOEFFS];#else /* NODISTO */	double *BJT2dCoeffs;#endif /* NODISTO */#ifndef CONFIG#define	ic_x		BJT2dCoeffs[0]#define	ic_y		BJT2dCoeffs[1]#define	ic_xd		BJT2dCoeffs[2]#define	ic_x2		BJT2dCoeffs[3]#define	ic_y2		BJT2dCoeffs[4]#define	ic_w2		BJT2dCoeffs[5]#define	ic_xy		BJT2dCoeffs[6]#define	ic_yw		BJT2dCoeffs[7]#define	ic_xw		BJT2dCoeffs[8]#define	ic_x3		BJT2dCoeffs[9]#define	ic_y3		BJT2dCoeffs[10]#define	ic_w3		BJT2dCoeffs[11]#define	ic_x2w		BJT2dCoeffs[12]#define	ic_x2y		BJT2dCoeffs[13]#define	ic_y2w		BJT2dCoeffs[14]#define	ic_xy2		BJT2dCoeffs[15]#define	ic_xw2		BJT2dCoeffs[16]#define	ic_yw2		BJT2dCoeffs[17]#define	ic_xyw		BJT2dCoeffs[18]#define	ib_x		BJT2dCoeffs[19]#define	ib_y		BJT2dCoeffs[20]#define	ib_x2		BJT2dCoeffs[21]#define	ib_y2		BJT2dCoeffs[22]#define	ib_xy		BJT2dCoeffs[23]#define	ib_x3		BJT2dCoeffs[24]#define	ib_y3		BJT2dCoeffs[25]#define	ib_x2y		BJT2dCoeffs[26]#define	ib_xy2		BJT2dCoeffs[27]#define	ibb_x		BJT2dCoeffs[28]#define	ibb_y		BJT2dCoeffs[29]#define	ibb_z		BJT2dCoeffs[30]#define	ibb_x2		BJT2dCoeffs[31]#define	ibb_y2		BJT2dCoeffs[32]#define	ibb_z2		BJT2dCoeffs[33]#define	ibb_xy		BJT2dCoeffs[34]#define	ibb_yz		BJT2dCoeffs[35]#define	ibb_xz		BJT2dCoeffs[36]#define	ibb_x3		BJT2dCoeffs[37]#define	ibb_y3		BJT2dCoeffs[38]#define	ibb_z3		BJT2dCoeffs[39]#define	ibb_x2z		BJT2dCoeffs[40]#define	ibb_x2y		BJT2dCoeffs[41]#define	ibb_y2z		BJT2dCoeffs[42]#define	ibb_xy2		BJT2dCoeffs[43]#define	ibb_xz2		BJT2dCoeffs[44]#define	ibb_yz2		BJT2dCoeffs[45]#define	ibb_xyz		BJT2dCoeffs[46]#define	qbe_x		BJT2dCoeffs[47]#define	qbe_y		BJT2dCoeffs[48]#define	qbe_x2		BJT2dCoeffs[49]#define	qbe_y2		BJT2dCoeffs[50]#define	qbe_xy		BJT2dCoeffs[51]#define	qbe_x3		BJT2dCoeffs[52]#define	qbe_y3		BJT2dCoeffs[53]#define	qbe_x2y		BJT2dCoeffs[54]#define	qbe_xy2		BJT2dCoeffs[55]#define	capbc1		BJT2dCoeffs[56]#define	capbc2		BJT2dCoeffs[57]#define	capbc3		BJT2dCoeffs[58]#define	capbx1		BJT2dCoeffs[59]#define	capbx2		BJT2dCoeffs[60]#define	capbx3		BJT2dCoeffs[61]#define	capsc1		BJT2dCoeffs[62]#define	capsc2		BJT2dCoeffs[63]#define	capsc3		BJT2dCoeffs[64]#endif/* indices to array of BJT2 noise sources */#define BJT2RCNOIZ       0#define BJT2RBNOIZ       1#define BJT2_RE_NOISE       2#define BJT2ICNOIZ       3#define BJT2IBNOIZ       4#define BJT2FLNOIZ 5#define BJT2TOTNOIZ    6#define BJT2NSRCS     7     /* the number of BJT2 noise sources */#ifndef NONOISE      double BJT2nVar[NSTATVARS][BJT2NSRCS];#else /*NONOISE*/      double **BJT2nVar;#endif /*NONOISE*//* the above to avoid allocating memory when it is not needed */} BJT2instance ;/* entries in the state vector for bjt2: */#define BJT2vbe BJT2state#define BJT2vbc BJT2state+1#define BJT2cc BJT2state+2#define BJT2cb BJT2state+3#define BJT2gpi BJT2state+4#define BJT2gmu BJT2state+5#define BJT2gm BJT2state+6#define BJT2go BJT2state+7#define BJT2qbe BJT2state+8#define BJT2cqbe BJT2state+9#define BJT2qbc BJT2state+10#define BJT2cqbc BJT2state+11#define BJT2qsub BJT2state+12#define BJT2cqsub BJT2state+13#define BJT2qbx BJT2state+14#define BJT2cqbx BJT2state+15#define BJT2gx BJT2state+16#define BJT2cexbc BJT2state+17#define BJT2geqcb BJT2state+18#define BJT2gcsub BJT2state+19#define BJT2geqbx BJT2state+20#define BJT2vsub BJT2state+21

⌨️ 快捷键说明

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