add vdmos to the parameter list and search

This commit is contained in:
Holger Vogt 2018-04-02 11:05:04 +02:00 committed by rlar
parent b07661786f
commit f4853e85ca
4 changed files with 16 additions and 8 deletions

View File

@ -103,6 +103,9 @@ IFparm VDMOSmPTable[] = { /* model parameters */
IOP("tnom", VDMOS_MOD_TNOM, IF_REAL, "Parameter measurement temperature"),
IOP("kf", VDMOS_MOD_KF, IF_REAL, "Flicker noise coefficient"),
IOP("af", VDMOS_MOD_AF, IF_REAL, "Flicker noise exponent"),
IP("vdmosn", VDMOS_MOD_NMOS, IF_FLAG, "N type DMOSfet model"),
IP("vdmosp", VDMOS_MOD_PMOS, IF_FLAG, "P type DMOSfet model"),
IP("vdmos", VDMOS_MOD_DMOS, IF_REAL, "DMOS transistor"),
/* MOS1 */
IOPR("vt0", VDMOS_MOD_VTO, IF_REAL, "Threshold voltage"),
@ -125,8 +128,6 @@ IFparm VDMOSmPTable[] = { /* model parameters */
IOP("u0", VDMOS_MOD_U0, IF_REAL, "Surface mobility"),
IOPR("uo", VDMOS_MOD_U0, IF_REAL, "Surface mobility"),
IOP("fc", VDMOS_MOD_FC, IF_REAL, "Forward bias jct. fit parm."),
IP("nmos", VDMOS_MOD_NMOS, IF_FLAG, "N type MOSfet model"),
IP("pmos", VDMOS_MOD_PMOS, IF_FLAG, "P type MOSfet model"),
IOP("nsub", VDMOS_MOD_NSUB, IF_REAL, "Substrate doping"),
IOP("tpg", VDMOS_MOD_TPG, IF_INTEGER,"Gate type"),
IOP("nss", VDMOS_MOD_NSS, IF_REAL, "Surface state density")

View File

@ -408,6 +408,7 @@ enum {
VDMOS_MOD_KF,
VDMOS_MOD_AF,
VDMOS_MOD_TYPE,
VDMOS_MOD_DMOS,
};
/* device questions */

View File

@ -48,6 +48,12 @@ VDMOSmAsk(CKTcircuit *ckt, GENmodel *inst, int which, IFvalue *value)
case VDMOS_MOD_CBD:
value->rValue = model->VDMOScapBD;
return(OK);
case VDMOS_MOD_TYPE:
if (model->VDMOStype > 0)
value->sValue = "vdmosn";
else
value->sValue = "vdmosp";
return(OK);
case VDMOS_MOD_CBS:
value->rValue = model->VDMOScapBS;
return(OK);
@ -105,12 +111,6 @@ VDMOSmAsk(CKTcircuit *ckt, GENmodel *inst, int which, IFvalue *value)
case VDMOS_MOD_NSS:
value->rValue = model->VDMOSsurfaceStateDensity;
return(OK);
case VDMOS_MOD_TYPE:
if (model->VDMOStype > 0)
value->sValue = "nmos";
else
value->sValue = "pmos";
return(OK);
default:
return(E_BADPARM);
}

View File

@ -147,6 +147,12 @@ VDMOSmParam(int param, IFvalue *value, GENmodel *inModel)
model->VDMOSfNexp = value->rValue;
model->VDMOSfNexpGiven = TRUE;
break;
case VDMOS_MOD_DMOS:
if (value->iValue) {
model->VDMOStype = 1;
model->VDMOStypeGiven = TRUE;
}
break;
default:
return(E_BADPARM);
}