📄 mos1ask.c
字号:
/**********Copyright 1990 Regents of the University of California. All rights reserved.Author: 1987 Thomas L. Quarles**********/#include "spice.h"#include <stdio.h>#include "const.h"#include "ifsim.h"#include "cktdefs.h"#include "devdefs.h"#include "mos1defs.h"#include "sperror.h"#include "util.h"#include "suffix.h"/*ARGSUSED*/intMOS1ask(ckt,inst,which,value,select) CKTcircuit *ckt; GENinstance *inst; int which; IFvalue *value; IFvalue *select;{ MOS1instance *here = (MOS1instance*)inst; double vr; double vi; double sr; double si; double vm; static char *msg = "Current and power not available for ac analysis"; switch(which) { case MOS1_TEMP: value->rValue = here->MOS1temp-CONSTCtoK; return(OK); case MOS1_CGS: value->rValue = *(ckt->CKTstate0 + here->MOS1capgs); return(OK); case MOS1_CGD: value->rValue = *(ckt->CKTstate0 + here->MOS1capgd); return(OK); case MOS1_L: value->rValue = here->MOS1l; return(OK); case MOS1_W: value->rValue = here->MOS1w; return(OK); case MOS1_AS: value->rValue = here->MOS1sourceArea; return(OK); case MOS1_AD: value->rValue = here->MOS1drainArea; return(OK); case MOS1_PS: value->rValue = here->MOS1sourcePerimiter; return(OK); case MOS1_PD: value->rValue = here->MOS1drainPerimiter; return(OK); case MOS1_NRS: value->rValue = here->MOS1sourceSquares; return(OK); case MOS1_NRD: value->rValue = here->MOS1drainSquares; return(OK); case MOS1_OFF: value->rValue = here->MOS1off; return(OK); case MOS1_IC_VBS: value->rValue = here->MOS1icVBS; return(OK); case MOS1_IC_VDS: value->rValue = here->MOS1icVDS; return(OK); case MOS1_IC_VGS: value->rValue = here->MOS1icVGS; return(OK); case MOS1_DNODE: value->iValue = here->MOS1dNode; return(OK); case MOS1_GNODE: value->iValue = here->MOS1gNode; return(OK); case MOS1_SNODE: value->iValue = here->MOS1sNode; return(OK); case MOS1_BNODE: value->iValue = here->MOS1bNode; return(OK); case MOS1_DNODEPRIME: value->iValue = here->MOS1dNodePrime; return(OK); case MOS1_SNODEPRIME: value->iValue = here->MOS1sNodePrime; return(OK); case MOS1_SOURCECONDUCT: value->rValue = here->MOS1sourceConductance; return(OK); case MOS1_SOURCERESIST: if (here->MOS1sNodePrime != here->MOS1sNode) value->rValue = 1.0 / here->MOS1sourceConductance; else value->rValue = 0.0; return(OK); case MOS1_DRAINCONDUCT: value->rValue = here->MOS1drainConductance; return(OK); case MOS1_DRAINRESIST: if (here->MOS1dNodePrime != here->MOS1dNode) value->rValue = 1.0 / here->MOS1drainConductance; else value->rValue = 0.0; return(OK); case MOS1_VON: value->rValue = here->MOS1von; return(OK); case MOS1_VDSAT: value->rValue = here->MOS1vdsat; return(OK); case MOS1_SOURCEVCRIT: value->rValue = here->MOS1sourceVcrit; return(OK); case MOS1_DRAINVCRIT: value->rValue = here->MOS1drainVcrit; return(OK); case MOS1_CD: value->rValue = here->MOS1cd; return(OK); case MOS1_CBS: value->rValue = here->MOS1cbs; return(OK); case MOS1_CBD: value->rValue = here->MOS1cbd; return(OK); case MOS1_GMBS: value->rValue = here->MOS1gmbs; return(OK); case MOS1_GM: value->rValue = here->MOS1gm; return(OK); case MOS1_GDS: value->rValue = here->MOS1gds; return(OK); case MOS1_GBD: value->rValue = here->MOS1gbd; return(OK); case MOS1_GBS: value->rValue = here->MOS1gbs; return(OK); case MOS1_CAPBD: value->rValue = here->MOS1capbd; return(OK); case MOS1_CAPBS: value->rValue = here->MOS1capbs; return(OK); case MOS1_CAPZEROBIASBD: value->rValue = here->MOS1Cbd; return(OK); case MOS1_CAPZEROBIASBDSW: value->rValue = here->MOS1Cbdsw; return(OK); case MOS1_CAPZEROBIASBS: value->rValue = here->MOS1Cbs; return(OK); case MOS1_CAPZEROBIASBSSW: value->rValue = here->MOS1Cbssw; return(OK); case MOS1_VBD: value->rValue = *(ckt->CKTstate0 + here->MOS1vbd); return(OK); case MOS1_VBS: value->rValue = *(ckt->CKTstate0 + here->MOS1vbs); return(OK); case MOS1_VGS: value->rValue = *(ckt->CKTstate0 + here->MOS1vgs); return(OK); case MOS1_VDS: value->rValue = *(ckt->CKTstate0 + here->MOS1vds); return(OK); case MOS1_CAPGS: value->rValue = *(ckt->CKTstate0 + here->MOS1capgs); return(OK); case MOS1_QGS: value->rValue = *(ckt->CKTstate0 + here->MOS1qgs); return(OK); case MOS1_CQGS: value->rValue = *(ckt->CKTstate0 + here->MOS1cqgs); return(OK); case MOS1_CAPGD: value->rValue = *(ckt->CKTstate0 + here->MOS1capgd); return(OK); case MOS1_QGD: value->rValue = *(ckt->CKTstate0 + here->MOS1qgd); return(OK); case MOS1_CQGD: value->rValue = *(ckt->CKTstate0 + here->MOS1cqgd); return(OK); case MOS1_CAPGB: value->rValue = *(ckt->CKTstate0 + here->MOS1capgb); return(OK); case MOS1_QGB: value->rValue = *(ckt->CKTstate0 + here->MOS1qgb); return(OK); case MOS1_CQGB: value->rValue = *(ckt->CKTstate0 + here->MOS1cqgb); return(OK); case MOS1_QBD: value->rValue = *(ckt->CKTstate0 + here->MOS1qbd); return(OK); case MOS1_CQBD: value->rValue = *(ckt->CKTstate0 + here->MOS1cqbd);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -