My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
hicumL2V2p1.cpp
Go to the documentation of this file.
1 /*
2  * hicumL2V2p1.cpp - device implementations for hicumL2V2p1 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 #include "hicumL2V2p1.h"
12 
14 {
15  Description = QObject::tr ("HICUM Level 2 v2.1 verilog device");
16 
17  Props.append (new Property ("c10", "1.516E-31", false,
18  QObject::tr ("GICCR constant")));
19  Props.append (new Property ("qp0", "5.939E-15", false,
20  QObject::tr ("Zero-bias hole charge")));
21  Props.append (new Property ("ich", "1.0E11", false,
22  QObject::tr ("High-current correction for 2D and 3D effects")));
23  Props.append (new Property ("hfe", "1.0", false,
24  QObject::tr ("Emitter minority charge weighting factor in HBTs")));
25  Props.append (new Property ("hfc", "0.03999", false,
26  QObject::tr ("Collector minority charge weighting factor in HBTs")));
27  Props.append (new Property ("hjei", "0.435", false,
28  QObject::tr ("B-E depletion charge weighting factor in HBTs")));
29  Props.append (new Property ("hjci", "0.09477", false,
30  QObject::tr ("B-C depletion charge weighting factor in HBTs")));
31  Props.append (new Property ("ibeis", "3.47E-20", false,
32  QObject::tr ("Internal B-E saturation current")));
33  Props.append (new Property ("mbei", "1.025", false,
34  QObject::tr ("Internal B-E current ideality factor")));
35  Props.append (new Property ("ireis", "390E-12", false,
36  QObject::tr ("Internal B-E recombination saturation current")));
37  Props.append (new Property ("mrei", "3", false,
38  QObject::tr ("Internal B-E recombination current ideality factor")));
39  Props.append (new Property ("ibeps", "4.18321E-21", false,
40  QObject::tr ("Peripheral B-E saturation current")));
41  Props.append (new Property ("mbep", "1.045", false,
42  QObject::tr ("Peripheral B-E current ideality factor")));
43  Props.append (new Property ("ireps", "1.02846E-14", false,
44  QObject::tr ("Peripheral B-E recombination saturation current")));
45  Props.append (new Property ("mrep", "3", false,
46  QObject::tr ("Peripheral B-E recombination current ideality factor")));
47  Props.append (new Property ("mcf", "1.0", false,
48  QObject::tr ("Non-ideality factor for III-V HBTs")));
49  Props.append (new Property ("ibcis", "3.02613E-18", false,
50  QObject::tr ("Internal B-C saturation current")));
51  Props.append (new Property ("mbci", "1.0", false,
52  QObject::tr ("Internal B-C current ideality factor")));
53  Props.append (new Property ("ibcxs", "4.576E-29", false,
54  QObject::tr ("External B-C saturation current")));
55  Props.append (new Property ("mbcx", "1.0", false,
56  QObject::tr ("External B-C current ideality factor")));
57  Props.append (new Property ("ibets", "0.0", false,
58  QObject::tr ("B-E tunneling saturation current")));
59  Props.append (new Property ("abet", "36.74", false,
60  QObject::tr ("Exponent factor for tunneling current")));
61  Props.append (new Property ("favl", "14.97", false,
62  QObject::tr ("Avalanche current factor")));
63  Props.append (new Property ("qavl", "7.2407E-14", false,
64  QObject::tr ("Exponent factor for avalanche current")));
65  Props.append (new Property ("alfav", "0.0", false,
66  QObject::tr ("Relative TC for FAVL")));
67  Props.append (new Property ("alqav", "0.0", false,
68  QObject::tr ("Relative TC for QAVL")));
69  Props.append (new Property ("rbi0", "7.9", false,
70  QObject::tr ("Zero bias internal base resistance")));
71  Props.append (new Property ("rbx", "13.15", false,
72  QObject::tr ("External base series resistance")));
73  Props.append (new Property ("fgeo", "0.724", false,
74  QObject::tr ("Factor for geometry dependence of emitter current crowding")));
75  Props.append (new Property ("fdqr0", "0", false,
76  QObject::tr ("Correction factor for modulation by B-E and B-C space charge layer")));
77  Props.append (new Property ("fcrbi", "0.0", false,
78  QObject::tr ("Ratio of HF shunt to total internal capacitance (lateral NQS effect)")));
79  Props.append (new Property ("fqi", "1.0", false,
80  QObject::tr ("Ration of internal to total minority charge")));
81  Props.append (new Property ("re", "9.77", false,
82  QObject::tr ("Emitter series resistance")));
83  Props.append (new Property ("rcx", "10", false,
84  QObject::tr ("External collector series resistance")));
85  Props.append (new Property ("itss", "2.81242E-19", false,
86  QObject::tr ("Substrate transistor transfer saturation current")));
87  Props.append (new Property ("msf", "1.0", false,
88  QObject::tr ("Forward ideality factor of substrate transfer current")));
89  Props.append (new Property ("iscs", "7.6376E-17", false,
90  QObject::tr ("C-S diode saturation current")));
91  Props.append (new Property ("msc", "1.0", false,
92  QObject::tr ("Ideality factor of C-S diode current")));
93  Props.append (new Property ("tsf", "1.733E-8", false,
94  QObject::tr ("Transit time for forward operation of substrate transistor")));
95  Props.append (new Property ("rsu", "800", false,
96  QObject::tr ("Substrate series resistance")));
97  Props.append (new Property ("csu", "1.778E-14", false,
98  QObject::tr ("Substrate shunt capacitance")));
99  Props.append (new Property ("cjei0", "5.24382E-14", false,
100  QObject::tr ("Internal B-E zero-bias depletion capacitance")));
101  Props.append (new Property ("vdei", "0.9956", false,
102  QObject::tr ("Internal B-E built-in potential")));
103  Props.append (new Property ("zei", "0.4", false,
104  QObject::tr ("Internal B-E grading coefficient")));
105  Props.append (new Property ("aljei", "2.5", false,
106  QObject::tr ("Ratio of maximum to zero-bias value of internal B-E capacitance")));
107  Props.append (new Property ("cjep0", "0", false,
108  QObject::tr ("Peripheral B-E zero-bias depletion capacitance")));
109  Props.append (new Property ("vdep", "1", false,
110  QObject::tr ("Peripheral B-E built-in potential")));
111  Props.append (new Property ("zep", "0.01", false,
112  QObject::tr ("Peripheral B-E grading coefficient")));
113  Props.append (new Property ("aljep", "2.5", false,
114  QObject::tr ("Ratio of maximum to zero-bias value of peripheral B-E capacitance")));
115  Props.append (new Property ("cjci0", "4.46887E-15", false,
116  QObject::tr ("Internal B-C zero-bias depletion capacitance")));
117  Props.append (new Property ("vdci", "0.7", false,
118  QObject::tr ("Internal B-C built-in potential")));
119  Props.append (new Property ("zci", "0.38", false,
120  QObject::tr ("Internal B-C grading coefficient")));
121  Props.append (new Property ("vptci", "100", false,
122  QObject::tr ("Internal B-C punch-through voltage")));
123  Props.append (new Property ("cjcx0", "1.55709E-14", false,
124  QObject::tr ("External B-C zero-bias depletion capacitance")));
125  Props.append (new Property ("vdcx", "0.733", false,
126  QObject::tr ("External B-C built-in potential")));
127  Props.append (new Property ("zcx", "0.34", false,
128  QObject::tr ("External B-C grading coefficient")));
129  Props.append (new Property ("vptcx", "100", false,
130  QObject::tr ("External B-C punch-through voltage")));
131  Props.append (new Property ("fbc", "0.3487", false,
132  QObject::tr ("Partitioning factor of parasitic B-C capacitance")));
133  Props.append (new Property ("cjs0", "17.68E-15", false,
134  QObject::tr ("C-S zero-bias depletion capacitance")));
135  Props.append (new Property ("vds", "0.621625", false,
136  QObject::tr ("C-S built-in potential")));
137  Props.append (new Property ("zs", "0.122136", false,
138  QObject::tr ("C-S grading coefficient")));
139  Props.append (new Property ("vpts", "1000", false,
140  QObject::tr ("C-S punch-through voltage")));
141  Props.append (new Property ("t0", "1.28E-12", false,
142  QObject::tr ("Low current forward transit time at VBC=0V")));
143  Props.append (new Property ("dt0h", "260E-15", false,
144  QObject::tr ("Time constant for base and B-C space charge layer width modulation")));
145  Props.append (new Property ("tbvl", "2.0E-13", false,
146  QObject::tr ("Time constant for modelling carrier jam at low VCE")));
147  Props.append (new Property ("tef0", "0.0", false,
148  QObject::tr ("Neutral emitter storage time")));
149  Props.append (new Property ("gtfe", "1.0", false,
150  QObject::tr ("Exponent factor for current dependence of neutral emitter storage time")));
151  Props.append (new Property ("thcs", "46E-15", false,
152  QObject::tr ("Saturation time constant at high current densities")));
153  Props.append (new Property ("alhc", "0.08913", false,
154  QObject::tr ("Smoothing factor for current dependence of base and collector transit time")));
155  Props.append (new Property ("fthc", "0.8778", false,
156  QObject::tr ("Partitioning factor for base and collector portion")));
157  Props.append (new Property ("rci0", "50.4277", false,
158  QObject::tr ("Internal collector resistance at low electric field")));
159  Props.append (new Property ("vlim", "0.9", false,
160  QObject::tr ("Voltage separating ohmic and saturation velocity regime")));
161  Props.append (new Property ("vces", "0.01", false,
162  QObject::tr ("Internal C-E saturation voltage")));
163  Props.append (new Property ("vpt", "10", false,
164  QObject::tr ("Collector punch-through voltage")));
165  Props.append (new Property ("tr", "1.0E-11", false,
166  QObject::tr ("Storage time for inverse operation")));
167  Props.append (new Property ("ceox", "1.71992E-15", false,
168  QObject::tr ("Total parasitic B-E capacitance")));
169  Props.append (new Property ("ccox", "4.9E-15", false,
170  QObject::tr ("Total parasitic B-C capacitance")));
171  Props.append (new Property ("alqf", "0.1288", false,
172  QObject::tr ("Factor for additional delay time of minority charge")));
173  Props.append (new Property ("alit", "1.0", false,
174  QObject::tr ("Factor for additional delay time of transfer current")));
175  Props.append (new Property ("kf", "2.83667E-9", false,
176  QObject::tr ("Flicker noise coefficient")));
177  Props.append (new Property ("af", "2.0", false,
178  QObject::tr ("Flicker noise exponent factor")));
179  Props.append (new Property ("krbi", "1.0", false,
180  QObject::tr ("Noise factor for internal base resistance")));
181  Props.append (new Property ("latb", "10.479", false,
182  QObject::tr ("Scaling factor for collector minority charge in direction of emitter width")));
183  Props.append (new Property ("latl", "0.300012", false,
184  QObject::tr ("Scaling factor for collector minority charge in direction of emitter length")));
185  Props.append (new Property ("vgb", "1.112", false,
186  QObject::tr ("Bandgap voltage extrapolated to 0 K")));
187  Props.append (new Property ("alt0", "0.0017580", false,
188  QObject::tr ("First order relative TC of parameter T0")));
189  Props.append (new Property ("kt0", "4.07E-6", false,
190  QObject::tr ("Second order relative TC of parameter T0")));
191  Props.append (new Property ("zetaci", "0.7", false,
192  QObject::tr ("Temperature exponent for RCI0")));
193  Props.append (new Property ("zetacx", "1.0", false,
194  QObject::tr ("Temperature exponent of mobility in substrate transistor transit time")));
195  Props.append (new Property ("alvs", "0.001", false,
196  QObject::tr ("Relative TC of saturation drift velocity")));
197  Props.append (new Property ("alces", "0.000125", false,
198  QObject::tr ("Relative TC of VCES")));
199  Props.append (new Property ("zetarbi", "0.0", false,
200  QObject::tr ("Temperature exponent of internal base resistance")));
201  Props.append (new Property ("zetarbx", "0.2", false,
202  QObject::tr ("Temperature exponent of external base resistance")));
203  Props.append (new Property ("zetarcx", "0.21", false,
204  QObject::tr ("Temperature exponent of external collector resistance")));
205  Props.append (new Property ("zetare", "0.7", false,
206  QObject::tr ("Temperature exponent of emitter resistance")));
207  Props.append (new Property ("alb", "0.007", false,
208  QObject::tr ("Relative TC of forward current gain for V2.1 model")));
209  Props.append (new Property ("rth", "1293.95", false,
210  QObject::tr ("Thermal resistance")));
211  Props.append (new Property ("cth", "7.22203E-11", false,
212  QObject::tr ("Thermal capacitance")));
213  Props.append (new Property ("tnom", "27.0", false,
214  QObject::tr ("Temperature at which parameters are specified")));
215  Props.append (new Property ("dt", "0.0", false,
216  QObject::tr ("Temperature change w.r.t. chip temperature for particular transistor")));
217  Props.append (new Property ("Temp", "27", false,
218  QObject::tr ("simulation temperature")));
219 
220  createSymbol ();
221  tx = x2 + 4;
222  ty = y1 + 4;
223  Model = "hicumL2V2p1";
224  Name = "T";
225 }
226 
228 {
229  hicumL2V2p1 * p = new hicumL2V2p1();
230  p->Props.getFirst()->Value = Props.getFirst()->Value;
231  p->recreate(0);
232  return p;
233 }
234 
235 Element * hicumL2V2p1::info(QString& Name, char * &BitmapFile, bool getNewOne)
236 {
237  Name = QObject::tr("HICUM L2 v2.1");
238  BitmapFile = (char *) "npnsub_therm";
239 
240  if(getNewOne) return new hicumL2V2p1();
241  return 0;
242 }
243 
245 {
246  // normal bipolar
247  Lines.append(new Line(-10,-15,-10, 15,QPen(QPen::darkBlue,3)));
248  Lines.append(new Line(-30, 0,-10, 0,QPen(QPen::darkBlue,2)));
249  Lines.append(new Line(-10, -5, 0,-15,QPen(QPen::darkBlue,2)));
250  Lines.append(new Line( 0,-15, 0,-30,QPen(QPen::darkBlue,2)));
251  Lines.append(new Line(-10, 5, 0, 15,QPen(QPen::darkBlue,2)));
252  Lines.append(new Line( 0, 15, 0, 30,QPen(QPen::darkBlue,2)));
253 
254  // substrate node
255  Lines.append(new Line( 9, 0, 30, 0,QPen(QPen::darkBlue,2)));
256  Lines.append(new Line( 9, -7, 9, 7,QPen(QPen::darkBlue,3)));
257 
258  // thermal node
259  Lines.append(new Line(-30, 20,-20, 20,QPen(QPen::darkBlue,2)));
260  Lines.append(new Line(-20, 17,-20, 23,QPen(QPen::darkBlue,2)));
261 
262  // arrow
263  Lines.append(new Line( -6, 15, 0, 15,QPen(QPen::darkBlue,2)));
264  Lines.append(new Line( 0, 9, 0, 15,QPen(QPen::darkBlue,2)));
265 
266  // H
267  Lines.append(new Line(-30,-30,-30,-24,QPen(QPen::darkBlue,1)));
268  Lines.append(new Line(-30,-27,-26,-27,QPen(QPen::darkBlue,1)));
269  Lines.append(new Line(-26,-30,-26,-24,QPen(QPen::darkBlue,1)));
270  // I
271  Lines.append(new Line(-24,-30,-24,-24,QPen(QPen::darkBlue,1)));
272  // C
273  Lines.append(new Line(-22,-30,-22,-24,QPen(QPen::darkBlue,1)));
274  Lines.append(new Line(-22,-30,-19,-30,QPen(QPen::darkBlue,1)));
275  Lines.append(new Line(-22,-24,-19,-24,QPen(QPen::darkBlue,1)));
276  // U
277  Lines.append(new Line(-17,-30,-17,-24,QPen(QPen::darkBlue,1)));
278  Lines.append(new Line(-14,-30,-14,-24,QPen(QPen::darkBlue,1)));
279  Lines.append(new Line(-17,-24,-14,-24,QPen(QPen::darkBlue,1)));
280  // M
281  Lines.append(new Line(-12,-30,-12,-24,QPen(QPen::darkBlue,1)));
282  Lines.append(new Line( -8,-30, -8,-24,QPen(QPen::darkBlue,1)));
283  Lines.append(new Line(-12,-30,-10,-28,QPen(QPen::darkBlue,1)));
284  Lines.append(new Line( -8,-30,-10,-28,QPen(QPen::darkBlue,1)));
285 
286  Ports.append(new Port( 0,-30)); // collector
287  Ports.append(new Port(-30, 0)); // base
288  Ports.append(new Port( 0, 30)); // emitter
289  Ports.append(new Port( 30, 0)); // substrate
290  Ports.append(new Port(-30, 20)); // thermal node
291 
292  x1 = -30; y1 = -30;
293  x2 = 30; y2 = 30;
294 }