IOPAU( "v1", LTRA_V1, IF_REAL , "Initial voltage at end 1"), IOPAU( "v2", LTRA_V2, IF_REAL , "Initial voltage at end 2"), IOPAU( "i1", LTRA_I1, IF_REAL , "Initial current at end 1"), IOPAU( "i2", LTRA_I2, IF_REAL , "Initial current at end 2"), IP("ic", LTRA_IC, IF_REALVEC,"Initial condition vector:v1,i1,v2,i2"), OPU("pos_node1", LTRA_POS_NODE1,IF_INTEGER,"Positive node of end 1 of t-line"), OPU("neg_node1", LTRA_NEG_NODE1,IF_INTEGER,"Negative node of end 1 of t.line"), OPU("pos_node2", LTRA_POS_NODE2,IF_INTEGER,"Positive node of end 2 of t-line"), OPU("neg_node2", LTRA_NEG_NODE2,IF_INTEGER,"Negative node of end 2 of t-line") }; IFparm LTRAmPTable[] = { /* model parameters */ IOP( "ltra", LTRA_MOD_LTRA, IF_FLAG, "LTRA model"), IOPU( "r", LTRA_MOD_R, IF_REAL , "Resistance per metre"), IOPAU( "l", LTRA_MOD_L, IF_REAL , "Inductance per metre"), IOPR( "g", LTRA_MOD_G, IF_REAL , "Conductance per metre"), IOPAU( "c", LTRA_MOD_C, IF_REAL , "Capacitance per metre"), IOPU( "len", LTRA_MOD_LEN, IF_REAL , "length of line"), OP( "rel", LTRA_MOD_RELTOL, IF_REAL, "Rel. rate of change of deriv. for bkpt"), OP( "abs", LTRA_MOD_ABSTOL, IF_REAL, "Abs. rate of change of deriv. for bkpt"), IOPU("nocontrol", LTRA_MOD_NOCONTROL, IF_FLAG, "No timestep control"), IOPU( "steplimit", LTRA_MOD_STEPLIMIT, IF_FLAG, "always limit timestep to 0.8*(delay of line)"), IOPU( "nosteplimit", LTRA_MOD_NOSTEPLIMIT, IF_FLAG, "don't always limit timestep to 0.8*(delay of line)"), IOPU( "lininterp", LTRA_MOD_LININTERP, IF_FLAG, "use linear interpolation"), IOPU("quadinterp", LTRA_MOD_QUADINTERP, IF_FLAG, "use quadratic interpolation"), IOPU("mixedinterp", LTRA_MOD_MIXEDINTERP, IF_FLAG, "use linear interpolation if quadratic results look unacceptable"), IOPU("truncnr", LTRA_MOD_TRUNCNR, IF_FLAG,
OPU( "sens_w_real", MOS2_W_SENS_REAL, IF_REAL, "dc sensitivity and real part of ac sensitivity wrt width"), OPU( "sens_w_imag", MOS2_W_SENS_IMAG, IF_REAL, "imag part of ac sensitivity wrt width"), OPU( "sens_w_mag", MOS2_W_SENS_MAG, IF_REAL, "sensitivity wrt w of ac magnitude"), OPU( "sens_w_ph", MOS2_W_SENS_PH, IF_REAL, "sensitivity wrt w of ac phase"), OPU( "sens_w_cplx", MOS2_W_SENS_CPLX, IF_COMPLEX, "ac sensitivity wrt width") }; 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"),
INDask, NULL, INDpzLoad, NULL, NULL, /* DISTO */ NULL, /* NOISE */ &INDiSize, &INDmSize }; #ifdef MUTUAL static IFparm MUTpTable[] = { /* parameters */ IOPAP("k", MUT_COEFF,IF_REAL, "Mutual inductance"), IOPR( "coefficient",MUT_COEFF,IF_REAL, "Mutual inductance"), IOP( "inductor1", MUT_IND1, IF_INSTANCE, "First coupled inductor"), IOP( "inductor2", MUT_IND2, IF_INSTANCE, "Second coupled inductor"), }; /* model parameters */ /* static IFparm MUTmPTable[] = { }; */ static IFkeys MUTkeys[] = { { 'k', 0, NULL, 0, 2 }, }; static int MUTkSize = NUMELEMS(MUTkeys); static int MUTpTSize = NUMELEMS(MUTpTable); static int MUTmPTSize = 0;
OPU("qbx", VBIC_QUEST_QBX, IF_REAL, "Charge storage B-X junction"), OPU("cqbx", VBIC_QUEST_CQBX, IF_REAL, "Cap. due to charge storage in B-X jct."), OPU("sens_dc", VBIC_QUEST_SENS_DC, IF_REAL, "DC sensitivity "), OPU("sens_real",VBIC_QUEST_SENS_REAL, IF_REAL, "Real part of AC sensitivity"), OPU("sens_imag",VBIC_QUEST_SENS_IMAG,IF_REAL, "DC sens. & imag part of AC sens."), OPU("sens_mag", VBIC_QUEST_SENS_MAG, IF_REAL, "Sensitivity of AC magnitude"), OPU("sens_ph", VBIC_QUEST_SENS_PH, IF_REAL, "Sensitivity of AC phase"), OPU("sens_cplx",VBIC_QUEST_SENS_CPLX, IF_COMPLEX, "AC sensitivity") }; IFparm VBICmPTable[] = { /* model parameters */ OP("type", VBIC_MOD_TYPE, IF_STRING, "NPN or PNP"), IOPU("npn", VBIC_MOD_NPN, IF_FLAG, "NPN type device"), IOPU("pnp", VBIC_MOD_PNP, IF_FLAG, "PNP type device"), IOP("tnom", VBIC_MOD_TNOM, IF_REAL, "Parameter measurement temperature"), IOPR("tref", VBIC_MOD_TNOM, IF_REAL, "Parameter measurement temperature"), IOP("rcx", VBIC_MOD_RCX, IF_REAL, "Extrinsic coll resistance"), IOP("rci", VBIC_MOD_RCI, IF_REAL, "Intrinsic coll resistance"), IOP("vo", VBIC_MOD_VO, IF_REAL, "Epi drift saturation voltage"), IOP("gamm", VBIC_MOD_GAMM, IF_REAL, "Epi doping parameter"), IOP("hrcf", VBIC_MOD_HRCF, IF_REAL, "High current RC factor"), IOP("rbx", VBIC_MOD_RBX, IF_REAL, "Extrinsic base resistance"), IOP("rbi", VBIC_MOD_RBI, IF_REAL, "Intrinsic base resistance"), IOP("re", VBIC_MOD_RE, IF_REAL, "Intrinsic emitter resistance"), IOP("rs", VBIC_MOD_RS, IF_REAL, "Intrinsic substrate resistance"), IOP("rbp", VBIC_MOD_RBP, IF_REAL, "Parasitic base resistance"), IOP("is", VBIC_MOD_IS, IF_REAL, "Transport saturation current"), IOP("nf", VBIC_MOD_NF, IF_REAL, "Forward emission coefficient"), IOP("nr", VBIC_MOD_NR, IF_REAL, "Reverse emission coefficient"), IOP("fc", VBIC_MOD_FC, IF_REAL, "Fwd bias depletion capacitance limit"), IOP("cbeo", VBIC_MOD_CBEO, IF_REAL, "Extrinsic B-E overlap capacitance"),
IOP( "kt2", B3SOIFD_MOD_KT2, IF_REAL, "Body-coefficient of kt1"), IOP( "k2", B3SOIFD_MOD_K2, IF_REAL, "Bulk effect coefficient 2"), IOP( "k3", B3SOIFD_MOD_K3, IF_REAL, "Narrow width effect coefficient"), IOP( "k3b", B3SOIFD_MOD_K3B, IF_REAL, "Body effect coefficient of k3"), IOP( "w0", B3SOIFD_MOD_W0, IF_REAL, "Narrow width effect parameter"), IOP( "nlx", B3SOIFD_MOD_NLX, IF_REAL, "Lateral non-uniform doping effect"), IOP( "dvt0", B3SOIFD_MOD_DVT0, IF_REAL, "Short channel effect coeff. 0"), IOP( "dvt1", B3SOIFD_MOD_DVT1, IF_REAL, "Short channel effect coeff. 1"), IOP( "dvt2", B3SOIFD_MOD_DVT2, IF_REAL, "Short channel effect coeff. 2"), IOP( "dvt0w", B3SOIFD_MOD_DVT0W, IF_REAL, "Narrow Width coeff. 0"), IOP( "dvt1w", B3SOIFD_MOD_DVT1W, IF_REAL, "Narrow Width effect coeff. 1"), IOP( "dvt2w", B3SOIFD_MOD_DVT2W, IF_REAL, "Narrow Width effect coeff. 2"), IOP( "drout", B3SOIFD_MOD_DROUT, IF_REAL, "DIBL coefficient of output resistance"), IOP( "dsub", B3SOIFD_MOD_DSUB, IF_REAL, "DIBL coefficient in the subthreshold region"), IOP( "vth0", B3SOIFD_MOD_VTH0, IF_REAL,"Threshold voltage"), IOPR("vtho", B3SOIFD_MOD_VTH0, IF_REAL,"Threshold voltage"), IOP( "ua", B3SOIFD_MOD_UA, IF_REAL, "Linear gate dependence of mobility"), IOP( "ua1", B3SOIFD_MOD_UA1, IF_REAL, "Temperature coefficient of ua"), IOP( "ub", B3SOIFD_MOD_UB, IF_REAL, "Quadratic gate dependence of mobility"), IOP( "ub1", B3SOIFD_MOD_UB1, IF_REAL, "Temperature coefficient of ub"), IOP( "uc", B3SOIFD_MOD_UC, IF_REAL, "Body-bias dependence of mobility"), IOP( "uc1", B3SOIFD_MOD_UC1, IF_REAL, "Temperature coefficient of uc"), IOP( "u0", B3SOIFD_MOD_U0, IF_REAL, "Low-field mobility at Tnom"), IOP( "ute", B3SOIFD_MOD_UTE, IF_REAL, "Temperature coefficient of mobility"), IOP( "voff", B3SOIFD_MOD_VOFF, IF_REAL, "Threshold voltage offset"), IOP( "tnom", B3SOIFD_MOD_TNOM, IF_REAL, "Parameter measurement temperature"), IOP( "cgso", B3SOIFD_MOD_CGSO, IF_REAL, "Gate-source overlap capacitance per width"), IOP( "cgdo", B3SOIFD_MOD_CGDO, IF_REAL, "Gate-drain overlap capacitance per width"), IOP( "cgeo", B3SOIFD_MOD_CGEO, IF_REAL, "Gate-substrate overlap capacitance"), IOP( "xpart", B3SOIFD_MOD_XPART, IF_REAL, "Channel charge partitioning"), IOP( "delta", B3SOIFD_MOD_DELTA, IF_REAL, "Effective Vds parameter"),
"L+", "L-" }; int INDnSize = NUMELEMS(INDnames); int INDpTSize = NUMELEMS(INDpTable); int INDmPTSize = 0; int INDiSize = sizeof(INDinstance); int INDmSize = sizeof(INDmodel); #ifdef MUTUAL IFparm MUTpTable[] = { /* parameters */ IOPAP( "k", MUT_COEFF, IF_REAL , "Mutual inductance"), IOPR( "coefficient", MUT_COEFF, IF_REAL , ""), IOP( "inductor1", MUT_IND1, IF_INSTANCE, "First coupled inductor"), IOP( "inductor2", MUT_IND2, IF_INSTANCE, "Second coupled inductor"), IP( "sens_coeff", MUT_COEFF_SENS, IF_FLAG, "flag to request sensitivity WRT coupling factor"), OPU( "sens_dc", MUT_QUEST_SENS_DC, IF_REAL, "dc sensitivity "), OPU( "sens_real", MUT_QUEST_SENS_REAL, IF_REAL, "real part of ac sensitivity"), OPU( "sens_imag", MUT_QUEST_SENS_IMAG, IF_REAL, "dc sensitivity and imag part of ac sensitivty"), OPU( "sens_mag", MUT_QUEST_SENS_MAG, IF_REAL, "sensitivity of AC magnitude"), OPU( "sens_ph", MUT_QUEST_SENS_PH, IF_REAL, "sensitivity of AC phase"), OPU( "sens_cplx", MUT_QUEST_SENS_CPLX, IF_COMPLEX, "ac sensitivity") }; int MUTnSize = NUMELEMS(INDnames); int MUTpTSize = NUMELEMS(MUTpTable);
OP("ggd", JFET_GGD, IF_REAL, "Conductance G-D"), OPU("qgs", JFET_QGS, IF_REAL,"Charge storage G-S junction"), OPU("qgd", JFET_QGD, IF_REAL,"Charge storage G-D junction"), OPU("cqgs",JFET_CQGS, IF_REAL, "Capacitance due to charge storage G-S junction"), OPU("cqgd",JFET_CQGD, IF_REAL, "Capacitance due to charge storage G-D junction"), 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"),
OPU("sens_w_real",MOS3_W_SENS_REAL, IF_REAL, "real part of ac sensitivity wrt width"), OPU("sens_w_imag",MOS3_W_SENS_IMAG, IF_REAL, "imag part of ac sensitivity wrt width"), OPU("sens_w_mag", MOS3_W_SENS_MAG, IF_REAL, "sensitivity wrt w of ac magnitude"), OPU("sens_w_ph", MOS3_W_SENS_PH, IF_REAL, "sensitivity wrt w of ac phase"), OPU("sens_w_cplx",MOS3_W_SENS_CPLX, IF_COMPLEX, "ac sensitivity wrt width") }; IFparm MOS3mPTable[] = { /* model parameters */ OP("type", MOS3_MOD_TYPE, IF_STRING ,"N-channel or P-channel MOS"), IP("nmos", MOS3_MOD_NMOS, IF_FLAG ,"N type MOSfet model"), IP("pmos", MOS3_MOD_PMOS, IF_FLAG ,"P type MOSfet model"), IOP("vto", MOS3_MOD_VTO, IF_REAL ,"Threshold voltage"), IOPR("vt0", MOS3_MOD_VTO, IF_REAL ,"Threshold voltage"), IOP("kp", MOS3_MOD_KP, IF_REAL ,"Transconductance parameter"), IOP("gamma", MOS3_MOD_GAMMA, IF_REAL ,"Bulk threshold parameter"), IOP("phi", MOS3_MOD_PHI, IF_REAL ,"Surface potential"), IOP("rd", MOS3_MOD_RD, IF_REAL ,"Drain ohmic resistance"), IOP("rs", MOS3_MOD_RS, IF_REAL ,"Source ohmic resistance"), IOPA("cbd", MOS3_MOD_CBD, IF_REAL ,"B-D junction capacitance"), IOPA("cbs", MOS3_MOD_CBS, IF_REAL ,"B-S junction capacitance"), IOP("is", MOS3_MOD_IS, IF_REAL ,"Bulk junction sat. current"), IOP("pb", MOS3_MOD_PB, IF_REAL ,"Bulk junction potential"), IOPA("cgso", MOS3_MOD_CGSO, IF_REAL ,"Gate-source overlap cap."), IOPA("cgdo", MOS3_MOD_CGDO, IF_REAL ,"Gate-drain overlap cap."), IOPA("cgbo", MOS3_MOD_CGBO, IF_REAL ,"Gate-bulk overlap cap."), IOP("rsh", MOS3_MOD_RSH, IF_REAL ,"Sheet resistance"), IOPA("cj", MOS3_MOD_CJ, IF_REAL ,"Bottom junction cap per area"), IOP("mj", MOS3_MOD_MJ, IF_REAL ,"Bottom grading coefficient"),
/*************************************************************************** JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992 Copyright 1990 Regents of the University of California. All rights reserved. Authors: 1985 Thomas L. Quarles 1993 Stephen R. Whiteley ****************************************************************************/ #include "spice.h" #include <stdio.h> #include "tradefs.h" #include "uflags.h" static IFparm TRApTable[] = { /* parameters */ IOPU( "z0", TRA_Z0, IF_REAL, "Characteristic impedance"), IOPR( "zo", TRA_Z0, IF_REAL, "Characteristic impedance"), IOPAU( "f", TRA_FREQ, IF_REAL, "Frequency"), IOPAU( "td", TRA_TD, IF_REAL, "Transmission delay"), IOPAU( "nl", TRA_NL, IF_REAL, "Normalized length at frequency given"), IOPAU( "v1", TRA_V1, IF_REAL, "Initial voltage at end 1"), IOPAU( "v2", TRA_V2, IF_REAL, "Initial voltage at end 2"), IOPAU( "i1", TRA_I1, IF_REAL, "Initial current at end 1"), IOPAU( "i2", TRA_I2, IF_REAL, "Initial current at end 2"), IP( "ic", TRA_IC, IF_REALVEC,"Initial condition vector:v1,i1,v2,i2"), OP( "rel", TRA_RELTOL,IF_REAL, "Rel. rate of change of deriv. for bkpt"), OP( "abs", TRA_ABSTOL,IF_REAL, "Abs. rate of change of deriv. for bkpt"), OPU( "pos_node1", TRA_POS_NODE1, IF_INTEGER, "Positive node of end 1 of t. line"), OPU( "neg_node1", TRA_NEG_NODE1, IF_INTEGER, "Negative node of end 1 of t. line"), OPU( "pos_node2", TRA_POS_NODE2, IF_INTEGER,
OP("ggs", JFET2_GGS, IF_REAL, "Conductance G-S"), OP("ggd", JFET2_GGD, IF_REAL, "Conductance G-D"), OPU("qgs", JFET2_QGS, IF_REAL, "Charge storage G-S junction"), OPU("qgd", JFET2_QGD, IF_REAL, "Charge storage G-D junction"), OPU("cqgs", JFET2_CQGS, IF_REAL, "Capacitance due to charge storage G-S junction"), OPU("cqgd", JFET2_CQGD, IF_REAL, "Capacitance due to charge storage G-D junction"), OPU("p", JFET2_POWER,IF_REAL, "Power dissipated by the JFET2"), OPU("vtrap",JFET2_VTRAP,IF_REAL, "Quiescent drain feedback potential"), OPU("vpave",JFET2_PAVE, IF_REAL, "Quiescent power dissipation"), }; IFparm JFET2mPTable[] = { /* model parameters */ OP("type", JFET2_MOD_TYPE, IF_STRING, "N-type or P-type JFET2 model"), IOP("njf", JFET2_MOD_NJF, IF_FLAG,"N type JFET2 model"), IOP("pjf", JFET2_MOD_PJF, IF_FLAG,"P type JFET2 model"), IOPR("vt0", JFET2_MOD_VTO, IF_REAL,"Threshold voltage"), IOPR("vbi", JFET2_MOD_PB, IF_REAL,"Gate junction potential"), #define PARAM(code,id,flag,ref,default,descrip) IOP(code,id,IF_REAL,descrip), #define PARAMA(code,id,flag,ref,default,descrip) IOPA(code,id,IF_REAL,descrip), #include "jfet2parm.h" OPU("gd", JFET2_MOD_DRAINCONDUCT, IF_REAL,"Drain conductance"), OPU("gs", JFET2_MOD_SOURCECONDUCT,IF_REAL,"Source conductance"), IOPU("tnom", JFET2_MOD_TNOM, IF_REAL,"parameter measurement temperature"), }; char *JFET2names[] = { "Drain", "Gate", "Source"
OP("gm", HFETA_GM, IF_REAL,"Transconductance"), OP("gds", HFETA_GDS, IF_REAL,"Drain-Source conductance"), OP("ggs", HFETA_GGS, IF_REAL,"Gate-Source conductance"), OP("ggd", HFETA_GGD, IF_REAL,"Gate-Drain conductance"), OP("qgs", HFETA_QGS, IF_REAL,"Gate-Source charge storage"), OP("cqgs", HFETA_CQGS, IF_REAL,"Capacitance due to gate-source charge storage"), OP("qgd", HFETA_QGD, IF_REAL,"Gate-Drain charge storage"), OP("cqgd", HFETA_CQGD, IF_REAL,"Capacitance due to gate-drain charge storage"), OP("cs", HFETA_CS, IF_REAL ,"Source current"), OP("p", HFETA_POWER, IF_REAL ,"Power dissipated by the mesfet") }; IFparm HFETAmPTable[] = { /* model parameters */ IOP( "vt0", HFETA_MOD_VTO, IF_REAL,"Pinch-off voltage"), IOPR("vto", HFETA_MOD_VTO, IF_REAL,"Pinch-off voltage"), IOP( "lambda", HFETA_MOD_LAMBDA, IF_REAL,"Output conductance parameter"), IOP( "rd", HFETA_MOD_RD, IF_REAL,"Drain ohmic resistance"), IOP( "rs", HFETA_MOD_RS, IF_REAL,"Source ohmic resistance"), IOP( "rg", HFETA_MOD_RG, IF_REAL,"Gate ohmic resistance"), IOP( "rdi", HFETA_MOD_RDI, IF_REAL,"Drain ohmic resistance"), IOP( "rsi", HFETA_MOD_RSI, IF_REAL,"Source ohmic resistance"), IOP( "rgs", HFETA_MOD_RGS, IF_REAL,"Gate-source ohmic resistance"), IOP( "rgd", HFETA_MOD_RGD, IF_REAL,"Gate-drain ohmic resistance"), IOP( "ri", HFETA_MOD_RI, IF_REAL,""), IOP( "rf", HFETA_MOD_RF, IF_REAL,""), IOP( "eta", HFETA_MOD_ETA, IF_REAL,"Subthreshold ideality factor"), IOP( "m", HFETA_MOD_M, IF_REAL,"Knee shape parameter"), IOP( "mc", HFETA_MOD_MC, IF_REAL,"Knee shape parameter"), IOP( "gamma", HFETA_MOD_GAMMA, IF_REAL,"Knee shape parameter"), IOP( "sigma0", HFETA_MOD_SIGMA0, IF_REAL,"Threshold voltage coefficient"),
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") }; static char *DIOnames[] = {