Browse Source

jfet: whitespace cleanup

pre-master-46
dwarning 13 years ago
committed by rlar
parent
commit
ef2614d014
  1. 19
      src/spicelib/devices/jfet/jfetmask.c
  2. 44
      src/spicelib/devices/jfet/jfetmpar.c
  3. 285
      src/spicelib/devices/jfet/jfetnoi.c
  4. 142
      src/spicelib/devices/jfet/jfetset.c

19
src/spicelib/devices/jfet/jfetmask.c

@ -2,8 +2,8 @@
Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1987 Mathew Lew and Thomas L. Quarles
Sydney University mods Copyright(c) 1989 Anthony E. Parker, David J. Skellern
Laboratory for Communication Science Engineering
Sydney University Department of Electrical Engineering, Australia
Laboratory for Communication Science Engineering
Sydney University Department of Electrical Engineering, Australia
**********/
/*
*/
@ -39,11 +39,11 @@ JFETmAsk(CKTcircuit *ckt, GENmodel *inModel, int which, IFvalue *value)
case JFET_MOD_LAMBDA:
value->rValue = model->JFETlModulation;
return(OK);
/* Modification for Sydney University JFET model */
case JFET_MOD_B:
value->rValue = model->JFETb;
return(OK);
/* end Sydney University mod */
/* Modification for Sydney University JFET model */
case JFET_MOD_B:
value->rValue = model->JFETb;
return(OK);
/* end Sydney University mod */
case JFET_MOD_RD:
value->rValue = model->JFETdrainResist;
return(OK);
@ -84,9 +84,9 @@ JFETmAsk(CKTcircuit *ckt, GENmodel *inModel, int which, IFvalue *value)
value->rValue = model->JFETbex;
return(OK);
case JFET_MOD_TYPE:
if (model->JFETtype == NJF)
if (model->JFETtype == NJF)
value->sValue = "njf";
else
else
value->sValue = "pjf";
return(OK);
default:
@ -94,4 +94,3 @@ JFETmAsk(CKTcircuit *ckt, GENmodel *inModel, int which, IFvalue *value)
}
/* NOTREACHED */
}

44
src/spicelib/devices/jfet/jfetmpar.c

@ -72,28 +72,28 @@ JFETmParam(int param, IFvalue *value, GENmodel *inModels)
model->JFETtype = PJF;
}
break;
case JFET_MOD_KF:
model->JFETfNcoefGiven = TRUE;
model->JFETfNcoef = value->rValue;
break;
case JFET_MOD_AF:
model->JFETfNexpGiven = TRUE;
model->JFETfNexp = value->rValue;
break;
/* Modification for Sydney University JFET model */
case JFET_MOD_B:
model->JFETbGiven = TRUE;
model->JFETb = value->rValue;
return(OK);
/* end Sydney University mod */
case JFET_MOD_TCV:
model->JFETtcvGiven = TRUE;
model->JFETtcv = value->rValue;
break;
case JFET_MOD_BEX:
model->JFETbexGiven = TRUE;
model->JFETbex = value->rValue;
break;
case JFET_MOD_KF:
model->JFETfNcoefGiven = TRUE;
model->JFETfNcoef = value->rValue;
break;
case JFET_MOD_AF:
model->JFETfNexpGiven = TRUE;
model->JFETfNexp = value->rValue;
break;
/* Modification for Sydney University JFET model */
case JFET_MOD_B:
model->JFETbGiven = TRUE;
model->JFETb = value->rValue;
return(OK);
/* end Sydney University mod */
case JFET_MOD_TCV:
model->JFETtcvGiven = TRUE;
model->JFETtcv = value->rValue;
break;
case JFET_MOD_BEX:
model->JFETbexGiven = TRUE;
model->JFETbex = value->rValue;
break;
default:
return(E_BADPARM);
}

285
src/spicelib/devices/jfet/jfetnoi.c

@ -21,7 +21,7 @@ Author: 1987 Gary W. Ng
int
JFETnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data,
JFETnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *data,
double *OnDens)
{
NOISEAN *job = (NOISEAN *) ckt->CKTcurJob;
@ -39,172 +39,165 @@ JFETnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Ndata *
/* define the names of the noise sources */
static char *JFETnNames[JFETNSRCS] = { /* Note that we have to keep the order */
"_rd", /* noise due to rd */ /* consistent with thestrchr definitions */
"_rs", /* noise due to rs */ /* in JFETdefs.h */
"_id", /* noise due to id */
"_1overf", /* flicker (1/f) noise */
"" /* total transistor noise */
"_rd", /* noise due to rd */ /* consistent with thestrchr definitions */
"_rs", /* noise due to rs */ /* in JFETdefs.h */
"_id", /* noise due to id */
"_1overf", /* flicker (1/f) noise */
"" /* total transistor noise */
};
for (model=firstModel; model != NULL; model=model->JFETnextModel) {
for (inst=model->JFETinstances; inst != NULL; inst=inst->JFETnextInstance) {
for (inst=model->JFETinstances; inst != NULL; inst=inst->JFETnextInstance) {
switch (operation) {
switch (operation) {
case N_OPEN:
case N_OPEN:
/* see if we have to to produce a summary report */
/* if so, name all the noise generators */
/* see if we have to to produce a summary report */
/* if so, name all the noise generators */
if (job->NStpsSm != 0) {
switch (mode) {
if (job->NStpsSm != 0) {
switch (mode) {
case N_DENS:
for (i=0; i < JFETNSRCS; i++) {
(void)sprintf(name,"onoise_%s%s",inst->JFETname,JFETnNames[i]);
case N_DENS:
for (i=0; i < JFETNSRCS; i++) {
(void)sprintf(name,"onoise_%s%s",inst->JFETname,JFETnNames[i]);
data->namelist = TREALLOC(IFuid, data->namelist, data->numPlots + 1);
if (!data->namelist) return(E_NOMEM);
SPfrontEnd->IFnewUid (ckt,
&(data->namelist[data->numPlots++]),
NULL, name, UID_OTHER, NULL);
/* we've added one more plot */
data->namelist = TREALLOC(IFuid, data->namelist, data->numPlots + 1);
if (!data->namelist) return(E_NOMEM);
SPfrontEnd->IFnewUid (ckt,
&(data->namelist[data->numPlots++]),
NULL, name, UID_OTHER, NULL);
/* we've added one more plot */
}
break;
case INT_NOIZ:
for (i=0; i < JFETNSRCS; i++) {
(void)sprintf(name,"onoise_total_%s%s",inst->JFETname,JFETnNames[i]);
}
break;
data->namelist = TREALLOC(IFuid, data->namelist, data->numPlots + 1);
if (!data->namelist) return(E_NOMEM);
SPfrontEnd->IFnewUid (ckt,
&(data->namelist[data->numPlots++]),
NULL, name, UID_OTHER, NULL);
/* we've added one more plot */
case INT_NOIZ:
for (i=0; i < JFETNSRCS; i++) {
(void)sprintf(name,"onoise_total_%s%s",inst->JFETname,JFETnNames[i]);
(void)sprintf(name,"inoise_total_%s%s",inst->JFETname,JFETnNames[i]);
data->namelist = TREALLOC(IFuid, data->namelist, data->numPlots + 1);
if (!data->namelist) return(E_NOMEM);
SPfrontEnd->IFnewUid (ckt,
&(data->namelist[data->numPlots++]),
NULL, name, UID_OTHER, NULL);
/* we've added one more plot */
data->namelist = TREALLOC(IFuid, data->namelist, data->numPlots + 1);
if (!data->namelist) return(E_NOMEM);
SPfrontEnd->IFnewUid (ckt,
&(data->namelist[data->numPlots++]),
NULL, name, UID_OTHER, NULL);
/* we've added one more plot */
}
break;
}
}
break;
case N_CALC:
switch (mode) {
(void)sprintf(name,"inoise_total_%s%s",inst->JFETname,JFETnNames[i]);
case N_DENS:
NevalSrc(&noizDens[JFETRDNOIZ],&lnNdens[JFETRDNOIZ],
ckt,THERMNOISE,inst->JFETdrainPrimeNode,inst->JFETdrainNode,
model->JFETdrainConduct * inst->JFETarea * inst->JFETm);
data->namelist = TREALLOC(IFuid, data->namelist, data->numPlots + 1);
if (!data->namelist) return(E_NOMEM);
SPfrontEnd->IFnewUid (ckt,
&(data->namelist[data->numPlots++]),
NULL, name, UID_OTHER, NULL);
/* we've added one more plot */
}
break;
}
}
break;
case N_CALC:
switch (mode) {
case N_DENS:
NevalSrc(&noizDens[JFETRDNOIZ],&lnNdens[JFETRDNOIZ],
ckt,THERMNOISE,inst->JFETdrainPrimeNode,inst->JFETdrainNode,
model->JFETdrainConduct * inst->JFETarea * inst->JFETm);
NevalSrc(&noizDens[JFETRSNOIZ],&lnNdens[JFETRSNOIZ],
ckt,THERMNOISE,inst->JFETsourcePrimeNode,
inst->JFETsourceNode,model->JFETsourceConduct
NevalSrc(&noizDens[JFETRSNOIZ],&lnNdens[JFETRSNOIZ],
ckt,THERMNOISE,inst->JFETsourcePrimeNode,
inst->JFETsourceNode,model->JFETsourceConduct
* inst->JFETarea * inst->JFETm);
NevalSrc(&noizDens[JFETIDNOIZ],&lnNdens[JFETIDNOIZ],
ckt,THERMNOISE,inst->JFETdrainPrimeNode,
inst->JFETsourcePrimeNode,
(2.0/3.0 * inst->JFETm * fabs(*(ckt->CKTstate0 + inst->JFETgm))));
NevalSrc(&noizDens[JFETFLNOIZ], NULL, ckt,
N_GAIN,inst->JFETdrainPrimeNode,
inst->JFETsourcePrimeNode, (double)0.0);
noizDens[JFETFLNOIZ] *= inst->JFETm * model->JFETfNcoef *
exp(model->JFETfNexp *
log(MAX(fabs(*(ckt->CKTstate0 + inst->JFETcd)),N_MINLOG))) /
data->freq;
lnNdens[JFETFLNOIZ] =
log(MAX(noizDens[JFETFLNOIZ],N_MINLOG));
noizDens[JFETTOTNOIZ] = noizDens[JFETRDNOIZ] +
noizDens[JFETRSNOIZ] +
noizDens[JFETIDNOIZ] +
noizDens[JFETFLNOIZ];
lnNdens[JFETTOTNOIZ] =
log(MAX(noizDens[JFETTOTNOIZ], N_MINLOG));
*OnDens += noizDens[JFETTOTNOIZ];
if (data->delFreq == 0.0) {
/* if we haven't done any previous integration, we need to */
/* initialize our "history" variables */
for (i=0; i < JFETNSRCS; i++) {
inst->JFETnVar[LNLSTDENS][i] = lnNdens[i];
}
/* clear out our integration variables if it's the first pass */
if (data->freq == job->NstartFreq) {
for (i=0; i < JFETNSRCS; i++) {
inst->JFETnVar[OUTNOIZ][i] = 0.0;
inst->JFETnVar[INNOIZ][i] = 0.0;
}
}
} else { /* data->delFreq != 0.0 (we have to integrate) */
for (i=0; i < JFETNSRCS; i++) {
if (i != JFETTOTNOIZ) {
tempOnoise = Nintegrate(noizDens[i], lnNdens[i],
inst->JFETnVar[LNLSTDENS][i], data);
tempInoise = Nintegrate(noizDens[i] * data->GainSqInv ,
lnNdens[i] + data->lnGainInv,
inst->JFETnVar[LNLSTDENS][i] + data->lnGainInv,
data);
inst->JFETnVar[LNLSTDENS][i] = lnNdens[i];
data->outNoiz += tempOnoise;
data->inNoise += tempInoise;
if (job->NStpsSm != 0) {
inst->JFETnVar[OUTNOIZ][i] += tempOnoise;
inst->JFETnVar[OUTNOIZ][JFETTOTNOIZ] += tempOnoise;
inst->JFETnVar[INNOIZ][i] += tempInoise;
inst->JFETnVar[INNOIZ][JFETTOTNOIZ] += tempInoise;
NevalSrc(&noizDens[JFETIDNOIZ],&lnNdens[JFETIDNOIZ],
ckt,THERMNOISE,inst->JFETdrainPrimeNode,
inst->JFETsourcePrimeNode,
(2.0/3.0 * inst->JFETm * fabs(*(ckt->CKTstate0 + inst->JFETgm))));
NevalSrc(&noizDens[JFETFLNOIZ], NULL, ckt,
N_GAIN,inst->JFETdrainPrimeNode,
inst->JFETsourcePrimeNode, (double)0.0);
noizDens[JFETFLNOIZ] *= inst->JFETm * model->JFETfNcoef *
exp(model->JFETfNexp *
log(MAX(fabs(*(ckt->CKTstate0 + inst->JFETcd)),N_MINLOG))) /
data->freq;
lnNdens[JFETFLNOIZ] =
log(MAX(noizDens[JFETFLNOIZ],N_MINLOG));
noizDens[JFETTOTNOIZ] = noizDens[JFETRDNOIZ] +
noizDens[JFETRSNOIZ] +
noizDens[JFETIDNOIZ] +
noizDens[JFETFLNOIZ];
lnNdens[JFETTOTNOIZ] =
log(MAX(noizDens[JFETTOTNOIZ], N_MINLOG));
*OnDens += noizDens[JFETTOTNOIZ];
if (data->delFreq == 0.0) {
/* if we haven't done any previous integration, we need to */
/* initialize our "history" variables */
for (i=0; i < JFETNSRCS; i++) {
inst->JFETnVar[LNLSTDENS][i] = lnNdens[i];
}
/* clear out our integration variables if it's the first pass */
if (data->freq == job->NstartFreq) {
for (i=0; i < JFETNSRCS; i++) {
inst->JFETnVar[OUTNOIZ][i] = 0.0;
inst->JFETnVar[INNOIZ][i] = 0.0;
}
}
} else { /* data->delFreq != 0.0 (we have to integrate) */
for (i=0; i < JFETNSRCS; i++) {
if (i != JFETTOTNOIZ) {
tempOnoise = Nintegrate(noizDens[i], lnNdens[i],
inst->JFETnVar[LNLSTDENS][i], data);
tempInoise = Nintegrate(noizDens[i] * data->GainSqInv ,
lnNdens[i] + data->lnGainInv,
inst->JFETnVar[LNLSTDENS][i] + data->lnGainInv,
data);
inst->JFETnVar[LNLSTDENS][i] = lnNdens[i];
data->outNoiz += tempOnoise;
data->inNoise += tempInoise;
if (job->NStpsSm != 0) {
inst->JFETnVar[OUTNOIZ][i] += tempOnoise;
inst->JFETnVar[OUTNOIZ][JFETTOTNOIZ] += tempOnoise;
inst->JFETnVar[INNOIZ][i] += tempInoise;
inst->JFETnVar[INNOIZ][JFETTOTNOIZ] += tempInoise;
}
}
}
}
if (data->prtSummary) {
for (i=0; i < JFETNSRCS; i++) { /* print a summary report */
data->outpVector[data->outNumber++] = noizDens[i];
}
}
break;
case INT_NOIZ: /* already calculated, just output */
if (job->NStpsSm != 0) {
for (i=0; i < JFETNSRCS; i++) {
data->outpVector[data->outNumber++] = inst->JFETnVar[OUTNOIZ][i];
data->outpVector[data->outNumber++] = inst->JFETnVar[INNOIZ][i];
}
} /* if */
break;
} /* switch (mode) */
break;
case N_CLOSE:
return (OK); /* do nothing, the main calling routine will close */
break; /* the plots */
} /* switch (operation) */
} /* for inst */
}
}
}
if (data->prtSummary) {
for (i=0; i < JFETNSRCS; i++) { /* print a summary report */
data->outpVector[data->outNumber++] = noizDens[i];
}
}
break;
case INT_NOIZ: /* already calculated, just output */
if (job->NStpsSm != 0) {
for (i=0; i < JFETNSRCS; i++) {
data->outpVector[data->outNumber++] = inst->JFETnVar[OUTNOIZ][i];
data->outpVector[data->outNumber++] = inst->JFETnVar[INNOIZ][i];
}
} /* if */
break;
} /* switch (mode) */
break;
case N_CLOSE:
return (OK); /* do nothing, the main calling routine will close */
break; /* the plots */
} /* switch (operation) */
} /* for inst */
} /* for model */
return(OK);
return(OK);
}

142
src/spicelib/devices/jfet/jfetset.c

@ -3,8 +3,8 @@ Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1985 Thomas L. Quarles
Modified: 2000 AlansFixes
Sydney University mods Copyright(c) 1989 Anthony E. Parker, David J. Skellern
Laboratory for Communication Science Engineering
Sydney University Department of Electrical Engineering, Australia
Laboratory for Communication Science Engineering
Sydney University Department of Electrical Engineering, Australia
**********/
#include "ngspice/ngspice.h"
@ -17,8 +17,8 @@ Sydney University mods Copyright(c) 1989 Anthony E. Parker, David J. Skellern
int
JFETsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
/* load the diode structure with those pointers needed later
* for fast matrix loading
/* load the diode structure with those pointers needed later
* for fast matrix loading
*/
{
JFETmodel *model = (JFETmodel*)inModel;
@ -62,25 +62,25 @@ JFETsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
if(!model->JFETdepletionCapCoeffGiven) {
model->JFETdepletionCapCoeff = .5;
}
if(!model->JFETfNcoefGiven) {
model->JFETfNcoef = 0;
}
if(!model->JFETfNexpGiven) {
model->JFETfNexp = 1;
}
/* Modification for Sydney University JFET model */
if(!model->JFETbGiven) {
model->JFETb = 1.0;
}
/* end Sydney University mod */
if(!model->JFETtcvGiven) {
model->JFETtcv = 0.0;
}
if(!model->JFETbexGiven) {
model->JFETbex = 0.0;
}
if(!model->JFETfNcoefGiven) {
model->JFETfNcoef = 0;
}
if(!model->JFETfNexpGiven) {
model->JFETfNexp = 1;
}
/* Modification for Sydney University JFET model */
if(!model->JFETbGiven) {
model->JFETb = 1.0;
}
/* end Sydney University mod */
if(!model->JFETtcvGiven) {
model->JFETtcv = 0.0;
}
if(!model->JFETbexGiven) {
model->JFETbex = 0.0;
}
if(model->JFETdrainResist != 0) {
model->JFETdrainConduct = 1/model->JFETdrainResist;
@ -96,7 +96,7 @@ JFETsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
/* loop through all the instances of the model */
for (here = model->JFETinstances; here != NULL ;
here=here->JFETnextInstance) {
if(!here->JFETareaGiven) {
here->JFETarea = 1;
}
@ -108,45 +108,45 @@ JFETsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
if(model->JFETsourceResist != 0) {
if(here->JFETsourcePrimeNode == 0) {
error = CKTmkVolt(ckt,&tmp,here->JFETname,"source");
if(error) return(error);
here->JFETsourcePrimeNode = tmp->number;
if (ckt->CKTcopyNodesets) {
CKTnode *tmpNode;
IFuid tmpName;
if (CKTinst2Node(ckt,here,3,&tmpNode,&tmpName)==OK) {
if (tmpNode->nsGiven) {
tmp->nodeset=tmpNode->nodeset;
tmp->nsGiven=tmpNode->nsGiven;
}
}
}
error = CKTmkVolt(ckt,&tmp,here->JFETname,"source");
if(error) return(error);
here->JFETsourcePrimeNode = tmp->number;
if (ckt->CKTcopyNodesets) {
CKTnode *tmpNode;
IFuid tmpName;
if (CKTinst2Node(ckt,here,3,&tmpNode,&tmpName)==OK) {
if (tmpNode->nsGiven) {
tmp->nodeset=tmpNode->nodeset;
tmp->nsGiven=tmpNode->nsGiven;
}
}
}
}
} else {
here->JFETsourcePrimeNode = here->JFETsourceNode;
}
if(model->JFETdrainResist != 0) {
if(here->JFETdrainPrimeNode == 0) {
error = CKTmkVolt(ckt,&tmp,here->JFETname,"drain");
if(error) return(error);
here->JFETdrainPrimeNode = tmp->number;
if (ckt->CKTcopyNodesets) {
CKTnode *tmpNode;
IFuid tmpName;
if (CKTinst2Node(ckt,here,1,&tmpNode,&tmpName)==OK) {
if (tmpNode->nsGiven) {
tmp->nodeset=tmpNode->nodeset;
tmp->nsGiven=tmpNode->nsGiven;
}
}
}
error = CKTmkVolt(ckt,&tmp,here->JFETname,"drain");
if(error) return(error);
here->JFETdrainPrimeNode = tmp->number;
if (ckt->CKTcopyNodesets) {
CKTnode *tmpNode;
IFuid tmpName;
if (CKTinst2Node(ckt,here,1,&tmpNode,&tmpName)==OK) {
if (tmpNode->nsGiven) {
tmp->nodeset=tmpNode->nodeset;
tmp->nsGiven=tmpNode->nsGiven;
}
}
}
}
} else {
here->JFETdrainPrimeNode = here->JFETdrainNode;
}
@ -190,24 +190,24 @@ JFETunsetup(GENmodel *inModel, CKTcircuit *ckt)
JFETinstance *here;
for (model = (JFETmodel *)inModel; model != NULL;
model = model->JFETnextModel)
model = model->JFETnextModel)
{
for (here = model->JFETinstances; here != NULL;
here=here->JFETnextInstance)
{
if (here->JFETsourcePrimeNode
&& here->JFETsourcePrimeNode != here->JFETsourceNode)
{
CKTdltNNum(ckt, here->JFETsourcePrimeNode);
here->JFETsourcePrimeNode = 0;
}
if (here->JFETdrainPrimeNode
&& here->JFETdrainPrimeNode != here->JFETdrainNode)
{
CKTdltNNum(ckt, here->JFETdrainPrimeNode);
here->JFETdrainPrimeNode = 0;
}
}
{
if (here->JFETsourcePrimeNode
&& here->JFETsourcePrimeNode != here->JFETsourceNode)
{
CKTdltNNum(ckt, here->JFETsourcePrimeNode);
here->JFETsourcePrimeNode = 0;
}
if (here->JFETdrainPrimeNode
&& here->JFETdrainPrimeNode != here->JFETdrainNode)
{
CKTdltNNum(ckt, here->JFETdrainPrimeNode);
here->JFETdrainPrimeNode = 0;
}
}
}
return OK;
}
Loading…
Cancel
Save