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