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

📄 b3v1ampar.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: 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 + -