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

📄 jfetask.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1987 Mathew Lew and Thomas L. Quarles**********//* */#include "spice.h"#include <stdio.h>#include "const.h"#include "ifsim.h"#include "cktdefs.h"#include "devdefs.h"#include "jfetdefs.h"#include "sperror.h"#include "util.h"#include "suffix.h"/*ARGSUSED*/intJFETask(ckt,inst,which,value,select)    CKTcircuit *ckt;    GENinstance *inst;    int which;    IFvalue *value;    IFvalue *select;{    JFETinstance *here = (JFETinstance*)inst;    static char *msg = "Current and power not available for ac analysis";    switch(which) {        case JFET_TEMP:            value->rValue = here->JFETtemp-CONSTCtoK;            return(OK);        case JFET_AREA:            value->rValue = here->JFETarea;            return(OK);        case JFET_IC_VDS:            value->rValue = here->JFETicVDS;            return(OK);        case JFET_IC_VGS:            value->rValue = here->JFETicVGS;            return(OK);        case JFET_OFF:            value->iValue = here->JFEToff;            return(OK);        case JFET_DRAINNODE:            value->iValue = here->JFETdrainNode;            return(OK);        case JFET_GATENODE:            value->iValue = here->JFETgateNode;            return(OK);        case JFET_SOURCENODE:            value->iValue = here->JFETsourceNode;            return(OK);        case JFET_DRAINPRIMENODE:            value->iValue = here->JFETdrainPrimeNode;            return(OK);        case JFET_SOURCEPRIMENODE:            value->iValue = here->JFETsourcePrimeNode;            return(OK);        case JFET_VGS:            value->rValue = *(ckt->CKTstate0 + here->JFETvgs);            return(OK);        case JFET_VGD:            value->rValue = *(ckt->CKTstate0 + here->JFETvgd);            return(OK);        case JFET_CG:            value->rValue = *(ckt->CKTstate0 + here->JFETcg);            return(OK);        case JFET_CD:            value->rValue = *(ckt->CKTstate0 + here->JFETcd);            return(OK);        case JFET_CGD:            value->rValue = *(ckt->CKTstate0 + here->JFETcgd);            return(OK);        case JFET_GM:            value->rValue = *(ckt->CKTstate0 + here->JFETgm);            return(OK);        case JFET_GDS:            value->rValue = *(ckt->CKTstate0 + here->JFETgds);            return(OK);        case JFET_GGS:            value->rValue = *(ckt->CKTstate0 + here->JFETggs);            return(OK);        case JFET_GGD:            value->rValue = *(ckt->CKTstate0 + here->JFETggd);            return(OK);        case JFET_QGS:            value->rValue = *(ckt->CKTstate0 + here->JFETqgs);            return(OK);        case JFET_CQGS:            value->rValue = *(ckt->CKTstate0 + here->JFETcqgs);            return(OK);        case JFET_QGD:            value->rValue = *(ckt->CKTstate0 + here->JFETqgd);            return(OK);        case JFET_CQGD:            value->rValue = *(ckt->CKTstate0 + here->JFETcqgd);            return(OK);        case JFET_CS :            if (ckt->CKTcurrentAnalysis & DOING_AC) {                errMsg = MALLOC(strlen(msg)+1);                errRtn = "JFETask";                strcpy(errMsg,msg);                return(E_ASKCURRENT);            } else {                value->rValue = -*(ckt->CKTstate0 + here->JFETcd);                value->rValue -= *(ckt->CKTstate0 + here->JFETcg);            }            return(OK);        case JFET_POWER :            if (ckt->CKTcurrentAnalysis & DOING_AC) {                errMsg = MALLOC(strlen(msg)+1);                errRtn = "JFETask";                strcpy(errMsg,msg);                return(E_ASKPOWER);            } else {                value->rValue = *(ckt->CKTstate0 + here->JFETcd) *                        *(ckt->CKTrhsOld + here->JFETdrainNode);                value->rValue += *(ckt->CKTstate0 + here->JFETcg) *                         *(ckt->CKTrhsOld + here->JFETgateNode);                value->rValue -= (*(ckt->CKTstate0 + here->JFETcd) +                        *(ckt->CKTstate0 + here->JFETcg)) *                *(ckt->CKTrhsOld + here->JFETsourceNode);            }            return(OK);        default:            return(E_BADPARM);    }    /* NOTREACHED */}

⌨️ 快捷键说明

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