hisimhv1, hisim2, clean up unused variables

This commit is contained in:
dwarning 2014-05-18 15:16:41 +02:00 committed by rlar
parent 4d9ce25848
commit 5bb69f77d1
8 changed files with 81 additions and 70 deletions

View File

@ -59,7 +59,10 @@ int HSM2acLoad(
double grg = 0.0, pxcbdb_i = 0.0, pxcbsb_i = 0.0;
double Qi, Qi_dVgs, Qi_dVbs, Qi_dVds ;
double Qb, Qb_dVgs, Qb_dVbs, Qb_dVds ;
#ifdef DEBUG_HISIM2CGG
double Qb ;
#endif
double Qb_dVgs, Qb_dVbs, Qb_dVds ;
double tau ;
double taub ;
double Xd, Xd_dVgs, Xd_dVbs, Xd_dVds ;
@ -95,7 +98,9 @@ int HSM2acLoad(
Qi_dVds = here->HSM2_Qi_dVds ;
Qi_dVbs = here->HSM2_Qi_dVbs ;
#ifdef DEBUG_HISIM2CGG
Qb = here->HSM2_Qb ;
#endif
Qb_dVgs = here->HSM2_Qb_dVgs ;
Qb_dVds = here->HSM2_Qb_dVds ;
Qb_dVbs = here->HSM2_Qb_dVbs ;

View File

@ -898,17 +898,17 @@ int HSM2evaluate
double Chi_A=0.0, Chi_A_dVxb=0.0, Chi_A_dVgb =0.0 ;
double Chi_B=0.0, Chi_B_dVxb=0.0, Chi_B_dVgb =0.0 ;
double Chi_1=0.0, Chi_1_dVxb=0.0, Chi_1_dVgb =0.0 ;
double psi_B=0.0, arg_B =0.0 ;
/* double psi_B=0.0, arg_B =0.0 ;*/
double psi=0.0, psi_dVgb=0.0, psi_dVxb =0.0 ;
double Ps0_iniA_dVxb=0.0, Ps0_iniA_dVgb =0.0 ;
double Ps0_iniB_dVxb=0.0, Ps0_iniB_dVgb =0.0 ;
/* double Ps0_iniB_dVxb=0.0 , Ps0_iniB_dVgb =0.0 ;*/
double Psa_dVxb=0.0, Psa_dVgb=0.0, Ps0LD_dVxb=0.0, Ps0LD_dVgb =0.0 ;
double fs02_dVxb=0.0, fs02_dVgb =0.0 ;
double /*fs02_dVxb=0.0,*/ fs02_dVgb =0.0 ;
/* SCE LOOP */
double A =0.0, A_dVgs=0.0, A_dVds=0.0, A_dVbs =0.0 ;
int NNN =0 ;
double PS0_SCE=0 , PS0_SCE_dVgs = 0 , PS0_SCE_dVds = 0 , PS0_SCE_dVbs = 0 ;
/* double PS0_SCE=0 , PS0_SCE_dVgs = 0 , PS0_SCE_dVds = 0 , PS0_SCE_dVbs = 0 ;*/
double PS0Z_SCE=0 , PS0Z_SCE_dVgs = 0 , PS0Z_SCE_dVds = 0 , PS0Z_SCE_dVbs = 0 ;
/* double arg0 = 0.01 , arg1 = 0.04 ; */
double arg0 = 0.01 ;
@ -1563,11 +1563,11 @@ int HSM2evaluate
/**************************/
/* initial value for SCE LOOP */
PS0_SCE = Ps0_ini ;
/* PS0_SCE = Ps0_ini ;
PS0_SCE_dVds = Ps0_ini_dVds ;
PS0_SCE_dVgs = Ps0_ini_dVgs ;
PS0_SCE_dVbs = Ps0_ini_dVbs ;
*/
PS0Z_SCE = Ps0_ini ;
PS0Z_SCE_dVds = Ps0_ini_dVds ;
PS0Z_SCE_dVgs = Ps0_ini_dVgs ;
@ -2818,12 +2818,12 @@ int HSM2evaluate
PS0Z_SCE_dVbs = Ps0z_dVbs ;
PS0Z_SCE_dVds = Ps0z_dVds ;
PS0Z_SCE_dVgs = Ps0z_dVgs ;
/*
PS0_SCE = PS0Z_SCE - Pzadd ;
PS0_SCE_dVbs = Ps0_dVbs ;
PS0_SCE_dVds = Ps0_dVds ;
PS0_SCE_dVgs = Ps0_dVgs ;
*/
NNN += 1 ;
if( ( fabs(delta_PS0Z_SCE) > PS0_SCE_tol
@ -3321,12 +3321,12 @@ int HSM2evaluate
PS0Z_SCE_dVbs = Ps0z_dVbs ;
PS0Z_SCE_dVds = Ps0z_dVds ;
PS0Z_SCE_dVgs = Ps0z_dVgs ;
/*
PS0_SCE = PS0Z_SCE - Pzadd ;
PS0_SCE_dVbs = Ps0_dVbs ;
PS0_SCE_dVds = Ps0_dVds ;
PS0_SCE_dVgs = Ps0_dVgs ;
*/
NNN += 1 ;
@ -3775,12 +3775,12 @@ start_of_loopl:
PS0Z_SCE_dVbs = Ps0z_dVbs ;
PS0Z_SCE_dVds = Ps0z_dVds ;
PS0Z_SCE_dVgs = Ps0z_dVgs ;
/*
PS0_SCE = PS0Z_SCE - Pzadd ;
PS0_SCE_dVbs = Ps0_dVbs ;
PS0_SCE_dVds = Ps0_dVds ;
PS0_SCE_dVgs = Ps0_dVgs ;
*/
NNN += 1 ;
if( ( fabs(delta_PS0Z_SCE) > PS0_SCE_tol
@ -5623,17 +5623,17 @@ start_of_mobility:
psi_dVxb -= Chi_1_dVxb ;
psi += beta*0.1 ;
/*
psi_B = psi;
arg_B = psi*psi/(gamma*T0);
arg_B = psi*psi/(gamma*T0);*/
Chi_B = log(gamma*T0 + psi*psi) - log(cnst1over*T0) + beta*Vxbgmtcl;
Chi_B_dVgb = 2.0*psi*psi_dVgb/ (gamma*T0 + psi*psi);
Chi_B_dVxb = (gamma_dVxb*T0+2.0*psi*psi_dVxb)/(gamma*T0+psi*psi)
+ beta*Vxbgmtcl_dVxbgmt;
Ps0_iniB = Chi_B/beta - Vxbgmtcl ;
Ps0_iniB_dVgb = Chi_B_dVgb/beta;
/* Ps0_iniB_dVgb = Chi_B_dVgb/beta;
Ps0_iniB_dVxb = Chi_B_dVxb/beta- Vxbgmtcl_dVxbgmt;
*/
/* construction of Ps0LD by taking Ps0_iniB as an upper limit of Ps0_iniA
*
@ -5861,7 +5861,7 @@ start_of_mobility:
fs01_dVds = Ps0LD_dVds * fs01_dPs0 ;
fs01_dVgs = Ps0LD_dVgb * fs01_dPs0 ;
fs02_dVbs = Ps0LD_dVxb * fs02_dPs0 + fs02_dVbs ;
fs02_dVxb = Ps0LD_dVds * fs02_dPs0 ;
/* fs02_dVxb = Ps0LD_dVds * fs02_dPs0 ;*/
fs02_dVgb = Ps0LD_dVgb * fs02_dPs0 ;
/*-----------------------------------------------------------*

View File

@ -181,7 +181,7 @@ int HSM2load(
{
register HSM2model *model = (HSM2model*)inModel;
register HSM2instance *here;
HSM2binningParam *pParam;
/* HSM2binningParam *pParam;*/
double cbhat=0.0, cdrain=0.0, cdhat=0.0, cdreq=0.0, cgbhat=0.0, cgshat=0.0, cgdhat=0.0 ;
double Ibtot=0.0, Idtot=0.0, Igbtot=0.0, Igstot=0.0, Igdtot=0.0 ;
double ceq=0.0, ceqbd=0.0, ceqbs=0.0, ceqqb=0.0, ceqqd=0.0, ceqqg=0.0 ;
@ -204,7 +204,7 @@ int HSM2load(
double ivds=0.0, ivgs=0.0, ivbs=0.0 ;
double gjbs=0.0, gjbd=0.0, gcdbdb=0.0, gcsbsb=0.0, gcbbb=0.0, gcdbb=0.0, gcsbb=0.0, grg=0.0 ;
double vdbs=0.0, vsbs=0.0, vdbd=0.0, delvdbs=0.0, delvsbs=0.0, delvdbd=0.0 ;
double vges=0.0, vged=0.0, delvges=0.0, delvged=0.0, vgedo=0.0 ;
double vges=0.0, vged=0.0, delvges=0.0,/* delvged=0.0,*/ vgedo=0.0 ;
double vsbdo=0.0, vsbd=0.0;
double vbs_jct=0.0, vbd_jct=0.0, delvbs_jct=0.0, delvbd_jct=0.0 ;
int ByPass=0, Check=0, Check1=0, Check2=0 ;
@ -241,7 +241,7 @@ tm0 = gtodsecld() ;
for (here = model->HSM2instances; here != NULL ;
here = here->HSM2nextInstance) {
pParam = &here->pParam ;
/* pParam = &here->pParam ;*/
showPhysVal = 0;
Check=1;
ByPass = 0;
@ -369,7 +369,7 @@ tm0 = gtodsecld() ;
delvsbs = vsbs - *(ckt->CKTstate0 + here->HSM2vsbs);
delvdbd = vdbd - *(ckt->CKTstate0 + here->HSM2vdbd);
delvgd = vgd - vgdo;
delvged = vged - vgedo;
/* delvged = vged - vgedo;*/
delvbd_jct = (!here->HSM2_corbnet) ? delvbd : delvdbd;
delvbs_jct = (!here->HSM2_corbnet) ? delvbs : delvsbs;

View File

@ -465,7 +465,7 @@ int HSMHVevaluate
double Ps0 =0.0, Ps0_dVbs =0.0, Ps0_dVds =0.0, Ps0_dVgs =0.0, Ps0_dT =0.0 ;
double Ps0_ini =0.0 ;
double Ps0_iniA =0.0, Ps0_iniA_dVxb =0.0, Ps0_iniA_dVgb =0.0, Ps0_iniA_dT =0.0 ;
double Ps0_iniB =0.0, Ps0_iniB_dVxb =0.0, Ps0_iniB_dVgb =0.0, Ps0_iniB_dT =0.0 ;
double Ps0_iniB =0.0;/*, Ps0_iniB_dVxb =0.0, Ps0_iniB_dVgb =0.0, Ps0_iniB_dT =0.0 ;*/
/* Psl : surface potential at the drain side */
double Psl =0.0, Psl_dVbs =0.0, Psl_dVds =0.0, Psl_dVgs =0.0, Psl_dT =0.0 ;
double Psl_lim =0.0, dPlim =0.0 ;
@ -542,7 +542,7 @@ int HSMHVevaluate
double costi0 =0.0 ;
double costi1 =0.0, costi1_dT =0.0 ;
double costi3 =0.0, costi3_dVb =0.0, costi3_dVd =0.0, costi3_dVg =0.0, costi3_dT =0.0 ;
double costi3_dVb_c3 =0.0, costi3_dVd_c3 =0.0, costi3_dVg_c3 =0.0 ;
double costi3_dVb_c3 =0.0, costi3_dVd_c3 =0.0, costi3_dVg_c3 =0.0;/*, costi3_dT_c3 =0.0 ;*/
double costi4 =0.0, costi4_dT =0.0 ;
double costi5 =0.0, costi5_dT =0.0 ;
double costi6 =0.0, costi6_dT =0.0 ;
@ -583,8 +583,8 @@ int HSMHVevaluate
double bs12=0.0, bs12_dVb=0.0, bs12_dVd =0.0, bs12_dVg =0.0, bs12_dT =0.0 ;
double Qbmm=0.0, Qbmm_dVb=0.0, Qbmm_dVd =0.0, Qbmm_dVg =0.0, Qbmm_dT =0.0 ;
double dqb=0.0, dqb_dVb=0.0, dqb_dVg=0.0, dqb_dVd =0.0, dqb_dT =0.0 ;
double Vdx=0.0, Vdx_dVbs=0.0 ;
double Vdx2=0.0, Vdx2_dVbs=0.0 ;
double Vdx=0.0, Vdx_dVbs=0.0;/*, Vdx_dT=0.0 ;*/
double Vdx2=0.0, Vdx2_dVbs=0.0;/*, Vdx2_dT=0.0 ;*/
double Pbsum=0.0, Pbsum_dVb=0.0, Pbsum_dVd=0.0, Pbsum_dVg =0.0, Pbsum_dT =0.0 ;
double sqrt_Pbsum =0.0 ;
/* Poly-Depletion Effect */
@ -710,6 +710,7 @@ int HSMHVevaluate
/* PART-4 (junction diode) */
double Ibs =0.0, Gbs =0.0, Gbse =0.0, Ibs_dT =0.0 ;
double Ibd =0.0, Gbd =0.0, Gbde =0.0, Ibd_dT =0.0 ;
/* double Nvtm =0.0 ;*/
/* junction capacitance */
double Qbs =0.0, Capbs =0.0, Capbse =0.0, Qbs_dT =0.0 ;
double Qbd =0.0, Capbd =0.0, Capbde =0.0, Qbd_dT =0.0 ;
@ -778,9 +779,9 @@ int HSMHVevaluate
double Qovs =0.0, Qovs_dVbs =0.0, Qovs_dVds =0.0, Qovs_dVgs =0.0, Qovs_dT =0.0 ;
double QbuLD =0.0, QbuLD_dVbs =0.0, QbuLD_dVds =0.0, QbuLD_dVgs =0.0, QbuLD_dT =0.0 ;
double QbdLD =0.0, QbdLD_dVbs =0.0, QbdLD_dVds =0.0, QbdLD_dVgs =0.0, QbdLD_dT =0.0 ;
double QbsLD =0.0, QbsLD_dVbs =0.0, QbsLD_dVds =0.0, QbsLD_dVgs =0.0, QbsLD_dT =0.0 ;
double QbsLD =0.0;/*, QbsLD_dVbs =0.0, QbsLD_dVds =0.0, QbsLD_dVgs =0.0, QbsLD_dT =0.0 ;*/
double QbdLDext =0.0, QbdLDext_dVbse =0.0, QbdLDext_dVdse =0.0, QbdLDext_dVgse =0.0, QbdLDext_dT =0.0 ;
double QbsLDext =0.0, QbsLDext_dVbse =0.0, QbsLDext_dVdse =0.0, QbsLDext_dVgse =0.0, QbsLDext_dT =0.0 ;
double QbsLDext =0.0;/*, QbsLDext_dVbse =0.0, QbsLDext_dVdse =0.0, QbsLDext_dVgse =0.0, QbsLDext_dT =0.0 ;*/
/* Vgsz for SCE and PGD */
double dmpacc =0.0, dmpacc_dVbs =0.0, dmpacc_dVds =0.0, dmpacc_dVgs =0.0 ;
@ -813,7 +814,7 @@ int HSMHVevaluate
double Ra_alpha, Ra_beta ;
/* modified external biases for symmetry */
double Vzadd_ext_dVd = 0.0 ;
double /*Vzadd_ext = 0.0,*/ Vzadd_ext_dVd = 0.0 ;
double Vdserevz = 0.0, Vdserevz_dVd = 0.0 ;
double Vgserevz = 0.0, Vgserevz_dVd = 0.0 ;
double Vbserevz = 0.0, Vbserevz_dVd = 0.0 ;
@ -832,7 +833,7 @@ int HSMHVevaluate
/* temperature-dependent variables for SHE model */
double TTEMP =0.0, TTEMP0 =0.0 ;
double Tdiff0 = 0.0, Tdiff0_2 = 0.0, Tdiff = 0.0, Tdiff_2 = 0.0 ;
double/* Tdiff0 = 0.0, Tdiff0_2 = 0.0,*/ Tdiff = 0.0, Tdiff_2 = 0.0 ;
double Eg =0.0, Eg_dT =0.0 ;
double Nin =0.0, Nin_dT =0.0 ;
double js =0.0, js_dT =0.0 ;
@ -849,14 +850,14 @@ int HSMHVevaluate
double QsuLD =0.0, QsuLD_dVbs =0.0, QsuLD_dVds =0.0, QsuLD_dVgs =0.0, QsuLD_dT =0.0 ;
double QiuLD =0.0, QiuLD_dVbs =0.0, QiuLD_dVds =0.0, QiuLD_dVgs =0.0, QiuLD_dT =0.0 ;
double QidLD =0.0, QidLD_dVbs =0.0, QidLD_dVds =0.0, QidLD_dVgs =0.0, QidLD_dT =0.0 ;
double QisLD =0.0, QisLD_dVbs =0.0, QisLD_dVds =0.0, QisLD_dVgs =0.0, QisLD_dT =0.0 ;
double QidLDext =0.0, QidLDext_dVbse =0.0, QidLDext_dVdse =0.0, QidLDext_dVgse =0.0, QidLDext_dT =0.0 ;
double QisLDext =0.0, QisLDext_dVbse =0.0, QisLDext_dVdse =0.0, QisLDext_dVgse =0.0, QisLDext_dT =0.0 ;
double /*QidLD =0.0,*/ QidLD_dVbs =0.0, QidLD_dVds =0.0, QidLD_dVgs =0.0, QidLD_dT =0.0 ;
double /*QisLD =0.0,*/ QisLD_dVbs =0.0, QisLD_dVds =0.0, QisLD_dVgs =0.0, QisLD_dT =0.0 ;
double /*QidLDext =0.0,*/ QidLDext_dVbse =0.0, QidLDext_dVdse =0.0, QidLDext_dVgse =0.0, QidLDext_dT =0.0 ;
double /*QisLDext =0.0,*/ QisLDext_dVbse =0.0, QisLDext_dVdse =0.0, QisLDext_dVgse =0.0, QisLDext_dT =0.0 ;
/* Self heating */
double mphn0_dT =0.0 ;
double ps0ldinib_dT =0.0, cnst0over_dT =0.0 ;
double ps0ldinib_dT =0.0, cnst0over_dT =0.0 ;
double ps0ldinibs_dT =0.0, cnst0overs_dT =0.0 ;
double Temp_dif =0.0 ;
/* for SCE */
@ -868,7 +869,7 @@ int HSMHVevaluate
/* Qover */
int flg_ovzone = 0 ;
double VgpLD =0.0, VgpLD_dVgb =0.0 ;
double Vgb_fb_LD =0.0 ;
double /*VthLD =0.0,*/ Vgb_fb_LD =0.0 ;
double Ac31_dVgb =0.0, Ac31_dVxb =0.0 ;
double Ac1_dVgb =0.0, Ac1_dVxb =0.0 ;
double Ac2_dVgb =0.0, Ac2_dVxb =0.0 ;
@ -879,11 +880,11 @@ int HSMHVevaluate
double Psa_dVgb =0.0, Psa_dVxb =0.0 ;
double QsuLD_dVgb =0.0, QsuLD_dVxb =0.0 ;
double QbuLD_dVgb =0.0, QbuLD_dVxb =0.0 ;
double fs02_dVgb =0.0, fs02_dVxb =0.0 ;
double fs02_dVgb =0.0 ;/*, fs02_dVxb =0.0 ;*/
double TX_dVgb =0.0, TX_dVxb =0.0 ;
double TY_dVgb =0.0, TY_dVxb =0.0 ;
double Ps0LD =0.0, Ps0LD_dVgb =0.0, Ps0LD_dVxb =0.0, Ps0LD_dT =0.0 ;
double Ps0LD_dVbs =0.0, Ps0LD_dVds =0.0, Ps0LD_dVgs =0.0 ;
double /*Ps0LD_dVbs =0.0,*/ Ps0LD_dVds =0.0; /*Ps0LD_dVgs =0.0 ;*/
double Pb2over =0.0, Pb2over_dT =0.0 ;
int flg_overgiven =0 ;
@ -891,7 +892,7 @@ int HSMHVevaluate
double Lovers =0.0, Loverd =0.0 ;
double Novers =0.0, Noverd =0.0 ;
double Nover_func =0.0 ;
double ps0ldinib_func =0.0, ps0ldinib_func_dT =0.0 ;
/* double ps0ldinib_func =0.0, ps0ldinib_func_dT =0.0 ;*/
double cnst0over_func =0.0, cnst0over_func_dT =0.0 ;
double cnst1over =0.0, cnst1over_dT =0.0;
/* Qover Analytical Model */
@ -904,15 +905,17 @@ int HSMHVevaluate
double Tp, Tp_dT ;
double Tq, Tq_dVxb, Tq_dVgb, Tq_dT ;
double T1_dVxb, T1_dVgb ;
/* double T2_dVxb, T2_dVgb ;*/
/* double T3_dVxb, T3_dVgb ;*/
double T5_dVxb, T5_dVgb ;
double VgpLD_shift, VgpLD_shift_dT ;
double VgpLD_shift_dVgb, VgpLD_shift_dVxb, exp_bVbs_dVxb ;
double gamma, gamma_dVxb, gamma_dT ;
double psi , psi_dVgb , psi_dVxb , psi_dT ;
double psi_B, arg_B ;
/* double psi_B, arg_B ;*/
double Chi_1, Chi_1_dVgb, Chi_1_dVxb ,Chi_1_dT ;
double Chi_A, Chi_A_dVgb, Chi_A_dVxb, Chi_A_dT ;
double Chi_B, Chi_B_dVgb, Chi_B_dVxb, Chi_B_dT;
double Chi_B, Chi_B_dVgb, Chi_B_dVxb, Chi_B_dT;/*, Chi_B_dpsi , Chi_B_dgamma ;*/
/* X_dT for leakage currents & junction diodes */
double isbd_dT =0.0, isbs_dT =0.0 ;
@ -1815,8 +1818,10 @@ int HSMHVevaluate
Vdx = model->HSMHV_scp21 + Vdsz ;
Vdx_dVbs = Vdsz_dVbs ;
/* Vdx_dT = Vdsz_dT ;*/
Vdx2 = Vdx * Vdx ;
Vdx2_dVbs = 2 * Vdx_dVbs * Vdx ;
/* Vdx2_dT = 2 * Vdx_dT * Vdx ;*/
dVthLP = T1 * dVth0 * T3 + dqb - here->HSMHV_msc / Vdx2 ;
dVthLP_dVb = T1_dVb * dVth0 * T3 + T1 * dVth0_dVb * T3 + T1 * dVth0 * T3_dVb
@ -4045,6 +4050,7 @@ start_of_mobility:
costi3_dVb_c3 = costi3_dVb * T2 ;
costi3_dVd_c3 = costi3_dVd * T2 ;
costi3_dVg_c3 = costi3_dVg * T2 ;
/* costi3_dT_c3 = costi3_dT * T2 ;*/
costi4 = costi3 * beta * 0.5 ;
costi4_dT = ( costi3_dT * beta + costi3 * beta_dT ) * 0.5 ;
@ -5051,9 +5057,8 @@ start_of_mobility:
Nover_func = Novers ;
cnst0over_func = ModeNML * here->HSMHV_cnst0overs + ModeRVS * here->HSMHV_cnst0over ;
cnst0over_func_dT = ModeNML * cnst0overs_dT + ModeRVS * cnst0over_dT ;
ps0ldinib_func = ModeNML * here->HSMHV_ps0ldinibs + ModeRVS * here->HSMHV_ps0ldinib ;
ps0ldinib_func_dT = ModeNML * ps0ldinibs_dT + ModeRVS * ps0ldinib_dT ;
/* ps0ldinib_func = ModeNML * here->HSMHV_ps0ldinibs + ModeRVS * here->HSMHV_ps0ldinib ;*/
/* ps0ldinib_func_dT = ModeNML * ps0ldinibs_dT + ModeRVS * ps0ldinib_dT ;*/
#include "hsmhveval_qover.h"
T4 = here->HSMHV_weffcv_nf * Lovers * ( 1 - CVDSOVER ) ;
@ -5064,18 +5069,18 @@ start_of_mobility:
Qovs_dVbs = T4 * QsuLD_dVbs ;
Qovs_dT = T4 * QsuLD_dT ;
QisLD = T4 * QiuLD ;
/* QisLD = T4 * QiuLD ;*/
QisLD_dVbs = T4 * QiuLD_dVbs ;
QisLD_dVds = T4 * QiuLD_dVds ;
QisLD_dVgs = T4 * QiuLD_dVgs ;
QisLD_dT = T4 * QiuLD_dT ;
QbsLD = T4 * QbuLD ;
QbsLD_dVbs = T4 * QbuLD_dVbs ;
/* QbsLD_dVbs = T4 * QbuLD_dVbs ;
QbsLD_dVds = T4 * QbuLD_dVds ;
QbsLD_dVgs = T4 * QbuLD_dVgs ;
QbsLD_dT = T4 * QbuLD_dT ;
*/
if ( CVDSOVER != 0.0 ) { /* Qovsext begin */
@ -5097,18 +5102,18 @@ start_of_mobility:
Qovsext_dVbse = T4 * QsuLD_dVbs ;
Qovsext_dT = T4 * QsuLD_dT ;
QisLDext = T4 * QiuLD ;
/* QisLDext = T4 * QiuLD ;*/
QisLDext_dVbse = T4 * QiuLD_dVbs ;
QisLDext_dVdse = T4 * QiuLD_dVds ;
QisLDext_dVgse = T4 * QiuLD_dVgs ;
QisLDext_dT = T4 * QiuLD_dT ;
QbsLDext = T4 * QbuLD ;
QbsLDext_dVbse = T4 * QbuLD_dVbs ;
/* QbsLDext_dVbse = T4 * QbuLD_dVbs ;
QbsLDext_dVdse = T4 * QbuLD_dVds ;
QbsLDext_dVgse = T4 * QbuLD_dVgs ;
QbsLDext_dT = T4 * QbuLD_dT ;
*/
} /* Qovsext end */
}
@ -5186,9 +5191,8 @@ start_of_mobility:
Nover_func = Noverd ;
cnst0over_func = ModeNML * here->HSMHV_cnst0over + ModeRVS * here->HSMHV_cnst0overs ;
cnst0over_func_dT = ModeNML * cnst0over_dT + ModeRVS * cnst0overs_dT ;
ps0ldinib_func = ModeNML * here->HSMHV_ps0ldinib + ModeRVS * here->HSMHV_ps0ldinibs ;
ps0ldinib_func_dT = ModeNML * ps0ldinib_dT + ModeRVS * ps0ldinibs_dT ;
/* ps0ldinib_func = ModeNML * here->HSMHV_ps0ldinib + ModeRVS * here->HSMHV_ps0ldinibs ;*/
/* ps0ldinib_func_dT = ModeNML * ps0ldinib_dT + ModeRVS * ps0ldinibs_dT ;*/
#include "hsmhveval_qover.h"
T4 = here->HSMHV_weffcv_nf * Loverd * ( 1 - CVDSOVER ) ;
@ -5198,7 +5202,7 @@ start_of_mobility:
Qovd_dVbs = T4 * QsuLD_dVbs ;
Qovd_dT = T4 * QsuLD_dT ;
QidLD = T4 * QiuLD ;
/* QidLD = T4 * QiuLD ;*/
QidLD_dVbs = T4 * QiuLD_dVbs ;
QidLD_dVds = T4 * QiuLD_dVds ;
QidLD_dVgs = T4 * QiuLD_dVgs ;
@ -5230,7 +5234,7 @@ start_of_mobility:
Qovdext_dVbse = T4 * QsuLD_dVbs ;
Qovdext_dT = T4 * QsuLD_dT ;
QidLDext = T4 * QiuLD ;
/* QidLDext = T4 * QiuLD ;*/
QidLDext_dVbse = T4 * QiuLD_dVbs ;
QidLDext_dVdse = T4 * QiuLD_dVds ;
QidLDext_dVgse = T4 * QiuLD_dVgs ;

View File

@ -311,8 +311,8 @@
psi += beta*0.1 ;
psi_dT += beta_dT*0.1 ;
psi_B = psi;
arg_B = psi*psi/(gamma*T0);
/* psi_B = psi;*/
/* arg_B = psi*psi/(gamma*T0);*/
Chi_B = log(gamma*T0 + psi*psi) - log(cnst1over*T0) + beta*Vxbgmtcl;
Chi_B_dVgb = 2.0*psi*psi_dVgb/ (gamma*T0 + psi*psi);
Chi_B_dVxb = (gamma_dVxb*T0+2.0*psi*psi_dVxb)/(gamma*T0+psi*psi)
@ -321,10 +321,10 @@
- (cnst1over_dT*T0 + cnst1over*T0_dT)/(cnst1over*T0)
+ beta_dT*Vxbgmtcl + beta*Vxbgmtcl_dT;
Ps0_iniB = Chi_B/beta - Vxbgmtcl ;
Ps0_iniB_dVgb = Chi_B_dVgb/beta;
/* Ps0_iniB_dVgb = Chi_B_dVgb/beta;
Ps0_iniB_dVxb = Chi_B_dVxb/beta- Vxbgmtcl_dVxbgmt;
Ps0_iniB_dT = Chi_B_dT/beta - Chi_B/(beta*beta)*beta_dT - Vxbgmtcl_dT;
*/
/* construction of Ps0LD by taking Ps0_iniB as an upper limit of Ps0_iniA
*
@ -577,7 +577,7 @@
fs01_dVgs = Ps0LD_dVgb * fs01_dPs0 ;
fs01_dT = Ps0LD_dT * fs01_dPs0 + fs01_dT;
fs02_dVbs = Ps0LD_dVxb * fs02_dPs0 + fs02_dVbs ;
fs02_dVxb = Ps0LD_dVds * fs02_dPs0 ;
/* fs02_dVxb = Ps0LD_dVds * fs02_dPs0 ;*/
fs02_dVgb = Ps0LD_dVgb * fs02_dPs0 ;
fs02_dT = Ps0LD_dT * fs02_dPs0 + fs02_dT;
@ -616,9 +616,9 @@
} /* end of Vgbgmt region blocks */
/* convert to source ref. */
Ps0LD_dVbs = Ps0LD_dVxb * Vxbgmt_dVbs + Ps0LD_dVgb * Vgbgmt_dVbs ;
/* Ps0LD_dVbs = Ps0LD_dVxb * Vxbgmt_dVbs + Ps0LD_dVgb * Vgbgmt_dVbs ;*/
Ps0LD_dVds = Ps0LD_dVxb * Vxbgmt_dVds + Ps0LD_dVgb * Vgbgmt_dVds ;
Ps0LD_dVgs = Ps0LD_dVxb * Vxbgmt_dVgs + Ps0LD_dVgb * Vgbgmt_dVgs ;
/* Ps0LD_dVgs = Ps0LD_dVxb * Vxbgmt_dVgs + Ps0LD_dVgb * Vgbgmt_dVgs ;*/
QsuLD_dVbs = QsuLD_dVxb * Vxbgmt_dVbs + QsuLD_dVgb * Vgbgmt_dVbs ;
QsuLD_dVds = QsuLD_dVxb * Vxbgmt_dVds + QsuLD_dVgb * Vgbgmt_dVds ;

View File

@ -171,8 +171,8 @@ int HSMHVload(
register HSMHVmodel *model = (HSMHVmodel*)inModel;
register HSMHVinstance *here;
HSMHVbinningParam *pParam;
HSMHVmodelMKSParam *modelMKS ;
HSMHVhereMKSParam *hereMKS ;
/* HSMHVmodelMKSParam *modelMKS ;*/
/* HSMHVhereMKSParam *hereMKS ;*/
@ -249,7 +249,7 @@ int HSMHVload(
double Qdext=0.0, dQdext_dVdse=0.0, dQdext_dVgse=0.0, dQdext_dVbse=0.0, dQdext_dT=0.0 ;
double Qgext=0.0, dQgext_dVdse=0.0, dQgext_dVgse=0.0, dQgext_dVbse=0.0, dQgext_dT=0.0 ;
double dQsext_dVdse=0.0, dQsext_dVgse=0.0, dQsext_dVbse=0.0, dQsext_dT=0.0 ;
double /*Qsext=0.0,*/ dQsext_dVdse=0.0, dQsext_dVgse=0.0, dQsext_dVbse=0.0, dQsext_dT=0.0 ;
double Qbext=0.0, dQbext_dVdse=0.0, dQbext_dVgse=0.0, dQbext_dVbse=0.0, dQbext_dT=0.0 ;
/* 5th substrate node */
int flg_subNode = 0 ;
@ -363,12 +363,12 @@ int HSMHVload(
for ( ; model != NULL; model = model->HSMHVnextModel ) {
/* loop through all the instances of the model */
modelMKS = &model->modelMKS ;
/* modelMKS = &model->modelMKS ;*/
for (here = model->HSMHVinstances; here != NULL ;
here = here->HSMHVnextInstance) {
hereMKS = &here->hereMKS ;
/* hereMKS = &here->hereMKS ;*/
pParam = &here->pParam ;
showPhysVal = 0;
Check=1;
@ -1107,6 +1107,7 @@ line755: /* standard entry if HSMHVevaluate is bypassed */
dQgext_dVgse = here->HSMHV_dQgext_dVgse ;
dQgext_dVbse = here->HSMHV_dQgext_dVbse ;
dQgext_dT = (here->HSMHV_coselfheat > 0) ? here->HSMHV_dQgext_dTi : 0.0 ;
/* Qsext = here->HSMHV_qsext ;*/
dQsext_dVdse = here->HSMHV_dQsext_dVdse ;
dQsext_dVgse = here->HSMHV_dQsext_dVgse ;
dQsext_dVbse = here->HSMHV_dQsext_dVbse ;
@ -1268,6 +1269,7 @@ line755: /* standard entry if HSMHVevaluate is bypassed */
dQgext_dVgse = here->HSMHV_dQgext_dVgse ;
dQgext_dVbse = here->HSMHV_dQgext_dVbse ;
dQgext_dT = (here->HSMHV_coselfheat > 0) ? here->HSMHV_dQgext_dTi : 0.0 ;
/* Qsext = here->HSMHV_qdext ;*/
dQsext_dVdse = - (here->HSMHV_dQdext_dVdse + here->HSMHV_dQdext_dVgse + here->HSMHV_dQdext_dVbse);
dQsext_dVgse = here->HSMHV_dQdext_dVgse ;
dQsext_dVbse = here->HSMHV_dQdext_dVbse ;

View File

@ -73,7 +73,7 @@ int HSMHVtemp(
double T0, T1, T2, T3, T4, T5, T6, T7 ;
/* temperature-dependent variables */
double Eg =0.0, TTEMP0=0.0, TTEMP=0.0, beta=0.0, Nin=0.0 ;
double Tdiff0 = 0.0, Tdiff0_2 = 0.0, Tdiff = 0.0, Tdiff_2 = 0.0 ;
double /*Tdiff0 = 0.0, Tdiff0_2 = 0.0,*/ Tdiff = 0.0, Tdiff_2 = 0.0 ;
double js=0.0, jssw=0.0, js2=0.0, jssw2 =0.0 ;
int i=0 ;
double TMF1 , TMF2 ;

View File

@ -24,8 +24,8 @@
/* Self heating */
TTEMP = TTEMP + deltemp ;
#endif
Tdiff0 = TTEMP0 - model->HSMHV_ktnom ;
Tdiff0_2 = TTEMP0 * TTEMP0 - model->HSMHV_ktnom * model->HSMHV_ktnom ;
/*Tdiff0 = TTEMP0 - model->HSMHV_ktnom ;*/
/*Tdiff0_2 = TTEMP0 * TTEMP0 - model->HSMHV_ktnom * model->HSMHV_ktnom ;*/
Tdiff = TTEMP - model->HSMHV_ktnom ;
Tdiff_2 = TTEMP * TTEMP - model->HSMHV_ktnom * model->HSMHV_ktnom ;