Browse Source

VDMOS few model parameter default corrections

pre-master-46
dwarning 6 years ago
committed by Holger Vogt
parent
commit
f2e902b2bb
  1. 2
      src/spicelib/devices/vdmos/vdmos.c
  2. 6
      src/spicelib/devices/vdmos/vdmosmask.c
  3. 12
      src/spicelib/devices/vdmos/vdmosset.c

2
src/spicelib/devices/vdmos/vdmos.c

@ -117,9 +117,9 @@ IFparm VDMOSmPTable[] = { /* model parameters */
IOP("vj", VDIO_MOD_VJ, IF_REAL, "Body diode junction potential"), IOP("vj", VDIO_MOD_VJ, IF_REAL, "Body diode junction potential"),
/* body diode capacitance (e.g. source-drain capacitance) */ /* body diode capacitance (e.g. source-drain capacitance) */
IOP("fc", VDIO_MOD_FC, IF_REAL, "Body diode coefficient for forward-bias depletion capacitance formula"),
IOPA("cjo", VDIO_MOD_CJ, IF_REAL, "Zero-bias body diode junction capacitance"), IOPA("cjo", VDIO_MOD_CJ, IF_REAL, "Zero-bias body diode junction capacitance"),
IOP("m", VDIO_MOD_MJ, IF_REAL, "Body diode grading coefficient"), IOP("m", VDIO_MOD_MJ, IF_REAL, "Body diode grading coefficient"),
IOP("fc", VDIO_MOD_FC, IF_REAL, "Body diode coefficient for forward-bias depletion capacitance formula"),
/* gate-source and gate-drain capacitances */ /* gate-source and gate-drain capacitances */
IOPA("cgdmin", VDMOS_MOD_CGDMIN, IF_REAL, "Minimum non-linear G-D capacitance"), IOPA("cgdmin", VDMOS_MOD_CGDMIN, IF_REAL, "Minimum non-linear G-D capacitance"),

6
src/spicelib/devices/vdmos/vdmosmask.c

@ -101,6 +101,9 @@ VDMOSmAsk(CKTcircuit *ckt, GENmodel *inst, int which, IFvalue *value)
case VDIO_MOD_MJ: case VDIO_MOD_MJ:
value->rValue = model->VDIOgradCoeff; value->rValue = model->VDIOgradCoeff;
return(OK); return(OK);
case VDIO_MOD_FC:
value->rValue = model->VDIOdepletionCapCoeff;
return(OK);
case VDIO_MOD_BV: case VDIO_MOD_BV:
value->rValue = model->VDIObv; value->rValue = model->VDIObv;
return(OK); return(OK);
@ -113,9 +116,6 @@ VDMOSmAsk(CKTcircuit *ckt, GENmodel *inst, int which, IFvalue *value)
case VDMOS_MOD_RDS: case VDMOS_MOD_RDS:
value->rValue = model->VDMOSrds; value->rValue = model->VDMOSrds;
return(OK); return(OK);
case VDIO_MOD_FC:
value->rValue = model->VDIOdepletionCapCoeff;
return(OK);
case VDIO_MOD_TT: case VDIO_MOD_TT:
value->rValue = model->VDIOtransitTime; value->rValue = model->VDIOtransitTime;
return(OK); return(OK);

12
src/spicelib/devices/vdmos/vdmosset.c

@ -31,18 +31,21 @@ VDMOSsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt,
if (!model->VDMOStypeGiven) if (!model->VDMOStypeGiven)
model->VDMOStype = NMOS; model->VDMOStype = NMOS;
if (!model->VDIOjctSatCurGiven)
model->VDIOjctSatCur = 1e-14;
if (!model->VDMOStransconductanceGiven) if (!model->VDMOStransconductanceGiven)
model->VDMOStransconductance = 1; model->VDMOStransconductance = 1;
if (!model->VDMOSvth0Given) if (!model->VDMOSvth0Given)
model->VDMOSvth0 = 0; model->VDMOSvth0 = 0;
if (!model->VDIOjctSatCurGiven)
model->VDIOjctSatCur = 1e-14;
if (!model->VDIOjunctionPotGiven) if (!model->VDIOjunctionPotGiven)
model->VDIOjunctionPot = .8; model->VDIOjunctionPot = .8;
if (!model->VDIOjunctionCapGiven)
model->VDIOjunctionCap = 0.;
if (!model->VDIOgradCoeffGiven) if (!model->VDIOgradCoeffGiven)
model->VDIOgradCoeff = .5; model->VDIOgradCoeff = .5;
@ -118,6 +121,9 @@ VDMOSsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt,
if (!model->VDIOegGiven) if (!model->VDIOegGiven)
model->VDIOeg = 1.11; model->VDIOeg = 1.11;
if (!model->VDIOxtiGiven)
model->VDIOxti = 3.0;
if (!model->VDMOSrthjcGiven) if (!model->VDMOSrthjcGiven)
model->VDMOSrthjc = 1.0e-03; model->VDMOSrthjc = 1.0e-03;

Loading…
Cancel
Save