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

📄 mos3ask.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1987 Mathew Lew and Thomas L. QuarlesModified: 2000 AlansFixes**********/#include "ngspice.h"#include "const.h"#include "ifsim.h"#include "cktdefs.h"#include "devdefs.h"#include "mos3defs.h"#include "sperror.h"#include "suffix.h"/*ARGSUSED*/intMOS3ask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,        IFvalue *select){    MOS3instance *here = (MOS3instance *)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 MOS3_TEMP:            value->rValue = here->MOS3temp-CONSTCtoK;            return(OK);        case MOS3_DTEMP:            value->rValue = here->MOS3dtemp;            return(OK);        case MOS3_CGS:            value->rValue = 2* *(ckt->CKTstate0 + here->MOS3capgs);            return(OK);        case MOS3_CGD:            value->rValue = 2* *(ckt->CKTstate0 + here->MOS3capgd);            return(OK);        case MOS3_M:            value->rValue = here->MOS3m;            return(OK);        case MOS3_L:            value->rValue = here->MOS3l;                return(OK);        case MOS3_W:            value->rValue = here->MOS3w;                return(OK);        case MOS3_AS:            value->rValue = here->MOS3sourceArea;                return(OK);        case MOS3_AD:            value->rValue = here->MOS3drainArea;                return(OK);        case MOS3_PS:            value->rValue = here->MOS3sourcePerimiter;                return(OK);        case MOS3_PD:            value->rValue = here->MOS3drainPerimiter;                return(OK);        case MOS3_NRS:            value->rValue = here->MOS3sourceSquares;                return(OK);        case MOS3_NRD:            value->rValue = here->MOS3drainSquares;                return(OK);        case MOS3_OFF:            value->rValue = here->MOS3off;                return(OK);        case MOS3_IC_VBS:            value->rValue = here->MOS3icVBS;                return(OK);        case MOS3_IC_VDS:            value->rValue = here->MOS3icVDS;                return(OK);        case MOS3_IC_VGS:            value->rValue = here->MOS3icVGS;            return(OK);        case MOS3_DNODE:            value->iValue = here->MOS3dNode;            return(OK);        case MOS3_GNODE:            value->iValue = here->MOS3gNode;            return(OK);        case MOS3_SNODE:            value->iValue = here->MOS3sNode;            return(OK);        case MOS3_BNODE:            value->iValue = here->MOS3bNode;            return(OK);        case MOS3_DNODEPRIME:            value->iValue = here->MOS3dNodePrime;            return(OK);        case MOS3_SNODEPRIME:            value->iValue = here->MOS3sNodePrime;            return(OK);        case MOS3_SOURCECONDUCT:	    value->rValue = here->MOS3sourceConductance;            return(OK);        case MOS3_DRAINCONDUCT:	    value->rValue = here->MOS3drainConductance;            return(OK);        case MOS3_SOURCERESIST:            if (here->MOS3sNodePrime != here->MOS3sNode)		value->rValue = 1.0 / here->MOS3sourceConductance;	    else		value->rValue = 0.0;            return(OK);        case MOS3_DRAINRESIST:            if (here->MOS3dNodePrime != here->MOS3dNode)		value->rValue = 1.0 / here->MOS3drainConductance;	    else		value->rValue = 0.0;            return(OK);        case MOS3_VON:            value->rValue = here->MOS3von;            return(OK);        case MOS3_VDSAT:            value->rValue = here->MOS3vdsat;            return(OK);        case MOS3_SOURCEVCRIT:            value->rValue = here->MOS3sourceVcrit;            return(OK);        case MOS3_DRAINVCRIT:            value->rValue = here->MOS3drainVcrit;            return(OK);        case MOS3_CD:            value->rValue = here->MOS3cd;            return(OK);        case MOS3_CBS:            value->rValue = here->MOS3cbs;            return(OK);        case MOS3_CBD:            value->rValue = here->MOS3cbd;            return(OK);        case MOS3_GMBS:            value->rValue = here->MOS3gmbs;            return(OK);        case MOS3_GM:            value->rValue = here->MOS3gm;            return(OK);        case MOS3_GDS:            value->rValue = here->MOS3gds;            return(OK);        case MOS3_GBD:            value->rValue = here->MOS3gbd;            return(OK);        case MOS3_GBS:            value->rValue = here->MOS3gbs;            return(OK);        case MOS3_CAPBD:            value->rValue = here->MOS3capbd;            return(OK);        case MOS3_CAPBS:            value->rValue = here->MOS3capbs;            return(OK);        case MOS3_CAPZEROBIASBD:            value->rValue = here->MOS3Cbd;            return(OK);        case MOS3_CAPZEROBIASBDSW:            value->rValue = here->MOS3Cbdsw;            return(OK);        case MOS3_CAPZEROBIASBS:            value->rValue = here->MOS3Cbs;            return(OK);        case MOS3_CAPZEROBIASBSSW:            value->rValue = here->MOS3Cbssw;            return(OK);        case MOS3_VBD:            value->rValue = *(ckt->CKTstate0 + here->MOS3vbd);            return(OK);        case MOS3_VBS:            value->rValue = *(ckt->CKTstate0 + here->MOS3vbs);            return(OK);        case MOS3_VGS:            value->rValue = *(ckt->CKTstate0 + here->MOS3vgs);            return(OK);        case MOS3_VDS:            value->rValue = *(ckt->CKTstate0 + here->MOS3vds);            return(OK);        case MOS3_CAPGS:            value->rValue = 2* *(ckt->CKTstate0 + here->MOS3capgs);/* add overlap capacitance */            value->rValue += (here->MOS3modPtr->MOS3gateSourceOverlapCapFactor)                             * here->MOS3m                             * (here->MOS3w                                +here->MOS3modPtr->MOS3widthAdjust                                -2*(here->MOS3modPtr->MOS3widthNarrow));            return(OK);        case MOS3_QGS:            value->rValue = *(ckt->CKTstate0 + here->MOS3qgs);            return(OK);        case MOS3_CQGS:            value->rValue = *(ckt->CKTstate0 + here->MOS3cqgs);            return(OK);        case MOS3_CAPGD:             value->rValue = 2* *(ckt->CKTstate0 + here->MOS3capgd);/* add overlap capacitance */            value->rValue += (here->MOS3modPtr->MOS3gateDrainOverlapCapFactor)                             * here->MOS3m                             * (here->MOS3w                                +here->MOS3modPtr->MOS3widthAdjust                                -2*(here->MOS3modPtr->MOS3widthNarrow));            return(OK);        case MOS3_QGD:            value->rValue = *(ckt->CKTstate0 + here->MOS3qgd);            return(OK);        case MOS3_CQGD:            value->rValue = *(ckt->CKTstate0 + here->MOS3cqgd);            return(OK);        case MOS3_CAPGB:            value->rValue = 2* *(ckt->CKTstate0 + here->MOS3capgb);/* add overlap capacitance */            value->rValue += (here->MOS3modPtr->MOS3gateBulkOverlapCapFactor)                             * here->MOS3m                             * (here->MOS3l                                +here->MOS3modPtr->MOS3lengthAdjust                                -2*(here->MOS3modPtr->MOS3latDiff));            return(OK);        case MOS3_QGB:            value->rValue = *(ckt->CKTstate0 + here->MOS3qgb);

⌨️ 快捷键说明

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