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

📄 b3soifdacld.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
📖 第 1 页 / 共 2 页
字号:
                  dxpart = 0.6;              }              gdpr=here->B3SOIFDdrainConductance;              gspr=here->B3SOIFDsourceConductance;              gds= here->B3SOIFDgds;	      GSoverlapCap = here->B3SOIFDcgso;	      GDoverlapCap = here->B3SOIFDcgdo;	      GEoverlapCap = here->pParam->B3SOIFDcgeo;              xcegb = (cegb - GEoverlapCap) * omega;              xcedb = cedb * omega;              xcesb = cesb * omega;              xceeb = (ceeb + GEoverlapCap) * omega;              xceT  =  ceT * omega;              xcggb = (cggb + GDoverlapCap + GSoverlapCap + GEoverlapCap)		    * omega;              xcgdb = (cgdb - GDoverlapCap ) * omega;              xcgsb = (cgsb - GSoverlapCap) * omega;              xcgeb = (cgeb - GEoverlapCap) * omega;              xcgT  = cgT * omega;              xcdgb = (cdgb - GDoverlapCap) * omega;              xcddb = (cddb + GDoverlapCap) * omega;              xcdsb = cdsb * omega;              xcdeb = cdeb * omega;              xcdT  = cdT * omega;              xcsgb = -(cggb + cbgb + cdgb + cegb + GSoverlapCap) * omega;              xcsdb = -(cgdb + cbdb + cddb + cedb) * omega;              xcssb = (GSoverlapCap - (cgsb + cbsb + cdsb + cesb)) * omega;              xcseb = -(cgeb + cbeb + cdeb + ceeb) * omega;              xcsT  = -(cgT + cbT + cdT + ceT) * omega;              xcbgb = cbgb * omega;              xcbdb = cbdb * omega;              xcbsb = cbsb * omega;              xcbeb = cbeb * omega;              xcbT  = cbT * omega;              xcTt = cTt * omega;              m = here->B3SOIFDm;                 *(here->B3SOIFDEgPtr  +1) += m * xcegb;                 *(here->B3SOIFDEdpPtr  +1) += m * xcedb;                 *(here->B3SOIFDEspPtr  +1) += m * xcesb;                 *(here->B3SOIFDGePtr +1)  += m * xcgeb;                 *(here->B3SOIFDDPePtr +1) += m * xcdeb;                 *(here->B3SOIFDSPePtr +1) += m * xcseb;              *(here->B3SOIFDEePtr  +1) += m * xceeb;              *(here->B3SOIFDGgPtr  +1) += m * xcggb;              *(here->B3SOIFDGdpPtr +1) += m * xcgdb;              *(here->B3SOIFDGspPtr +1) += m * xcgsb;              *(here->B3SOIFDDPgPtr +1) += m * xcdgb;              *(here->B3SOIFDDPdpPtr +1) += m * xcddb;              *(here->B3SOIFDDPspPtr +1) += m * xcdsb;              *(here->B3SOIFDSPgPtr +1) += m * xcsgb;              *(here->B3SOIFDSPdpPtr +1) += m * xcsdb;              *(here->B3SOIFDSPspPtr +1) += m * xcssb;              if (selfheat)              {                 *(here->B3SOIFDTemptempPtr + 1) += m * xcTt;                 *(here->B3SOIFDDPtempPtr + 1) += m * xcdT;                 *(here->B3SOIFDSPtempPtr + 1) += m * xcsT;                 *(here->B3SOIFDBtempPtr + 1) += m * xcbT;                 *(here->B3SOIFDEtempPtr + 1) += m * xceT;                 *(here->B3SOIFDGtempPtr + 1) += m * xcgT;              }                                                                if (here->B3SOIFDdebugMod > 3){fprintf(fpdebug, "Cbg+Cbs+Cbe = %.5e; Cbd = %.5e;\n",(xcbgb+xcbsb+xcbeb)/omega, xcbdb/omega);fprintf(fpdebug, "gbs = %.5e; gbd = %.5e\n", gbbsp, gbbdp);   fprintf(fpdebug, "AC condunctance...\n");   fprintf(fpdebug, "Eg=%.5e; Edp=%.5e; Esp=%.5e;\nEb=%.5e; Ee=%.5e\n",xcegb, xcedb, xcesb, -(xcegb+xcedb+xcesb+xceeb), xceeb);   fprintf(fpdebug, "Gg=%.5e; Gdp=%.5e; Gsp=%.5e;\nGb=%.5e; Ge=%.5e\n",xcggb, xcgdb, xcgsb, -(xcggb+xcgdb+xcgsb+xcgeb), xcgeb);   fprintf(fpdebug, "Bg=%.5e; Bdp=%.5e; Bsp=%.5e;\nBb=%.5e; Be=%.5e\n",xcbgb, xcbdb, xcbsb, -(xcbgb+xcbdb+xcbsb+xcbeb), xcbeb);   fprintf(fpdebug, "DPg=%.5e; DPdp=%.5e; DPsp=%.5e;\nDPb=%.5e; DPe=%.5e\n",xcdgb, xcddb, xcdsb, -(xcdgb+xcddb+xcdsb+xcdeb), xcdeb);   fprintf(fpdebug, "SPg=%.5e; SPdp=%.5e; SPsp=%.5e;\nSPb=%.5e; SPe=%.5e\n",xcsgb, xcsdb, xcssb, -(xcsgb+xcsdb+xcssb+xcseb), xcseb);}                 *(here->B3SOIFDEgPtr) += 0.0;                 *(here->B3SOIFDEdpPtr) += 0.0;                 *(here->B3SOIFDEspPtr) += 0.0;                 *(here->B3SOIFDGePtr) -=  0.0;                 *(here->B3SOIFDDPePtr) += m * (Gme + gddpe);                 *(here->B3SOIFDSPePtr) += m * (gsspe - Gme);              *(here->B3SOIFDEePtr) += 0.0;              *(here->B3SOIFDDPgPtr) += m * (Gm + gddpg);              *(here->B3SOIFDDPdpPtr) += m * (gdpr + gds + gddpdp + RevSum);              *(here->B3SOIFDDPspPtr) -= m * (gds + FwdSum - gddpsp);              *(here->B3SOIFDDPdPtr) -= m * gdpr;              *(here->B3SOIFDSPgPtr) -= m * (Gm - gsspg);              *(here->B3SOIFDSPdpPtr) -= m * (gds + RevSum - gsspdp);              *(here->B3SOIFDSPspPtr) += m * (gspr + gds + FwdSum + gsspsp);              *(here->B3SOIFDSPsPtr) -= m * gspr;              if (selfheat)              {                 *(here->B3SOIFDDPtempPtr) += m * (GmT + gddpT);                 *(here->B3SOIFDSPtempPtr) += m * (-GmT + gsspT);                 *(here->B3SOIFDBtempPtr) += m * gbbT;                 if (here->B3SOIFDbodyMod == 1) {                    (*(here->B3SOIFDPtempPtr) += m * gppT);                 }                 *(here->B3SOIFDTemptempPtr) += m * (gTtt + 1/here->pParam->B3SOIFDrth);                 *(here->B3SOIFDTempgPtr) += m * gTtg;                 *(here->B3SOIFDTempbPtr) += m * gTtb;                 *(here->B3SOIFDTempePtr) += m * gTte;                 *(here->B3SOIFDTempdpPtr) += m * gTtdp;                 *(here->B3SOIFDTempspPtr) += m * gTtsp;              }if (here->B3SOIFDdebugMod > 3){   fprintf(fpdebug, "Static condunctance...\n");   fprintf(fpdebug, "Gg=%.5e; Gdp=%.5e; Gsp=%.5e;\nGb=%.5e; Ge=%.5e\n",   *(here->B3SOIFDGgPtr), *(here->B3SOIFDGdpPtr),   *(here->B3SOIFDGspPtr), *(here->B3SOIFDGbPtr),   *(here->B3SOIFDGePtr));   fprintf(fpdebug, "DPg=%.5e; DPdp=%.5e; DPsp=%.5e;\nDPb=%.5e; DPe=%.5e\n",   *(here->B3SOIFDDPgPtr), *(here->B3SOIFDDPdpPtr),   *(here->B3SOIFDDPspPtr), *(here->B3SOIFDDPbPtr),   *(here->B3SOIFDDPePtr));   fprintf(fpdebug, "SPg=%.5e; SPdp=%.5e; SPsp=%.5e;\nSPb=%.5e; SPe=%.5e\n",   *(here->B3SOIFDSPgPtr), *(here->B3SOIFDSPdpPtr),   *(here->B3SOIFDSPspPtr), *(here->B3SOIFDSPbPtr),   *(here->B3SOIFDSPePtr));   fprintf(fpdebug, "Bg=%.5e; Bdp=%.5e; Bsp=%.5e;\nBb=%.5e; Be=%.5e\n",gbbg, gbbdp, gbbsp, gbbb, gbbe);}              *(here->B3SOIFDDdPtr) += m * gdpr;              *(here->B3SOIFDDdpPtr) -= m * gdpr;              *(here->B3SOIFDSsPtr) += m * gspr;              *(here->B3SOIFDSspPtr) -= m * gspr;              if (here->B3SOIFDbodyMod == 1) {                 (*(here->B3SOIFDBpPtr) -= m * gppp);                 (*(here->B3SOIFDPbPtr) += m * gppb);                 (*(here->B3SOIFDPpPtr) += m * gppp);                    (*(here->B3SOIFDPgPtr) += m * gppg);                    (*(here->B3SOIFDPdpPtr) += m * gppdp);                    (*(here->B3SOIFDPspPtr) += m * gppsp);                    (*(here->B3SOIFDPePtr) += m * gppe);              }              if (here->B3SOIFDdebugMod > 1)              {                      *(here->B3SOIFDVbsPtr) += m * 1;                      *(here->B3SOIFDIdsPtr) += m * 1;                      *(here->B3SOIFDIcPtr) += m * 1;                      *(here->B3SOIFDIbsPtr) += m * 1;                      *(here->B3SOIFDIbdPtr) += m * 1;                      *(here->B3SOIFDIiiPtr) += m * 1;                      *(here->B3SOIFDIgidlPtr) += m * 1;                      *(here->B3SOIFDItunPtr) += m * 1;                      *(here->B3SOIFDIbpPtr) += m * 1;                      *(here->B3SOIFDAbeffPtr) += m * 1;                      *(here->B3SOIFDVbs0effPtr) += m * 1;                      *(here->B3SOIFDVbseffPtr) += m * 1;                      *(here->B3SOIFDXcPtr) += m * 1;                      *(here->B3SOIFDCbgPtr) += m * 1;                      *(here->B3SOIFDCbbPtr) += m * 1;                      *(here->B3SOIFDCbdPtr) += m * 1;                      *(here->B3SOIFDqbPtr) += m * 1;                      *(here->B3SOIFDQbfPtr) += m * 1;                      *(here->B3SOIFDQjsPtr) += m * 1;                      *(here->B3SOIFDQjdPtr) += m * 1;                      /* clean up last */                      *(here->B3SOIFDGmPtr) += m * 1;                      *(here->B3SOIFDGmbsPtr) += m * 1;                      *(here->B3SOIFDGdsPtr) += m * 1;                      *(here->B3SOIFDGmePtr) += m * 1;                      *(here->B3SOIFDVbs0teffPtr) += m * 1;                      *(here->B3SOIFDVgsteffPtr) += m * 1;                      *(here->B3SOIFDCbePtr) += m * 1;                      *(here->B3SOIFDVthPtr) += m * 1;                      *(here->B3SOIFDXcsatPtr) += m * 1;                      *(here->B3SOIFDVdscvPtr) += m * 1;                      *(here->B3SOIFDVcscvPtr) += m * 1;                      *(here->B3SOIFDQaccPtr) += m * 1;                      *(here->B3SOIFDQsub0Ptr) += m * 1;                      *(here->B3SOIFDQsubs1Ptr) += m * 1;                      *(here->B3SOIFDQsubs2Ptr) += m * 1;                      *(here->B3SOIFDqgPtr) += m * 1;                      *(here->B3SOIFDqdPtr) += m * 1;                      *(here->B3SOIFDqePtr) += m * 1;                      *(here->B3SOIFDDum1Ptr) += m * 1;                      *(here->B3SOIFDDum2Ptr) += m * 1;                      *(here->B3SOIFDDum3Ptr) += m * 1;                      *(here->B3SOIFDDum4Ptr) += m * 1;                      *(here->B3SOIFDDum5Ptr) += m * 1;              }           if (here->B3SOIFDdebugMod > 2)              fclose(fpdebug);        }    }    return(OK);}

⌨️ 快捷键说明

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