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

📄 mos6mpar.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1989 Takayasu Sakurai**********//* */#include "spice.h"#include <stdio.h>#include "const.h"#include "util.h"#include "ifsim.h"#include "mos6defs.h"#include "sperror.h"#include "suffix.h"intMOS6mParam(param,value,inModel)    int param;    IFvalue *value;    GENmodel *inModel;{    register MOS6model *model = (MOS6model *)inModel;    switch(param) {        case MOS6_MOD_TNOM:            model->MOS6tnom = value->rValue+CONSTCtoK;            model->MOS6tnomGiven = TRUE;            break;        case MOS6_MOD_VTO:            model->MOS6vt0 = value->rValue;            model->MOS6vt0Given = TRUE;            break;        case MOS6_MOD_KV:            model->MOS6kv = value->rValue;            model->MOS6kvGiven = TRUE;            break;        case MOS6_MOD_NV:            model->MOS6nv = value->rValue;            model->MOS6nvGiven = TRUE;            break;        case MOS6_MOD_KC:            model->MOS6kc = value->rValue;            model->MOS6kcGiven = TRUE;            break;        case MOS6_MOD_NC:            model->MOS6nc = value->rValue;            model->MOS6ncGiven = TRUE;            break;        case MOS6_MOD_NVTH:            model->MOS6nvth = value->rValue;            model->MOS6nvthGiven = TRUE;            break;        case MOS6_MOD_PS:            model->MOS6ps = value->rValue;            model->MOS6psGiven = TRUE;            break;        case MOS6_MOD_GAMMA:            model->MOS6gamma = value->rValue;            model->MOS6gammaGiven = TRUE;            break;        case MOS6_MOD_GAMMA1:            model->MOS6gamma1 = value->rValue;            model->MOS6gamma1Given = TRUE;            break;        case MOS6_MOD_SIGMA:            model->MOS6sigma = value->rValue;            model->MOS6sigmaGiven = TRUE;            break;        case MOS6_MOD_PHI:            model->MOS6phi = value->rValue;            model->MOS6phiGiven = TRUE;            break;        case MOS6_MOD_LAMBDA:            model->MOS6lambda = value->rValue;            model->MOS6lambdaGiven = TRUE;            break;        case MOS6_MOD_LAMDA0:            model->MOS6lamda0 = value->rValue;            model->MOS6lamda0Given = TRUE;            break;        case MOS6_MOD_LAMDA1:            model->MOS6lamda1 = value->rValue;            model->MOS6lamda1Given = TRUE;            break;        case MOS6_MOD_RD:            model->MOS6drainResistance = value->rValue;            model->MOS6drainResistanceGiven = TRUE;            break;        case MOS6_MOD_RS:            model->MOS6sourceResistance = value->rValue;            model->MOS6sourceResistanceGiven = TRUE;            break;        case MOS6_MOD_CBD:            model->MOS6capBD = value->rValue;            model->MOS6capBDGiven = TRUE;            break;        case MOS6_MOD_CBS:            model->MOS6capBS = value->rValue;            model->MOS6capBSGiven = TRUE;            break;        case MOS6_MOD_IS:            model->MOS6jctSatCur = value->rValue;            model->MOS6jctSatCurGiven = TRUE;            break;        case MOS6_MOD_PB:            model->MOS6bulkJctPotential = value->rValue;            model->MOS6bulkJctPotentialGiven = TRUE;            break;        case MOS6_MOD_CGSO:            model->MOS6gateSourceOverlapCapFactor = value->rValue;            model->MOS6gateSourceOverlapCapFactorGiven = TRUE;            break;        case MOS6_MOD_CGDO:            model->MOS6gateDrainOverlapCapFactor = value->rValue;            model->MOS6gateDrainOverlapCapFactorGiven = TRUE;            break;        case MOS6_MOD_CGBO:            model->MOS6gateBulkOverlapCapFactor = value->rValue;            model->MOS6gateBulkOverlapCapFactorGiven = TRUE;            break;        case MOS6_MOD_CJ:            model->MOS6bulkCapFactor = value->rValue;            model->MOS6bulkCapFactorGiven = TRUE;            break;        case MOS6_MOD_MJ:            model->MOS6bulkJctBotGradingCoeff = value->rValue;            model->MOS6bulkJctBotGradingCoeffGiven = TRUE;            break;        case MOS6_MOD_CJSW:            model->MOS6sideWallCapFactor = value->rValue;            model->MOS6sideWallCapFactorGiven = TRUE;            break;        case MOS6_MOD_MJSW:            model->MOS6bulkJctSideGradingCoeff = value->rValue;            model->MOS6bulkJctSideGradingCoeffGiven = TRUE;            break;        case MOS6_MOD_JS:            model->MOS6jctSatCurDensity = value->rValue;            model->MOS6jctSatCurDensityGiven = TRUE;            break;        case MOS6_MOD_TOX:            model->MOS6oxideThickness = value->rValue;            model->MOS6oxideThicknessGiven = TRUE;            break;        case MOS6_MOD_LD:            model->MOS6latDiff = value->rValue;            model->MOS6latDiffGiven = TRUE;            break;        case MOS6_MOD_RSH:            model->MOS6sheetResistance = value->rValue;            model->MOS6sheetResistanceGiven = TRUE;            break;        case MOS6_MOD_U0:            model->MOS6surfaceMobility = value->rValue;            model->MOS6surfaceMobilityGiven = TRUE;            break;        case MOS6_MOD_FC:            model->MOS6fwdCapDepCoeff = value->rValue;            model->MOS6fwdCapDepCoeffGiven = TRUE;            break;        case MOS6_MOD_NSS:            model->MOS6surfaceStateDensity = value->rValue;            model->MOS6surfaceStateDensityGiven = TRUE;            break;        case MOS6_MOD_NSUB:            model->MOS6substrateDoping = value->rValue;            model->MOS6substrateDopingGiven = TRUE;            break;        case MOS6_MOD_TPG:            model->MOS6gateType = value->iValue;            model->MOS6gateTypeGiven = TRUE;            break;        case MOS6_MOD_NMOS:            if(value->iValue) {                model->MOS6type = 1;                model->MOS6typeGiven = TRUE;            }            break;        case MOS6_MOD_PMOS:            if(value->iValue) {                model->MOS6type = -1;                model->MOS6typeGiven = TRUE;            }            break;        default:            return(E_BADPARM);    }    return(OK);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -