📄 soi3ask.c
字号:
/**********STAG version 2.7Copyright 2000 owned by the United Kingdom Secretary of State for Defenceacting through the Defence Evaluation and Research Agency.Developed by : Jim Benson, Department of Electronics and Computer Science, University of Southampton, United Kingdom.With help from : Nele D'Halleweyn, Ketan Mistry, Bill Redman-White, and Craig Easson.Based on STAG version 2.1Developed by : Mike Lee,With help from : Bernard Tenbroek, Bill Redman-White, Mike Uren, Chris Edwards and John Bunyan.Acknowledgements : Rupert Howes and Pete Mole.**********//********** Modified by Paolo Nenzi 2002ngspice integration**********/#include "ngspice.h"#include "const.h"#include "ifsim.h"#include "cktdefs.h"#include "devdefs.h"#include "soi3defs.h"#include "sperror.h"#include "suffix.h"/*ARGSUSED*/intSOI3ask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value, IFvalue *select){ SOI3instance *here = (SOI3instance*)inst; /* The line below belong to the parts of the case statement that are also * commented out *//* double vr; *//* double vi; *//* double sr; *//* double si; *//* double vm; *//* static char *msg = "Current and power not available for ac analysis"; */ switch(which) { case SOI3_L: value->rValue = here->SOI3l; return(OK); case SOI3_W: value->rValue = here->SOI3w; return(OK); case SOI3_M: value->rValue = here->SOI3m; return(OK); case SOI3_AS: value->rValue = here->SOI3as; return(OK); case SOI3_AD: value->rValue = here->SOI3ad; return(OK); case SOI3_AB: value->rValue = here->SOI3ab; return(OK); case SOI3_NRS: value->rValue = here->SOI3sourceSquares; return(OK); case SOI3_NRD: value->rValue = here->SOI3drainSquares; return(OK); case SOI3_OFF: value->rValue = here->SOI3off; return(OK); case SOI3_IC_VDS: value->rValue = here->SOI3icVDS; return(OK); case SOI3_IC_VGFS: value->rValue = here->SOI3icVGFS; return(OK); case SOI3_IC_VGBS: value->rValue = here->SOI3icVGBS; return(OK); case SOI3_IC_VBS: value->rValue = here->SOI3icVBS; return(OK); case SOI3_TEMP: value->rValue = here->SOI3temp-CONSTCtoK; return(OK); case SOI3_RT: value->rValue = here->SOI3rt; value->rValue /= here->SOI3m; return(OK); case SOI3_CT: value->rValue = here->SOI3ct; value->rValue *= here->SOI3m; return(OK); case SOI3_DNODE: value->iValue = here->SOI3dNode; return(OK); case SOI3_GFNODE: value->iValue = here->SOI3gfNode; return(OK); case SOI3_SNODE: value->iValue = here->SOI3sNode; return(OK); case SOI3_GBNODE: value->iValue = here->SOI3gbNode; return(OK); case SOI3_BNODE: value->iValue = here->SOI3bNode; return(OK); case SOI3_DNODEPRIME: value->iValue = here->SOI3dNodePrime; return(OK); case SOI3_SNODEPRIME: value->iValue = here->SOI3sNodePrime; return(OK); case SOI3_TNODE: value->iValue = here->SOI3toutNode; return(OK); case SOI3_BRANCH: value->iValue = here->SOI3branch; return(OK); case SOI3_SOURCECONDUCT: value->rValue = here->SOI3sourceConductance; value->rValue *= here->SOI3m; return(OK); case SOI3_DRAINCONDUCT: value->rValue = here->SOI3drainConductance; value->rValue *= here->SOI3m; return(OK); case SOI3_VON: value->rValue = here->SOI3tVto; return(OK); case SOI3_VFBF: value->rValue = here->SOI3tVfbF; return(OK); case SOI3_VDSAT: value->rValue = here->SOI3vdsat; return(OK); case SOI3_SOURCEVCRIT: value->rValue = here->SOI3sourceVcrit; return(OK); case SOI3_DRAINVCRIT: value->rValue = here->SOI3drainVcrit; return(OK); case SOI3_ID: value->rValue = here->SOI3id; value->rValue *= here->SOI3m; return(OK); case SOI3_IBS: value->rValue = here->SOI3ibs; value->rValue *= here->SOI3m; return(OK); case SOI3_IBD: value->rValue = here->SOI3ibd; value->rValue *= here->SOI3m; return(OK); case SOI3_GMBS: value->rValue = here->SOI3gmbs; value->rValue *= here->SOI3m; return(OK); case SOI3_GMF: value->rValue = here->SOI3gmf; value->rValue *= here->SOI3m; return(OK); case SOI3_GMB: value->rValue = here->SOI3gmb; value->rValue *= here->SOI3m; return(OK); case SOI3_GDS: value->rValue = here->SOI3gds; value->rValue *= here->SOI3m; return(OK); case SOI3_GBD: value->rValue = here->SOI3gbd; value->rValue *= here->SOI3m; return(OK); case SOI3_GBS: value->rValue = here->SOI3gbs; value->rValue *= here->SOI3m; return(OK); case SOI3_CAPBD: value->rValue = here->SOI3capbd; value->rValue *= here->SOI3m; return(OK); case SOI3_CAPBS: value->rValue = here->SOI3capbs; value->rValue *= here->SOI3m; return(OK); case SOI3_CAPZEROBIASBD: value->rValue = here->SOI3Cbd; value->rValue *= here->SOI3m; return(OK); case SOI3_CAPZEROBIASBS: value->rValue = here->SOI3Cbs; value->rValue *= here->SOI3m; return(OK); case SOI3_VBD: value->rValue = *(ckt->CKTstate0 + here->SOI3vbd); return(OK); case SOI3_VBS: value->rValue = *(ckt->CKTstate0 + here->SOI3vbs); return(OK); case SOI3_VGFS: value->rValue = *(ckt->CKTstate0 + here->SOI3vgfs); return(OK); case SOI3_VGBS: value->rValue = *(ckt->CKTstate0 + here->SOI3vgbs); return(OK); case SOI3_VDS: value->rValue = *(ckt->CKTstate0 + here->SOI3vds); return(OK); case SOI3_QGF: value->rValue = *(ckt->CKTstate0 + here->SOI3qgf); value->rValue *= here->SOI3m; return(OK); case SOI3_IQGF: value->rValue = *(ckt->CKTstate0 + here->SOI3iqgf); value->rValue *= here->SOI3m; return(OK); case SOI3_QD: value->rValue = *(ckt->CKTstate0 + here->SOI3qd); value->rValue *= here->SOI3m; return(OK); case SOI3_IQD: value->rValue = *(ckt->CKTstate0 + here->SOI3iqd); value->rValue *= here->SOI3m; return(OK); case SOI3_QS: value->rValue = *(ckt->CKTstate0 + here->SOI3qs); value->rValue *= here->SOI3m; return(OK); case SOI3_IQS: value->rValue = *(ckt->CKTstate0 + here->SOI3iqs); value->rValue *= here->SOI3m; return(OK); case SOI3_CGFGF: value->rValue = *(ckt->CKTstate0 + here->SOI3cgfgf); value->rValue *= here->SOI3m; return (OK); case SOI3_CGFD: value->rValue = *(ckt->CKTstate0 + here->SOI3cgfd); value->rValue *= here->SOI3m; return (OK); case SOI3_CGFS: value->rValue = *(ckt->CKTstate0 + here->SOI3cgfs); value->rValue *= here->SOI3m; return (OK); case SOI3_CGFDELTAT: value->rValue = *(ckt->CKTstate0 + here->SOI3cgfdeltaT); value->rValue *= here->SOI3m; return (OK); case SOI3_CGFGB: value->rValue = *(ckt->CKTstate0 + here->SOI3cgfgb); value->rValue *= here->SOI3m; return (OK); case SOI3_CDGF: value->rValue = *(ckt->CKTstate0 + here->SOI3cdgf); value->rValue *= here->SOI3m; return (OK); case SOI3_CDD: value->rValue = *(ckt->CKTstate0 + here->SOI3cdd); value->rValue *= here->SOI3m; return (OK); case SOI3_CDS: value->rValue = *(ckt->CKTstate0 + here->SOI3cds); value->rValue *= here->SOI3m; return (OK); case SOI3_CDDELTAT: value->rValue = *(ckt->CKTstate0 + here->SOI3cddeltaT); value->rValue *= here->SOI3m; return (OK); case SOI3_CDGB: value->rValue = *(ckt->CKTstate0 + here->SOI3cdgb); value->rValue *= here->SOI3m; return (OK); case SOI3_CSGF: value->rValue = *(ckt->CKTstate0 + here->SOI3csgf); value->rValue *= here->SOI3m; return (OK); case SOI3_CSD: value->rValue = *(ckt->CKTstate0 + here->SOI3csd); value->rValue *= here->SOI3m; return (OK); case SOI3_CSS: value->rValue = *(ckt->CKTstate0 + here->SOI3css); value->rValue *= here->SOI3m; return (OK); case SOI3_CSDELTAT: value->rValue = *(ckt->CKTstate0 + here->SOI3csdeltaT); value->rValue *= here->SOI3m; return (OK); case SOI3_CSGB: value->rValue = *(ckt->CKTstate0 + here->SOI3csgb); value->rValue *= here->SOI3m; return (OK);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -