Choose better interpolation and default parameters
This commit is contained in:
parent
729eac4e84
commit
3ee3ab39a9
|
|
@ -890,13 +890,13 @@ scalef(double nf2, double vgst)
|
||||||
static double
|
static double
|
||||||
cweakinv(double slope, double shift, double vgst, double vds, double lambda, double beta, double vt, double mtr)
|
cweakinv(double slope, double shift, double vgst, double vds, double lambda, double beta, double vt, double mtr)
|
||||||
{
|
{
|
||||||
vgst += shift * (1 - scalef(2, vgst));
|
vgst += shift * (1 - scalef(0.5, vgst));
|
||||||
double n = slope / 2.3 / 0.0256; /* Tsividis, p. 208 */
|
double n = slope / 2.3 / 0.0256; /* Tsividis, p. 208 */
|
||||||
double n1 = n + (1 - n) * scalef(2, vgst); /* n < n1 < 1 */
|
double n1 = n + (1 - n) * scalef(1, vgst); /* n < n1 < 1 */
|
||||||
double first = log(1 + exp(vgst / (2 * n1 * vt)));
|
double first = log(1 + exp(vgst / (2 * n1 * vt)));
|
||||||
double second = log(1 + exp((vgst - vds * mtr * n1) / (2 * n1 * vt)));
|
double second = log(1 + exp((vgst - vds * mtr * n1) / (2 * n1 * vt)));
|
||||||
double cds =
|
double cds =
|
||||||
beta * n1 * 2 * vt * vt * (1 + scalef(2, vgst) * lambda * vds) *
|
beta * n1 * 2 * vt * vt * (1 + scalef(1, vgst) * lambda * vds) *
|
||||||
(first * first - second * second);
|
(first * first - second * second);
|
||||||
return cds;
|
return cds;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue