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

📄 nbt2pzld.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1992 Regents of the University of California.  All rights reserved.Author:	1987 Kartikeya Mayaram, U. C. Berkeley CAD Group**********/#include "spice.h"#include <stdio.h>#include "cktdefs.h"#include "complex.h"#include "nbjt2def.h"#include "sperror.h"#include "suffix.h"/* External Declarations */extern int TWOacDebug;intNBJT2pzLoad(inModel, ckt, s)  GENmodel *inModel;  CKTcircuit *ckt;  SPcomplex *s;{  register NBJT2model *model = (NBJT2model *) inModel;  register NBJT2instance *inst;  SPcomplex yIeVce, yIeVbe;  SPcomplex yIcVce, yIcVbe;  double startTime;  void NBJT2ys();  for (; model != NULL; model = model->NBJT2nextModel) {    FieldDepMobility = model->NBJT2models->MODLfieldDepMobility;    TransDepMobility = model->NBJT2models->MODLtransDepMobility;    SurfaceMobility = model->NBJT2models->MODLsurfaceMobility;    Srh = model->NBJT2models->MODLsrh;    Auger = model->NBJT2models->MODLauger;    AvalancheGen = model->NBJT2models->MODLavalancheGen;    OneCarrier = model->NBJT2methods->METHoneCarrier;    AcAnalysisMethod = model->NBJT2methods->METHacAnalysisMethod;    MobDeriv = model->NBJT2methods->METHmobDeriv;    TWOacDebug = model->NBJT2outputs->OUTPacDebug;    for (inst = model->NBJT2instances; inst != NULL;	inst = inst->NBJT2nextInstance) {      if (inst->NBJT2owner != ARCHme) continue;      startTime = SPfrontEnd->IFseconds();      /* Get Temp.-Dep. Global Parameters */      GLOBgetGlobals(&(inst->NBJT2globals));      NBJT2ys(inst->NBJT2pDevice, s,	  &yIeVce, &yIcVce, &yIeVbe, &yIcVbe);      *(inst->NBJT2colColPtr) += yIcVce.real;      *(inst->NBJT2colColPtr + 1) += yIcVce.imag;      *(inst->NBJT2colBasePtr) += yIcVbe.real;      *(inst->NBJT2colBasePtr + 1) += yIcVbe.imag;      *(inst->NBJT2colEmitPtr) -= yIcVbe.real + yIcVce.real;      *(inst->NBJT2colEmitPtr + 1) -= yIcVbe.imag + yIcVce.imag;      *(inst->NBJT2baseColPtr) -= yIcVce.real + yIeVce.real;      *(inst->NBJT2baseColPtr + 1) -= yIcVce.imag + yIeVce.imag;      *(inst->NBJT2baseBasePtr) -= yIcVbe.real + yIeVbe.real;      *(inst->NBJT2baseBasePtr + 1) -= yIcVbe.imag + yIeVbe.imag;      *(inst->NBJT2baseEmitPtr) += yIcVbe.real + yIcVce.real + yIeVbe.real + yIeVce.real;      *(inst->NBJT2baseEmitPtr + 1) += yIcVbe.imag + yIcVce.imag + yIeVbe.imag + yIeVce.imag;      *(inst->NBJT2emitColPtr) += yIeVce.real;      *(inst->NBJT2emitColPtr + 1) += yIeVce.imag;      *(inst->NBJT2emitBasePtr) += yIeVbe.real;      *(inst->NBJT2emitBasePtr + 1) += yIeVbe.imag;      *(inst->NBJT2emitEmitPtr) -= yIeVbe.real + yIeVce.real;      *(inst->NBJT2emitEmitPtr + 1) -= yIeVbe.imag + yIeVce.imag;      inst->NBJT2pDevice->pStats->totalTime[STAT_AC] +=	  SPfrontEnd->IFseconds() - startTime;    }  }  return (OK);}

⌨️ 快捷键说明

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