diff --git a/src/spicelib/devices/dio/dioload.c b/src/spicelib/devices/dio/dioload.c index 0aac24827..f6a870efd 100644 --- a/src/spicelib/devices/dio/dioload.c +++ b/src/spicelib/devices/dio/dioload.c @@ -461,17 +461,13 @@ next1: deplcapSW = czof2SW*(here->DIOtF3SW+model->DIOgradingSWCoeff*vd/here->DIOtJctSWPot); } - /* - Dietmar: should not we also add a term (DIOcmetal+DIOcpoly)*vd to DIOcapCharge? - */ - if (model->DIOsoftRevRecParamGiven) { /* soft recovery model with VP given and TT!=0 (secured in setup) add only depletion capacitance. */ *(ckt->CKTstate0 + here->DIOcapCharge) = - deplcharge + deplchargeSW; + deplcharge + deplchargeSW + (here->DIOcmetal + here->DIOcpoly)*vd; capd = deplcap + deplcapSW + here->DIOcmetal + here->DIOcpoly; here->DIOcap = capd; diff --git a/src/spicelib/devices/dio/diompar.c b/src/spicelib/devices/dio/diompar.c index 26d1b0582..efbca845a 100644 --- a/src/spicelib/devices/dio/diompar.c +++ b/src/spicelib/devices/dio/diompar.c @@ -267,11 +267,11 @@ DIOmParam(int param, IFvalue *value, GENmodel *inModel) model->DIOwidthPolyGiven = TRUE; break; case DIO_MOD_XOM: - model->DIOmetalOxideThick = value->rValue * 1e-10; /* m */ + model->DIOmetalOxideThick = value->rValue * 1e-10; /* Angstrom -> m */ model->DIOmetalOxideThickGiven = TRUE; break; case DIO_MOD_XOI: - model->DIOpolyOxideThick = value->rValue * 1e-10; /* m */ + model->DIOpolyOxideThick = value->rValue * 1e-10; /* Angstrom -> m */ model->DIOpolyOxideThickGiven = TRUE; break; case DIO_MOD_XM: diff --git a/src/spicelib/devices/dio/diosetup.c b/src/spicelib/devices/dio/diosetup.c index d7b974716..f107c32cf 100644 --- a/src/spicelib/devices/dio/diosetup.c +++ b/src/spicelib/devices/dio/diosetup.c @@ -269,10 +269,10 @@ DIOsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states) model->DIOwidthPoly = 0.0; } if(!model->DIOmetalOxideThickGiven) { - model->DIOmetalOxideThick = 1e-06; /* m */ + model->DIOmetalOxideThick = 1e4; /* 10k Angstrom */ } if(!model->DIOpolyOxideThickGiven) { - model->DIOpolyOxideThick = 1e-06; /* m */ + model->DIOpolyOxideThick = 1e4; /* 10k Angstrom */ } if(!model->DIOmetalMaskOffsetGiven) { model->DIOmetalMaskOffset = 0.0;