Exemplo n.º 1
0
Modified by Paolo Nenzi 2002
File: b3soifd.c          98/5/01
**********/

/*
 * Revision 2.1  99/9/27 Pin Su 
 * BSIMFD2.1 release
 */

#include "ngspice/ngspice.h"
#include "ngspice/devdefs.h"
#include "b3soifddef.h"
#include "ngspice/suffix.h"

IFparm B3SOIFDpTable[] = { /* parameters */
IOP( "l",   B3SOIFD_L,      IF_REAL   , "Length"),
IOP( "w",   B3SOIFD_W,      IF_REAL   , "Width"),
IOP( "m",   B3SOIFD_M,      IF_REAL   , "Parallel Multiplier"),
IOP( "ad",  B3SOIFD_AD,     IF_REAL   , "Drain area"),
IOP( "as",  B3SOIFD_AS,     IF_REAL   , "Source area"),
IOP( "pd",  B3SOIFD_PD,     IF_REAL   , "Drain perimeter"),
IOP( "ps",  B3SOIFD_PS,     IF_REAL   , "Source perimeter"),
IOP( "nrd", B3SOIFD_NRD,    IF_REAL   , "Number of squares in drain"),
IOP( "nrs", B3SOIFD_NRS,    IF_REAL   , "Number of squares in source"),
IOP( "off", B3SOIFD_OFF,    IF_FLAG   , "Device is initially off"),
IP( "ic",  B3SOIFD_IC,     IF_REALVEC , "Vector of DS,GS,BS initial voltages"),
OP( "gmbs",         B3SOIFD_GMBS,       IF_REAL,    "Gmb"),
OP( "gm",           B3SOIFD_GM,         IF_REAL,    "Gm"),
OP( "gm/ids",       B3SOIFD_GMID,       IF_REAL,    "Gm/Ids"),
OP( "gds",          B3SOIFD_GDS,        IF_REAL,    "Gds"),
OP( "vdsat",        B3SOIFD_VDSAT,      IF_REAL,    "Vdsat"),
Exemplo n.º 2
0
 OPU("cqbc", VBIC_QUEST_CQBC, IF_REAL, "Cap. due to charge storage in B-C jct."),
 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"),
 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"),
Exemplo n.º 3
0
 OPU( "sens_l_cplx",  MOS1_L_SENS_CPLX,IF_COMPLEX, "ac sensitivity wrt length"),
 OPU( "sens_w_dc",    MOS1_W_SENS_DC,  IF_REAL,    "dc sensitivity wrt width"),
 OPU( "sens_w_real",  MOS1_W_SENS_REAL,IF_REAL,    
        "real part of ac sensitivity wrt width"),
 OPU( "sens_w_imag",  MOS1_W_SENS_IMAG,IF_REAL,    
        "imag part of ac sensitivity wrt width"),
 OPU( "sens_w_mag",   MOS1_W_SENS_MAG, IF_REAL,    
        "sensitivity wrt w of ac magnitude"),
 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"),
Exemplo n.º 4
0
 IOPAU("ic",      DIO_IC,     IF_REAL, "Initial device voltage"),
 IOPU( "off",     DIO_OFF,    IF_FLAG, "Initially off"),
 OP(   "id",      DIO_CURRENT,IF_REAL, "Diode current"),
 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"),
Exemplo n.º 5
0
/**********
Copyright 1990 Regents of the University of California.  All rights reserved.
Author: 1995 Min-Chie Jeng and Mansun Chan.
Modified by Paolo Nenzi 2002
File: b3v1s.c
**********/

#include "ngspice.h"
#include "devdefs.h"
#include "bsim3v1sdef.h"
#include "suffix.h"

IFparm BSIM3v1SpTable[] = { /* parameters */
IOP( "l",   BSIM3v1S_L,      IF_REAL   , "Length"),
IOP( "w",   BSIM3v1S_W,      IF_REAL   , "Width"),
IOP( "ad",  BSIM3v1S_AD,     IF_REAL   , "Drain area"),
IOP( "as",  BSIM3v1S_AS,     IF_REAL   , "Source area"),
IOP( "pd",  BSIM3v1S_PD,     IF_REAL   , "Drain perimeter"),
IOP( "ps",  BSIM3v1S_PS,     IF_REAL   , "Source perimeter"),
IOP( "nrd", BSIM3v1S_NRD,    IF_REAL   , "Number of squares in drain"),
IOP( "nrs", BSIM3v1S_NRS,    IF_REAL   , "Number of squares in source"),
IOP( "off", BSIM3v1S_OFF,    IF_FLAG   , "Device is initially off"),
IOP( "nqsmod", BSIM3v1S_NQSMOD, IF_INTEGER, "Non-quasi-static model selector"),
IP( "ic",  BSIM3v1S_IC,     IF_REALVEC , "Vector of DS,GS,BS initial voltages"),
OP( "gmbs",         BSIM3v1S_GMBS,       IF_REAL,    "Gmb"),
OP( "gm",           BSIM3v1S_GM,         IF_REAL,    "Gm"),
OP( "gds",          BSIM3v1S_GDS,        IF_REAL,    "Gds"),
OP( "vdsat",        BSIM3v1S_VDSAT,      IF_REAL,    "Vdsat"),
OP( "vth",          BSIM3v1S_VON,        IF_REAL,    "Vth"),
OP( "id",           BSIM3v1S_CD,         IF_REAL,    "Ids"),
OP( "vbs",          BSIM3v1S_VBS,        IF_REAL,    "Vbs"),
Exemplo n.º 6
0
#include "suffix.h"

IFparm LTRApTable[] = { /* parameters */ 
 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"),
Exemplo n.º 7
0
/**********
Copyright 1990 Regents of the University of California.  All rights reserved.
Author: 1987 Thomas L. Quarles
**********/

#include "ngspice/ngspice.h"
#include "ngspice/devdefs.h"
#include "ngspice/ifsim.h"
#include "vccsdefs.h"
#include "ngspice/suffix.h"

IFparm VCCSpTable[] = { /* parameters */ 
 IOPU("gain",       VCCS_TRANS, IF_REAL, "Transconductance of source (gain)"),
 IOP ( "m",      VCCS_M,         IF_REAL   , "Parallel multiplier"),
 IP("sens_trans",  VCCS_TRANS_SENS,IF_FLAG,
        "flag to request sensitivity WRT transconductance"),
 OPU("pos_node",    VCCS_POS_NODE, IF_INTEGER, "Positive node of source"),
 OPU("neg_node",    VCCS_NEG_NODE, IF_INTEGER, "Negative node of source"),
 OPU("cont_p_node",VCCS_CONT_P_NODE,IF_INTEGER,
				"Positive node of contr. source"),
 OPU("cont_n_node",VCCS_CONT_N_NODE,IF_INTEGER,
				"Negative node of contr. source"),
 IP("ic",          VCCS_IC, IF_REAL, "Initial condition of controlling source"),
 OP("i",            VCCS_CURRENT,IF_REAL, "Output current"),
 OP("v",            VCCS_VOLTS,IF_REAL, "Voltage across output"),
 OP("p",            VCCS_POWER,  IF_REAL, "Power"),
 OPU("sens_dc",   VCCS_QUEST_SENS_DC,       IF_REAL,    "dc sensitivity "),
 OPU("sens_real", VCCS_QUEST_SENS_REAL, IF_REAL, "real part of ac sensitivity"),
 OPU("sens_imag", VCCS_QUEST_SENS_IMAG, IF_REAL, "imag part of ac sensitivity"),
 OPU("sens_mag",  VCCS_QUEST_SENS_MAG,  IF_REAL, "sensitivity of ac magnitude"),
 OPU("sens_ph",   VCCS_QUEST_SENS_PH,   IF_REAL,  "sensitivity of ac phase"),
Exemplo n.º 8
0
 OP("ggs",          JFET_GGS,            IF_REAL,   "Conductance G-S"),
 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. */
Exemplo n.º 9
0
#include "suffix.h"

/*
	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);
Exemplo n.º 10
0
#include "suffix.h"

IFparm LTRApTable[] = {		/* parameters */
  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"),
Exemplo n.º 11
0
    OPU("sens_w_dc",  MOS3_W_SENS_DC,   IF_REAL, "dc sensitivity wrt width"),
    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"),
Exemplo n.º 12
0
 * Copyright 2000 Regents of the University of California. All rights reserved.
 * File: b4.c of BSIM4.2.0.
 * Authors: Weidong Liu, Xuemei Xi, Kanyu M. Cao, Xiaodong Jin, Chenming Hu.
 * Project Director: Prof. Chenming Hu.
 *
 * Modified by Xuemei Xi, 04/06/2001.
 **********/

#include "spice.h"
#include <stdio.h>
#include "devdefs.h"
#include "bsim4def.h"
#include "suffix.h"

IFparm BSIM4pTable[] = { /* parameters */
IOP( "l",   BSIM4_L,      IF_REAL   , "Length"),
IOP( "w",   BSIM4_W,      IF_REAL   , "Width"),
IOP( "nf",  BSIM4_NF,     IF_REAL   , "Number of fingers"),
IOP( "min",  BSIM4_MIN,   IF_INTEGER , "Minimize either D or S"),
IOP( "ad",  BSIM4_AD,     IF_REAL   , "Drain area"),
IOP( "as",  BSIM4_AS,     IF_REAL   , "Source area"),
IOP( "pd",  BSIM4_PD,     IF_REAL   , "Drain perimeter"),
IOP( "ps",  BSIM4_PS,     IF_REAL   , "Source perimeter"),
IOP( "nrd", BSIM4_NRD,    IF_REAL   , "Number of squares in drain"),
IOP( "nrs", BSIM4_NRS,    IF_REAL   , "Number of squares in source"),
IOP( "off", BSIM4_OFF,    IF_FLAG   , "Device is initially off"),
IOP( "rbdb", BSIM4_RBDB,  IF_REAL   , "Body resistance"),
IOP( "rbsb", BSIM4_RBSB,  IF_REAL   , "Body resistance"),
IOP( "rbpb", BSIM4_RBPB,  IF_REAL   , "Body resistance"),
IOP( "rbps", BSIM4_RBPS,  IF_REAL   , "Body resistance"),
IOP( "rbpd", BSIM4_RBPD,  IF_REAL   , "Body resistance"),
Exemplo n.º 13
0
Arquivo: hfet.c Projeto: imr/ngspice
/**********
Imported from MacSpice3f4 - Antony Wilson
Modified: Paolo Nenzi
**********/

#include "ngspice/ngspice.h"
#include "ngspice/ifsim.h"
#include "ngspice/devdefs.h"
#include "hfetdefs.h"
#include "ngspice/suffix.h"


IFparm HFETApTable[] = { /* parameters */ 
 OP("off",       HFETA_OFF,            IF_FLAG   ,"Device initially off"),
 IOP("l",        HFETA_LENGTH,         IF_REAL   ,"Length of device"),
 IOP("w",        HFETA_WIDTH,          IF_REAL   ,"Width of device"),
 IOP("m",        HFETA_M,              IF_REAL   ,"Parallel Multiplier"),
 IOP("icvds",    HFETA_IC_VDS,         IF_REAL   ,"Initial D-S voltage"),
 IOP("icvgs",    HFETA_IC_VGS,         IF_REAL   ,"Initial G-S voltage"),
 IOP("temp",     HFETA_TEMP,           IF_REAL   ,"Instance temperature"),
 IOP("dtemp",    HFETA_DTEMP,          IF_REAL   ,"Instance temperature difference"),
 OP("dnode",     HFETA_DRAINNODE,      IF_INTEGER,"Number of drain node"),
 OP("gnode",     HFETA_GATENODE,       IF_INTEGER,"Number of gate node"),
 OP("snode",     HFETA_SOURCENODE,     IF_INTEGER,"Number of source node"),
 OP("dprimenode",HFETA_DRAINPRIMENODE, IF_INTEGER,"Number of internal drain node"),
 OP("sprimenode",HFETA_SOURCEPRIMENODE,IF_INTEGER,"Number of internal source node"),
 OP("vgs",       HFETA_VGS,            IF_REAL,"Gate-Source voltage"),
 OP("vgd",       HFETA_VGD,            IF_REAL,"Gate-Drain voltage"),
 OP("cg",        HFETA_CG,             IF_REAL,"Gate capacitance"),
 OP("cd",        HFETA_CD,             IF_REAL,"Drain capacitance"),
 OP("cgd",       HFETA_CGD,            IF_REAL,"Gate_Drain capacitance"),
Exemplo n.º 14
0
 OP("gm",           JFET_GM,             IF_REAL,   "Transconductance"),
 OP("gds",          JFET_GDS,            IF_REAL,   "Conductance D-S"),
 OP("ggs",          JFET_GGS,            IF_REAL,   "Conductance G-S"),
 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"),
 IOP("njf",     JFET_MOD_NJF,     IF_FLAG,"N type JFET model"),
 IOP("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 */
Exemplo n.º 15
0
        "dc sensitivity wrt width"),
 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"),
Exemplo n.º 16
0
 HiSIM (Hiroshima University STARC IGFET Model)
 Copyright (C) 2003 STARC

 VERSION : HiSIM 1.2.0
 FILE : hsm1.c of HiSIM 1.2.0

 April 9, 2003 : released by STARC Physical Design Group
***********************************************************************/

#include "ngspice.h"
#include "devdefs.h"
#include "hsm1def.h"
#include "suffix.h"

IFparm HSM1pTable[] = { /* parameters */
 IOP( "l",   HSM1_L,      IF_REAL   , "Length"),
 IOP( "w",   HSM1_W,      IF_REAL   , "Width"),
 IOP( "ad",  HSM1_AD,     IF_REAL   , "Drain area"),
 IOP( "as",  HSM1_AS,     IF_REAL   , "Source area"),
 IOP( "pd",  HSM1_PD,     IF_REAL   , "Drain perimeter"),
 IOP( "ps",  HSM1_PS,     IF_REAL   , "Source perimeter"),
 IOP( "nrd", HSM1_NRD,    IF_REAL   , "Number of squares in drain"),
 IOP( "nrs", HSM1_NRS,    IF_REAL   , "Number of squares in source"),
 IOP( "temp", HSM1_TEMP,  IF_REAL   , "Lattice temperature"),
 IOP( "dtemp", HSM1_DTEMP,IF_REAL   , ""),
 IOP( "off", HSM1_OFF,    IF_FLAG   , "Device is initially off"), 
 IP ( "ic",  HSM1_IC,     IF_REALVEC , "Vector of DS,GS,BS initial voltages"),
 IOP( "m",   HSM1_M,      IF_REAL   , "Parallel multiplier")
};

IFparm HSM1mPTable[] = { /* model parameters */
Exemplo n.º 17
0
    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;
static int MUTiSize = sizeof(MUTinstance);
Exemplo n.º 18
0
Arquivo: jfet2.c Projeto: imr/ngspice
 OP("gm",    JFET2_GM,   IF_REAL, "Transconductance"),
 OP("gds",   JFET2_GDS,  IF_REAL, "Conductance D-S"),
 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"),
#define  PARAM(code,id,flag,ref,default,descrip) IOP(code,id,IF_REAL,descrip),
#define PARAMR(code,id,flag,ref,default,descrip) IOPR(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",
Exemplo n.º 19
0
**********/

#include "ngspice/ngspice.h"
#include "ngspice/devdefs.h"
#include "numosdef.h"
#include "ngspice/suffix.h"

/*
 * This file defines the 2d Numerical MOSFET data structures that are
 * available to the next level(s) up the calling hierarchy
 */

IFparm NUMOSpTable[] = {	/* parameters */
  IP("off", NUMOS_OFF, IF_FLAG, "Device initially off"),
  IP("ic.file", NUMOS_IC_FILE, IF_STRING, "Initial condition file"),
  IOP("area", NUMOS_AREA, IF_REAL, "Area factor"),
  IOP("w", NUMOS_WIDTH, IF_REAL, "Width factor"),
  IOP("l", NUMOS_LENGTH, IF_REAL, "Length factor"),
  IP("save", NUMOS_PRINT, IF_INTEGER, "Save solutions"),
  IP("print", NUMOS_PRINT, IF_INTEGER, "Print solutions"),
  OP("g11", NUMOS_G11, IF_REAL, "Conductance"),
  OP("c11", NUMOS_C11, IF_REAL, "Capacitance"),
  OP("y11", NUMOS_Y11, IF_COMPLEX, "Admittance"),
  OP("g12", NUMOS_G12, IF_REAL, "Conductance"),
  OP("c12", NUMOS_C12, IF_REAL, "Capacitance"),
  OP("y12", NUMOS_Y12, IF_COMPLEX, "Admittance"),
  OP("g13", NUMOS_G13, IF_REAL, "Conductance"),
  OP("c13", NUMOS_C13, IF_REAL, "Capacitance"),
  OP("y13", NUMOS_Y13, IF_COMPLEX, "Admittance"),
  OPU("g14", NUMOS_G14, IF_REAL, "Conductance"),
  OPU("c14", NUMOS_C14, IF_REAL, "Capacitance"),
Exemplo n.º 20
0
/**********
Copyright 1992 Regents of the University of California.  All rights reserved.
Author:	1987 Kartikeya Mayaram, U. C. Berkeley CAD Group
**********/

#include "ngspice.h"
#include "devdefs.h"
#include "numddefs.h"
#include "suffix.h"

IFparm NUMDpTable[] = {		/* parameters */
  IP("off", NUMD_OFF, IF_FLAG, "Initially off"),
  IP("ic.file", NUMD_IC_FILE, IF_REAL, "Initial conditions file"),
  IOP("area", NUMD_AREA, IF_REAL, "Area factor"),
  IP("save", NUMD_PRINT, IF_REAL, "Save Solutions"),
  IP("print", NUMD_PRINT, IF_REAL, "Print Solutions"),
  OP("vd", NUMD_VD, IF_REAL, "Voltage"),
  OP("id", NUMD_ID, IF_REAL, "Current"),
  OP("g11", NUMD_G11, IF_REAL, "Conductance"),
  OP("c11", NUMD_C11, IF_REAL, "Capacitance"),
  OP("y11", NUMD_Y11, IF_COMPLEX, "Admittance"),
  OPU("g12", NUMD_G12, IF_REAL, "Conductance"),
  OPU("c12", NUMD_C12, IF_REAL, "Capacitance"),
  OPU("y12", NUMD_Y12, IF_COMPLEX, "Admittance"),
  OPU("g21", NUMD_G21, IF_REAL, "Conductance"),
  OPU("c21", NUMD_C21, IF_REAL, "Capacitance"),
  OPU("y21", NUMD_Y21, IF_COMPLEX, "Admittance"),
  OPU("g22", NUMD_G22, IF_REAL, "Conductance"),
  OPU("c22", NUMD_C22, IF_REAL, "Capacitance"),
  OPU("y22", NUMD_Y22, IF_COMPLEX, "Admittance"),
  OPR("voltage", NUMD_VD, IF_REAL, "Voltage"),
Exemplo n.º 21
0
/***
*** Interface: ads2002 2.2.0.0
 *** created by: admsXml-2.3.0 - Tue, 13 Apr 2010 13:45:17 ***/


#include "ngspice.h"
#include "devdefs.h"
#include "mextramdefs.h"
#include "suffix.h"
IFparm mextrampTable[] = {

};
IFparm mextrammPTable[] = {
 IOP("pnp",mextram_model_pnp,IF_INTEGER,"pnp"),
 IOP("npn",mextram_model_npn,IF_INTEGER,"npn"),
 IOP("level",mextram_model_LEVEL,IF_INTEGER,"LEVEL"),
 IOP("tref",mextram_model_TREF,IF_REAL,"TREF"),
 IOP("dta",mextram_model_DTA,IF_REAL,"DTA"),
 IOP("exmod",mextram_model_EXMOD,IF_INTEGER,"EXMOD"),
 IOP("exphi",mextram_model_EXPHI,IF_INTEGER,"EXPHI"),
 IOP("exavl",mextram_model_EXAVL,IF_INTEGER,"EXAVL"),
 IOP("is",mextram_model_IS,IF_REAL,"IS"),
 IOP("ik",mextram_model_IK,IF_REAL,"IK"),
 IOP("ver",mextram_model_VER,IF_REAL,"VER"),
 IOP("vef",mextram_model_VEF,IF_REAL,"VEF"),
 IOP("bf",mextram_model_BF,IF_REAL,"BF"),
 IOP("ibf",mextram_model_IBF,IF_REAL,"IBF"),
 IOP("mlf",mextram_model_MLF,IF_REAL,"MLF"),
 IOP("xibi",mextram_model_XIBI,IF_REAL,"XIBI"),
 IOP("bri",mextram_model_BRI,IF_REAL,"BRI"),
 IOP("ibr",mextram_model_IBR,IF_REAL,"IBR"),
Exemplo n.º 22
0
/***
*** Interface: ads2002 2.2.0.0
 *** created by: admsXml-2.3.0 - Tue, 13 Apr 2010 14:29:51 ***/


#include "ngspice.h"
#include "devdefs.h"
#include "hicum2defs.h"
#include "suffix.h"
IFparm hicum2pTable[] = {

};
IFparm hicum2mPTable[] = {
 IOP("pnp",hicum2_model_pnp,IF_INTEGER,"pnp"),
 IOP("npn",hicum2_model_npn,IF_INTEGER,"npn"),
 IOP("c10",hicum2_model_c10,IF_REAL,"c10"),
 IOP("qp0",hicum2_model_qp0,IF_REAL,"qp0"),
 IOP("ich",hicum2_model_ich,IF_REAL,"ich"),
 IOP("hfe",hicum2_model_hfe,IF_REAL,"hfe"),
 IOP("hfc",hicum2_model_hfc,IF_REAL,"hfc"),
 IOP("hjei",hicum2_model_hjei,IF_REAL,"hjei"),
 IOP("hjci",hicum2_model_hjci,IF_REAL,"hjci"),
 IOP("ibeis",hicum2_model_ibeis,IF_REAL,"ibeis"),
 IOP("mbei",hicum2_model_mbei,IF_REAL,"mbei"),
 IOP("ireis",hicum2_model_ireis,IF_REAL,"ireis"),
 IOP("mrei",hicum2_model_mrei,IF_REAL,"mrei"),
 IOP("ibeps",hicum2_model_ibeps,IF_REAL,"ibeps"),
 IOP("mbep",hicum2_model_mbep,IF_REAL,"mbep"),
 IOP("ireps",hicum2_model_ireps,IF_REAL,"ireps"),
 IOP("mrep",hicum2_model_mrep,IF_REAL,"mrep"),
 IOP("mcf",hicum2_model_mcf,IF_REAL,"mcf"),