From 157aedd72d36f6c70c0211a15b1956eec5990633 Mon Sep 17 00:00:00 2001 From: dwarning Date: Wed, 7 May 2014 21:35:37 +0200 Subject: [PATCH] update hisimhv to version 1.2.4 --- src/spicelib/devices/hisimhv1/hisimhv.h | 4 +- src/spicelib/devices/hisimhv1/hsmhv.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvacld.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvask.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvcvtest.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvdef.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvdel.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvdest.c | 4 +- src/spicelib/devices/hisimhv1/hsmhveval.c | 74 ++++++++++--------- .../devices/hisimhv1/hsmhveval_qover.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvevalenv.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvext.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvgetic.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvitf.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvld.c | 13 ++-- .../devices/hisimhv1/hsmhvld_info_eval.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvmask.c | 28 +++---- src/spicelib/devices/hisimhv1/hsmhvmdel.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvmpar.c | 40 +++++----- src/spicelib/devices/hisimhv1/hsmhvnoi.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvpar.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvpzld.c | 4 +- src/spicelib/devices/hisimhv1/hsmhvset.c | 43 +++++++---- src/spicelib/devices/hisimhv1/hsmhvtemp.c | 14 ++-- .../devices/hisimhv1/hsmhvtemp_eval.h | 4 +- src/spicelib/devices/hisimhv1/hsmhvtrunc.c | 4 +- 26 files changed, 154 insertions(+), 138 deletions(-) diff --git a/src/spicelib/devices/hisimhv1/hisimhv.h b/src/spicelib/devices/hisimhv1/hisimhv.h index 031eee307..8a4ce50b8 100644 --- a/src/spicelib/devices/hisimhv1/hisimhv.h +++ b/src/spicelib/devices/hisimhv1/hisimhv.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhv.c b/src/spicelib/devices/hisimhv1/hsmhv.c index 2a4e8376f..f94803ab8 100644 --- a/src/spicelib/devices/hisimhv1/hsmhv.c +++ b/src/spicelib/devices/hisimhv1/hsmhv.c @@ -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 diff --git a/src/spicelib/devices/hisimhv1/hsmhvacld.c b/src/spicelib/devices/hisimhv1/hsmhvacld.c index 39cf2b259..9f2fcd180 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvacld.c +++ b/src/spicelib/devices/hisimhv1/hsmhvacld.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvask.c b/src/spicelib/devices/hisimhv1/hsmhvask.c index 3e6484ff6..a40082d6c 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvask.c +++ b/src/spicelib/devices/hisimhv1/hsmhvask.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvcvtest.c b/src/spicelib/devices/hisimhv1/hsmhvcvtest.c index 8642074af..430d53b5b 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvcvtest.c +++ b/src/spicelib/devices/hisimhv1/hsmhvcvtest.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvdef.h b/src/spicelib/devices/hisimhv1/hsmhvdef.h index 224736084..c1e2e0343 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvdef.h +++ b/src/spicelib/devices/hisimhv1/hsmhvdef.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvdel.c b/src/spicelib/devices/hisimhv1/hsmhvdel.c index 85b691041..8e838fc58 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvdel.c +++ b/src/spicelib/devices/hisimhv1/hsmhvdel.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvdest.c b/src/spicelib/devices/hisimhv1/hsmhvdest.c index 05429ae23..d31b06616 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvdest.c +++ b/src/spicelib/devices/hisimhv1/hsmhvdest.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhveval.c b/src/spicelib/devices/hisimhv1/hsmhveval.c index 9a5a48f4b..5a6c8a098 100644 --- a/src/spicelib/devices/hisimhv1/hsmhveval.c +++ b/src/spicelib/devices/hisimhv1/hsmhveval.c @@ -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. diff --git a/src/spicelib/devices/hisimhv1/hsmhveval_qover.h b/src/spicelib/devices/hisimhv1/hsmhveval_qover.h index 6184df9a0..6223f6006 100644 --- a/src/spicelib/devices/hisimhv1/hsmhveval_qover.h +++ b/src/spicelib/devices/hisimhv1/hsmhveval_qover.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvevalenv.h b/src/spicelib/devices/hisimhv1/hsmhvevalenv.h index 45ad2cefe..5dd2ef485 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvevalenv.h +++ b/src/spicelib/devices/hisimhv1/hsmhvevalenv.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvext.h b/src/spicelib/devices/hisimhv1/hsmhvext.h index fc2ff1f4c..7ba0be7ba 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvext.h +++ b/src/spicelib/devices/hisimhv1/hsmhvext.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvgetic.c b/src/spicelib/devices/hisimhv1/hsmhvgetic.c index e4f82a3ac..68b751e46 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvgetic.c +++ b/src/spicelib/devices/hisimhv1/hsmhvgetic.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvitf.h b/src/spicelib/devices/hisimhv1/hsmhvitf.h index 45a8d287e..27a3cad2a 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvitf.h +++ b/src/spicelib/devices/hisimhv1/hsmhvitf.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvld.c b/src/spicelib/devices/hisimhv1/hsmhvld.c index 697a301c0..407f65fd8 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvld.c +++ b/src/spicelib/devices/hisimhv1/hsmhvld.c @@ -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 ; diff --git a/src/spicelib/devices/hisimhv1/hsmhvld_info_eval.h b/src/spicelib/devices/hisimhv1/hsmhvld_info_eval.h index 8aa40e806..ba9a5c3e8 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvld_info_eval.h +++ b/src/spicelib/devices/hisimhv1/hsmhvld_info_eval.h @@ -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 diff --git a/src/spicelib/devices/hisimhv1/hsmhvmask.c b/src/spicelib/devices/hisimhv1/hsmhvmask.c index 0796590ce..e959c9222 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvmask.c +++ b/src/spicelib/devices/hisimhv1/hsmhvmask.c @@ -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); diff --git a/src/spicelib/devices/hisimhv1/hsmhvmdel.c b/src/spicelib/devices/hisimhv1/hsmhvmdel.c index 8a0f04c44..f5c76db70 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvmdel.c +++ b/src/spicelib/devices/hisimhv1/hsmhvmdel.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvmpar.c b/src/spicelib/devices/hisimhv1/hsmhvmpar.c index 0522f6081..3258c7ab2 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvmpar.c +++ b/src/spicelib/devices/hisimhv1/hsmhvmpar.c @@ -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); diff --git a/src/spicelib/devices/hisimhv1/hsmhvnoi.c b/src/spicelib/devices/hisimhv1/hsmhvnoi.c index 535334205..86789e4bb 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvnoi.c +++ b/src/spicelib/devices/hisimhv1/hsmhvnoi.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvpar.c b/src/spicelib/devices/hisimhv1/hsmhvpar.c index 5ad59ebcb..24388523d 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvpar.c +++ b/src/spicelib/devices/hisimhv1/hsmhvpar.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvpzld.c b/src/spicelib/devices/hisimhv1/hsmhvpzld.c index 5ac8cf251..b657da4df 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvpzld.c +++ b/src/spicelib/devices/hisimhv1/hsmhvpzld.c @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvset.c b/src/spicelib/devices/hisimhv1/hsmhvset.c index e1b83c215..613855d7d 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvset.c +++ b/src/spicelib/devices/hisimhv1/hsmhvset.c @@ -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( diff --git a/src/spicelib/devices/hisimhv1/hsmhvtemp.c b/src/spicelib/devices/hisimhv1/hsmhvtemp.c index 2a6742df0..074f3a1d4 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvtemp.c +++ b/src/spicelib/devices/hisimhv1/hsmhvtemp.c @@ -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 ) ); /*-----------------------------------------------------------* diff --git a/src/spicelib/devices/hisimhv1/hsmhvtemp_eval.h b/src/spicelib/devices/hisimhv1/hsmhvtemp_eval.h index 563c4f8b7..fc1e2db42 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvtemp_eval.h +++ b/src/spicelib/devices/hisimhv1/hsmhvtemp_eval.h @@ -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 & diff --git a/src/spicelib/devices/hisimhv1/hsmhvtrunc.c b/src/spicelib/devices/hisimhv1/hsmhvtrunc.c index 6c7097d68..cadfc00d3 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvtrunc.c +++ b/src/spicelib/devices/hisimhv1/hsmhvtrunc.c @@ -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 &