Finished UI for RELMODEL model
This commit is contained in:
parent
0d53ed60d6
commit
fbed2dfe1d
|
|
@ -11,6 +11,8 @@ IFparm RELMODELpTable [] = { /* parameters */
|
|||
} ;
|
||||
|
||||
IFparm RELMODELmPTable [] = { /* model parameters */
|
||||
IOP ("type", RELMODEL_MOD_TYPE, IF_INTEGER, "Aging Model Type"),
|
||||
|
||||
IOP ("k_b", RELMODEL_MOD_KB, IF_REAL, "Boltzmann Constant"),
|
||||
IOP ("h_cut", RELMODEL_MOD_HCUT, IF_REAL, "h_cut"),
|
||||
IOP ("nts", RELMODEL_MOD_NTS, IF_REAL, "Nts"),
|
||||
|
|
@ -23,20 +25,19 @@ IOP ("beta", RELMODEL_MOD_BETA, IF_REAL, "beta"),
|
|||
IOP ("tau_e", RELMODEL_MOD_TAUE, IF_REAL, "tau_e"),
|
||||
IOP ("beta1", RELMODEL_MOD_BETA1, IF_REAL, "beta1"),
|
||||
|
||||
IOP ("type", RELMODEL_MOD_TYPE, IF_INTEGER, "beta1"),
|
||||
IOP ("alpha_new", RELMODEL_MOD_ALPHA_NEW, IF_REAL, "alpha"),
|
||||
IOP ("b_new", RELMODEL_MOD_B_NEW, IF_REAL, "b"),
|
||||
IOP ("beta_new", RELMODEL_MOD_BETA_NEW, IF_REAL, "beta"),
|
||||
IOP ("e0_new", RELMODEL_MOD_E0_NEW, IF_REAL, "e0"),
|
||||
IOP ("k_new", RELMODEL_MOD_K_NEW, IF_REAL, "k"),
|
||||
IOP ("kb_new", RELMODEL_MOD_KB_NEW, IF_REAL, "Boltzmann Constant"),
|
||||
IOP ("tau_c_fast_new", RELMODEL_MOD_TAU_C_FAST_NEW, IF_REAL, "tau_c_fast"),
|
||||
IOP ("tau_c_slow_new", RELMODEL_MOD_TAU_C_SLOW_NEW, IF_REAL, "tau_c_slow"),
|
||||
IOP ("tau_e_fast_new", RELMODEL_MOD_TAU_E_FAST_NEW, IF_REAL, "tau_e_fast"),
|
||||
IOP ("tau_e_slow_new", RELMODEL_MOD_TAU_E_SLOW_NEW, IF_REAL, "tau_e_slow"),
|
||||
IOP ("t_r_new", RELMODEL_MOD_T_R_NEW, IF_REAL, "t_r"),
|
||||
IOP ("t_s_new", RELMODEL_MOD_T_S_NEW, IF_REAL, "t_s"),
|
||||
|
||||
IOP ("alpha_new", RELMODEL_MOD_ALPHA_NEW, IF_REAL, "beta1"),
|
||||
IOP ("b_new", RELMODEL_MOD_B_NEW, IF_REAL, "beta1"),
|
||||
IOP ("beta_new", RELMODEL_MOD_BETA_NEW, IF_REAL, "beta1"),
|
||||
IOP ("e0_new", RELMODEL_MOD_E0_NEW, IF_REAL, "beta1"),
|
||||
IOP ("k_new", RELMODEL_MOD_K_NEW, IF_REAL, "beta1"),
|
||||
IOP ("kb_new", RELMODEL_MOD_K_NEW, IF_REAL, "beta1"),
|
||||
IOP ("tau_c_fast_new", RELMODEL_MOD_TAU_C_FAST_NEW, IF_REAL, "beta1"),
|
||||
IOP ("tau_c_slow_new", RELMODEL_MOD_TAU_C_SLOW_NEW, IF_REAL, "beta1"),
|
||||
IOP ("tau_e_fast_new", RELMODEL_MOD_TAU_E_FAST_NEW, IF_REAL, "beta1"),
|
||||
IOP ("tau_e_slow_new", RELMODEL_MOD_TAU_E_SLOW_NEW, IF_REAL, "beta1"),
|
||||
IOP ("t_r_new", RELMODEL_MOD_T_R_NEW, IF_REAL, "beta1"),
|
||||
IOP ("t_s_new", RELMODEL_MOD_T_S_NEW, IF_REAL, "beta1"),
|
||||
IP ("relmodel", RELMODEL_MOD_RELMODEL, IF_FLAG, "Flag to indicate RELMODEL")
|
||||
} ;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,17 @@ RELMODELmAsk (CKTcircuit *ckt, GENmodel *inst, int which, IFvalue *value)
|
|||
|
||||
switch (which)
|
||||
{
|
||||
// RELMODEL type
|
||||
case RELMODEL_MOD_TYPE:
|
||||
value->iValue = model->RELMODELtype ;
|
||||
return (OK) ;
|
||||
|
||||
// RELMODEL flag
|
||||
case RELMODEL_MOD_RELMODEL:
|
||||
value->iValue = model->RELMODELrelmodel ;
|
||||
return (OK) ;
|
||||
|
||||
// 1: Giorgio Liatis (Sapienza University - DIET - Ultra Thin Oxide)
|
||||
case RELMODEL_MOD_KB:
|
||||
value->rValue = model->RELMODELk_b ;
|
||||
return (OK) ;
|
||||
|
|
@ -63,12 +74,53 @@ RELMODELmAsk (CKTcircuit *ckt, GENmodel *inst, int which, IFvalue *value)
|
|||
value->rValue = model->RELMODELbeta1 ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TYPE:
|
||||
value->iValue = model->RELMODELtype ;
|
||||
// 2: 65nm found over Internet
|
||||
case RELMODEL_MOD_ALPHA_NEW:
|
||||
value->rValue = model->RELMODELalpha_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_RELMODEL:
|
||||
value->iValue = model->RELMODELrelmodel ;
|
||||
case RELMODEL_MOD_B_NEW:
|
||||
value->rValue = model->RELMODELb_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_BETA_NEW:
|
||||
value->rValue = model->RELMODELbeta_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_E0_NEW:
|
||||
value->rValue = model->RELMODELe0_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_K_NEW:
|
||||
value->rValue = model->RELMODELk_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_KB_NEW:
|
||||
value->rValue = model->RELMODELkb_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_C_FAST_NEW:
|
||||
value->rValue = model->RELMODELtau_c_fast_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_C_SLOW_NEW:
|
||||
value->rValue = model->RELMODELtau_c_slow_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_E_FAST_NEW:
|
||||
value->rValue = model->RELMODELtau_e_fast_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_E_SLOW_NEW:
|
||||
value->rValue = model->RELMODELtau_e_slow_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_T_R_NEW:
|
||||
value->rValue = model->RELMODELt_r_new ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_T_S_NEW:
|
||||
value->rValue = model->RELMODELt_s_new ;
|
||||
return (OK) ;
|
||||
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -16,6 +16,19 @@ RELMODELmParam (int param, IFvalue *value, GENmodel *inMod)
|
|||
|
||||
switch (param)
|
||||
{
|
||||
// RELMODEL type
|
||||
case RELMODEL_MOD_TYPE:
|
||||
model->RELMODELtype = value->iValue ;
|
||||
model->RELMODELtypeGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
// RELMODEL flag
|
||||
case RELMODEL_MOD_RELMODEL:
|
||||
model->RELMODELrelmodel = 1 ;
|
||||
model->RELMODELrelmodelGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
// 1: Giorgio Liatis (Sapienza University - DIET - Ultra Thin Oxide)
|
||||
case RELMODEL_MOD_KB:
|
||||
model->RELMODELk_b = value->rValue ;
|
||||
model->RELMODELk_bGiven = TRUE ;
|
||||
|
|
@ -71,19 +84,68 @@ RELMODELmParam (int param, IFvalue *value, GENmodel *inMod)
|
|||
model->RELMODELbeta1Given = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TYPE:
|
||||
model->RELMODELtype = value->iValue ;
|
||||
model->RELMODELtypeGiven = TRUE ;
|
||||
// 2: 65nm found over Internet
|
||||
case RELMODEL_MOD_ALPHA_NEW:
|
||||
model->RELMODELalpha_new = value->rValue ;
|
||||
model->RELMODELalpha_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_RELMODEL:
|
||||
model->RELMODELrelmodel = 1 ;
|
||||
model->RELMODELrelmodelGiven = TRUE ;
|
||||
break ;
|
||||
case RELMODEL_MOD_B_NEW:
|
||||
model->RELMODELb_new = value->rValue ;
|
||||
model->RELMODELb_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_BETA_NEW:
|
||||
model->RELMODELbeta_new = value->rValue ;
|
||||
model->RELMODELbeta_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_E0_NEW:
|
||||
model->RELMODELe0_new = value->rValue ;
|
||||
model->RELMODELe0_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_K_NEW:
|
||||
model->RELMODELk_new = value->rValue ;
|
||||
model->RELMODELk_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_KB_NEW:
|
||||
model->RELMODELkb_new = value->rValue ;
|
||||
model->RELMODELkb_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_C_FAST_NEW:
|
||||
model->RELMODELtau_c_fast_new = value->rValue ;
|
||||
model->RELMODELtau_c_fast_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_C_SLOW_NEW:
|
||||
model->RELMODELtau_c_slow_new = value->rValue ;
|
||||
model->RELMODELtau_c_slow_new = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_E_FAST_NEW:
|
||||
model->RELMODELtau_e_fast_new = value->rValue ;
|
||||
model->RELMODELtau_e_fast_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_TAU_E_SLOW_NEW:
|
||||
model->RELMODELtau_e_slow_new = value->rValue ;
|
||||
model->RELMODELtau_e_slow_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_T_R_NEW:
|
||||
model->RELMODELt_r_new = value->rValue ;
|
||||
model->RELMODELt_r_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
case RELMODEL_MOD_T_S_NEW:
|
||||
model->RELMODELt_s_new = value->rValue ;
|
||||
model->RELMODELt_s_newGiven = TRUE ;
|
||||
return (OK) ;
|
||||
|
||||
default:
|
||||
return (E_BADPARM) ;
|
||||
}
|
||||
|
||||
return (OK) ;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,16 @@ RELMODELsetup (SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *state
|
|||
/* loop through all the RELMODEL device models */
|
||||
for ( ; model != NULL ; model = model->RELMODELnextModel)
|
||||
{
|
||||
// RELMODEL type
|
||||
// 1: Giorgio Liatis (Sapienza University - DIET - Ultra Thin Oxide)
|
||||
// 2: 65nm found over Internet
|
||||
|
||||
if (!model->RELMODELtypeGiven)
|
||||
{
|
||||
model->RELMODELtype = 2 ;
|
||||
}
|
||||
|
||||
// 1: Giorgio Liatis (Sapienza University - DIET - Ultra Thin Oxide)
|
||||
if (!model->RELMODELk_bGiven)
|
||||
{
|
||||
model->RELMODELk_b = 8.6e-5 ;
|
||||
|
|
@ -75,15 +85,7 @@ RELMODELsetup (SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *state
|
|||
model->RELMODELbeta1 = 0.112 ;
|
||||
}
|
||||
|
||||
/////
|
||||
|
||||
if (!model->RELMODELtypeGiven)
|
||||
{
|
||||
model->RELMODELtype = 2 ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2: 65nm found over Internet
|
||||
if (!model->RELMODELalpha_newGiven)
|
||||
{
|
||||
model->RELMODELalpha_new = 0.3 ;
|
||||
|
|
|
|||
Loading…
Reference in New Issue