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

📄 bjtdefs.h

📁 支持数字元件仿真的SPICE插件
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1985 Thomas L. Quarles */#ifndef BJT#define BJT "BJTdefs.h $Revision: 1.1 $ on $Date: 91/04/02 11:25:10 $ "#include "CKTdefs.h"#include "IFsim.h"#include "GENdefs.h"#include "complex.h"/* structures to describe Bipolar Junction Transistors *//* data needed to describe a single instance */typedef struct sBJTinstance {    struct sBJTmodel *BJTmodPtr;    /* backpointer to model */    struct sBJTinstance *BJTnextInstance;   /* pointer to next instance of                                             * current model*/    IFuid BJTname;  /* pointer to character string naming this instance */    int BJTcolNode; /* number of collector node of bjt */    int BJTbaseNode;    /* number of base node of bjt */    int BJTemitNode;    /* number of emitter node of bjt */    int BJTsubstNode;   /* number of substrate node of bjt */    int BJTcolPrimeNode;    /* number of internal collector node of bjt */    int BJTbasePrimeNode;   /* number of internal base node of bjt */    int BJTemitPrimeNode;   /* number of internal emitter node of bjt */    double BJTarea; /* area factor for the bjt */    double BJTicVBE;    /* initial condition voltage B-E*/    double BJTicVCE;    /* initial condition voltage C-E*/    double BJTtemp;     /* instance temperature */    double BJTtSatCur;  /* temperature adjusted saturation current */    double BJTtBetaF;   /* temperature adjusted forward beta */    double BJTtBetaR;   /* temperature adjusted reverse beta */    double BJTtBEleakCur;   /* temperature adjusted B-E leakage current */    double BJTtBCleakCur;   /* temperature adjusted B-C leakage current */    double BJTtBEcap;   /* temperature adjusted B-E capacitance */    double BJTtBEpot;   /* temperature adjusted B-E potential */    double BJTtBCcap;   /* temperature adjusted B-C capacitance */    double BJTtBCpot;   /* temperature adjusted B-C potential */    double BJTtDepCap;  /* temperature adjusted join point in diode curve */    double BJTtf1;      /* temperature adjusted polynomial coefficient */    double BJTtf4;      /* temperature adjusted polynomial coefficient */    double BJTtf5;      /* temperature adjusted polynomial coefficient */    double BJTtVcrit;   /* temperature adjusted critical voltage */    double *BJTcolColPrimePtr;  /* pointer to sparse matrix at                             * (collector,collector prime) */    double *BJTbaseBasePrimePtr;    /* pointer to sparse matrix at                             * (base,base prime) */    double *BJTemitEmitPrimePtr;    /* pointer to sparse matrix at                             * (emitter,emitter prime) */    double *BJTcolPrimeColPtr;  /* pointer to sparse matrix at                             * (collector prime,collector) */    double *BJTcolPrimeBasePrimePtr;    /* pointer to sparse matrix at                             * (collector prime,base prime) */    double *BJTcolPrimeEmitPrimePtr;    /* pointer to sparse matrix at                             * (collector prime,emitter prime) */    double *BJTbasePrimeBasePtr;    /* pointer to sparse matrix at                             * (base prime,base ) */    double *BJTbasePrimeColPrimePtr;    /* pointer to sparse matrix at                             * (base prime,collector prime) */    double *BJTbasePrimeEmitPrimePtr;   /* pointer to sparse matrix at                             * (base primt,emitter prime) */    double *BJTemitPrimeEmitPtr;    /* pointer to sparse matrix at                             * (emitter prime,emitter) */    double *BJTemitPrimeColPrimePtr;    /* pointer to sparse matrix at                             * (emitter prime,collector prime) */    double *BJTemitPrimeBasePrimePtr;   /* pointer to sparse matrix at                             * (emitter prime,base prime) */    double *BJTcolColPtr;   /* pointer to sparse matrix at                             * (collector,collector) */    double *BJTbaseBasePtr; /* pointer to sparse matrix at                             * (base,base) */    double *BJTemitEmitPtr; /* pointer to sparse matrix at                             * (emitter,emitter) */    double *BJTcolPrimeColPrimePtr; /* pointer to sparse matrix at                             * (collector prime,collector prime) */    double *BJTbasePrimeBasePrimePtr;   /* pointer to sparse matrix at                             * (base prime,base prime) */    double *BJTemitPrimeEmitPrimePtr;   /* pointer to sparse matrix at                             * (emitter prime,emitter prime) */    double *BJTsubstSubstPtr;   /* pointer to sparse matrix at                             * (substrate,substrate) */    double *BJTcolPrimeSubstPtr;    /* pointer to sparse matrix at                             * (collector prime,substrate) */    double *BJTsubstColPrimePtr;    /* pointer to sparse matrix at                             * (substrate,collector prime) */    double *BJTbaseColPrimePtr; /* pointer to sparse matrix at                             * (base,collector prime) */    double *BJTcolPrimeBasePtr; /* pointer to sparse matrix at                             * (collector prime,base) */    int BJTstate; /* pointer to start of state vector for bjt *//* entries in the state vector for bjt: */#define BJTvbe BJTstate#define BJTvbc BJTstate+1#define BJTcc BJTstate+2#define BJTcb BJTstate+3#define BJTgpi BJTstate+4#define BJTgmu BJTstate+5#define BJTgm BJTstate+6#define BJTgo BJTstate+7#define BJTqbe BJTstate+8#define BJTcqbe BJTstate+9#define BJTqbc BJTstate+10#define BJTcqbc BJTstate+11#define BJTqcs BJTstate+12#define BJTcqcs BJTstate+13#define BJTqbx BJTstate+14#define BJTcqbx BJTstate+15#define BJTgx BJTstate+16#define BJTcexbc BJTstate+17#define BJTgeqcb BJTstate+18#define BJTgccs BJTstate+19#define BJTgeqbx BJTstate+20#define BJTnumStates 21#define BJTsensxpbe BJTstate+21 /* charge sensitivities and their                   derivatives. +22 for the derivatives -                   pointer to the beginning of the array */#define BJTsensxpbc BJTstate+23#define BJTsensxpcs BJTstate+25#define BJTsensxpbx BJTstate+27#define BJTnumSenStates 8    unsigned BJToff :1;   /* 'off' flag for bjt */    unsigned BJTtempGiven   :1; /* temperature given  for bjt instance*/    unsigned BJTareaGiven   :1; /* flag to indicate area was specified */    unsigned BJTicVBEGiven  :1; /* flag to indicate VBE init. cond. given */    unsigned BJTicVCEGiven  :1; /* flag to indicate VCE init. cond. given */    unsigned BJTsenPertFlag :1; /* indictes whether the the parameter of                        the particular instance is to be perturbed */    int  BJTsenParmNo;   /* parameter # for sensitivity use;            set equal to  0 if not a design parameter*/    double BJTcapbe;    double BJTcapbc;    double BJTcapcs;    double BJTcapbx;    double *BJTsens;#define BJTsenGpi BJTsens /* stores the perturbed values of gpi */#define BJTsenGmu BJTsens+5 /* stores the perturbed values of gmu */#define BJTsenGm BJTsens+10 /* stores the perturbed values of gm */#define BJTsenGo BJTsens+15 /* stores the perturbed values of go */#define BJTsenGx BJTsens+20 /* stores the perturbed values of gx */#define BJTsenCpi BJTsens+25 /* stores the perturbed values of cpi */#define BJTsenCmu BJTsens+30 /* stores the perturbed values of cmu */#define BJTsenCbx BJTsens+35 /* stores the perturbed values of cbx */#define BJTsenCmcb BJTsens+40 /* stores the perturbed values of cmcb */#define BJTsenCcs BJTsens+45 /* stores the perturbed values of ccs */#define BJTdphibedp BJTsens+51#define BJTdphibcdp BJTsens+52#define BJTdphicsdp BJTsens+53#define BJTdphibxdp BJTsens+54} BJTinstance ;/* per model data */typedef struct sBJTmodel {          /* model structure for a bjt */    int BJTmodType; /* type index of this device type */    struct sBJTmodel *BJTnextModel; /* pointer to next possible model in                                     * linked list */    BJTinstance * BJTinstances; /* pointer to list of instances                                 * that have this model */    IFuid BJTmodName; /* pointer to character string naming this model */    int BJTtype;    double BJTtnom; /* nominal temperature */    double BJTsatCur;   /* input - don't use */    double BJTbetaF;    /* input - don't use */    double BJTemissionCoeffF;    double BJTearlyVoltF;    double BJTrollOffF;    double BJTleakBEcurrent;    /* input - don't use */    double BJTc2;    double BJTleakBEemissionCoeff;    double BJTbetaR;    /* input - don't use */    double BJTemissionCoeffR;    double BJTearlyVoltR;    double BJTrollOffR;    double BJTleakBCcurrent;    /* input - don't use */    double BJTc4;    double BJTleakBCemissionCoeff;    double BJTbaseResist;    double BJTbaseCurrentHalfResist;    double BJTminBaseResist;    double BJTemitterResist;    double BJTcollectorResist;    double BJTdepletionCapBE;   /* input - don't use */    double BJTpotentialBE;  /* input - don't use */    double BJTjunctionExpBE;    double BJTtransitTimeF;    double BJTtransitTimeBiasCoeffF;    double BJTtransitTimeFVBC;    double BJTtransitTimeHighCurrentF;    double BJTexcessPhase;    double BJTdepletionCapBC;   /* input - don't use */    double BJTpotentialBC;  /* input - don't use */    double BJTjunctionExpBC;    double BJTbaseFractionBCcap;    double BJTtransitTimeR;    double BJTcapCS;    double BJTpotentialSubstrate;    double BJTexponentialSubstrate;    double BJTbetaExp;    double BJTenergyGap;    double BJTtempExpIS;    double BJTdepletionCapCoeff;    

⌨️ 快捷键说明

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