b3mpar.c
来自「ngspice又一个电子CAD仿真软件代码.功能更全」· C语言 代码 · 共 1,719 行 · 第 1/4 页
C
1,719 行
/**** BSIM3v3.2.4, Released by Xuemei Xi 12/21/2001 ****//********** * Copyright 2001 Regents of the University of California. All rights reserved. * File: b3mpar.c of BSIM3v3.2.4 * Author: 1995 Min-Chie Jeng and Mansun Chan. * Author: 1997-1999 Weidong Liu. * Author: 2001 Xuemei Xi * Modified by Paolo Nenzi 2002 and Dietmar Warning 2003 **********/#include "ngspice.h"#include "bsim3def.h"#include "ifsim.h"#include "sperror.h"#include "suffix.h"intBSIM3mParam(int param, IFvalue *value, GENmodel *inMod){ BSIM3model *mod = (BSIM3model*)inMod; switch(param) { case BSIM3_MOD_MOBMOD : mod->BSIM3mobMod = value->iValue; mod->BSIM3mobModGiven = TRUE; break; case BSIM3_MOD_BINUNIT : mod->BSIM3binUnit = value->iValue; mod->BSIM3binUnitGiven = TRUE; break; case BSIM3_MOD_PARAMCHK : mod->BSIM3paramChk = value->iValue; mod->BSIM3paramChkGiven = TRUE; break; case BSIM3_MOD_CAPMOD : mod->BSIM3capMod = value->iValue; mod->BSIM3capModGiven = TRUE; break; case BSIM3_MOD_ACMMOD: mod->BSIM3acmMod = value->iValue; mod->BSIM3acmModGiven = TRUE; break; case BSIM3_MOD_NOIMOD : mod->BSIM3noiMod = value->iValue; mod->BSIM3noiModGiven = TRUE; break; case BSIM3_MOD_VERSION : mod->BSIM3version = value->sValue; mod->BSIM3versionGiven = TRUE; break; case BSIM3_MOD_TOX : mod->BSIM3tox = value->rValue; mod->BSIM3toxGiven = TRUE; break; case BSIM3_MOD_TOXM : mod->BSIM3toxm = value->rValue; mod->BSIM3toxmGiven = TRUE; break; case BSIM3_MOD_CDSC : mod->BSIM3cdsc = value->rValue; mod->BSIM3cdscGiven = TRUE; break; case BSIM3_MOD_CDSCB : mod->BSIM3cdscb = value->rValue; mod->BSIM3cdscbGiven = TRUE; break; case BSIM3_MOD_CDSCD : mod->BSIM3cdscd = value->rValue; mod->BSIM3cdscdGiven = TRUE; break; case BSIM3_MOD_CIT : mod->BSIM3cit = value->rValue; mod->BSIM3citGiven = TRUE; break; case BSIM3_MOD_NFACTOR : mod->BSIM3nfactor = value->rValue; mod->BSIM3nfactorGiven = TRUE; break; case BSIM3_MOD_XJ: mod->BSIM3xj = value->rValue; mod->BSIM3xjGiven = TRUE; break; case BSIM3_MOD_VSAT: mod->BSIM3vsat = value->rValue; mod->BSIM3vsatGiven = TRUE; break; case BSIM3_MOD_A0: mod->BSIM3a0 = value->rValue; mod->BSIM3a0Given = TRUE; break; case BSIM3_MOD_AGS: mod->BSIM3ags= value->rValue; mod->BSIM3agsGiven = TRUE; break; case BSIM3_MOD_A1: mod->BSIM3a1 = value->rValue; mod->BSIM3a1Given = TRUE; break; case BSIM3_MOD_A2: mod->BSIM3a2 = value->rValue; mod->BSIM3a2Given = TRUE; break; case BSIM3_MOD_AT: mod->BSIM3at = value->rValue; mod->BSIM3atGiven = TRUE; break; case BSIM3_MOD_KETA: mod->BSIM3keta = value->rValue; mod->BSIM3ketaGiven = TRUE; break; case BSIM3_MOD_NSUB: mod->BSIM3nsub = value->rValue; mod->BSIM3nsubGiven = TRUE; break; case BSIM3_MOD_NPEAK: mod->BSIM3npeak = value->rValue; mod->BSIM3npeakGiven = TRUE; if (mod->BSIM3npeak > 1.0e20) mod->BSIM3npeak *= 1.0e-6; break; case BSIM3_MOD_NGATE: mod->BSIM3ngate = value->rValue; mod->BSIM3ngateGiven = TRUE; if (mod->BSIM3ngate > 1.0e23) mod->BSIM3ngate *= 1.0e-6; break; case BSIM3_MOD_GAMMA1: mod->BSIM3gamma1 = value->rValue; mod->BSIM3gamma1Given = TRUE; break; case BSIM3_MOD_GAMMA2: mod->BSIM3gamma2 = value->rValue; mod->BSIM3gamma2Given = TRUE; break; case BSIM3_MOD_VBX: mod->BSIM3vbx = value->rValue; mod->BSIM3vbxGiven = TRUE; break; case BSIM3_MOD_VBM: mod->BSIM3vbm = value->rValue; mod->BSIM3vbmGiven = TRUE; break; case BSIM3_MOD_XT: mod->BSIM3xt = value->rValue; mod->BSIM3xtGiven = TRUE; break; case BSIM3_MOD_K1: mod->BSIM3k1 = value->rValue; mod->BSIM3k1Given = TRUE; break; case BSIM3_MOD_KT1: mod->BSIM3kt1 = value->rValue; mod->BSIM3kt1Given = TRUE; break; case BSIM3_MOD_KT1L: mod->BSIM3kt1l = value->rValue; mod->BSIM3kt1lGiven = TRUE; break; case BSIM3_MOD_KT2: mod->BSIM3kt2 = value->rValue; mod->BSIM3kt2Given = TRUE; break; case BSIM3_MOD_K2: mod->BSIM3k2 = value->rValue; mod->BSIM3k2Given = TRUE; break; case BSIM3_MOD_K3: mod->BSIM3k3 = value->rValue; mod->BSIM3k3Given = TRUE; break; case BSIM3_MOD_K3B: mod->BSIM3k3b = value->rValue; mod->BSIM3k3bGiven = TRUE; break; case BSIM3_MOD_NLX: mod->BSIM3nlx = value->rValue; mod->BSIM3nlxGiven = TRUE; break; case BSIM3_MOD_W0: mod->BSIM3w0 = value->rValue; mod->BSIM3w0Given = TRUE; break; case BSIM3_MOD_DVT0: mod->BSIM3dvt0 = value->rValue; mod->BSIM3dvt0Given = TRUE; break; case BSIM3_MOD_DVT1: mod->BSIM3dvt1 = value->rValue; mod->BSIM3dvt1Given = TRUE; break; case BSIM3_MOD_DVT2: mod->BSIM3dvt2 = value->rValue; mod->BSIM3dvt2Given = TRUE; break; case BSIM3_MOD_DVT0W: mod->BSIM3dvt0w = value->rValue; mod->BSIM3dvt0wGiven = TRUE; break; case BSIM3_MOD_DVT1W: mod->BSIM3dvt1w = value->rValue; mod->BSIM3dvt1wGiven = TRUE; break; case BSIM3_MOD_DVT2W: mod->BSIM3dvt2w = value->rValue; mod->BSIM3dvt2wGiven = TRUE; break; case BSIM3_MOD_DROUT: mod->BSIM3drout = value->rValue; mod->BSIM3droutGiven = TRUE; break; case BSIM3_MOD_DSUB: mod->BSIM3dsub = value->rValue; mod->BSIM3dsubGiven = TRUE; break; case BSIM3_MOD_VTH0: mod->BSIM3vth0 = value->rValue; mod->BSIM3vth0Given = TRUE; break; case BSIM3_MOD_UA: mod->BSIM3ua = value->rValue; mod->BSIM3uaGiven = TRUE; break; case BSIM3_MOD_UA1: mod->BSIM3ua1 = value->rValue; mod->BSIM3ua1Given = TRUE; break; case BSIM3_MOD_UB: mod->BSIM3ub = value->rValue; mod->BSIM3ubGiven = TRUE; break; case BSIM3_MOD_UB1: mod->BSIM3ub1 = value->rValue; mod->BSIM3ub1Given = TRUE; break; case BSIM3_MOD_UC: mod->BSIM3uc = value->rValue; mod->BSIM3ucGiven = TRUE; break; case BSIM3_MOD_UC1: mod->BSIM3uc1 = value->rValue; mod->BSIM3uc1Given = TRUE; break; case BSIM3_MOD_U0 : mod->BSIM3u0 = value->rValue; mod->BSIM3u0Given = TRUE; break; case BSIM3_MOD_UTE : mod->BSIM3ute = value->rValue; mod->BSIM3uteGiven = TRUE; break; case BSIM3_MOD_VOFF: mod->BSIM3voff = value->rValue; mod->BSIM3voffGiven = TRUE; break; case BSIM3_MOD_DELTA : mod->BSIM3delta = value->rValue; mod->BSIM3deltaGiven = TRUE; break; case BSIM3_MOD_RDSW: mod->BSIM3rdsw = value->rValue; mod->BSIM3rdswGiven = TRUE; break; case BSIM3_MOD_PRWG: mod->BSIM3prwg = value->rValue; mod->BSIM3prwgGiven = TRUE; break; case BSIM3_MOD_PRWB: mod->BSIM3prwb = value->rValue; mod->BSIM3prwbGiven = TRUE; break; case BSIM3_MOD_PRT: mod->BSIM3prt = value->rValue; mod->BSIM3prtGiven = TRUE; break; case BSIM3_MOD_ETA0: mod->BSIM3eta0 = value->rValue; mod->BSIM3eta0Given = TRUE; break; case BSIM3_MOD_ETAB: mod->BSIM3etab = value->rValue; mod->BSIM3etabGiven = TRUE; break; case BSIM3_MOD_PCLM: mod->BSIM3pclm = value->rValue; mod->BSIM3pclmGiven = TRUE; break; case BSIM3_MOD_PDIBL1: mod->BSIM3pdibl1 = value->rValue; mod->BSIM3pdibl1Given = TRUE; break; case BSIM3_MOD_PDIBL2: mod->BSIM3pdibl2 = value->rValue; mod->BSIM3pdibl2Given = TRUE; break; case BSIM3_MOD_PDIBLB: mod->BSIM3pdiblb = value->rValue; mod->BSIM3pdiblbGiven = TRUE; break; case BSIM3_MOD_PSCBE1: mod->BSIM3pscbe1 = value->rValue; mod->BSIM3pscbe1Given = TRUE; break; case BSIM3_MOD_PSCBE2: mod->BSIM3pscbe2 = value->rValue; mod->BSIM3pscbe2Given = TRUE; break; case BSIM3_MOD_PVAG: mod->BSIM3pvag = value->rValue; mod->BSIM3pvagGiven = TRUE; break; case BSIM3_MOD_WR : mod->BSIM3wr = value->rValue; mod->BSIM3wrGiven = TRUE; break; case BSIM3_MOD_DWG : mod->BSIM3dwg = value->rValue; mod->BSIM3dwgGiven = TRUE; break; case BSIM3_MOD_DWB : mod->BSIM3dwb = value->rValue; mod->BSIM3dwbGiven = TRUE; break; case BSIM3_MOD_B0 : mod->BSIM3b0 = value->rValue; mod->BSIM3b0Given = TRUE; break; case BSIM3_MOD_B1 : mod->BSIM3b1 = value->rValue; mod->BSIM3b1Given = TRUE; break; case BSIM3_MOD_ALPHA0 : mod->BSIM3alpha0 = value->rValue; mod->BSIM3alpha0Given = TRUE; break; case BSIM3_MOD_ALPHA1 : mod->BSIM3alpha1 = value->rValue; mod->BSIM3alpha1Given = TRUE; break; case BSIM3_MOD_BETA0 : mod->BSIM3beta0 = value->rValue; mod->BSIM3beta0Given = TRUE; break; case BSIM3_MOD_IJTH : mod->BSIM3ijth = value->rValue; mod->BSIM3ijthGiven = TRUE; break; case BSIM3_MOD_VFB : mod->BSIM3vfb = value->rValue; mod->BSIM3vfbGiven = TRUE; break; case BSIM3_MOD_ELM : mod->BSIM3elm = value->rValue; mod->BSIM3elmGiven = TRUE; break; case BSIM3_MOD_CGSL : mod->BSIM3cgsl = value->rValue; mod->BSIM3cgslGiven = TRUE; break; case BSIM3_MOD_CGDL : mod->BSIM3cgdl = value->rValue; mod->BSIM3cgdlGiven = TRUE; break; case BSIM3_MOD_CKAPPA : mod->BSIM3ckappa = value->rValue; mod->BSIM3ckappaGiven = TRUE; break; case BSIM3_MOD_CF : mod->BSIM3cf = value->rValue; mod->BSIM3cfGiven = TRUE; break; case BSIM3_MOD_CLC : mod->BSIM3clc = value->rValue; mod->BSIM3clcGiven = TRUE; break; case BSIM3_MOD_CLE : mod->BSIM3cle = value->rValue; mod->BSIM3cleGiven = TRUE; break; case BSIM3_MOD_DWC : mod->BSIM3dwc = value->rValue; mod->BSIM3dwcGiven = TRUE; break; case BSIM3_MOD_DLC : mod->BSIM3dlc = value->rValue; mod->BSIM3dlcGiven = TRUE; break; case BSIM3_MOD_VFBCV : mod->BSIM3vfbcv = value->rValue; mod->BSIM3vfbcvGiven = TRUE; break; case BSIM3_MOD_ACDE : mod->BSIM3acde = value->rValue; mod->BSIM3acdeGiven = TRUE; break; case BSIM3_MOD_MOIN : mod->BSIM3moin = value->rValue; mod->BSIM3moinGiven = TRUE; break; case BSIM3_MOD_NOFF : mod->BSIM3noff = value->rValue; mod->BSIM3noffGiven = TRUE; break; case BSIM3_MOD_VOFFCV : mod->BSIM3voffcv = value->rValue; mod->BSIM3voffcvGiven = TRUE; break; case BSIM3_MOD_TCJ : mod->BSIM3tcj = value->rValue; mod->BSIM3tcjGiven = TRUE; break; case BSIM3_MOD_TPB : mod->BSIM3tpb = value->rValue; mod->BSIM3tpbGiven = TRUE; break; case BSIM3_MOD_TCJSW : mod->BSIM3tcjsw = value->rValue; mod->BSIM3tcjswGiven = TRUE; break; case BSIM3_MOD_TPBSW : mod->BSIM3tpbsw = value->rValue; mod->BSIM3tpbswGiven = TRUE; break; case BSIM3_MOD_TCJSWG :
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?