You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
3.6 KiB

/**********
Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1987 Thomas L. Quarles
**********/
#include "ngspice/ngspice.h"
#include "ngspice/ifsim.h"
#include "ngspice/devdefs.h"
#include "mesdefs.h"
#include "ngspice/suffix.h"
IFparm MESpTable[] = { /* parameters */
OPU("off", MES_OFF, IF_FLAG ,"Device initially off"),
IOPU("area", MES_AREA, IF_REAL ,"Area factor"),
IOPUR("m", MES_AREA, IF_REAL ,"Parallel Multiplier"),
IOPAU("icvds", MES_IC_VDS, IF_REAL ,"Initial D-S voltage"),
IOPAU("icvgs", MES_IC_VGS, IF_REAL ,"Initial G-S voltage"),
OPU("dnode", MES_DRAINNODE, IF_INTEGER,"Number of drain node"),
OPU("gnode", MES_GATENODE, IF_INTEGER,"Number of gate node"),
OPU("snode", MES_SOURCENODE, IF_INTEGER,"Number of source node"),
OPU("dprimenode",MES_DRAINPRIMENODE,IF_INTEGER,"Number of internal drain node"),
OPU("sprimenode",MES_SOURCEPRIMENODE,IF_INTEGER,
"Number of internal source node"),
OP("vgs", MES_VGS, IF_REAL,"Gate-Source voltage"),
OP("vgd", MES_VGD, IF_REAL,"Gate-Drain voltage"),
OP("cg", MES_CG, IF_REAL,"Gate capacitance"),
OP("cd", MES_CD, IF_REAL,"Drain capacitance"),
OP("cgd", MES_CGD, IF_REAL,"Gate-Drain capacitance"),
OP("gm", MES_GM, IF_REAL,"Transconductance"),
OP("gds", MES_GDS, IF_REAL,"Drain-Source conductance"),
OP("ggs", MES_GGS, IF_REAL,"Gate-Source conductance"),
OP("ggd", MES_GGD, IF_REAL,"Gate-Drain conductance"),
OP("cqgs", MES_CQGS, IF_REAL,"Capacitance due to gate-source charge storage"),
OP("cqgd", MES_CQGD, IF_REAL,"Capacitance due to gate-drain charge storage"),
OPU("qgs", MES_QGS, IF_REAL,"Gate-Source charge storage"),
OPU("qgd", MES_QGD, IF_REAL,"Gate-Drain charge storage"),
OP("is", MES_CS, IF_REAL ,"Source current"),
OP("p", MES_POWER, IF_REAL ,"Power dissipated by the mesfet")
};
IFparm MESmPTable[] = { /* model parameters */
OP( "type", MES_MOD_TYPE, IF_FLAG,"N-type or P-type MESfet model"),
IP( "nmf", MES_MOD_NMF, IF_FLAG,"N type MESfet model"),
IP( "pmf", MES_MOD_PMF, IF_FLAG,"P type MESfet model"),
IOP( "vt0", MES_MOD_VTO, IF_REAL,"Pinch-off voltage"),
IOPR( "vto", MES_MOD_VTO, IF_REAL,"Pinch-off voltage"),
IOP( "alpha", MES_MOD_ALPHA, IF_REAL,"Saturation voltage parameter"),
IOP( "beta", MES_MOD_BETA, IF_REAL,"Transconductance parameter"),
IOP( "lambda", MES_MOD_LAMBDA, IF_REAL,"Channel length modulation parm."),
IOP( "b", MES_MOD_B, IF_REAL,"Doping tail extending parameter"),
IOP( "rd", MES_MOD_RD, IF_REAL,"Drain ohmic resistance"),
OPU( "gd", MES_MOD_DRAINCONDUCT, IF_REAL,"Drain conductance"),
IOP( "rs", MES_MOD_RS, IF_REAL,"Source ohmic resistance"),
OPU( "gs", MES_MOD_SOURCECONDUCT, IF_REAL,"Source conductance"),
IOPA( "cgs", MES_MOD_CGS, IF_REAL,"G-S junction capacitance"),
IOPA( "cgd", MES_MOD_CGD, IF_REAL,"G-D junction capacitance"),
IOP( "pb", MES_MOD_PB, IF_REAL,"Gate junction potential"),
IOP( "is", MES_MOD_IS, IF_REAL,"Junction saturation current"),
IOP( "fc", MES_MOD_FC, IF_REAL,"Forward bias junction fit parm."),
OP( "depl_cap", MES_MOD_DEPLETIONCAP, IF_REAL,"Depletion capacitance"),
OP( "vcrit", MES_MOD_VCRIT, IF_REAL,"Critical voltage"),
IOP("kf", MES_MOD_KF, IF_REAL,"Flicker noise coefficient"),
IOP("af", MES_MOD_AF, IF_REAL,"Flicker noise exponent")
};
char *MESnames[] = {
"Drain",
"Gate",
"Source"
};
int MESnSize = NUMELEMS(MESnames);
int MESpTSize = NUMELEMS(MESpTable);
int MESmPTSize = NUMELEMS(MESmPTable);
int MESiSize = sizeof(MESinstance);
int MESmSize = sizeof(MESmodel);