My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EKV26MOS.core.h
Go to the documentation of this file.
1 /*
2  * EKV26MOS.core.h - device class definitions for EKV26MOS module
3  *
4  * This is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2, or (at your option)
7  * any later version.
8  *
9  */
10 
11 #ifndef __EKV26MOS_H__
12 #define __EKV26MOS_H__
13 
14 class EKV26MOS : public circuit
15 {
16  public:
17  CREATOR (EKV26MOS);
18 
19  void initDC (void);
20  void restartDC (void);
21  void calcDC (void);
22  void saveOperatingPoints (void);
23  void loadOperatingPoints (void);
24  void calcOperatingPoints (void);
25  void initAC (void);
26  void calcAC (nr_double_t);
27  void initSP (void);
28  void calcSP (nr_double_t);
29  void calcNoiseAC (nr_double_t);
30  void calcNoiseSP (nr_double_t);
31  void initTR (void);
32  void calcTR (nr_double_t);
33  void initHB (int);
34  void calcHB (int);
35 
36  private:
37  void initVerilog (void);
38  void calcVerilog (void);
39  void initModel (void);
40  void loadVariables (void);
41  void initializeModel (void);
42  void initializeInstance (void);
43  void initialStep (void);
44  void finalStep (void);
45  matrix calcMatrixY (nr_double_t);
46  matrix calcMatrixCy (nr_double_t);
47 
48  private:
49  int doHB;
50  int doAC;
51  int doTR;
52 
53  nr_double_t _freq;
54  nr_double_t _rhs[6];
55  nr_double_t _qhs[6];
56  nr_double_t _ghs[6];
57  nr_double_t _chs[6];
58  nr_double_t _jstat[6][6];
59  nr_double_t _jdyna[6][6];
60  nr_double_t _white_pwr[6][6];
61  nr_double_t _flicker_pwr[6][6];
62  nr_double_t _flicker_exp[6][6];
63  nr_double_t _charges[6][6];
64  nr_double_t _caps[6][6][6][6];
65 
66  // device model parameters
67  nr_double_t LEVEL;
68  nr_double_t L;
69  nr_double_t W;
70  nr_double_t Np;
71  nr_double_t Ns;
72  nr_double_t Cox;
73  nr_double_t Xj;
74  nr_double_t Dw;
75  nr_double_t Dl;
76  nr_double_t Vto;
77  nr_double_t Gamma;
78  nr_double_t Phi;
79  nr_double_t Kp;
80  nr_double_t Theta;
81  nr_double_t EO;
82  nr_double_t Ucrit;
83  nr_double_t Lambda;
84  nr_double_t Weta;
85  nr_double_t Leta;
86  nr_double_t Q0;
87  nr_double_t Lk;
88  nr_double_t Tcv;
89  nr_double_t Bex;
90  nr_double_t Ucex;
91  nr_double_t Ibbt;
92  nr_double_t Hdif;
93  nr_double_t Rsh;
94  nr_double_t Rsc;
95  nr_double_t Rdc;
96  nr_double_t Cgso;
97  nr_double_t Cgdo;
98  nr_double_t Cgbo;
99  nr_double_t Iba;
100  nr_double_t Ibb;
101  nr_double_t Ibn;
102  nr_double_t Kf;
103  nr_double_t Af;
104  nr_double_t Avto;
105  nr_double_t Akp;
106  nr_double_t Agamma;
107  nr_double_t N;
108  nr_double_t Is;
109  nr_double_t Bv;
110  nr_double_t Ibv;
111  nr_double_t Vj;
112  nr_double_t Cj0;
113  nr_double_t M;
114  nr_double_t Area;
115  nr_double_t Fc;
116  nr_double_t Tt;
117  nr_double_t Xti;
118  nr_double_t Xpart;
119  nr_double_t Tnom;
120  int nmos;
121  int pmos;
122 
123  // global model variables
124  double Ucrit_T;
125  double Phi_T;
126  double Weff;
127  double RDeff;
128  double RSeff;
129  double Kpa_T;
130  double Gammaa;
131  double Vc;
132  double Lc;
133  double Lmin;
134  double eta;
135  double Ibb_T;
136  double Vj_T2;
137  double F3;
138  double GMIN;
139  double fourkt;
140  double p_n_MOS;
141  double Area1;
142  double Area2;
143  double Area3;
144  double DP1;
145  double DP2;
146  double DP3;
147  double DP4;
148  double con3;
149  double con4;
150  double con5;
151  double con6;
152  double con7;
153  double con8;
154  double con9;
155  double con10;
156  double con11;
157  double con12;
158  double con13;
159  double con14;
160  double con15;
161  double con16;
162  double con17;
163  double con18;
164  double con19;
165  double con20;
166  double con21;
167  double con22;
168  double con23;
169  double con24;
170  double Spart;
171  double con25;
172  double con26;
173  double con27;
174  double con28;
175  double con29;
176  double con30;
177  double con31;
178  double con32;
179  double con33;
180 
181 
182 
183 };
184 
185 #endif /* __EKV26MOS_H__ */