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