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

📄 b3soifdacld.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********Copyright 1999 Regents of the University of California.  All rights reserved.Author: Weidong Liu and Pin Su         Feb 1999Author: 1998 Samuel Fung, Dennis Sinitsky and Stephen TangModified by Pin Su 99/9/27Modified by Paolo Nenzi 2002File: b3soifdacld.c          98/5/01**********//* * Revision 2.1  99/9/27 Pin Su  * BSIMFD2.1 release */#include "ngspice.h"#include "cktdefs.h"#include "b3soifddef.h"#include "sperror.h"#include "suffix.h"intB3SOIFDacLoad(GENmodel *inModel, CKTcircuit *ckt){B3SOIFDmodel *model = (B3SOIFDmodel*)inModel;B3SOIFDinstance *here;int selfheat;double xcggb, xcgdb, xcgsb, xcgeb, xcgT;double xcdgb, xcddb, xcdsb, xcdeb, xcdT;double xcsgb, xcsdb, xcssb, xcseb, xcsT;double xcbgb, xcbdb, xcbsb, xcbeb, xcbT;double xcegb, xcedb, xcesb, xceeb, xceT;double gdpr, gspr, gds;double cggb, cgdb, cgsb, cgeb, cgT;double cdgb, cddb, cdsb, cdeb, cdT;double cbgb, cbdb, cbsb, cbeb, cbT;double cegb, cedb, cesb, ceeb, ceT;double GSoverlapCap, GDoverlapCap, GEoverlapCap, FwdSum, RevSum, Gm, Gmbs, Gme, GmT;double omega;double dxpart, sxpart;double gbbg, gbbdp, gbbb, gbbe, gbbp, gbbsp, gbbT;double gddpg, gddpdp, gddpsp, gddpb, gddpe, gddpT;double gsspg, gsspdp, gsspsp, gsspb, gsspe, gsspT;double gppg, gppdp, gppb, gppe, gppp, gppsp, gppT;double xcTt, cTt, gTtt, gTtg, gTtb, gTte, gTtdp, gTtsp;FILE *fpdebug = NULL;double m;    omega = ckt->CKTomega;    for (; model != NULL; model = model->B3SOIFDnextModel)     {          for (here = model->B3SOIFDinstances; here!= NULL;              here = here->B3SOIFDnextInstance) 	 {                  	      if (here->B3SOIFDowner != ARCHme)		      continue;	      	      selfheat = (model->B3SOIFDshMod == 1) && (here->B3SOIFDrth0 != 0.0);              if (here->B3SOIFDdebugMod > 2)              {                 fpdebug = fopen("b3soifdac.log", "a");                 fprintf(fpdebug, ".......omega=%.5e\n", omega);              }              if (here->B3SOIFDmode >= 0) 	      {   Gm = here->B3SOIFDgm;		  Gmbs = here->B3SOIFDgmbs;	          Gme = here->B3SOIFDgme;                  GmT = model->B3SOIFDtype * here->B3SOIFDgmT;		  FwdSum = Gm + Gmbs + Gme;		  RevSum = 0.0;                  cbgb = here->B3SOIFDcbgb;                  cbsb = here->B3SOIFDcbsb;                  cbdb = here->B3SOIFDcbdb;                  cbeb = here->B3SOIFDcbeb;                  cbT  = model->B3SOIFDtype * here->B3SOIFDcbT;                  cegb = here->B3SOIFDcegb;                  cesb = here->B3SOIFDcesb;                  cedb = here->B3SOIFDcedb;                  ceeb = here->B3SOIFDceeb;                  ceT  = model->B3SOIFDtype * here->B3SOIFDceT;                  cggb = here->B3SOIFDcggb;                  cgsb = here->B3SOIFDcgsb;                  cgdb = here->B3SOIFDcgdb;                  cgeb = here->B3SOIFDcgeb;                  cgT  = model->B3SOIFDtype * here->B3SOIFDcgT;                  cdgb = here->B3SOIFDcdgb;                  cdsb = here->B3SOIFDcdsb;                  cddb = here->B3SOIFDcddb;                  cdeb = here->B3SOIFDcdeb;                  cdT  = model->B3SOIFDtype * here->B3SOIFDcdT;                  cTt = here->pParam->B3SOIFDcth;                  gbbg  = -here->B3SOIFDgbgs;                  gbbdp = -here->B3SOIFDgbds;                  gbbb  = -here->B3SOIFDgbbs;                  gbbe  = -here->B3SOIFDgbes;                  gbbp  = -here->B3SOIFDgbps;                  gbbT  = -model->B3SOIFDtype * here->B3SOIFDgbT;                  gbbsp = - ( gbbg + gbbdp + gbbb + gbbe + gbbp);                  gddpg  = -here->B3SOIFDgjdg;                  gddpdp = -here->B3SOIFDgjdd;                  gddpb  = -here->B3SOIFDgjdb;                  gddpe  = -here->B3SOIFDgjde;                  gddpT  = -model->B3SOIFDtype * here->B3SOIFDgjdT;                  gddpsp = - ( gddpg + gddpdp + gddpb + gddpe);                  gsspg  = -here->B3SOIFDgjsg;                  gsspdp = -here->B3SOIFDgjsd;                  gsspb  = -here->B3SOIFDgjsb;                  gsspe  = 0.0;                  gsspT  = -model->B3SOIFDtype * here->B3SOIFDgjsT;                  gsspsp = - (gsspg + gsspdp + gsspb + gsspe);                  gppg = -here->B3SOIFDgbpgs;                  gppdp = -here->B3SOIFDgbpds;             	  gppb = -here->B3SOIFDgbpbs;                  gppe = -here->B3SOIFDgbpes;                  gppp = -here->B3SOIFDgbpps;                  gppT = -model->B3SOIFDtype * here->B3SOIFDgbpT;                  gppsp = - (gppg + gppdp + gppb + gppe + gppp);                  gTtg  = here->B3SOIFDgtempg;                  gTtb  = here->B3SOIFDgtempb;                  gTte  = here->B3SOIFDgtempe;                  gTtdp = here->B3SOIFDgtempd;                  gTtt  = here->B3SOIFDgtempT;                  gTtsp = - (gTtg + gTtb + gTte + gTtdp);                  sxpart = 0.6;                  dxpart = 0.4;              } 	      else	      {   Gm = -here->B3SOIFDgm;		  Gmbs = -here->B3SOIFDgmbs;                  Gme = -here->B3SOIFDgme;                  GmT = -model->B3SOIFDtype * here->B3SOIFDgmT;		  FwdSum = 0.0;		  RevSum = -Gm - Gmbs - Gme;                  cdgb = - (here->B3SOIFDcdgb + here->B3SOIFDcggb + here->B3SOIFDcbgb                          + here->B3SOIFDcegb);                  cdsb = - (here->B3SOIFDcddb + here->B3SOIFDcgdb + here->B3SOIFDcbdb                          + here->B3SOIFDcedb);                  cddb = - (here->B3SOIFDcdsb + here->B3SOIFDcgsb + here->B3SOIFDcbsb                          + here->B3SOIFDcesb);                  cdeb = - (here->B3SOIFDcdeb + here->B3SOIFDcgeb + here->B3SOIFDcbeb                          + here->B3SOIFDceeb);                  cdT  = - model->B3SOIFDtype * (here->B3SOIFDcgT + here->B3SOIFDcbT                         + here->B3SOIFDcdT + here->B3SOIFDceT);                  cegb = here->B3SOIFDcegb;                  cesb = here->B3SOIFDcedb;                  cedb = here->B3SOIFDcesb;                  ceeb = here->B3SOIFDceeb;                  ceT  = model->B3SOIFDtype * here->B3SOIFDceT;                  cggb = here->B3SOIFDcggb;                  cgsb = here->B3SOIFDcgdb;                  cgdb = here->B3SOIFDcgsb;                  cgeb = here->B3SOIFDcgeb;                  cgT  = model->B3SOIFDtype * here->B3SOIFDcgT;                  cbgb = here->B3SOIFDcbgb;                  cbsb = here->B3SOIFDcbdb;                  cbdb = here->B3SOIFDcbsb;                  cbeb = here->B3SOIFDcbeb;                  cbT  = model->B3SOIFDtype * here->B3SOIFDcbT;                  cTt = here->pParam->B3SOIFDcth;                  gbbg  = -here->B3SOIFDgbgs;                  gbbb  = -here->B3SOIFDgbbs;                  gbbe  = -here->B3SOIFDgbes;                  gbbp  = -here->B3SOIFDgbps;                  gbbsp = -here->B3SOIFDgbds;                  gbbT  = -model->B3SOIFDtype * here->B3SOIFDgbT;                  gbbdp = - ( gbbg + gbbsp + gbbb + gbbe + gbbp);                  gddpg  = -here->B3SOIFDgjsg;                  gddpsp = -here->B3SOIFDgjsd;                  gddpb  = -here->B3SOIFDgjsb;                  gddpe  = 0.0;                  gddpT  = -model->B3SOIFDtype * here->B3SOIFDgjsT;                  gddpdp = - (gddpg + gddpsp + gddpb + gddpe);                  gsspg  = -here->B3SOIFDgjdg;                  gsspsp = -here->B3SOIFDgjdd;                  gsspb  = -here->B3SOIFDgjdb;                  gsspe  = -here->B3SOIFDgjde;                  gsspT  = -model->B3SOIFDtype * here->B3SOIFDgjdT;                  gsspdp = - ( gsspg + gsspsp + gsspb + gsspe);                  gppg = -here->B3SOIFDgbpgs;                  gppsp = -here->B3SOIFDgbpds;                  gppb = -here->B3SOIFDgbpbs;                  gppe = -here->B3SOIFDgbpes;                  gppp = -here->B3SOIFDgbpps;                  gppT = -model->B3SOIFDtype * here->B3SOIFDgbpT;                  gppdp = - (gppg + gppsp + gppb + gppe + gppp);                  gTtt = here->B3SOIFDgtempT;                  gTtg = here->B3SOIFDgtempg;                  gTtb = here->B3SOIFDgtempb;                  gTte = here->B3SOIFDgtempe;                  gTtdp = here->B3SOIFDgtempd;                  gTtsp = - (gTtt + gTtg + gTtb + gTte + gTtdp);                  gTtg  = here->B3SOIFDgtempg;                  gTtb  = here->B3SOIFDgtempb;                  gTte  = here->B3SOIFDgtempe;                  gTtsp = here->B3SOIFDgtempd;                  gTtt  = here->B3SOIFDgtempT;                  gTtdp = - (gTtg + gTtb + gTte + gTtsp);                  sxpart = 0.6;                  sxpart = 0.4;

⌨️ 快捷键说明

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