Jspice3
bjtpzld.c File Reference
#include "spice.h"
#include <stdio.h>
#include "bjtdefs.h"
#include "sperror.h"
Include dependency graph for bjtpzld.c:

Go to the source code of this file.

Functions

int BJTpzLoad (GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
 

Function Documentation

int BJTpzLoad ( GENmodel inModel,
CKTcircuit ckt,
SPcomplex s 
)

Definition at line 15 of file bjtpzld.c.

20 {
21  BJTmodel *model = (BJTmodel*)inModel;
22  BJTinstance *here;
23  double gcpr;
24  double gepr;
25  double gpi;
26  double gmu;
27  double go;
28  double xgm;
29  double gm;
30  double gx;
31  double xcpi;
32  double xcmu;
33  double xcbx;
34  double xccs;
35  double xcmcb;
36 
37  for ( ; model != NULL; model = model->BJTnextModel) {
38  for (here = model->BJTinstances; here!= NULL;
39  here = here->BJTnextInstance) {
40 
41  gcpr = model->BJTcollectorResist * here->BJTarea;
42  gepr = model->BJTemitterResist * here->BJTarea;
43  gpi = here->BJTgpi;
44  gmu = here->BJTgmu;
45  gm = here->BJTgm;
46  go = here->BJTgo;
47  xgm = 0;
48  gx = here->BJTgx;
49  xcpi = here->BJTcapbe * ckt->CKTomega;
50  xcmu = here->BJTcapbc * ckt->CKTomega;
51  xcbx = here->BJTcapbx * ckt->CKTomega;
52  xccs = here->BJTcapcs * ckt->CKTomega;
53  xcmcb= here->BJTgeqcb * ckt->CKTomega;
54 
55  *(here->BJTcolColPtr) += gcpr;
56  *(here->BJTbaseBasePtr) += gx + xcbx * s->real;
57  *(here->BJTbaseBasePtr + 1) += xcbx * s->imag;
58  *(here->BJTemitEmitPtr) += gepr;
59 
60  *(here->BJTcolPrimeColPrimePtr) +=
61  (gmu+go+gcpr) + (xcmu+xccs+xcbx) * (s->real);
62  *(here->BJTcolPrimeColPrimePtr + 1) +=
63  (xcmu+xccs+xcbx) * (s->imag);
64  *(here->BJTbasePrimeBasePrimePtr) +=
65  (gx+gpi+gmu) + (xcpi+xcmu+xcmcb) * (s->real);
66  *(here->BJTbasePrimeBasePrimePtr + 1) +=
67  (xcpi+xcmu+xcmcb) * (s->imag);
68  *(here->BJTemitPrimeEmitPrimePtr) +=
69  (gpi+gepr+gm+go) + (xcpi+xgm) * (s->real);
70  *(here->BJTemitPrimeEmitPrimePtr + 1) +=
71  (xcpi+xgm) * (s->imag);
72 
73  *(here->BJTcolColPrimePtr) -= gcpr;
74  *(here->BJTbaseBasePrimePtr) -= gx;
75  *(here->BJTemitEmitPrimePtr) -= gepr;
76  *(here->BJTcolPrimeColPtr) -= gcpr;
77 
78  *(here->BJTcolPrimeBasePrimePtr) +=
79  (-gmu+gm) + (-xcmu+xgm) * (s->real);
80  *(here->BJTcolPrimeBasePrimePtr + 1) +=
81  (-xcmu+xgm) * (s->imag);
82  *(here->BJTcolPrimeEmitPrimePtr) +=
83  (-gm-go) + (-xgm) * (s->real);
84  *(here->BJTcolPrimeEmitPrimePtr + 1) += (-xgm) * (s->imag);
85  *(here->BJTbasePrimeBasePtr) += (-gx);
86  *(here->BJTbasePrimeColPrimePtr) +=
87  (-gmu) + (-xcmu-xcmcb) * (s->real);
88  *(here->BJTbasePrimeColPrimePtr + 1) +=
89  (-xcmu-xcmcb) * (s->imag);
90  *(here->BJTbasePrimeEmitPrimePtr) +=
91  (-gpi) + (-xcpi) * (s->real);
92  *(here->BJTbasePrimeEmitPrimePtr + 1) += (-xcpi) * (s->imag);
93  *(here->BJTemitPrimeEmitPtr) += (-gepr);
94  *(here->BJTemitPrimeColPrimePtr) +=
95  (-go) + (xcmcb) * (s->real);
96  *(here->BJTemitPrimeColPrimePtr + 1) += (xcmcb) * (s->imag);
97  *(here->BJTemitPrimeBasePrimePtr) +=
98  (-gpi-gm) + (-xcpi-xgm-xcmcb) * (s->real);
99  *(here->BJTemitPrimeBasePrimePtr + 1) +=
100  (-xcpi-xgm-xcmcb) * (s->imag);
101 
102  *(here->BJTsubstSubstPtr) += xccs * s->real;
103  *(here->BJTsubstSubstPtr + 1) += xccs * s->imag;
104  *(here->BJTcolPrimeSubstPtr) -= xccs * s->real;
105  *(here->BJTcolPrimeSubstPtr + 1) -= xccs * s->imag;
106  *(here->BJTsubstColPrimePtr) -= xccs * s->real;
107  *(here->BJTsubstColPrimePtr + 1) -= xccs * s->imag;
108  *(here->BJTbaseColPrimePtr) -= xcbx * s->real;
109  *(here->BJTbaseColPrimePtr + 1) -= xcbx * s->imag;
110  *(here->BJTcolPrimeBasePtr) -= xcbx * s->real;
111  *(here->BJTcolPrimeBasePtr + 1) -= xcbx * s->imag;
112  }
113  }
114  return (OK);
115 }
double * BJTcolPrimeColPtr
Definition: bjtdefs.h:71
BJTinstance * BJTinstances
Definition: bjtdefs.h:259
double * BJTemitPrimeEmitPrimePtr
Definition: bjtdefs.h:99
double * BJTcolColPrimePtr
Definition: bjtdefs.h:65
struct sBJTmodel * BJTnextModel
Definition: bjtdefs.h:257
double * BJTbaseBasePtr
Definition: bjtdefs.h:91
double * BJTbasePrimeBasePtr
Definition: bjtdefs.h:77
double * BJTemitPrimeBasePrimePtr
Definition: bjtdefs.h:87
double * BJTsubstSubstPtr
Definition: bjtdefs.h:101
double BJTcapbc
Definition: bjtdefs.h:51
double BJTarea
Definition: bjtdefs.h:32
double * BJTbaseColPrimePtr
Definition: bjtdefs.h:107
double real
Definition: complex.h:13
double * BJTemitEmitPtr
Definition: bjtdefs.h:93
double * BJTcolPrimeBasePrimePtr
Definition: bjtdefs.h:73
double * BJTemitPrimeEmitPtr
Definition: bjtdefs.h:83
double * BJTcolPrimeBasePtr
Definition: bjtdefs.h:109
double * BJTcolColPtr
Definition: bjtdefs.h:89
struct sBJTinstance * BJTnextInstance
Definition: bjtdefs.h:20
double * BJTcolPrimeColPrimePtr
Definition: bjtdefs.h:95
double * BJTemitPrimeColPrimePtr
Definition: bjtdefs.h:85
double * BJTbasePrimeEmitPrimePtr
Definition: bjtdefs.h:81
#define OK
Definition: iferrmsg.h:17
double BJTcapbe
Definition: bjtdefs.h:50
double BJTgmu
Definition: bjtdefs.h:57
double * BJTcolPrimeSubstPtr
Definition: bjtdefs.h:103
#define NULL
Definition: spdefs.h:121
double * BJTbasePrimeColPrimePtr
Definition: bjtdefs.h:79
double BJTgo
Definition: bjtdefs.h:59
double CKTomega
Definition: cktdefs.h:198
double * BJTemitEmitPrimePtr
Definition: bjtdefs.h:69
double BJTcollectorResist
Definition: bjtdefs.h:282
double BJTgpi
Definition: bjtdefs.h:56
double BJTgm
Definition: bjtdefs.h:58
double * BJTcolPrimeEmitPrimePtr
Definition: bjtdefs.h:75
static char model[32]
Definition: subckt.c:76
double BJTcapcs
Definition: bjtdefs.h:52
double BJTcapbx
Definition: bjtdefs.h:53
double * BJTbasePrimeBasePrimePtr
Definition: bjtdefs.h:97
double imag
Definition: complex.h:14
double * BJTsubstColPrimePtr
Definition: bjtdefs.h:105
double BJTemitterResist
Definition: bjtdefs.h:281
double BJTgeqcb
Definition: bjtdefs.h:61
double * BJTbaseBasePrimePtr
Definition: bjtdefs.h:67
double BJTgx
Definition: bjtdefs.h:60