1 /**********
2 Copyright 1999 Regents of the University of California.  All rights reserved.
3 Author: Weidong Liu and Pin Su       Feb 1999
4 Author: 1998 Samuel Fung
5 Modified by Pin Su, Wei Jin 99/9/27
6 File: b3soidddef.h
7 Modified by Paolo Nenzi 2002
8 **********/
9 
10 #ifndef B3SOIDD
11 #define B3SOIDD
12 
13 #define SOICODE
14 /*  #define BULKCODE  */
15 
16 #include "ngspice/ifsim.h"
17 #include "ngspice/gendefs.h"
18 #include "ngspice/cktdefs.h"
19 #include "ngspice/complex.h"
20 #include "ngspice/noisedef.h"
21 
22 typedef struct sB3SOIDDinstance
23 {
24 
25     struct GENinstance gen;
26 
27 #define B3SOIDDmodPtr(inst) ((struct sB3SOIDDmodel *)((inst)->gen.GENmodPtr))
28 #define B3SOIDDnextInstance(inst) ((struct sB3SOIDDinstance *)((inst)->gen.GENnextInstance))
29 #define B3SOIDDname gen.GENname
30 #define B3SOIDDstates gen.GENstate
31 
32     const int B3SOIDDdNode;
33     const int B3SOIDDgNode;
34     const int B3SOIDDsNode;
35     const int B3SOIDDeNode;
36     const int B3SOIDDbNodeExt;
37     const int B3SOIDDtempNodeExt;
38     const int B3SOIDDpNodeExt;
39     int B3SOIDDbNode;
40     int B3SOIDDtempNode;
41     int B3SOIDDpNode;
42     int B3SOIDDdNodePrime;
43     int B3SOIDDsNodePrime;
44 
45     int B3SOIDDvbsNode;
46     /* for Debug */
47     int B3SOIDDidsNode;
48     int B3SOIDDicNode;
49     int B3SOIDDibsNode;
50     int B3SOIDDibdNode;
51     int B3SOIDDiiiNode;
52     int B3SOIDDigidlNode;
53     int B3SOIDDitunNode;
54     int B3SOIDDibpNode;
55     int B3SOIDDabeffNode;
56     int B3SOIDDvbs0effNode;
57     int B3SOIDDvbseffNode;
58     int B3SOIDDxcNode;
59     int B3SOIDDcbbNode;
60     int B3SOIDDcbdNode;
61     int B3SOIDDcbeNode;
62     int B3SOIDDcbgNode;
63     int B3SOIDDqbNode;
64     int B3SOIDDqbfNode;
65     int B3SOIDDqjsNode;
66     int B3SOIDDqjdNode;
67 
68 /* clean up last */
69     int B3SOIDDgmNode;
70     int B3SOIDDgmbsNode;
71     int B3SOIDDgdsNode;
72     int B3SOIDDgmeNode;
73     int B3SOIDDqgNode;
74     int B3SOIDDqdNode;
75     int B3SOIDDqeNode;
76     int B3SOIDDiterations;
77     int B3SOIDDvbs0teffNode;
78     int B3SOIDDvthNode;
79     int B3SOIDDvgsteffNode;
80     int B3SOIDDxcsatNode;
81     int B3SOIDDqaccNode;
82     int B3SOIDDqsub0Node;
83     int B3SOIDDqsubs1Node;
84     int B3SOIDDqsubs2Node;
85     int B3SOIDDvcscvNode;
86     int B3SOIDDvdscvNode;
87     int B3SOIDDdum1Node;
88     int B3SOIDDdum2Node;
89     int B3SOIDDdum3Node;
90     int B3SOIDDdum4Node;
91     int B3SOIDDdum5Node;
92 /* end clean up last */
93 
94     double B3SOIDDphi;
95     double B3SOIDDvtm;
96     double B3SOIDDni;
97     double B3SOIDDueff;
98     double B3SOIDDthetavth;
99     double B3SOIDDvon;
100     double B3SOIDDvbsdio;
101     double B3SOIDDvdsat;
102     double B3SOIDDcgdo;
103     double B3SOIDDcgso;
104     double B3SOIDDcgeo;
105 
106     double B3SOIDDids;
107     double B3SOIDDic;
108     double B3SOIDDibs;
109     double B3SOIDDibd;
110     double B3SOIDDiii;
111     double B3SOIDDigidl;
112     double B3SOIDDitun;
113     double B3SOIDDibp;
114     double B3SOIDDabeff;
115     double B3SOIDDvbs0eff;
116     double B3SOIDDvbseff;
117     double B3SOIDDxc;
118     double B3SOIDDcbg;
119     double B3SOIDDcbb;
120     double B3SOIDDcbd;
121     double B3SOIDDqb;
122     double B3SOIDDqbf;
123     double B3SOIDDqjs;
124     double B3SOIDDqjd;
125     double B3SOIDDminIsub;
126     int    B3SOIDDfloat;
127 
128 /* clean up last */
129     double B3SOIDDdum1;
130     double B3SOIDDdum2;
131     double B3SOIDDdum3;
132     double B3SOIDDdum4;
133     double B3SOIDDdum5;
134 /* end clean up last */
135 
136     double B3SOIDDl;
137     double B3SOIDDw;
138     double B3SOIDDm;
139     double B3SOIDDdrainArea;
140     double B3SOIDDsourceArea;
141     double B3SOIDDdrainSquares;
142     double B3SOIDDsourceSquares;
143     double B3SOIDDdrainPerimeter;
144     double B3SOIDDsourcePerimeter;
145     double B3SOIDDsourceConductance;
146     double B3SOIDDdrainConductance;
147 
148     double B3SOIDDicVBS;
149     double B3SOIDDicVDS;
150     double B3SOIDDicVGS;
151     double B3SOIDDicVES;
152     double B3SOIDDicVPS;
153     int B3SOIDDbjtoff;
154     int B3SOIDDbodyMod;
155     int B3SOIDDdebugMod;
156     double B3SOIDDrth0;
157     double B3SOIDDcth0;
158     double B3SOIDDbodySquares;
159     double B3SOIDDrbodyext;
160 
161     double B3SOIDDcsbox;
162     double B3SOIDDcdbox;
163     double B3SOIDDcsmin;
164     double B3SOIDDcdmin;
165     double B3SOIDDst4;
166     double B3SOIDDdt4;
167 
168     int B3SOIDDoff;
169     int B3SOIDDmode;
170 
171     /* OP point */
172     double B3SOIDDqinv;
173     double B3SOIDDcd;
174     double B3SOIDDcjs;
175     double B3SOIDDcjd;
176     double B3SOIDDcbody;
177     double B3SOIDDcbodcon;
178     double B3SOIDDcth;
179     double B3SOIDDcsubstrate;
180 
181     double B3SOIDDgm;
182     double B3SOIDDgme;
183     double B3SOIDDcb;
184     double B3SOIDDcdrain;
185     double B3SOIDDgds;
186     double B3SOIDDgmbs;
187     double B3SOIDDgmT;
188 
189     double B3SOIDDgbbs;
190     double B3SOIDDgbgs;
191     double B3SOIDDgbds;
192     double B3SOIDDgbes;
193     double B3SOIDDgbps;
194     double B3SOIDDgbT;
195 
196     double B3SOIDDgjsd;
197     double B3SOIDDgjsb;
198     double B3SOIDDgjsg;
199     double B3SOIDDgjsT;
200 
201     double B3SOIDDgjdb;
202     double B3SOIDDgjdd;
203     double B3SOIDDgjdg;
204     double B3SOIDDgjde;
205     double B3SOIDDgjdT;
206 
207     double B3SOIDDgbpbs;
208     double B3SOIDDgbpgs;
209     double B3SOIDDgbpds;
210     double B3SOIDDgbpes;
211     double B3SOIDDgbpps;
212     double B3SOIDDgbpT;
213 
214     double B3SOIDDgtempb;
215     double B3SOIDDgtempg;
216     double B3SOIDDgtempd;
217     double B3SOIDDgtempe;
218     double B3SOIDDgtempT;
219 
220     double B3SOIDDcggb;
221     double B3SOIDDcgdb;
222     double B3SOIDDcgsb;
223     double B3SOIDDcgeb;
224     double B3SOIDDcgT;
225 
226     double B3SOIDDcbgb;
227     double B3SOIDDcbdb;
228     double B3SOIDDcbsb;
229     double B3SOIDDcbeb;
230     double B3SOIDDcbT;
231 
232     double B3SOIDDcdgb;
233     double B3SOIDDcddb;
234     double B3SOIDDcdsb;
235     double B3SOIDDcdeb;
236     double B3SOIDDcdT;
237 
238     double B3SOIDDcegb;
239     double B3SOIDDcedb;
240     double B3SOIDDcesb;
241     double B3SOIDDceeb;
242     double B3SOIDDceT;
243 
244     double B3SOIDDqse;
245     double B3SOIDDgcse;
246     double B3SOIDDqde;
247     double B3SOIDDgcde;
248 
249     struct b3soiddSizeDependParam  *pParam;
250 
251     unsigned B3SOIDDlGiven :1;
252     unsigned B3SOIDDwGiven :1;
253     unsigned B3SOIDDmGiven :1;
254     unsigned B3SOIDDdrainAreaGiven :1;
255     unsigned B3SOIDDsourceAreaGiven    :1;
256     unsigned B3SOIDDdrainSquaresGiven  :1;
257     unsigned B3SOIDDsourceSquaresGiven :1;
258     unsigned B3SOIDDdrainPerimeterGiven    :1;
259     unsigned B3SOIDDsourcePerimeterGiven   :1;
260     unsigned B3SOIDDdNodePrimeSet  :1;
261     unsigned B3SOIDDsNodePrimeSet  :1;
262     unsigned B3SOIDDicVBSGiven :1;
263     unsigned B3SOIDDicVDSGiven :1;
264     unsigned B3SOIDDicVGSGiven :1;
265     unsigned B3SOIDDicVESGiven :1;
266     unsigned B3SOIDDicVPSGiven :1;
267     unsigned B3SOIDDbjtoffGiven :1;
268     unsigned B3SOIDDdebugModGiven :1;
269     unsigned B3SOIDDrth0Given :1;
270     unsigned B3SOIDDcth0Given :1;
271     unsigned B3SOIDDbodySquaresGiven :1;
272     unsigned B3SOIDDoffGiven :1;
273 
274     double *B3SOIDDEePtr;
275     double *B3SOIDDEbPtr;
276     double *B3SOIDDBePtr;
277     double *B3SOIDDEgPtr;
278     double *B3SOIDDEdpPtr;
279     double *B3SOIDDEspPtr;
280     double *B3SOIDDTemptempPtr;
281     double *B3SOIDDTempdpPtr;
282     double *B3SOIDDTempspPtr;
283     double *B3SOIDDTempgPtr;
284     double *B3SOIDDTempbPtr;
285     double *B3SOIDDTempePtr;
286     double *B3SOIDDGtempPtr;
287     double *B3SOIDDDPtempPtr;
288     double *B3SOIDDSPtempPtr;
289     double *B3SOIDDEtempPtr;
290     double *B3SOIDDBtempPtr;
291     double *B3SOIDDPtempPtr;
292     double *B3SOIDDBpPtr;
293     double *B3SOIDDPbPtr;
294     double *B3SOIDDPpPtr;
295     double *B3SOIDDPgPtr;
296     double *B3SOIDDPdpPtr;
297     double *B3SOIDDPspPtr;
298     double *B3SOIDDPePtr;
299     double *B3SOIDDDPePtr;
300     double *B3SOIDDSPePtr;
301     double *B3SOIDDGePtr;
302     double *B3SOIDDDdPtr;
303     double *B3SOIDDGgPtr;
304     double *B3SOIDDSsPtr;
305     double *B3SOIDDBbPtr;
306     double *B3SOIDDDPdpPtr;
307     double *B3SOIDDSPspPtr;
308     double *B3SOIDDDdpPtr;
309     double *B3SOIDDGbPtr;
310     double *B3SOIDDGdpPtr;
311     double *B3SOIDDGspPtr;
312     double *B3SOIDDSspPtr;
313     double *B3SOIDDBdpPtr;
314     double *B3SOIDDBspPtr;
315     double *B3SOIDDDPspPtr;
316     double *B3SOIDDDPdPtr;
317     double *B3SOIDDBgPtr;
318     double *B3SOIDDDPgPtr;
319     double *B3SOIDDSPgPtr;
320     double *B3SOIDDSPsPtr;
321     double *B3SOIDDDPbPtr;
322     double *B3SOIDDSPbPtr;
323     double *B3SOIDDSPdpPtr;
324 
325     double *B3SOIDDVbsPtr;
326     /* Debug */
327     double *B3SOIDDIdsPtr;
328     double *B3SOIDDIcPtr;
329     double *B3SOIDDIbsPtr;
330     double *B3SOIDDIbdPtr;
331     double *B3SOIDDIiiPtr;
332     double *B3SOIDDIgidlPtr;
333     double *B3SOIDDItunPtr;
334     double *B3SOIDDIbpPtr;
335     double *B3SOIDDAbeffPtr;
336     double *B3SOIDDVbs0effPtr;
337     double *B3SOIDDVbseffPtr;
338     double *B3SOIDDXcPtr;
339     double *B3SOIDDCbbPtr;
340     double *B3SOIDDCbdPtr;
341     double *B3SOIDDCbgPtr;
342     double *B3SOIDDqbPtr;
343     double *B3SOIDDQbfPtr;
344     double *B3SOIDDQjsPtr;
345     double *B3SOIDDQjdPtr;
346 
347     /* clean up last */
348     double *B3SOIDDGmPtr;
349     double *B3SOIDDGmbsPtr;
350     double *B3SOIDDGdsPtr;
351     double *B3SOIDDGmePtr;
352     double *B3SOIDDVbs0teffPtr;
353     double *B3SOIDDVthPtr;
354     double *B3SOIDDVgsteffPtr;
355     double *B3SOIDDXcsatPtr;
356     double *B3SOIDDQaccPtr;
357     double *B3SOIDDQsub0Ptr;
358     double *B3SOIDDQsubs1Ptr;
359     double *B3SOIDDQsubs2Ptr;
360     double *B3SOIDDVdscvPtr;
361     double *B3SOIDDVcscvPtr;
362     double *B3SOIDDCbePtr;
363     double *B3SOIDDqgPtr;
364     double *B3SOIDDqdPtr;
365     double *B3SOIDDqePtr;
366     double *B3SOIDDDum1Ptr;
367     double *B3SOIDDDum2Ptr;
368     double *B3SOIDDDum3Ptr;
369     double *B3SOIDDDum4Ptr;
370     double *B3SOIDDDum5Ptr;
371     /* End clean up last */
372 
373 #define B3SOIDDvbd B3SOIDDstates+ 0
374 #define B3SOIDDvbs B3SOIDDstates+ 1
375 #define B3SOIDDvgs B3SOIDDstates+ 2
376 #define B3SOIDDvds B3SOIDDstates+ 3
377 #define B3SOIDDves B3SOIDDstates+ 4
378 #define B3SOIDDvps B3SOIDDstates+ 5
379 
380 #define B3SOIDDvg B3SOIDDstates+ 6
381 #define B3SOIDDvd B3SOIDDstates+ 7
382 #define B3SOIDDvs B3SOIDDstates+ 8
383 #define B3SOIDDvp B3SOIDDstates+ 9
384 #define B3SOIDDve B3SOIDDstates+ 10
385 #define B3SOIDDdeltemp B3SOIDDstates+ 11
386 
387 #define B3SOIDDqb B3SOIDDstates+ 12
388 #define B3SOIDDcqb B3SOIDDstates+ 13
389 #define B3SOIDDqg B3SOIDDstates+ 14
390 #define B3SOIDDcqg B3SOIDDstates+ 15
391 #define B3SOIDDqd B3SOIDDstates+ 16
392 #define B3SOIDDcqd B3SOIDDstates+ 17
393 #define B3SOIDDqe B3SOIDDstates+ 18
394 #define B3SOIDDcqe B3SOIDDstates+ 19
395 
396 #define B3SOIDDqbs  B3SOIDDstates+ 20
397 #define B3SOIDDqbd  B3SOIDDstates+ 21
398 #define B3SOIDDqbe  B3SOIDDstates+ 22
399 
400 #define B3SOIDDqth B3SOIDDstates+ 23
401 #define B3SOIDDcqth B3SOIDDstates+ 24
402 
403 #define B3SOIDDnumStates 25
404 
405 
406 /* indices to the array of B3SOIDD NOISE SOURCES */
407 
408 #define B3SOIDDRDNOIZ       0
409 #define B3SOIDDRSNOIZ       1
410 #define B3SOIDDIDNOIZ       2
411 #define B3SOIDDFLNOIZ       3
412 #define B3SOIDDFBNOIZ       4
413 #define B3SOIDDTOTNOIZ      5
414 
415 #define B3SOIDDNSRCS        6     /* the number of MOSFET(3) noise sources */
416 
417 #ifndef NONOISE
418     double B3SOIDDnVar[NSTATVARS][B3SOIDDNSRCS];
419 #else /* NONOISE */
420         double **B3SOIDDnVar;
421 #endif /* NONOISE */
422 
423 } B3SOIDDinstance ;
424 
425 struct b3soiddSizeDependParam
426 {
427     double Width;
428     double Length;
429     double Rth0;
430     double Cth0;
431 
432     double B3SOIDDcdsc;
433     double B3SOIDDcdscb;
434     double B3SOIDDcdscd;
435     double B3SOIDDcit;
436     double B3SOIDDnfactor;
437     double B3SOIDDvsat;
438     double B3SOIDDat;
439     double B3SOIDDa0;
440     double B3SOIDDags;
441     double B3SOIDDa1;
442     double B3SOIDDa2;
443     double B3SOIDDketa;
444     double B3SOIDDnpeak;
445     double B3SOIDDnsub;
446     double B3SOIDDngate;
447     double B3SOIDDgamma1;
448     double B3SOIDDgamma2;
449     double B3SOIDDvbx;
450     double B3SOIDDvbi;
451     double B3SOIDDvbm;
452     double B3SOIDDvbsc;
453     double B3SOIDDxt;
454     double B3SOIDDphi;
455     double B3SOIDDlitl;
456     double B3SOIDDk1;
457     double B3SOIDDkt1;
458     double B3SOIDDkt1l;
459     double B3SOIDDkt2;
460     double B3SOIDDk2;
461     double B3SOIDDk3;
462     double B3SOIDDk3b;
463     double B3SOIDDw0;
464     double B3SOIDDnlx;
465     double B3SOIDDdvt0;
466     double B3SOIDDdvt1;
467     double B3SOIDDdvt2;
468     double B3SOIDDdvt0w;
469     double B3SOIDDdvt1w;
470     double B3SOIDDdvt2w;
471     double B3SOIDDdrout;
472     double B3SOIDDdsub;
473     double B3SOIDDvth0;
474     double B3SOIDDua;
475     double B3SOIDDua1;
476     double B3SOIDDub;
477     double B3SOIDDub1;
478     double B3SOIDDuc;
479     double B3SOIDDuc1;
480     double B3SOIDDu0;
481     double B3SOIDDute;
482     double B3SOIDDvoff;
483     double B3SOIDDvfb;
484     double B3SOIDDuatemp;
485     double B3SOIDDubtemp;
486     double B3SOIDDuctemp;
487     double B3SOIDDrbody;
488     double B3SOIDDrth;
489     double B3SOIDDcth;
490     double B3SOIDDrds0denom;
491     double B3SOIDDvfbb;
492     double B3SOIDDjbjt;
493     double B3SOIDDjdif;
494     double B3SOIDDjrec;
495     double B3SOIDDjtun;
496     double B3SOIDDcsesw;
497     double B3SOIDDcdesw;
498 
499    /* Added */
500     double B3SOIDDsdt1;
501     double B3SOIDDst2;
502     double B3SOIDDst3;
503     double B3SOIDDdt2;
504     double B3SOIDDdt3;
505   /* Added */
506 
507     double B3SOIDDdelta;
508     double B3SOIDDrdsw;
509     double B3SOIDDrds0;
510     double B3SOIDDprwg;
511     double B3SOIDDprwb;
512     double B3SOIDDprt;
513     double B3SOIDDeta0;
514     double B3SOIDDetab;
515     double B3SOIDDpclm;
516     double B3SOIDDpdibl1;
517     double B3SOIDDpdibl2;
518     double B3SOIDDpdiblb;
519     double B3SOIDDpvag;
520     double B3SOIDDwr;
521     double B3SOIDDdwg;
522     double B3SOIDDdwb;
523     double B3SOIDDb0;
524     double B3SOIDDb1;
525     double B3SOIDDalpha0;
526     double B3SOIDDalpha1;
527     double B3SOIDDbeta0;
528 
529 
530     /* CV model */
531     double B3SOIDDcgsl;
532     double B3SOIDDcgdl;
533     double B3SOIDDckappa;
534     double B3SOIDDcf;
535     double B3SOIDDclc;
536     double B3SOIDDcle;
537 
538 /* Added for binning - START0 */
539     double B3SOIDDvbsa;
540     double B3SOIDDdelp;
541     double B3SOIDDkb1;
542     double B3SOIDDkb3;
543     double B3SOIDDdvbd0;
544     double B3SOIDDdvbd1;
545     double B3SOIDDabp;
546     double B3SOIDDmxc;
547     double B3SOIDDadice0;
548     double B3SOIDDaii;
549     double B3SOIDDbii;
550     double B3SOIDDcii;
551     double B3SOIDDdii;
552     double B3SOIDDagidl;
553     double B3SOIDDbgidl;
554     double B3SOIDDngidl;
555     double B3SOIDDntun;
556     double B3SOIDDndiode;
557     double B3SOIDDisbjt;
558     double B3SOIDDisdif;
559     double B3SOIDDisrec;
560     double B3SOIDDistun;
561     double B3SOIDDedl;
562     double B3SOIDDkbjt1;
563     double B3SOIDDvsdfb;
564     double B3SOIDDvsdth;
565 /* Added for binning - END0 */
566 
567 /* Pre-calculated constants */
568 
569     double B3SOIDDdw;
570     double B3SOIDDdl;
571     double B3SOIDDleff;
572     double B3SOIDDweff;
573 
574     double B3SOIDDdwc;
575     double B3SOIDDdlc;
576     double B3SOIDDleffCV;
577     double B3SOIDDweffCV;
578     double B3SOIDDabulkCVfactor;
579     double B3SOIDDcgso;
580     double B3SOIDDcgdo;
581     double B3SOIDDcgeo;
582 
583     double B3SOIDDu0temp;
584     double B3SOIDDvsattemp;
585     double B3SOIDDsqrtPhi;
586     double B3SOIDDphis3;
587     double B3SOIDDXdep0;
588     double B3SOIDDsqrtXdep0;
589     double B3SOIDDtheta0vb0;
590     double B3SOIDDthetaRout;
591 
592     double B3SOIDDcof1;
593     double B3SOIDDcof2;
594     double B3SOIDDcof3;
595     double B3SOIDDcof4;
596     double B3SOIDDcdep0;
597     struct b3soiddSizeDependParam  *pNext;
598 };
599 
600 
601 typedef struct sB3SOIDDmodel
602 {
603 
604     struct GENmodel gen;
605 
606 #define B3SOIDDmodType gen.GENmodType
607 #define B3SOIDDnextModel(inst) ((struct sB3SOIDDmodel *)((inst)->gen.GENnextModel))
608 #define B3SOIDDinstances(inst) ((B3SOIDDinstance *)((inst)->gen.GENinstances))
609 #define B3SOIDDmodName gen.GENmodName
610 
611     int B3SOIDDtype;
612 
613     int    B3SOIDDmobMod;
614     int    B3SOIDDcapMod;
615     int    B3SOIDDnoiMod;
616     int    B3SOIDDshMod;
617     int    B3SOIDDbinUnit;
618     int    B3SOIDDparamChk;
619     double B3SOIDDversion;
620     double B3SOIDDtox;
621     double B3SOIDDcdsc;
622     double B3SOIDDcdscb;
623     double B3SOIDDcdscd;
624     double B3SOIDDcit;
625     double B3SOIDDnfactor;
626     double B3SOIDDvsat;
627     double B3SOIDDat;
628     double B3SOIDDa0;
629     double B3SOIDDags;
630     double B3SOIDDa1;
631     double B3SOIDDa2;
632     double B3SOIDDketa;
633     double B3SOIDDnsub;
634     double B3SOIDDnpeak;
635     double B3SOIDDngate;
636     double B3SOIDDgamma1;
637     double B3SOIDDgamma2;
638     double B3SOIDDvbx;
639     double B3SOIDDvbm;
640     double B3SOIDDxt;
641     double B3SOIDDk1;
642     double B3SOIDDkt1;
643     double B3SOIDDkt1l;
644     double B3SOIDDkt2;
645     double B3SOIDDk2;
646     double B3SOIDDk3;
647     double B3SOIDDk3b;
648     double B3SOIDDw0;
649     double B3SOIDDnlx;
650     double B3SOIDDdvt0;
651     double B3SOIDDdvt1;
652     double B3SOIDDdvt2;
653     double B3SOIDDdvt0w;
654     double B3SOIDDdvt1w;
655     double B3SOIDDdvt2w;
656     double B3SOIDDdrout;
657     double B3SOIDDdsub;
658     double B3SOIDDvth0;
659     double B3SOIDDua;
660     double B3SOIDDua1;
661     double B3SOIDDub;
662     double B3SOIDDub1;
663     double B3SOIDDuc;
664     double B3SOIDDuc1;
665     double B3SOIDDu0;
666     double B3SOIDDute;
667     double B3SOIDDvoff;
668     double B3SOIDDdelta;
669     double B3SOIDDrdsw;
670     double B3SOIDDprwg;
671     double B3SOIDDprwb;
672     double B3SOIDDprt;
673     double B3SOIDDeta0;
674     double B3SOIDDetab;
675     double B3SOIDDpclm;
676     double B3SOIDDpdibl1;
677     double B3SOIDDpdibl2;
678     double B3SOIDDpdiblb;
679     double B3SOIDDpvag;
680     double B3SOIDDwr;
681     double B3SOIDDdwg;
682     double B3SOIDDdwb;
683     double B3SOIDDb0;
684     double B3SOIDDb1;
685     double B3SOIDDalpha0;
686     double B3SOIDDalpha1;
687     double B3SOIDDbeta0;
688     double B3SOIDDtbox;
689     double B3SOIDDtsi;
690     double B3SOIDDxj;
691     double B3SOIDDkb1;
692     double B3SOIDDkb3;
693     double B3SOIDDdvbd0;
694     double B3SOIDDdvbd1;
695     double B3SOIDDvbsa;
696     double B3SOIDDdelp;
697     double B3SOIDDrbody;
698     double B3SOIDDrbsh;
699     double B3SOIDDadice0;
700     double B3SOIDDabp;
701     double B3SOIDDmxc;
702     double B3SOIDDrth0;
703     double B3SOIDDcth0;
704     double B3SOIDDaii;
705     double B3SOIDDbii;
706     double B3SOIDDcii;
707     double B3SOIDDdii;
708     double B3SOIDDngidl;
709     double B3SOIDDagidl;
710     double B3SOIDDbgidl;
711     double B3SOIDDndiode;
712     double B3SOIDDntun;
713     double B3SOIDDisbjt;
714     double B3SOIDDisdif;
715     double B3SOIDDisrec;
716     double B3SOIDDistun;
717     double B3SOIDDxbjt;
718     double B3SOIDDxdif;
719     double B3SOIDDxrec;
720     double B3SOIDDxtun;
721     double B3SOIDDedl;
722     double B3SOIDDkbjt1;
723     double B3SOIDDtt;
724     double B3SOIDDvsdfb;
725     double B3SOIDDvsdth;
726     double B3SOIDDcsdmin;
727     double B3SOIDDasd;
728 
729     /* CV model */
730     double B3SOIDDcgsl;
731     double B3SOIDDcgdl;
732     double B3SOIDDckappa;
733     double B3SOIDDcf;
734     double B3SOIDDclc;
735     double B3SOIDDcle;
736     double B3SOIDDdwc;
737     double B3SOIDDdlc;
738 
739     double B3SOIDDtnom;
740     double B3SOIDDcgso;
741     double B3SOIDDcgdo;
742     double B3SOIDDcgeo;
743 
744     double B3SOIDDxpart;
745     double B3SOIDDcFringOut;
746     double B3SOIDDcFringMax;
747 
748     double B3SOIDDsheetResistance;
749     double B3SOIDDbodyJctGateSideGradingCoeff;
750     double B3SOIDDGatesidewallJctPotential;
751     double B3SOIDDunitLengthGateSidewallJctCap;
752     double B3SOIDDcsdesw;
753 
754     double B3SOIDDLint;
755     double B3SOIDDLl;
756     double B3SOIDDLln;
757     double B3SOIDDLw;
758     double B3SOIDDLwn;
759     double B3SOIDDLwl;
760     double B3SOIDDLmin;
761     double B3SOIDDLmax;
762 
763     double B3SOIDDWint;
764     double B3SOIDDWl;
765     double B3SOIDDWln;
766     double B3SOIDDWw;
767     double B3SOIDDWwn;
768     double B3SOIDDWwl;
769     double B3SOIDDWmin;
770     double B3SOIDDWmax;
771 
772 /* Added for binning - START1 */
773     /* Length Dependence */
774     double B3SOIDDlnpeak;
775     double B3SOIDDlnsub;
776     double B3SOIDDlngate;
777     double B3SOIDDlvth0;
778     double B3SOIDDlk1;
779     double B3SOIDDlk2;
780     double B3SOIDDlk3;
781     double B3SOIDDlk3b;
782     double B3SOIDDlvbsa;
783     double B3SOIDDldelp;
784     double B3SOIDDlkb1;
785     double B3SOIDDlkb3;
786     double B3SOIDDldvbd0;
787     double B3SOIDDldvbd1;
788     double B3SOIDDlw0;
789     double B3SOIDDlnlx;
790     double B3SOIDDldvt0;
791     double B3SOIDDldvt1;
792     double B3SOIDDldvt2;
793     double B3SOIDDldvt0w;
794     double B3SOIDDldvt1w;
795     double B3SOIDDldvt2w;
796     double B3SOIDDlu0;
797     double B3SOIDDlua;
798     double B3SOIDDlub;
799     double B3SOIDDluc;
800     double B3SOIDDlvsat;
801     double B3SOIDDla0;
802     double B3SOIDDlags;
803     double B3SOIDDlb0;
804     double B3SOIDDlb1;
805     double B3SOIDDlketa;
806     double B3SOIDDlabp;
807     double B3SOIDDlmxc;
808     double B3SOIDDladice0;
809     double B3SOIDDla1;
810     double B3SOIDDla2;
811     double B3SOIDDlrdsw;
812     double B3SOIDDlprwb;
813     double B3SOIDDlprwg;
814     double B3SOIDDlwr;
815     double B3SOIDDlnfactor;
816     double B3SOIDDldwg;
817     double B3SOIDDldwb;
818     double B3SOIDDlvoff;
819     double B3SOIDDleta0;
820     double B3SOIDDletab;
821     double B3SOIDDldsub;
822     double B3SOIDDlcit;
823     double B3SOIDDlcdsc;
824     double B3SOIDDlcdscb;
825     double B3SOIDDlcdscd;
826     double B3SOIDDlpclm;
827     double B3SOIDDlpdibl1;
828     double B3SOIDDlpdibl2;
829     double B3SOIDDlpdiblb;
830     double B3SOIDDldrout;
831     double B3SOIDDlpvag;
832     double B3SOIDDldelta;
833     double B3SOIDDlaii;
834     double B3SOIDDlbii;
835     double B3SOIDDlcii;
836     double B3SOIDDldii;
837     double B3SOIDDlalpha0;
838     double B3SOIDDlalpha1;
839     double B3SOIDDlbeta0;
840     double B3SOIDDlagidl;
841     double B3SOIDDlbgidl;
842     double B3SOIDDlngidl;
843     double B3SOIDDlntun;
844     double B3SOIDDlndiode;
845     double B3SOIDDlisbjt;
846     double B3SOIDDlisdif;
847     double B3SOIDDlisrec;
848     double B3SOIDDlistun;
849     double B3SOIDDledl;
850     double B3SOIDDlkbjt1;
851     /* CV model */
852     double B3SOIDDlvsdfb;
853     double B3SOIDDlvsdth;
854 
855     /* Width Dependence */
856     double B3SOIDDwnpeak;
857     double B3SOIDDwnsub;
858     double B3SOIDDwngate;
859     double B3SOIDDwvth0;
860     double B3SOIDDwk1;
861     double B3SOIDDwk2;
862     double B3SOIDDwk3;
863     double B3SOIDDwk3b;
864     double B3SOIDDwvbsa;
865     double B3SOIDDwdelp;
866     double B3SOIDDwkb1;
867     double B3SOIDDwkb3;
868     double B3SOIDDwdvbd0;
869     double B3SOIDDwdvbd1;
870     double B3SOIDDww0;
871     double B3SOIDDwnlx;
872     double B3SOIDDwdvt0;
873     double B3SOIDDwdvt1;
874     double B3SOIDDwdvt2;
875     double B3SOIDDwdvt0w;
876     double B3SOIDDwdvt1w;
877     double B3SOIDDwdvt2w;
878     double B3SOIDDwu0;
879     double B3SOIDDwua;
880     double B3SOIDDwub;
881     double B3SOIDDwuc;
882     double B3SOIDDwvsat;
883     double B3SOIDDwa0;
884     double B3SOIDDwags;
885     double B3SOIDDwb0;
886     double B3SOIDDwb1;
887     double B3SOIDDwketa;
888     double B3SOIDDwabp;
889     double B3SOIDDwmxc;
890     double B3SOIDDwadice0;
891     double B3SOIDDwa1;
892     double B3SOIDDwa2;
893     double B3SOIDDwrdsw;
894     double B3SOIDDwprwb;
895     double B3SOIDDwprwg;
896     double B3SOIDDwwr;
897     double B3SOIDDwnfactor;
898     double B3SOIDDwdwg;
899     double B3SOIDDwdwb;
900     double B3SOIDDwvoff;
901     double B3SOIDDweta0;
902     double B3SOIDDwetab;
903     double B3SOIDDwdsub;
904     double B3SOIDDwcit;
905     double B3SOIDDwcdsc;
906     double B3SOIDDwcdscb;
907     double B3SOIDDwcdscd;
908     double B3SOIDDwpclm;
909     double B3SOIDDwpdibl1;
910     double B3SOIDDwpdibl2;
911     double B3SOIDDwpdiblb;
912     double B3SOIDDwdrout;
913     double B3SOIDDwpvag;
914     double B3SOIDDwdelta;
915     double B3SOIDDwaii;
916     double B3SOIDDwbii;
917     double B3SOIDDwcii;
918     double B3SOIDDwdii;
919     double B3SOIDDwalpha0;
920     double B3SOIDDwalpha1;
921     double B3SOIDDwbeta0;
922     double B3SOIDDwagidl;
923     double B3SOIDDwbgidl;
924     double B3SOIDDwngidl;
925     double B3SOIDDwntun;
926     double B3SOIDDwndiode;
927     double B3SOIDDwisbjt;
928     double B3SOIDDwisdif;
929     double B3SOIDDwisrec;
930     double B3SOIDDwistun;
931     double B3SOIDDwedl;
932     double B3SOIDDwkbjt1;
933     /* CV model */
934     double B3SOIDDwvsdfb;
935     double B3SOIDDwvsdth;
936 
937     /* Cross-term Dependence */
938     double B3SOIDDpnpeak;
939     double B3SOIDDpnsub;
940     double B3SOIDDpngate;
941     double B3SOIDDpvth0;
942     double B3SOIDDpk1;
943     double B3SOIDDpk2;
944     double B3SOIDDpk3;
945     double B3SOIDDpk3b;
946     double B3SOIDDpvbsa;
947     double B3SOIDDpdelp;
948     double B3SOIDDpkb1;
949     double B3SOIDDpkb3;
950     double B3SOIDDpdvbd0;
951     double B3SOIDDpdvbd1;
952     double B3SOIDDpw0;
953     double B3SOIDDpnlx;
954     double B3SOIDDpdvt0;
955     double B3SOIDDpdvt1;
956     double B3SOIDDpdvt2;
957     double B3SOIDDpdvt0w;
958     double B3SOIDDpdvt1w;
959     double B3SOIDDpdvt2w;
960     double B3SOIDDpu0;
961     double B3SOIDDpua;
962     double B3SOIDDpub;
963     double B3SOIDDpuc;
964     double B3SOIDDpvsat;
965     double B3SOIDDpa0;
966     double B3SOIDDpags;
967     double B3SOIDDpb0;
968     double B3SOIDDpb1;
969     double B3SOIDDpketa;
970     double B3SOIDDpabp;
971     double B3SOIDDpmxc;
972     double B3SOIDDpadice0;
973     double B3SOIDDpa1;
974     double B3SOIDDpa2;
975     double B3SOIDDprdsw;
976     double B3SOIDDpprwb;
977     double B3SOIDDpprwg;
978     double B3SOIDDpwr;
979     double B3SOIDDpnfactor;
980     double B3SOIDDpdwg;
981     double B3SOIDDpdwb;
982     double B3SOIDDpvoff;
983     double B3SOIDDpeta0;
984     double B3SOIDDpetab;
985     double B3SOIDDpdsub;
986     double B3SOIDDpcit;
987     double B3SOIDDpcdsc;
988     double B3SOIDDpcdscb;
989     double B3SOIDDpcdscd;
990     double B3SOIDDppclm;
991     double B3SOIDDppdibl1;
992     double B3SOIDDppdibl2;
993     double B3SOIDDppdiblb;
994     double B3SOIDDpdrout;
995     double B3SOIDDppvag;
996     double B3SOIDDpdelta;
997     double B3SOIDDpaii;
998     double B3SOIDDpbii;
999     double B3SOIDDpcii;
1000     double B3SOIDDpdii;
1001     double B3SOIDDpalpha0;
1002     double B3SOIDDpalpha1;
1003     double B3SOIDDpbeta0;
1004     double B3SOIDDpagidl;
1005     double B3SOIDDpbgidl;
1006     double B3SOIDDpngidl;
1007     double B3SOIDDpntun;
1008     double B3SOIDDpndiode;
1009     double B3SOIDDpisbjt;
1010     double B3SOIDDpisdif;
1011     double B3SOIDDpisrec;
1012     double B3SOIDDpistun;
1013     double B3SOIDDpedl;
1014     double B3SOIDDpkbjt1;
1015     /* CV model */
1016     double B3SOIDDpvsdfb;
1017     double B3SOIDDpvsdth;
1018 /* Added for binning - END1 */
1019 
1020 /* Pre-calculated constants */
1021     double B3SOIDDcbox;
1022     double B3SOIDDcsi;
1023     double B3SOIDDcsieff;
1024     double B3SOIDDcoxt;
1025     double B3SOIDDcboxt;
1026     double B3SOIDDcsit;
1027     double B3SOIDDnfb;
1028     double B3SOIDDadice;
1029     double B3SOIDDqsi;
1030     double B3SOIDDqsieff;
1031     double B3SOIDDeg0;
1032 
1033     /* MCJ: move to size-dependent param. */
1034     double B3SOIDDvtm;
1035     double B3SOIDDcox;
1036     double B3SOIDDcof1;
1037     double B3SOIDDcof2;
1038     double B3SOIDDcof3;
1039     double B3SOIDDcof4;
1040     double B3SOIDDvcrit;
1041     double B3SOIDDfactor1;
1042 
1043     double B3SOIDDoxideTrapDensityA;
1044     double B3SOIDDoxideTrapDensityB;
1045     double B3SOIDDoxideTrapDensityC;
1046     double B3SOIDDem;
1047     double B3SOIDDef;
1048     double B3SOIDDaf;
1049     double B3SOIDDkf;
1050     double B3SOIDDnoif;
1051 
1052     struct b3soiddSizeDependParam *pSizeDependParamKnot;
1053 
1054     /* Flags */
1055 
1056     unsigned B3SOIDDtboxGiven:1;
1057     unsigned B3SOIDDtsiGiven :1;
1058     unsigned B3SOIDDxjGiven :1;
1059     unsigned B3SOIDDkb1Given :1;
1060     unsigned B3SOIDDkb3Given :1;
1061     unsigned B3SOIDDdvbd0Given :1;
1062     unsigned B3SOIDDdvbd1Given :1;
1063     unsigned B3SOIDDvbsaGiven :1;
1064     unsigned B3SOIDDdelpGiven :1;
1065     unsigned B3SOIDDrbodyGiven :1;
1066     unsigned B3SOIDDrbshGiven :1;
1067     unsigned B3SOIDDadice0Given :1;
1068     unsigned B3SOIDDabpGiven :1;
1069     unsigned B3SOIDDmxcGiven :1;
1070     unsigned B3SOIDDrth0Given :1;
1071     unsigned B3SOIDDcth0Given :1;
1072     unsigned B3SOIDDaiiGiven :1;
1073     unsigned B3SOIDDbiiGiven :1;
1074     unsigned B3SOIDDciiGiven :1;
1075     unsigned B3SOIDDdiiGiven :1;
1076     unsigned B3SOIDDngidlGiven :1;
1077     unsigned B3SOIDDagidlGiven :1;
1078     unsigned B3SOIDDbgidlGiven :1;
1079     unsigned B3SOIDDndiodeGiven :1;
1080     unsigned B3SOIDDntunGiven :1;
1081     unsigned B3SOIDDisbjtGiven :1;
1082     unsigned B3SOIDDisdifGiven :1;
1083     unsigned B3SOIDDisrecGiven :1;
1084     unsigned B3SOIDDistunGiven :1;
1085     unsigned B3SOIDDxbjtGiven :1;
1086     unsigned B3SOIDDxdifGiven :1;
1087     unsigned B3SOIDDxrecGiven :1;
1088     unsigned B3SOIDDxtunGiven :1;
1089     unsigned B3SOIDDedlGiven :1;
1090     unsigned B3SOIDDkbjt1Given :1;
1091     unsigned B3SOIDDttGiven :1;
1092     unsigned B3SOIDDvsdfbGiven :1;
1093     unsigned B3SOIDDvsdthGiven :1;
1094     unsigned B3SOIDDasdGiven :1;
1095     unsigned B3SOIDDcsdminGiven :1;
1096 
1097     unsigned  B3SOIDDmobModGiven :1;
1098     unsigned  B3SOIDDbinUnitGiven :1;
1099     unsigned  B3SOIDDcapModGiven :1;
1100     unsigned  B3SOIDDparamChkGiven :1;
1101     unsigned  B3SOIDDnoiModGiven :1;
1102     unsigned  B3SOIDDshModGiven :1;
1103     unsigned  B3SOIDDtypeGiven   :1;
1104     unsigned  B3SOIDDtoxGiven   :1;
1105     unsigned  B3SOIDDversionGiven   :1;
1106 
1107     unsigned  B3SOIDDcdscGiven   :1;
1108     unsigned  B3SOIDDcdscbGiven   :1;
1109     unsigned  B3SOIDDcdscdGiven   :1;
1110     unsigned  B3SOIDDcitGiven   :1;
1111     unsigned  B3SOIDDnfactorGiven   :1;
1112     unsigned  B3SOIDDvsatGiven   :1;
1113     unsigned  B3SOIDDatGiven   :1;
1114     unsigned  B3SOIDDa0Given   :1;
1115     unsigned  B3SOIDDagsGiven   :1;
1116     unsigned  B3SOIDDa1Given   :1;
1117     unsigned  B3SOIDDa2Given   :1;
1118     unsigned  B3SOIDDketaGiven   :1;
1119     unsigned  B3SOIDDnsubGiven   :1;
1120     unsigned  B3SOIDDnpeakGiven   :1;
1121     unsigned  B3SOIDDngateGiven   :1;
1122     unsigned  B3SOIDDgamma1Given   :1;
1123     unsigned  B3SOIDDgamma2Given   :1;
1124     unsigned  B3SOIDDvbxGiven   :1;
1125     unsigned  B3SOIDDvbmGiven   :1;
1126     unsigned  B3SOIDDxtGiven   :1;
1127     unsigned  B3SOIDDk1Given   :1;
1128     unsigned  B3SOIDDkt1Given   :1;
1129     unsigned  B3SOIDDkt1lGiven   :1;
1130     unsigned  B3SOIDDkt2Given   :1;
1131     unsigned  B3SOIDDk2Given   :1;
1132     unsigned  B3SOIDDk3Given   :1;
1133     unsigned  B3SOIDDk3bGiven   :1;
1134     unsigned  B3SOIDDw0Given   :1;
1135     unsigned  B3SOIDDnlxGiven   :1;
1136     unsigned  B3SOIDDdvt0Given   :1;
1137     unsigned  B3SOIDDdvt1Given   :1;
1138     unsigned  B3SOIDDdvt2Given   :1;
1139     unsigned  B3SOIDDdvt0wGiven   :1;
1140     unsigned  B3SOIDDdvt1wGiven   :1;
1141     unsigned  B3SOIDDdvt2wGiven   :1;
1142     unsigned  B3SOIDDdroutGiven   :1;
1143     unsigned  B3SOIDDdsubGiven   :1;
1144     unsigned  B3SOIDDvth0Given   :1;
1145     unsigned  B3SOIDDuaGiven   :1;
1146     unsigned  B3SOIDDua1Given   :1;
1147     unsigned  B3SOIDDubGiven   :1;
1148     unsigned  B3SOIDDub1Given   :1;
1149     unsigned  B3SOIDDucGiven   :1;
1150     unsigned  B3SOIDDuc1Given   :1;
1151     unsigned  B3SOIDDu0Given   :1;
1152     unsigned  B3SOIDDuteGiven   :1;
1153     unsigned  B3SOIDDvoffGiven   :1;
1154     unsigned  B3SOIDDrdswGiven   :1;
1155     unsigned  B3SOIDDprwgGiven   :1;
1156     unsigned  B3SOIDDprwbGiven   :1;
1157     unsigned  B3SOIDDprtGiven   :1;
1158     unsigned  B3SOIDDeta0Given   :1;
1159     unsigned  B3SOIDDetabGiven   :1;
1160     unsigned  B3SOIDDpclmGiven   :1;
1161     unsigned  B3SOIDDpdibl1Given   :1;
1162     unsigned  B3SOIDDpdibl2Given   :1;
1163     unsigned  B3SOIDDpdiblbGiven   :1;
1164     unsigned  B3SOIDDpvagGiven   :1;
1165     unsigned  B3SOIDDdeltaGiven  :1;
1166     unsigned  B3SOIDDwrGiven   :1;
1167     unsigned  B3SOIDDdwgGiven   :1;
1168     unsigned  B3SOIDDdwbGiven   :1;
1169     unsigned  B3SOIDDb0Given   :1;
1170     unsigned  B3SOIDDb1Given   :1;
1171     unsigned  B3SOIDDalpha0Given   :1;
1172     unsigned  B3SOIDDalpha1Given   :1;
1173     unsigned  B3SOIDDbeta0Given   :1;
1174 
1175     /* CV model */
1176     unsigned  B3SOIDDcgslGiven   :1;
1177     unsigned  B3SOIDDcgdlGiven   :1;
1178     unsigned  B3SOIDDckappaGiven   :1;
1179     unsigned  B3SOIDDcfGiven   :1;
1180     unsigned  B3SOIDDclcGiven   :1;
1181     unsigned  B3SOIDDcleGiven   :1;
1182     unsigned  B3SOIDDdwcGiven   :1;
1183     unsigned  B3SOIDDdlcGiven   :1;
1184 
1185 /* Added for binning - START2 */
1186     /* Length Dependence */
1187     unsigned  B3SOIDDlnpeakGiven   :1;
1188     unsigned  B3SOIDDlnsubGiven   :1;
1189     unsigned  B3SOIDDlngateGiven   :1;
1190     unsigned  B3SOIDDlvth0Given   :1;
1191     unsigned  B3SOIDDlk1Given   :1;
1192     unsigned  B3SOIDDlk2Given   :1;
1193     unsigned  B3SOIDDlk3Given   :1;
1194     unsigned  B3SOIDDlk3bGiven   :1;
1195     unsigned  B3SOIDDlvbsaGiven   :1;
1196     unsigned  B3SOIDDldelpGiven   :1;
1197     unsigned  B3SOIDDlkb1Given   :1;
1198     unsigned  B3SOIDDlkb3Given   :1;
1199     unsigned  B3SOIDDldvbd0Given   :1;
1200     unsigned  B3SOIDDldvbd1Given   :1;
1201     unsigned  B3SOIDDlw0Given   :1;
1202     unsigned  B3SOIDDlnlxGiven   :1;
1203     unsigned  B3SOIDDldvt0Given   :1;
1204     unsigned  B3SOIDDldvt1Given   :1;
1205     unsigned  B3SOIDDldvt2Given   :1;
1206     unsigned  B3SOIDDldvt0wGiven   :1;
1207     unsigned  B3SOIDDldvt1wGiven   :1;
1208     unsigned  B3SOIDDldvt2wGiven   :1;
1209     unsigned  B3SOIDDlu0Given   :1;
1210     unsigned  B3SOIDDluaGiven   :1;
1211     unsigned  B3SOIDDlubGiven   :1;
1212     unsigned  B3SOIDDlucGiven   :1;
1213     unsigned  B3SOIDDlvsatGiven   :1;
1214     unsigned  B3SOIDDla0Given   :1;
1215     unsigned  B3SOIDDlagsGiven   :1;
1216     unsigned  B3SOIDDlb0Given   :1;
1217     unsigned  B3SOIDDlb1Given   :1;
1218     unsigned  B3SOIDDlketaGiven   :1;
1219     unsigned  B3SOIDDlabpGiven   :1;
1220     unsigned  B3SOIDDlmxcGiven   :1;
1221     unsigned  B3SOIDDladice0Given   :1;
1222     unsigned  B3SOIDDla1Given   :1;
1223     unsigned  B3SOIDDla2Given   :1;
1224     unsigned  B3SOIDDlrdswGiven   :1;
1225     unsigned  B3SOIDDlprwbGiven   :1;
1226     unsigned  B3SOIDDlprwgGiven   :1;
1227     unsigned  B3SOIDDlwrGiven   :1;
1228     unsigned  B3SOIDDlnfactorGiven   :1;
1229     unsigned  B3SOIDDldwgGiven   :1;
1230     unsigned  B3SOIDDldwbGiven   :1;
1231     unsigned  B3SOIDDlvoffGiven   :1;
1232     unsigned  B3SOIDDleta0Given   :1;
1233     unsigned  B3SOIDDletabGiven   :1;
1234     unsigned  B3SOIDDldsubGiven   :1;
1235     unsigned  B3SOIDDlcitGiven   :1;
1236     unsigned  B3SOIDDlcdscGiven   :1;
1237     unsigned  B3SOIDDlcdscbGiven   :1;
1238     unsigned  B3SOIDDlcdscdGiven   :1;
1239     unsigned  B3SOIDDlpclmGiven   :1;
1240     unsigned  B3SOIDDlpdibl1Given   :1;
1241     unsigned  B3SOIDDlpdibl2Given   :1;
1242     unsigned  B3SOIDDlpdiblbGiven   :1;
1243     unsigned  B3SOIDDldroutGiven   :1;
1244     unsigned  B3SOIDDlpvagGiven   :1;
1245     unsigned  B3SOIDDldeltaGiven   :1;
1246     unsigned  B3SOIDDlaiiGiven   :1;
1247     unsigned  B3SOIDDlbiiGiven   :1;
1248     unsigned  B3SOIDDlciiGiven   :1;
1249     unsigned  B3SOIDDldiiGiven   :1;
1250     unsigned  B3SOIDDlalpha0Given   :1;
1251     unsigned  B3SOIDDlalpha1Given   :1;
1252     unsigned  B3SOIDDlbeta0Given   :1;
1253     unsigned  B3SOIDDlagidlGiven   :1;
1254     unsigned  B3SOIDDlbgidlGiven   :1;
1255     unsigned  B3SOIDDlngidlGiven   :1;
1256     unsigned  B3SOIDDlntunGiven   :1;
1257     unsigned  B3SOIDDlndiodeGiven   :1;
1258     unsigned  B3SOIDDlisbjtGiven   :1;
1259     unsigned  B3SOIDDlisdifGiven   :1;
1260     unsigned  B3SOIDDlisrecGiven   :1;
1261     unsigned  B3SOIDDlistunGiven   :1;
1262     unsigned  B3SOIDDledlGiven   :1;
1263     unsigned  B3SOIDDlkbjt1Given   :1;
1264     /* CV model */
1265     unsigned  B3SOIDDlvsdfbGiven   :1;
1266     unsigned  B3SOIDDlvsdthGiven   :1;
1267 
1268     /* Width Dependence */
1269     unsigned  B3SOIDDwnpeakGiven   :1;
1270     unsigned  B3SOIDDwnsubGiven   :1;
1271     unsigned  B3SOIDDwngateGiven   :1;
1272     unsigned  B3SOIDDwvth0Given   :1;
1273     unsigned  B3SOIDDwk1Given   :1;
1274     unsigned  B3SOIDDwk2Given   :1;
1275     unsigned  B3SOIDDwk3Given   :1;
1276     unsigned  B3SOIDDwk3bGiven   :1;
1277     unsigned  B3SOIDDwvbsaGiven   :1;
1278     unsigned  B3SOIDDwdelpGiven   :1;
1279     unsigned  B3SOIDDwkb1Given   :1;
1280     unsigned  B3SOIDDwkb3Given   :1;
1281     unsigned  B3SOIDDwdvbd0Given   :1;
1282     unsigned  B3SOIDDwdvbd1Given   :1;
1283     unsigned  B3SOIDDww0Given   :1;
1284     unsigned  B3SOIDDwnlxGiven   :1;
1285     unsigned  B3SOIDDwdvt0Given   :1;
1286     unsigned  B3SOIDDwdvt1Given   :1;
1287     unsigned  B3SOIDDwdvt2Given   :1;
1288     unsigned  B3SOIDDwdvt0wGiven   :1;
1289     unsigned  B3SOIDDwdvt1wGiven   :1;
1290     unsigned  B3SOIDDwdvt2wGiven   :1;
1291     unsigned  B3SOIDDwu0Given   :1;
1292     unsigned  B3SOIDDwuaGiven   :1;
1293     unsigned  B3SOIDDwubGiven   :1;
1294     unsigned  B3SOIDDwucGiven   :1;
1295     unsigned  B3SOIDDwvsatGiven   :1;
1296     unsigned  B3SOIDDwa0Given   :1;
1297     unsigned  B3SOIDDwagsGiven   :1;
1298     unsigned  B3SOIDDwb0Given   :1;
1299     unsigned  B3SOIDDwb1Given   :1;
1300     unsigned  B3SOIDDwketaGiven   :1;
1301     unsigned  B3SOIDDwabpGiven   :1;
1302     unsigned  B3SOIDDwmxcGiven   :1;
1303     unsigned  B3SOIDDwadice0Given   :1;
1304     unsigned  B3SOIDDwa1Given   :1;
1305     unsigned  B3SOIDDwa2Given   :1;
1306     unsigned  B3SOIDDwrdswGiven   :1;
1307     unsigned  B3SOIDDwprwbGiven   :1;
1308     unsigned  B3SOIDDwprwgGiven   :1;
1309     unsigned  B3SOIDDwwrGiven   :1;
1310     unsigned  B3SOIDDwnfactorGiven   :1;
1311     unsigned  B3SOIDDwdwgGiven   :1;
1312     unsigned  B3SOIDDwdwbGiven   :1;
1313     unsigned  B3SOIDDwvoffGiven   :1;
1314     unsigned  B3SOIDDweta0Given   :1;
1315     unsigned  B3SOIDDwetabGiven   :1;
1316     unsigned  B3SOIDDwdsubGiven   :1;
1317     unsigned  B3SOIDDwcitGiven   :1;
1318     unsigned  B3SOIDDwcdscGiven   :1;
1319     unsigned  B3SOIDDwcdscbGiven   :1;
1320     unsigned  B3SOIDDwcdscdGiven   :1;
1321     unsigned  B3SOIDDwpclmGiven   :1;
1322     unsigned  B3SOIDDwpdibl1Given   :1;
1323     unsigned  B3SOIDDwpdibl2Given   :1;
1324     unsigned  B3SOIDDwpdiblbGiven   :1;
1325     unsigned  B3SOIDDwdroutGiven   :1;
1326     unsigned  B3SOIDDwpvagGiven   :1;
1327     unsigned  B3SOIDDwdeltaGiven   :1;
1328     unsigned  B3SOIDDwaiiGiven   :1;
1329     unsigned  B3SOIDDwbiiGiven   :1;
1330     unsigned  B3SOIDDwciiGiven   :1;
1331     unsigned  B3SOIDDwdiiGiven   :1;
1332     unsigned  B3SOIDDwalpha0Given   :1;
1333     unsigned  B3SOIDDwalpha1Given   :1;
1334     unsigned  B3SOIDDwbeta0Given   :1;
1335     unsigned  B3SOIDDwagidlGiven   :1;
1336     unsigned  B3SOIDDwbgidlGiven   :1;
1337     unsigned  B3SOIDDwngidlGiven   :1;
1338     unsigned  B3SOIDDwntunGiven   :1;
1339     unsigned  B3SOIDDwndiodeGiven   :1;
1340     unsigned  B3SOIDDwisbjtGiven   :1;
1341     unsigned  B3SOIDDwisdifGiven   :1;
1342     unsigned  B3SOIDDwisrecGiven   :1;
1343     unsigned  B3SOIDDwistunGiven   :1;
1344     unsigned  B3SOIDDwedlGiven   :1;
1345     unsigned  B3SOIDDwkbjt1Given   :1;
1346     /* CV model */
1347     unsigned  B3SOIDDwvsdfbGiven   :1;
1348     unsigned  B3SOIDDwvsdthGiven   :1;
1349 
1350     /* Cross-term Dependence */
1351     unsigned  B3SOIDDpnpeakGiven   :1;
1352     unsigned  B3SOIDDpnsubGiven   :1;
1353     unsigned  B3SOIDDpngateGiven   :1;
1354     unsigned  B3SOIDDpvth0Given   :1;
1355     unsigned  B3SOIDDpk1Given   :1;
1356     unsigned  B3SOIDDpk2Given   :1;
1357     unsigned  B3SOIDDpk3Given   :1;
1358     unsigned  B3SOIDDpk3bGiven   :1;
1359     unsigned  B3SOIDDpvbsaGiven   :1;
1360     unsigned  B3SOIDDpdelpGiven   :1;
1361     unsigned  B3SOIDDpkb1Given   :1;
1362     unsigned  B3SOIDDpkb3Given   :1;
1363     unsigned  B3SOIDDpdvbd0Given   :1;
1364     unsigned  B3SOIDDpdvbd1Given   :1;
1365     unsigned  B3SOIDDpw0Given   :1;
1366     unsigned  B3SOIDDpnlxGiven   :1;
1367     unsigned  B3SOIDDpdvt0Given   :1;
1368     unsigned  B3SOIDDpdvt1Given   :1;
1369     unsigned  B3SOIDDpdvt2Given   :1;
1370     unsigned  B3SOIDDpdvt0wGiven   :1;
1371     unsigned  B3SOIDDpdvt1wGiven   :1;
1372     unsigned  B3SOIDDpdvt2wGiven   :1;
1373     unsigned  B3SOIDDpu0Given   :1;
1374     unsigned  B3SOIDDpuaGiven   :1;
1375     unsigned  B3SOIDDpubGiven   :1;
1376     unsigned  B3SOIDDpucGiven   :1;
1377     unsigned  B3SOIDDpvsatGiven   :1;
1378     unsigned  B3SOIDDpa0Given   :1;
1379     unsigned  B3SOIDDpagsGiven   :1;
1380     unsigned  B3SOIDDpb0Given   :1;
1381     unsigned  B3SOIDDpb1Given   :1;
1382     unsigned  B3SOIDDpketaGiven   :1;
1383     unsigned  B3SOIDDpabpGiven   :1;
1384     unsigned  B3SOIDDpmxcGiven   :1;
1385     unsigned  B3SOIDDpadice0Given   :1;
1386     unsigned  B3SOIDDpa1Given   :1;
1387     unsigned  B3SOIDDpa2Given   :1;
1388     unsigned  B3SOIDDprdswGiven   :1;
1389     unsigned  B3SOIDDpprwbGiven   :1;
1390     unsigned  B3SOIDDpprwgGiven   :1;
1391     unsigned  B3SOIDDpwrGiven   :1;
1392     unsigned  B3SOIDDpnfactorGiven   :1;
1393     unsigned  B3SOIDDpdwgGiven   :1;
1394     unsigned  B3SOIDDpdwbGiven   :1;
1395     unsigned  B3SOIDDpvoffGiven   :1;
1396     unsigned  B3SOIDDpeta0Given   :1;
1397     unsigned  B3SOIDDpetabGiven   :1;
1398     unsigned  B3SOIDDpdsubGiven   :1;
1399     unsigned  B3SOIDDpcitGiven   :1;
1400     unsigned  B3SOIDDpcdscGiven   :1;
1401     unsigned  B3SOIDDpcdscbGiven   :1;
1402     unsigned  B3SOIDDpcdscdGiven   :1;
1403     unsigned  B3SOIDDppclmGiven   :1;
1404     unsigned  B3SOIDDppdibl1Given   :1;
1405     unsigned  B3SOIDDppdibl2Given   :1;
1406     unsigned  B3SOIDDppdiblbGiven   :1;
1407     unsigned  B3SOIDDpdroutGiven   :1;
1408     unsigned  B3SOIDDppvagGiven   :1;
1409     unsigned  B3SOIDDpdeltaGiven   :1;
1410     unsigned  B3SOIDDpaiiGiven   :1;
1411     unsigned  B3SOIDDpbiiGiven   :1;
1412     unsigned  B3SOIDDpciiGiven   :1;
1413     unsigned  B3SOIDDpdiiGiven   :1;
1414     unsigned  B3SOIDDpalpha0Given   :1;
1415     unsigned  B3SOIDDpalpha1Given   :1;
1416     unsigned  B3SOIDDpbeta0Given   :1;
1417     unsigned  B3SOIDDpagidlGiven   :1;
1418     unsigned  B3SOIDDpbgidlGiven   :1;
1419     unsigned  B3SOIDDpngidlGiven   :1;
1420     unsigned  B3SOIDDpntunGiven   :1;
1421     unsigned  B3SOIDDpndiodeGiven   :1;
1422     unsigned  B3SOIDDpisbjtGiven   :1;
1423     unsigned  B3SOIDDpisdifGiven   :1;
1424     unsigned  B3SOIDDpisrecGiven   :1;
1425     unsigned  B3SOIDDpistunGiven   :1;
1426     unsigned  B3SOIDDpedlGiven   :1;
1427     unsigned  B3SOIDDpkbjt1Given   :1;
1428     /* CV model */
1429     unsigned  B3SOIDDpvsdfbGiven   :1;
1430     unsigned  B3SOIDDpvsdthGiven   :1;
1431 /* Added for binning - END2 */
1432 
1433     unsigned  B3SOIDDuseFringeGiven   :1;
1434 
1435     unsigned  B3SOIDDtnomGiven   :1;
1436     unsigned  B3SOIDDcgsoGiven   :1;
1437     unsigned  B3SOIDDcgdoGiven   :1;
1438     unsigned  B3SOIDDcgeoGiven   :1;
1439     unsigned  B3SOIDDxpartGiven   :1;
1440     unsigned  B3SOIDDsheetResistanceGiven   :1;
1441     unsigned  B3SOIDDGatesidewallJctPotentialGiven   :1;
1442     unsigned  B3SOIDDbodyJctGateSideGradingCoeffGiven   :1;
1443     unsigned  B3SOIDDunitLengthGateSidewallJctCapGiven   :1;
1444     unsigned  B3SOIDDcsdeswGiven :1;
1445 
1446     unsigned  B3SOIDDoxideTrapDensityAGiven  :1;
1447     unsigned  B3SOIDDoxideTrapDensityBGiven  :1;
1448     unsigned  B3SOIDDoxideTrapDensityCGiven  :1;
1449     unsigned  B3SOIDDemGiven  :1;
1450     unsigned  B3SOIDDefGiven  :1;
1451     unsigned  B3SOIDDafGiven  :1;
1452     unsigned  B3SOIDDkfGiven  :1;
1453     unsigned  B3SOIDDnoifGiven  :1;
1454 
1455     unsigned  B3SOIDDLintGiven   :1;
1456     unsigned  B3SOIDDLlGiven   :1;
1457     unsigned  B3SOIDDLlnGiven   :1;
1458     unsigned  B3SOIDDLwGiven   :1;
1459     unsigned  B3SOIDDLwnGiven   :1;
1460     unsigned  B3SOIDDLwlGiven   :1;
1461     unsigned  B3SOIDDLminGiven   :1;
1462     unsigned  B3SOIDDLmaxGiven   :1;
1463 
1464     unsigned  B3SOIDDWintGiven   :1;
1465     unsigned  B3SOIDDWlGiven   :1;
1466     unsigned  B3SOIDDWlnGiven   :1;
1467     unsigned  B3SOIDDWwGiven   :1;
1468     unsigned  B3SOIDDWwnGiven   :1;
1469     unsigned  B3SOIDDWwlGiven   :1;
1470     unsigned  B3SOIDDWminGiven   :1;
1471     unsigned  B3SOIDDWmaxGiven   :1;
1472 
1473 } B3SOIDDmodel;
1474 
1475 
1476 #ifndef NMOS
1477 #define NMOS 1
1478 #define PMOS -1
1479 #endif /*NMOS*/
1480 
1481 
1482 /* device parameters */
1483 #define B3SOIDD_W 1
1484 #define B3SOIDD_L 2
1485 #define B3SOIDD_M 22
1486 #define B3SOIDD_AS 3
1487 #define B3SOIDD_AD 4
1488 #define B3SOIDD_PS 5
1489 #define B3SOIDD_PD 6
1490 #define B3SOIDD_NRS 7
1491 #define B3SOIDD_NRD 8
1492 #define B3SOIDD_OFF 9
1493 #define B3SOIDD_IC_VBS 10
1494 #define B3SOIDD_IC_VDS 11
1495 #define B3SOIDD_IC_VGS 12
1496 #define B3SOIDD_IC_VES 13
1497 #define B3SOIDD_IC_VPS 14
1498 #define B3SOIDD_BJTOFF 15
1499 #define B3SOIDD_RTH0 16
1500 #define B3SOIDD_CTH0 17
1501 #define B3SOIDD_NRB 18
1502 #define B3SOIDD_IC 19
1503 #define B3SOIDD_NQSMOD 20
1504 #define B3SOIDD_DEBUG  21
1505 
1506 /* model parameters */
1507 #define B3SOIDD_MOD_CAPMOD          101
1508 #define B3SOIDD_MOD_NQSMOD          102
1509 #define B3SOIDD_MOD_MOBMOD          103
1510 #define B3SOIDD_MOD_NOIMOD          104
1511 #define B3SOIDD_MOD_SHMOD           105
1512 #define B3SOIDD_MOD_DDMOD           106
1513 
1514 #define B3SOIDD_MOD_TOX             107
1515 
1516 
1517 
1518 #define B3SOIDD_MOD_CDSC            108
1519 #define B3SOIDD_MOD_CDSCB           109
1520 #define B3SOIDD_MOD_CIT             110
1521 #define B3SOIDD_MOD_NFACTOR         111
1522 #define B3SOIDD_MOD_XJ              112
1523 #define B3SOIDD_MOD_VSAT            113
1524 #define B3SOIDD_MOD_AT              114
1525 #define B3SOIDD_MOD_A0              115
1526 #define B3SOIDD_MOD_A1              116
1527 #define B3SOIDD_MOD_A2              117
1528 #define B3SOIDD_MOD_KETA            118
1529 #define B3SOIDD_MOD_NSUB            119
1530 #define B3SOIDD_MOD_NPEAK           120
1531 #define B3SOIDD_MOD_NGATE           121
1532 #define B3SOIDD_MOD_GAMMA1          122
1533 #define B3SOIDD_MOD_GAMMA2          123
1534 #define B3SOIDD_MOD_VBX             124
1535 #define B3SOIDD_MOD_BINUNIT         125
1536 
1537 #define B3SOIDD_MOD_VBM             126
1538 
1539 #define B3SOIDD_MOD_XT              127
1540 #define B3SOIDD_MOD_K1              129
1541 #define B3SOIDD_MOD_KT1             130
1542 #define B3SOIDD_MOD_KT1L            131
1543 #define B3SOIDD_MOD_K2              132
1544 #define B3SOIDD_MOD_KT2             133
1545 #define B3SOIDD_MOD_K3              134
1546 #define B3SOIDD_MOD_K3B             135
1547 #define B3SOIDD_MOD_W0              136
1548 #define B3SOIDD_MOD_NLX             137
1549 
1550 #define B3SOIDD_MOD_DVT0            138
1551 #define B3SOIDD_MOD_DVT1            139
1552 #define B3SOIDD_MOD_DVT2            140
1553 
1554 #define B3SOIDD_MOD_DVT0W           141
1555 #define B3SOIDD_MOD_DVT1W           142
1556 #define B3SOIDD_MOD_DVT2W           143
1557 
1558 #define B3SOIDD_MOD_DROUT           144
1559 #define B3SOIDD_MOD_DSUB            145
1560 #define B3SOIDD_MOD_VTH0            146
1561 #define B3SOIDD_MOD_UA              147
1562 #define B3SOIDD_MOD_UA1             148
1563 #define B3SOIDD_MOD_UB              149
1564 #define B3SOIDD_MOD_UB1             150
1565 #define B3SOIDD_MOD_UC              151
1566 #define B3SOIDD_MOD_UC1             152
1567 #define B3SOIDD_MOD_U0              153
1568 #define B3SOIDD_MOD_UTE             154
1569 #define B3SOIDD_MOD_VOFF            155
1570 #define B3SOIDD_MOD_DELTA           156
1571 #define B3SOIDD_MOD_RDSW            157
1572 #define B3SOIDD_MOD_PRT             158
1573 #define B3SOIDD_MOD_LDD             159
1574 #define B3SOIDD_MOD_ETA             160
1575 #define B3SOIDD_MOD_ETA0            161
1576 #define B3SOIDD_MOD_ETAB            162
1577 #define B3SOIDD_MOD_PCLM            163
1578 #define B3SOIDD_MOD_PDIBL1          164
1579 #define B3SOIDD_MOD_PDIBL2          165
1580 #define B3SOIDD_MOD_PSCBE1          166
1581 #define B3SOIDD_MOD_PSCBE2          167
1582 #define B3SOIDD_MOD_PVAG            168
1583 #define B3SOIDD_MOD_WR              169
1584 #define B3SOIDD_MOD_DWG             170
1585 #define B3SOIDD_MOD_DWB             171
1586 #define B3SOIDD_MOD_B0              172
1587 #define B3SOIDD_MOD_B1              173
1588 #define B3SOIDD_MOD_ALPHA0          174
1589 #define B3SOIDD_MOD_BETA0           175
1590 #define B3SOIDD_MOD_PDIBLB          178
1591 
1592 #define B3SOIDD_MOD_PRWG            179
1593 #define B3SOIDD_MOD_PRWB            180
1594 
1595 #define B3SOIDD_MOD_CDSCD           181
1596 #define B3SOIDD_MOD_AGS             182
1597 
1598 #define B3SOIDD_MOD_FRINGE          184
1599 #define B3SOIDD_MOD_CGSL            186
1600 #define B3SOIDD_MOD_CGDL            187
1601 #define B3SOIDD_MOD_CKAPPA          188
1602 #define B3SOIDD_MOD_CF              189
1603 #define B3SOIDD_MOD_CLC             190
1604 #define B3SOIDD_MOD_CLE             191
1605 #define B3SOIDD_MOD_PARAMCHK        192
1606 #define B3SOIDD_MOD_VERSION         193
1607 
1608 #define B3SOIDD_MOD_TBOX            195
1609 #define B3SOIDD_MOD_TSI             196
1610 #define B3SOIDD_MOD_KB1             197
1611 #define B3SOIDD_MOD_KB3             198
1612 #define B3SOIDD_MOD_DVBD0           199
1613 #define B3SOIDD_MOD_DVBD1           200
1614 #define B3SOIDD_MOD_DELP            201
1615 #define B3SOIDD_MOD_VBSA            202
1616 #define B3SOIDD_MOD_RBODY           204
1617 #define B3SOIDD_MOD_ADICE0          205
1618 #define B3SOIDD_MOD_ABP             206
1619 #define B3SOIDD_MOD_MXC             207
1620 #define B3SOIDD_MOD_RTH0            208
1621 #define B3SOIDD_MOD_CTH0            209
1622 #define B3SOIDD_MOD_AII             210
1623 #define B3SOIDD_MOD_BII             211
1624 #define B3SOIDD_MOD_CII             212
1625 #define B3SOIDD_MOD_DII             213
1626 #define B3SOIDD_MOD_ALPHA1	    214
1627 #define B3SOIDD_MOD_NGIDL           215
1628 #define B3SOIDD_MOD_AGIDL           216
1629 #define B3SOIDD_MOD_BGIDL           217
1630 #define B3SOIDD_MOD_NDIODE          218
1631 #define B3SOIDD_MOD_LDIOF           219
1632 #define B3SOIDD_MOD_LDIOR           220
1633 #define B3SOIDD_MOD_NTUN            221
1634 #define B3SOIDD_MOD_ISBJT           222
1635 #define B3SOIDD_MOD_ISDIF           223
1636 #define B3SOIDD_MOD_ISREC           224
1637 #define B3SOIDD_MOD_ISTUN           225
1638 #define B3SOIDD_MOD_XBJT            226
1639 #define B3SOIDD_MOD_XDIF            227
1640 #define B3SOIDD_MOD_XREC            228
1641 #define B3SOIDD_MOD_XTUN            229
1642 #define B3SOIDD_MOD_EDL             230
1643 #define B3SOIDD_MOD_KBJT1           231
1644 #define B3SOIDD_MOD_TT              232
1645 #define B3SOIDD_MOD_VSDTH           233
1646 #define B3SOIDD_MOD_VSDFB           234
1647 #define B3SOIDD_MOD_ASD             235
1648 #define B3SOIDD_MOD_CSDMIN          236
1649 #define B3SOIDD_MOD_RBSH            237
1650 
1651 /* Added for binning - START3 */
1652 /* Length dependence */
1653 #define B3SOIDD_MOD_LNPEAK           301
1654 #define B3SOIDD_MOD_LNSUB            302
1655 #define B3SOIDD_MOD_LNGATE           303
1656 #define B3SOIDD_MOD_LVTH0            304
1657 #define B3SOIDD_MOD_LK1              305
1658 #define B3SOIDD_MOD_LK2              306
1659 #define B3SOIDD_MOD_LK3              307
1660 #define B3SOIDD_MOD_LK3B             308
1661 #define B3SOIDD_MOD_LVBSA            309
1662 #define B3SOIDD_MOD_LDELP            310
1663 #define B3SOIDD_MOD_LKB1             311
1664 #define B3SOIDD_MOD_LKB3             312
1665 #define B3SOIDD_MOD_LDVBD0           313
1666 #define B3SOIDD_MOD_LDVBD1           314
1667 #define B3SOIDD_MOD_LW0              315
1668 #define B3SOIDD_MOD_LNLX             316
1669 #define B3SOIDD_MOD_LDVT0            317
1670 #define B3SOIDD_MOD_LDVT1            318
1671 #define B3SOIDD_MOD_LDVT2            319
1672 #define B3SOIDD_MOD_LDVT0W           320
1673 #define B3SOIDD_MOD_LDVT1W           321
1674 #define B3SOIDD_MOD_LDVT2W           322
1675 #define B3SOIDD_MOD_LU0              323
1676 #define B3SOIDD_MOD_LUA              324
1677 #define B3SOIDD_MOD_LUB              325
1678 #define B3SOIDD_MOD_LUC              326
1679 #define B3SOIDD_MOD_LVSAT            327
1680 #define B3SOIDD_MOD_LA0              328
1681 #define B3SOIDD_MOD_LAGS             329
1682 #define B3SOIDD_MOD_LB0              330
1683 #define B3SOIDD_MOD_LB1              331
1684 #define B3SOIDD_MOD_LKETA            332
1685 #define B3SOIDD_MOD_LABP             333
1686 #define B3SOIDD_MOD_LMXC             334
1687 #define B3SOIDD_MOD_LADICE0          335
1688 #define B3SOIDD_MOD_LA1              336
1689 #define B3SOIDD_MOD_LA2              337
1690 #define B3SOIDD_MOD_LRDSW            338
1691 #define B3SOIDD_MOD_LPRWB            339
1692 #define B3SOIDD_MOD_LPRWG            340
1693 #define B3SOIDD_MOD_LWR              341
1694 #define B3SOIDD_MOD_LNFACTOR         342
1695 #define B3SOIDD_MOD_LDWG             343
1696 #define B3SOIDD_MOD_LDWB             344
1697 #define B3SOIDD_MOD_LVOFF            345
1698 #define B3SOIDD_MOD_LETA0            346
1699 #define B3SOIDD_MOD_LETAB            347
1700 #define B3SOIDD_MOD_LDSUB            348
1701 #define B3SOIDD_MOD_LCIT             349
1702 #define B3SOIDD_MOD_LCDSC            350
1703 #define B3SOIDD_MOD_LCDSCB           351
1704 #define B3SOIDD_MOD_LCDSCD           352
1705 #define B3SOIDD_MOD_LPCLM            353
1706 #define B3SOIDD_MOD_LPDIBL1          354
1707 #define B3SOIDD_MOD_LPDIBL2          355
1708 #define B3SOIDD_MOD_LPDIBLB          356
1709 #define B3SOIDD_MOD_LDROUT           357
1710 #define B3SOIDD_MOD_LPVAG            358
1711 #define B3SOIDD_MOD_LDELTA           359
1712 #define B3SOIDD_MOD_LAII             360
1713 #define B3SOIDD_MOD_LBII             361
1714 #define B3SOIDD_MOD_LCII             362
1715 #define B3SOIDD_MOD_LDII             363
1716 #define B3SOIDD_MOD_LALPHA0          364
1717 #define B3SOIDD_MOD_LALPHA1          365
1718 #define B3SOIDD_MOD_LBETA0           366
1719 #define B3SOIDD_MOD_LAGIDL           367
1720 #define B3SOIDD_MOD_LBGIDL           368
1721 #define B3SOIDD_MOD_LNGIDL           369
1722 #define B3SOIDD_MOD_LNTUN            370
1723 #define B3SOIDD_MOD_LNDIODE          371
1724 #define B3SOIDD_MOD_LISBJT           372
1725 #define B3SOIDD_MOD_LISDIF           373
1726 #define B3SOIDD_MOD_LISREC           374
1727 #define B3SOIDD_MOD_LISTUN           375
1728 #define B3SOIDD_MOD_LEDL             376
1729 #define B3SOIDD_MOD_LKBJT1           377
1730 #define B3SOIDD_MOD_LVSDFB           378
1731 #define B3SOIDD_MOD_LVSDTH           379
1732 
1733 /* Width dependence */
1734 #define B3SOIDD_MOD_WNPEAK           401
1735 #define B3SOIDD_MOD_WNSUB            402
1736 #define B3SOIDD_MOD_WNGATE           403
1737 #define B3SOIDD_MOD_WVTH0            404
1738 #define B3SOIDD_MOD_WK1              405
1739 #define B3SOIDD_MOD_WK2              406
1740 #define B3SOIDD_MOD_WK3              407
1741 #define B3SOIDD_MOD_WK3B             408
1742 #define B3SOIDD_MOD_WVBSA            409
1743 #define B3SOIDD_MOD_WDELP            410
1744 #define B3SOIDD_MOD_WKB1             411
1745 #define B3SOIDD_MOD_WKB3             412
1746 #define B3SOIDD_MOD_WDVBD0           413
1747 #define B3SOIDD_MOD_WDVBD1           414
1748 #define B3SOIDD_MOD_WW0              415
1749 #define B3SOIDD_MOD_WNLX             416
1750 #define B3SOIDD_MOD_WDVT0            417
1751 #define B3SOIDD_MOD_WDVT1            418
1752 #define B3SOIDD_MOD_WDVT2            419
1753 #define B3SOIDD_MOD_WDVT0W           420
1754 #define B3SOIDD_MOD_WDVT1W           421
1755 #define B3SOIDD_MOD_WDVT2W           422
1756 #define B3SOIDD_MOD_WU0              423
1757 #define B3SOIDD_MOD_WUA              424
1758 #define B3SOIDD_MOD_WUB              425
1759 #define B3SOIDD_MOD_WUC              426
1760 #define B3SOIDD_MOD_WVSAT            427
1761 #define B3SOIDD_MOD_WA0              428
1762 #define B3SOIDD_MOD_WAGS             429
1763 #define B3SOIDD_MOD_WB0              430
1764 #define B3SOIDD_MOD_WB1              431
1765 #define B3SOIDD_MOD_WKETA            432
1766 #define B3SOIDD_MOD_WABP             433
1767 #define B3SOIDD_MOD_WMXC             434
1768 #define B3SOIDD_MOD_WADICE0          435
1769 #define B3SOIDD_MOD_WA1              436
1770 #define B3SOIDD_MOD_WA2              437
1771 #define B3SOIDD_MOD_WRDSW            438
1772 #define B3SOIDD_MOD_WPRWB            439
1773 #define B3SOIDD_MOD_WPRWG            440
1774 #define B3SOIDD_MOD_WWR              441
1775 #define B3SOIDD_MOD_WNFACTOR         442
1776 #define B3SOIDD_MOD_WDWG             443
1777 #define B3SOIDD_MOD_WDWB             444
1778 #define B3SOIDD_MOD_WVOFF            445
1779 #define B3SOIDD_MOD_WETA0            446
1780 #define B3SOIDD_MOD_WETAB            447
1781 #define B3SOIDD_MOD_WDSUB            448
1782 #define B3SOIDD_MOD_WCIT             449
1783 #define B3SOIDD_MOD_WCDSC            450
1784 #define B3SOIDD_MOD_WCDSCB           451
1785 #define B3SOIDD_MOD_WCDSCD           452
1786 #define B3SOIDD_MOD_WPCLM            453
1787 #define B3SOIDD_MOD_WPDIBL1          454
1788 #define B3SOIDD_MOD_WPDIBL2          455
1789 #define B3SOIDD_MOD_WPDIBLB          456
1790 #define B3SOIDD_MOD_WDROUT           457
1791 #define B3SOIDD_MOD_WPVAG            458
1792 #define B3SOIDD_MOD_WDELTA           459
1793 #define B3SOIDD_MOD_WAII             460
1794 #define B3SOIDD_MOD_WBII             461
1795 #define B3SOIDD_MOD_WCII             462
1796 #define B3SOIDD_MOD_WDII             463
1797 #define B3SOIDD_MOD_WALPHA0          464
1798 #define B3SOIDD_MOD_WALPHA1          465
1799 #define B3SOIDD_MOD_WBETA0           466
1800 #define B3SOIDD_MOD_WAGIDL           467
1801 #define B3SOIDD_MOD_WBGIDL           468
1802 #define B3SOIDD_MOD_WNGIDL           469
1803 #define B3SOIDD_MOD_WNTUN            470
1804 #define B3SOIDD_MOD_WNDIODE          471
1805 #define B3SOIDD_MOD_WISBJT           472
1806 #define B3SOIDD_MOD_WISDIF           473
1807 #define B3SOIDD_MOD_WISREC           474
1808 #define B3SOIDD_MOD_WISTUN           475
1809 #define B3SOIDD_MOD_WEDL             476
1810 #define B3SOIDD_MOD_WKBJT1           477
1811 #define B3SOIDD_MOD_WVSDFB           478
1812 #define B3SOIDD_MOD_WVSDTH           479
1813 
1814 /* Cross-term dependence */
1815 #define B3SOIDD_MOD_PNPEAK           501
1816 #define B3SOIDD_MOD_PNSUB            502
1817 #define B3SOIDD_MOD_PNGATE           503
1818 #define B3SOIDD_MOD_PVTH0            504
1819 #define B3SOIDD_MOD_PK1              505
1820 #define B3SOIDD_MOD_PK2              506
1821 #define B3SOIDD_MOD_PK3              507
1822 #define B3SOIDD_MOD_PK3B             508
1823 #define B3SOIDD_MOD_PVBSA            509
1824 #define B3SOIDD_MOD_PDELP            510
1825 #define B3SOIDD_MOD_PKB1             511
1826 #define B3SOIDD_MOD_PKB3             512
1827 #define B3SOIDD_MOD_PDVBD0           513
1828 #define B3SOIDD_MOD_PDVBD1           514
1829 #define B3SOIDD_MOD_PW0              515
1830 #define B3SOIDD_MOD_PNLX             516
1831 #define B3SOIDD_MOD_PDVT0            517
1832 #define B3SOIDD_MOD_PDVT1            518
1833 #define B3SOIDD_MOD_PDVT2            519
1834 #define B3SOIDD_MOD_PDVT0W           520
1835 #define B3SOIDD_MOD_PDVT1W           521
1836 #define B3SOIDD_MOD_PDVT2W           522
1837 #define B3SOIDD_MOD_PU0              523
1838 #define B3SOIDD_MOD_PUA              524
1839 #define B3SOIDD_MOD_PUB              525
1840 #define B3SOIDD_MOD_PUC              526
1841 #define B3SOIDD_MOD_PVSAT            527
1842 #define B3SOIDD_MOD_PA0              528
1843 #define B3SOIDD_MOD_PAGS             529
1844 #define B3SOIDD_MOD_PB0              530
1845 #define B3SOIDD_MOD_PB1              531
1846 #define B3SOIDD_MOD_PKETA            532
1847 #define B3SOIDD_MOD_PABP             533
1848 #define B3SOIDD_MOD_PMXC             534
1849 #define B3SOIDD_MOD_PADICE0          535
1850 #define B3SOIDD_MOD_PA1              536
1851 #define B3SOIDD_MOD_PA2              537
1852 #define B3SOIDD_MOD_PRDSW            538
1853 #define B3SOIDD_MOD_PPRWB            539
1854 #define B3SOIDD_MOD_PPRWG            540
1855 #define B3SOIDD_MOD_PWR              541
1856 #define B3SOIDD_MOD_PNFACTOR         542
1857 #define B3SOIDD_MOD_PDWG             543
1858 #define B3SOIDD_MOD_PDWB             544
1859 #define B3SOIDD_MOD_PVOFF            545
1860 #define B3SOIDD_MOD_PETA0            546
1861 #define B3SOIDD_MOD_PETAB            547
1862 #define B3SOIDD_MOD_PDSUB            548
1863 #define B3SOIDD_MOD_PCIT             549
1864 #define B3SOIDD_MOD_PCDSC            550
1865 #define B3SOIDD_MOD_PCDSCB           551
1866 #define B3SOIDD_MOD_PCDSCD           552
1867 #define B3SOIDD_MOD_PPCLM            553
1868 #define B3SOIDD_MOD_PPDIBL1          554
1869 #define B3SOIDD_MOD_PPDIBL2          555
1870 #define B3SOIDD_MOD_PPDIBLB          556
1871 #define B3SOIDD_MOD_PDROUT           557
1872 #define B3SOIDD_MOD_PPVAG            558
1873 #define B3SOIDD_MOD_PDELTA           559
1874 #define B3SOIDD_MOD_PAII             560
1875 #define B3SOIDD_MOD_PBII             561
1876 #define B3SOIDD_MOD_PCII             562
1877 #define B3SOIDD_MOD_PDII             563
1878 #define B3SOIDD_MOD_PALPHA0          564
1879 #define B3SOIDD_MOD_PALPHA1          565
1880 #define B3SOIDD_MOD_PBETA0           566
1881 #define B3SOIDD_MOD_PAGIDL           567
1882 #define B3SOIDD_MOD_PBGIDL           568
1883 #define B3SOIDD_MOD_PNGIDL           569
1884 #define B3SOIDD_MOD_PNTUN            570
1885 #define B3SOIDD_MOD_PNDIODE          571
1886 #define B3SOIDD_MOD_PISBJT           572
1887 #define B3SOIDD_MOD_PISDIF           573
1888 #define B3SOIDD_MOD_PISREC           574
1889 #define B3SOIDD_MOD_PISTUN           575
1890 #define B3SOIDD_MOD_PEDL             576
1891 #define B3SOIDD_MOD_PKBJT1           577
1892 #define B3SOIDD_MOD_PVSDFB           578
1893 #define B3SOIDD_MOD_PVSDTH           579
1894 /* Added for binning - END3 */
1895 
1896 #define B3SOIDD_MOD_TNOM             701
1897 #define B3SOIDD_MOD_CGSO             702
1898 #define B3SOIDD_MOD_CGDO             703
1899 #define B3SOIDD_MOD_CGEO             704
1900 #define B3SOIDD_MOD_XPART            705
1901 
1902 #define B3SOIDD_MOD_RSH              706
1903 #define B3SOIDD_MOD_NMOS             814
1904 #define B3SOIDD_MOD_PMOS             815
1905 
1906 #define B3SOIDD_MOD_NOIA             816
1907 #define B3SOIDD_MOD_NOIB             817
1908 #define B3SOIDD_MOD_NOIC             818
1909 
1910 #define B3SOIDD_MOD_LINT             819
1911 #define B3SOIDD_MOD_LL               820
1912 #define B3SOIDD_MOD_LLN              821
1913 #define B3SOIDD_MOD_LW               822
1914 #define B3SOIDD_MOD_LWN              823
1915 #define B3SOIDD_MOD_LWL              824
1916 
1917 #define B3SOIDD_MOD_WINT             827
1918 #define B3SOIDD_MOD_WL               828
1919 #define B3SOIDD_MOD_WLN              829
1920 #define B3SOIDD_MOD_WW               830
1921 #define B3SOIDD_MOD_WWN              831
1922 #define B3SOIDD_MOD_WWL              832
1923 
1924 #define B3SOIDD_MOD_DWC              835
1925 #define B3SOIDD_MOD_DLC              836
1926 
1927 #define B3SOIDD_MOD_EM               837
1928 #define B3SOIDD_MOD_EF               838
1929 #define B3SOIDD_MOD_AF               839
1930 #define B3SOIDD_MOD_KF               840
1931 #define B3SOIDD_MOD_NOIF             841
1932 
1933 
1934 #define B3SOIDD_MOD_PBSWG            843
1935 #define B3SOIDD_MOD_MJSWG            844
1936 #define B3SOIDD_MOD_CJSWG            845
1937 #define B3SOIDD_MOD_CSDESW           846
1938 
1939 /* device questions */
1940 #define B3SOIDD_DNODE                901
1941 #define B3SOIDD_GNODE                902
1942 #define B3SOIDD_SNODE                903
1943 #define B3SOIDD_BNODE                904
1944 #define B3SOIDD_ENODE                905
1945 #define B3SOIDD_DNODEPRIME           906
1946 #define B3SOIDD_SNODEPRIME           907
1947 #define B3SOIDD_VBD                  908
1948 #define B3SOIDD_VBS                  909
1949 #define B3SOIDD_VGS                  910
1950 #define B3SOIDD_VES                  911
1951 #define B3SOIDD_VDS                  912
1952 #define B3SOIDD_CD                   913
1953 #define B3SOIDD_CBS                  914
1954 #define B3SOIDD_CBD                  915
1955 #define B3SOIDD_GM                   916
1956 #define B3SOIDD_GDS                  917
1957 #define B3SOIDD_GMBS                 918
1958 #define B3SOIDD_GBD                  919
1959 #define B3SOIDD_GBS                  920
1960 #define B3SOIDD_QB                   921
1961 #define B3SOIDD_CQB                  922
1962 #define B3SOIDD_QG                   923
1963 #define B3SOIDD_CQG                  924
1964 #define B3SOIDD_QD                   925
1965 #define B3SOIDD_CQD                  926
1966 #define B3SOIDD_CGG                  927
1967 #define B3SOIDD_CGD                  928
1968 #define B3SOIDD_CGS                  929
1969 #define B3SOIDD_CBG                  930
1970 #define B3SOIDD_CAPBD                931
1971 #define B3SOIDD_CQBD                 932
1972 #define B3SOIDD_CAPBS                933
1973 #define B3SOIDD_CQBS                 934
1974 #define B3SOIDD_CDG                  935
1975 #define B3SOIDD_CDD                  936
1976 #define B3SOIDD_CDS                  937
1977 #define B3SOIDD_VON                  938
1978 #define B3SOIDD_VDSAT                939
1979 #define B3SOIDD_QBS                  940
1980 #define B3SOIDD_QBD                  941
1981 #define B3SOIDD_SOURCECONDUCT        942
1982 #define B3SOIDD_DRAINCONDUCT         943
1983 #define B3SOIDD_CBDB                 944
1984 #define B3SOIDD_CBSB                 945
1985 #define B3SOIDD_GMID                 946
1986 
1987 
1988 #include "b3soiddext.h"
1989 
1990 extern void B3SOIDDevaluate(double,double,double,B3SOIDDinstance*,B3SOIDDmodel*,
1991         double*,double*,double*, double*, double*, double*, double*,
1992         double*, double*, double*, double*, double*, double*, double*,
1993         double*, double*, double*, double*, CKTcircuit*);
1994 extern int B3SOIDDdebug(B3SOIDDmodel*, B3SOIDDinstance*, CKTcircuit*, int);
1995 extern int B3SOIDDcheckModel(B3SOIDDmodel*, B3SOIDDinstance*, CKTcircuit*);
1996 
1997 #endif /*B3SOIDD*/
1998 
1999