📄 b3v1ampar.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: b3v1ampar.c**********/#include "ngspice.h"#include "bsim3v1adef.h"#include "ifsim.h"#include "sperror.h"#include "suffix.h"intBSIM3v1AmParam(int param, IFvalue *value, GENmodel *inMod){ BSIM3v1Amodel *mod = (BSIM3v1Amodel*)inMod; switch(param) { case BSIM3v1A_MOD_MOBMOD : mod->BSIM3v1AmobMod = value->iValue; mod->BSIM3v1AmobModGiven = TRUE; break; case BSIM3v1A_MOD_BINUNIT : mod->BSIM3v1AbinUnit = value->iValue; mod->BSIM3v1AbinUnitGiven = TRUE; break; case BSIM3v1A_MOD_CAPMOD : mod->BSIM3v1AcapMod = value->iValue; mod->BSIM3v1AcapModGiven = TRUE; break; case BSIM3v1A_MOD_NQSMOD : mod->BSIM3v1AnqsMod = value->iValue; mod->BSIM3v1AnqsModGiven = TRUE; break; case BSIM3v1A_MOD_NOIMOD : mod->BSIM3v1AnoiMod = value->iValue; mod->BSIM3v1AnoiModGiven = TRUE; break; case BSIM3v1A_MOD_TOX : mod->BSIM3v1Atox = value->rValue; mod->BSIM3v1AtoxGiven = TRUE; break; case BSIM3v1A_MOD_CDSC : mod->BSIM3v1Acdsc = value->rValue; mod->BSIM3v1AcdscGiven = TRUE; break; case BSIM3v1A_MOD_CDSCB : mod->BSIM3v1Acdscb = value->rValue; mod->BSIM3v1AcdscbGiven = TRUE; break; case BSIM3v1A_MOD_CDSCD : mod->BSIM3v1Acdscd = value->rValue; mod->BSIM3v1AcdscdGiven = TRUE; break; case BSIM3v1A_MOD_CIT : mod->BSIM3v1Acit = value->rValue; mod->BSIM3v1AcitGiven = TRUE; break; case BSIM3v1A_MOD_NFACTOR : mod->BSIM3v1Anfactor = value->rValue; mod->BSIM3v1AnfactorGiven = TRUE; break; case BSIM3v1A_MOD_XJ: mod->BSIM3v1Axj = value->rValue; mod->BSIM3v1AxjGiven = TRUE; break; case BSIM3v1A_MOD_VSAT: mod->BSIM3v1Avsat = value->rValue; mod->BSIM3v1AvsatGiven = TRUE; break; case BSIM3v1A_MOD_A0: mod->BSIM3v1Aa0 = value->rValue; mod->BSIM3v1Aa0Given = TRUE; break; case BSIM3v1A_MOD_AGS: mod->BSIM3v1Aags= value->rValue; mod->BSIM3v1AagsGiven = TRUE; break; case BSIM3v1A_MOD_A1: mod->BSIM3v1Aa1 = value->rValue; mod->BSIM3v1Aa1Given = TRUE; break; case BSIM3v1A_MOD_A2: mod->BSIM3v1Aa2 = value->rValue; mod->BSIM3v1Aa2Given = TRUE; break; case BSIM3v1A_MOD_AT: mod->BSIM3v1Aat = value->rValue; mod->BSIM3v1AatGiven = TRUE; break; case BSIM3v1A_MOD_KETA: mod->BSIM3v1Aketa = value->rValue; mod->BSIM3v1AketaGiven = TRUE; break; case BSIM3v1A_MOD_NSUB: mod->BSIM3v1Ansub = value->rValue; mod->BSIM3v1AnsubGiven = TRUE; break; case BSIM3v1A_MOD_NPEAK: mod->BSIM3v1Anpeak = value->rValue; mod->BSIM3v1AnpeakGiven = TRUE; if (mod->BSIM3v1Anpeak > 1.0e20) mod->BSIM3v1Anpeak *= 1.0e-6; break; case BSIM3v1A_MOD_NGATE: mod->BSIM3v1Angate = value->rValue; mod->BSIM3v1AngateGiven = TRUE; if (mod->BSIM3v1Angate > 1.0e23) mod->BSIM3v1Angate *= 1.0e-6; break; case BSIM3v1A_MOD_GAMMA1: mod->BSIM3v1Agamma1 = value->rValue; mod->BSIM3v1Agamma1Given = TRUE; break; case BSIM3v1A_MOD_GAMMA2: mod->BSIM3v1Agamma2 = value->rValue; mod->BSIM3v1Agamma2Given = TRUE; break; case BSIM3v1A_MOD_VBX: mod->BSIM3v1Avbx = value->rValue; mod->BSIM3v1AvbxGiven = TRUE; break; case BSIM3v1A_MOD_VBM: mod->BSIM3v1Avbm = value->rValue; mod->BSIM3v1AvbmGiven = TRUE; break; case BSIM3v1A_MOD_XT: mod->BSIM3v1Axt = value->rValue; mod->BSIM3v1AxtGiven = TRUE; break; case BSIM3v1A_MOD_K1: mod->BSIM3v1Ak1 = value->rValue; mod->BSIM3v1Ak1Given = TRUE; break; case BSIM3v1A_MOD_KT1: mod->BSIM3v1Akt1 = value->rValue; mod->BSIM3v1Akt1Given = TRUE; break; case BSIM3v1A_MOD_KT1L: mod->BSIM3v1Akt1l = value->rValue; mod->BSIM3v1Akt1lGiven = TRUE; break; case BSIM3v1A_MOD_KT2: mod->BSIM3v1Akt2 = value->rValue; mod->BSIM3v1Akt2Given = TRUE; break; case BSIM3v1A_MOD_K2: mod->BSIM3v1Ak2 = value->rValue; mod->BSIM3v1Ak2Given = TRUE; break; case BSIM3v1A_MOD_K3: mod->BSIM3v1Ak3 = value->rValue; mod->BSIM3v1Ak3Given = TRUE; break; case BSIM3v1A_MOD_K3B: mod->BSIM3v1Ak3b = value->rValue; mod->BSIM3v1Ak3bGiven = TRUE; break; case BSIM3v1A_MOD_NLX: mod->BSIM3v1Anlx = value->rValue; mod->BSIM3v1AnlxGiven = TRUE; break; case BSIM3v1A_MOD_W0: mod->BSIM3v1Aw0 = value->rValue; mod->BSIM3v1Aw0Given = TRUE; break; case BSIM3v1A_MOD_DVT0: mod->BSIM3v1Advt0 = value->rValue; mod->BSIM3v1Advt0Given = TRUE; break; case BSIM3v1A_MOD_DVT1: mod->BSIM3v1Advt1 = value->rValue; mod->BSIM3v1Advt1Given = TRUE; break; case BSIM3v1A_MOD_DVT2: mod->BSIM3v1Advt2 = value->rValue; mod->BSIM3v1Advt2Given = TRUE; break; case BSIM3v1A_MOD_DVT0W: mod->BSIM3v1Advt0w = value->rValue; mod->BSIM3v1Advt0wGiven = TRUE; break; case BSIM3v1A_MOD_DVT1W: mod->BSIM3v1Advt1w = value->rValue; mod->BSIM3v1Advt1wGiven = TRUE; break; case BSIM3v1A_MOD_DVT2W: mod->BSIM3v1Advt2w = value->rValue; mod->BSIM3v1Advt2wGiven = TRUE; break; case BSIM3v1A_MOD_DROUT: mod->BSIM3v1Adrout = value->rValue; mod->BSIM3v1AdroutGiven = TRUE; break; case BSIM3v1A_MOD_DSUB: mod->BSIM3v1Adsub = value->rValue; mod->BSIM3v1AdsubGiven = TRUE; break; case BSIM3v1A_MOD_VTH0: mod->BSIM3v1Avth0 = value->rValue; mod->BSIM3v1Avth0Given = TRUE; break; case BSIM3v1A_MOD_UA: mod->BSIM3v1Aua = value->rValue; mod->BSIM3v1AuaGiven = TRUE; break; case BSIM3v1A_MOD_UA1: mod->BSIM3v1Aua1 = value->rValue; mod->BSIM3v1Aua1Given = TRUE; break; case BSIM3v1A_MOD_UB: mod->BSIM3v1Aub = value->rValue; mod->BSIM3v1AubGiven = TRUE; break; case BSIM3v1A_MOD_UB1: mod->BSIM3v1Aub1 = value->rValue; mod->BSIM3v1Aub1Given = TRUE; break; case BSIM3v1A_MOD_UC: mod->BSIM3v1Auc = value->rValue; mod->BSIM3v1AucGiven = TRUE; break; case BSIM3v1A_MOD_UC1: mod->BSIM3v1Auc1 = value->rValue; mod->BSIM3v1Auc1Given = TRUE; break; case BSIM3v1A_MOD_U0 : mod->BSIM3v1Au0 = value->rValue; mod->BSIM3v1Au0Given = TRUE; if (mod->BSIM3v1Au0 > 1.0) mod->BSIM3v1Au0 *= 1.0e-4; break; case BSIM3v1A_MOD_UTE : mod->BSIM3v1Aute = value->rValue; mod->BSIM3v1AuteGiven = TRUE; break; case BSIM3v1A_MOD_VOFF: mod->BSIM3v1Avoff = value->rValue; mod->BSIM3v1AvoffGiven = TRUE; break; case BSIM3v1A_MOD_DELTA : mod->BSIM3v1Adelta = value->rValue; mod->BSIM3v1AdeltaGiven = TRUE; break; case BSIM3v1A_MOD_RDSW: mod->BSIM3v1Ardsw = value->rValue; mod->BSIM3v1ArdswGiven = TRUE; break; case BSIM3v1A_MOD_PRWG: mod->BSIM3v1Aprwg = value->rValue; mod->BSIM3v1AprwgGiven = TRUE; break; case BSIM3v1A_MOD_PRWB: mod->BSIM3v1Aprwb = value->rValue; mod->BSIM3v1AprwbGiven = TRUE; break; case BSIM3v1A_MOD_PRT: mod->BSIM3v1Aprt = value->rValue; mod->BSIM3v1AprtGiven = TRUE; break; case BSIM3v1A_MOD_ETA0: mod->BSIM3v1Aeta0 = value->rValue; mod->BSIM3v1Aeta0Given = TRUE; break; case BSIM3v1A_MOD_ETAB: mod->BSIM3v1Aetab = value->rValue; mod->BSIM3v1AetabGiven = TRUE; break; case BSIM3v1A_MOD_PCLM: mod->BSIM3v1Apclm = value->rValue; mod->BSIM3v1ApclmGiven = TRUE; break; case BSIM3v1A_MOD_PDIBL1: mod->BSIM3v1Apdibl1 = value->rValue; mod->BSIM3v1Apdibl1Given = TRUE; break; case BSIM3v1A_MOD_PDIBL2: mod->BSIM3v1Apdibl2 = value->rValue; mod->BSIM3v1Apdibl2Given = TRUE; break; case BSIM3v1A_MOD_PDIBLB: mod->BSIM3v1Apdiblb = value->rValue; mod->BSIM3v1ApdiblbGiven = TRUE; break; case BSIM3v1A_MOD_PSCBE1: mod->BSIM3v1Apscbe1 = value->rValue; mod->BSIM3v1Apscbe1Given = TRUE; break; case BSIM3v1A_MOD_PSCBE2: mod->BSIM3v1Apscbe2 = value->rValue; mod->BSIM3v1Apscbe2Given = TRUE; break; case BSIM3v1A_MOD_PVAG: mod->BSIM3v1Apvag = value->rValue; mod->BSIM3v1ApvagGiven = TRUE; break; case BSIM3v1A_MOD_WR : mod->BSIM3v1Awr = value->rValue; mod->BSIM3v1AwrGiven = TRUE; break; case BSIM3v1A_MOD_DWG : mod->BSIM3v1Adwg = value->rValue; mod->BSIM3v1AdwgGiven = TRUE; break; case BSIM3v1A_MOD_DWB : mod->BSIM3v1Adwb = value->rValue; mod->BSIM3v1AdwbGiven = TRUE; break; case BSIM3v1A_MOD_B0 : mod->BSIM3v1Ab0 = value->rValue; mod->BSIM3v1Ab0Given = TRUE; break; case BSIM3v1A_MOD_B1 : mod->BSIM3v1Ab1 = value->rValue; mod->BSIM3v1Ab1Given = TRUE; break; case BSIM3v1A_MOD_ALPHA0 : mod->BSIM3v1Aalpha0 = value->rValue; mod->BSIM3v1Aalpha0Given = TRUE; break; case BSIM3v1A_MOD_BETA0 : mod->BSIM3v1Abeta0 = value->rValue; mod->BSIM3v1Abeta0Given = TRUE; break; case BSIM3v1A_MOD_ELM : mod->BSIM3v1Aelm = value->rValue; mod->BSIM3v1AelmGiven = TRUE; break; case BSIM3v1A_MOD_CGSL : mod->BSIM3v1Acgsl = value->rValue; mod->BSIM3v1AcgslGiven = TRUE; break; case BSIM3v1A_MOD_CGDL : mod->BSIM3v1Acgdl = value->rValue; mod->BSIM3v1AcgdlGiven = TRUE; break; case BSIM3v1A_MOD_CKAPPA : mod->BSIM3v1Ackappa = value->rValue; mod->BSIM3v1AckappaGiven = TRUE; break; case BSIM3v1A_MOD_CF : mod->BSIM3v1Acf = value->rValue; mod->BSIM3v1AcfGiven = TRUE; break; case BSIM3v1A_MOD_CLC : mod->BSIM3v1Aclc = value->rValue; mod->BSIM3v1AclcGiven = TRUE; break; case BSIM3v1A_MOD_CLE : mod->BSIM3v1Acle = value->rValue; mod->BSIM3v1AcleGiven = TRUE; break; case BSIM3v1A_MOD_DWC : mod->BSIM3v1Adwc = value->rValue; mod->BSIM3v1AdwcGiven = TRUE; break; case BSIM3v1A_MOD_DLC : mod->BSIM3v1Adlc = value->rValue; mod->BSIM3v1AdlcGiven = TRUE; break; /* Length dependence */ case BSIM3v1A_MOD_LCDSC : mod->BSIM3v1Alcdsc = value->rValue;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -