📄 b3v1smpar.c
字号:
/**********Copyright 1990 Regents of the University of California. All rights reserved.Author: 1995 Min-Chie Jeng and Mansun Chan.Modified by Paolo Nenzi 2002File: b3v1smpar.c**********/#include "ngspice.h"#include "bsim3v1sdef.h"#include "ifsim.h"#include "sperror.h"#include "suffix.h"intBSIM3v1SmParam(int param, IFvalue *value, GENmodel *inMod){ BSIM3v1Smodel *mod = (BSIM3v1Smodel*)inMod; switch(param) { case BSIM3v1S_MOD_MOBMOD : mod->BSIM3v1SmobMod = value->iValue; mod->BSIM3v1SmobModGiven = TRUE; break; case BSIM3v1S_MOD_BINUNIT : mod->BSIM3v1SbinUnit = value->iValue; mod->BSIM3v1SbinUnitGiven = TRUE; break; case BSIM3v1S_MOD_PARAMCHK : mod->BSIM3v1SparamChk = value->iValue; mod->BSIM3v1SparamChkGiven = TRUE; break; case BSIM3v1S_MOD_CAPMOD : mod->BSIM3v1ScapMod = value->iValue; mod->BSIM3v1ScapModGiven = TRUE; break; case BSIM3v1S_MOD_NQSMOD : mod->BSIM3v1SnqsMod = value->iValue; mod->BSIM3v1SnqsModGiven = TRUE; break; case BSIM3v1S_MOD_NOIMOD : mod->BSIM3v1SnoiMod = value->iValue; mod->BSIM3v1SnoiModGiven = TRUE; break; case BSIM3v1S_MOD_VERSION : mod->BSIM3v1Sversion = value->rValue; mod->BSIM3v1SversionGiven = TRUE; break; case BSIM3v1S_MOD_TOX : mod->BSIM3v1Stox = value->rValue; mod->BSIM3v1StoxGiven = TRUE; break; case BSIM3v1S_MOD_CDSC : mod->BSIM3v1Scdsc = value->rValue; mod->BSIM3v1ScdscGiven = TRUE; break; case BSIM3v1S_MOD_CDSCB : mod->BSIM3v1Scdscb = value->rValue; mod->BSIM3v1ScdscbGiven = TRUE; break; case BSIM3v1S_MOD_CDSCD : mod->BSIM3v1Scdscd = value->rValue; mod->BSIM3v1ScdscdGiven = TRUE; break; case BSIM3v1S_MOD_CIT : mod->BSIM3v1Scit = value->rValue; mod->BSIM3v1ScitGiven = TRUE; break; case BSIM3v1S_MOD_NFACTOR : mod->BSIM3v1Snfactor = value->rValue; mod->BSIM3v1SnfactorGiven = TRUE; break; case BSIM3v1S_MOD_XJ: mod->BSIM3v1Sxj = value->rValue; mod->BSIM3v1SxjGiven = TRUE; break; case BSIM3v1S_MOD_VSAT: mod->BSIM3v1Svsat = value->rValue; mod->BSIM3v1SvsatGiven = TRUE; break; case BSIM3v1S_MOD_A0: mod->BSIM3v1Sa0 = value->rValue; mod->BSIM3v1Sa0Given = TRUE; break; case BSIM3v1S_MOD_AGS: mod->BSIM3v1Sags= value->rValue; mod->BSIM3v1SagsGiven = TRUE; break; case BSIM3v1S_MOD_A1: mod->BSIM3v1Sa1 = value->rValue; mod->BSIM3v1Sa1Given = TRUE; break; case BSIM3v1S_MOD_A2: mod->BSIM3v1Sa2 = value->rValue; mod->BSIM3v1Sa2Given = TRUE; break; case BSIM3v1S_MOD_AT: mod->BSIM3v1Sat = value->rValue; mod->BSIM3v1SatGiven = TRUE; break; case BSIM3v1S_MOD_KETA: mod->BSIM3v1Sketa = value->rValue; mod->BSIM3v1SketaGiven = TRUE; break; case BSIM3v1S_MOD_NSUB: mod->BSIM3v1Snsub = value->rValue; mod->BSIM3v1SnsubGiven = TRUE; break; case BSIM3v1S_MOD_NPEAK: mod->BSIM3v1Snpeak = value->rValue; mod->BSIM3v1SnpeakGiven = TRUE; if (mod->BSIM3v1Snpeak > 1.0e20) mod->BSIM3v1Snpeak *= 1.0e-6; break; case BSIM3v1S_MOD_NGATE: mod->BSIM3v1Sngate = value->rValue; mod->BSIM3v1SngateGiven = TRUE; if (mod->BSIM3v1Sngate > 1.0e23) mod->BSIM3v1Sngate *= 1.0e-6; break; case BSIM3v1S_MOD_GAMMA1: mod->BSIM3v1Sgamma1 = value->rValue; mod->BSIM3v1Sgamma1Given = TRUE; break; case BSIM3v1S_MOD_GAMMA2: mod->BSIM3v1Sgamma2 = value->rValue; mod->BSIM3v1Sgamma2Given = TRUE; break; case BSIM3v1S_MOD_VBX: mod->BSIM3v1Svbx = value->rValue; mod->BSIM3v1SvbxGiven = TRUE; break; case BSIM3v1S_MOD_VBM: mod->BSIM3v1Svbm = value->rValue; mod->BSIM3v1SvbmGiven = TRUE; break; case BSIM3v1S_MOD_XT: mod->BSIM3v1Sxt = value->rValue; mod->BSIM3v1SxtGiven = TRUE; break; case BSIM3v1S_MOD_K1: mod->BSIM3v1Sk1 = value->rValue; mod->BSIM3v1Sk1Given = TRUE; break; case BSIM3v1S_MOD_KT1: mod->BSIM3v1Skt1 = value->rValue; mod->BSIM3v1Skt1Given = TRUE; break; case BSIM3v1S_MOD_KT1L: mod->BSIM3v1Skt1l = value->rValue; mod->BSIM3v1Skt1lGiven = TRUE; break; case BSIM3v1S_MOD_KT2: mod->BSIM3v1Skt2 = value->rValue; mod->BSIM3v1Skt2Given = TRUE; break; case BSIM3v1S_MOD_K2: mod->BSIM3v1Sk2 = value->rValue; mod->BSIM3v1Sk2Given = TRUE; break; case BSIM3v1S_MOD_K3: mod->BSIM3v1Sk3 = value->rValue; mod->BSIM3v1Sk3Given = TRUE; break; case BSIM3v1S_MOD_K3B: mod->BSIM3v1Sk3b = value->rValue; mod->BSIM3v1Sk3bGiven = TRUE; break; case BSIM3v1S_MOD_NLX: mod->BSIM3v1Snlx = value->rValue; mod->BSIM3v1SnlxGiven = TRUE; break; case BSIM3v1S_MOD_W0: mod->BSIM3v1Sw0 = value->rValue; mod->BSIM3v1Sw0Given = TRUE; break; case BSIM3v1S_MOD_DVT0: mod->BSIM3v1Sdvt0 = value->rValue; mod->BSIM3v1Sdvt0Given = TRUE; break; case BSIM3v1S_MOD_DVT1: mod->BSIM3v1Sdvt1 = value->rValue; mod->BSIM3v1Sdvt1Given = TRUE; break; case BSIM3v1S_MOD_DVT2: mod->BSIM3v1Sdvt2 = value->rValue; mod->BSIM3v1Sdvt2Given = TRUE; break; case BSIM3v1S_MOD_DVT0W: mod->BSIM3v1Sdvt0w = value->rValue; mod->BSIM3v1Sdvt0wGiven = TRUE; break; case BSIM3v1S_MOD_DVT1W: mod->BSIM3v1Sdvt1w = value->rValue; mod->BSIM3v1Sdvt1wGiven = TRUE; break; case BSIM3v1S_MOD_DVT2W: mod->BSIM3v1Sdvt2w = value->rValue; mod->BSIM3v1Sdvt2wGiven = TRUE; break; case BSIM3v1S_MOD_DROUT: mod->BSIM3v1Sdrout = value->rValue; mod->BSIM3v1SdroutGiven = TRUE; break; case BSIM3v1S_MOD_DSUB: mod->BSIM3v1Sdsub = value->rValue; mod->BSIM3v1SdsubGiven = TRUE; break; case BSIM3v1S_MOD_VTH0: mod->BSIM3v1Svth0 = value->rValue; mod->BSIM3v1Svth0Given = TRUE; break; case BSIM3v1S_MOD_UA: mod->BSIM3v1Sua = value->rValue; mod->BSIM3v1SuaGiven = TRUE; break; case BSIM3v1S_MOD_UA1: mod->BSIM3v1Sua1 = value->rValue; mod->BSIM3v1Sua1Given = TRUE; break; case BSIM3v1S_MOD_UB: mod->BSIM3v1Sub = value->rValue; mod->BSIM3v1SubGiven = TRUE; break; case BSIM3v1S_MOD_UB1: mod->BSIM3v1Sub1 = value->rValue; mod->BSIM3v1Sub1Given = TRUE; break; case BSIM3v1S_MOD_UC: mod->BSIM3v1Suc = value->rValue; mod->BSIM3v1SucGiven = TRUE; break; case BSIM3v1S_MOD_UC1: mod->BSIM3v1Suc1 = value->rValue; mod->BSIM3v1Suc1Given = TRUE; break; case BSIM3v1S_MOD_U0 : mod->BSIM3v1Su0 = value->rValue; mod->BSIM3v1Su0Given = TRUE; break; case BSIM3v1S_MOD_UTE : mod->BSIM3v1Sute = value->rValue; mod->BSIM3v1SuteGiven = TRUE; break; case BSIM3v1S_MOD_VOFF: mod->BSIM3v1Svoff = value->rValue; mod->BSIM3v1SvoffGiven = TRUE; break; case BSIM3v1S_MOD_DELTA : mod->BSIM3v1Sdelta = value->rValue; mod->BSIM3v1SdeltaGiven = TRUE; break; case BSIM3v1S_MOD_RDSW: mod->BSIM3v1Srdsw = value->rValue; mod->BSIM3v1SrdswGiven = TRUE; break; case BSIM3v1S_MOD_PRWG: mod->BSIM3v1Sprwg = value->rValue; mod->BSIM3v1SprwgGiven = TRUE; break; case BSIM3v1S_MOD_PRWB: mod->BSIM3v1Sprwb = value->rValue; mod->BSIM3v1SprwbGiven = TRUE; break; case BSIM3v1S_MOD_PRT: mod->BSIM3v1Sprt = value->rValue; mod->BSIM3v1SprtGiven = TRUE; break; case BSIM3v1S_MOD_ETA0: mod->BSIM3v1Seta0 = value->rValue; mod->BSIM3v1Seta0Given = TRUE; break; case BSIM3v1S_MOD_ETAB: mod->BSIM3v1Setab = value->rValue; mod->BSIM3v1SetabGiven = TRUE; break; case BSIM3v1S_MOD_PCLM: mod->BSIM3v1Spclm = value->rValue; mod->BSIM3v1SpclmGiven = TRUE; break; case BSIM3v1S_MOD_PDIBL1: mod->BSIM3v1Spdibl1 = value->rValue; mod->BSIM3v1Spdibl1Given = TRUE; break; case BSIM3v1S_MOD_PDIBL2: mod->BSIM3v1Spdibl2 = value->rValue; mod->BSIM3v1Spdibl2Given = TRUE; break; case BSIM3v1S_MOD_PDIBLB: mod->BSIM3v1Spdiblb = value->rValue; mod->BSIM3v1SpdiblbGiven = TRUE; break; case BSIM3v1S_MOD_PSCBE1: mod->BSIM3v1Spscbe1 = value->rValue; mod->BSIM3v1Spscbe1Given = TRUE; break; case BSIM3v1S_MOD_PSCBE2: mod->BSIM3v1Spscbe2 = value->rValue; mod->BSIM3v1Spscbe2Given = TRUE; break; case BSIM3v1S_MOD_PVAG: mod->BSIM3v1Spvag = value->rValue; mod->BSIM3v1SpvagGiven = TRUE; break; case BSIM3v1S_MOD_WR : mod->BSIM3v1Swr = value->rValue; mod->BSIM3v1SwrGiven = TRUE; break; case BSIM3v1S_MOD_DWG : mod->BSIM3v1Sdwg = value->rValue; mod->BSIM3v1SdwgGiven = TRUE; break; case BSIM3v1S_MOD_DWB : mod->BSIM3v1Sdwb = value->rValue; mod->BSIM3v1SdwbGiven = TRUE; break; case BSIM3v1S_MOD_B0 : mod->BSIM3v1Sb0 = value->rValue; mod->BSIM3v1Sb0Given = TRUE; break; case BSIM3v1S_MOD_B1 : mod->BSIM3v1Sb1 = value->rValue; mod->BSIM3v1Sb1Given = TRUE; break; case BSIM3v1S_MOD_ALPHA0 : mod->BSIM3v1Salpha0 = value->rValue; mod->BSIM3v1Salpha0Given = TRUE; break; case BSIM3v1S_MOD_BETA0 : mod->BSIM3v1Sbeta0 = value->rValue; mod->BSIM3v1Sbeta0Given = TRUE; break; case BSIM3v1S_MOD_ELM : mod->BSIM3v1Selm = value->rValue; mod->BSIM3v1SelmGiven = TRUE; break; case BSIM3v1S_MOD_CGSL : mod->BSIM3v1Scgsl = value->rValue; mod->BSIM3v1ScgslGiven = TRUE; break; case BSIM3v1S_MOD_CGDL : mod->BSIM3v1Scgdl = value->rValue; mod->BSIM3v1ScgdlGiven = TRUE; break; case BSIM3v1S_MOD_CKAPPA : mod->BSIM3v1Sckappa = value->rValue; mod->BSIM3v1SckappaGiven = TRUE; break; case BSIM3v1S_MOD_CF : mod->BSIM3v1Scf = value->rValue; mod->BSIM3v1ScfGiven = TRUE; break; case BSIM3v1S_MOD_CLC : mod->BSIM3v1Sclc = value->rValue; mod->BSIM3v1SclcGiven = TRUE; break; case BSIM3v1S_MOD_CLE : mod->BSIM3v1Scle = value->rValue; mod->BSIM3v1ScleGiven = TRUE; break; case BSIM3v1S_MOD_DWC : mod->BSIM3v1Sdwc = value->rValue; mod->BSIM3v1SdwcGiven = TRUE; break; case BSIM3v1S_MOD_DLC : mod->BSIM3v1Sdlc = value->rValue; mod->BSIM3v1SdlcGiven = TRUE; break; case BSIM3v1S_MOD_VFBCV : mod->BSIM3v1Svfbcv = value->rValue; mod->BSIM3v1SvfbcvGiven = TRUE; break; /* Length dependence */ case BSIM3v1S_MOD_LCDSC : mod->BSIM3v1Slcdsc = value->rValue; mod->BSIM3v1SlcdscGiven = TRUE; break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -