update hisimhv to version 1.2.4

This commit is contained in:
dwarning 2014-05-07 21:35:37 +02:00 committed by rlar
parent 9a827a68b9
commit 157aedd72d
26 changed files with 154 additions and 138 deletions

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hisimhv.h
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhv.c
DATE : 2012.4.6
DATE : 2013.04.30
released by

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvacld.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvask.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvcvtest.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvdef
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvdel.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvdest.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhveval.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &
@ -254,6 +254,7 @@ static double TMF0 , TMF1 , TMF2 , TMF3 , TMF4 , TMF5 , TMF6 ;
TMF2 = sqrt ( ( x ) * ( x ) + 4.0 * ( delta ) * ( delta) ) ; \
dx = 0.5 * ( 1.0 + ( x ) / TMF2 ) ; \
y = 0.5 * ( ( x ) + TMF2 ) ; \
if( y < 0.0 ) { y=0.0; dx=0.0; } \
}
@ -541,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, costi3_dT_c3 =0.0 ;
double costi3_dVb_c3 =0.0, costi3_dVd_c3 =0.0, costi3_dVg_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 ;
@ -582,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, Vdx_dT=0.0 ;
double Vdx2=0.0, Vdx2_dVbs=0.0, Vdx2_dT=0.0 ;
double Vdx=0.0, Vdx_dVbs=0.0 ;
double Vdx2=0.0, Vdx2_dVbs=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 */
@ -965,7 +966,7 @@ int HSMHVevaluate
/*-----------------------------------------------------------*
* Start of the routine. (label)
*-----------------*/
/*start_of_routine:*/
/* start_of_routine: */
/*-----------------------------------------------------------*
* Temperature dependent constants.
@ -1780,7 +1781,7 @@ int HSMHVevaluate
dqb_dVb = Vthp_dVb - Qbmm_dVb * Cox_inv - Qbmm * Cox_inv_dVb ;
dqb_dVd = Vthp_dVd - Qbmm_dVd * Cox_inv - Qbmm * Cox_inv_dVd ;
dqb_dVg = Vthp_dVg - Qbmm_dVg * Cox_inv - Qbmm * Cox_inv_dVg ;
dqb_dT = Vthp_dT - Qbmm_dT * Cox_inv - Qbmm * Cox_inv_dT ;
dqb_dT = Qb0_dT * Cox_inv + Qb0 * Cox_inv_dT - Qbmm_dT * Cox_inv - Qbmm * Cox_inv_dT ;
T1 = 2.0 * C_QE * here->HSMHV_nsubc * C_ESI ;
T2 = sqrt( T1 * ( Pb2c - Vbsz2 ) ) ;
@ -1814,10 +1815,8 @@ 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
@ -2119,6 +2118,7 @@ int HSMHVevaluate
}
/*-----------------------------------------------------------*
* Accumulation zone. (zone-A)
* - evaluate basic characteristics and exit from this part.
@ -2820,7 +2820,7 @@ int HSMHVevaluate
/*-----------------------------------------------------------*
* Start point of Psl (= Ps0 + Pds) calculation. (label)
*-----------------*/
/* start_of_Psl:*/
/* start_of_Psl: */
/* Vdseff (begin) */
@ -2831,6 +2831,7 @@ int HSMHVevaluate
T2_dVb = T4 * Cox_dVb ;
T2_dVd = T4 * Cox_dVd ;
T2_dVg = T4 * Cox_dVg ;
T2_dT = T4 * Cox_dT ;
T0 = Vgp - beta_inv - Vbsz ;
T0_dT = Vgp_dT - beta_inv_dT - Vbsz_dT ;
@ -2844,20 +2845,21 @@ int HSMHVevaluate
T3_dVb = - T2_dVb * T7 + T8 * ( Vgp_dVbs - Vbsz_dVbs ) ;
T3_dVd = - T2_dVd * T7 + T8 * ( Vgp_dVds - Vbsz_dVds ) ;
T3_dVg = - T2_dVg * T7 + T8 * Vgp_dVgs ;
T3_dT = T0_dT / ( T2 * T3 ) ;
T3_dT = - T2_dT * T7 + T8 * T0_dT ;
T10 = Vgp + T2 * ( 1.0e0 - T3 ) ;
T10_dVb = Vgp_dVbs + T2_dVb * ( 1.0e0 - T3 ) - T2 * T3_dVb ;
T10_dVd = Vgp_dVds + T2_dVd * ( 1.0e0 - T3 ) - T2 * T3_dVd ;
T10_dVg = Vgp_dVgs + T2_dVg * ( 1.0e0 - T3 ) - T2 * T3_dVg ;
T10_dT = Vgp_dT - T2 * T3_dT ;
T10_dT = Vgp_dT + T2_dT * ( 1.0e0 - T3 ) - T2 * T3_dT ;
Fn_SZ( T10 , T10 , 0.01 , T0 ) ;
T10 += epsm10 ;
T10_dVb *= T0 ;
T10_dVd *= T0 ;
T10_dVg *= T0 ;
T10_dT *= T0 ;
T1 = Vds / T10 + small ;
T1 = Vds / T10 ;
T2 = Fn_Pow( T1 , here->HSMHV_ddlt - 1.0e0 ) ;
T7 = T2 * T1 ;
T0 = here->HSMHV_ddlt * T2 / ( T10 * T10 ) ;
@ -3946,7 +3948,7 @@ start_of_mobility:
T0_dVg = Ra_dVgs * Ids0 + Ra * Ids0_dVgs ;
T0_dT = Ra * Ids0_dT ;
T1 = Vds + small ;
T1 = Vds + small2 ;
T2 = 1.0 / T1 ;
T3 = 1.0 + T0 * T2 ;
T3_dVb = T0_dVb * T2 ;
@ -4019,7 +4021,7 @@ start_of_mobility:
dVthSCSTI_dVb = dVth0_dVb * T1 + dVth0 * T6 * Vdsz_dVbs ;
dVthSCSTI_dVd = dVth0_dVd * T1 + dVth0 * T6 * Vdsz_dVds ;
dVthSCSTI_dVg = dVth0_dVg * T1 ;
dVthSCSTI_dT = dVth0_dT * T1 ;
dVthSCSTI_dT = dVth0_dT * T1 + dVth0 * T6 * Vdsz_dT ;
T1 = pParam->HSMHV_vthsti - model->HSMHV_vdsti * Vds ;
T1_dVd = - model->HSMHV_vdsti ;
@ -4028,7 +4030,7 @@ start_of_mobility:
Vgssti_dVbs = Vgsz_dVbs + dVthSCSTI_dVb ;
Vgssti_dVds = Vgsz_dVds + T1_dVd + dVthSCSTI_dVd ;
Vgssti_dVgs = Vgsz_dVgs + dVthSCSTI_dVg ;
Vgssti_dT = dVthSCSTI_dT ;
Vgssti_dT = Vgsz_dT + dVthSCSTI_dT ;
costi0 = here->HSMHV_costi0 ;
costi1 = here->HSMHV_costi1 ;
@ -4043,7 +4045,6 @@ 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 ;
@ -4073,7 +4074,7 @@ start_of_mobility:
T3_dVg = T10_dVg + 0.5 * (T1_dVg + (T1 * T1_dVg + T0 * 2.0 * T10_dVg * psisti_dlt) / T2)
+ dVthSCSTI_dVg ;
T3_dT = T10_dT + 0.5 * (T1_dT + (T1 * T1_dT + T0 * 2.0 * T10_dT * psisti_dlt) / T2)
+ dVthSCSTI_dT ;
+ dVthSCSTI_dT - Vbsz_dT ;
T4 = beta * T3 - 1.0 ;
T4_dT = beta_dT * T3 + beta * T3_dT ;
@ -4147,7 +4148,7 @@ start_of_mobility:
T1_dVb = beta * ((Psti_dVbs - Vbsz_dVbs) + T0 * Psti_dVbs) ;
T1_dVd = beta * ((Psti_dVds - Vbsz_dVds) + T0 * Psti_dVds) ;
T1_dVg = beta * (Psti_dVgs + T0 * Psti_dVgs) ;
T1_dT = beta_dT * (Psti - Vbsz) + beta * Psti_dT + T0_dT ;
T1_dT = beta_dT * (Psti - Vbsz) + beta * (Psti_dT - Vbsz_dT) + T0_dT ;
Fn_SZ ( T1 , T1, 1.0e-2, T0) ;
T1 += epsm10 ;
T1_dVb *= T0 ;
@ -4165,7 +4166,7 @@ start_of_mobility:
T1_dVb = beta * (Psti_dVbs - Vbsz_dVbs) ;
T1_dVd = beta * (Psti_dVds - Vbsz_dVds) ;
T1_dVg = beta * Psti_dVgs ;
T1_dT = beta_dT * ( Psti - Vbsz ) + beta * Psti_dT ;
T1_dT = beta_dT * ( Psti - Vbsz ) + beta * (Psti_dT - Vbsz_dT) ;
Fn_SZ( T1 , T1, 1.0e-2, T0) ;
T1 += epsm10 ;
T1_dVb *= T0 ;
@ -4335,6 +4336,7 @@ start_of_mobility:
T1_dVd = T0 * Vgp_dVds ;
T1_dVg = T0 * Vgp_dVgs ;
T1_dVb = T0 * Vgp_dVbs ;
T1_dT = T0 * Vgp_dT ;
T7 = Cox0 * Cox0 ;
T8 = here->HSMHV_qnsub_esi ;
@ -4348,7 +4350,7 @@ start_of_mobility:
T5_dVd = T1_dVd - T2 * Vbsz_dVds;
T5_dVg = T1_dVg ;
T5_dVb = T1_dVb - T2 * Vbsz_dVbs;
T5_dT = - beta_inv_dT ;
T5_dT = - beta_inv_dT + T1_dT - T2 * Vbsz_dT ;
T6 = T4 * T5 ;
T6_dVd = T4 * T5_dVd ;
@ -4372,7 +4374,7 @@ start_of_mobility:
Psislsat_dVd = T1_dVd - T3 * T6_dVd ;
Psislsat_dVg = T1_dVg - T3 * T6_dVg ;
Psislsat_dVb = T1_dVb - T3 * T6_dVb ;
Psislsat_dT = -T3 * T6_dT ;
Psislsat_dT = T1_dT - T3 * T6_dT ;
T2 = here->HSMHV_lgate / (here->HSMHV_xgate + here->HSMHV_lgate) ;
@ -4380,7 +4382,7 @@ start_of_mobility:
Psisubsat_dVd = pParam->HSMHV_svds * Vdsz_dVds + Ps0z_dVds - T2 * Psislsat_dVd ;
Psisubsat_dVg = Ps0z_dVgs - T2 * Psislsat_dVg ;
Psisubsat_dVb = pParam->HSMHV_svds * Vdsz_dVbs + Ps0z_dVbs - T2 * Psislsat_dVb ;
Psisubsat_dT = Ps0z_dT - T2 * Psislsat_dT ;
Psisubsat_dT = pParam->HSMHV_svds * Vdsz_dT + Ps0z_dT - T2 * Psislsat_dT ;
Fn_SZ( Psisubsat , Psisubsat, 1.0e-3, T9 ) ;
Psisubsat += small ;
Psisubsat_dVd *= T9 ;
@ -4480,7 +4482,7 @@ start_of_mobility:
dVbsIBPC_dVbs = pParam->HSMHV_ibpc1 * ( pParam->HSMHV_ibpc2 * dVth_dVb * Isub + T0 * Isub_dVbs ) ;
dVbsIBPC_dVds = pParam->HSMHV_ibpc1 * ( pParam->HSMHV_ibpc2 * dVth_dVd * Isub + T0 * Isub_dVds ) ;
dVbsIBPC_dVgs = pParam->HSMHV_ibpc1 * ( pParam->HSMHV_ibpc2 * dVth_dVg * Isub + T0 * Isub_dVgs ) ;
dVbsIBPC_dT = pParam->HSMHV_ibpc1 * T0 * Isub_dT ;
dVbsIBPC_dT = pParam->HSMHV_ibpc1 * ( pParam->HSMHV_ibpc2 * dVth_dT * Isub + T0 * Isub_dT ) ;
/* dG3 & dG4 */
T10 = 1e0 / Xi0 ;
@ -4556,7 +4558,7 @@ start_of_mobility:
T1_dVg = Vgsz_dVgs + T3 * (dVth_dVg - dPpg_dVg) - Psdlz_dVgs * pParam->HSMHV_gleak3 ;
T1_dVd = Vgsz_dVds + T3 * (dVth_dVd - dPpg_dVd) - Psdlz_dVds * pParam->HSMHV_gleak3 ;
T1_dVb = Vgsz_dVbs + T3 * ( dVth_dVb - dPpg_dVb ) - Psdlz_dVbs * pParam->HSMHV_gleak3 ;
T1_dT = T3 * ( dVth_dT - dPpg_dT ) - Psdlz_dT * pParam->HSMHV_gleak3 ;
T1_dT = Vgsz_dT + T3 * ( dVth_dT - dPpg_dT ) - Psdlz_dT * pParam->HSMHV_gleak3 ;
T3 = 2.0 * T1 ;
T1_dVg = T3 * T1_dVg ;
@ -4742,7 +4744,7 @@ start_of_mobility:
) / Tox0 ;
T2_dVb = - ( pParam->HSMHV_fvbs * Vbsz_dVbs -Vgsz_dVbs + dVthSC_dVb + dVthLP_dVb
) / Tox0 ;
T2_dT = - ( dVthSC_dT + dVthLP_dT
T2_dT = - ( pParam->HSMHV_fvbs * Vbsz_dT -Vgsz_dT + dVthSC_dT + dVthLP_dT
) / Tox0 ;
T0 = T2 * T2 ;
@ -4822,7 +4824,7 @@ start_of_mobility:
T3 = 1 / (Egidl + small) ;
T0 = - pParam->HSMHV_gidl2 * Egp32 * T3 ;
T0_dT = - pParam->HSMHV_gidl2 * T3 *( Egp32_dT - Egidl_dT * T3 ) ;
T0_dT = - pParam->HSMHV_gidl2 * T3 *( Egp32_dT - Egidl_dT * T3 * Egp32 ) ;
if ( T0 < - EXP_THR ) {
Igidl = 0.0 ;
Igidl_dVbs = Igidl_dVds = Igidl_dVgs = Igidl_dT = 0.0 ;
@ -4836,7 +4838,7 @@ start_of_mobility:
Igidl_dVbs = T3 * Egidl_dVb ;
Igidl_dVds = T3 * Egidl_dVd ;
Igidl_dVgs = T3 * Egidl_dVg ;
Igidl_dT = T3 * Egidl_dT + T2 * Egidl * Egidl * T1_dT + T2_dT * Egidl * Egidl * T1;
Igidl_dT = T2 * T1 * Egidl * 2.0 * Egidl_dT + T2 * Egidl * Egidl * T1_dT + T2_dT * Egidl * Egidl * T1;
}
/* bug-fix */
@ -4888,7 +4890,7 @@ start_of_mobility:
T3 = 1 / (Egisl + small) ;
T0 = - pParam->HSMHV_gidl2 * Egp32 * T3 ;
T0_dT = - pParam->HSMHV_gidl2 * T3 * ( Egp32_dT - Egisl_dT * T3 ) ;
T0_dT = - pParam->HSMHV_gidl2 * T3 * ( Egp32_dT - Egisl_dT * T3 * Egp32 ) ;
if ( T0 < - EXP_THR ) {
Igisl = 0.0 ;
Igisl_dVbs = Igisl_dVds = Igisl_dVgs = Igisl_dT = 0.0 ;
@ -4903,7 +4905,7 @@ start_of_mobility:
Igisl_dVbs = T3 * Egisl_dVb ;
Igisl_dVds = T3 * Egisl_dVd ;
Igisl_dVgs = T3 * Egisl_dVg ;
Igisl_dT = T3 * Egisl_dT + T2_dT * Egisl * Egisl * T1 + T2 * Egisl * Egisl * T1_dT ;
Igisl_dT = T2 * T1 * Egisl * 2.0 * Egisl_dT + T2_dT * Egisl * Egisl * T1 + T2 * Egisl * Egisl * T1_dT ;
}
/* bug-fix */
@ -5315,7 +5317,7 @@ start_of_mobility:
* End of PART-3. (label)
*-----------------*/
/* end_of_part_3:*/
/* end_of_part_3: */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* PART-4: Substrate-source/drain junction diode.
@ -5730,7 +5732,7 @@ start_of_mobility:
* End of PART-4. (label)
*-----------------*/
/* end_of_part_4:*/
/* end_of_part_4: */
@ -5843,7 +5845,7 @@ start_of_mobility:
/*-----------------------------------------------------------*
* End of PART-5. (label)
*-----------------*/
/* end_of_part_5:*/
/* end_of_part_5: */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* PART-6: Noise Calculation.
@ -5934,7 +5936,7 @@ start_of_mobility:
/*-----------------------------------------------------------*
* End of PART-6. (label)
*-----------------*/
/* end_of_part_6:*/
/* end_of_part_6: */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ -6481,7 +6483,7 @@ start_of_mobility:
here->HSMHV_dRd_dVsubs = Rs_dVsubs / Mfactor ;
here->HSMHV_dRd_dTi = Rs_dT / Mfactor ;
here->HSMHV_Rs = Rd / Mfactor ;
here->HSMHV_dRs_dVdse = - ( Rd_dVdse + Rd_dVgse + Rd_dVbse + Rs_dVsubs ) / Mfactor ;
here->HSMHV_dRs_dVdse = - ( Rd_dVdse + Rd_dVgse + Rd_dVbse + Rd_dVsubs ) / Mfactor ;
here->HSMHV_dRs_dVgse = Rd_dVgse / Mfactor ;
here->HSMHV_dRs_dVbse = Rd_dVbse / Mfactor ;
here->HSMHV_dRs_dVsubs = Rd_dVsubs / Mfactor ;
@ -6508,7 +6510,7 @@ start_of_mobility:
/*-----------------------------------------------------------*
* End of PART-7. (label)
*-----------------*/
/* end_of_part_7:*/
/* end_of_part_7: */
/*-----------------------------------------------------------*
* Bottom of hsmhveval.

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhveval_qover.h
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvevalenv.h
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvext.h
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvgetic.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvitf
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvld.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &
@ -23,7 +23,6 @@
#include "ngspice/devdefs.h"
#include "ngspice/suffix.h"
#define SHOW_EPS_QUANT 1.0e-15
static void ShowPhysVals
@ -40,8 +39,8 @@ static void ShowPhysVals
)
{
NG_IGNORE(vgd);
NG_IGNORE(vbd);
NG_IGNORE(vgd);
NG_IGNORE(vbd);
/* */
/* */
@ -250,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 Qsext=0.0, dQsext_dVdse=0.0, dQsext_dVgse=0.0, dQsext_dVbse=0.0, dQsext_dT=0.0 ;
double 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 ;
@ -1108,7 +1107,6 @@ 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 ;
@ -1270,7 +1268,6 @@ 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

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvld_info_eval.h
DATE : 2012.4.6
DATE : 2013.04.30
recent changes: - 2009.01.09 some bugfixes

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvmask.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &
@ -1851,23 +1851,23 @@ int HSMHVmAsk(
return(OK);
case HSMHV_MOD_VGS_MAX:
value->rValue = model->HSMHVvgsMax;
return(OK);
value->rValue = model->HSMHVvgsMax;
return(OK);
case HSMHV_MOD_VGD_MAX:
value->rValue = model->HSMHVvgdMax;
return(OK);
value->rValue = model->HSMHVvgdMax;
return(OK);
case HSMHV_MOD_VGB_MAX:
value->rValue = model->HSMHVvgbMax;
return(OK);
value->rValue = model->HSMHVvgbMax;
return(OK);
case HSMHV_MOD_VDS_MAX:
value->rValue = model->HSMHVvdsMax;
return(OK);
value->rValue = model->HSMHVvdsMax;
return(OK);
case HSMHV_MOD_VBS_MAX:
value->rValue = model->HSMHVvbsMax;
return(OK);
value->rValue = model->HSMHVvbsMax;
return(OK);
case HSMHV_MOD_VBD_MAX:
value->rValue = model->HSMHVvbdMax;
return(OK);
value->rValue = model->HSMHVvbdMax;
return(OK);
default:
return(E_BADPARM);

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvmdel.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvmpar.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &
@ -2447,29 +2447,29 @@ int HSMHVmParam(
break;
case HSMHV_MOD_VGS_MAX:
mod->HSMHVvgsMax = value->rValue;
mod->HSMHVvgsMaxGiven = TRUE;
break;
mod->HSMHVvgsMax = value->rValue;
mod->HSMHVvgsMaxGiven = TRUE;
break;
case HSMHV_MOD_VGD_MAX:
mod->HSMHVvgdMax = value->rValue;
mod->HSMHVvgdMaxGiven = TRUE;
break;
mod->HSMHVvgdMax = value->rValue;
mod->HSMHVvgdMaxGiven = TRUE;
break;
case HSMHV_MOD_VGB_MAX:
mod->HSMHVvgbMax = value->rValue;
mod->HSMHVvgbMaxGiven = TRUE;
break;
mod->HSMHVvgbMax = value->rValue;
mod->HSMHVvgbMaxGiven = TRUE;
break;
case HSMHV_MOD_VDS_MAX:
mod->HSMHVvdsMax = value->rValue;
mod->HSMHVvdsMaxGiven = TRUE;
break;
mod->HSMHVvdsMax = value->rValue;
mod->HSMHVvdsMaxGiven = TRUE;
break;
case HSMHV_MOD_VBS_MAX:
mod->HSMHVvbsMax = value->rValue;
mod->HSMHVvbsMaxGiven = TRUE;
break;
mod->HSMHVvbsMax = value->rValue;
mod->HSMHVvbsMaxGiven = TRUE;
break;
case HSMHV_MOD_VBD_MAX:
mod->HSMHVvbdMax = value->rValue;
mod->HSMHVvbdMaxGiven = TRUE;
break;
mod->HSMHVvbdMax = value->rValue;
mod->HSMHVvbdMaxGiven = TRUE;
break;
default:
return(E_BADPARM);

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvnoi.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvpar.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvpzld.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvset.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &
@ -74,13 +74,13 @@ int HSMHVsetup(
model->HSMHV_noise = 1;
if ( !model->HSMHV_version_Given) {
model->HSMHV_version = "1.23" ;
printf(" 1.23 is selected for VERSION. (default) \n");
model->HSMHV_version = "1.24" ;
printf(" 1.24 is selected for VERSION. (default) \n");
} else {
if (strcmp(model->HSMHV_version,"1.23") != 0 ) {
model->HSMHV_version = "1.23" ;
printf(" 1.23 is the only available VERSION. \n");
printf(" 1.23 is selected for VERSION. (default) \n");
if (strcmp(model->HSMHV_version,"1.24") != 0 ) {
model->HSMHV_version = "1.24" ;
printf(" 1.24 is only available for VERSION. \n");
printf(" 1.24 is selected for VERSION. (default) \n");
} else {
printf(" %s is selected for VERSION \n", model->HSMHV_version);
}
@ -916,10 +916,27 @@ int HSMHVsetup(
here->HSMHVdbNode = here->HSMHVbNodePrime = here->HSMHVsbNode = here->HSMHVbNode;
}
if ( here->HSMHV_cosubnode == 0 && here->HSMHVsubNode >= 0 ) {
if ( here->HSMHVtempNode >= 0 ) {
/* FATAL Error when 6th node is defined and COSUBNODE=0 */
IFuid namarr[2];
namarr[0] = here->HSMHVname;
namarr[1] = model->HSMHVmodName;
(*(SPfrontEnd->IFerror))
(
ERR_FATAL,
"HiSIM_HV: MOSFET(%s) MODEL(%s): 6th node is defined and COSUBNODE=0",
namarr
);
return (E_BADPARM);
} else {
/* 5th node is switched to tempNode, if COSUBNODE=0 and 5 external nodes are assigned. */
if ( here->HSMHV_cosubnode == 0 && here->HSMHVsubNode > 0 && here->HSMHVtempNode <= 0 ) {
here->HSMHVtempNode = here->HSMHVsubNode ;
here->HSMHVsubNode = -1 ;
if ( here->HSMHVsubNode > 0 ) {
here->HSMHVtempNode = here->HSMHVsubNode ;
here->HSMHVsubNode = -1 ;
}
}
}
/* self heating*/
@ -1320,7 +1337,7 @@ do { if((here->ptr = SMPmakeElt(matrix,here->first,here->second))==(double *)NUL
RANGECHECK(model->HSMHV_sub2l, 0.0, 1.0, "SUB2L") ;
RANGECHECK(model->HSMHV_voverp, 0.0, 2.0, "VOVERP") ;
RANGECHECK(model->HSMHV_qme1, 0.0, 300.0e-9, "QME1") ;
RANGECHECK(model->HSMHV_qme2, 0.0, 2.0, "QME2") ;
RANGECHECK(model->HSMHV_qme2, 0.0, 0.0, "QME2") ;
RANGECHECK(model->HSMHV_qme3, 0.0,800.0e-12, "QME3") ;
RANGECHECK(model->HSMHV_glpart1, 0.0, 1.0, "GLPART1") ;
RANGECHECK(model->HSMHV_tnom, 22.0, 32.0, "TNOM") ;
@ -1437,7 +1454,7 @@ do { if((here->ptr = SMPmakeElt(matrix,here->first,here->second))==(double *)NUL
}
return(OK);
}
}
int
HSMHVunsetup(

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvtemp.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &
@ -325,9 +325,9 @@ int HSMHVtemp(
here->HSMHV_rd0 = 0.0 ;
}
if ( pParam->HSMHV_rd > 0.0 || pParam->HSMHV_rs > 0.0 ) {
here->HSMHV_rdtemp0 = 1.0 + model->HSMHV_rds / pow( here->HSMHV_w * C_m2um * LG , model->HSMHV_rdsp ) ;
here->HSMHV_rdtemp0 = 1.0 + model->HSMHV_rds / pow( WL , model->HSMHV_rdsp ) ;
if( pParam->HSMHV_rdvd != 0.0 ){
T7 = ( 1.0 + model->HSMHV_rdvds / pow( here->HSMHV_w * C_m2um * LG , model->HSMHV_rdvdsp ) );
T7 = ( 1.0 + model->HSMHV_rdvds / pow( WL , model->HSMHV_rdvdsp ) );
T6 = ( - model->HSMHV_rdvdl * pow( LG , model->HSMHV_rdvdlp ) ) ;
if(T6 > large_arg) T6 = large_arg ;
T6 = exp( T6 ) ;
@ -335,7 +335,7 @@ int HSMHVtemp(
}
}
if( pParam->HSMHV_rd23 != 0.0 ){
T2 = ( 1.0 + model->HSMHV_rd23s / pow( here->HSMHV_w * C_m2um * LG , model->HSMHV_rd23sp ) );
T2 = ( 1.0 + model->HSMHV_rd23s / pow( WL , model->HSMHV_rd23sp ) );
T1 = ( - model->HSMHV_rd23l * pow( LG , model->HSMHV_rd23lp ) ) ;
if(T1 > large_arg) T1 = large_arg ;
T1 = exp( T1 ) ;
@ -399,13 +399,13 @@ int HSMHVtemp(
/* Self heating */
pParam->HSMHV_rth = pParam->HSMHV_rth0 / ( here->HSMHV_m * here->HSMHV_weff_nf )
* ( 1.0 + model->HSMHV_rth0w / pow( here->HSMHV_w * C_m2um , model->HSMHV_rth0wp ) );
* ( 1.0 + model->HSMHV_rth0w / pow( WG , model->HSMHV_rth0wp ) );
pParam->HSMHV_cth = modelMKS->HSMHV_cth0 * ( here->HSMHV_m * here->HSMHV_weff_nf ) ;
pParam->HSMHV_rth *= ( 1.0 / pow( here->HSMHV_nf , model->HSMHV_rth0nf ) ) ;
here->HSMHV_rthtemp0 = 1.0 / pow( here->HSMHV_nf , model->HSMHV_rth0nf ) / ( here->HSMHV_m * here->HSMHV_weff_nf )
* ( 1.0 + model->HSMHV_rth0w / pow( here->HSMHV_w * C_m2um , model->HSMHV_rth0wp ) );
* ( 1.0 + model->HSMHV_rth0w / pow( WG , model->HSMHV_rth0wp ) );
/*-----------------------------------------------------------*

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvtemp_eval.h
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &

View File

@ -4,11 +4,11 @@
Copyright (C) 2012 Hiroshima University & STARC
MODEL NAME : HiSIM_HV
( VERSION : 1 SUBVERSION : 2 REVISION : 3 )
( VERSION : 1 SUBVERSION : 2 REVISION : 4 )
Model Parameter VERSION : 1.23
FILE : hsmhvtrunc.c
DATE : 2012.4.6
DATE : 2013.04.30
released by
Hiroshima University &