few corrections in noise model
This commit is contained in:
parent
ad16be59ba
commit
61ee68c782
|
|
@ -24,11 +24,11 @@ enum {
|
|||
HICUMRBINOIZ,
|
||||
HICUMRENOIZ,
|
||||
HICUMRSNOIZ,
|
||||
HICUMICNOIZ,
|
||||
HICUMIBCNOIZ,
|
||||
HICUMIAVLNOIZ,
|
||||
HICUMIBCINOIZ,
|
||||
HICUMIBEPNOIZ,
|
||||
HICUMIBCXNOIZ,
|
||||
HICUMITSNOIZ,
|
||||
HICUMIJSCNOIZ,
|
||||
HICUMFLBENOIZ,
|
||||
HICUMFLRENOIZ,
|
||||
HICUMTOTNOIZ,
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
|
||||
double Ibbp_Vbbp;
|
||||
double Icic_Vcic;
|
||||
double Ibpbi_Vbpbi;
|
||||
double Ieie_Veie;
|
||||
double Isis_Vsis;
|
||||
|
||||
|
|
@ -47,17 +48,18 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
static char *HICUMnNames[HICUMNSRCS] = {
|
||||
/* Note that we have to keep the order consistent with the
|
||||
strchr definitions in HICUMdefs.h */
|
||||
"_rc", /* noise due to rc */
|
||||
"_rb", /* noise due to rb */
|
||||
"_rbi", /* noise due to rbi */
|
||||
"_re", /* noise due to re */
|
||||
"_rs", /* noise due to rs */
|
||||
"_ic", /* noise due to ic */
|
||||
"_ibc", /* noise due to ib */
|
||||
"_ibep", /* noise due to ibep */
|
||||
"_its", /* noise due to iccp */
|
||||
"_rcx", /* thermal noise due to rcx */
|
||||
"_rbx", /* thermal noise due to rbx */
|
||||
"_rbi", /* thermal noise due to rbi */
|
||||
"_re", /* thermal noise due to re */
|
||||
"_rsu", /* thermal noise due to rsu */
|
||||
"_iavl", /* shot noise due to iavl */
|
||||
"_ibci", /* shot noise due to ibci */
|
||||
"_ibep", /* shot noise due to ibep */
|
||||
"_ijbcx", /* shot noise due to ijbcx */
|
||||
"_ijsc", /* shot noise due to ijsc */
|
||||
"_1overfbe", /* flicker (1/f) noise ibe */
|
||||
"_1overfbep", /* flicker (1/f) noise re */
|
||||
"_1overfre", /* flicker (1/f) noise re */
|
||||
"" /* total transistor noise */
|
||||
};
|
||||
|
||||
|
|
@ -65,8 +67,9 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
for (inst=HICUMinstances(model); inst != NULL;
|
||||
inst=HICUMnextInstance(inst)) {
|
||||
|
||||
Ibbp_Vbbp = 1/inst->HICUMrbx_t.rpart;
|
||||
Icic_Vcic = 1/inst->HICUMrcx_t.rpart;
|
||||
Ibbp_Vbbp = 1/inst->HICUMrbx_t.rpart;
|
||||
Ibpbi_Vbpbi = 1/inst->HICUMrbi;
|
||||
Ieie_Veie = 1/inst->HICUMre_t.rpart;
|
||||
Isis_Vsis = 1/model->HICUMrsu;
|
||||
|
||||
|
|
@ -105,7 +108,7 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
Icic_Vcic);
|
||||
|
||||
NevalSrc(&noizDens[HICUMRBNOIZ],&lnNdens[HICUMRBNOIZ],
|
||||
ckt,THERMNOISE,inst->HICUMbaseBPNode,inst->HICUMbaseNode,
|
||||
ckt,THERMNOISE,inst->HICUMbaseNode,inst->HICUMbaseBPNode,
|
||||
Ibbp_Vbbp);
|
||||
|
||||
NevalSrc(&noizDens[HICUMRBINOIZ],&lnNdens[HICUMRBINOIZ],
|
||||
|
|
@ -121,11 +124,11 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
Isis_Vsis);
|
||||
|
||||
|
||||
NevalSrc(&noizDens[HICUMICNOIZ],&lnNdens[HICUMICNOIZ],
|
||||
ckt,SHOTNOISE,inst->HICUMcollCINode,inst->HICUMemitEINode,
|
||||
*(ckt->CKTstate0 + inst->HICUMiciei));
|
||||
NevalSrc(&noizDens[HICUMIAVLNOIZ],&lnNdens[HICUMIAVLNOIZ],
|
||||
ckt,SHOTNOISE,inst->HICUMcollCINode,inst->HICUMbaseBINode,
|
||||
inst->HICUMiavl);
|
||||
|
||||
NevalSrc(&noizDens[HICUMIBCNOIZ],&lnNdens[HICUMIBCNOIZ],
|
||||
NevalSrc(&noizDens[HICUMIBCINOIZ],&lnNdens[HICUMIBCINOIZ],
|
||||
ckt,SHOTNOISE,inst->HICUMbaseBINode,inst->HICUMcollCINode,
|
||||
*(ckt->CKTstate0 + inst->HICUMibici));
|
||||
|
||||
|
|
@ -137,7 +140,7 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
ckt,SHOTNOISE,inst->HICUMbaseBPNode,inst->HICUMcollCINode,
|
||||
*(ckt->CKTstate0 + inst->HICUMibpci));
|
||||
|
||||
NevalSrc(&noizDens[HICUMITSNOIZ],&lnNdens[HICUMITSNOIZ],
|
||||
NevalSrc(&noizDens[HICUMIJSCNOIZ],&lnNdens[HICUMIJSCNOIZ],
|
||||
ckt,SHOTNOISE,inst->HICUMsubsSINode,inst->HICUMcollCINode,
|
||||
*(ckt->CKTstate0 + inst->HICUMisici));
|
||||
|
||||
|
|
@ -153,7 +156,7 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
log(MAX(noizDens[HICUMFLBENOIZ],N_MINLOG));
|
||||
|
||||
NevalSrc(&noizDens[HICUMFLRENOIZ], NULL, ckt,
|
||||
N_GAIN,inst->HICUMemitNode, inst->HICUMemitEINode,
|
||||
N_GAIN,inst->HICUMemitEINode, inst->HICUMemitNode,
|
||||
(double)0.0);
|
||||
noizDens[HICUMFLRENOIZ] *= inst->HICUMm * model->HICUMkfre *
|
||||
exp(model->HICUMafre *
|
||||
|
|
@ -168,11 +171,11 @@ HICUMnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata
|
|||
noizDens[HICUMRBINOIZ] +
|
||||
noizDens[HICUMRENOIZ] +
|
||||
noizDens[HICUMRSNOIZ] +
|
||||
noizDens[HICUMICNOIZ] +
|
||||
noizDens[HICUMIBCNOIZ] +
|
||||
noizDens[HICUMIAVLNOIZ] +
|
||||
noizDens[HICUMIBCINOIZ] +
|
||||
noizDens[HICUMIBEPNOIZ] +
|
||||
noizDens[HICUMIBCXNOIZ] +
|
||||
noizDens[HICUMITSNOIZ] +
|
||||
noizDens[HICUMIJSCNOIZ] +
|
||||
noizDens[HICUMFLBENOIZ] +
|
||||
noizDens[HICUMFLRENOIZ];
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue