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

📄 b3v1aacld.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1995 Min-Chie Jeng and Mansun Chan.Modified by Paolo Nenzi 2002File: b3v1aacld.c**********/#include "ngspice.h"#include "cktdefs.h"#include "bsim3v1adef.h"#include "sperror.h"#include "suffix.h"intBSIM3v1AacLoad(GENmodel *inModel, CKTcircuit *ckt){BSIM3v1Amodel *model = (BSIM3v1Amodel*)inModel;BSIM3v1Ainstance *here;double xcggb, xcgdb, xcgsb, xcbgb, xcbdb, xcbsb, xcddb, xcssb, xcdgb;double gdpr, gspr, gds, gbd, gbs, capbd, capbs, xcsgb, xcdsb, xcsdb;double cggb, cgdb, cgsb, cbgb, cbdb, cbsb, cddb, cdgb, cdsb, omega;double GSoverlapCap, GDoverlapCap, GBoverlapCap, FwdSum, RevSum, Gm, Gmbs;double dxpart, sxpart, cqgb, cqdb, cqsb, cqbb, xcqgb, xcqdb, xcqsb, xcqbb;double m;    omega = ckt->CKTomega;    for (; model != NULL; model = model->BSIM3v1AnextModel)     {          for (here = model->BSIM3v1Ainstances; here!= NULL;              here = here->BSIM3v1AnextInstance) 	 {    	               if (here->BSIM3v1Aowner != ARCHme)	              continue;	      if (here->BSIM3v1Amode >= 0) 	      {   Gm = here->BSIM3v1Agm;		  Gmbs = here->BSIM3v1Agmbs;		  FwdSum = Gm + Gmbs;		  RevSum = 0.0;                  cggb = here->BSIM3v1Acggb;                  cgsb = here->BSIM3v1Acgsb;                  cgdb = here->BSIM3v1Acgdb;                  cbgb = here->BSIM3v1Acbgb;                  cbsb = here->BSIM3v1Acbsb;                  cbdb = here->BSIM3v1Acbdb;                  cdgb = here->BSIM3v1Acdgb;                  cdsb = here->BSIM3v1Acdsb;                  cddb = here->BSIM3v1Acddb;                  cqgb = here->BSIM3v1Acqgb;                  cqdb = here->BSIM3v1Acqdb;                  cqsb = here->BSIM3v1Acqsb;                  cqbb = here->BSIM3v1Acqbb;                  sxpart = 0.6;                  dxpart = 0.4;              } 	      else	      {   Gm = -here->BSIM3v1Agm;		  Gmbs = -here->BSIM3v1Agmbs;		  FwdSum = 0.0;		  RevSum = -Gm - Gmbs;                  cggb = here->BSIM3v1Acggb;                  cgsb = here->BSIM3v1Acgdb;                  cgdb = here->BSIM3v1Acgsb;                  cbgb = here->BSIM3v1Acbgb;                  cbsb = here->BSIM3v1Acbdb;                  cbdb = here->BSIM3v1Acbsb;                  cdgb = -(here->BSIM3v1Acdgb + cggb + cbgb);                  cdsb = -(here->BSIM3v1Acddb + cgsb + cbsb);                  cddb = -(here->BSIM3v1Acdsb + cgdb + cbdb);                  cqgb = here->BSIM3v1Acqgb;                  cqdb = here->BSIM3v1Acqsb;                  cqsb = here->BSIM3v1Acqdb;                  cqbb = here->BSIM3v1Acqbb;                  sxpart = 0.4;                  dxpart = 0.6;              }              gdpr=here->BSIM3v1AdrainConductance;              gspr=here->BSIM3v1AsourceConductance;              gds= here->BSIM3v1Agds;              gbd= here->BSIM3v1Agbd;              gbs= here->BSIM3v1Agbs;              capbd= here->BSIM3v1Acapbd;              capbs= here->BSIM3v1Acapbs;	      GSoverlapCap = here->BSIM3v1Acgso;	      GDoverlapCap = here->BSIM3v1Acgdo;	      GBoverlapCap = here->pParam->BSIM3v1Acgbo;              xcdgb = (cdgb - GDoverlapCap) * omega;              xcddb = (cddb + capbd + GDoverlapCap) * omega;              xcdsb = cdsb * omega;              xcsgb = -(cggb + cbgb + cdgb + GSoverlapCap) * omega;              xcsdb = -(cgdb + cbdb + cddb) * omega;              xcssb = (capbs + GSoverlapCap - (cgsb + cbsb + cdsb)) * omega;              xcggb = (cggb + GDoverlapCap + GSoverlapCap + GBoverlapCap)		    * omega;              xcgdb = (cgdb - GDoverlapCap ) * omega;              xcgsb = (cgsb - GSoverlapCap) * omega;              xcbgb = (cbgb - GBoverlapCap) * omega;              xcbdb = (cbdb - capbd ) * omega;              xcbsb = (cbsb - capbs ) * omega;              xcqgb = cqgb * omega;              xcqdb = cqdb * omega;              xcqsb = cqsb * omega;              xcqbb = cqbb * omega;              m = here->BSIM3v1Am;              *(here->BSIM3v1AGgPtr +1) += m * xcggb;              *(here->BSIM3v1ABbPtr +1) -= m * (xcbgb + xcbdb + xcbsb);              *(here->BSIM3v1ADPdpPtr +1) += m * xcddb;              *(here->BSIM3v1ASPspPtr +1) += m * xcssb;              *(here->BSIM3v1AGbPtr +1) -= m * (xcggb + xcgdb + xcgsb);              *(here->BSIM3v1AGdpPtr +1) += m * xcgdb;              *(here->BSIM3v1AGspPtr +1) += m * xcgsb;              *(here->BSIM3v1ABgPtr +1) += m * xcbgb;              *(here->BSIM3v1ABdpPtr +1) += m * xcbdb;              *(here->BSIM3v1ABspPtr +1) += m * xcbsb;              *(here->BSIM3v1ADPgPtr +1) += m * xcdgb;              *(here->BSIM3v1ADPbPtr +1) -= m * (xcdgb + xcddb + xcdsb);              *(here->BSIM3v1ADPspPtr +1) += m * xcdsb;              *(here->BSIM3v1ASPgPtr +1) += m * xcsgb;              *(here->BSIM3v1ASPbPtr +1) -= m * (xcsgb + xcsdb + xcssb);              *(here->BSIM3v1ASPdpPtr +1) += m * xcsdb;               *(here->BSIM3v1AQqPtr +1) += m * omega;              *(here->BSIM3v1AQgPtr +1) -= m * xcqgb;              *(here->BSIM3v1AQdpPtr +1) -= m * xcqdb;              *(here->BSIM3v1AQspPtr +1) -= m * xcqsb;              *(here->BSIM3v1AQbPtr +1) -= m * xcqbb;              *(here->BSIM3v1ADdPtr) += m * gdpr;              *(here->BSIM3v1ASsPtr) += m * gspr;              *(here->BSIM3v1ABbPtr) += m * (gbd + gbs);              *(here->BSIM3v1ADPdpPtr) += m*(gdpr+gds+gbd+RevSum+dxpart*here->BSIM3v1Agtd);              *(here->BSIM3v1ASPspPtr) += m*(gspr+gds+gbs+FwdSum+sxpart*here->BSIM3v1Agts);              *(here->BSIM3v1ADdpPtr) -= m * gdpr;              *(here->BSIM3v1ASspPtr) -= m * gspr;              *(here->BSIM3v1ABdpPtr) -= m * gbd;              *(here->BSIM3v1ABspPtr) -= m * gbs;              *(here->BSIM3v1ADPdPtr) -= m * gdpr;              *(here->BSIM3v1ADPgPtr) += m * (Gm + dxpart * here->BSIM3v1Agtg);              *(here->BSIM3v1ADPbPtr) -= m * (gbd-Gmbs - dxpart * here->BSIM3v1Agtb);              *(here->BSIM3v1ADPspPtr) -= m * (gds+FwdSum-dxpart * here->BSIM3v1Agts);              *(here->BSIM3v1ASPgPtr) -= m * (Gm - sxpart * here->BSIM3v1Agtg);              *(here->BSIM3v1ASPsPtr) -= m * gspr;              *(here->BSIM3v1ASPbPtr) -= m * (gbs+Gmbs - sxpart * here->BSIM3v1Agtg);              *(here->BSIM3v1ASPdpPtr) -= m * (gds+RevSum-sxpart * here->BSIM3v1Agtd);              *(here->BSIM3v1AGgPtr) -= m * here->BSIM3v1Agtg;              *(here->BSIM3v1AGbPtr) -=  m * here->BSIM3v1Agtb;              *(here->BSIM3v1AGdpPtr) -= m * here->BSIM3v1Agtd;              *(here->BSIM3v1AGspPtr) -= m * here->BSIM3v1Agts;              *(here->BSIM3v1AQqPtr) += m * here->BSIM3v1Agtau;               *(here->BSIM3v1ADPqPtr) += m * dxpart * here->BSIM3v1Agtau;              *(here->BSIM3v1ASPqPtr) += m * sxpart * here->BSIM3v1Agtau;              *(here->BSIM3v1AGqPtr) -=  m * here->BSIM3v1Agtau;               *(here->BSIM3v1AQgPtr) +=  m * here->BSIM3v1Agtg;              *(here->BSIM3v1AQdpPtr) += m * here->BSIM3v1Agtd;              *(here->BSIM3v1AQspPtr) += m * here->BSIM3v1Agts;              *(here->BSIM3v1AQbPtr) += m * here->BSIM3v1Agtb;        }    }    return(OK);}

⌨️ 快捷键说明

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