Jspice3
b2set.c
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1988 Min-Chie Jeng, Hong J. Park, Thomas L. Quarles
5  1993 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #include "spice.h"
9 #include <stdio.h>
10 #include <math.h>
11 #include "bsim2def.h"
12 #include "const.h"
13 #include "sperror.h"
14 #include "util.h"
15 #include "cktext.h"
16 
17 
18 int
19 B2setup(matrix,inModel,ckt,states)
20  register SMPmatrix *matrix;
21  register GENmodel *inModel;
22  register CKTcircuit *ckt;
23  int *states;
24  /* load the B2 device structure with those pointers needed later
25  * for fast matrix loading
26  */
27 
28 {
29  register B2model *model = (B2model*)inModel;
30  register B2instance *here;
31  int error;
32  CKTnode *tmp;
33 
34  /* loop through all the B2 device models */
35  for( ; model != NULL; model = model->B2nextModel ) {
36 
37 /* Default value Processing for B2 MOSFET Models */
38  if( ! model->B2typeGiven) {
39  model->B2type = NMOS; /* NMOS */
40  }
41  if( ! model->B2vfb0Given) {
42  model->B2vfb0 = -1.0;
43  }
44  if( ! model->B2vfbLGiven) {
45  model->B2vfbL = 0.0;
46  }
47  if( ! model->B2vfbWGiven) {
48  model->B2vfbW = 0.0;
49  }
50  if( ! model->B2phi0Given) {
51  model->B2phi0 = 0.75;
52  }
53  if( ! model->B2phiLGiven) {
54  model->B2phiL = 0.0;
55  }
56  if( ! model->B2phiWGiven) {
57  model->B2phiW = 0.0;
58  }
59  if( ! model->B2k10Given) {
60  model->B2k10 = 0.8;
61  }
62  if( ! model->B2k1LGiven) {
63  model->B2k1L = 0.0;
64  }
65  if( ! model->B2k1WGiven) {
66  model->B2k1W = 0.0;
67  }
68  if( ! model->B2k20Given) {
69  model->B2k20 = 0.0;
70  }
71  if( ! model->B2k2LGiven) {
72  model->B2k2L = 0.0;
73  }
74  if( ! model->B2k2WGiven) {
75  model->B2k2W = 0.0;
76  }
77  if( ! model->B2eta00Given) {
78  model->B2eta00 = 0.0;
79  }
80  if( ! model->B2eta0LGiven) {
81  model->B2eta0L = 0.0;
82  }
83  if( ! model->B2eta0WGiven) {
84  model->B2eta0W = 0.0;
85  }
86  if( ! model->B2etaB0Given) {
87  model->B2etaB0 = 0.0;
88  }
89  if( ! model->B2etaBLGiven) {
90  model->B2etaBL = 0.0;
91  }
92  if( ! model->B2etaBWGiven) {
93  model->B2etaBW = 0.0;
94  }
95  if( ! model->B2deltaLGiven) {
96  model->B2deltaL = 0.0;
97  }
98  if( ! model->B2deltaWGiven) {
99  model->B2deltaW = 0.0;
100  }
101  if( ! model->B2ua00Given) {
102  model->B2ua00 = 0.2;
103  }
104  if( ! model->B2ua0LGiven) {
105  model->B2ua0L = 0.0;
106  }
107  if( ! model->B2ua0WGiven) {
108  model->B2ua0W = 0.0;
109  }
110  if( ! model->B2uaB0Given) {
111  model->B2uaB0 = 0.0;
112  }
113  if( ! model->B2uaBLGiven) {
114  model->B2uaBL = 0.0;
115  }
116  if( ! model->B2uaBWGiven) {
117  model->B2uaBW = 0.0;
118  }
119  if( ! model->B2ub00Given) {
120  model->B2ub00 = 0.0;
121  }
122  if( ! model->B2ub0LGiven) {
123  model->B2ub0L = 0.0;
124  }
125  if( ! model->B2ub0WGiven) {
126  model->B2ub0W = 0.0;
127  }
128  if( ! model->B2ubB0Given) {
129  model->B2ubB0 = 0.0;
130  }
131  if( ! model->B2ubBLGiven) {
132  model->B2ubBL = 0.0;
133  }
134  if( ! model->B2ubBWGiven) {
135  model->B2ubBW = 0.0;
136  }
137  if( ! model->B2u100Given) {
138  model->B2u100 = 0.1;
139  }
140  if( ! model->B2u10LGiven) {
141  model->B2u10L = 0.0;
142  }
143  if( ! model->B2u10WGiven) {
144  model->B2u10W = 0.0;
145  }
146  if( ! model->B2u1B0Given) {
147  model->B2u1B0 = 0.0;
148  }
149  if( ! model->B2u1BLGiven) {
150  model->B2u1BL = 0.0;
151  }
152  if( ! model->B2u1BWGiven) {
153  model->B2u1BW = 0.0;
154  }
155  if( ! model->B2u1D0Given) {
156  model->B2u1D0 = 0.0;
157  }
158  if( ! model->B2u1DLGiven) {
159  model->B2u1DL = 0.0;
160  }
161  if( ! model->B2u1DWGiven) {
162  model->B2u1DW = 0.0;
163  }
164  if( ! model->B2mob00Given) {
165  model->B2mob00 = 400.0;
166  }
167  if( ! model->B2mob0B0Given) {
168  model->B2mob0B0 = 0.0;
169  }
170  if( ! model->B2mob0BLGiven) {
171  model->B2mob0BL = 0.0;
172  }
173  if( ! model->B2mob0BWGiven) {
174  model->B2mob0BW = 0.0;
175  }
176  if( ! model->B2mobs00Given) {
177  model->B2mobs00 = 500.0;
178  }
179  if( ! model->B2mobs0LGiven) {
180  model->B2mobs0L = 0.0;
181  }
182  if( ! model->B2mobs0WGiven) {
183  model->B2mobs0W = 0.0;
184  }
185  if( ! model->B2mobsB0Given) {
186  model->B2mobsB0 = 0.0;
187  }
188  if( ! model->B2mobsBLGiven) {
189  model->B2mobsBL = 0.0;
190  }
191  if( ! model->B2mobsBWGiven) {
192  model->B2mobsBW = 0.0;
193  }
194  if( ! model->B2mob200Given) {
195  model->B2mob200 = 1.5;
196  }
197  if( ! model->B2mob20LGiven) {
198  model->B2mob20L = 0.0;
199  }
200  if( ! model->B2mob20WGiven) {
201  model->B2mob20W = 0.0;
202  }
203  if( ! model->B2mob2B0Given) {
204  model->B2mob2B0 = 0.0;
205  }
206  if( ! model->B2mob2BLGiven) {
207  model->B2mob2BL = 0.0;
208  }
209  if( ! model->B2mob2BWGiven) {
210  model->B2mob2BW = 0.0;
211  }
212  if( ! model->B2mob2G0Given) {
213  model->B2mob2G0 = 0.0;
214  }
215  if( ! model->B2mob2GLGiven) {
216  model->B2mob2GL = 0.0;
217  }
218  if( ! model->B2mob2GWGiven) {
219  model->B2mob2GW = 0.0;
220  }
221  if( ! model->B2mob300Given) {
222  model->B2mob300 = 10;
223  }
224  if( ! model->B2mob30LGiven) {
225  model->B2mob30L = 0.0;
226  }
227  if( ! model->B2mob30WGiven) {
228  model->B2mob30W = 0.0;
229  }
230  if( ! model->B2mob3B0Given) {
231  model->B2mob3B0 = 0.0;
232  }
233  if( ! model->B2mob3BLGiven) {
234  model->B2mob3BL = 0.0;
235  }
236  if( ! model->B2mob3BWGiven) {
237  model->B2mob3BW = 0.0;
238  }
239  if( ! model->B2mob3G0Given) {
240  model->B2mob3G0 = 0.0;
241  }
242  if( ! model->B2mob3GLGiven) {
243  model->B2mob3GL = 0.0;
244  }
245  if( ! model->B2mob3GWGiven) {
246  model->B2mob3GW = 0.0;
247  }
248  if( ! model->B2mob400Given) {
249  model->B2mob400 = 0.0;
250  }
251  if( ! model->B2mob40LGiven) {
252  model->B2mob40L = 0.0;
253  }
254  if( ! model->B2mob40WGiven) {
255  model->B2mob40W = 0.0;
256  }
257  if( ! model->B2mob4B0Given) {
258  model->B2mob4B0 = 0.0;
259  }
260  if( ! model->B2mob4BLGiven) {
261  model->B2mob4BL = 0.0;
262  }
263  if( ! model->B2mob4BWGiven) {
264  model->B2mob4BW = 0.0;
265  }
266  if( ! model->B2mob4G0Given) {
267  model->B2mob4G0 = 0.0;
268  }
269  if( ! model->B2mob4GLGiven) {
270  model->B2mob4GL = 0.0;
271  }
272  if( ! model->B2mob4GWGiven) {
273  model->B2mob4GW = 0.0;
274  }
275  if( ! model->B2n00Given) {
276  model->B2n00 = 1.4;
277  }
278  if( ! model->B2n0LGiven) {
279  model->B2n0L = 0.0;
280  }
281  if( ! model->B2n0WGiven) {
282  model->B2n0W = 0.0;
283  }
284  if( ! model->B2nB0Given) {
285  model->B2nB0 = 0.5;
286  }
287  if( ! model->B2nBLGiven) {
288  model->B2nBL = 0.0;
289  }
290  if( ! model->B2nBWGiven) {
291  model->B2nBW = 0.0;
292  }
293  if( ! model->B2nD0Given) {
294  model->B2nD0 = 0.0;
295  }
296  if( ! model->B2nDLGiven) {
297  model->B2nDL = 0.0;
298  }
299  if( ! model->B2nDWGiven) {
300  model->B2nDW = 0.0;
301  }
302  if( ! model->B2vof00Given) {
303  model->B2vof00 = 1.8;
304  }
305  if( ! model->B2vof0LGiven) {
306  model->B2vof0L = 0.0;
307  }
308  if( ! model->B2vof0WGiven) {
309  model->B2vof0W = 0.0;
310  }
311  if( ! model->B2vofB0Given) {
312  model->B2vofB0 = 0.0;
313  }
314  if( ! model->B2vofBLGiven) {
315  model->B2vofBL = 0.0;
316  }
317  if( ! model->B2vofBWGiven) {
318  model->B2vofBW = 0.0;
319  }
320  if( ! model->B2vofD0Given) {
321  model->B2vofD0 = 0.0;
322  }
323  if( ! model->B2vofDLGiven) {
324  model->B2vofDL = 0.0;
325  }
326  if( ! model->B2vofDWGiven) {
327  model->B2vofDW = 0.0;
328  }
329  if( ! model->B2ai00Given) {
330  model->B2ai00 = 0.0;
331  }
332  if( ! model->B2ai0LGiven) {
333  model->B2ai0L = 0.0;
334  }
335  if( ! model->B2ai0WGiven) {
336  model->B2ai0W = 0.0;
337  }
338  if( ! model->B2aiB0Given) {
339  model->B2aiB0 = 0.0;
340  }
341  if( ! model->B2aiBLGiven) {
342  model->B2aiBL = 0.0;
343  }
344  if( ! model->B2aiBWGiven) {
345  model->B2aiBW = 0.0;
346  }
347  if( ! model->B2bi00Given) {
348  model->B2bi00 = 0.0;
349  }
350  if( ! model->B2bi0LGiven) {
351  model->B2bi0L = 0.0;
352  }
353  if( ! model->B2bi0WGiven) {
354  model->B2bi0W = 0.0;
355  }
356  if( ! model->B2biB0Given) {
357  model->B2biB0 = 0.0;
358  }
359  if( ! model->B2biBLGiven) {
360  model->B2biBL = 0.0;
361  }
362  if( ! model->B2biBWGiven) {
363  model->B2biBW = 0.0;
364  }
365  if( ! model->B2vghigh0Given) {
366  model->B2vghigh0 = 0.2;
367  }
368  if( ! model->B2vghighLGiven) {
369  model->B2vghighL = 0.0;
370  }
371  if( ! model->B2vghighWGiven) {
372  model->B2vghighW = 0.0;
373  }
374  if( ! model->B2vglow0Given) {
375  model->B2vglow0 = -0.15;
376  }
377  if( ! model->B2vglowLGiven) {
378  model->B2vglowL = 0.0;
379  }
380  if( ! model->B2vglowWGiven) {
381  model->B2vglowW = 0.0;
382  }
383  if( ! model->B2toxGiven) {
384  model->B2tox = 0.03; /* um */
385  }
386  if( ! model->B2tempGiven) {
387  model->B2temp = 27.0;
388  }
389  if( ! model->B2vddGiven) {
390  model->B2vdd = 5.0;
391  }
392  if( ! model->B2vggGiven) {
393  model->B2vgg = 5.0;
394  }
395  if( ! model->B2vbbGiven) {
396  model->B2vbb = 5.0;
397  }
398  if( ! model->B2gateDrainOverlapCapGiven) {
399  model->B2gateDrainOverlapCap = 0.0;
400  }
401  if( ! model->B2gateSourceOverlapCapGiven) {
402  model->B2gateSourceOverlapCap = 0.0;
403  }
404  if( ! model->B2gateBulkOverlapCapGiven) {
405  model->B2gateBulkOverlapCap = 0.0;
406  }
407  if( ! model->B2channelChargePartitionFlagGiven) {
408  model->B2channelChargePartitionFlag = 0.0;
409  }
410  if( ! model->B2sheetResistanceGiven) {
411  model->B2sheetResistance = 0.0;
412  }
413  if( ! model->B2unitAreaJctCapGiven) {
414  model->B2unitAreaJctCap = 0.0;
415  }
416  if( ! model->B2unitLengthSidewallJctCapGiven) {
417  model->B2unitLengthSidewallJctCap = 0.0;
418  }
419  if( ! model->B2jctSatCurDensityGiven) {
420  model->B2jctSatCurDensity = 0.0;
421  }
422  if( ! model->B2bulkJctPotentialGiven) {
423  model->B2bulkJctPotential = 0.0;
424  }
425  if( ! model->B2sidewallJctPotentialGiven) {
426  model->B2sidewallJctPotential = 0.0;
427  }
428  if( ! model->B2bulkJctBotGradingCoeffGiven) {
429  model->B2bulkJctBotGradingCoeff = 0.0;
430  }
431  if( ! model->B2bulkJctSideGradingCoeffGiven) {
432  model->B2bulkJctSideGradingCoeff = 0.0;
433  }
434  if( ! model->B2defaultWidthGiven) {
435  model->B2defaultWidth = 10.0;
436  }
437  if( ! model->B2deltaLengthGiven) {
438  model->B2deltaLength = 0.0;
439  }
440 
441  /* loop through all the instances of the model */
442  for (here = model->B2instances; here != NULL ;
443  here=here->B2nextInstance) {
444 
445  /* allocate a chunk of the state vector */
446  here->B2states = *states;
447  *states += B2numStates;
448 
449  /* perform the parameter defaulting */
450 
451  if(!here->B2drainAreaGiven) {
452  here->B2drainArea = 0;
453  }
454  if(!here->B2drainPerimeterGiven) {
455  here->B2drainPerimeter = 0;
456  }
457  if(!here->B2drainSquaresGiven) {
458  here->B2drainSquares = 1;
459  }
460  if(!here->B2icVBSGiven) {
461  here->B2icVBS = 0;
462  }
463  if(!here->B2icVDSGiven) {
464  here->B2icVDS = 0;
465  }
466  if(!here->B2icVGSGiven) {
467  here->B2icVGS = 0;
468  }
469  if(!here->B2lGiven) {
470  here->B2l = 5e-6;
471  }
472  if(!here->B2sourceAreaGiven) {
473  here->B2sourceArea = 0;
474  }
475  if(!here->B2sourcePerimeterGiven) {
476  here->B2sourcePerimeter = 0;
477  }
478  if(!here->B2sourceSquaresGiven) {
479  here->B2sourceSquares = 1;
480  }
481  if(!here->B2vdsatGiven) {
482  here->B2vdsat = 0;
483  }
484  if(!here->B2vonGiven) {
485  here->B2von = 0;
486  }
487  if(!here->B2wGiven) {
488  here->B2w = 5e-6;
489  }
490 
491  /* process drain series resistance */
492  if( (model->B2sheetResistance != 0) &&
493  (here->B2drainSquares != 0.0 ) &&
494  (here->B2dNodePrime == 0) ) {
495  error = CKTmkVolt(ckt,&tmp,here->B2name,"drain");
496  if(error) return(error);
497  here->B2dNodePrime = tmp->number;
498  } else {
499  here->B2dNodePrime = here->B2dNode;
500  }
501 
502  /* process source series resistance */
503  if( (model->B2sheetResistance != 0) &&
504  (here->B2sourceSquares != 0.0 ) &&
505  (here->B2sNodePrime == 0) ) {
506  if(here->B2sNodePrime == 0) {
507  error = CKTmkVolt(ckt,&tmp,here->B2name,"source");
508  if(error) return(error);
509  here->B2sNodePrime = tmp->number;
510  }
511  } else {
512  here->B2sNodePrime = here->B2sNode;
513  }
514 
515 
516  /* set Sparse Matrix Pointers */
517 
518  TSTALLOC(B2DdPtr, B2dNode, B2dNode)
519  TSTALLOC(B2GgPtr, B2gNode, B2gNode)
520  TSTALLOC(B2SsPtr, B2sNode, B2sNode)
521  TSTALLOC(B2BbPtr, B2bNode, B2bNode)
522  TSTALLOC(B2DPdpPtr, B2dNodePrime, B2dNodePrime)
523  TSTALLOC(B2SPspPtr, B2sNodePrime, B2sNodePrime)
524  TSTALLOC(B2DdpPtr, B2dNode, B2dNodePrime)
525  TSTALLOC(B2GbPtr, B2gNode, B2bNode)
526  TSTALLOC(B2GdpPtr, B2gNode, B2dNodePrime)
527  TSTALLOC(B2GspPtr, B2gNode, B2sNodePrime)
528  TSTALLOC(B2SspPtr, B2sNode, B2sNodePrime)
529  TSTALLOC(B2BdpPtr, B2bNode, B2dNodePrime)
530  TSTALLOC(B2BspPtr, B2bNode, B2sNodePrime)
531  TSTALLOC(B2DPspPtr, B2dNodePrime, B2sNodePrime)
532  TSTALLOC(B2DPdPtr, B2dNodePrime, B2dNode)
533  TSTALLOC(B2BgPtr, B2bNode, B2gNode)
534  TSTALLOC(B2DPgPtr, B2dNodePrime, B2gNode)
535  TSTALLOC(B2SPgPtr, B2sNodePrime, B2gNode)
536  TSTALLOC(B2SPsPtr, B2sNodePrime, B2sNode)
537  TSTALLOC(B2DPbPtr, B2dNodePrime, B2bNode)
538  TSTALLOC(B2SPbPtr, B2sNodePrime, B2bNode)
539  TSTALLOC(B2SPdpPtr, B2sNodePrime, B2dNodePrime)
540 
541  }
542  }
543  return(OK);
544 }
unsigned B2mobsB0Given
Definition: bsim2def.h:402
double B2mob2BL
Definition: bsim2def.h:266
double B2defaultWidth
Definition: bsim2def.h:369
unsigned B2nD0Given
Definition: bsim2def.h:459
double B2mob3GW
Definition: bsim2def.h:279
double B2ua00
Definition: bsim2def.h:289
double B2mob2G0
Definition: bsim2def.h:268
unsigned B2mob20LGiven
Definition: bsim2def.h:406
double B2mob3GL
Definition: bsim2def.h:278
double B2ub0L
Definition: bsim2def.h:296
unsigned B2sidewallJctPotentialGiven
Definition: bsim2def.h:502
double B2drainPerimeter
Definition: bsim2def.h:37
double B2sourceArea
Definition: bsim2def.h:34
double B2bulkJctSideGradingCoeff
Definition: bsim2def.h:365
unsigned B2etaBLGiven
Definition: bsim2def.h:391
double B2mob3BW
Definition: bsim2def.h:276
double B2unitLengthSidewallJctCap
Definition: bsim2def.h:368
B2instance * B2instances
Definition: bsim2def.h:226
unsigned B2mob3G0Given
Definition: bsim2def.h:420
unsigned B2mob20WGiven
Definition: bsim2def.h:407
unsigned B2gateDrainOverlapCapGiven
Definition: bsim2def.h:495
unsigned B2ai0WGiven
Definition: bsim2def.h:473
unsigned B2lGiven
Definition: bsim2def.h:53
unsigned B2mob30WGiven
Definition: bsim2def.h:416
double B2mob30W
Definition: bsim2def.h:273
double B2vofDL
Definition: bsim2def.h:326
unsigned B2ai00Given
Definition: bsim2def.h:471
unsigned B2eta0WGiven
Definition: bsim2def.h:389
unsigned B2nBWGiven
Definition: bsim2def.h:458
unsigned B2ubB0Given
Definition: bsim2def.h:441
struct sBSIM2instance * B2nextInstance
Definition: bsim2def.h:19
unsigned B2mob0B0Given
Definition: bsim2def.h:396
unsigned B2drainAreaGiven
Definition: bsim2def.h:55
double B2sheetResistance
Definition: bsim2def.h:361
double B2deltaL
Definition: bsim2def.h:250
double B2vof00
Definition: bsim2def.h:319
unsigned B2mob3GWGiven
Definition: bsim2def.h:422
double B2uaBW
Definition: bsim2def.h:294
double B2mobsB0
Definition: bsim2def.h:259
unsigned B2sourceAreaGiven
Definition: bsim2def.h:56
unsigned B2vofB0Given
Definition: bsim2def.h:465
unsigned B2aiBLGiven
Definition: bsim2def.h:475
double B2etaB0
Definition: bsim2def.h:247
unsigned B2bi0WGiven
Definition: bsim2def.h:479
double B2sourcePerimeter
Definition: bsim2def.h:38
unsigned B2mob0BWGiven
Definition: bsim2def.h:398
unsigned B2vdsatGiven
Definition: bsim2def.h:67
double B2vghighW
Definition: bsim2def.h:342
unsigned B2vofBWGiven
Definition: bsim2def.h:467
double B2mob3B0
Definition: bsim2def.h:274
double B2n0L
Definition: bsim2def.h:311
unsigned B2vglowWGiven
Definition: bsim2def.h:488
unsigned B2vfbLGiven
Definition: bsim2def.h:376
double B2mobsBW
Definition: bsim2def.h:261
unsigned B2typeGiven
Definition: bsim2def.h:508
unsigned B2vfbWGiven
Definition: bsim2def.h:377
unsigned B2n00Given
Definition: bsim2def.h:453
unsigned B2mob3BLGiven
Definition: bsim2def.h:418
double B2mob20L
Definition: bsim2def.h:263
unsigned B2uaBWGiven
Definition: bsim2def.h:437
double B2ubBL
Definition: bsim2def.h:299
unsigned B2u10LGiven
Definition: bsim2def.h:445
double B2icVBS
Definition: bsim2def.h:42
double B2icVGS
Definition: bsim2def.h:44
unsigned B2mob30LGiven
Definition: bsim2def.h:415
unsigned B2k1WGiven
Definition: bsim2def.h:383
unsigned B2k10Given
Definition: bsim2def.h:381
double B2eta00
Definition: bsim2def.h:244
double B2vglowW
Definition: bsim2def.h:345
unsigned B2mob40WGiven
Definition: bsim2def.h:425
double B2ubBW
Definition: bsim2def.h:300
double B2u1D0
Definition: bsim2def.h:307
unsigned B2nDLGiven
Definition: bsim2def.h:460
#define B2numStates
Definition: bsim2def.h:160
double B2k20
Definition: bsim2def.h:241
double B2ub00
Definition: bsim2def.h:295
double B2sourceSquares
Definition: bsim2def.h:36
double B2mob30L
Definition: bsim2def.h:272
unsigned B2uaB0Given
Definition: bsim2def.h:435
double B2mob2B0
Definition: bsim2def.h:265
double B2mob300
Definition: bsim2def.h:271
double B2ai0L
Definition: bsim2def.h:329
double B2nBW
Definition: bsim2def.h:315
double B2mob40L
Definition: bsim2def.h:281
double B2von
Definition: bsim2def.h:45
unsigned B2deltaWGiven
Definition: bsim2def.h:394
unsigned B2toxGiven
Definition: bsim2def.h:489
unsigned B2ua0LGiven
Definition: bsim2def.h:433
unsigned B2mob200Given
Definition: bsim2def.h:405
unsigned B2mobs0WGiven
Definition: bsim2def.h:401
double B2deltaW
Definition: bsim2def.h:251
unsigned B2biBLGiven
Definition: bsim2def.h:481
double B2nD0
Definition: bsim2def.h:316
static double e
Definition: vectors.c:17
unsigned B2mob2B0Given
Definition: bsim2def.h:408
unsigned B2mob3GLGiven
Definition: bsim2def.h:421
double B2mob4G0
Definition: bsim2def.h:286
unsigned B2gateSourceOverlapCapGiven
Definition: bsim2def.h:494
double B2u1BL
Definition: bsim2def.h:305
double B2mob2BW
Definition: bsim2def.h:267
unsigned B2icVBSGiven
Definition: bsim2def.h:63
double B2mob0BL
Definition: bsim2def.h:254
double B2eta0W
Definition: bsim2def.h:246
unsigned B2k2LGiven
Definition: bsim2def.h:385
unsigned B2mob2GWGiven
Definition: bsim2def.h:413
unsigned B2defaultWidthGiven
Definition: bsim2def.h:506
double B2mobsBL
Definition: bsim2def.h:260
unsigned B2eta0LGiven
Definition: bsim2def.h:388
double B2mob20W
Definition: bsim2def.h:264
double B2u1B0
Definition: bsim2def.h:304
unsigned B2phiLGiven
Definition: bsim2def.h:379
unsigned B2vof00Given
Definition: bsim2def.h:462
unsigned B2u100Given
Definition: bsim2def.h:444
double B2nDL
Definition: bsim2def.h:317
unsigned B2aiB0Given
Definition: bsim2def.h:474
unsigned B2mob4BLGiven
Definition: bsim2def.h:427
int B2type
Definition: bsim2def.h:229
double B2drainArea
Definition: bsim2def.h:33
double B2ubB0
Definition: bsim2def.h:298
unsigned B2mobs00Given
Definition: bsim2def.h:399
unsigned B2mob300Given
Definition: bsim2def.h:414
unsigned B2eta00Given
Definition: bsim2def.h:387
double B2vglowL
Definition: bsim2def.h:344
unsigned B2tempGiven
Definition: bsim2def.h:490
double B2l
Definition: bsim2def.h:31
double B2bulkJctPotential
Definition: bsim2def.h:363
unsigned B2etaB0Given
Definition: bsim2def.h:390
#define TSTALLOC(ptr, first, second)
Definition: devdefs.h:124
double B2aiBL
Definition: bsim2def.h:332
unsigned B2n0WGiven
Definition: bsim2def.h:455
unsigned B2mob0BLGiven
Definition: bsim2def.h:397
unsigned B2icVDSGiven
Definition: bsim2def.h:64
double B2deltaLength
Definition: bsim2def.h:370
unsigned B2biBWGiven
Definition: bsim2def.h:482
unsigned B2mob400Given
Definition: bsim2def.h:423
unsigned B2sourcePerimeterGiven
Definition: bsim2def.h:60
unsigned B2bi0LGiven
Definition: bsim2def.h:478
unsigned B2biB0Given
Definition: bsim2def.h:480
unsigned B2sourceSquaresGiven
Definition: bsim2def.h:58
double B2u1DW
Definition: bsim2def.h:309
unsigned B2vof0WGiven
Definition: bsim2def.h:464
#define OK
Definition: iferrmsg.h:17
double B2mob3G0
Definition: bsim2def.h:277
unsigned B2nDWGiven
Definition: bsim2def.h:461
unsigned B2phiWGiven
Definition: bsim2def.h:380
double B2mob0BW
Definition: bsim2def.h:255
double B2drainSquares
Definition: bsim2def.h:35
double B2u10L
Definition: bsim2def.h:302
unsigned B2nBLGiven
Definition: bsim2def.h:457
unsigned B2mob4BWGiven
Definition: bsim2def.h:428
unsigned B2ua00Given
Definition: bsim2def.h:432
unsigned B2vofDLGiven
Definition: bsim2def.h:469
double B2biB0
Definition: bsim2def.h:337
unsigned B2bulkJctSideGradingCoeffGiven
Definition: bsim2def.h:503
unsigned B2vddGiven
Definition: bsim2def.h:491
unsigned B2vglowLGiven
Definition: bsim2def.h:487
double B2icVDS
Definition: bsim2def.h:43
unsigned B2vfb0Given
Definition: bsim2def.h:375
unsigned B2unitAreaJctCapGiven
Definition: bsim2def.h:504
#define NULL
Definition: spdefs.h:121
unsigned B2uaBLGiven
Definition: bsim2def.h:436
unsigned B2u1DWGiven
Definition: bsim2def.h:452
double B2etaBL
Definition: bsim2def.h:248
double B2vofD0
Definition: bsim2def.h:325
unsigned B2ua0WGiven
Definition: bsim2def.h:434
double B2k2L
Definition: bsim2def.h:242
double B2mob4GL
Definition: bsim2def.h:287
unsigned B2vghigh0Given
Definition: bsim2def.h:483
unsigned B2mob2BLGiven
Definition: bsim2def.h:409
double B2w
Definition: bsim2def.h:32
unsigned B2sheetResistanceGiven
Definition: bsim2def.h:498
unsigned B2bulkJctBotGradingCoeffGiven
Definition: bsim2def.h:501
unsigned B2vofDWGiven
Definition: bsim2def.h:470
double B2uaBL
Definition: bsim2def.h:293
int number
Definition: cktdefs.h:39
double B2bi0L
Definition: bsim2def.h:335
unsigned B2vonGiven
Definition: bsim2def.h:66
unsigned B2channelChargePartitionFlagGiven
Definition: bsim2def.h:497
unsigned B2mob4GLGiven
Definition: bsim2def.h:430
double B2ai00
Definition: bsim2def.h:328
unsigned B2deltaLGiven
Definition: bsim2def.h:393
double B2vof0W
Definition: bsim2def.h:321
double B2vfbL
Definition: bsim2def.h:233
double B2vglow0
Definition: bsim2def.h:343
double B2nB0
Definition: bsim2def.h:313
unsigned B2jctSatCurDensityGiven
Definition: bsim2def.h:499
double B2n0W
Definition: bsim2def.h:312
unsigned B2k20Given
Definition: bsim2def.h:384
unsigned B2vglow0Given
Definition: bsim2def.h:486
double B2aiB0
Definition: bsim2def.h:331
double B2mobs0W
Definition: bsim2def.h:258
double B2unitAreaJctCap
Definition: bsim2def.h:367
unsigned B2aiBWGiven
Definition: bsim2def.h:476
double B2phi0
Definition: bsim2def.h:235
unsigned B2etaBWGiven
Definition: bsim2def.h:392
double B2mob3BL
Definition: bsim2def.h:275
unsigned B2u1D0Given
Definition: bsim2def.h:450
unsigned B2mob2GLGiven
Definition: bsim2def.h:412
double B2ub0W
Definition: bsim2def.h:297
unsigned B2mob3BWGiven
Definition: bsim2def.h:419
double B2aiBW
Definition: bsim2def.h:333
static char model[32]
Definition: subckt.c:76
struct sBSIM2model * B2nextModel
Definition: bsim2def.h:224
unsigned B2k2WGiven
Definition: bsim2def.h:386
double B2mob4B0
Definition: bsim2def.h:283
double B2k10
Definition: bsim2def.h:238
double B2vofBW
Definition: bsim2def.h:324
unsigned B2gateBulkOverlapCapGiven
Definition: bsim2def.h:496
int B2setup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
Definition: b2set.c:19
double B2mobs00
Definition: bsim2def.h:256
double B2ua0W
Definition: bsim2def.h:291
double B2gateDrainOverlapCap
Definition: bsim2def.h:356
unsigned B2unitLengthSidewallJctCapGiven
Definition: bsim2def.h:505
double B2mob0B0
Definition: bsim2def.h:253
double B2vofDW
Definition: bsim2def.h:327
double B2n00
Definition: bsim2def.h:310
double B2vfb0
Definition: bsim2def.h:232
unsigned B2vof0LGiven
Definition: bsim2def.h:463
double B2bi0W
Definition: bsim2def.h:336
unsigned B2mobsBWGiven
Definition: bsim2def.h:404
unsigned B2k1LGiven
Definition: bsim2def.h:382
unsigned B2bi00Given
Definition: bsim2def.h:477
unsigned B2vofD0Given
Definition: bsim2def.h:468
double B2mob4BL
Definition: bsim2def.h:284
double B2vofBL
Definition: bsim2def.h:323
double B2u1BW
Definition: bsim2def.h:306
double B2jctSatCurDensity
Definition: bsim2def.h:362
double B2k1L
Definition: bsim2def.h:239
unsigned B2u1DLGiven
Definition: bsim2def.h:451
unsigned B2n0LGiven
Definition: bsim2def.h:454
unsigned B2mob00Given
Definition: bsim2def.h:395
double B2vgg
Definition: bsim2def.h:351
double B2biBL
Definition: bsim2def.h:338
double B2mob200
Definition: bsim2def.h:262
double B2k1W
Definition: bsim2def.h:240
double B2vbb
Definition: bsim2def.h:353
double B2vof0L
Definition: bsim2def.h:320
double B2vghigh0
Definition: bsim2def.h:340
double B2u10W
Definition: bsim2def.h:303
double B2phiL
Definition: bsim2def.h:236
unsigned B2u1BLGiven
Definition: bsim2def.h:448
double B2gateSourceOverlapCap
Definition: bsim2def.h:355
double B2mob2GW
Definition: bsim2def.h:270
unsigned B2vghighWGiven
Definition: bsim2def.h:485
unsigned B2mob4B0Given
Definition: bsim2def.h:426
double B2bi00
Definition: bsim2def.h:334
unsigned B2ub0WGiven
Definition: bsim2def.h:440
unsigned B2mob4G0Given
Definition: bsim2def.h:429
double B2gateBulkOverlapCap
Definition: bsim2def.h:357
unsigned B2vghighLGiven
Definition: bsim2def.h:484
unsigned B2ai0LGiven
Definition: bsim2def.h:472
double B2phiW
Definition: bsim2def.h:237
unsigned B2mob2G0Given
Definition: bsim2def.h:411
unsigned B2mob4GWGiven
Definition: bsim2def.h:431
unsigned B2ub00Given
Definition: bsim2def.h:438
unsigned B2u10WGiven
Definition: bsim2def.h:446
double B2nDW
Definition: bsim2def.h:318
double B2sidewallJctPotential
Definition: bsim2def.h:366
unsigned B2mobs0LGiven
Definition: bsim2def.h:400
double B2mob40W
Definition: bsim2def.h:282
double B2vghighL
Definition: bsim2def.h:341
unsigned B2ub0LGiven
Definition: bsim2def.h:439
unsigned B2mob3B0Given
Definition: bsim2def.h:417
double B2uaB0
Definition: bsim2def.h:292
unsigned B2u1BWGiven
Definition: bsim2def.h:449
int CKTmkVolt()
double B2etaBW
Definition: bsim2def.h:249
double B2mobs0L
Definition: bsim2def.h:257
double B2u1DL
Definition: bsim2def.h:308
unsigned B2bulkJctPotentialGiven
Definition: bsim2def.h:500
unsigned B2deltaLengthGiven
Definition: bsim2def.h:507
unsigned B2drainPerimeterGiven
Definition: bsim2def.h:59
double B2biBW
Definition: bsim2def.h:339
unsigned B2phi0Given
Definition: bsim2def.h:378
unsigned B2mob2BWGiven
Definition: bsim2def.h:410
double B2channelChargePartitionFlag
Definition: bsim2def.h:358
double B2eta0L
Definition: bsim2def.h:245
#define SMPmatrix
Definition: smpdefs.h:11
double B2mob400
Definition: bsim2def.h:280
double B2vdd
Definition: bsim2def.h:349
unsigned B2u1B0Given
Definition: bsim2def.h:447
unsigned B2icVGSGiven
Definition: bsim2def.h:65
double B2mob00
Definition: bsim2def.h:252
double B2bulkJctBotGradingCoeff
Definition: bsim2def.h:364
double B2vfbW
Definition: bsim2def.h:234
IFuid B2name
Definition: bsim2def.h:21
double B2u100
Definition: bsim2def.h:301
unsigned B2nB0Given
Definition: bsim2def.h:456
unsigned B2vggGiven
Definition: bsim2def.h:492
double B2nBL
Definition: bsim2def.h:314
double B2mob4GW
Definition: bsim2def.h:288
unsigned B2ubBLGiven
Definition: bsim2def.h:442
double B2vofB0
Definition: bsim2def.h:322
double B2temp
Definition: bsim2def.h:348
double B2mob2GL
Definition: bsim2def.h:269
#define NMOS
Definition: bsim1def.h:472
double B2ai0W
Definition: bsim2def.h:330
unsigned B2mob40LGiven
Definition: bsim2def.h:424
double B2tox
Definition: bsim2def.h:346
double B2ua0L
Definition: bsim2def.h:290
unsigned B2vofBLGiven
Definition: bsim2def.h:466
double B2k2W
Definition: bsim2def.h:243
int B2sNodePrime
Definition: bsim2def.h:29
double B2mob4BW
Definition: bsim2def.h:285
unsigned B2mobsBLGiven
Definition: bsim2def.h:403
unsigned B2vbbGiven
Definition: bsim2def.h:493
unsigned B2wGiven
Definition: bsim2def.h:54
double B2vdsat
Definition: bsim2def.h:46
unsigned B2ubBWGiven
Definition: bsim2def.h:443
int B2dNodePrime
Definition: bsim2def.h:28
unsigned B2drainSquaresGiven
Definition: bsim2def.h:57