From cc8183a96cb6eec04ed4ed456634aec9b7ba7554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81rp=C3=A1d=20B=C5=B1rmen?= Date: Fri, 18 Apr 2025 13:22:06 +0200 Subject: [PATCH] Fixed MOS3 scaling. --- src/spicelib/devices/mos3/mos3noi.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/spicelib/devices/mos3/mos3noi.c b/src/spicelib/devices/mos3/mos3noi.c index 4787fa335..65afec9e7 100644 --- a/src/spicelib/devices/mos3/mos3noi.c +++ b/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, (double) 0.0); if (newcompat.s3) { - noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef * + noizDens[MOS3FLNOIZ] *= inst->MOS3m * model->MOS3fNcoef * exp(model->MOS3fNexp * - log(MAX(fabs(inst->MOS3cd), N_MINLOG))) / + log(MAX(fabs(inst->MOS3cd / inst->MOS3m), N_MINLOG))) / (data->freq * (inst->MOS3w - 2 * model->MOS3widthNarrow) * (inst->MOS3l - 2 * model->MOS3latDiff) * @@ -144,18 +144,18 @@ MOS3noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt, } else { switch (model->MOS3nlev) { case 0: - noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef * + noizDens[MOS3FLNOIZ] *= inst->MOS3m * model->MOS3fNcoef * exp(model->MOS3fNexp * - log(MAX(fabs(inst->MOS3cd), N_MINLOG))) / + log(MAX(fabs(inst->MOS3cd / inst->MOS3m), N_MINLOG))) / (data->freq * (inst->MOS3l - 2 * model->MOS3latDiff) * (inst->MOS3l - 2 * model->MOS3latDiff) * model->MOS3oxideCapFactor); break; case 1: - noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef * + noizDens[MOS3FLNOIZ] *= inst->MOS3m * model->MOS3fNcoef * exp(model->MOS3fNexp * - log(MAX(fabs(inst->MOS3cd), N_MINLOG))) / + log(MAX(fabs(inst->MOS3cd / inst->MOS3m), N_MINLOG))) / (data->freq * (inst->MOS3w - 2 * model->MOS3widthNarrow) * (inst->MOS3l - 2 * model->MOS3latDiff) * @@ -163,7 +163,7 @@ MOS3noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt, break; case 2: case 3: noizDens[MOS3FLNOIZ] *= model->MOS3fNcoef * - inst->MOS3gm * inst->MOS3gm / + inst->MOS3gm * inst->MOS3gm / inst->MOS3m / (pow(data->freq, model->MOS3fNexp) * (inst->MOS3w - 2 * model->MOS3widthNarrow) * (inst->MOS3l - 2 * model->MOS3latDiff) *