|
|
@ -297,21 +297,17 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt) |
|
|
/* Calculate temperature dependent values for self-heating effect */ |
|
|
/* Calculate temperature dependent values for self-heating effect */ |
|
|
if (selfheat) { |
|
|
if (selfheat) { |
|
|
Beta = here->VDMOStTransconductance; |
|
|
Beta = here->VDMOStTransconductance; |
|
|
dBeta_dT = model->VDMOStransconductance * here->VDMOSm |
|
|
|
|
|
* model->VDMOSmu * pow(Temp/model->VDMOStnom, model->VDMOSmu) / Temp; |
|
|
|
|
|
|
|
|
dBeta_dT = Beta * model->VDMOSmu * pow(Temp, model->VDMOSmu-1) / pow(model->VDMOStnom, model->VDMOSmu); |
|
|
rd0T = here->VDMOSdrainResistance; |
|
|
rd0T = here->VDMOSdrainResistance; |
|
|
if (model->VDMOStexp0Given) |
|
|
if (model->VDMOStexp0Given) |
|
|
drd0T_dT = model->VDMOSdrainResistance / here->VDMOSm |
|
|
|
|
|
* model->VDMOStexp0 * pow(Temp/model->VDMOStnom, model->VDMOStexp0) / Temp; |
|
|
|
|
|
|
|
|
drd0T_dT = rd0T * model->VDMOStexp0 * pow(Temp, model->VDMOStexp0-1) / pow(model->VDMOStnom, model->VDMOStexp0); |
|
|
else |
|
|
else |
|
|
drd0T_dT = model->VDMOSdrainResistance / here->VDMOSm |
|
|
|
|
|
* (model->VDMOStrd1 + 2 * model->VDMOStrd2 * (Temp - model->VDMOStnom)); |
|
|
|
|
|
|
|
|
drd0T_dT = rd0T * (model->VDMOStrd1 + model->VDMOStrd2*(2*model->VDMOStnom*Temp - model->VDMOStnom*model->VDMOStnom)); |
|
|
rd1T = 0.0; |
|
|
rd1T = 0.0; |
|
|
drd1T_dT = 0.0; |
|
|
drd1T_dT = 0.0; |
|
|
if (model->VDMOSqsGiven) { |
|
|
if (model->VDMOSqsGiven) { |
|
|
rd1T = here->VDMOSqsResistance; |
|
|
rd1T = here->VDMOSqsResistance; |
|
|
drd1T_dT = model->VDMOSqsResistance / here->VDMOSm |
|
|
|
|
|
* model->VDMOStexp1 * pow(Temp/model->VDMOStnom, model->VDMOStexp1) / Temp; |
|
|
|
|
|
|
|
|
drd1T_dT = rd1T * model->VDMOStexp1 * pow(Temp, model->VDMOStexp1-1) / pow(model->VDMOStnom, model->VDMOStexp1); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
Beta = here->VDMOStTransconductance; |
|
|
Beta = here->VDMOStTransconductance; |
|
|
|