📄 vbicmpar.c
字号:
/**********Copyright 1990 Regents of the University of California. All rights reserved.Author: 1985 Thomas L. QuarlesModel Author: 1995 Colin McAndrew MotorolaSpice3 Implementation: 2003 Dietmar Warning DAnalyse GmbH**********//* * This routine sets model parameters for * VBICs in the circuit. */#include "ngspice.h"#include "const.h"#include "ifsim.h"#include "vbicdefs.h"#include "sperror.h"#include "suffix.h"intVBICmParam(int param, IFvalue *value, GENmodel *inModel){ VBICmodel *mods = (VBICmodel*)inModel; switch(param) { case VBIC_MOD_NPN: if(value->iValue) { mods->VBICtype = NPN; } break; case VBIC_MOD_PNP: if(value->iValue) { mods->VBICtype = PNP; } break; case VBIC_MOD_TNOM: mods->VBICtnom = value->rValue; mods->VBICtnomGiven = TRUE; break; case VBIC_MOD_RCX: mods->VBICextCollResist = value->rValue; if (mods->VBICextCollResist < 0.1) mods->VBICextCollResist = 0.1; mods->VBICextCollResistGiven = TRUE; break; case VBIC_MOD_RCI: mods->VBICintCollResist = value->rValue; if (mods->VBICintCollResist < 0.1) mods->VBICintCollResist = 0.1; mods->VBICintCollResistGiven = TRUE; break; case VBIC_MOD_VO: mods->VBICepiSatVoltage = value->rValue; mods->VBICepiSatVoltageGiven = TRUE; break; case VBIC_MOD_GAMM: mods->VBICepiDoping = value->rValue; mods->VBICepiDopingGiven = TRUE; break; case VBIC_MOD_HRCF: mods->VBIChighCurFac = value->rValue; mods->VBIChighCurFacGiven = TRUE; break; case VBIC_MOD_RBX: mods->VBICextBaseResist = value->rValue; if (mods->VBICextBaseResist < 0.1) mods->VBICextBaseResist = 0.1; mods->VBICextBaseResistGiven = TRUE; break; case VBIC_MOD_RBI: mods->VBICintBaseResist = value->rValue; if (mods->VBICintBaseResist < 0.1) mods->VBICintBaseResist = 0.1; mods->VBICintBaseResistGiven = TRUE; break; case VBIC_MOD_RE: mods->VBICemitterResist = value->rValue; if (mods->VBICemitterResist < 0.1) mods->VBICemitterResist = 0.1; mods->VBICemitterResistGiven = TRUE; break; case VBIC_MOD_RS: mods->VBICsubstrateResist = value->rValue; if (mods->VBICsubstrateResist < 0.1) mods->VBICsubstrateResist = 0.1; mods->VBICsubstrateResistGiven = TRUE; break; case VBIC_MOD_RBP: mods->VBICparBaseResist = value->rValue; if (mods->VBICparBaseResist < 0.1) mods->VBICparBaseResist = 0.1; mods->VBICparBaseResistGiven = TRUE; break; case VBIC_MOD_IS: mods->VBICsatCur = value->rValue; mods->VBICsatCurGiven = TRUE; break; case VBIC_MOD_NF: mods->VBICemissionCoeffF = value->rValue; mods->VBICemissionCoeffFGiven = TRUE; break; case VBIC_MOD_NR: mods->VBICemissionCoeffR = value->rValue; mods->VBICemissionCoeffRGiven = TRUE; break; case VBIC_MOD_FC: mods->VBICdeplCapLimitF = value->rValue; mods->VBICdeplCapLimitFGiven = TRUE; break; case VBIC_MOD_CBEO: mods->VBICextOverlapCapBE = value->rValue; mods->VBICextOverlapCapBEGiven=TRUE; break; case VBIC_MOD_CJE: mods->VBICdepletionCapBE = value->rValue; mods->VBICdepletionCapBEGiven = TRUE; break; case VBIC_MOD_PE: mods->VBICpotentialBE = value->rValue; mods->VBICpotentialBEGiven = TRUE; break; case VBIC_MOD_ME: mods->VBICjunctionExpBE = value->rValue; mods->VBICjunctionExpBEGiven = TRUE; break; case VBIC_MOD_AJE: mods->VBICsmoothCapBE = value->rValue; mods->VBICsmoothCapBEGiven = TRUE; break; case VBIC_MOD_CBCO: mods->VBICextOverlapCapBC = value->rValue; mods->VBICextOverlapCapBCGiven=TRUE; break; case VBIC_MOD_CJC: mods->VBICdepletionCapBC = value->rValue; mods->VBICdepletionCapBCGiven = TRUE; break; case VBIC_MOD_QCO: mods->VBICepiCharge = value->rValue; mods->VBICepiChargeGiven = TRUE; break; case VBIC_MOD_CJEP: mods->VBICextCapBC = value->rValue; mods->VBICextCapBCGiven = TRUE; break; case VBIC_MOD_PC: mods->VBICpotentialBC = value->rValue; mods->VBICpotentialBCGiven = TRUE; break; case VBIC_MOD_MC: mods->VBICjunctionExpBC = value->rValue; mods->VBICjunctionExpBCGiven = TRUE; break; case VBIC_MOD_AJC: mods->VBICsmoothCapBC = value->rValue; mods->VBICsmoothCapBCGiven = TRUE; break; case VBIC_MOD_CJCP: mods->VBICextCapSC = value->rValue; mods->VBICextCapSCGiven = TRUE; break; case VBIC_MOD_PS: mods->VBICpotentialSC = value->rValue; mods->VBICpotentialSCGiven = TRUE; break; case VBIC_MOD_MS: mods->VBICjunctionExpSC = value->rValue; mods->VBICjunctionExpSCGiven = TRUE; break; case VBIC_MOD_AJS: mods->VBICsmoothCapSC = value->rValue; mods->VBICsmoothCapSCGiven = TRUE; break; case VBIC_MOD_IBEI: mods->VBICidealSatCurBE = value->rValue; mods->VBICidealSatCurBEGiven = TRUE; break; case VBIC_MOD_WBE: mods->VBICportionIBEI = value->rValue; mods->VBICportionIBEIGiven = TRUE; break; case VBIC_MOD_NEI: mods->VBICidealEmissCoeffBE = value->rValue; mods->VBICidealEmissCoeffBEGiven = TRUE; break; case VBIC_MOD_IBEN: mods->VBICnidealSatCurBE = value->rValue; mods->VBICnidealSatCurBEGiven = TRUE; break; case VBIC_MOD_NEN: mods->VBICnidealEmissCoeffBE = value->rValue; mods->VBICnidealEmissCoeffBEGiven = TRUE; break; case VBIC_MOD_IBCI: mods->VBICidealSatCurBC = value->rValue; mods->VBICidealSatCurBCGiven = TRUE; break; case VBIC_MOD_NCI: mods->VBICidealEmissCoeffBC = value->rValue; mods->VBICidealEmissCoeffBCGiven = TRUE; break; case VBIC_MOD_IBCN: mods->VBICnidealSatCurBC = value->rValue; mods->VBICnidealSatCurBCGiven = TRUE; break; case VBIC_MOD_NCN: mods->VBICnidealEmissCoeffBC = value->rValue; mods->VBICnidealEmissCoeffBCGiven = TRUE; break; case VBIC_MOD_AVC1: mods->VBICavalanchePar1BC = value->rValue; mods->VBICavalanchePar1BCGiven = TRUE; break; case VBIC_MOD_AVC2: mods->VBICavalanchePar2BC = value->rValue; mods->VBICavalanchePar2BCGiven = TRUE; break; case VBIC_MOD_ISP: mods->VBICparasitSatCur = value->rValue; mods->VBICparasitSatCurGiven = TRUE; break; case VBIC_MOD_WSP: mods->VBICportionICCP = value->rValue; mods->VBICportionICCPGiven = TRUE; break; case VBIC_MOD_NFP: mods->VBICparasitFwdEmissCoeff = value->rValue; mods->VBICparasitFwdEmissCoeffGiven = TRUE; break; case VBIC_MOD_IBEIP: mods->VBICidealParasitSatCurBE = value->rValue; mods->VBICidealParasitSatCurBEGiven = TRUE; break; case VBIC_MOD_IBENP: mods->VBICnidealParasitSatCurBE = value->rValue; mods->VBICnidealParasitSatCurBEGiven = TRUE; break; case VBIC_MOD_IBCIP: mods->VBICidealParasitSatCurBC = value->rValue; mods->VBICidealParasitSatCurBCGiven = TRUE; break; case VBIC_MOD_NCIP: mods->VBICidealParasitEmissCoeffBC = value->rValue; mods->VBICidealParasitEmissCoeffBCGiven = TRUE; break; case VBIC_MOD_IBCNP:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -