📄 mesa.c
字号:
/**********Copyright 1993: T. Ytterdal, K. Lee, M. Shur and T. A. Fjeldly. All rights reserved.Author: Trond Ytterdal**********/#include "ngspice.h"#include "ifsim.h"#include "devdefs.h"#include "mesadefs.h"#include "suffix.h"IFparm MESApTable[] = { /* parameters */ OP("off", MESA_OFF, IF_FLAG ,"Device initially off"), IOP("l", MESA_LENGTH, IF_REAL ,"Length of device"), IOP("w", MESA_WIDTH, IF_REAL ,"Width of device"), IOP("m", MESA_M, IF_REAL ,"Parallel Multiplier"), IOP("icvds", MESA_IC_VDS, IF_REAL ,"Initial D-S voltage"), IOP("icvgs", MESA_IC_VGS, IF_REAL ,"Initial G-S voltage"), IOP("td", MESA_TD, IF_REAL ,"Instance drain temperature"), IOP("ts", MESA_TS, IF_REAL ,"Instance source temperature"), IOP("dtemp", MESA_DTEMP, IF_REAL ,"Instance temperature difference"), OP("dnode", MESA_DRAINNODE, IF_INTEGER,"Number of drain node"), OP("gnode", MESA_GATENODE, IF_INTEGER,"Number of gate node"), OP("snode", MESA_SOURCENODE, IF_INTEGER,"Number of source node"), OP("dprimenode",MESA_DRAINPRIMENODE, IF_INTEGER,"Number of internal drain node"), OP("sprimenode",MESA_SOURCEPRIMENODE,IF_INTEGER,"Number of internal source node"), OP("gprimenode",MESA_GATEPRIMENODE, IF_INTEGER,"Number of internal gate node"), OP("vgs", MESA_VGS, IF_REAL,"Gate-Source voltage"), OP("vgd", MESA_VGD, IF_REAL,"Gate-Drain voltage"), OP("cg", MESA_CG, IF_REAL,"Gate capacitance"), OP("cd", MESA_CD, IF_REAL,"Drain capacitance"), OP("cgd", MESA_CGD, IF_REAL,"Gate_Drain capacitance"), OP("gm", MESA_GM, IF_REAL,"Transconductance"), OP("gds", MESA_GDS, IF_REAL,"Drain-Source conductance"), OP("ggs", MESA_GGS, IF_REAL,"Gate-Source conductance"), OP("ggd", MESA_GGD, IF_REAL,"Gate-Drain conductance"), OP("qgs", MESA_QGS, IF_REAL,"Gate-Source charge storage"), OP("cqgs", MESA_CQGS, IF_REAL,"Capacitance due to gate-source charge storage"), OP("qgd", MESA_QGD, IF_REAL,"Gate-Drain charge storage"), OP("cqgd", MESA_CQGD, IF_REAL,"Capacitance due to gate-drain charge storage"), OP("cs", MESA_CS, IF_REAL,"Source current"), OP("p", MESA_POWER, IF_REAL,"Power dissipated by the mesfet")};IFparm MESAmPTable[] = { /* model parameters */ OP( "type", MESA_MOD_TYPE, IF_STRING,"N-type or P-type MESfet model"), IOPR( "vt0", MESA_MOD_VTO, IF_REAL,"Pinch-off voltage"), IOP( "vto", MESA_MOD_VTO, IF_REAL,"Pinch-off voltage"), IOP( "lambda", MESA_MOD_LAMBDA, IF_REAL,"Output conductance parameter"), IOP( "lambdahf",MESA_MOD_LAMBDAHF, IF_REAL,"Output conductance parameter at high frequencies"), IOP( "beta", MESA_MOD_BETA, IF_REAL,"Transconductance parameter"), IOP( "vs", MESA_MOD_VS, IF_REAL,"Saturation velocity"), IOP( "rd", MESA_MOD_RD, IF_REAL,"Drain ohmic resistance"), IOP( "rs", MESA_MOD_RS, IF_REAL,"Source ohmic resistance"), IOP( "rg", MESA_MOD_RG, IF_REAL,"Gate ohmic resistance"), IOP( "ri", MESA_MOD_RI, IF_REAL,"Gate-source ohmic resistance"), IOP( "rf", MESA_MOD_RF, IF_REAL,"Gate-drain ohmic resistance"), IOP( "rdi", MESA_MOD_RDI, IF_REAL,"Intrinsic source ohmic resistance"), IOP( "rsi", MESA_MOD_RSI, IF_REAL,"Intrinsic drain ohmic resistance"), IOP( "phib", MESA_MOD_PHIB, IF_REAL,"Effective Schottky barrier height at room temperature"), IOP( "phib1", MESA_MOD_PHIB1, IF_REAL,""), IOP( "tphib", MESA_MOD_PHIB1, IF_REAL,""), IOP( "astar", MESA_MOD_ASTAR, IF_REAL,"Effective Richardson constant"), IOP( "ggr", MESA_MOD_GGR, IF_REAL,"Reverse diode conductance"), IOP( "del", MESA_MOD_DEL, IF_REAL,""), IOP( "xchi", MESA_MOD_XCHI, IF_REAL,""), IOP( "tggr", MESA_MOD_XCHI, IF_REAL,""), IOP( "n", MESA_MOD_N, IF_REAL,"Emission coefficient"), IOP( "eta", MESA_MOD_ETA, IF_REAL,"Subthreshold ideality factor"), IOP( "m", MESA_MOD_M, IF_REAL,"Knee shape parameter"), IOP( "mc", MESA_MOD_MC, IF_REAL,"Knee shape parameter"), IOP( "alpha", MESA_MOD_ALPHA, IF_REAL,""), IOP( "sigma0", MESA_MOD_SIGMA0, IF_REAL,"Threshold voltage coefficient"), IOP( "vsigmat",MESA_MOD_VSIGMAT,IF_REAL,""), IOP( "vsigma", MESA_MOD_VSIGMA, IF_REAL,""), IOP( "mu", MESA_MOD_MU, IF_REAL,"Mobility"), IOP( "theta", MESA_MOD_THETA, IF_REAL,""), IOP( "mu1", MESA_MOD_MU1, IF_REAL,"Second moblity parameter"), IOP( "mu2", MESA_MOD_MU2, IF_REAL,"Third moblity parameter"), IOP( "d", MESA_MOD_D, IF_REAL,"Depth of device"), IOP( "nd", MESA_MOD_ND, IF_REAL,"Doping density"), IOP( "du", MESA_MOD_DU, IF_REAL,"Depth of device"), IOP( "ndu", MESA_MOD_NDU, IF_REAL,"Doping density"), IOP( "th", MESA_MOD_TH, IF_REAL,"Thickness of delta doped layer"), IOP( "ndelta", MESA_MOD_NDELTA, IF_REAL,"Delta doped layer doping density"), IOP( "delta", MESA_MOD_DELTA, IF_REAL,""), IOP( "tc", MESA_MOD_TC, IF_REAL,"Transconductance compression factor"), IOP( "tvto", MESA_MOD_TVTO, IF_REAL,"Temperature coefficient for vto"), IOP( "alphat", MESA_MOD_TVTO, IF_REAL,""), IOP( "tlambda",MESA_MOD_TLAMBDA,IF_REAL,"Temperature coefficient for lambda"), IOP( "teta0", MESA_MOD_TETA0, IF_REAL,"First temperature coefficient for eta"), IOP( "teta1", MESA_MOD_TETA1, IF_REAL,"Second temperature coefficient for eta"), IOP( "tmu", MESA_MOD_TMU, IF_REAL,"Temperature coefficient for mobility"), IOP( "xtm0", MESA_MOD_XTM0, IF_REAL,"First exponent for temp dependence of mobility"), IOP( "xtm1", MESA_MOD_XTM1, IF_REAL,"Second exponent for temp dependence of mobility"), IOP( "xtm2", MESA_MOD_XTM2, IF_REAL,"Third exponent for temp dependence of mobility"), IOP( "ks", MESA_MOD_KS, IF_REAL,"Sidegating coefficient"), IOP( "vsg", MESA_MOD_VSG, IF_REAL,"Sidegating voltage"), IOP( "tf", MESA_MOD_TF, IF_REAL,"Characteristic temperature determined by traps"), IOP( "flo", MESA_MOD_FLO, IF_REAL,""), IOP( "delfo", MESA_MOD_DELFO, IF_REAL,""), IOP( "ag", MESA_MOD_AG, IF_REAL,""), IOP( "rtc1", MESA_MOD_TC1, IF_REAL,""), IOP( "rtc2", MESA_MOD_TC2, IF_REAL,""), IOP( "zeta", MESA_MOD_ZETA, IF_REAL,""), IOP( "level", MESA_MOD_LEVEL, IF_REAL,""), IOP( "nmax", MESA_MOD_NMAX, IF_REAL,""), IOP( "gamma", MESA_MOD_GAMMA, IF_REAL,""), IOP( "epsi", MESA_MOD_EPSI, IF_REAL,""), IOP( "cas", MESA_MOD_CAS, IF_REAL,""), IOP( "cbs", MESA_MOD_CBS, IF_REAL,""), IP( "pmf", MESA_MOD_PMF, IF_FLAG,"P type MESfet model"), IP( "nmf", MESA_MOD_NMF, IF_FLAG,"N type MESfet model"), OP( "gd", MESA_MOD_DRAINCONDUCT, IF_REAL,"Drain conductance"), OP( "gs", MESA_MOD_SOURCECONDUCT, IF_REAL,"Source conductance"), OP( "vcrit", MESA_MOD_VCRIT, IF_REAL,"Critical voltage"),};char *MESAnames[] = { "Drain", "Gate", "Source"};int MESAnSize = NUMELEMS(MESAnames);int MESApTSize = NUMELEMS(MESApTable);int MESAmPTSize = NUMELEMS(MESAmPTable);int MESAiSize = sizeof(MESAinstance);int MESAmSize = sizeof(MESAmodel);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -