mos1...3: set channel thermal noise to 0 in subthreshold range for nlev=3
This commit is contained in:
parent
f44a0ede08
commit
02a5cd5ea6
|
|
@ -128,12 +128,13 @@ MOS1noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt,
|
||||||
/* linear region */
|
/* linear region */
|
||||||
alpha = 1.0 - (vds*inst->MOS1mode/(model->MOS1type*inst->MOS1vdsat));
|
alpha = 1.0 - (vds*inst->MOS1mode/(model->MOS1type*inst->MOS1vdsat));
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
alpha = 0.0;
|
|
||||||
}
|
|
||||||
beta = inst->MOS1tTransconductance * inst->MOS1m *
|
beta = inst->MOS1tTransconductance * inst->MOS1m *
|
||||||
inst->MOS1w/(inst->MOS1l - 2 * model->MOS1latDiff);
|
inst->MOS1w/(inst->MOS1l - 2 * model->MOS1latDiff);
|
||||||
Sid = 2.0 / 3.0 * beta * vgst * (1.0+alpha+alpha*alpha) / (1.0+alpha) * model->MOS1gdsnoi;
|
Sid = 2.0 / 3.0 * beta * vgst * (1.0+alpha+alpha*alpha) / (1.0+alpha) * model->MOS1gdsnoi;
|
||||||
|
} else {
|
||||||
|
/* subthreshold region */
|
||||||
|
Sid = 0.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NevalSrcInstanceTemp( & noizDens[MOS1IDNOIZ], & lnNdens[MOS1IDNOIZ],
|
NevalSrcInstanceTemp( & noizDens[MOS1IDNOIZ], & lnNdens[MOS1IDNOIZ],
|
||||||
|
|
|
||||||
|
|
@ -117,12 +117,13 @@ MOS2noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt,
|
||||||
/* linear region */
|
/* linear region */
|
||||||
alpha = 1.0 - (vds*inst->MOS2mode/(model->MOS2type*inst->MOS2vdsat));
|
alpha = 1.0 - (vds*inst->MOS2mode/(model->MOS2type*inst->MOS2vdsat));
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
alpha = 0.0;
|
|
||||||
}
|
|
||||||
beta = inst->MOS2tTransconductance * inst->MOS2m *
|
beta = inst->MOS2tTransconductance * inst->MOS2m *
|
||||||
inst->MOS2w/(inst->MOS2l - 2 * model->MOS2latDiff);
|
inst->MOS2w/(inst->MOS2l - 2 * model->MOS2latDiff);
|
||||||
Sid = 2.0 / 3.0 * beta * vgst * (1.0+alpha+alpha*alpha) / (1.0+alpha) * model->MOS2gdsnoi;
|
Sid = 2.0 / 3.0 * beta * vgst * (1.0+alpha+alpha*alpha) / (1.0+alpha) * model->MOS2gdsnoi;
|
||||||
|
} else {
|
||||||
|
/* subthreshold region */
|
||||||
|
Sid = 0.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NevalSrcInstanceTemp( & noizDens[MOS2IDNOIZ], & lnNdens[MOS2IDNOIZ],
|
NevalSrcInstanceTemp( & noizDens[MOS2IDNOIZ], & lnNdens[MOS2IDNOIZ],
|
||||||
|
|
|
||||||
|
|
@ -117,12 +117,13 @@ MOS3noise(int mode, int operation, GENmodel * genmodel, CKTcircuit * ckt,
|
||||||
/* linear region */
|
/* linear region */
|
||||||
alpha = 1.0 - (vds*inst->MOS3mode/(model->MOS3type*inst->MOS3vdsat));
|
alpha = 1.0 - (vds*inst->MOS3mode/(model->MOS3type*inst->MOS3vdsat));
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
alpha = 0.0;
|
|
||||||
}
|
|
||||||
beta = inst->MOS3tTransconductance * inst->MOS3m *
|
beta = inst->MOS3tTransconductance * inst->MOS3m *
|
||||||
inst->MOS3w/(inst->MOS3l - 2 * model->MOS3latDiff);
|
inst->MOS3w/(inst->MOS3l - 2 * model->MOS3latDiff);
|
||||||
Sid = 2.0 / 3.0 * beta * vgst * (1.0+alpha+alpha*alpha) / (1.0+alpha) * model->MOS3gdsnoi;
|
Sid = 2.0 / 3.0 * beta * vgst * (1.0+alpha+alpha*alpha) / (1.0+alpha) * model->MOS3gdsnoi;
|
||||||
|
} else {
|
||||||
|
/* subthreshold region */
|
||||||
|
Sid = 0.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NevalSrcInstanceTemp( & noizDens[MOS3IDNOIZ], & lnNdens[MOS3IDNOIZ],
|
NevalSrcInstanceTemp( & noizDens[MOS3IDNOIZ], & lnNdens[MOS3IDNOIZ],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue