Пример #1
0
 */

#include "spice.h"
#include <stdio.h>
#include "devdefs.h"
#include "ifsim.h"
#include "ltradefs.h"
#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"),
Пример #2
0
 IOPU("nrs",          MOS1_NRS,        IF_REAL   , "Source squares"),
 IP("off",           MOS1_OFF,        IF_FLAG   , "Device initially off"),
 IOPU("icvds",        MOS1_IC_VDS,     IF_REAL   , "Initial D-S voltage"),
 IOPU("icvgs",        MOS1_IC_VGS,     IF_REAL   , "Initial G-S voltage"),
 IOPU("icvbs",        MOS1_IC_VBS,     IF_REAL   , "Initial B-S voltage"),
 IOPU("temp",         MOS1_TEMP,       IF_REAL,    "Instance temperature"),
 IOPU("dtemp",         MOS1_DTEMP,       IF_REAL,    "Instance temperature difference"),
 IP( "ic",           MOS1_IC,  IF_REALVEC, "Vector of D-S, G-S, B-S voltages"),
 IP( "sens_l", MOS1_L_SENS, IF_FLAG, "flag to request sensitivity WRT length"),
 IP( "sens_w", MOS1_W_SENS, IF_FLAG, "flag to request sensitivity WRT width"),

 OP( "id",           MOS1_CD,         IF_REAL,    "Drain current"),
 OP( "is",           MOS1_CS,         IF_REAL,    "Source current"),
 OP( "ig",           MOS1_CG,         IF_REAL,    "Gate current "),
 OP( "ib",           MOS1_CB,         IF_REAL,    "Bulk current "),
 OPU( "ibd",      MOS1_CBD,    IF_REAL,    "B-D junction current"),
 OPU( "ibs",      MOS1_CBS,    IF_REAL,    "B-S junction current"),
 OP( "vgs",          MOS1_VGS,        IF_REAL,    "Gate-Source voltage"),
 OP( "vds",          MOS1_VDS,        IF_REAL,    "Drain-Source voltage"),
 OP( "vbs",          MOS1_VBS,        IF_REAL,    "Bulk-Source voltage"),
 OPU( "vbd",          MOS1_VBD,        IF_REAL,    "Bulk-Drain voltage"),
 /*
 OP( "cgs",          MOS1_CGS,        IF_REAL   , "Gate-Source capacitance"),
 OP( "cgd",          MOS1_CGD,        IF_REAL   , "Gate-Drain capacitance"),
 */

 OPU( "dnode",      MOS1_DNODE,      IF_INTEGER, "Number of the drain node "),
 OPU( "gnode",      MOS1_GNODE,      IF_INTEGER, "Number of the gate node "),
 OPU( "snode",      MOS1_SNODE,      IF_INTEGER, "Number of the source node "),
 OPU( "bnode",      MOS1_BNODE,      IF_INTEGER, "Number of the node "),
 OPU( "dnodeprime", MOS1_DNODEPRIME, IF_INTEGER, "Number of int. drain node"),
Пример #3
0
 IOPU("w",       MOS2_W,     IF_REAL   , "Width"),
 IOPU("ad",      MOS2_AD,    IF_REAL   , "Drain area"),
 IOPU("as",      MOS2_AS,    IF_REAL   , "Source area"),
 IOPU("pd",      MOS2_PD,    IF_REAL   , "Drain perimeter"),
 IOPU("ps",      MOS2_PS,    IF_REAL   , "Source perimeter"),
 OP( "id",          MOS2_CD,          IF_REAL,"Drain current"),
 OPR( "cd",          MOS2_CD,          IF_REAL,""),
 OP( "ibd",     MOS2_CBD,   IF_REAL,    "B-D junction current"),
 OP( "ibs",     MOS2_CBS,   IF_REAL,    "B-S junction current"),
 OP( "is",      MOS2_CS,    IF_REAL,    "Source current "),
 OP( "ig",      MOS2_CG,    IF_REAL,    "Gate current "),
 OP( "ib",      MOS2_CB,    IF_REAL,    "Bulk current "),
 OP( "vgs",     MOS2_VGS,   IF_REAL,    "Gate-Source voltage"),
 OP( "vds",     MOS2_VDS,   IF_REAL,    "Drain-Source voltage"),
 OP( "vbs",     MOS2_VBS,   IF_REAL,    "Bulk-Source voltage"),
 OPU( "vbd",     MOS2_VBD,   IF_REAL,    "Bulk-Drain voltage"),
 IOPU("nrd",     MOS2_NRD,   IF_REAL   , "Drain squares"),
 IOPU("nrs",     MOS2_NRS,   IF_REAL   , "Source squares"),
 IP("off",      MOS2_OFF,   IF_FLAG   , "Device initially off"),
 IOPAU("icvds",     MOS2_IC_VDS,IF_REAL   , "Initial D-S voltage"),
 IOPAU("icvgs",     MOS2_IC_VGS,IF_REAL   , "Initial G-S voltage"),
 IOPAU("icvbs",     MOS2_IC_VBS,IF_REAL   , "Initial B-S voltage"),
 IOPU("temp",    MOS2_TEMP,  IF_REAL   , "Instance operating temperature"),
 IP( "ic",      MOS2_IC,    IF_REALVEC, "Vector of D-S, G-S, B-S voltages"),
 IP( "sens_l",  MOS2_L_SENS,IF_FLAG,  "flag to request sensitivity WRT length"),
 IP( "sens_w",  MOS2_W_SENS,IF_FLAG,  "flag to request sensitivity WRT width"),
 /*
 OP( "cgs",     MOS2_CGS,   IF_REAL   , "Gate-Source capacitance"),
 OP( "cgd",     MOS2_CGD,   IF_REAL   , "Gate-Drain capacitance"),
 */
 OPU( "dnode",   MOS2_DNODE, IF_INTEGER, "Number of drain node"),
Пример #4
0
/*
	Indepedent Current Source
*/

IFparm ISRCpTable[] = { /* parameters */ 
 IOPP( "dc",      ISRC_DC,        IF_REAL   ,"DC value of source"),
 IOPPA( "acmag",   ISRC_AC_MAG,    IF_REAL   ,"AC magnitude"),
 IOPAAU( "acphase", ISRC_AC_PHASE,  IF_REAL   ,"AC phase"),
 IP ( "pulse",   ISRC_PULSE,     IF_REALVEC,"Pulse description"),
 IP ( "sine",    ISRC_SINE,      IF_REALVEC,"Sinusoidal source description"),
 IP ( "sin",     ISRC_SINE,      IF_REALVEC,"Sinusoidal source description"),
 IP ( "exp",     ISRC_EXP,       IF_REALVEC,"Exponential source description"),
 IP ( "pwl",     ISRC_PWL,       IF_REALVEC,"Piecewise linear description"),
 IP ( "sffm",    ISRC_SFFM,      IF_REALVEC,"single freq. FM description"),
 OPU ( "neg_node",ISRC_NEG_NODE,  IF_INTEGER,"Negative node of source"),
 OPU ( "pos_node",ISRC_POS_NODE,  IF_INTEGER,"Positive node of source"),
 OPU ( "acreal",  ISRC_AC_REAL,   IF_REAL   ,"AC real part"),
 OPU ( "acimag",  ISRC_AC_IMAG,   IF_REAL   ,"AC imaginary part"),
 OPU ( "function",ISRC_FCN_TYPE,  IF_INTEGER,"Function of the source"),
 OPU ( "order",   ISRC_FCN_ORDER, IF_INTEGER,"Order of the source function"),
 OPU ( "coeffs",  ISRC_FCN_COEFFS,IF_REALVEC,"Coefficients of the source"),
 OP ( "v",       ISRC_VOLTS,     IF_REAL,   "Voltage across the supply"),
 OP ( "p",       ISRC_POWER,     IF_REAL,   "Power supplied by the source"),
 IP ( "ac",      ISRC_AC,        IF_REALVEC,"AC magnitude,phase vector"),
 IP ( "c",       ISRC_DC,        IF_REAL,   "Current through current source"),
 IP ( "distof1", ISRC_D_F1,      IF_REALVEC,"f1 input for distortion"),
 IP ( "distof2", ISRC_D_F2,      IF_REALVEC,"f2 input for distortion")
};

char *ISRCnames[] = {
Пример #5
0
#include "ngspice.h"
#include "devdefs.h"
#include "vbicdefs.h"
#include "suffix.h"

IFparm VBICpTable[] = { /* parameters */
 IOPU("area",    VBIC_AREA,           IF_REAL,    "Area factor"),
 IOPU("off",     VBIC_OFF,            IF_FLAG,    "Device initially off"),
 IP("ic",        VBIC_IC,             IF_REALVEC, "Initial condition vector"),
 IOPAU("icvbe",  VBIC_IC_VBE,         IF_REAL,    "Initial B-E voltage"),
 IOPAU("icvce",  VBIC_IC_VCE,         IF_REAL,    "Initial C-E voltage"),
 IOPU("temp",    VBIC_TEMP,           IF_REAL,    "Instance temperature"),
 IOPU("dtemp",   VBIC_DTEMP,          IF_REAL,    "Instance delta temperature"),
 IOPU("m",       VBIC_M,              IF_REAL,    "Multiplier"),

 OPU("collnode", VBIC_QUEST_COLLNODE, IF_INTEGER, "Number of collector node"),
 OPU("basenode", VBIC_QUEST_BASENODE, IF_INTEGER, "Number of base node"),
 OPU("emitnode", VBIC_QUEST_EMITNODE, IF_INTEGER, "Number of emitter node"),
 OPU("subsnode", VBIC_QUEST_SUBSNODE, IF_INTEGER, "Number of substrate node"),
 OPU("collCXnode",VBIC_QUEST_COLLCXNODE,IF_INTEGER, "Internal collector node"),
 OPU("collCInode",VBIC_QUEST_COLLCINODE,IF_INTEGER, "Internal collector node"),
 OPU("baseBXnode",VBIC_QUEST_BASEBXNODE,IF_INTEGER, "Internal base node"),
 OPU("baseBInode",VBIC_QUEST_BASEBINODE,IF_INTEGER, "Internal base node"),
 OPU("baseBPnode",VBIC_QUEST_BASEBPNODE,IF_INTEGER, "Internal base node"),
 OPU("emitEInode",VBIC_QUEST_EMITEINODE,IF_INTEGER, "Internal emitter node"),
 OPU("subsSInode",VBIC_QUEST_SUBSSINODE,IF_INTEGER, "Internal substrate node"),
 OP("vbe",   VBIC_QUEST_VBE,  IF_REAL, "B-E voltage"),
 OP("vbc",   VBIC_QUEST_VBC,  IF_REAL, "B-C voltage"),
 OP("ic",    VBIC_QUEST_CC,   IF_REAL, "Collector current"),
 OP("ib",    VBIC_QUEST_CB,   IF_REAL, "Base current"),
 OP("ie",    VBIC_QUEST_CE,   IF_REAL, "Emitter current"),
Пример #6
0
#include <stdio.h>
#include "devdefs.h"
#include "ifsim.h"
#include "swdefs.h"
#include "suffix.h"

/*
	Model for switch
*/

IFparm SWpTable[] = { /* parameters */ 
 IP("on",           SW_IC_ON,  IF_FLAG,"Switch initially closed"),
 IP("off",          SW_IC_OFF, IF_FLAG,"Switch initially open"),
 IOPU("pos_node",    SW_POS_NODE,IF_INTEGER,"Positive node of switch"),
 IOPU("neg_node",    SW_NEG_NODE,IF_INTEGER,"Negative node of switch"),
 OPU("cont_p_node",SW_POS_CONT_NODE,IF_INTEGER,
					"Positive contr. node of switch"),
 OPU("cont_n_node",SW_NEG_CONT_NODE,IF_INTEGER,
					"Positive contr. node of switch"),
 OP("i",            SW_CURRENT, IF_REAL,    "Switch current"),
 OP("p",            SW_POWER,   IF_REAL,    "Switch power")
};

IFparm SWmPTable[] = { /* model parameters */
 IOPU( "sw",   SW_MOD_SW,   IF_FLAG,"Switch model"),
 IOPU( "vt",   SW_MOD_VTH,  IF_REAL,"Threshold voltage"),
 IOPU( "vh",   SW_MOD_VHYS, IF_REAL,"Hysteresis voltage"),
 IOPU( "ron",  SW_MOD_RON,  IF_REAL,"Resistance when closed"),
 OPU( "gon", SW_MOD_GON,  IF_REAL,"Conductance when closed"),
 IOPU( "roff", SW_MOD_ROFF, IF_REAL,"Resistance when open"),
 OPU( "goff", SW_MOD_GOFF, IF_REAL,"Conductance when open")
};
Пример #7
0
IFparm CAPpTable[] = { /* parameters */ 
 IOPAP("capacitance", CAP_CAP,             IF_REAL, "Device capacitance"),
 IOPAP("cap",         CAP_CAP,             IF_REAL, "Device capacitance"),
 IOPAP("c",           CAP_CAP,             IF_REAL, "Device capacitance"),
 IOPAU("ic",          CAP_IC,              IF_REAL, "Initial capacitor voltage"),
 IOPZU("temp",        CAP_TEMP,            IF_REAL, "Instance operating temperature"),
 IOPZ( "dtemp",       CAP_DTEMP,           IF_REAL, 
       "Instance temperature difference from the rest of the circuit"), 
 IOPAU("w",           CAP_WIDTH,           IF_REAL, "Device width"),
 IOPAU("l",           CAP_LENGTH,          IF_REAL, "Device length"),
 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"),
Пример #8
0
#include <stdio.h>
#include "resdefs.h"
#include "devdefs.h"
#include "ifsim.h"
#include "suffix.h"

IFparm RESpTable[] = { /* parameters */ 
 IOPP( "resistance", RES_RESIST, IF_REAL,"Resistance"),
 IOPZU( "temp",        RES_TEMP,   IF_REAL,"Instance operating temperature"),
 IOPQU( "l",          RES_LENGTH, IF_REAL,"Length"),
 IOPZU( "w",          RES_WIDTH,  IF_REAL,"Width"),
 IP(   "sens_resist", RES_RESIST_SENS, IF_FLAG,   
        "flag to request sensitivity WRT resistance"),
 OP( "i",          RES_CURRENT,IF_REAL,"Current"),
 OP( "p",          RES_POWER,  IF_REAL,"Power"),
 OPU( "sens_dc",  RES_QUEST_SENS_DC,  IF_REAL,    "dc sensitivity "),
 OPU( "sens_real",RES_QUEST_SENS_REAL,IF_REAL,    
        "dc sensitivity and real part of ac sensitivity"),
 OPU( "sens_imag",RES_QUEST_SENS_IMAG,IF_REAL,    
        "dc sensitivity and imag part of ac sensitivity"),
 OPU( "sens_mag", RES_QUEST_SENS_MAG, IF_REAL, "ac sensitivity of magnitude"),
 OPU( "sens_ph",  RES_QUEST_SENS_PH,  IF_REAL,    "ac sensitivity of phase"),
 OPU( "sens_cplx",RES_QUEST_SENS_CPLX,IF_COMPLEX,    "ac sensitivity")
} ;

IFparm RESmPTable[] = { /* model parameters */
 IOPQ( "rsh",    RES_MOD_RSH,      IF_REAL,"Sheet resistance"),
 IOPZ( "narrow", RES_MOD_NARROW,   IF_REAL,"Narrowing of resistor"),
 IOPQ( "tc1",    RES_MOD_TC1,      IF_REAL,"First order temp. coefficient"),
 IOPQO( "tc2",    RES_MOD_TC2,      IF_REAL,"Second order temp. coefficient"),
 IOPX( "defw",   RES_MOD_DEFWIDTH, IF_REAL,"Default device width"),
Пример #9
0
#include "ngspice/ngspice.h"
#include "ngspice/ifsim.h"
#include "ngspice/devdefs.h"
#include "jfet2defs.h"
#include "ngspice/suffix.h"

IFparm JFET2pTable[] = { /* device parameters */ 
 IOPU("off",         JFET2_OFF,            IF_FLAG,   "Device initially off"),
 IOPAU("ic",         JFET2_IC,             IF_REALVEC,"Initial VDS,VGS vector"),
 IOPU("area",        JFET2_AREA,           IF_REAL,   "Area factor"),
 IOPU("m",           JFET2_M,              IF_REAL,   "Parallel Multiplier"),
 IOPAU("ic-vds",     JFET2_IC_VDS,         IF_REAL,   "Initial D-S voltage"),
 IOPAU("ic-vgs",     JFET2_IC_VGS,         IF_REAL,   "Initial G-S volrage"),
 IOPU("temp",        JFET2_TEMP,           IF_REAL,   "Instance temperature"),
 IOPU("dtemp",       JFET2_DTEMP,          IF_REAL,   "Instance temperature difference"),
 OPU("drain-node",   JFET2_DRAINNODE,      IF_INTEGER,"Number of drain node"),
 OPU("gate-node",    JFET2_GATENODE,       IF_INTEGER,"Number of gate node"),
 OPU("source-node",  JFET2_SOURCENODE,     IF_INTEGER,"Number of source node"),
 OPU("drain-prime-node", JFET2_DRAINPRIMENODE, IF_INTEGER,"Internal drain node"),
 OPU("source-prime-node",JFET2_SOURCEPRIMENODE,IF_INTEGER,"Internal source node"),
 OP("vgs",   JFET2_VGS,  IF_REAL, "Voltage G-S"),
 OP("vgd",   JFET2_VGD,  IF_REAL, "Voltage G-D"),
 OP("ig",    JFET2_CG,   IF_REAL, "Current at gate node"),
 OP("id",    JFET2_CD,   IF_REAL, "Current at drain node"),
 OP("is",    JFET2_CS,   IF_REAL, "Source current"),
 OP("igd",   JFET2_CGD,  IF_REAL, "Current G-D"),
 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"),
Пример #10
0
#include "ngspice/ngspice.h"
#include "ngspice/ifsim.h"
#include "ngspice/devdefs.h"
#include "jfetdefs.h"
#include "ngspice/suffix.h"

IFparm JFETpTable[] = { /* device parameters */ 
 IOPU("off",         JFET_OFF,            IF_FLAG,   "Device initially off"),
 IOPAU("ic",          JFET_IC,             IF_REALVEC,"Initial VDS,VGS vector"),
 IOPU("area",        JFET_AREA,           IF_REAL,   "Area factor"),
 IOPU("m",           JFET_M,              IF_REAL,   "Parallel multiplier"),
 IOPAU("ic-vds",      JFET_IC_VDS,         IF_REAL,   "Initial D-S voltage"),
 IOPAU("ic-vgs",      JFET_IC_VGS,         IF_REAL,   "Initial G-S volrage"),
 IOPU("temp",        JFET_TEMP,           IF_REAL,   "Instance temperature"),
 IOPU("dtemp",        JFET_DTEMP,           IF_REAL,   "Instance temperature difference"),
 OPU("drain-node",   JFET_DRAINNODE,      IF_INTEGER,"Number of drain node"),
 OPU("gate-node",    JFET_GATENODE,       IF_INTEGER,"Number of gate node"),
 OPU("source-node",  JFET_SOURCENODE,     IF_INTEGER,"Number of source node"),
 OPU("drain-prime-node", JFET_DRAINPRIMENODE, IF_INTEGER,"Internal drain node"),
 OPU("source-prime-node",JFET_SOURCEPRIMENODE,IF_INTEGER,
							"Internal source node"),
 OP("vgs",          JFET_VGS,            IF_REAL,   "Voltage G-S"),
 OP("vgd",          JFET_VGD,            IF_REAL,   "Voltage G-D"),
 OP("ig",           JFET_CG,             IF_REAL,   "Current at gate node"),
 OP("id",           JFET_CD,             IF_REAL,   "Current at drain node"),
 OP("is",  	    JFET_CS,   		 IF_REAL,   "Source current"),
 OP("igd",          JFET_CGD,            IF_REAL,   "Current G-D"),
 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"),
Пример #11
0
**********/

#include "spice.h"
#include <stdio.h>
#include "devdefs.h"
#include "urcdefs.h"
#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[] = {
Пример #12
0
#include "inddefs.h"
#include "suffix.h"

IFparm INDpTable[] = { /* parameters */ 
 IOPAP("inductance",IND_IND,    IF_REAL,"Inductance of inductor"),
 IOPAU("ic",        IND_IC,     IF_REAL,"Initial current through inductor"),
 IP( "sens_ind", IND_IND_SENS,IF_FLAG,
        "flag to request sensitivity WRT inductance"),
 OP( "flux",      IND_FLUX,   IF_REAL,"Flux through inductor"),
 OP( "v",         IND_VOLT,   IF_REAL,"Terminal voltage of inductor"),
 OPR("volt",      IND_VOLT,   IF_REAL,""),
 OP( "i",   	  IND_CURRENT,IF_REAL,"Current through the inductor"),
 OPR( "current",  IND_CURRENT,IF_REAL,""),
 OP( "p",         IND_POWER,  IF_REAL,
        "instantaneous power dissipated by the inductor"),
 OPU( "sens_dc", IND_QUEST_SENS_DC,     IF_REAL, "dc sensitivity sensitivity"),
 OPU( "sens_real", IND_QUEST_SENS_REAL, IF_REAL, "real part of ac sensitivity"),
 OPU( "sens_imag", IND_QUEST_SENS_IMAG, IF_REAL, 
        "dc sensitivity and imag part of ac sensitivty"),
 OPU( "sens_mag",  IND_QUEST_SENS_MAG,  IF_REAL, "sensitivity of AC magnitude"),
 OPU( "sens_ph",   IND_QUEST_SENS_PH,   IF_REAL, "sensitivity of AC phase"),
 OPU( "sens_cplx", IND_QUEST_SENS_CPLX, IF_COMPLEX,    "ac sensitivity")
};

char *INDnames[] = {
    "L+",
    "L-"
};


int	INDnSize = NUMELEMS(INDnames);
Пример #13
0
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,
                                   "Positive node of end 2 of t. line"),
 OPU(   "neg_node2", TRA_NEG_NODE2, IF_INTEGER,
                                   "Negative node of end 2 of t. line"),
 OPU(   "delays",TRA_DELAY, IF_REALVEC, "Delayed values of excitation")
};

    /* model parameters */
/* static IFparm TRAmPTable[] = { }; */

static char *TRAnames[] = {
    "P1+",
    "P1-",
Пример #14
0
 * the next level(s) up the calling hierarchy
 */

IFparm NBJTpTable[] = {		/* parameters */
  IP("off", NBJT_OFF, IF_FLAG, "Device initially off"),
  IP("ic.file", NBJT_IC_FILE, IF_STRING, "Initial condition file"),
  IOP("area", NBJT_AREA, IF_REAL, "Area factor"),
  IP("save", NBJT_PRINT, IF_REAL, "Save Solutions"),
  IP("print", NBJT_PRINT, IF_REAL, "Print Solutions"),
  OP("g11", NBJT_G11, IF_REAL, "Conductance"),
  OP("c11", NBJT_C11, IF_REAL, "Capacitance"),
  OP("y11", NBJT_Y11, IF_COMPLEX, "Admittance"),
  OP("g12", NBJT_G12, IF_REAL, "Conductance"),
  OP("c12", NBJT_C12, IF_REAL, "Capacitance"),
  OP("y12", NBJT_Y12, IF_COMPLEX, "Admittance"),
  OPU("g13", NBJT_G13, IF_REAL, "Conductance"),
  OPU("c13", NBJT_C13, IF_REAL, "Capacitance"),
  OPU("y13", NBJT_Y13, IF_COMPLEX, "Admittance"),
  OP("g21", NBJT_G21, IF_REAL, "Conductance"),
  OP("c21", NBJT_C21, IF_REAL, "Capacitance"),
  OP("y21", NBJT_Y21, IF_COMPLEX, "Admittance"),
  OP("g22", NBJT_G22, IF_REAL, "Conductance"),
  OP("c22", NBJT_C22, IF_REAL, "Capacitance"),
  OP("y22", NBJT_Y22, IF_COMPLEX, "Admittance"),
  OPU("g23", NBJT_G23, IF_REAL, "Conductance"),
  OPU("c23", NBJT_C23, IF_REAL, "Capacitance"),
  OPU("y23", NBJT_Y23, IF_COMPLEX, "Admittance"),
  OPU("g31", NBJT_G31, IF_REAL, "Conductance"),
  OPU("c31", NBJT_C31, IF_REAL, "Capacitance"),
  OPU("y31", NBJT_Y31, IF_COMPLEX, "Admittance"),
  OPU("g32", NBJT_G32, IF_REAL, "Conductance"),
Пример #15
0
 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"),
 OPU("y14", NUMOS_Y14, IF_COMPLEX, "Admittance"),
 OP("g21", NUMOS_G21, IF_REAL, "Conductance"),
 OP("c21", NUMOS_C21, IF_REAL, "Capacitance"),
 OP("y21", NUMOS_Y21, IF_COMPLEX, "Admittance"),
 OP("g22", NUMOS_G22, IF_REAL, "Conductance"),
 OP("c22", NUMOS_C22, IF_REAL, "Capacitance"),
 OP("y22", NUMOS_Y22, IF_COMPLEX, "Admittance"),
 OP("g23", NUMOS_G23, IF_REAL, "Conductance"),
 OP("c23", NUMOS_C23, IF_REAL, "Capacitance"),
 OP("y23", NUMOS_Y23, IF_COMPLEX, "Admittance"),
 OPU("g24", NUMOS_G24, IF_REAL, "Conductance"),
 OPU("c24", NUMOS_C24, IF_REAL, "Capacitance"),
 OPU("y24", NUMOS_Y24, IF_COMPLEX, "Admittance"),
 OP("g31", NUMOS_G31, IF_REAL, "Conductance"),
Пример #16
0
#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"),
  OPR("current", NUMD_ID, IF_REAL, "Current"),
  OPR("conductance", NUMD_G11, IF_REAL, "Conductance"),
  OPR("capacitance", NUMD_C11, IF_REAL, "Capacitance"),
  IOP("temp", NUMD_TEMP, IF_REAL, "Instance Temperature")
};
Пример #17
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"),
 OPU("sens_cplx", VCCS_QUEST_SENS_CPLX, IF_COMPLEX,    "ac sensitivity")
Пример #18
0
****************************************************************************/

#include "spice.h"
#include <stdio.h>
#include "diodefs.h"
#include "uflags.h"

static IFparm DIOpTable[] = { /* parameters */ 
 IOPU( "area",    DIO_AREA,   IF_REAL, "Area factor"),
 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"),