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

📄 bjtpzld.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. Quarles**********//* */#include "spice.h"#include <stdio.h>#include "cktdefs.h"#include "complex.h"#include "bjtdefs.h"#include "sperror.h"#include "suffix.h"intBJTpzLoad(inModel,ckt,s)    GENmodel *inModel;    register CKTcircuit *ckt;    register SPcomplex *s;{    register BJTmodel *model = (BJTmodel*)inModel;    register BJTinstance *here;    double gcpr;    double gepr;    double gpi;    double gmu;    double go;    double xgm;    double gm;    double gx;    double xcpi;    double xcmu;    double xcbx;    double xccs;    double xcmcb;    for( ; model != NULL; model = model->BJTnextModel) {        for( here = model->BJTinstances; here!= NULL;                 here = here->BJTnextInstance) {	    if (here->BJTowner != ARCHme) continue;            gcpr=model->BJTcollectorResist * here->BJTarea;            gepr=model->BJTemitterResist * here->BJTarea;            gpi= *(ckt->CKTstate0 + here->BJTgpi);            gmu= *(ckt->CKTstate0 + here->BJTgmu);            gm= *(ckt->CKTstate0 + here->BJTgm);            go= *(ckt->CKTstate0 + here->BJTgo);            xgm=0;            gx= *(ckt->CKTstate0 + here->BJTgx);            xcpi= *(ckt->CKTstate0 + here->BJTcqbe);            xcmu= *(ckt->CKTstate0 + here->BJTcqbc);            xcbx= *(ckt->CKTstate0 + here->BJTcqbx);            xccs= *(ckt->CKTstate0 + here->BJTcqcs);            xcmcb= *(ckt->CKTstate0 + here->BJTcexbc);            *(here->BJTcolColPtr) +=   (gcpr);            *(here->BJTbaseBasePtr) +=   (gx) + (xcbx) * (s->real);            *(here->BJTbaseBasePtr + 1) +=   (xcbx) * (s->imag);            *(here->BJTemitEmitPtr) +=   (gepr);            *(here->BJTcolPrimeColPrimePtr) +=   (gmu+go+gcpr)                                        + (xcmu+xccs+xcbx) * (s->real);            *(here->BJTcolPrimeColPrimePtr + 1) +=   (xcmu+xccs+xcbx)                                                 * (s->imag);            *(here->BJTbasePrimeBasePrimePtr) +=   (gx+gpi+gmu)                                   + (xcpi+xcmu+xcmcb) * (s->real);            *(here->BJTbasePrimeBasePrimePtr + 1) +=   (xcpi+xcmu+xcmcb)                                                    * (s->imag);            *(here->BJTemitPrimeEmitPrimePtr) +=   (gpi+gepr+gm+go)                                           + (xcpi+xgm) * (s->real);            *(here->BJTemitPrimeEmitPrimePtr + 1) +=   (xcpi+xgm)                                                 * (s->imag);            *(here->BJTcolColPrimePtr) +=   (-gcpr);            *(here->BJTbaseBasePrimePtr) +=   (-gx);            *(here->BJTemitEmitPrimePtr) +=   (-gepr);            *(here->BJTcolPrimeColPtr) +=   (-gcpr);            *(here->BJTcolPrimeBasePrimePtr) +=   (-gmu+gm)                                           +   (-xcmu+xgm) * (s->real);            *(here->BJTcolPrimeBasePrimePtr + 1) +=   (-xcmu+xgm)                                                * (s->imag);            *(here->BJTcolPrimeEmitPrimePtr) +=   (-gm-go)                                             + (-xgm) * (s->real);            *(here->BJTcolPrimeEmitPrimePtr + 1) +=   (-xgm) *                                                  (s->imag);            *(here->BJTbasePrimeBasePtr) +=   (-gx);            *(here->BJTbasePrimeColPrimePtr) +=   (-gmu)                                        +   (-xcmu-xcmcb) * (s->real);            *(here->BJTbasePrimeColPrimePtr + 1) +=   (-xcmu-xcmcb)                                                * (s->imag);            *(here->BJTbasePrimeEmitPrimePtr) +=   (-gpi)                                              +  (-xcpi) * (s->real);            *(here->BJTbasePrimeEmitPrimePtr + 1) +=   (-xcpi)                                                  * (s->imag);            *(here->BJTemitPrimeEmitPtr) +=   (-gepr);            *(here->BJTemitPrimeColPrimePtr) +=   (-go)                                              +   (xcmcb) * (s->real);            *(here->BJTemitPrimeColPrimePtr + 1) +=   (xcmcb)                                                *  (s->imag);            *(here->BJTemitPrimeBasePrimePtr) +=   (-gpi-gm)                                      +  (-xcpi-xgm-xcmcb) * (s->real);            *(here->BJTemitPrimeBasePrimePtr + 1) +=   (-xcpi-xgm-xcmcb)                             * (s->imag);            *(here->BJTsubstSubstPtr) +=   (xccs) * (s->real);            *(here->BJTsubstSubstPtr + 1) +=   (xccs) * (s->imag);            *(here->BJTcolPrimeSubstPtr) +=   (-xccs) * (s->real);            *(here->BJTcolPrimeSubstPtr + 1) +=   (-xccs) * (s->imag);            *(here->BJTsubstColPrimePtr) +=   (-xccs) * (s->real);            *(here->BJTsubstColPrimePtr + 1) +=   (-xccs) * (s->imag);            *(here->BJTbaseColPrimePtr) +=   (-xcbx) * (s->real);            *(here->BJTbaseColPrimePtr + 1) +=   (-xcbx) * (s->imag);            *(here->BJTcolPrimeBasePtr) +=   (-xcbx) * (s->real);            *(here->BJTcolPrimeBasePtr + 1) +=   (-xcbx) * (s->imag);        }    }    return(OK);}

⌨️ 快捷键说明

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