#include "spice.h"
#include "devdefs.h"
#include "optdefs.h"
#include <math.h>
#include "util.h"
#include "cktext.h"
Go to the source code of this file.
|
double | DEVlimvds (double vnew, double vold) |
|
double | DEVpnjlim (double vnew, double vold, double vt, double vcrit, int *icheck) |
|
double | DEVfetlim (double vnew, double vold, double vto) |
|
void | DEVqmeyer (double vgs, double vgd, double von, double vdsat, double *capgs, double *capgd, double *capgb, double phi, double cox) |
|
double | DEVpred (CKTcircuit *ckt, int loct) |
|
struct sCKTtable ** | DEVtableHead (GENERIC *ckt) |
|
double * | DEVpredNew (CKTcircuit *ckt) |
|
double DEVfetlim |
( |
double |
vnew, |
|
|
double |
vold, |
|
|
double |
vto |
|
) |
| |
Definition at line 89 of file devsup.c.
106 vtsthi =
FABS(2*(vold-vto))+2;
107 vtstlo = vtsthi/2 +2;
117 vnew = vold - vtstlo;
121 vnew =
MAX(vnew,vto+2);
126 if (delv >= vtsthi) {
127 vnew = vold + vtsthi;
135 vnew =
MAX(vnew,vto-.5);
139 vnew =
MIN(vnew,vto+4);
147 vnew = vold - vtsthi;
154 vnew = vold + vtstlo;
double DEVlimvds |
( |
double |
vnew, |
|
|
double |
vold |
|
) |
| |
Definition at line 21 of file devsup.c.
32 vnew =
MIN(vnew,(3 * vold) +2);
double DEVpnjlim |
( |
double |
vnew, |
|
|
double |
vold, |
|
|
double |
vt, |
|
|
double |
vcrit, |
|
|
int * |
icheck |
|
) |
| |
Definition at line 53 of file devsup.c.
66 if ((vnew > vcrit) && (
FABS(vnew - vold) > (vt + vt))) {
68 arg = 1 + (vnew - vold) / vt;
70 vnew = vold + vt * log(arg);
77 vnew = vt *log(vnew/vt);
Definition at line 226 of file devsup.c.
238 return( ( (1+xfact) * *(ckt->CKTstate1+loct) ) -
239 ( xfact * *(ckt->CKTstate2+loct) ) );
Definition at line 258 of file devsup.c.
269 double d1,d2,d3,d4,
c;
282 double c1,c2,c3,c12,c23,c123,dd1,dd2;
296 c = c1*c2*c3*c12*c23*c123;
302 diff[0] = dd1 * d2 * c2 * c23;
303 diff[1] = -dd1 * c12 * c123;
304 diff[2] = dd2 * d4 * c23 * c123;
305 diff[3] = -dd2 * d3 * c2 * c12;
347 diff[0] = d2*d3/((d1-d2)*(d1-d3));
348 diff[1] = d1*d3/((d2-d1)*(d2-d3));
349 diff[2] = d1*d2/((d3-d1)*(d3-d2));
356 diff[0] = 1 - diff[1];
357 diff[2] = diff[3] = 0;
void DEVqmeyer |
( |
double |
vgs, |
|
|
double |
vgd, |
|
|
double |
von, |
|
|
double |
vdsat, |
|
|
double * |
capgs, |
|
|
double * |
capgd, |
|
|
double * |
capgb, |
|
|
double |
phi, |
|
|
double |
cox |
|
) |
| |
Definition at line 167 of file devsup.c.
197 else if (vgst <= -
phi/2) {
198 *capgb = -vgst*cox/(2*
phi);
202 else if (vgst <= 0) {
203 *capgb = -vgst*cox/(2*
phi);
204 *capgs = vgst*cox/(1.5*
phi)+cox/3;
215 vddif = 2.0*vdsat-vds;
217 vddif2 = vddif*vddif;
218 *capgd = cox*(1.0-vdsat*vdsat/vddif2)/3;
219 *capgs = cox*(1.0-vddif1*vddif1/vddif2)/3;