⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b3v1smpar.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
📖 第 1 页 / 共 4 页
字号:
/**********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 + -