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

📄 hfet2ask.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1987 Thomas L. Quarles**********//*Imported into HFET2 source: Paolo Nenzi 2001 */#include "ngspice.h"#include "cktdefs.h"#include "devdefs.h"#include "ifsim.h"#include "hfet2defs.h"#include "sperror.h"#include "suffix.h"/* ARGSUSED */intHFET2ask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,          IFvalue *select){    HFET2instance *here = (HFET2instance*)inst;    static char *msg = "Current and power not available in ac analysis";    switch(which) {        case HFET2_LENGTH:            value->rValue = here->HFET2length;            return (OK);        case HFET2_WIDTH:            value->rValue = here->HFET2width;            value->rValue *= here->HFET2m;        case HFET2_IC_VDS:            value->rValue = here->HFET2icVDS;            return (OK);        case HFET2_IC_VGS:            value->rValue = here->HFET2icVGS;            return (OK);        case HFET2_OFF:            value->iValue = here->HFET2off;            return (OK);        case HFET2_DRAINNODE:            value->iValue = here->HFET2drainNode;            return (OK);        case HFET2_GATENODE:            value->iValue = here->HFET2gateNode;            return (OK);        case HFET2_SOURCENODE:            value->iValue = here->HFET2sourceNode;            return (OK);        case HFET2_DRAINPRIMENODE:            value->iValue = here->HFET2drainPrimeNode;            return (OK);        case HFET2_SOURCEPRIMENODE:            value->iValue = here->HFET2sourcePrimeNode;            return (OK);         case HFET2_TEMP:        	  value->rValue = here->HFET2temp - CONSTCtoK;       case HFET2_DTEMP:        	  value->rValue = here->HFET2dtemp;        case HFET2_VGS:            value->rValue = *(ckt->CKTstate0 + here->HFET2vgs);            return (OK);        case HFET2_VGD:            value->rValue = *(ckt->CKTstate0 + here->HFET2vgd);            return (OK);        case HFET2_CG:            value->rValue = *(ckt->CKTstate0 + here->HFET2cg);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_CD:            value->rValue = *(ckt->CKTstate0 + here->HFET2cd);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_CGD:            value->rValue = *(ckt->CKTstate0 + here->HFET2cgd);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_GM:            value->rValue = *(ckt->CKTstate0 + here->HFET2gm);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_GDS:            value->rValue = *(ckt->CKTstate0 + here->HFET2gds);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_GGS:            value->rValue = *(ckt->CKTstate0 + here->HFET2ggs);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_GGD:            value->rValue = *(ckt->CKTstate0 + here->HFET2ggd);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_QGS:            value->rValue = *(ckt->CKTstate0 + here->HFET2qgs);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_CQGS:            value->rValue = *(ckt->CKTstate0 + here->HFET2cqgs);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_QGD:            value->rValue = *(ckt->CKTstate0 + here->HFET2qgd);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_CQGD:            value->rValue = *(ckt->CKTstate0 + here->HFET2cqgd);            value->rValue *= here->HFET2m;            return (OK);        case HFET2_CS :             if (ckt->CKTcurrentAnalysis & DOING_AC) {                 errMsg = MALLOC(strlen(msg)+1);                 errRtn = "HFET2ask";                 strcpy(errMsg,msg);                 return(E_ASKCURRENT);             } else {                 value->rValue = -*(ckt->CKTstate0 + here->HFET2cd);                 value->rValue -= *(ckt->CKTstate0 + here->HFET2cg);                 value->rValue *= here->HFET2m;             }             return(OK);        case HFET2_POWER :             if (ckt->CKTcurrentAnalysis & DOING_AC) {                 errMsg = MALLOC(strlen(msg)+1);                 errRtn = "HFET2ask";                 strcpy(errMsg,msg);                 return(E_ASKPOWER);             } else {                 value->rValue = *(ckt->CKTstate0 + here->HFET2cd) *                         *(ckt->CKTrhsOld + here->HFET2drainNode);                 value->rValue += *(ckt->CKTstate0 + here->HFET2cg) *                         *(ckt->CKTrhsOld + here->HFET2gateNode);                 value->rValue -= (*(ckt->CKTstate0+here->HFET2cd) +                         *(ckt->CKTstate0 + here->HFET2cg)) *                         *(ckt->CKTrhsOld + here->HFET2sourceNode);                 value->rValue *= here->HFET2m;             }             return(OK);        default:            return (E_BADPARM);    }    /* NOTREACHED */}

⌨️ 快捷键说明

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