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

📄 b3soiddacld.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 TangFile: b3soiddacld.c          98/5/01Modified by Paolo Nenzi 2002**********//*  * Revision 2.1  99/9/27 Pin Su  * BSIMDD2.1 release */#include "ngspice.h"#include "cktdefs.h"#include "b3soidddef.h"#include "sperror.h"#include "suffix.h"intB3SOIDDacLoad(GENmodel *inModel, CKTcircuit *ckt){B3SOIDDmodel *model = (B3SOIDDmodel*)inModel;B3SOIDDinstance *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->B3SOIDDnextModel)     {          for (here = model->B3SOIDDinstances; here!= NULL;              here = here->B3SOIDDnextInstance) 	 {                  if (here->B3SOIDDowner != ARCHme)		      continue;	      	      selfheat = (model->B3SOIDDshMod == 1) && (here->B3SOIDDrth0 != 0.0);              if (here->B3SOIDDdebugMod > 2)              {                 fpdebug = fopen("b3soiddac.log", "a");                 fprintf(fpdebug, ".......omega=%.5e\n", omega);              }              if (here->B3SOIDDmode >= 0) 	      {   Gm = here->B3SOIDDgm;		  Gmbs = here->B3SOIDDgmbs;	          Gme = here->B3SOIDDgme;                  GmT = model->B3SOIDDtype * here->B3SOIDDgmT;		  FwdSum = Gm + Gmbs + Gme;		  RevSum = 0.0;                  cbgb = here->B3SOIDDcbgb;                  cbsb = here->B3SOIDDcbsb;                  cbdb = here->B3SOIDDcbdb;                  cbeb = here->B3SOIDDcbeb;                  cbT  = model->B3SOIDDtype * here->B3SOIDDcbT;                  cegb = here->B3SOIDDcegb;                  cesb = here->B3SOIDDcesb;                  cedb = here->B3SOIDDcedb;                  ceeb = here->B3SOIDDceeb;                  ceT  = model->B3SOIDDtype * here->B3SOIDDceT;                  cggb = here->B3SOIDDcggb;                  cgsb = here->B3SOIDDcgsb;                  cgdb = here->B3SOIDDcgdb;                  cgeb = here->B3SOIDDcgeb;                  cgT  = model->B3SOIDDtype * here->B3SOIDDcgT;                  cdgb = here->B3SOIDDcdgb;                  cdsb = here->B3SOIDDcdsb;                  cddb = here->B3SOIDDcddb;                  cdeb = here->B3SOIDDcdeb;                  cdT  = model->B3SOIDDtype * here->B3SOIDDcdT;                  cTt = here->pParam->B3SOIDDcth;                  gbbg  = -here->B3SOIDDgbgs;                  gbbdp = -here->B3SOIDDgbds;                  gbbb  = -here->B3SOIDDgbbs;                  gbbe  = -here->B3SOIDDgbes;                  gbbp  = -here->B3SOIDDgbps;                  gbbT  = -model->B3SOIDDtype * here->B3SOIDDgbT;                  gbbsp = - ( gbbg + gbbdp + gbbb + gbbe + gbbp);                  gddpg  = -here->B3SOIDDgjdg;                  gddpdp = -here->B3SOIDDgjdd;                  gddpb  = -here->B3SOIDDgjdb;                  gddpe  = -here->B3SOIDDgjde;                  gddpT  = -model->B3SOIDDtype * here->B3SOIDDgjdT;                  gddpsp = - ( gddpg + gddpdp + gddpb + gddpe);                  gsspg  = -here->B3SOIDDgjsg;                  gsspdp = -here->B3SOIDDgjsd;                  gsspb  = -here->B3SOIDDgjsb;                  gsspe  = 0.0;                  gsspT  = -model->B3SOIDDtype * here->B3SOIDDgjsT;                  gsspsp = - (gsspg + gsspdp + gsspb + gsspe);                  gppg = -here->B3SOIDDgbpgs;                  gppdp = -here->B3SOIDDgbpds;             	  gppb = -here->B3SOIDDgbpbs;                  gppe = -here->B3SOIDDgbpes;                  gppp = -here->B3SOIDDgbpps;                  gppT = -model->B3SOIDDtype * here->B3SOIDDgbpT;                  gppsp = - (gppg + gppdp + gppb + gppe + gppp);                  gTtg  = here->B3SOIDDgtempg;                  gTtb  = here->B3SOIDDgtempb;                  gTte  = here->B3SOIDDgtempe;                  gTtdp = here->B3SOIDDgtempd;                  gTtt  = here->B3SOIDDgtempT;                  gTtsp = - (gTtg + gTtb + gTte + gTtdp);                  sxpart = 0.6;                  dxpart = 0.4;              } 	      else	      {   Gm = -here->B3SOIDDgm;		  Gmbs = -here->B3SOIDDgmbs;                  Gme = -here->B3SOIDDgme;                  GmT = -model->B3SOIDDtype * here->B3SOIDDgmT;		  FwdSum = 0.0;		  RevSum = -Gm - Gmbs - Gme;                  cdgb = - (here->B3SOIDDcdgb + here->B3SOIDDcggb + here->B3SOIDDcbgb                          + here->B3SOIDDcegb);                  cdsb = - (here->B3SOIDDcddb + here->B3SOIDDcgdb + here->B3SOIDDcbdb                          + here->B3SOIDDcedb);                  cddb = - (here->B3SOIDDcdsb + here->B3SOIDDcgsb + here->B3SOIDDcbsb                          + here->B3SOIDDcesb);                  cdeb = - (here->B3SOIDDcdeb + here->B3SOIDDcgeb + here->B3SOIDDcbeb                          + here->B3SOIDDceeb);                  cdT  = - model->B3SOIDDtype * (here->B3SOIDDcgT + here->B3SOIDDcbT                         + here->B3SOIDDcdT + here->B3SOIDDceT);                  cegb = here->B3SOIDDcegb;                  cesb = here->B3SOIDDcedb;                  cedb = here->B3SOIDDcesb;                  ceeb = here->B3SOIDDceeb;                  ceT  = model->B3SOIDDtype * here->B3SOIDDceT;                  cggb = here->B3SOIDDcggb;                  cgsb = here->B3SOIDDcgdb;                  cgdb = here->B3SOIDDcgsb;                  cgeb = here->B3SOIDDcgeb;                  cgT  = model->B3SOIDDtype * here->B3SOIDDcgT;                  cbgb = here->B3SOIDDcbgb;                  cbsb = here->B3SOIDDcbdb;                  cbdb = here->B3SOIDDcbsb;                  cbeb = here->B3SOIDDcbeb;                  cbT  = model->B3SOIDDtype * here->B3SOIDDcbT;                  cTt = here->pParam->B3SOIDDcth;                  gbbg  = -here->B3SOIDDgbgs;                  gbbb  = -here->B3SOIDDgbbs;                  gbbe  = -here->B3SOIDDgbes;                  gbbp  = -here->B3SOIDDgbps;                  gbbsp = -here->B3SOIDDgbds;                  gbbT  = -model->B3SOIDDtype * here->B3SOIDDgbT;                  gbbdp = - ( gbbg + gbbsp + gbbb + gbbe + gbbp);                  gddpg  = -here->B3SOIDDgjsg;                  gddpsp = -here->B3SOIDDgjsd;                  gddpb  = -here->B3SOIDDgjsb;                  gddpe  = 0.0;                  gddpT  = -model->B3SOIDDtype * here->B3SOIDDgjsT;                  gddpdp = - (gddpg + gddpsp + gddpb + gddpe);                  gsspg  = -here->B3SOIDDgjdg;                  gsspsp = -here->B3SOIDDgjdd;                  gsspb  = -here->B3SOIDDgjdb;                  gsspe  = -here->B3SOIDDgjde;                  gsspT  = -model->B3SOIDDtype * here->B3SOIDDgjdT;                  gsspdp = - ( gsspg + gsspsp + gsspb + gsspe);                  gppg = -here->B3SOIDDgbpgs;                  gppsp = -here->B3SOIDDgbpds;                  gppb = -here->B3SOIDDgbpbs;                  gppe = -here->B3SOIDDgbpes;                  gppp = -here->B3SOIDDgbpps;                  gppT = -model->B3SOIDDtype * here->B3SOIDDgbpT;                  gppdp = - (gppg + gppsp + gppb + gppe + gppp);                  gTtt = here->B3SOIDDgtempT;                  gTtg = here->B3SOIDDgtempg;                  gTtb = here->B3SOIDDgtempb;                  gTte = here->B3SOIDDgtempe;                  gTtdp = here->B3SOIDDgtempd;                  gTtsp = - (gTtt + gTtg + gTtb + gTte + gTtdp);                  gTtg  = here->B3SOIDDgtempg;                  gTtb  = here->B3SOIDDgtempb;                  gTte  = here->B3SOIDDgtempe;                  gTtsp = here->B3SOIDDgtempd;                  gTtt  = here->B3SOIDDgtempT;                  gTtdp = - (gTtg + gTtb + gTte + gTtsp);                  sxpart = 0.6;                  sxpart = 0.4;                  dxpart = 0.6;              }              gdpr=here->B3SOIDDdrainConductance;              gspr=here->B3SOIDDsourceConductance;              gds= here->B3SOIDDgds;	      GSoverlapCap = here->B3SOIDDcgso;	      GDoverlapCap = here->B3SOIDDcgdo;	      GEoverlapCap = here->pParam->B3SOIDDcgeo;

⌨️ 快捷键说明

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