b3soifdmpar.c

来自「ngspice又一个电子CAD仿真软件代码.功能更全」· C语言 代码 · 共 1,627 行 · 第 1/4 页

C
1,627
字号
/**********Copyright 1999 Regents of the University of California.  All rights reserved.Author: Weidong Liu and Pin Su         Feb 1999Author: 1998 Samuel Fung, Dennis Sinitsky and Stephen TangFile: b3soifdmpar.c          98/5/01Modified by Wei Jin 99/9/27Modified by Paolo Nenzi 2002**********//* * Revision 2.1  99/9/27 Pin Su  * BSIMFD2.1 release */#include "ngspice.h"#include "b3soifddef.h"#include "ifsim.h"#include "sperror.h"#include "suffix.h"intB3SOIFDmParam(int param, IFvalue *value, GENmodel *inMod){    B3SOIFDmodel *mod = (B3SOIFDmodel*)inMod;    switch(param)    {   	case  B3SOIFD_MOD_MOBMOD :            mod->B3SOIFDmobMod = value->iValue;            mod->B3SOIFDmobModGiven = TRUE;            break;        case  B3SOIFD_MOD_BINUNIT :            mod->B3SOIFDbinUnit = value->iValue;            mod->B3SOIFDbinUnitGiven = TRUE;            break;        case  B3SOIFD_MOD_PARAMCHK :            mod->B3SOIFDparamChk = value->iValue;            mod->B3SOIFDparamChkGiven = TRUE;            break;        case  B3SOIFD_MOD_CAPMOD :            mod->B3SOIFDcapMod = value->iValue;            mod->B3SOIFDcapModGiven = TRUE;            break;        case  B3SOIFD_MOD_SHMOD :            mod->B3SOIFDshMod = value->iValue;            mod->B3SOIFDshModGiven = TRUE;            break;        case  B3SOIFD_MOD_NOIMOD :            mod->B3SOIFDnoiMod = value->iValue;            mod->B3SOIFDnoiModGiven = TRUE;            break;        case  B3SOIFD_MOD_VERSION :            mod->B3SOIFDversion = value->rValue;            mod->B3SOIFDversionGiven = TRUE;            break;        case  B3SOIFD_MOD_TOX :            mod->B3SOIFDtox = value->rValue;            mod->B3SOIFDtoxGiven = TRUE;            break;        case  B3SOIFD_MOD_CDSC :            mod->B3SOIFDcdsc = value->rValue;            mod->B3SOIFDcdscGiven = TRUE;            break;        case  B3SOIFD_MOD_CDSCB :            mod->B3SOIFDcdscb = value->rValue;            mod->B3SOIFDcdscbGiven = TRUE;            break;        case  B3SOIFD_MOD_CDSCD :            mod->B3SOIFDcdscd = value->rValue;            mod->B3SOIFDcdscdGiven = TRUE;            break;        case  B3SOIFD_MOD_CIT :            mod->B3SOIFDcit = value->rValue;            mod->B3SOIFDcitGiven = TRUE;            break;        case  B3SOIFD_MOD_NFACTOR :            mod->B3SOIFDnfactor = value->rValue;            mod->B3SOIFDnfactorGiven = TRUE;            break;        case B3SOIFD_MOD_VSAT:            mod->B3SOIFDvsat = value->rValue;            mod->B3SOIFDvsatGiven = TRUE;            break;        case B3SOIFD_MOD_A0:            mod->B3SOIFDa0 = value->rValue;            mod->B3SOIFDa0Given = TRUE;            break;                case B3SOIFD_MOD_AGS:            mod->B3SOIFDags= value->rValue;            mod->B3SOIFDagsGiven = TRUE;            break;                case B3SOIFD_MOD_A1:            mod->B3SOIFDa1 = value->rValue;            mod->B3SOIFDa1Given = TRUE;            break;        case B3SOIFD_MOD_A2:            mod->B3SOIFDa2 = value->rValue;            mod->B3SOIFDa2Given = TRUE;            break;        case B3SOIFD_MOD_AT:            mod->B3SOIFDat = value->rValue;            mod->B3SOIFDatGiven = TRUE;            break;        case B3SOIFD_MOD_KETA:            mod->B3SOIFDketa = value->rValue;            mod->B3SOIFDketaGiven = TRUE;            break;            case B3SOIFD_MOD_NSUB:            mod->B3SOIFDnsub = value->rValue;            mod->B3SOIFDnsubGiven = TRUE;            break;        case B3SOIFD_MOD_NPEAK:            mod->B3SOIFDnpeak = value->rValue;            mod->B3SOIFDnpeakGiven = TRUE;	    if (mod->B3SOIFDnpeak > 1.0e20)		mod->B3SOIFDnpeak *= 1.0e-6;            break;        case B3SOIFD_MOD_NGATE:            mod->B3SOIFDngate = value->rValue;            mod->B3SOIFDngateGiven = TRUE;	    if (mod->B3SOIFDngate > 1.0e23)		mod->B3SOIFDngate *= 1.0e-6;            break;        case B3SOIFD_MOD_GAMMA1:            mod->B3SOIFDgamma1 = value->rValue;            mod->B3SOIFDgamma1Given = TRUE;            break;        case B3SOIFD_MOD_GAMMA2:            mod->B3SOIFDgamma2 = value->rValue;            mod->B3SOIFDgamma2Given = TRUE;            break;        case B3SOIFD_MOD_VBX:            mod->B3SOIFDvbx = value->rValue;            mod->B3SOIFDvbxGiven = TRUE;            break;        case B3SOIFD_MOD_VBM:            mod->B3SOIFDvbm = value->rValue;            mod->B3SOIFDvbmGiven = TRUE;            break;        case B3SOIFD_MOD_XT:            mod->B3SOIFDxt = value->rValue;            mod->B3SOIFDxtGiven = TRUE;            break;        case  B3SOIFD_MOD_K1:            mod->B3SOIFDk1 = value->rValue;            mod->B3SOIFDk1Given = TRUE;            break;        case  B3SOIFD_MOD_KT1:            mod->B3SOIFDkt1 = value->rValue;            mod->B3SOIFDkt1Given = TRUE;            break;        case  B3SOIFD_MOD_KT1L:            mod->B3SOIFDkt1l = value->rValue;            mod->B3SOIFDkt1lGiven = TRUE;            break;        case  B3SOIFD_MOD_KT2:            mod->B3SOIFDkt2 = value->rValue;            mod->B3SOIFDkt2Given = TRUE;            break;        case  B3SOIFD_MOD_K2:            mod->B3SOIFDk2 = value->rValue;            mod->B3SOIFDk2Given = TRUE;            break;        case  B3SOIFD_MOD_K3:            mod->B3SOIFDk3 = value->rValue;            mod->B3SOIFDk3Given = TRUE;            break;        case  B3SOIFD_MOD_K3B:            mod->B3SOIFDk3b = value->rValue;            mod->B3SOIFDk3bGiven = TRUE;            break;        case  B3SOIFD_MOD_NLX:            mod->B3SOIFDnlx = value->rValue;            mod->B3SOIFDnlxGiven = TRUE;            break;        case  B3SOIFD_MOD_W0:            mod->B3SOIFDw0 = value->rValue;            mod->B3SOIFDw0Given = TRUE;            break;        case  B3SOIFD_MOD_DVT0:                           mod->B3SOIFDdvt0 = value->rValue;            mod->B3SOIFDdvt0Given = TRUE;            break;        case  B3SOIFD_MOD_DVT1:                         mod->B3SOIFDdvt1 = value->rValue;            mod->B3SOIFDdvt1Given = TRUE;            break;        case  B3SOIFD_MOD_DVT2:                         mod->B3SOIFDdvt2 = value->rValue;            mod->B3SOIFDdvt2Given = TRUE;            break;        case  B3SOIFD_MOD_DVT0W:                           mod->B3SOIFDdvt0w = value->rValue;            mod->B3SOIFDdvt0wGiven = TRUE;            break;        case  B3SOIFD_MOD_DVT1W:                         mod->B3SOIFDdvt1w = value->rValue;            mod->B3SOIFDdvt1wGiven = TRUE;            break;        case  B3SOIFD_MOD_DVT2W:                         mod->B3SOIFDdvt2w = value->rValue;            mod->B3SOIFDdvt2wGiven = TRUE;            break;        case  B3SOIFD_MOD_DROUT:                         mod->B3SOIFDdrout = value->rValue;            mod->B3SOIFDdroutGiven = TRUE;            break;        case  B3SOIFD_MOD_DSUB:                         mod->B3SOIFDdsub = value->rValue;            mod->B3SOIFDdsubGiven = TRUE;            break;        case B3SOIFD_MOD_VTH0:            mod->B3SOIFDvth0 = value->rValue;            mod->B3SOIFDvth0Given = TRUE;            break;        case B3SOIFD_MOD_UA:            mod->B3SOIFDua = value->rValue;            mod->B3SOIFDuaGiven = TRUE;            break;        case B3SOIFD_MOD_UA1:            mod->B3SOIFDua1 = value->rValue;            mod->B3SOIFDua1Given = TRUE;            break;        case B3SOIFD_MOD_UB:            mod->B3SOIFDub = value->rValue;            mod->B3SOIFDubGiven = TRUE;            break;        case B3SOIFD_MOD_UB1:            mod->B3SOIFDub1 = value->rValue;            mod->B3SOIFDub1Given = TRUE;            break;        case B3SOIFD_MOD_UC:            mod->B3SOIFDuc = value->rValue;            mod->B3SOIFDucGiven = TRUE;            break;        case B3SOIFD_MOD_UC1:            mod->B3SOIFDuc1 = value->rValue;            mod->B3SOIFDuc1Given = TRUE;            break;        case  B3SOIFD_MOD_U0 :            mod->B3SOIFDu0 = value->rValue;            mod->B3SOIFDu0Given = TRUE;            break;        case  B3SOIFD_MOD_UTE :            mod->B3SOIFDute = value->rValue;            mod->B3SOIFDuteGiven = TRUE;            break;        case B3SOIFD_MOD_VOFF:            mod->B3SOIFDvoff = value->rValue;            mod->B3SOIFDvoffGiven = TRUE;            break;        case  B3SOIFD_MOD_DELTA :            mod->B3SOIFDdelta = value->rValue;            mod->B3SOIFDdeltaGiven = TRUE;            break;        case B3SOIFD_MOD_RDSW:            mod->B3SOIFDrdsw = value->rValue;            mod->B3SOIFDrdswGiven = TRUE;            break;                             case B3SOIFD_MOD_PRWG:            mod->B3SOIFDprwg = value->rValue;            mod->B3SOIFDprwgGiven = TRUE;            break;                             case B3SOIFD_MOD_PRWB:            mod->B3SOIFDprwb = value->rValue;            mod->B3SOIFDprwbGiven = TRUE;            break;                             case B3SOIFD_MOD_PRT:            mod->B3SOIFDprt = value->rValue;            mod->B3SOIFDprtGiven = TRUE;            break;                             case B3SOIFD_MOD_ETA0:            mod->B3SOIFDeta0 = value->rValue;            mod->B3SOIFDeta0Given = TRUE;            break;                         case B3SOIFD_MOD_ETAB:            mod->B3SOIFDetab = value->rValue;            mod->B3SOIFDetabGiven = TRUE;            break;                         case B3SOIFD_MOD_PCLM:            mod->B3SOIFDpclm = value->rValue;            mod->B3SOIFDpclmGiven = TRUE;            break;                         case B3SOIFD_MOD_PDIBL1:            mod->B3SOIFDpdibl1 = value->rValue;            mod->B3SOIFDpdibl1Given = TRUE;            break;                         case B3SOIFD_MOD_PDIBL2:            mod->B3SOIFDpdibl2 = value->rValue;            mod->B3SOIFDpdibl2Given = TRUE;            break;                         case B3SOIFD_MOD_PDIBLB:            mod->B3SOIFDpdiblb = value->rValue;            mod->B3SOIFDpdiblbGiven = TRUE;            break;                         case B3SOIFD_MOD_PVAG:            mod->B3SOIFDpvag = value->rValue;            mod->B3SOIFDpvagGiven = TRUE;            break;                         case  B3SOIFD_MOD_WR :            mod->B3SOIFDwr = value->rValue;            mod->B3SOIFDwrGiven = TRUE;            break;        case  B3SOIFD_MOD_DWG :            mod->B3SOIFDdwg = value->rValue;            mod->B3SOIFDdwgGiven = TRUE;            break;        case  B3SOIFD_MOD_DWB :            mod->B3SOIFDdwb = value->rValue;            mod->B3SOIFDdwbGiven = TRUE;            break;        case  B3SOIFD_MOD_B0 :            mod->B3SOIFDb0 = value->rValue;            mod->B3SOIFDb0Given = TRUE;            break;        case  B3SOIFD_MOD_B1 :            mod->B3SOIFDb1 = value->rValue;            mod->B3SOIFDb1Given = TRUE;            break;        case  B3SOIFD_MOD_ALPHA0 :            mod->B3SOIFDalpha0 = value->rValue;            mod->B3SOIFDalpha0Given = TRUE;            break;        case  B3SOIFD_MOD_ALPHA1 :            mod->B3SOIFDalpha1 = value->rValue;            mod->B3SOIFDalpha1Given = TRUE;            break;        case  B3SOIFD_MOD_BETA0 :            mod->B3SOIFDbeta0 = value->rValue;            mod->B3SOIFDbeta0Given = TRUE;            break;        case  B3SOIFD_MOD_CGSL :            mod->B3SOIFDcgsl = value->rValue;            mod->B3SOIFDcgslGiven = TRUE;            break;        case  B3SOIFD_MOD_CGDL :            mod->B3SOIFDcgdl = value->rValue;            mod->B3SOIFDcgdlGiven = TRUE;            break;        case  B3SOIFD_MOD_CKAPPA :            mod->B3SOIFDckappa = value->rValue;            mod->B3SOIFDckappaGiven = TRUE;            break;        case  B3SOIFD_MOD_CF :            mod->B3SOIFDcf = value->rValue;            mod->B3SOIFDcfGiven = TRUE;            break;        case  B3SOIFD_MOD_CLC :            mod->B3SOIFDclc = value->rValue;            mod->B3SOIFDclcGiven = TRUE;            break;        case  B3SOIFD_MOD_CLE :            mod->B3SOIFDcle = value->rValue;            mod->B3SOIFDcleGiven = TRUE;            break;        case  B3SOIFD_MOD_DWC :            mod->B3SOIFDdwc = value->rValue;            mod->B3SOIFDdwcGiven = TRUE;            break;        case  B3SOIFD_MOD_DLC :            mod->B3SOIFDdlc = value->rValue;            mod->B3SOIFDdlcGiven = TRUE;            break;        case  B3SOIFD_MOD_TBOX :            mod->B3SOIFDtbox = value->rValue;            mod->B3SOIFDtboxGiven = TRUE;            break;        case  B3SOIFD_MOD_TSI :            mod->B3SOIFDtsi = value->rValue;            mod->B3SOIFDtsiGiven = TRUE;            break;        case  B3SOIFD_MOD_XJ :            mod->B3SOIFDxj = value->rValue;            mod->B3SOIFDxjGiven = TRUE;            break;        case  B3SOIFD_MOD_KB1 :            mod->B3SOIFDkb1 = value->rValue;            mod->B3SOIFDkb1Given = TRUE;            break;        case  B3SOIFD_MOD_KB3 :            mod->B3SOIFDkb3 = value->rValue;            mod->B3SOIFDkb3Given = TRUE;            break;        case  B3SOIFD_MOD_DVBD0 :            mod->B3SOIFDdvbd0 = value->rValue;            mod->B3SOIFDdvbd0Given = TRUE;            break;        case  B3SOIFD_MOD_DVBD1 :            mod->B3SOIFDdvbd1 = value->rValue;            mod->B3SOIFDdvbd1Given = TRUE;            break;        case  B3SOIFD_MOD_DELP :            mod->B3SOIFDdelp = value->rValue;            mod->B3SOIFDdelpGiven = TRUE;            break;        case  B3SOIFD_MOD_VBSA :            mod->B3SOIFDvbsa = value->rValue;            mod->B3SOIFDvbsaGiven = TRUE;            break;        case  B3SOIFD_MOD_RBODY :

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?