Browse Source

Fixed MOS3 scaling.

pre-master-46
Árpád Bűrmen 11 months ago
committed by Holger Vogt
parent
commit
cc8183a96c
  1. 14
      src/spicelib/devices/mos3/mos3noi.c

14
src/spicelib/devices/mos3/mos3noi.c

@ -134,9 +134,9 @@ MOS3noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt,
N_GAIN, inst->MOS3dNodePrime, inst->MOS3sNodePrime, N_GAIN, inst->MOS3dNodePrime, inst->MOS3sNodePrime,
(double) 0.0); (double) 0.0);
if (newcompat.s3) { if (newcompat.s3) {
noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef *
noizDens[MOS3FLNOIZ] *= inst->MOS3m * model->MOS3fNcoef *
exp(model->MOS3fNexp * exp(model->MOS3fNexp *
log(MAX(fabs(inst->MOS3cd), N_MINLOG))) /
log(MAX(fabs(inst->MOS3cd / inst->MOS3m), N_MINLOG))) /
(data->freq * (data->freq *
(inst->MOS3w - 2 * model->MOS3widthNarrow) * (inst->MOS3w - 2 * model->MOS3widthNarrow) *
(inst->MOS3l - 2 * model->MOS3latDiff) * (inst->MOS3l - 2 * model->MOS3latDiff) *
@ -144,18 +144,18 @@ MOS3noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt,
} else { } else {
switch (model->MOS3nlev) { switch (model->MOS3nlev) {
case 0: case 0:
noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef *
noizDens[MOS3FLNOIZ] *= inst->MOS3m * model->MOS3fNcoef *
exp(model->MOS3fNexp * exp(model->MOS3fNexp *
log(MAX(fabs(inst->MOS3cd), N_MINLOG))) /
log(MAX(fabs(inst->MOS3cd / inst->MOS3m), N_MINLOG))) /
(data->freq * (data->freq *
(inst->MOS3l - 2 * model->MOS3latDiff) * (inst->MOS3l - 2 * model->MOS3latDiff) *
(inst->MOS3l - 2 * model->MOS3latDiff) * (inst->MOS3l - 2 * model->MOS3latDiff) *
model->MOS3oxideCapFactor); model->MOS3oxideCapFactor);
break; break;
case 1: case 1:
noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef *
noizDens[MOS3FLNOIZ] *= inst->MOS3m * model->MOS3fNcoef *
exp(model->MOS3fNexp * exp(model->MOS3fNexp *
log(MAX(fabs(inst->MOS3cd), N_MINLOG))) /
log(MAX(fabs(inst->MOS3cd / inst->MOS3m), N_MINLOG))) /
(data->freq * (data->freq *
(inst->MOS3w - 2 * model->MOS3widthNarrow) * (inst->MOS3w - 2 * model->MOS3widthNarrow) *
(inst->MOS3l - 2 * model->MOS3latDiff) * (inst->MOS3l - 2 * model->MOS3latDiff) *
@ -163,7 +163,7 @@ MOS3noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt,
break; break;
case 2: case 3: case 2: case 3:
noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef * noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef *
inst->MOS3gm * inst->MOS3gm /
inst->MOS3gm * inst->MOS3gm / inst->MOS3m /
(pow(data->freq, model->MOS3fNexp) * (pow(data->freq, model->MOS3fNexp) *
(inst->MOS3w - 2 * model->MOS3widthNarrow) * (inst->MOS3w - 2 * model->MOS3widthNarrow) *
(inst->MOS3l - 2 * model->MOS3latDiff) * (inst->MOS3l - 2 * model->MOS3latDiff) *

Loading…
Cancel
Save