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

📄 bsimask.c

📁 支持数字元件仿真的SPICE插件
💻 C
字号:
/* * Copyright (c) 1988 Hong J. Park */#include "prefix.h"#include <stdio.h>#include <math.h>#include "IFsim.h"#include "CKTdefs.h"#include "DEVdefs.h"#include "BSIMdefs.h"#include "SPerror.h"#include "util.h"#include "suffix.h"RCSID("BSIMask.c $Revision: 1.1 $ on $Date: 90/10/11 12:41:01 $")/*ARGSUSED*/intBSIMask(ckt,inst,which,value,select)    CKTcircuit *ckt;    GENinstance *inst;    int which;    IFvalue *value;    IFvalue *select;{    BSIMinstance *here = (BSIMinstance*)inst;    switch(which) {        case BSIM_L:            value->rValue = here->BSIMl;            return(OK);        case BSIM_W:            value->rValue = here->BSIMw;            return(OK);        case BSIM_AS:            value->rValue = here->BSIMsourceArea;            return(OK);        case BSIM_AD:            value->rValue = here->BSIMdrainArea;            return(OK);        case BSIM_PS:            value->rValue = here->BSIMsourcePerimeter;            return(OK);        case BSIM_PD:            value->rValue = here->BSIMdrainPerimeter;            return(OK);        case BSIM_NRS:            value->rValue = here->BSIMsourceSquares;            return(OK);        case BSIM_NRD:            value->rValue = here->BSIMdrainSquares;            return(OK);        case BSIM_OFF:            value->rValue = here->BSIMoff;            return(OK);        case BSIM_IC_VBS:            value->rValue = here->BSIMicVBS;            return(OK);        case BSIM_IC_VDS:            value->rValue = here->BSIMicVDS;            return(OK);        case BSIM_IC_VGS:            value->rValue = here->BSIMicVGS;            return(OK);        case BSIM_DNODE:            value->iValue = here->BSIMdNode;            return(OK);        case BSIM_GNODE:            value->iValue = here->BSIMgNode;            return(OK);        case BSIM_SNODE:            value->iValue = here->BSIMsNode;            return(OK);        case BSIM_BNODE:            value->iValue = here->BSIMbNode;            return(OK);        case BSIM_DNODEPRIME:            value->iValue = here->BSIMdNodePrime;            return(OK);        case BSIM_SNODEPRIME:            value->iValue = here->BSIMsNodePrime;            return(OK);        case BSIM_SOURCECONDUCT:            value->rValue = here->BSIMsourceConductance;            return(OK);        case BSIM_DRAINCONDUCT:            value->rValue = here->BSIMdrainConductance;            return(OK);        case BSIM_VBD:            value->rValue = *(ckt->CKTstate0 + here->BSIMvbd);            return(OK);        case BSIM_VBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMvbs);            return(OK);        case BSIM_VGS:            value->rValue = *(ckt->CKTstate0 + here->BSIMvgs);            return(OK);        case BSIM_VDS:            value->rValue = *(ckt->CKTstate0 + here->BSIMvds);            return(OK);        case BSIM_CD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcd);             return(OK);        case BSIM_CBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMcbs);             return(OK);        case BSIM_CBD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcbd);             return(OK);        case BSIM_GM:            value->rValue = *(ckt->CKTstate0 + here->BSIMgm);             return(OK);        case BSIM_GDS:            value->rValue = *(ckt->CKTstate0 + here->BSIMgds);             return(OK);        case BSIM_GMBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMgmbs);             return(OK);        case BSIM_GBD:            value->rValue = *(ckt->CKTstate0 + here->BSIMgbd);             return(OK);        case BSIM_GBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMgbs);             return(OK);        case BSIM_QB:            value->rValue = *(ckt->CKTstate0 + here->BSIMqb);             return(OK);        case BSIM_CQB:            value->rValue = *(ckt->CKTstate0 + here->BSIMcqb);             return(OK);        case BSIM_QG:            value->rValue = *(ckt->CKTstate0 + here->BSIMqg);             return(OK);        case BSIM_CQG:            value->rValue = *(ckt->CKTstate0 + here->BSIMcqg);             return(OK);        case BSIM_QD:            value->rValue = *(ckt->CKTstate0 + here->BSIMqd);             return(OK);        case BSIM_CQD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcqd);             return(OK);        case BSIM_CGG:            value->rValue = *(ckt->CKTstate0 + here->BSIMcggb);             return(OK);        case BSIM_CGD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcgdb);             return(OK);        case BSIM_CGS:            value->rValue = *(ckt->CKTstate0 + here->BSIMcgsb);             return(OK);        case BSIM_CBG:            value->rValue = *(ckt->CKTstate0 + here->BSIMcbgb);             return(OK);        case BSIM_CAPBD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcapbd);             return(OK);        case BSIM_CQBD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcqbd);             return(OK);        case BSIM_CAPBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMcapbs);             return(OK);        case BSIM_CQBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMcqbs);             return(OK);        case BSIM_CDG:            value->rValue = *(ckt->CKTstate0 + here->BSIMcdgb);             return(OK);        case BSIM_CDD:            value->rValue = *(ckt->CKTstate0 + here->BSIMcddb);             return(OK);        case BSIM_CDS:            value->rValue = *(ckt->CKTstate0 + here->BSIMcdsb);             return(OK);        case BSIM_VON:            value->rValue = *(ckt->CKTstate0 + here->BSIMvono);             return(OK);        case BSIM_QBS:            value->rValue = *(ckt->CKTstate0 + here->BSIMqbs);             return(OK);        case BSIM_QBD:            value->rValue = *(ckt->CKTstate0 + here->BSIMqbd);             return(OK);        default:            return(E_BADPARM);    }    /* NOTREACHED */}

⌨️ 快捷键说明

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