IFparm MOS2mPTable[] = { /* model parameters */ OP("type", MOS2_MOD_TYPE, IF_STRING ,"N-channel or P-channel MOS"), IOP("vto", MOS2_MOD_VTO, IF_REAL ,"Threshold voltage"), IOPR("vt0", MOS2_MOD_VTO, IF_REAL ,"Threshold voltage"), IOP("kp", MOS2_MOD_KP, IF_REAL ,"Transconductance parameter"), IOP("gamma", MOS2_MOD_GAMMA, IF_REAL ,"Bulk threshold parameter"), IOP("phi", MOS2_MOD_PHI, IF_REAL ,"Surface potential"), IOP("lambda",MOS2_MOD_LAMBDA,IF_REAL ,"Channel length modulation"), IOP("rd", MOS2_MOD_RD, IF_REAL ,"Drain ohmic resistance"), IOP("rs", MOS2_MOD_RS, IF_REAL ,"Source ohmic resistance"), IOP("cbd", MOS2_MOD_CBD, IF_REAL ,"B-D junction capacitance"), IOP("cbs", MOS2_MOD_CBS, IF_REAL ,"B-S junction capacitance"), IOP("is", MOS2_MOD_IS, IF_REAL ,"Bulk junction sat. current"), IOP("pb", MOS2_MOD_PB, IF_REAL ,"Bulk junction potential"), IOPA("cgso", MOS2_MOD_CGSO, IF_REAL ,"Gate-source overlap cap."), IOPA("cgdo", MOS2_MOD_CGDO, IF_REAL ,"Gate-drain overlap cap."), IOPA("cgbo", MOS2_MOD_CGBO, IF_REAL ,"Gate-bulk overlap cap."), IOP("rsh", MOS2_MOD_RSH, IF_REAL ,"Sheet resistance"), IOPA("cj", MOS2_MOD_CJ, IF_REAL ,"Bottom junction cap per area"), IOP("mj", MOS2_MOD_MJ, IF_REAL ,"Bottom grading coefficient"), IOPA("cjsw", MOS2_MOD_CJSW, IF_REAL ,"Side junction cap per area"), IOP("mjsw", MOS2_MOD_MJSW, IF_REAL ,"Side grading coefficient"), IOP("js", MOS2_MOD_JS, IF_REAL ,"Bulk jct. sat. current density"), IOP("tox", MOS2_MOD_TOX, IF_REAL ,"Oxide thickness"), IOP("ld", MOS2_MOD_LD, IF_REAL ,"Lateral diffusion"), IOP("u0", MOS2_MOD_U0, IF_REAL ,"Surface mobility"), IOPR("uo", MOS2_MOD_U0, IF_REAL ,"Surface mobility"), IOP("fc", MOS2_MOD_FC, IF_REAL ,"Forward bias jct. fit parm."), IP("nmos", MOS2_MOD_NMOS, IF_FLAG ,"N type MOSfet model"), IP("pmos", MOS2_MOD_PMOS, IF_FLAG ,"P type MOSfet model"),
OPU( "sens_w_ph", MOS1_W_SENS_PH, IF_REAL, "sensitivity wrt w of ac phase"), OPU( "sens_w_cplx", MOS1_W_SENS_CPLX,IF_COMPLEX, "ac sensitivity wrt width") }; IFparm MOS1mPTable[] = { /* model parameters */ OP("type", MOS1_MOD_TYPE, IF_STRING, "N-channel or P-channel MOS"), IOP("vto", MOS1_MOD_VTO, IF_REAL ,"Threshold voltage"), IOPR("vt0", MOS1_MOD_VTO, IF_REAL ,"Threshold voltage"), IOP("kp", MOS1_MOD_KP, IF_REAL ,"Transconductance parameter"), IOP("gamma", MOS1_MOD_GAMMA, IF_REAL ,"Bulk threshold parameter"), IOP("phi", MOS1_MOD_PHI, IF_REAL ,"Surface potential"), IOP("lambda",MOS1_MOD_LAMBDA,IF_REAL ,"Channel length modulation"), IOP("rd", MOS1_MOD_RD, IF_REAL ,"Drain ohmic resistance"), IOP("rs", MOS1_MOD_RS, IF_REAL ,"Source ohmic resistance"), IOPA("cbd", MOS1_MOD_CBD, IF_REAL ,"B-D junction capacitance"), IOPA("cbs", MOS1_MOD_CBS, IF_REAL ,"B-S junction capacitance"), IOP("is", MOS1_MOD_IS, IF_REAL ,"Bulk junction sat. current"), IOP("pb", MOS1_MOD_PB, IF_REAL ,"Bulk junction potential"), IOPA("cgso", MOS1_MOD_CGSO, IF_REAL ,"Gate-source overlap cap."), IOPA("cgdo", MOS1_MOD_CGDO, IF_REAL ,"Gate-drain overlap cap."), IOPA("cgbo", MOS1_MOD_CGBO, IF_REAL ,"Gate-bulk overlap cap."), IOP("rsh", MOS1_MOD_RSH, IF_REAL ,"Sheet resistance"), IOPA("cj", MOS1_MOD_CJ, IF_REAL ,"Bottom junction cap per area"), IOP("mj", MOS1_MOD_MJ, IF_REAL ,"Bottom grading coefficient"), IOPA("cjsw", MOS1_MOD_CJSW, IF_REAL ,"Side junction cap per area"), IOP("mjsw", MOS1_MOD_MJSW, IF_REAL ,"Side grading coefficient"), IOP("js", MOS1_MOD_JS, IF_REAL ,"Bulk jct. sat. current density"), IOP("tox", MOS1_MOD_TOX, IF_REAL ,"Oxide thickness"), IOP("ld", MOS1_MOD_LD, IF_REAL ,"Lateral diffusion"), IOP("u0", MOS1_MOD_U0, IF_REAL ,"Surface mobility"),
IOPU( "m", CAP_M, IF_REAL, "Parallel multiplier"), IOPU( "scale", CAP_SCALE, IF_REAL, "Scale factor"), IP( "sens_cap", CAP_CAP_SENS, IF_FLAG, "flag to request sens. WRT cap."), OP( "i", CAP_CURRENT, IF_REAL, "Device current"), OP( "p", CAP_POWER, IF_REAL, "Instantaneous device power"), OPU( "sens_dc", CAP_QUEST_SENS_DC, IF_REAL, "dc sensitivity "), OPU( "sens_real", CAP_QUEST_SENS_REAL, IF_REAL, "real part of ac sensitivity"), OPU( "sens_imag", CAP_QUEST_SENS_IMAG, IF_REAL, "dc sens. & imag part of ac sens."), OPU( "sens_mag", CAP_QUEST_SENS_MAG, IF_REAL, "sensitivity of ac magnitude"), OPU( "sens_ph", CAP_QUEST_SENS_PH, IF_REAL, "sensitivity of ac phase"), OPU( "sens_cplx", CAP_QUEST_SENS_CPLX, IF_COMPLEX, "ac sensitivity") }; IFparm CAPmPTable[] = { /* names of model parameters */ IOPA( "cap", CAP_MOD_CAP, IF_REAL, "Model capacitance"), IOPA( "cj", CAP_MOD_CJ, IF_REAL, "Bottom Capacitance per area"), IOPA( "cjsw", CAP_MOD_CJSW, IF_REAL, "Sidewall capacitance per meter"), IOPX( "defw", CAP_MOD_DEFWIDTH, IF_REAL, "Default width"), IOPX( "defl", CAP_MOD_DEFLENGTH,IF_REAL, "Default length"), IOPA( "narrow", CAP_MOD_NARROW, IF_REAL, "width correction factor"), IOPA( "short", CAP_MOD_SHORT, IF_REAL, "length correction factor"), IOPA( "tc1", CAP_MOD_TC1, IF_REAL, "First order temp. coefficient"), IOPA( "tc2", CAP_MOD_TC2, IF_REAL, "Second order temp. coefficient"), IOPXU("tnom", CAP_MOD_TNOM, IF_REAL, "Parameter measurement temperature"), IOPA( "di", CAP_MOD_DI, IF_REAL, "Relative dielectric constant"), IOPA( "thick", CAP_MOD_THICK, IF_REAL, "Insulator thickness"), IP( "c", CAP_MOD_C, IF_FLAG, "Capacitor model") }; char *CAPnames[] = {
/* Model for uniform RC line */ IFparm URCpTable[] = { /* parameters */ IOPU( "l", URC_LEN, IF_REAL, "Length of transmission line"), IOPU( "n", URC_LUMPS, IF_REAL, "Number of lumps"), OPU( "pos_node",URC_POS_NODE,IF_INTEGER,"Positive node of URC"), OPU( "neg_node",URC_NEG_NODE,IF_INTEGER,"Negative node of URC"), OPU( "gnd", URC_GND_NODE,IF_INTEGER,"Ground node of URC") }; IFparm URCmPTable[] = { /* model parameters */ IOP( "k", URC_MOD_K, IF_REAL, "Propagation constant"), IOPA( "fmax", URC_MOD_FMAX, IF_REAL, "Maximum frequency of interest"), IOP( "rperl", URC_MOD_RPERL, IF_REAL, "Resistance per unit length"), IOPA( "cperl", URC_MOD_CPERL, IF_REAL, "Capacitance per unit length"), IOP( "isperl", URC_MOD_ISPERL, IF_REAL, "Saturation current per length"), IOP( "rsperl", URC_MOD_RSPERL, IF_REAL, "Diode resistance per length"), IP( "urc", URC_MOD_URC, IF_FLAG, "Uniform R.C. line model") }; char *URCnames[] = { "P1", "P2", "Ref" }; int URCnSize = NUMELEMS(URCnames); int URCpTSize = NUMELEMS(URCpTable);
OPU("p", JFET_POWER,IF_REAL,"Power dissipated by the JFET"), }; IFparm JFETmPTable[] = { /* model parameters */ OP("type", JFET_MOD_TYPE, IF_STRING, "N-type or P-type JFET model"), IP("njf", JFET_MOD_NJF, IF_FLAG,"N type JFET model"), IP("pjf", JFET_MOD_PJF, IF_FLAG,"P type JFET model"), IOP("vt0", JFET_MOD_VTO, IF_REAL,"Threshold voltage"), IOPR("vto", JFET_MOD_VTO, IF_REAL,"Threshold voltage"), IOP("beta", JFET_MOD_BETA, IF_REAL,"Transconductance parameter"), IOP("lambda", JFET_MOD_LAMBDA, IF_REAL,"Channel length modulation param."), IOP("rd", JFET_MOD_RD, IF_REAL,"Drain ohmic resistance"), OPU("gd", JFET_MOD_DRAINCONDUCT, IF_REAL,"Drain conductance"), IOP("rs", JFET_MOD_RS, IF_REAL,"Source ohmic resistance"), OPU("gs",JFET_MOD_SOURCECONDUCT,IF_REAL,"Source conductance"), IOPA("cgs", JFET_MOD_CGS, IF_REAL,"G-S junction capactance"), IOPA("cgd", JFET_MOD_CGD, IF_REAL,"G-D junction cap"), IOP("pb", JFET_MOD_PB, IF_REAL,"Gate junction potential"), IOP("is", JFET_MOD_IS, IF_REAL,"Gate junction saturation current"), IOP("fc", JFET_MOD_FC, IF_REAL,"Forward bias junction fit parm."), /* Modification for Sydney University JFET model */ IOP("b", JFET_MOD_B, IF_REAL,"Doping tail parameter"), /* end Sydney University mod. */ IOPU("tnom", JFET_MOD_TNOM, IF_REAL,"parameter measurement temperature"), IOP("kf", JFET_MOD_KF, IF_REAL, "Flicker Noise Coefficient"), IOP("af", JFET_MOD_AF, IF_REAL, "Flicker Noise Exponent"), IOP("tcv", JFET_MOD_TCV, IF_REAL, "Threshold voltage temperature coefficient"), IOP("bex", JFET_MOD_BEX, IF_REAL, "Mobility temperature exponent"), IOP("nlev",JFET_MOD_NLEV, IF_INTEGER, "Noise equation selector"), IOP("gdsnoi", JFET_MOD_GDSNOI, IF_REAL, "Channel noise coefficient") };
OPR( "c", DIO_CURRENT,IF_REAL, "Diode current"), OP( "vd", DIO_VOLTAGE,IF_REAL, "Diode voltage"), OPR( "voltage", DIO_VOLTAGE,IF_REAL, "Diode voltage"), OPU( "charge", DIO_CHARGE, IF_REAL, "Diode capacitor charge"), OPU( "capcur", DIO_CAPCUR, IF_REAL, "Diode capacitor current"), OP( "gd", DIO_CONDUCT,IF_REAL, "Diode conductance"), OPU( "p", DIO_POWER, IF_REAL, "Diode power"), IOPU( "temp", DIO_TEMP, IF_REAL, "Instance temperature"), OP( "cd", DIO_CAP, IF_REAL, "Diode capacitance") }; static IFparm DIOmPTable[] = { /* model parameters */ IOP( "is", DIO_MOD_IS, IF_REAL, "Saturation current"), IOP( "rs", DIO_MOD_RS, IF_REAL, "Ohmic resistance"), IOP( "n", DIO_MOD_N, IF_REAL, "Emission Coefficient"), IOPA("tt", DIO_MOD_TT, IF_REAL, "Transit Time"), IOPA("cjo", DIO_MOD_CJO, IF_REAL, "Junction capacitance"), IOPR("cj0", DIO_MOD_CJO, IF_REAL, "Junction capacitance"), IOP( "vj", DIO_MOD_VJ, IF_REAL, "Junction potential"), IOP( "m", DIO_MOD_M, IF_REAL, "Grading coefficient"), IOP( "eg", DIO_MOD_EG, IF_REAL, "Activation energy"), IOP( "xti", DIO_MOD_XTI, IF_REAL, "Saturation current temperature exp."), IOP( "fc", DIO_MOD_FC, IF_REAL, "Forward bias junction fit parameter"), IOP( "bv", DIO_MOD_BV, IF_REAL, "Reverse breakdown voltage"), IOP( "ibv", DIO_MOD_IBV, IF_REAL, "Current at reverse breakdown voltage"), OPU( "cond",DIO_MOD_COND,IF_REAL, "Ohmic conductance"), IP( "d", DIO_MOD_D, IF_FLAG, "Diode model"), IOPU("tnom",DIO_MOD_TNOM,IF_REAL, "Parameter measurement temperature"), IP( "kf", DIO_MOD_KF, IF_REAL, "flicker noise coefficient"), IP( "af", DIO_MOD_AF, IF_REAL, "flicker noise exponent") };