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

📄 b2moscap.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Hong J. Park, Thomas L. Quarles**********/#include "spice.h"#include <stdio.h>#include "cktdefs.h"#include "bsim2def.h"#include "suffix.h"/* routine to calculate equivalent conductance and total terminal  * charges */voidB2mosCap(ckt,vgd,vgs,vgb,	args,	/*	GateDrainOverlapCap,GateSourceOverlapCap, GateBulkOverlapCap,	capbd,capbs,        cggb,cgdb,cgsb,	*/	cbgb,cbdb,cbsb,cdgb,cddb,cdsb,        gcggbPointer,gcgdbPointer,gcgsbPointer,gcbgbPointer,gcbdbPointer,        gcbsbPointer,gcdgbPointer,gcddbPointer,gcdsbPointer,        gcsgbPointer,gcsdbPointer,gcssbPointer,qGatePointer,qBulkPointer,        qDrainPointer,qSourcePointer)    register CKTcircuit *ckt;    double vgd;    double vgs;    double vgb;    double args[8];    /*    double GateDrainOverlapCap;    double GateSourceOverlapCap;    double GateBulkOverlapCap;    double capbd;    double capbs;    double cggb;    double cgdb;    double cgsb;    */    double cbgb;    double cbdb;    double cbsb;    double cdgb;    double cddb;    double cdsb;    double *gcggbPointer;    double *gcgdbPointer;    double *gcgsbPointer;    double *gcbgbPointer;    double *gcbdbPointer;    double *gcbsbPointer;    double *gcdgbPointer;    double *gcddbPointer;    double *gcdsbPointer;    double *gcsgbPointer;    double *gcsdbPointer;    double *gcssbPointer;    double *qGatePointer;    double *qBulkPointer;    double *qDrainPointer;    double *qSourcePointer;{    double qgd;    double qgs;    double qgb;    double ag0;    ag0 = ckt->CKTag[0];    /* compute equivalent conductance */    *gcdgbPointer = (cdgb - args[0]) * ag0;    *gcddbPointer = (cddb + args[3] + args[0]) * ag0;    *gcdsbPointer = cdsb * ag0;    *gcsgbPointer = -(args[5] + cbgb + cdgb + args[1]) * ag0;    *gcsdbPointer = -(args[6] + cbdb + cddb ) * ag0;    *gcssbPointer = (args[4] + args[1] -         (args[7] + cbsb + cdsb )) * ag0;    *gcggbPointer = (args[5] + args[0] +        args[1] + args[2] ) * ag0;    *gcgdbPointer = (args[6] - args[0]) * ag0;    *gcgsbPointer = (args[7] - args[1]) * ag0;    *gcbgbPointer = (cbgb - args[2]) * ag0;    *gcbdbPointer = (cbdb - args[3]) * ag0;    *gcbsbPointer = (cbsb - args[4]) * ag0;     /* compute total terminal charge */    qgd = args[0] * vgd;    qgs = args[1] * vgs;    qgb = args[2] * vgb;    *qGatePointer = *qGatePointer + qgd + qgs + qgb;    *qBulkPointer = *qBulkPointer - qgb;    *qDrainPointer = *qDrainPointer - qgd;    *qSourcePointer = -(*qGatePointer + *qBulkPointer + *qDrainPointer);}

⌨️ 快捷键说明

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