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

📄 jfet2ask.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
字号:
/**********Based on jfetask.cCopyright 1990 Regents of the University of California.  All rights reserved.Author: 1987 Mathew Lew and Thomas L. QuarlesModified to add PS model and new parameter definitions ( Anthony E. Parker )   Copyright 1994  Macquarie University, Sydney Australia.   10 Feb 1994:   JFET2vtrap and JFET2pave added**********/#include "ngspice.h"#include "const.h"#include "ifsim.h"#include "cktdefs.h"#include "devdefs.h"#include "jfet2defs.h"#include "sperror.h"#include "suffix.h"/*ARGSUSED*/intJFET2ask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,         IFvalue *select){    JFET2instance *here = (JFET2instance*)inst;    static char *msg = "Current and power not available for ac analysis";    switch(which) {        case JFET2_TEMP:            value->rValue = here->JFET2temp-CONSTCtoK;            return(OK);        case JFET2_DTEMP:            value->rValue = here->JFET2dtemp;            return(OK);        case JFET2_AREA:            value->rValue = here->JFET2area;            value->rValue *=here->JFET2m;            return(OK);        case JFET2_M:            value->rValue = here->JFET2m;            return(OK);        case JFET2_IC_VDS:            value->rValue = here->JFET2icVDS;            return(OK);        case JFET2_IC_VGS:            value->rValue = here->JFET2icVGS;            return(OK);        case JFET2_OFF:            value->iValue = here->JFET2off;            return(OK);        case JFET2_DRAINNODE:            value->iValue = here->JFET2drainNode;            return(OK);        case JFET2_GATENODE:            value->iValue = here->JFET2gateNode;            return(OK);        case JFET2_SOURCENODE:            value->iValue = here->JFET2sourceNode;            return(OK);        case JFET2_DRAINPRIMENODE:            value->iValue = here->JFET2drainPrimeNode;            return(OK);        case JFET2_SOURCEPRIMENODE:            value->iValue = here->JFET2sourcePrimeNode;            return(OK);        case JFET2_VGS:            value->rValue = *(ckt->CKTstate0 + here->JFET2vgs);            return(OK);        case JFET2_VGD:            value->rValue = *(ckt->CKTstate0 + here->JFET2vgd);            return(OK);        case JFET2_CG:            value->rValue = *(ckt->CKTstate0 + here->JFET2cg);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_CD:            value->rValue = *(ckt->CKTstate0 + here->JFET2cd);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_CGD:            value->rValue = *(ckt->CKTstate0 + here->JFET2cgd);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_GM:            value->rValue = *(ckt->CKTstate0 + here->JFET2gm);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_GDS:            value->rValue = *(ckt->CKTstate0 + here->JFET2gds);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_GGS:            value->rValue = *(ckt->CKTstate0 + here->JFET2ggs);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_GGD:            value->rValue = *(ckt->CKTstate0 + here->JFET2ggd);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_QGS:            value->rValue = *(ckt->CKTstate0 + here->JFET2qgs);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_CQGS:            value->rValue = *(ckt->CKTstate0 + here->JFET2cqgs);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_QGD:            value->rValue = *(ckt->CKTstate0 + here->JFET2qgd);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_CQGD:            value->rValue = *(ckt->CKTstate0 + here->JFET2cqgd);            value->rValue *=here->JFET2m;            return(OK);        case JFET2_VTRAP:            value->rValue = *(ckt->CKTstate0 + here->JFET2vtrap);            return(OK);        case JFET2_PAVE:            value->rValue = *(ckt->CKTstate0 + here->JFET2pave);            return(OK);        case JFET2_CS :            if (ckt->CKTcurrentAnalysis & DOING_AC) {                errMsg = MALLOC(strlen(msg)+1);                errRtn = "JFET2ask";                strcpy(errMsg,msg);                return(E_ASKCURRENT);            } else {                value->rValue = -*(ckt->CKTstate0 + here->JFET2cd);                value->rValue -= *(ckt->CKTstate0 + here->JFET2cg);                value->rValue *=here->JFET2m;            }            return(OK);        case JFET2_POWER :            if (ckt->CKTcurrentAnalysis & DOING_AC) {                errMsg = MALLOC(strlen(msg)+1);                errRtn = "JFET2ask";                strcpy(errMsg,msg);                return(E_ASKPOWER);            } else {                value->rValue = *(ckt->CKTstate0 + here->JFET2cd) *                        *(ckt->CKTrhsOld + here->JFET2drainNode);                value->rValue += *(ckt->CKTstate0 + here->JFET2cg) *                         *(ckt->CKTrhsOld + here->JFET2gateNode);                value->rValue -= (*(ckt->CKTstate0 + here->JFET2cd) +                        *(ckt->CKTstate0 + here->JFET2cg)) *                *(ckt->CKTrhsOld + here->JFET2sourceNode);                               value->rValue *=here->JFET2m;            }            return(OK);        default:            return(E_BADPARM);    }    /* NOTREACHED */}

⌨️ 快捷键说明

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