Correct parameter handling for geometry scaled diode (level=3)
This commit is contained in:
parent
2a55f50192
commit
56c8a24dd7
|
|
@ -235,11 +235,11 @@ DIOmParam(int param, IFvalue *value, GENmodel *inModel)
|
|||
model->DIOwidthPolyGiven = TRUE;
|
||||
break;
|
||||
case DIO_MOD_XOM:
|
||||
model->DIOmetalOxideThick = value->rValue;
|
||||
model->DIOmetalOxideThick = value->rValue * 1e-10; /* m */
|
||||
model->DIOmetalOxideThickGiven = TRUE;
|
||||
break;
|
||||
case DIO_MOD_XOI:
|
||||
model->DIOpolyOxideThick = value->rValue;
|
||||
model->DIOpolyOxideThick = value->rValue * 1e-10; /* m */
|
||||
model->DIOpolyOxideThickGiven = TRUE;
|
||||
break;
|
||||
case DIO_MOD_XM:
|
||||
|
|
|
|||
|
|
@ -172,28 +172,28 @@ DIOsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
|
|||
model->DIOrecSatCur = 1e-14;
|
||||
}
|
||||
|
||||
if(!model->DIOlengthMetal) {
|
||||
if(!model->DIOlengthMetalGiven) {
|
||||
model->DIOlengthMetal = 0.0;
|
||||
}
|
||||
if(!model->DIOlengthPoly) {
|
||||
if(!model->DIOlengthPolyGiven) {
|
||||
model->DIOlengthPoly = 0.0;
|
||||
}
|
||||
if(!model->DIOwidthMetal) {
|
||||
if(!model->DIOwidthMetalGiven) {
|
||||
model->DIOwidthMetal = 0.0;
|
||||
}
|
||||
if(!model->DIOwidthPoly) {
|
||||
if(!model->DIOwidthPolyGiven) {
|
||||
model->DIOwidthPoly = 0.0;
|
||||
}
|
||||
if(!model->DIOmetalOxideThick) {
|
||||
model->DIOmetalOxideThick = 10e3;
|
||||
if(!model->DIOmetalOxideThickGiven) {
|
||||
model->DIOmetalOxideThick = 1e-06; /* m */
|
||||
}
|
||||
if(!model->DIOpolyOxideThick) {
|
||||
model->DIOpolyOxideThick = 10e3;
|
||||
if(!model->DIOpolyOxideThickGiven) {
|
||||
model->DIOpolyOxideThick = 1e-06; /* m */
|
||||
}
|
||||
if(!model->DIOmetalMaskOffset) {
|
||||
if(!model->DIOmetalMaskOffsetGiven) {
|
||||
model->DIOmetalMaskOffset = 0.0;
|
||||
}
|
||||
if(!model->DIOpolyMaskOffset) {
|
||||
if(!model->DIOpolyMaskOffsetGiven) {
|
||||
model->DIOpolyMaskOffset = 0.0;
|
||||
}
|
||||
|
||||
|
|
@ -232,10 +232,10 @@ DIOsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
|
|||
here->DIOjunctionCap = model->DIOjunctionCap * here->DIOarea;
|
||||
here->DIOjunctionSWCap = model->DIOjunctionSWCap * here->DIOpj;
|
||||
|
||||
here->DIOcmetal = 3.9 * 8.854214871e-12 / model->DIOmetalOxideThick
|
||||
here->DIOcmetal = CONSTepsSiO2 / model->DIOmetalOxideThick
|
||||
* (model->DIOwidthMetal * scale + model->DIOmetalMaskOffset)
|
||||
* (model->DIOlengthMetal * scale + model->DIOmetalMaskOffset);
|
||||
here->DIOcpoly = 3.9 * 8.854214871e-12 / model->DIOpolyOxideThick
|
||||
here->DIOcpoly = CONSTepsSiO2 / model->DIOpolyOxideThick
|
||||
* (model->DIOwidthPoly * scale + model->DIOpolyMaskOffset)
|
||||
* (model->DIOlengthPoly * scale + model->DIOpolyMaskOffset);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue