Browse Source

As the comment said we have bypass only without selfheating

so the expression 'here->HSMHV2_coselfheat > 0' is always false
and all derivatives to temperature are 0.
pre-master-46
dwarning 7 years ago
committed by Holger Vogt
parent
commit
f7c36d66d4
  1. 44
      src/spicelib/devices/hisimhv2/hsmhv2ld.c

44
src/spicelib/devices/hisimhv2/hsmhv2ld.c

@ -694,7 +694,7 @@ int HSMHV2load(
gds = here->HSMHV2_dIds_dVdsi ;
gm = here->HSMHV2_dIds_dVgsi ;
gmbs = here->HSMHV2_dIds_dVbsi ;
gmT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIds_dTi : 0.0 ;
gmT = 0.0 ;
gmbs_ext = here->HSMHV2_dIds_dVbse;
gds_ext = here->HSMHV2_dIds_dVdse ;
gm_ext = here->HSMHV2_dIds_dVgse;
@ -702,7 +702,7 @@ int HSMHV2load(
dIsub_dVds = here->HSMHV2_dIsub_dVdsi ;
dIsub_dVgs = here->HSMHV2_dIsub_dVgsi ;
dIsub_dVbs = here->HSMHV2_dIsub_dVbsi ;
dIsub_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIsub_dTi : 0.0 ;
dIsub_dT = 0.0 ;
Isubs = 0.0 ;
dIsubs_dVds = 0.0 ;
dIsubs_dVgs = 0.0 ;
@ -712,7 +712,7 @@ int HSMHV2load(
dIsubLD_dVds = here->HSMHV2_dIsubLD_dVdsi ;
dIsubLD_dVgs = here->HSMHV2_dIsubLD_dVgsi ;
dIsubLD_dVbs = here->HSMHV2_dIsubLD_dVbsi ;
dIsubLD_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIsubLD_dTi : 0.0 ;
dIsubLD_dT = 0.0 ;
dIsubLD_dVddp = here->HSMHV2_dIsubLD_dVddp ;
IsubLDs = 0.0 ;
dIsubLDs_dVds = 0.0 ;
@ -724,7 +724,7 @@ int HSMHV2load(
dIdsIBPC_dVds = here->HSMHV2_dIdsIBPC_dVdsi ;
dIdsIBPC_dVgs = here->HSMHV2_dIdsIBPC_dVgsi ;
dIdsIBPC_dVbs = here->HSMHV2_dIdsIBPC_dVbsi ;
dIdsIBPC_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIdsIBPC_dTi : 0.0 ;
dIdsIBPC_dT = 0.0 ;
dIdsIBPC_dVddp = here->HSMHV2_dIdsIBPC_dVddp ;
IdsIBPCs = 0.0 ;
dIdsIBPCs_dVds = 0.0 ;
@ -736,39 +736,39 @@ int HSMHV2load(
dIgidl_dVds = here->HSMHV2_dIgidl_dVdsi ;
dIgidl_dVgs = here->HSMHV2_dIgidl_dVgsi ;
dIgidl_dVbs = here->HSMHV2_dIgidl_dVbsi ;
dIgidl_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgidl_dTi : 0.0 ;
dIgidl_dT = 0.0 ;
Igisl = here->HSMHV2_igisl ;
dIgisl_dVds = here->HSMHV2_dIgisl_dVdsi ;
dIgisl_dVgs = here->HSMHV2_dIgisl_dVgsi ;
dIgisl_dVbs = here->HSMHV2_dIgisl_dVbsi ;
dIgisl_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgisl_dTi : 0.0 ;
dIgisl_dT = 0.0 ;
Igd = here->HSMHV2_igd ;
dIgd_dVd = here->HSMHV2_dIgd_dVdsi ;
dIgd_dVg = here->HSMHV2_dIgd_dVgsi ;
dIgd_dVb = here->HSMHV2_dIgd_dVbsi ;
dIgd_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgd_dTi : 0.0 ;
dIgd_dT = 0.0 ;
Igs = here->HSMHV2_igs ;
dIgs_dVd = here->HSMHV2_dIgs_dVdsi ;
dIgs_dVg = here->HSMHV2_dIgs_dVgsi ;
dIgs_dVb = here->HSMHV2_dIgs_dVbsi ;
dIgs_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgs_dTi : 0.0 ;
dIgs_dT = 0.0 ;
Igb = here->HSMHV2_igb ;
dIgb_dVd = here->HSMHV2_dIgb_dVdsi ;
dIgb_dVg = here->HSMHV2_dIgb_dVgsi ;
dIgb_dVb = here->HSMHV2_dIgb_dVbsi ;
dIgb_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgb_dTi : 0.0 ;
dIgb_dT = 0.0 ;
Ibd = here->HSMHV2_ibd ;
Gbd = here->HSMHV2_gbd ;
Gbdt = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_gbdT : 0.0 ;
Gbdt = 0.0 ;
Ibs = here->HSMHV2_ibs ;
Gbs = here->HSMHV2_gbs ;
Gbst = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_gbsT : 0.0 ;
Gbst = 0.0 ;
} else { /* reverse mode */
Ids = - here->HSMHV2_ids ;
gds = + (here->HSMHV2_dIds_dVdsi + here->HSMHV2_dIds_dVgsi + here->HSMHV2_dIds_dVbsi) ;
gm = - here->HSMHV2_dIds_dVgsi ;
gmbs = - here->HSMHV2_dIds_dVbsi ;
gmT = (here->HSMHV2_coselfheat > 0) ? - here->HSMHV2_dIds_dTi : 0.0 ;
gmT = 0.0 ;
gds_ext = + (here->HSMHV2_dIds_dVdse + here->HSMHV2_dIds_dVgse + here->HSMHV2_dIds_dVbse) ;
gm_ext = - here->HSMHV2_dIds_dVgse;
gmbs_ext = - here->HSMHV2_dIds_dVbse;
@ -781,7 +781,7 @@ int HSMHV2load(
dIsubs_dVds = - (here->HSMHV2_dIsub_dVdsi + here->HSMHV2_dIsub_dVgsi + here->HSMHV2_dIsub_dVbsi) ;
dIsubs_dVgs = here->HSMHV2_dIsub_dVgsi ;
dIsubs_dVbs = here->HSMHV2_dIsub_dVbsi ;
dIsubs_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIsub_dTi : 0.0 ;
dIsubs_dT = 0.0 ;
IsubLD = 0.0 ;
dIsubLD_dVds = 0.0 ;
dIsubLD_dVgs = 0.0 ;
@ -792,7 +792,7 @@ int HSMHV2load(
dIsubLDs_dVds = - (here->HSMHV2_dIsubLD_dVdsi + here->HSMHV2_dIsubLD_dVgsi + here->HSMHV2_dIsubLD_dVbsi) ;
dIsubLDs_dVgs = here->HSMHV2_dIsubLD_dVgsi ;
dIsubLDs_dVbs = here->HSMHV2_dIsubLD_dVbsi ;
dIsubLDs_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIsubLD_dTi : 0.0 ;
dIsubLDs_dT = 0.0 ;
dIsubLDs_dVddp = - here->HSMHV2_dIsubLD_dVddp ;
IdsIBPC = 0.0 ;
dIdsIBPC_dVds = 0.0 ;
@ -804,39 +804,39 @@ int HSMHV2load(
dIdsIBPCs_dVds = - (here->HSMHV2_dIdsIBPC_dVdsi + here->HSMHV2_dIdsIBPC_dVgsi + here->HSMHV2_dIdsIBPC_dVbsi) ;
dIdsIBPCs_dVgs = here->HSMHV2_dIdsIBPC_dVgsi ;
dIdsIBPCs_dVbs = here->HSMHV2_dIdsIBPC_dVbsi ;
dIdsIBPCs_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIdsIBPC_dTi : 0.0 ;
dIdsIBPCs_dT = 0.0 ;
dIdsIBPCs_dVddp = - here->HSMHV2_dIdsIBPC_dVddp ;
Igidl = here->HSMHV2_igisl ;
dIgidl_dVds = - (here->HSMHV2_dIgisl_dVdsi + here->HSMHV2_dIgisl_dVgsi + here->HSMHV2_dIgisl_dVbsi) ;
dIgidl_dVgs = here->HSMHV2_dIgisl_dVgsi ;
dIgidl_dVbs = here->HSMHV2_dIgisl_dVbsi ;
dIgidl_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgisl_dTi : 0.0 ;
dIgidl_dT = 0.0 ;
Igisl = here->HSMHV2_igidl ;
dIgisl_dVds = - (here->HSMHV2_dIgidl_dVdsi + here->HSMHV2_dIgidl_dVgsi + here->HSMHV2_dIgidl_dVbsi) ;
dIgisl_dVgs = here->HSMHV2_dIgidl_dVgsi ;
dIgisl_dVbs = here->HSMHV2_dIgidl_dVbsi ;
dIgisl_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgidl_dTi : 0.0 ;
dIgisl_dT = 0.0 ;
Igd = here->HSMHV2_igd ;
dIgd_dVd = - (here->HSMHV2_dIgs_dVdsi + here->HSMHV2_dIgs_dVgsi + here->HSMHV2_dIgs_dVbsi) ;
dIgd_dVg = here->HSMHV2_dIgs_dVgsi ;
dIgd_dVb = here->HSMHV2_dIgs_dVbsi ;
dIgd_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgs_dTi : 0.0 ;
dIgd_dT = 0.0 ;
Igs = here->HSMHV2_igs ;
dIgs_dVd = - (here->HSMHV2_dIgd_dVdsi + here->HSMHV2_dIgd_dVgsi + here->HSMHV2_dIgd_dVbsi) ;
dIgs_dVg = here->HSMHV2_dIgd_dVgsi ;
dIgs_dVb = here->HSMHV2_dIgd_dVbsi ;
dIgs_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgd_dTi : 0.0 ;
dIgs_dT = 0.0 ;
Igb = here->HSMHV2_igb ;
dIgb_dVd = - (here->HSMHV2_dIgb_dVdsi + here->HSMHV2_dIgb_dVgsi + here->HSMHV2_dIgb_dVbsi) ;
dIgb_dVg = here->HSMHV2_dIgb_dVgsi ;
dIgb_dVb = here->HSMHV2_dIgb_dVbsi ;
dIgb_dT = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_dIgb_dTi : 0.0 ;
dIgb_dT = 0.0 ;
Ibd = here->HSMHV2_ibd ;
Gbd = here->HSMHV2_gbd ;
Gbdt = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_gbdT : 0.0 ;
Gbdt = 0.0 ;
Ibs = here->HSMHV2_ibs ;
Gbs = here->HSMHV2_gbs ;
Gbst = (here->HSMHV2_coselfheat > 0) ? here->HSMHV2_gbsT : 0.0 ;
Gbst = 0.0 ;
} /* end of reverse mode */
/* for bypass control, only nonlinear static currents are considered: */

Loading…
Cancel
Save