1 /***********************************************************************
2 
3  HiSIM (Hiroshima University STARC IGFET Model)
4  Copyright (C) 2014 Hiroshima University & STARC
5 
6  MODEL NAME : HiSIM_HV
7  ( VERSION : 2  SUBVERSION : 2  REVISION : 0 )
8  Model Parameter 'VERSION' : 2.20
9  FILE : hsmhvdef
10 
11  DATE : 2014.6.11
12 
13  released by
14                 Hiroshima University &
15                 Semiconductor Technology Academic Research Center (STARC)
16 ***********************************************************************/
17 
18 /**********************************************************************
19 
20 The following source code, and all copyrights, trade secrets or other
21 intellectual property rights in and to the source code in its entirety,
22 is owned by the Hiroshima University and the STARC organization.
23 
24 All users need to follow the "HISIM_HV Distribution Statement and
25 Copyright Notice" attached to HiSIM_HV model.
26 
27 -----HISIM_HV Distribution Statement and Copyright Notice--------------
28 
29 Software is distributed as is, completely without warranty or service
30 support. Hiroshima University or STARC and its employees are not liable
31 for the condition or performance of the software.
32 
33 Hiroshima University and STARC own the copyright and grant users a perpetual,
34 irrevocable, worldwide, non-exclusive, royalty-free license with respect
35 to the software as set forth below.
36 
37 Hiroshima University and STARC hereby disclaims all implied warranties.
38 
39 Hiroshima University and STARC grant the users the right to modify, copy,
40 and redistribute the software and documentation, both within the user's
41 organization and externally, subject to the following restrictions
42 
43 1. The users agree not to charge for Hiroshima University and STARC code
44 itself but may charge for additions, extensions, or support.
45 
46 2. In any product based on the software, the users agree to acknowledge
47 Hiroshima University and STARC that developed the software. This
48 acknowledgment shall appear in the product documentation.
49 
50 3. The users agree to reproduce any copyright notice which appears on
51 the software on any copy or modification of such made available
52 to others."
53 
54 Toshimasa Asahara, President, Hiroshima University
55 Mitiko Miura-Mattausch, Professor, Hiroshima University
56 Katsuhiro Shimohigashi, President&CEO, STARC
57 June 2008 (revised October 2011)
58 *************************************************************************/
59 
60 #ifndef HSMHV2
61 #define HSMHV2
62 
63 #include "ngspice/ifsim.h"
64 #include "ngspice/gendefs.h"
65 #include "ngspice/cktdefs.h"
66 #include "ngspice/complex.h"
67 #include "ngspice/noisedef.h"
68 
69 /* declarations for HiSIMHV MOSFETs */
70 
71 /* unit-converted model parameters */
72 typedef struct sHSMHV2modelMKSParam {
73   double HSMHV2_npext ;
74   double HSMHV2_vmax ;
75   double HSMHV2_ll ;
76   double HSMHV2_wl ;
77   double HSMHV2_svgsl ;
78   double HSMHV2_svgsw ;
79   double HSMHV2_svbsl ;
80   double HSMHV2_slgl ;
81   double HSMHV2_sub1l ;
82   double HSMHV2_slg ;
83   double HSMHV2_sub2l ;
84   double HSMHV2_subld2 ;
85   double HSMHV2_rd22 ;
86   double HSMHV2_rd23 ;
87   double HSMHV2_rd24 ;
88   double HSMHV2_rdtemp1 ;
89   double HSMHV2_rdtemp2 ;
90   double HSMHV2_rdvd ;
91   double HSMHV2_rdvdtemp1 ;
92   double HSMHV2_rdvdtemp2 ;
93   double HSMHV2_nsubsub ;
94   double HSMHV2_nsubpsti1 ;
95   double HSMHV2_muesti1 ;
96   double HSMHV2_wfc ;
97   double HSMHV2_glksd1 ;
98   double HSMHV2_glksd2 ;
99   double HSMHV2_glksd3 ;
100   double HSMHV2_gleak2 ;
101   double HSMHV2_gleak4 ;
102   double HSMHV2_gleak5 ;
103   double HSMHV2_gleak7 ;
104   double HSMHV2_glkb2 ;
105   double HSMHV2_fn2 ;
106   double HSMHV2_gidl1 ;
107   double HSMHV2_gidl2 ;
108   double HSMHV2_nfalp ;
109   double HSMHV2_nftrp ;
110   double HSMHV2_cit ;
111   double HSMHV2_ovslp ;
112   double HSMHV2_dly3 ;
113   double HSMHV2_rth0 ;
114   double HSMHV2_cth0 ;
115   double HSMHV2_rdrmue ;
116   double HSMHV2_rdrvmax ;
117   double HSMHV2_ndepm ;
118   double HSMHV2_depvmax ;
119 
120 } HSMHV2modelMKSParam ;
121 
122 
123 /* binning parameters */
124 typedef struct sHSMHV2binningParam {
125   double HSMHV2_vmax ;
126   double HSMHV2_bgtmp1 ;
127   double HSMHV2_bgtmp2 ;
128   double HSMHV2_eg0 ;
129   double HSMHV2_vfbover ;
130   double HSMHV2_nover ;
131   double HSMHV2_novers ;
132   double HSMHV2_wl2 ;
133   double HSMHV2_vfbc ;
134   double HSMHV2_nsubc ;
135   double HSMHV2_nsubp ;
136   double HSMHV2_scp1 ;
137   double HSMHV2_scp2 ;
138   double HSMHV2_scp3 ;
139   double HSMHV2_sc1 ;
140   double HSMHV2_sc2 ;
141   double HSMHV2_sc3 ;
142   double HSMHV2_pgd1 ;
143 //double HSMHV2_pgd3 ;
144   double HSMHV2_ndep ;
145   double HSMHV2_ninv ;
146   double HSMHV2_muecb0 ;
147   double HSMHV2_muecb1 ;
148   double HSMHV2_mueph1 ;
149   double HSMHV2_vtmp ;
150   double HSMHV2_wvth0 ;
151   double HSMHV2_muesr1 ;
152   double HSMHV2_muetmp ;
153   double HSMHV2_sub1 ;
154   double HSMHV2_sub2 ;
155   double HSMHV2_svds ;
156   double HSMHV2_svbs ;
157   double HSMHV2_svgs ;
158   double HSMHV2_fn1 ;
159   double HSMHV2_fn2 ;
160   double HSMHV2_fn3 ;
161   double HSMHV2_fvbs ;
162   double HSMHV2_nsti ;
163   double HSMHV2_wsti ;
164   double HSMHV2_scsti1 ;
165   double HSMHV2_scsti2 ;
166   double HSMHV2_vthsti ;
167   double HSMHV2_muesti1 ;
168   double HSMHV2_muesti2 ;
169   double HSMHV2_muesti3 ;
170   double HSMHV2_nsubpsti1 ;
171   double HSMHV2_nsubpsti2 ;
172   double HSMHV2_nsubpsti3 ;
173   double HSMHV2_cgso ;
174   double HSMHV2_cgdo ;
175   double HSMHV2_js0 ;
176   double HSMHV2_js0sw ;
177   double HSMHV2_nj ;
178   double HSMHV2_cisbk ;
179   double HSMHV2_clm1 ;
180   double HSMHV2_clm2 ;
181   double HSMHV2_clm3 ;
182   double HSMHV2_wfc ;
183   double HSMHV2_gidl1 ;
184   double HSMHV2_gidl2 ;
185   double HSMHV2_gleak1 ;
186   double HSMHV2_gleak2 ;
187   double HSMHV2_gleak3 ;
188   double HSMHV2_gleak6 ;
189   double HSMHV2_glksd1 ;
190   double HSMHV2_glksd2 ;
191   double HSMHV2_glkb1 ;
192   double HSMHV2_glkb2 ;
193   double HSMHV2_nftrp ;
194   double HSMHV2_nfalp ;
195   double HSMHV2_vdiffj ;
196   double HSMHV2_ibpc1 ;
197   double HSMHV2_ibpc2 ;
198   double HSMHV2_cgbo ;
199   double HSMHV2_cvdsover ;
200   double HSMHV2_falph ;
201   double HSMHV2_npext ;
202   double HSMHV2_powrat ;
203   double HSMHV2_rd ;
204   double HSMHV2_rd22 ;
205   double HSMHV2_rd23 ;
206   double HSMHV2_rd24 ;
207   double HSMHV2_rdict1 ;
208   double HSMHV2_rdov13 ;
209   double HSMHV2_rdslp1 ;
210   double HSMHV2_rdvb ;
211   double HSMHV2_rdvd ;
212   double HSMHV2_rdvg11 ;
213   double HSMHV2_rs ;
214   double HSMHV2_rth0 ;
215   double HSMHV2_vover ;
216   /*-----------SHE--------------*/
217   double HSMHV2_rth ;
218   double HSMHV2_cth ;
219   double HSMHV2_js0d;
220   double HSMHV2_js0swd;
221   double HSMHV2_njd;
222   double HSMHV2_cisbkd;
223   double HSMHV2_vdiffjd;
224   double HSMHV2_js0s;
225   double HSMHV2_js0sws;
226   double HSMHV2_njs;
227   double HSMHV2_cisbks;
228   double HSMHV2_vdiffjs;
229   /*-----------------------------*/
230 
231 } HSMHV2binningParam ;
232 
233 
234 /* unit-converted parameters for each instance */
235 typedef struct sHSMHV2hereMKSParam {
236   double HSMHV2_vmax ;
237   double HSMHV2_subld2 ;
238   double HSMHV2_ndep ;
239   double HSMHV2_ninv ;
240   double HSMHV2_nsubc ;
241   double HSMHV2_nsubcdfm ;
242   double HSMHV2_nsubp ;
243   double HSMHV2_nsubpsti1 ;
244   double HSMHV2_muesti1 ;
245   double HSMHV2_nsti ;
246   double HSMHV2_npext ;
247   double HSMHV2_nover ;
248   double HSMHV2_novers ;
249   double HSMHV2_wfc ;
250   double HSMHV2_glksd1 ;
251   double HSMHV2_glksd2 ;
252   double HSMHV2_gleak2 ;
253   double HSMHV2_glkb2 ;
254   double HSMHV2_fn2 ;
255   double HSMHV2_gidl1 ;
256   double HSMHV2_gidl2 ;
257   double HSMHV2_nfalp ;
258   double HSMHV2_nftrp ;
259 } HSMHV2hereMKSParam ;
260 
261 
262 /* information needed for each instance */
263 typedef struct sHSMHV2instance {
264 
265   struct GENinstance gen;
266 
267 #define HSMHV2modPtr(inst) ((struct sHSMHV2model *)((inst)->gen.GENmodPtr))
268 #define HSMHV2nextInstance(inst) ((struct sHSMHV2instance *)((inst)->gen.GENnextInstance))
269 #define HSMHV2name gen.GENname
270 #define HSMHV2states gen.GENstate
271 
272   const int HSMHV2dNode;      /* number of the drain node of the mosfet */
273   const int HSMHV2gNode;      /* number of the gate node of the mosfet */
274   const int HSMHV2sNode;      /* number of the source node of the mosfet */
275   const int HSMHV2bNode;      /* number of the bulk node of the mosfet */
276   const int HSMHV2subNodeExt; /* number of the substrate node */
277   const int HSMHV2tempNodeExt;/* number of the temp node----------SHE--------*/
278   int HSMHV2subNode;    /* number of the substrate node */
279   int HSMHV2tempNode;   /* number of the temp node */
280   int HSMHV2dNodePrime; /* number od the inner drain node */
281   int HSMHV2gNodePrime; /* number of the inner gate node */
282   int HSMHV2sNodePrime; /* number od the inner source node */
283   int HSMHV2bNodePrime;
284   int HSMHV2dbNode;
285   int HSMHV2sbNode;
286   int HSMHV2qiNode;     /* number of the qi node in case of NQS */
287   int HSMHV2qbNode;     /* number of the qb node in case of NQS */
288 
289   double HSMHV2_noiflick; /* for 1/f noise calc. */
290   double HSMHV2_noithrml; /* for thrmal noise calc. */
291   double HSMHV2_noiigate; /* for induced gate noise */
292   double HSMHV2_noicross; /* for induced gate noise */
293 
294   /* instance */
295   int HSMHV2_coselfheat; /* Self-heating model */
296   int HSMHV2_cosubnode;  /* switch tempNode to subNode */
297   double HSMHV2_l;    /* the length of the channel region */
298   double HSMHV2_w;    /* the width of the channel region */
299   double HSMHV2_ad;   /* the area of the drain diffusion */
300   double HSMHV2_as;   /* the area of the source diffusion */
301   double HSMHV2_pd;   /* perimeter of drain junction [m] */
302   double HSMHV2_ps;   /* perimeter of source junction [m] */
303   double HSMHV2_nrd;  /* equivalent num of squares of drain [-] (unused) */
304   double HSMHV2_nrs;  /* equivalent num of squares of source [-] (unused) */
305   double HSMHV2_dtemp;
306 
307   double HSMHV2_weff;    /* the effective width of the channel region */
308   double HSMHV2_weff_ld; /* the effective width of the drift region */
309   double HSMHV2_weff_cv;  /* the effective width of the drift region for capacitance */
310   double HSMHV2_weff_nf; /* Weff * NF */
311   double HSMHV2_weffcv_nf;  /* Weffcv * NF */
312   double HSMHV2_leff;    /* the effective length of the channel region */
313 
314   int HSMHV2_corbnet  ;
315   double HSMHV2_rbpb ;
316   double HSMHV2_rbpd ;
317   double HSMHV2_rbps ;
318   double HSMHV2_rbdb ;
319   double HSMHV2_rbsb ;
320 
321   int HSMHV2_corg ;
322   double HSMHV2_ngcon;
323   double HSMHV2_xgw;
324   double HSMHV2_xgl;
325   double HSMHV2_nf;
326 
327   double HSMHV2_sa;
328   double HSMHV2_sb;
329   double HSMHV2_sd;
330   double HSMHV2_nsubcdfm;
331   double HSMHV2_m;
332   double HSMHV2_subld1;
333   double HSMHV2_subld2;
334   double HSMHV2_lover;
335   double HSMHV2_lovers;
336   double HSMHV2_loverld;
337   double HSMHV2_ldrift1;
338   double HSMHV2_ldrift2;
339   double HSMHV2_ldrift1s;
340   double HSMHV2_ldrift2s;
341 
342   int HSMHV2_called; /* flag to check the first call */
343   /* previous values to evaluate initial guess */
344   double HSMHV2_mode_prv;
345   double HSMHV2_vbsc_prv;
346   double HSMHV2_vdsc_prv;
347   double HSMHV2_vgsc_prv;
348   double HSMHV2_ps0_prv;
349   double HSMHV2_ps0_dvbs_prv;
350   double HSMHV2_ps0_dvds_prv;
351   double HSMHV2_ps0_dvgs_prv;
352   double HSMHV2_ps0_dtemp_prv;
353   double HSMHV2_pds_prv;
354   double HSMHV2_pds_dvbs_prv;
355   double HSMHV2_pds_dvds_prv;
356   double HSMHV2_pds_dvgs_prv;
357   double HSMHV2_pds_dtemp_prv;
358   /* double HSMHV2_ids_prv;		not used */
359   /* double HSMHV2_ids_dvbs_prv;		not used */
360   /* double HSMHV2_ids_dvds_prv;		not used */
361   /* double HSMHV2_ids_dvgs_prv;		not used */
362   /* double HSMHV2_ids_dtemp_prv;	not used */
363   double HSMHV2_mode_prv2;
364   double HSMHV2_vbsc_prv2;
365   double HSMHV2_vdsc_prv2;
366   double HSMHV2_vgsc_prv2;
367   double HSMHV2_ps0_prv2;	/* assigned but not used */
368   double HSMHV2_ps0_dvbs_prv2;
369   double HSMHV2_ps0_dvds_prv2;
370   double HSMHV2_ps0_dvgs_prv2;
371   double HSMHV2_pds_prv2;	/* assigned but not used */
372   double HSMHV2_pds_dvbs_prv2;
373   double HSMHV2_pds_dvds_prv2;
374   double HSMHV2_pds_dvgs_prv2;
375   double HSMHV2_temp_prv;
376 /*   double HSMHV2_time; /\* for debug print *\/ */
377 
378   /* output */
379   /* int    HSMHV2_capop;	not used */
380   /* double HSMHV2_gd;		not used */
381   /* double HSMHV2_gs;		not used */
382   double HSMHV2_cgso;		/* can be made local */
383   double HSMHV2_cgdo;
384   double HSMHV2_cgbo;
385   double HSMHV2_cggo;
386   double HSMHV2_cdso;		/* can be made local */
387   double HSMHV2_cddo;
388   double HSMHV2_cdgo;
389   double HSMHV2_cdbo;
390   double HSMHV2_csso;		/* can be made local */
391   double HSMHV2_csdo;		/* can be made local */
392   double HSMHV2_csgo;		/* can be made local */
393   double HSMHV2_csbo;		/* can be made local */
394   double HSMHV2_cbdo;
395   double HSMHV2_cbgo;
396   double HSMHV2_cbbo;
397   /* double HSMHV2_cqyd;		not used */
398   /* double HSMHV2_cqyg;		not used */
399   /* double HSMHV2_cqyb;		not used */
400   double HSMHV2_von; /* vth */
401   double HSMHV2_vdsat;
402   /* double HSMHV2_capgs;	not used */
403   /* double HSMHV2_capgd;	not used */
404   /* double HSMHV2_capgb;	not used */
405 
406   /* double HSMHV2_rth0;		not used */
407   /* double HSMHV2_cth0;		not used */
408   /* double HSMHV2_cth;		not used */
409 
410 
411 #define XDIM 14
412   double HSMHV2_ydc_d[XDIM],  HSMHV2_ydc_dP[XDIM], HSMHV2_ydc_g[XDIM],  HSMHV2_ydc_gP[XDIM], HSMHV2_ydc_s[XDIM], HSMHV2_ydc_sP[XDIM],
413          HSMHV2_ydc_bP[XDIM], HSMHV2_ydc_b[XDIM],  HSMHV2_ydc_db[XDIM], HSMHV2_ydc_sb[XDIM], HSMHV2_ydc_t[XDIM], HSMHV2_ydc_qi[XDIM],
414          HSMHV2_ydc_qb[XDIM];
415   double HSMHV2_ydyn_d[XDIM],  HSMHV2_ydyn_dP[XDIM], HSMHV2_ydyn_g[XDIM],  HSMHV2_ydyn_gP[XDIM], HSMHV2_ydyn_s[XDIM], HSMHV2_ydyn_sP[XDIM],
416          HSMHV2_ydyn_bP[XDIM], HSMHV2_ydyn_b[XDIM],  HSMHV2_ydyn_db[XDIM], HSMHV2_ydyn_sb[XDIM], HSMHV2_ydyn_t[XDIM], HSMHV2_ydyn_qi[XDIM],
417          HSMHV2_ydyn_qb[XDIM];
418 
419   /* resistances */
420   double HSMHV2_Rd ; /* different from HSMHV2_rd */
421   double HSMHV2_dRd_dVdse  ;
422   double HSMHV2_dRd_dVgse  ;
423   double HSMHV2_dRd_dVbse  ;
424   double HSMHV2_dRd_dVddp  ;
425   double HSMHV2_dRd_dVsubs ;
426   double HSMHV2_dRd_dTi    ;
427   double HSMHV2_dRd_dVds ;
428   double HSMHV2_dRd_dVgs ;
429   double HSMHV2_dRd_dVbs ;
430   double HSMHV2_Rs ; /* different from HSMHV2_rs */
431   double HSMHV2_dRs_dVdse  ;
432   double HSMHV2_dRs_dVgse  ;
433   double HSMHV2_dRs_dVbse  ;
434   double HSMHV2_dRs_dVsubs ;
435   double HSMHV2_dRs_dTi    ;
436   /* drain current */
437   double HSMHV2_ids;
438   double HSMHV2_gds;		/* used for printout, but not loaded */
439   double HSMHV2_gm;		/* used for printout, but not loaded */
440   double HSMHV2_gmbs;		/* used for printout, but not loaded */
441   double HSMHV2_dIds_dVdse ;
442   double HSMHV2_dIds_dVgse ;
443   double HSMHV2_dIds_dVbse ;
444   double HSMHV2_dIds_dVdsi ;
445   double HSMHV2_dIds_dVgsi ;
446   double HSMHV2_dIds_dVbsi ;
447   double HSMHV2_dIds_dTi   ;
448   /* substrate current */
449   double HSMHV2_isub;
450   /* double HSMHV2_gbgs;		not used */
451   /* double HSMHV2_gbds;		not used */
452   /* double HSMHV2_gbbs;		not used */
453   double HSMHV2_dIsub_dVdsi ;
454   double HSMHV2_dIsub_dVgsi ;
455   double HSMHV2_dIsub_dVbsi ;
456   double HSMHV2_dIsub_dTi   ;
457   double HSMHV2_isubld;
458   double HSMHV2_dIsubLD_dVdsi ;
459   double HSMHV2_dIsubLD_dVgsi ;
460   double HSMHV2_dIsubLD_dVbsi ;
461   double HSMHV2_dIsubLD_dTi   ;
462   double HSMHV2_dIsubLD_dVddp ;
463   double HSMHV2_idsibpc;
464   double HSMHV2_dIdsIBPC_dVdsi ;
465   double HSMHV2_dIdsIBPC_dVgsi ;
466   double HSMHV2_dIdsIBPC_dVbsi ;
467   double HSMHV2_dIdsIBPC_dTi   ;
468   double HSMHV2_dIdsIBPC_dVddp ;
469   /* gidl and gisl current */
470   double HSMHV2_igidl; /* gate induced drain leakage */
471   /* double HSMHV2_gigidlgs;	not used */
472   /* double HSMHV2_gigidlds;	not used */
473   /* double HSMHV2_gigidlbs;	not used */
474   double HSMHV2_dIgidl_dVdsi ;
475   double HSMHV2_dIgidl_dVgsi ;
476   double HSMHV2_dIgidl_dVbsi ;
477   double HSMHV2_dIgidl_dTi   ;
478   double HSMHV2_igisl; /* gate induced source leakage */
479   /* double HSMHV2_gigislgd;	not used */
480   /* double HSMHV2_gigislsd;	not used */
481   /* double HSMHV2_gigislbd;	not used */
482   double HSMHV2_dIgisl_dVdsi ;
483   double HSMHV2_dIgisl_dVgsi ;
484   double HSMHV2_dIgisl_dVbsi ;
485   double HSMHV2_dIgisl_dTi   ;
486   /* gate leakage currents */
487   double HSMHV2_igb; /* gate tunneling current (gate to bulk) */
488   /* double HSMHV2_gigbg;	not used */
489   /* double HSMHV2_gigbd;	not used */
490   /* double HSMHV2_gigbb;	not used */
491   /* double HSMHV2_gigbs;	not used */
492   double HSMHV2_dIgb_dVdsi ;
493   double HSMHV2_dIgb_dVgsi ;
494   double HSMHV2_dIgb_dVbsi ;
495   double HSMHV2_dIgb_dTi   ;
496   double HSMHV2_igd; /* gate tunneling current (gate to drain) */
497   /* double HSMHV2_gigdg;	not used */
498   /* double HSMHV2_gigdd;	not used */
499   /* double HSMHV2_gigdb;	not used */
500   /* double HSMHV2_gigds;	not used */
501   double HSMHV2_dIgd_dVdsi ;
502   double HSMHV2_dIgd_dVgsi ;
503   double HSMHV2_dIgd_dVbsi ;
504   double HSMHV2_dIgd_dTi   ;
505   double HSMHV2_igs; /* gate tunneling current (gate to source) */
506   /* double HSMHV2_gigsg;	not used */
507   /* double HSMHV2_gigsd;	not used */
508   /* double HSMHV2_gigsb;	not used */
509   /* double HSMHV2_gigss;	not used */
510   double HSMHV2_dIgs_dVdsi ;
511   double HSMHV2_dIgs_dVgsi ;
512   double HSMHV2_dIgs_dVbsi ;
513   double HSMHV2_dIgs_dTi   ;
514   /* charges */
515   double HSMHV2_qd;
516   double HSMHV2_cdgb;		/* used for printout, but not loaded */
517   /* double HSMHV2_cddb;		not used */
518   /* double HSMHV2_cdsb;         not used */
519   /* double HSMHV2cdT;		not used */
520   double HSMHV2_dQdi_dVdsi ;
521   double HSMHV2_dQdi_dVgsi ;
522   double HSMHV2_dQdi_dVbsi ;
523   double HSMHV2_dQdi_dTi   ;
524   double HSMHV2_qg;
525   double HSMHV2_cggb;		/* used for printout, but not loaded */
526   double HSMHV2_cgdb;		/* used for printout, but not loaded */
527   double HSMHV2_cgsb;		/* used for printout, but not loaded */
528   /* double HSMHV2cgT;		not used */
529   double HSMHV2_dQg_dVdsi ;
530   double HSMHV2_dQg_dVgsi ;
531   double HSMHV2_dQg_dVbsi ;
532   double HSMHV2_dQg_dTi   ;
533   double HSMHV2_qs;
534   double HSMHV2_dQsi_dVdsi ;
535   double HSMHV2_dQsi_dVgsi ;
536   double HSMHV2_dQsi_dVbsi ;
537   double HSMHV2_dQsi_dTi   ;
538   double HSMHV2_qb;  /* bulk charge qb = -(qg + qd + qs) */
539   double HSMHV2_cbgb;		/* used for printout, but not loaded */
540   /* double HSMHV2_cbdb;		not used */
541   /* double HSMHV2_cbsb;		not used */
542   /* double HSMHV2cbT;		not used */
543   double HSMHV2_dQb_dVdsi ;     /* Qb: bulk charge inclusive overlaps, Qbulk: bulk charge without overlaps (see above) */
544   double HSMHV2_dQb_dVgsi ;
545   double HSMHV2_dQb_dVbsi ;
546   double HSMHV2_dQb_dTi   ;
547   /* outer charges (fringing etc.) */
548   double HSMHV2_qdp ;
549   double HSMHV2_dqdp_dVdse ;
550   double HSMHV2_dqdp_dVgse ;
551   double HSMHV2_dqdp_dVbse ;
552   double HSMHV2_dqdp_dTi   ;
553   double HSMHV2_qsp ;
554   double HSMHV2_dqsp_dVdse ;
555   double HSMHV2_dqsp_dVgse ;
556   double HSMHV2_dqsp_dVbse ;
557   double HSMHV2_dqsp_dTi   ;
558   double HSMHV2_qgext ;
559   double HSMHV2_dQgext_dVdse ;
560   double HSMHV2_dQgext_dVgse ;
561   double HSMHV2_dQgext_dVbse ;
562   double HSMHV2_dQgext_dTi   ;
563   double HSMHV2_qdext ;
564   double HSMHV2_dQdext_dVdse ;
565   double HSMHV2_dQdext_dVgse ;
566   double HSMHV2_dQdext_dVbse ;
567   double HSMHV2_dQdext_dTi   ;
568   double HSMHV2_qbext ;
569   double HSMHV2_dQbext_dVdse ;
570   double HSMHV2_dQbext_dVgse ;
571   double HSMHV2_dQbext_dVbse ;
572   double HSMHV2_dQbext_dTi   ;
573   double HSMHV2_qsext ;
574   double HSMHV2_dQsext_dVdse ;
575   double HSMHV2_dQsext_dVgse ;
576   double HSMHV2_dQsext_dVbse ;
577   double HSMHV2_dQsext_dTi   ;
578   /* junctions */
579   double HSMHV2_ibd;
580   double HSMHV2_gbd;
581   double HSMHV2_gbdT;
582   double HSMHV2_ibs;
583   double HSMHV2_gbs;
584   double HSMHV2_gbsT;
585   double HSMHV2_qbd;
586   double HSMHV2_capbd;
587   double HSMHV2_gcbdT;
588   double HSMHV2_qbs;
589   double HSMHV2_capbs;
590   double HSMHV2_gcbsT;
591 
592   /* double HSMHV2_gtempg;	not used */
593   /* double HSMHV2_gtempt;	not used */
594   /* double HSMHV2_gtempd;	not used */
595   /* double HSMHV2_gtempb;	not used */
596 
597   /* double HSMHV2_gmt;		not used */
598   /* double HSMHV2_isubt;	not used */
599 
600 
601   /* NQS */
602   double HSMHV2_tau ;
603   double HSMHV2_tau_dVgsi ;
604   double HSMHV2_tau_dVdsi ;
605   double HSMHV2_tau_dVbsi ;
606   double HSMHV2_tau_dTi   ;
607   double HSMHV2_Xd  ;
608   double HSMHV2_Xd_dVgsi  ;
609   double HSMHV2_Xd_dVdsi  ;
610   double HSMHV2_Xd_dVbsi  ;
611   double HSMHV2_Xd_dTi    ;
612   double HSMHV2_Qi  ;
613   double HSMHV2_Qi_dVgsi  ;
614   double HSMHV2_Qi_dVdsi  ;
615   double HSMHV2_Qi_dVbsi  ;
616   double HSMHV2_Qi_dTi    ;
617   double HSMHV2_taub  ;
618   double HSMHV2_taub_dVgsi  ;
619   double HSMHV2_taub_dVdsi  ;
620   double HSMHV2_taub_dVbsi  ;
621   double HSMHV2_taub_dTi    ;
622   double HSMHV2_Qbulk  ;                          /* Qbulk: without overlaps, Qb: inclusive overlaps (see below) */
623   double HSMHV2_Qbulk_dVgsi  ;
624   double HSMHV2_Qbulk_dVdsi  ;
625   double HSMHV2_Qbulk_dVbsi  ;
626   double HSMHV2_Qbulk_dTi    ;
627 
628 
629 
630 
631   /* internal variables */
632   double HSMHV2_exptempd ;
633   double HSMHV2_exptemps ;
634   double HSMHV2_jd_nvtm_invd ;
635   double HSMHV2_jd_nvtm_invs ;
636   double HSMHV2_eg ;
637   double HSMHV2_beta ;
638   double HSMHV2_beta_inv ;
639   double HSMHV2_beta2 ;
640   double HSMHV2_betatnom ;
641   double HSMHV2_nin ;
642   double HSMHV2_egp12 ;
643   double HSMHV2_egp32 ;
644   double HSMHV2_lgate ;
645   double HSMHV2_wg ;
646   double HSMHV2_mueph ;
647   double HSMHV2_mphn0 ;
648   double HSMHV2_depmphn0 ;
649   double HSMHV2_mphn1 ;
650   double HSMHV2_depmphn1 ;
651   double HSMHV2_muesr ;
652   double HSMHV2_rdvd ;
653   double HSMHV2_rsvd ; /* for the reverse mode */
654   double HSMHV2_rd23 ;
655 
656   double HSMHV2_ninvd ;
657   double HSMHV2_ninvd0 ;
658 
659   double HSMHV2_nsub ;
660   double HSMHV2_qnsub ;
661   double HSMHV2_qnsub_esi ;
662   double HSMHV2_2qnsub_esi ;
663   double HSMHV2_ptovr0 ;
664   double HSMHV2_ptovr ;
665   double HSMHV2_vmax0 ;
666   double HSMHV2_vmax ;
667   double HSMHV2_pb2 ;
668   double HSMHV2_pb20 ;
669   double HSMHV2_pb2c ;
670   double HSMHV2_cnst0 ;
671   double HSMHV2_cnst1 ;
672   double HSMHV2_isbd ;
673   double HSMHV2_isbd2 ;
674   double HSMHV2_isbs ;
675   double HSMHV2_isbs2 ;
676   double HSMHV2_vbdt ;
677   double HSMHV2_vbst ;
678   double HSMHV2_wsti ;
679   double HSMHV2_cnstpgd ;
680   /* double HSMHV2_ninvp0 ;	not used */
681   /* double HSMHV2_ninv0 ;	not used */
682   double HSMHV2_grbpb ;
683   double HSMHV2_grbpd ;
684   double HSMHV2_grbps ;
685   double HSMHV2_grg ;
686   double HSMHV2_rs ;
687   double HSMHV2_rs0 ;
688   double HSMHV2_rd ;
689   double HSMHV2_rd0 ;
690   double HSMHV2_rdtemp0 ;
691   double HSMHV2_clmmod ;
692   double HSMHV2_lgatesm ;
693   double HSMHV2_dVthsm ;
694   double HSMHV2_ddlt ;
695   double HSMHV2_xsub1 ;
696   double HSMHV2_xsub2 ;
697   double HSMHV2_ibpc1 ;
698   double HSMHV2_xgate ;
699   double HSMHV2_xvbs ;
700   double HSMHV2_vg2const ;
701   double HSMHV2_wdpl ;
702   double HSMHV2_wdplp ;
703   double HSMHV2_cfrng ;
704   double HSMHV2_jd_expcd ;
705   double HSMHV2_jd_expcs ;
706   double HSMHV2_sqrt_eg ;
707 
708   double HSMHV2_egtnom ;
709   double HSMHV2_cecox ;
710   double HSMHV2_msc ;
711   int HSMHV2_flg_pgd ;
712   double HSMHV2_ndep_o_esi ;
713   double HSMHV2_ninv_o_esi ;
714   double HSMHV2_cqyb0 ;
715   double HSMHV2_cnst0over ;
716   double HSMHV2_cnst0overs ;
717   double HSMHV2_costi00 ;
718   double HSMHV2_nsti_p2 ;
719   double HSMHV2_costi0 ;
720   double HSMHV2_costi0_p2 ;
721   double HSMHV2_costi1 ;
722   double HSMHV2_ptl0;
723   double HSMHV2_pt40;
724   double HSMHV2_gdl0;
725   double HSMHV2_rdvdtemp0 ;
726   double HSMHV2_rthtemp0 ;
727   double HSMHV2_powratio ;
728 
729   double HSMHV2_rdrmue ;
730   double HSMHV2_rdrvmax ;
731 
732   double HSMHV2_depvmax ;
733 
734   double HSMHV2_rdrcx ;
735   double HSMHV2_rdrcar ;
736 
737   double HSMHV2_xpdv ;
738   double HSMHV2_Ps0LD ;
739   double HSMHV2_Ps0LD_dVds ;
740   double HSMHV2_Ps0LD_dVgs ;
741   double HSMHV2_Ps0LD_dVbs ;
742   double HSMHV2_Ps0LD_dTi ;
743   double HSMHV2_QbuLD ;
744   double HSMHV2_QbuLD_dVds ;
745   double HSMHV2_QbuLD_dVgs ;
746   double HSMHV2_QbuLD_dVbs ;
747   double HSMHV2_QbuLD_dTi ;
748 
749   double HSMHV2_kjunc ;
750   double HSMHV2_kdep  ;
751   double HSMHV2_Xmax  ;
752   double HSMHV2_rdrcxw ;
753   double HSMHV2_rdrvmaxw ;
754   double HSMHV2_rdrvmaxl ;
755   double HSMHV2_rdrmuel ;
756 
757   double HSMHV2_mueph1 ;
758   double HSMHV2_nsubp;
759   double HSMHV2_nsubc;
760 
761   double HSMHV2_Tratio;
762 
763   double HSMHV2_ndepm ;
764   double HSMHV2_Pb2n ;
765   double HSMHV2_Vbipn ;
766 
767   double HSMHV2_rdrbb ;
768 
769   int HSMHV2_cordrift ;
770 
771   double HSMHV2_Vdserevz ;
772   double HSMHV2_Vdserevz_dVd ;
773   double HSMHV2_Vsubsrev ;
774 
775   HSMHV2hereMKSParam hereMKS ; /* unit-converted parameters */
776 
777   HSMHV2binningParam pParam ; /* binning parameters */
778 
779   /* no use in SPICE3f5
780       double HSMHV2drainSquares;       the length of the drain in squares
781       double HSMHV2sourceSquares;      the length of the source in squares */
782   double HSMHV2sourceConductance; /* cond. of source (or 0): set in setup */
783   double HSMHV2drainConductance;  /* cond. of drain (or 0): set in setup */
784 
785   double HSMHV2_icVBS; /* initial condition B-S voltage */
786   double HSMHV2_icVDS; /* initial condition D-S voltage */
787   double HSMHV2_icVGS; /* initial condition G-S voltage */
788   int HSMHV2_off;      /* non-zero to indicate device is off for dc analysis */
789   int HSMHV2_mode;     /* device mode : 1 = normal, -1 = inverse */
790 
791   unsigned HSMHV2_coselfheat_Given :1;
792   unsigned HSMHV2_cosubnode_Given :1;
793   unsigned HSMHV2_l_Given :1;
794   unsigned HSMHV2_w_Given :1;
795   unsigned HSMHV2_ad_Given :1;
796   unsigned HSMHV2_as_Given    :1;
797   unsigned HSMHV2_pd_Given    :1;
798   unsigned HSMHV2_ps_Given   :1;
799   unsigned HSMHV2_nrd_Given  :1;
800   unsigned HSMHV2_nrs_Given  :1;
801   unsigned HSMHV2_dtemp_Given  :1;
802   unsigned HSMHV2_icVBS_Given :1;
803   unsigned HSMHV2_icVDS_Given :1;
804   unsigned HSMHV2_icVGS_Given :1;
805   unsigned HSMHV2_corbnet_Given  :1;
806   unsigned HSMHV2_rbpb_Given :1;
807   unsigned HSMHV2_rbpd_Given :1;
808   unsigned HSMHV2_rbps_Given :1;
809   unsigned HSMHV2_rbdb_Given :1;
810   unsigned HSMHV2_rbsb_Given :1;
811   unsigned HSMHV2_corg_Given  :1;
812   unsigned HSMHV2_ngcon_Given  :1;
813   unsigned HSMHV2_xgw_Given  :1;
814   unsigned HSMHV2_xgl_Given  :1;
815   unsigned HSMHV2_nf_Given  :1;
816   unsigned HSMHV2_sa_Given  :1;
817   unsigned HSMHV2_sb_Given  :1;
818   unsigned HSMHV2_sd_Given  :1;
819   unsigned HSMHV2_nsubcdfm_Given  :1;
820   unsigned HSMHV2_m_Given  :1;
821   unsigned HSMHV2_subld1_Given  :1;
822   unsigned HSMHV2_subld2_Given  :1;
823   unsigned HSMHV2_lover_Given  :1;
824   unsigned HSMHV2_lovers_Given  :1;
825   unsigned HSMHV2_loverld_Given  :1;
826   unsigned HSMHV2_ldrift1_Given  :1;
827   unsigned HSMHV2_ldrift2_Given  :1;
828   unsigned HSMHV2_ldrift1s_Given :1;
829   unsigned HSMHV2_ldrift2s_Given :1;
830 
831   /* unsigned HSMHV2_rth0_Given :1;	not used */
832   /* unsigned HSMHV2_cth0_Given :1;	not used */
833 
834 
835 
836   /* pointers to sparse matrix */
837 
838   double *HSMHV2GgPtr;   /* pointer to sparse matrix element at (gate node,gate node) */
839   double *HSMHV2GgpPtr;  /* pointer to sparse matrix element at (gate node,gate prime node) */
840   /* double *HSMHV2GdpPtr;	not used */
841   /* double *HSMHV2GspPtr;	not used */
842   /* double *HSMHV2GbpPtr;	not used */
843 
844   double *HSMHV2GPgPtr;  /* pointer to sparse matrix element at (gate prime node,gate node) */
845   double *HSMHV2GPgpPtr; /* pointer to sparse matrix element at (gate prime node,gate prime node) */
846   double *HSMHV2GPdpPtr; /* pointer to sparse matrix element at (gate prime node,drain prime node) */
847   double *HSMHV2GPspPtr; /* pointer to sparse matrix element at (gate prime node,source prime node) */
848   double *HSMHV2GPbpPtr; /* pointer to sparse matrix element at (gate prime node,bulk prime node) */
849 
850   double *HSMHV2DPdPtr;  /* pointer to sparse matrix element at (drain prime node,drain node) */
851   double *HSMHV2DPdpPtr; /* pointer to sparse matrix element at (drain prime node,drain prime node) */
852   double *HSMHV2DPgpPtr; /* pointer to sparse matrix element at (drain prime node,gate prime node) */
853   double *HSMHV2DPspPtr; /* pointer to sparse matrix element at (drain prime node,source prime node) */
854   double *HSMHV2DPbpPtr; /* pointer to sparse matrix element at (drain prime node,bulk prime node) */
855 
856   double *HSMHV2DdPtr;   /* pointer to sparse matrix element at (Drain node,drain node) */
857   double *HSMHV2DdpPtr;  /* pointer to sparse matrix element at (drain node,drain prime node) */
858   double *HSMHV2DspPtr;  /* pointer to sparse matrix element at (drain node,source prime node) */
859   double *HSMHV2DdbPtr;  /* pointer to sparse matrix element at (drain node,drain body node) */
860 
861   double *HSMHV2SPsPtr;  /* pointer to sparse matrix element at (source prime node,source node) */
862   double *HSMHV2SPspPtr; /* pointer to sparse matrix element at (source prime node,source prime node) */
863   double *HSMHV2SPgpPtr; /* pointer to sparse matrix element at (source prime node,gate prime node) */
864   double *HSMHV2SPdpPtr; /* pointer to sparse matrix element at (source prime node,drain prime node) */
865   double *HSMHV2SPbpPtr; /* pointer to sparse matrix element at (source prime node,bulk prime node) */
866 
867   double *HSMHV2SsPtr;   /* pointer to sparse matrix element at (source node,source node) */
868   double *HSMHV2SspPtr;  /* pointer to sparse matrix element at (source node,source prime node) */
869   double *HSMHV2SdpPtr;  /* pointer to sparse matrix element at (source node,drain prime node) */
870   double *HSMHV2SsbPtr;  /* pointer to sparse matrix element at (source node,source body node) */
871 
872   double *HSMHV2BPgpPtr; /* pointer to sparse matrix element at (bulk prime node,gate prime node) */
873   double *HSMHV2BPbpPtr; /* pointer to sparse matrix element at (bulk prime node,bulk prime node) */
874   double *HSMHV2BPdPtr;  /* pointer to sparse matrix element at (bulk prime node,drain node) */
875   double *HSMHV2BPdpPtr; /* pointer to sparse matrix element at (bulk prime node,drain prime node) */
876   double *HSMHV2BPspPtr; /* pointer to sparse matrix element at (bulk prime node,source prime node) */
877   double *HSMHV2BPsPtr;  /* pointer to sparse matrix element at (bulk prime node,source node) */
878   double *HSMHV2BPbPtr;  /* pointer to sparse matrix element at (bulk prime node,bulk node) */
879   double *HSMHV2BPdbPtr; /* pointer to sparse matrix element at (bulk prime node,source body node) */
880   double *HSMHV2BPsbPtr; /* pointer to sparse matrix element at (bulk prime node,source body node) */
881 
882   double *HSMHV2DBdPtr;  /* pointer to sparse matrix element at (drain body node,drain node) */
883   double *HSMHV2DBdbPtr; /* pointer to sparse matrix element at (drain body node,drain body node) */
884   double *HSMHV2DBbpPtr; /* pointer to sparse matrix element at (drain body node,bulk prime node) */
885   /* double *HSMHV2DBbPtr;	not used */
886 
887   double *HSMHV2SBsPtr;  /* pointer to sparse matrix element at (source body node,source node) */
888   double *HSMHV2SBbpPtr; /* pointer to sparse matrix element at (source body node,bulk prime node) */
889   /* double *HSMHV2SBbPtr;	not used */
890   double *HSMHV2SBsbPtr; /* pointer to sparse matrix element at (source body node,source body node) */
891 
892   /* double *HSMHV2BsbPtr;	not used */
893   double *HSMHV2BbpPtr;  /* pointer to sparse matrix element at (bulk node,bulk prime node) */
894   /* double *HSMHV2BdbPtr;	not used */
895   double *HSMHV2BbPtr;   /* pointer to sparse matrix element at (bulk node,bulk node) */
896 
897   double *HSMHV2TemptempPtr; /* pointer to sparse matrix element at (temp node, temp node) */
898   double *HSMHV2TempdPtr;    /* pointer to sparse matrix element at (temp node, drain node) */
899   double *HSMHV2TempdpPtr;   /* pointer to sparse matrix element at (temp node, drain prime node) */
900   double *HSMHV2TempsPtr;    /* pointer to sparse matrix element at (temp node, source node) */
901   double *HSMHV2TempspPtr;   /* pointer to sparse matrix element at (temp node, source prime node) */
902   /* double *HSMHV2TempgPtr;	not used */
903   double *HSMHV2TempgpPtr;   /* pointer to sparse matrix element at (temp node, gate prime node) */
904   /* double *HSMHV2TempbPtr;	not used */
905   double *HSMHV2TempbpPtr;   /* pointer to sparse matrix element at (temp node, bulk prime node) */
906   /* double *HSMHV2GtempPtr;	not used */
907   double *HSMHV2GPtempPtr;   /* pointer to sparse matrix element at (gate prime node, temp node) */
908   double *HSMHV2DPtempPtr;   /* pointer to sparse matrix element at (drain prime node, temp node) */
909   double *HSMHV2SPtempPtr;   /* pointer to sparse matrix element at (source prime node, temp node) */
910   /* double *HSMHV2BtempPtr;	not used */
911   double *HSMHV2BPtempPtr;   /* pointer to sparse matrix element at (bulk prime node, temp node) */
912   double *HSMHV2DBtempPtr;   /* pointer to sparse matrix element at (drain bulk node, temp node) */
913   double *HSMHV2SBtempPtr;   /* pointer to sparse matrix element at (source bulk node, temp node) */
914 
915   double *HSMHV2DgpPtr;      /* pointer to sparse matrix element at (drain node, gate prime node) */
916   double *HSMHV2DsPtr;       /* pointer to sparse matrix element at (drain node, source node) */
917   double *HSMHV2DbpPtr;      /* pointer to sparse matrix element at (drain node, bulk prime node) */
918   double *HSMHV2DtempPtr;    /* pointer to sparse matrix element at (drain node, temp node) */
919   double *HSMHV2DPsPtr;      /* pointer to sparse matrix element at (drain prime node, source node) */
920   double *HSMHV2GPdPtr;      /* pointer to sparse matrix element at (gate prime node, drain node) */
921   double *HSMHV2GPsPtr;      /* pointer to sparse matrix element at (gate prime node, source node) */
922   double *HSMHV2SdPtr;       /* pointer to sparse matrix element at (source node, drain node) */
923   double *HSMHV2SgpPtr;      /* pointer to sparse matrix element at (source node, gate prime node) */
924   double *HSMHV2SbpPtr;      /* pointer to sparse matrix element at (source node, bulk prime node) */
925   double *HSMHV2StempPtr;    /* pointer to sparse matrix element at (source node, temp node) */
926   double *HSMHV2SPdPtr;      /* pointer to sparse matrix element at (source prime node, drain node) */
927 
928   /* nqs related pointers */
929   double *HSMHV2DPqiPtr;     /* pointer to sparse matrix element at (drain prime node, qi_nqs node) */
930   double *HSMHV2GPqiPtr;     /* pointer to sparse matrix element at (gate prime node, qi_nqs node) */
931   double *HSMHV2GPqbPtr;     /* pointer to sparse matrix element at (gate prime node, qb_nqs node) */
932   double *HSMHV2SPqiPtr;     /* pointer to sparse matrix element at (source prime node, qi_nqs node) */
933   double *HSMHV2BPqbPtr;     /* pointer to sparse matrix element at (bulk prime node, qb_nqs node) */
934   double *HSMHV2QIdpPtr;     /* pointer to sparse matrix element at (qi_nqs node, drain prime node) */
935   double *HSMHV2QIgpPtr;     /* pointer to sparse matrix element at (qi_nqs node, gate prime node) */
936   double *HSMHV2QIspPtr;     /* pointer to sparse matrix element at (qi_nqs node, source prime node) */
937   double *HSMHV2QIbpPtr;     /* pointer to sparse matrix element at (qi_nqs node, bulk prime node) */
938   double *HSMHV2QIqiPtr;     /* pointer to sparse matrix element at (qi_nqs node, qi_nqs node) */
939   double *HSMHV2QBdpPtr;     /* pointer to sparse matrix element at (qb_nqs node, drain prime node) */
940   double *HSMHV2QBgpPtr;     /* pointer to sparse matrix element at (qb_nqs node, gate prime node) */
941   double *HSMHV2QBspPtr;     /* pointer to sparse matrix element at (qb_nqs node, source prime node) */
942   double *HSMHV2QBbpPtr;     /* pointer to sparse matrix element at (qb_nqs node, bulk prime node) */
943   double *HSMHV2QBqbPtr;     /* pointer to sparse matrix element at (qb_nqs node, qb_nqs node) */
944   double *HSMHV2QItempPtr;   /* pointer to sparse matrix element at (qi_nqs node, temp node) */
945   double *HSMHV2QBtempPtr;   /* pointer to sparse matrix element at (qb_nqs node, temp node) */
946 
947   /* Substrate effect related pointers */
948   double *HSMHV2DsubPtr;     /* pointer to sparse matrix element at (drain node, substrate node) */
949   double *HSMHV2DPsubPtr;    /* pointer to sparse matrix element at (drain prime node, substrate node) */
950   double *HSMHV2SsubPtr;     /* pointer to sparse matrix element at (source node, substrate node) */
951   double *HSMHV2SPsubPtr;    /* pointer to sparse matrix element at (source prime node, substrate node) */
952 
953 
954   /* common state values in hisim module */
955 #define HSMHV2vbd HSMHV2states+ 0
956 #define HSMHV2vbs HSMHV2states+ 1
957 #define HSMHV2vgs HSMHV2states+ 2
958 #define HSMHV2vds HSMHV2states+ 3
959 #define HSMHV2vdbs HSMHV2states+ 4
960 #define HSMHV2vdbd HSMHV2states+ 5
961 #define HSMHV2vsbs HSMHV2states+ 6
962 #define HSMHV2vges HSMHV2states+ 7
963 #define HSMHV2vsubs HSMHV2states+ 8 /* substrate bias */
964 #define HSMHV2deltemp HSMHV2states+ 9
965 #define HSMHV2vdse HSMHV2states+ 10
966 #define HSMHV2vgse HSMHV2states+ 11
967 #define HSMHV2vbse HSMHV2states+ 12
968 
969 #define HSMHV2qb  HSMHV2states+ 13
970 #define HSMHV2cqb HSMHV2states+ 14
971 #define HSMHV2qg  HSMHV2states+ 15
972 #define HSMHV2cqg HSMHV2states+ 16
973 #define HSMHV2qd  HSMHV2states+ 17
974 #define HSMHV2cqd HSMHV2states+ 18
975 
976 #define HSMHV2qbs HSMHV2states+ 19
977 #define HSMHV2cqbs HSMHV2states+ 20
978 #define HSMHV2qbd HSMHV2states+ 21
979 #define HSMHV2cqbd HSMHV2states+ 22
980 
981 #define HSMHV2qth HSMHV2states+ 23
982 #define HSMHV2cqth HSMHV2states+ 24
983 
984 /*add fringing capacitance*/
985 #define HSMHV2qfd HSMHV2states+ 25
986 #define HSMHV2cqfd HSMHV2states+ 26
987 #define HSMHV2qfs HSMHV2states+ 27
988 #define HSMHV2cqfs HSMHV2states+ 28
989 
990 /*add external drain capacitance*/
991 #define HSMHV2qdE HSMHV2states+ 29
992 #define HSMHV2cqdE HSMHV2states+ 30
993 
994 #define HSMHV2numStates 31
995 
996 /* nqs charges */
997 #define HSMHV2qi_nqs HSMHV2states+ 32
998 #define HSMHV2dotqi_nqs HSMHV2states + 33
999 #define HSMHV2qb_nqs HSMHV2states+ 34
1000 #define HSMHV2dotqb_nqs HSMHV2states + 35
1001 
1002 #define HSMHV2numStatesNqs 36
1003 
1004 /* indices to the array of HiSIMHV NOISE SOURCES */
1005 #define HSMHV2RDNOIZ       0
1006 #define HSMHV2RSNOIZ       1
1007 #define HSMHV2IDNOIZ       2
1008 #define HSMHV2FLNOIZ       3
1009 #define HSMHV2IGNOIZ       4
1010 #define HSMHV2TOTNOIZ      5
1011 
1012 #define HSMHV2NSRCS        6  /* the number of HiSIMHV MOSFET noise sources */
1013 
1014 #ifndef NONOISE
1015   double HSMHV2nVar[NSTATVARS][HSMHV2NSRCS];
1016 #else /* NONOISE */
1017   double **HSMHV2nVar;
1018 #endif /* NONOISE */
1019 
1020 } HSMHV2instance ;
1021 
1022 
1023 /* per model data */
1024 
1025 typedef struct sHSMHV2model {     /* model structure for a resistor */
1026 
1027   struct GENmodel gen;
1028 
1029 #define HSMHV2modType gen.GENmodType
1030 #define HSMHV2nextModel(inst) ((struct sHSMHV2model *)((inst)->gen.GENnextModel))
1031 #define HSMHV2instances(inst) ((HSMHV2instance *)((inst)->gen.GENinstances))
1032 #define HSMHV2modName gen.GENmodName
1033 
1034   int HSMHV2_type;      		/* device type: 1 = nmos,  -1 = pmos */
1035   int HSMHV2_level;               /* level */
1036   int HSMHV2_info;                /* information */
1037   int HSMHV2_noise;               /* noise model selecter see hsmhvnoi.c */
1038   char *HSMHV2_version;           /* model version */
1039   int HSMHV2_show;                /* show physical value 1, 2, ... , 11 */
1040 
1041 
1042   int HSMHV2_corsrd ;
1043   int HSMHV2_corg   ;
1044   int HSMHV2_coiprv ;
1045   int HSMHV2_copprv ;
1046   int HSMHV2_coadov ;
1047   int HSMHV2_coisub ;
1048   int HSMHV2_coiigs ;
1049   int HSMHV2_cogidl ;
1050   int HSMHV2_coovlp ;
1051   int HSMHV2_coovlps ;
1052   int HSMHV2_coflick ;
1053   int HSMHV2_coisti ;
1054   int HSMHV2_conqs  ;
1055   int HSMHV2_corbnet ;
1056   int HSMHV2_cothrml;
1057   int HSMHV2_coign;      /* Induced gate noise */
1058   int HSMHV2_codfm;      /* DFM */
1059   int HSMHV2_coqovsm ;
1060   int HSMHV2_coselfheat; /* Self-heating model */
1061   int HSMHV2_cosubnode;  /* switch tempNode to subNode */
1062   int HSMHV2_cosym;      /* Symmetry model for HV */
1063   int HSMHV2_cotemp;
1064   int HSMHV2_coldrift;
1065   int HSMHV2_cordrift;
1066   int HSMHV2_coerrrep;
1067   int HSMHV2_codep;
1068   int HSMHV2_coddlt;
1069 
1070   double HSMHV2_vmax ;
1071   double HSMHV2_vmaxt1 ;
1072   double HSMHV2_vmaxt2 ;
1073   double HSMHV2_bgtmp1 ;
1074   double HSMHV2_bgtmp2 ;
1075   double HSMHV2_eg0 ;
1076   double HSMHV2_tox ;
1077   double HSMHV2_xld ;
1078   double HSMHV2_xldld ;
1079   double HSMHV2_xwdld ;
1080   double HSMHV2_lover ;
1081   double HSMHV2_lovers ;
1082   double HSMHV2_rdov11 ;
1083   double HSMHV2_rdov12 ;
1084   double HSMHV2_rdov13 ;
1085   double HSMHV2_rdslp1 ;
1086   double HSMHV2_rdict1 ;
1087   double HSMHV2_rdslp2 ;
1088   double HSMHV2_rdict2 ;
1089   double HSMHV2_loverld ;
1090   double HSMHV2_ldrift1 ;
1091   double HSMHV2_ldrift2 ;
1092   double HSMHV2_ldrift1s ;
1093   double HSMHV2_ldrift2s ;
1094   double HSMHV2_subld1 ;
1095   double HSMHV2_subld1l ;
1096   double HSMHV2_subld1lp ;
1097   double HSMHV2_subld2 ;
1098   double HSMHV2_xpdv ;
1099   double HSMHV2_xpvdth ;
1100   double HSMHV2_xpvdthg ;
1101   double HSMHV2_ddltmax ;
1102   double HSMHV2_ddltslp ;
1103   double HSMHV2_ddltict ;
1104   double HSMHV2_vfbover ;
1105   double HSMHV2_nover ;
1106   double HSMHV2_novers ;
1107   double HSMHV2_xwd ;
1108   double HSMHV2_xwdc ;
1109   double HSMHV2_xl ;
1110   double HSMHV2_xw ;
1111   double HSMHV2_saref ;
1112   double HSMHV2_sbref ;
1113   double HSMHV2_ll ;
1114   double HSMHV2_lld ;
1115   double HSMHV2_lln ;
1116   double HSMHV2_wl ;
1117   double HSMHV2_wl1 ;
1118   double HSMHV2_wl1p ;
1119   double HSMHV2_wl2 ;
1120   double HSMHV2_wl2p ;
1121   double HSMHV2_wld ;
1122   double HSMHV2_wln ;
1123   double HSMHV2_xqy ;
1124   double HSMHV2_xqy1 ;
1125   double HSMHV2_xqy2 ;
1126   double HSMHV2_rs;     /* source contact resistance */
1127   double HSMHV2_rd;     /* drain contact resistance */
1128   double HSMHV2_rsh;    /* source/drain diffusion sheet resistance */
1129   double HSMHV2_rshg;
1130 /*   double HSMHV2_ngcon; */
1131 /*   double HSMHV2_xgw; */
1132 /*   double HSMHV2_xgl; */
1133 /*   double HSMHV2_nf; */
1134   double HSMHV2_vfbc ;
1135   double HSMHV2_vbi ;
1136   double HSMHV2_nsubc ;
1137   double HSMHV2_qdftvd ;
1138   double HSMHV2_parl2 ;
1139   double HSMHV2_lp ;
1140   double HSMHV2_nsubp ;
1141   double HSMHV2_nsubp0 ;
1142   double HSMHV2_nsubwp ;
1143   double HSMHV2_scp1 ;
1144   double HSMHV2_scp2 ;
1145   double HSMHV2_scp3 ;
1146   double HSMHV2_sc1 ;
1147   double HSMHV2_sc2 ;
1148   double HSMHV2_sc3 ;
1149   double HSMHV2_sc4 ;
1150   double HSMHV2_pgd1 ;
1151   double HSMHV2_pgd2 ;
1152 //double HSMHV2_pgd3 ;
1153   double HSMHV2_pgd4 ;
1154   double HSMHV2_ndep ;
1155   double HSMHV2_ndepl ;
1156   double HSMHV2_ndeplp ;
1157   double HSMHV2_ninv ;
1158   double HSMHV2_ninvd ;
1159   double HSMHV2_ninvdw ;
1160   double HSMHV2_ninvdwp ;
1161   double HSMHV2_ninvdt1 ;
1162   double HSMHV2_ninvdt2 ;
1163   double HSMHV2_muecb0 ;
1164   double HSMHV2_muecb1 ;
1165   double HSMHV2_mueph1 ;
1166   double HSMHV2_mueph0 ;
1167   double HSMHV2_muephw ;
1168   double HSMHV2_muepwp ;
1169   double HSMHV2_muephl ;
1170   double HSMHV2_mueplp ;
1171   double HSMHV2_muephs ;
1172   double HSMHV2_muepsp ;
1173   double HSMHV2_vtmp ;
1174   double HSMHV2_wvth0 ;
1175   double HSMHV2_muesr1 ;
1176   double HSMHV2_muesr0 ;
1177   double HSMHV2_muesrw ;
1178   double HSMHV2_mueswp ;
1179   double HSMHV2_muesrl ;
1180   double HSMHV2_mueslp ;
1181   double HSMHV2_bb ;
1182   double HSMHV2_sub1 ;
1183   double HSMHV2_sub2 ;
1184   double HSMHV2_svgs ;
1185   double HSMHV2_svbs ;
1186   double HSMHV2_svbsl ;
1187   double HSMHV2_svds ;
1188   double HSMHV2_slg ;
1189   double HSMHV2_sub1l ;
1190   double HSMHV2_sub2l ;
1191   double HSMHV2_fn1 ;
1192   double HSMHV2_fn2 ;
1193   double HSMHV2_fn3 ;
1194   double HSMHV2_fvbs ;
1195   double HSMHV2_svgsl ;
1196   double HSMHV2_svgslp ;
1197   double HSMHV2_svgswp ;
1198   double HSMHV2_svgsw ;
1199   double HSMHV2_svbslp ;
1200   double HSMHV2_slgl ;
1201   double HSMHV2_slglp ;
1202   double HSMHV2_sub1lp ;
1203   double HSMHV2_nsti ;
1204   double HSMHV2_wsti ;
1205   double HSMHV2_wstil ;
1206   double HSMHV2_wstilp ;
1207   double HSMHV2_wstiw ;
1208   double HSMHV2_wstiwp ;
1209   double HSMHV2_scsti1 ;
1210   double HSMHV2_scsti2 ;
1211   double HSMHV2_vthsti ;
1212   double HSMHV2_vdsti ;
1213   double HSMHV2_muesti1 ;
1214   double HSMHV2_muesti2 ;
1215   double HSMHV2_muesti3 ;
1216   double HSMHV2_nsubpsti1 ;
1217   double HSMHV2_nsubpsti2 ;
1218   double HSMHV2_nsubpsti3 ;
1219   double HSMHV2_lpext ;
1220   double HSMHV2_npext ;
1221   double HSMHV2_scp22 ;
1222   double HSMHV2_scp21 ;
1223   double HSMHV2_bs1 ;
1224   double HSMHV2_bs2 ;
1225   double HSMHV2_cgso ;
1226   double HSMHV2_cgdo ;
1227   double HSMHV2_cgbo ;
1228   double HSMHV2_tpoly ;
1229   double HSMHV2_js0 ;
1230   double HSMHV2_js0sw ;
1231   double HSMHV2_nj ;
1232   double HSMHV2_njsw ;
1233   double HSMHV2_xti ;
1234   double HSMHV2_cj ;
1235   double HSMHV2_cjsw ;
1236   double HSMHV2_cjswg ;
1237   double HSMHV2_mj ;
1238   double HSMHV2_mjsw ;
1239   double HSMHV2_mjswg ;
1240   double HSMHV2_xti2 ;
1241   double HSMHV2_cisb ;
1242   double HSMHV2_cvb ;
1243   double HSMHV2_ctemp ;
1244   double HSMHV2_cisbk ;
1245   double HSMHV2_cvbk ;
1246   double HSMHV2_divx ;
1247   double HSMHV2_pb ;
1248   double HSMHV2_pbsw ;
1249   double HSMHV2_pbswg ;
1250   double HSMHV2_clm1 ;
1251   double HSMHV2_clm2 ;
1252   double HSMHV2_clm3 ;
1253   double HSMHV2_clm5 ;
1254   double HSMHV2_clm6 ;
1255   double HSMHV2_muetmp ;
1256   double HSMHV2_vover ;
1257   double HSMHV2_voverp ;
1258   double HSMHV2_vovers ;
1259   double HSMHV2_voversp ;
1260   double HSMHV2_wfc ;
1261   double HSMHV2_nsubcw ;
1262   double HSMHV2_nsubcwp ;
1263   double HSMHV2_qme1 ;
1264   double HSMHV2_qme2 ;
1265   double HSMHV2_qme3 ;
1266   double HSMHV2_gidl1 ;
1267   double HSMHV2_gidl2 ;
1268   double HSMHV2_gidl3 ;
1269   double HSMHV2_gidl4 ;
1270   double HSMHV2_gidl5 ;
1271   double HSMHV2_gleak1 ;
1272   double HSMHV2_gleak2 ;
1273   double HSMHV2_gleak3 ;
1274   double HSMHV2_gleak4 ;
1275   double HSMHV2_gleak5 ;
1276   double HSMHV2_gleak6 ;
1277   double HSMHV2_gleak7 ;
1278   double HSMHV2_glpart1 ;
1279   double HSMHV2_glksd1 ;
1280   double HSMHV2_glksd2 ;
1281   double HSMHV2_glksd3 ;
1282   double HSMHV2_glkb1 ;
1283   double HSMHV2_glkb2 ;
1284   double HSMHV2_glkb3 ;
1285   double HSMHV2_egig;
1286   double HSMHV2_igtemp2;
1287   double HSMHV2_igtemp3;
1288   double HSMHV2_vzadd0 ;
1289   double HSMHV2_pzadd0 ;
1290   double HSMHV2_nftrp ;
1291   double HSMHV2_nfalp ;
1292   double HSMHV2_cit ;
1293   double HSMHV2_falph ;
1294   double HSMHV2_kappa ;
1295   double HSMHV2_vdiffj ;
1296   double HSMHV2_dly1 ;
1297   double HSMHV2_dly2 ;
1298   double HSMHV2_dly3 ;
1299   double HSMHV2_dlyov;
1300   double HSMHV2_tnom ;
1301   double HSMHV2_ovslp ;
1302   double HSMHV2_ovmag ;
1303   /* substrate resistances */
1304   double HSMHV2_gbmin;
1305   double HSMHV2_rbpb ;
1306   double HSMHV2_rbpd ;
1307   double HSMHV2_rbps ;
1308   double HSMHV2_rbdb ;
1309   double HSMHV2_rbsb ;
1310   /* IBPC */
1311   double HSMHV2_ibpc1 ;
1312   double HSMHV2_ibpc1l ;
1313   double HSMHV2_ibpc1lp ;
1314   double HSMHV2_ibpc2 ;
1315   /* DFM */
1316   double HSMHV2_mphdfm ;
1317 
1318   double HSMHV2_ptl, HSMHV2_ptp, HSMHV2_pt2, HSMHV2_ptlp, HSMHV2_gdl, HSMHV2_gdlp  ;
1319 
1320   double HSMHV2_gdld ;
1321   double HSMHV2_pt4 ;
1322   double HSMHV2_pt4p ;
1323 
1324   double HSMHV2_vbsmin ;
1325   double HSMHV2_rdvg11 ;
1326   double HSMHV2_rdvg12 ;
1327   double HSMHV2_rd20 ;
1328 //double HSMHV2_qovsm ;
1329   double HSMHV2_ldrift ;
1330   double HSMHV2_rd21 ;
1331   double HSMHV2_rd22 ;
1332   double HSMHV2_rd22d ;
1333   double HSMHV2_rd23 ;
1334   double HSMHV2_rd24 ;
1335   double HSMHV2_rd25 ;
1336   double HSMHV2_rdvdl ;
1337   double HSMHV2_rdvdlp ;
1338   double HSMHV2_rdvds ;
1339   double HSMHV2_rdvdsp ;
1340   double HSMHV2_rd23l ;
1341   double HSMHV2_rd23lp ;
1342   double HSMHV2_rd23s ;
1343   double HSMHV2_rd23sp ;
1344   double HSMHV2_rds ;
1345   double HSMHV2_rdsp ;
1346 
1347   double HSMHV2_rdvd ;
1348   double HSMHV2_rdvb ;
1349 
1350   double HSMHV2_rdvsub ; /* substrate effect */
1351   double HSMHV2_rdvdsub ; /* substrate effect */
1352   double HSMHV2_ddrift ;  /* substrate effect */
1353   double HSMHV2_vbisub ;  /* substrate effect */
1354   double HSMHV2_nsubsub ; /* substrate effect */
1355 
1356   double HSMHV2_rth0 ;
1357   double HSMHV2_cth0 ;
1358   double HSMHV2_powrat ;
1359 
1360   double HSMHV2_tcjbd ;
1361   double HSMHV2_tcjbs ;
1362   double HSMHV2_tcjbdsw ;
1363   double HSMHV2_tcjbssw ;
1364   double HSMHV2_tcjbdswg ;
1365   double HSMHV2_tcjbsswg ;
1366 
1367 
1368   double HSMHV2_rdtemp1 ;
1369   double HSMHV2_rdtemp2 ;
1370   double HSMHV2_rth0r ; /* heat radiation for SHE */
1371   double HSMHV2_rdvdtemp1 ;
1372   double HSMHV2_rdvdtemp2 ;
1373   double HSMHV2_rth0w ;
1374   double HSMHV2_rth0wp ;
1375   double HSMHV2_rth0nf ;
1376 
1377   double HSMHV2_rthtemp1 ;
1378   double HSMHV2_rthtemp2 ;
1379   double HSMHV2_prattemp1 ;
1380   double HSMHV2_prattemp2 ;
1381 
1382 
1383   double HSMHV2_cvdsover ;
1384 
1385   double HSMHV2_rdrmue ;
1386   double HSMHV2_rdrvmax ;
1387   double HSMHV2_rdrmuetmp ;
1388   double HSMHV2_ndepm ;
1389   double HSMHV2_tndep ;
1390   double HSMHV2_depmue0 ;
1391   double HSMHV2_depmue1 ;
1392   double HSMHV2_depmueback0 ;
1393   double HSMHV2_depmueback1 ;
1394   double HSMHV2_depvmax ;
1395   double HSMHV2_depvdsef1 ;
1396   double HSMHV2_depvdsef2 ;
1397   double HSMHV2_depmueph0 ;
1398   double HSMHV2_depmueph1 ;
1399   double HSMHV2_depbb ;
1400   double HSMHV2_depleak ;
1401   double HSMHV2_depeta ;
1402   double HSMHV2_depvtmp ;
1403   double HSMHV2_depmuetmp ;
1404 
1405   double HSMHV2_isbreak ;
1406   double HSMHV2_rwell ;
1407 
1408   double HSMHV2_rdrvtmp ;
1409   //  double HSMHV2_rdrvmaxt1 ;
1410   //  double HSMHV2_rdrvmaxt2 ;
1411   double HSMHV2_rdrdjunc ;
1412   double HSMHV2_rdrcx ;
1413   double HSMHV2_rdrcar ;
1414   double HSMHV2_rdrdl1 ;
1415   double HSMHV2_rdrdl2 ;
1416   double HSMHV2_rdrvmaxw ;
1417   double HSMHV2_rdrvmaxwp ;
1418   double HSMHV2_rdrvmaxl ;
1419   double HSMHV2_rdrvmaxlp ;
1420   double HSMHV2_rdrmuel ;
1421   double HSMHV2_rdrmuelp ;
1422   double HSMHV2_qovadd;
1423   double HSMHV2_rdrqover ;
1424   double HSMHV2_js0d;
1425   double HSMHV2_js0swd;
1426   double HSMHV2_njd;
1427   double HSMHV2_njswd;
1428   double HSMHV2_xtid;
1429   double HSMHV2_cjd;
1430   double HSMHV2_cjswd;
1431   double HSMHV2_cjswgd;
1432   double HSMHV2_mjd;
1433   double HSMHV2_mjswd;
1434   double HSMHV2_mjswgd;
1435   double HSMHV2_pbd;
1436   double HSMHV2_pbswd;
1437   double HSMHV2_pbswgd;
1438   double HSMHV2_xti2d;
1439   double HSMHV2_cisbd;
1440   double HSMHV2_cvbd;
1441   double HSMHV2_ctempd;
1442   double HSMHV2_cisbkd;
1443   double HSMHV2_divxd;
1444   double HSMHV2_vdiffjd;
1445   double HSMHV2_js0s;
1446   double HSMHV2_js0sws;
1447   double HSMHV2_njs;
1448   double HSMHV2_njsws;
1449   double HSMHV2_xtis;
1450   double HSMHV2_cjs;
1451   double HSMHV2_cjsws;
1452   double HSMHV2_cjswgs;
1453   double HSMHV2_mjs;
1454   double HSMHV2_mjsws;
1455   double HSMHV2_mjswgs;
1456   double HSMHV2_pbs;
1457   double HSMHV2_pbsws;
1458   double HSMHV2_pbswgs;
1459   double HSMHV2_xti2s;
1460   double HSMHV2_cisbs;
1461   double HSMHV2_cvbs;
1462   double HSMHV2_ctemps;
1463   double HSMHV2_cisbks;
1464   double HSMHV2_divxs;
1465   double HSMHV2_vdiffjs;
1466   double HSMHV2_shemax;
1467   double HSMHV2_vgsmin;
1468   double HSMHV2_gdsleak;
1469   double HSMHV2_rdrbb;
1470   double HSMHV2_rdrbbtmp;
1471 
1472 
1473   /* binning parameters */
1474   double HSMHV2_lmin ;
1475   double HSMHV2_lmax ;
1476   double HSMHV2_wmin ;
1477   double HSMHV2_wmax ;
1478   double HSMHV2_lbinn ;
1479   double HSMHV2_wbinn ;
1480 
1481   /* Length dependence */
1482   double HSMHV2_lvmax ;
1483   double HSMHV2_lbgtmp1 ;
1484   double HSMHV2_lbgtmp2 ;
1485   double HSMHV2_leg0 ;
1486   double HSMHV2_lvfbover ;
1487   double HSMHV2_lnover ;
1488   double HSMHV2_lnovers ;
1489   double HSMHV2_lwl2 ;
1490   double HSMHV2_lvfbc ;
1491   double HSMHV2_lnsubc ;
1492   double HSMHV2_lnsubp ;
1493   double HSMHV2_lscp1 ;
1494   double HSMHV2_lscp2 ;
1495   double HSMHV2_lscp3 ;
1496   double HSMHV2_lsc1 ;
1497   double HSMHV2_lsc2 ;
1498   double HSMHV2_lsc3 ;
1499   double HSMHV2_lpgd1 ;
1500 //double HSMHV2_lpgd3 ;
1501   double HSMHV2_lndep ;
1502   double HSMHV2_lninv ;
1503   double HSMHV2_lmuecb0 ;
1504   double HSMHV2_lmuecb1 ;
1505   double HSMHV2_lmueph1 ;
1506   double HSMHV2_lvtmp ;
1507   double HSMHV2_lwvth0 ;
1508   double HSMHV2_lmuesr1 ;
1509   double HSMHV2_lmuetmp ;
1510   double HSMHV2_lsub1 ;
1511   double HSMHV2_lsub2 ;
1512   double HSMHV2_lsvds ;
1513   double HSMHV2_lsvbs ;
1514   double HSMHV2_lsvgs ;
1515   double HSMHV2_lfn1 ;
1516   double HSMHV2_lfn2 ;
1517   double HSMHV2_lfn3 ;
1518   double HSMHV2_lfvbs ;
1519   double HSMHV2_lnsti ;
1520   double HSMHV2_lwsti ;
1521   double HSMHV2_lscsti1 ;
1522   double HSMHV2_lscsti2 ;
1523   double HSMHV2_lvthsti ;
1524   double HSMHV2_lmuesti1 ;
1525   double HSMHV2_lmuesti2 ;
1526   double HSMHV2_lmuesti3 ;
1527   double HSMHV2_lnsubpsti1 ;
1528   double HSMHV2_lnsubpsti2 ;
1529   double HSMHV2_lnsubpsti3 ;
1530   double HSMHV2_lcgso ;
1531   double HSMHV2_lcgdo ;
1532   double HSMHV2_ljs0 ;
1533   double HSMHV2_ljs0sw ;
1534   double HSMHV2_lnj ;
1535   double HSMHV2_lcisbk ;
1536   double HSMHV2_lclm1 ;
1537   double HSMHV2_lclm2 ;
1538   double HSMHV2_lclm3 ;
1539   double HSMHV2_lwfc ;
1540   double HSMHV2_lgidl1 ;
1541   double HSMHV2_lgidl2 ;
1542   double HSMHV2_lgleak1 ;
1543   double HSMHV2_lgleak2 ;
1544   double HSMHV2_lgleak3 ;
1545   double HSMHV2_lgleak6 ;
1546   double HSMHV2_lglksd1 ;
1547   double HSMHV2_lglksd2 ;
1548   double HSMHV2_lglkb1 ;
1549   double HSMHV2_lglkb2 ;
1550   double HSMHV2_lnftrp ;
1551   double HSMHV2_lnfalp ;
1552   double HSMHV2_lvdiffj ;
1553   double HSMHV2_libpc1 ;
1554   double HSMHV2_libpc2 ;
1555   double HSMHV2_lcgbo ;
1556   double HSMHV2_lcvdsover ;
1557   double HSMHV2_lfalph ;
1558   double HSMHV2_lnpext ;
1559   double HSMHV2_lpowrat ;
1560   double HSMHV2_lrd ;
1561   double HSMHV2_lrd22 ;
1562   double HSMHV2_lrd23 ;
1563   double HSMHV2_lrd24 ;
1564   double HSMHV2_lrdict1 ;
1565   double HSMHV2_lrdov13 ;
1566   double HSMHV2_lrdslp1 ;
1567   double HSMHV2_lrdvb ;
1568   double HSMHV2_lrdvd ;
1569   double HSMHV2_lrdvg11 ;
1570   double HSMHV2_lrs ;
1571   double HSMHV2_lrth0 ;
1572   double HSMHV2_lvover ;
1573   double HSMHV2_ljs0d;
1574   double HSMHV2_ljs0swd;
1575   double HSMHV2_lnjd;
1576   double HSMHV2_lcisbkd;
1577   double HSMHV2_lvdiffjd;
1578   double HSMHV2_ljs0s;
1579   double HSMHV2_ljs0sws;
1580   double HSMHV2_lnjs;
1581   double HSMHV2_lcisbks;
1582   double HSMHV2_lvdiffjs;
1583 
1584   /* Width dependence */
1585   double HSMHV2_wvmax ;
1586   double HSMHV2_wbgtmp1 ;
1587   double HSMHV2_wbgtmp2 ;
1588   double HSMHV2_weg0 ;
1589   double HSMHV2_wvfbover ;
1590   double HSMHV2_wnover ;
1591   double HSMHV2_wnovers ;
1592   double HSMHV2_wwl2 ;
1593   double HSMHV2_wvfbc ;
1594   double HSMHV2_wnsubc ;
1595   double HSMHV2_wnsubp ;
1596   double HSMHV2_wscp1 ;
1597   double HSMHV2_wscp2 ;
1598   double HSMHV2_wscp3 ;
1599   double HSMHV2_wsc1 ;
1600   double HSMHV2_wsc2 ;
1601   double HSMHV2_wsc3 ;
1602   double HSMHV2_wpgd1 ;
1603 //double HSMHV2_wpgd3 ;
1604   double HSMHV2_wndep ;
1605   double HSMHV2_wninv ;
1606   double HSMHV2_wmuecb0 ;
1607   double HSMHV2_wmuecb1 ;
1608   double HSMHV2_wmueph1 ;
1609   double HSMHV2_wvtmp ;
1610   double HSMHV2_wwvth0 ;
1611   double HSMHV2_wmuesr1 ;
1612   double HSMHV2_wmuetmp ;
1613   double HSMHV2_wsub1 ;
1614   double HSMHV2_wsub2 ;
1615   double HSMHV2_wsvds ;
1616   double HSMHV2_wsvbs ;
1617   double HSMHV2_wsvgs ;
1618   double HSMHV2_wfn1 ;
1619   double HSMHV2_wfn2 ;
1620   double HSMHV2_wfn3 ;
1621   double HSMHV2_wfvbs ;
1622   double HSMHV2_wnsti ;
1623   double HSMHV2_wwsti ;
1624   double HSMHV2_wscsti1 ;
1625   double HSMHV2_wscsti2 ;
1626   double HSMHV2_wvthsti ;
1627   double HSMHV2_wmuesti1 ;
1628   double HSMHV2_wmuesti2 ;
1629   double HSMHV2_wmuesti3 ;
1630   double HSMHV2_wnsubpsti1 ;
1631   double HSMHV2_wnsubpsti2 ;
1632   double HSMHV2_wnsubpsti3 ;
1633   double HSMHV2_wcgso ;
1634   double HSMHV2_wcgdo ;
1635   double HSMHV2_wjs0 ;
1636   double HSMHV2_wjs0sw ;
1637   double HSMHV2_wnj ;
1638   double HSMHV2_wcisbk ;
1639   double HSMHV2_wclm1 ;
1640   double HSMHV2_wclm2 ;
1641   double HSMHV2_wclm3 ;
1642   double HSMHV2_wwfc ;
1643   double HSMHV2_wgidl1 ;
1644   double HSMHV2_wgidl2 ;
1645   double HSMHV2_wgleak1 ;
1646   double HSMHV2_wgleak2 ;
1647   double HSMHV2_wgleak3 ;
1648   double HSMHV2_wgleak6 ;
1649   double HSMHV2_wglksd1 ;
1650   double HSMHV2_wglksd2 ;
1651   double HSMHV2_wglkb1 ;
1652   double HSMHV2_wglkb2 ;
1653   double HSMHV2_wnftrp ;
1654   double HSMHV2_wnfalp ;
1655   double HSMHV2_wvdiffj ;
1656   double HSMHV2_wibpc1 ;
1657   double HSMHV2_wibpc2 ;
1658   double HSMHV2_wcgbo ;
1659   double HSMHV2_wcvdsover ;
1660   double HSMHV2_wfalph ;
1661   double HSMHV2_wnpext ;
1662   double HSMHV2_wpowrat ;
1663   double HSMHV2_wrd ;
1664   double HSMHV2_wrd22 ;
1665   double HSMHV2_wrd23 ;
1666   double HSMHV2_wrd24 ;
1667   double HSMHV2_wrdict1 ;
1668   double HSMHV2_wrdov13 ;
1669   double HSMHV2_wrdslp1 ;
1670   double HSMHV2_wrdvb ;
1671   double HSMHV2_wrdvd ;
1672   double HSMHV2_wrdvg11 ;
1673   double HSMHV2_wrs ;
1674   double HSMHV2_wrth0 ;
1675   double HSMHV2_wvover ;
1676   double HSMHV2_wjs0d;
1677   double HSMHV2_wjs0swd;
1678   double HSMHV2_wnjd;
1679   double HSMHV2_wcisbkd;
1680   double HSMHV2_wvdiffjd;
1681   double HSMHV2_wjs0s;
1682   double HSMHV2_wjs0sws;
1683   double HSMHV2_wnjs;
1684   double HSMHV2_wcisbks;
1685   double HSMHV2_wvdiffjs;
1686 
1687   /* Cross-term dependence */
1688   double HSMHV2_pvmax ;
1689   double HSMHV2_pbgtmp1 ;
1690   double HSMHV2_pbgtmp2 ;
1691   double HSMHV2_peg0 ;
1692   double HSMHV2_pvfbover ;
1693   double HSMHV2_pnover ;
1694   double HSMHV2_pnovers ;
1695   double HSMHV2_pwl2 ;
1696   double HSMHV2_pvfbc ;
1697   double HSMHV2_pnsubc ;
1698   double HSMHV2_pnsubp ;
1699   double HSMHV2_pscp1 ;
1700   double HSMHV2_pscp2 ;
1701   double HSMHV2_pscp3 ;
1702   double HSMHV2_psc1 ;
1703   double HSMHV2_psc2 ;
1704   double HSMHV2_psc3 ;
1705   double HSMHV2_ppgd1 ;
1706 //double HSMHV2_ppgd3 ;
1707   double HSMHV2_pndep ;
1708   double HSMHV2_pninv ;
1709   double HSMHV2_pmuecb0 ;
1710   double HSMHV2_pmuecb1 ;
1711   double HSMHV2_pmueph1 ;
1712   double HSMHV2_pvtmp ;
1713   double HSMHV2_pwvth0 ;
1714   double HSMHV2_pmuesr1 ;
1715   double HSMHV2_pmuetmp ;
1716   double HSMHV2_psub1 ;
1717   double HSMHV2_psub2 ;
1718   double HSMHV2_psvds ;
1719   double HSMHV2_psvbs ;
1720   double HSMHV2_psvgs ;
1721   double HSMHV2_pfn1 ;
1722   double HSMHV2_pfn2 ;
1723   double HSMHV2_pfn3 ;
1724   double HSMHV2_pfvbs ;
1725   double HSMHV2_pnsti ;
1726   double HSMHV2_pwsti ;
1727   double HSMHV2_pscsti1 ;
1728   double HSMHV2_pscsti2 ;
1729   double HSMHV2_pvthsti ;
1730   double HSMHV2_pmuesti1 ;
1731   double HSMHV2_pmuesti2 ;
1732   double HSMHV2_pmuesti3 ;
1733   double HSMHV2_pnsubpsti1 ;
1734   double HSMHV2_pnsubpsti2 ;
1735   double HSMHV2_pnsubpsti3 ;
1736   double HSMHV2_pcgso ;
1737   double HSMHV2_pcgdo ;
1738   double HSMHV2_pjs0 ;
1739   double HSMHV2_pjs0sw ;
1740   double HSMHV2_pnj ;
1741   double HSMHV2_pcisbk ;
1742   double HSMHV2_pclm1 ;
1743   double HSMHV2_pclm2 ;
1744   double HSMHV2_pclm3 ;
1745   double HSMHV2_pwfc ;
1746   double HSMHV2_pgidl1 ;
1747   double HSMHV2_pgidl2 ;
1748   double HSMHV2_pgleak1 ;
1749   double HSMHV2_pgleak2 ;
1750   double HSMHV2_pgleak3 ;
1751   double HSMHV2_pgleak6 ;
1752   double HSMHV2_pglksd1 ;
1753   double HSMHV2_pglksd2 ;
1754   double HSMHV2_pglkb1 ;
1755   double HSMHV2_pglkb2 ;
1756   double HSMHV2_pnftrp ;
1757   double HSMHV2_pnfalp ;
1758   double HSMHV2_pvdiffj ;
1759   double HSMHV2_pibpc1 ;
1760   double HSMHV2_pibpc2 ;
1761   double HSMHV2_pcgbo ;
1762   double HSMHV2_pcvdsover ;
1763   double HSMHV2_pfalph ;
1764   double HSMHV2_pnpext ;
1765   double HSMHV2_ppowrat ;
1766   double HSMHV2_prd ;
1767   double HSMHV2_prd22 ;
1768   double HSMHV2_prd23 ;
1769   double HSMHV2_prd24 ;
1770   double HSMHV2_prdict1 ;
1771   double HSMHV2_prdov13 ;
1772   double HSMHV2_prdslp1 ;
1773   double HSMHV2_prdvb ;
1774   double HSMHV2_prdvd ;
1775   double HSMHV2_prdvg11 ;
1776   double HSMHV2_prs ;
1777   double HSMHV2_prth0 ;
1778   double HSMHV2_pvover ;
1779   double HSMHV2_pjs0d;
1780   double HSMHV2_pjs0swd;
1781   double HSMHV2_pnjd;
1782   double HSMHV2_pcisbkd;
1783   double HSMHV2_pvdiffjd;
1784   double HSMHV2_pjs0s;
1785   double HSMHV2_pjs0sws;
1786   double HSMHV2_pnjs;
1787   double HSMHV2_pcisbks;
1788   double HSMHV2_pvdiffjs;
1789 
1790   /* internal variables */
1791   double HSMHV2_exptempd ;
1792   double HSMHV2_exptemps ;
1793   double HSMHV2_jd_nvtm_invd ;
1794   double HSMHV2_jd_nvtm_invs ;
1795   double HSMHV2_vcrit ;
1796   int HSMHV2_flg_qme ;
1797   double HSMHV2_qme12 ;
1798   double HSMHV2_ktnom ;
1799 
1800   int HSMHV2_subversion ;
1801   int HSMHV2_revision ;
1802 
1803   double HSMHV2vgsMax;
1804   double HSMHV2vgdMax;
1805   double HSMHV2vgbMax;
1806   double HSMHV2vdsMax;
1807   double HSMHV2vbsMax;
1808   double HSMHV2vbdMax;
1809   double HSMHV2vgsrMax;
1810   double HSMHV2vgdrMax;
1811   double HSMHV2vgbrMax;
1812   double HSMHV2vbsrMax;
1813   double HSMHV2vbdrMax;
1814 
1815   HSMHV2modelMKSParam modelMKS ; /* unit-converted parameters */
1816 
1817 
1818   /* flag for model */
1819   unsigned HSMHV2_type_Given  :1;
1820   unsigned HSMHV2_level_Given  :1;
1821   unsigned HSMHV2_info_Given  :1;
1822   unsigned HSMHV2_noise_Given :1;
1823   unsigned HSMHV2_version_Given :1;
1824   unsigned HSMHV2_show_Given :1;
1825   unsigned HSMHV2_corsrd_Given  :1;
1826   unsigned HSMHV2_corg_Given    :1;
1827   unsigned HSMHV2_coiprv_Given  :1;
1828   unsigned HSMHV2_copprv_Given  :1;
1829   unsigned HSMHV2_coadov_Given  :1;
1830   unsigned HSMHV2_coisub_Given  :1;
1831   unsigned HSMHV2_coiigs_Given  :1;
1832   unsigned HSMHV2_cogidl_Given  :1;
1833   unsigned HSMHV2_coovlp_Given  :1;
1834   unsigned HSMHV2_coovlps_Given  :1;
1835   unsigned HSMHV2_coflick_Given  :1;
1836   unsigned HSMHV2_coisti_Given  :1;
1837   unsigned HSMHV2_conqs_Given  :1;
1838   unsigned HSMHV2_corbnet_Given  :1;
1839   unsigned HSMHV2_cothrml_Given  :1;
1840   unsigned HSMHV2_coign_Given  :1;      /* Induced gate noise */
1841   unsigned HSMHV2_codfm_Given  :1;      /* DFM */
1842   unsigned HSMHV2_coqovsm_Given  :1;
1843   unsigned HSMHV2_coselfheat_Given  :1; /* Self-heating model */
1844   unsigned HSMHV2_cosubnode_Given  :1;  /* switch tempNode to subNode */
1845   unsigned HSMHV2_cosym_Given  :1;      /* Symmetry model for HV */
1846   unsigned HSMHV2_cotemp_Given  :1;
1847   unsigned HSMHV2_coldrift_Given  :1;
1848   unsigned HSMHV2_cordrift_Given  :1;
1849   unsigned HSMHV2_coerrrep_Given  :1;
1850   unsigned HSMHV2_codep_Given  :1;
1851   unsigned HSMHV2_coddlt_Given  :1;
1852   unsigned HSMHV2_kappa_Given :1;
1853   unsigned HSMHV2_vdiffj_Given :1;
1854   unsigned HSMHV2_vmax_Given  :1;
1855   unsigned HSMHV2_vmaxt1_Given  :1;
1856   unsigned HSMHV2_vmaxt2_Given  :1;
1857   unsigned HSMHV2_bgtmp1_Given  :1;
1858   unsigned HSMHV2_bgtmp2_Given  :1;
1859   unsigned HSMHV2_eg0_Given  :1;
1860   unsigned HSMHV2_tox_Given  :1;
1861   unsigned HSMHV2_xld_Given  :1;
1862   unsigned HSMHV2_xldld_Given  :1;
1863   unsigned HSMHV2_xwdld_Given  :1;
1864   unsigned HSMHV2_lover_Given  :1;
1865   unsigned HSMHV2_lovers_Given  :1;
1866   unsigned HSMHV2_rdov11_Given  :1;
1867   unsigned HSMHV2_rdov12_Given  :1;
1868   unsigned HSMHV2_rdov13_Given  :1;
1869   unsigned HSMHV2_rdslp1_Given  :1;
1870   unsigned HSMHV2_rdict1_Given  :1;
1871   unsigned HSMHV2_rdslp2_Given  :1;
1872   unsigned HSMHV2_rdict2_Given  :1;
1873   unsigned HSMHV2_loverld_Given  :1;
1874   unsigned HSMHV2_ldrift1_Given  :1;
1875   unsigned HSMHV2_ldrift2_Given  :1;
1876   unsigned HSMHV2_ldrift1s_Given  :1;
1877   unsigned HSMHV2_ldrift2s_Given  :1;
1878   unsigned HSMHV2_subld1_Given  :1;
1879   unsigned HSMHV2_subld1l_Given  :1;
1880   unsigned HSMHV2_subld1lp_Given  :1;
1881   unsigned HSMHV2_subld2_Given  :1;
1882   unsigned HSMHV2_xpdv_Given  :1;
1883   unsigned HSMHV2_xpvdth_Given  :1;
1884   unsigned HSMHV2_xpvdthg_Given  :1;
1885   unsigned HSMHV2_ddltmax_Given  :1;
1886   unsigned HSMHV2_ddltslp_Given  :1;
1887   unsigned HSMHV2_ddltict_Given  :1;
1888   unsigned HSMHV2_vfbover_Given  :1;
1889   unsigned HSMHV2_nover_Given  :1;
1890   unsigned HSMHV2_novers_Given  :1;
1891   unsigned HSMHV2_xwd_Given  :1;
1892   unsigned HSMHV2_xwdc_Given  :1;
1893   unsigned HSMHV2_xl_Given  :1;
1894   unsigned HSMHV2_xw_Given  :1;
1895   unsigned HSMHV2_saref_Given  :1;
1896   unsigned HSMHV2_sbref_Given  :1;
1897   unsigned HSMHV2_ll_Given  :1;
1898   unsigned HSMHV2_lld_Given  :1;
1899   unsigned HSMHV2_lln_Given  :1;
1900   unsigned HSMHV2_wl_Given  :1;
1901   unsigned HSMHV2_wl1_Given  :1;
1902   unsigned HSMHV2_wl1p_Given  :1;
1903   unsigned HSMHV2_wl2_Given  :1;
1904   unsigned HSMHV2_wl2p_Given  :1;
1905   unsigned HSMHV2_wld_Given  :1;
1906   unsigned HSMHV2_wln_Given  :1;
1907   unsigned HSMHV2_xqy_Given  :1;
1908   unsigned HSMHV2_xqy1_Given  :1;
1909   unsigned HSMHV2_xqy2_Given  :1;
1910   unsigned HSMHV2_rs_Given  :1;
1911   unsigned HSMHV2_rd_Given  :1;
1912   unsigned HSMHV2_rsh_Given  :1;
1913   unsigned HSMHV2_rshg_Given  :1;
1914 /*   unsigned HSMHV2_ngcon_Given  :1; */
1915 /*   unsigned HSMHV2_xgw_Given  :1; */
1916 /*   unsigned HSMHV2_xgl_Given  :1; */
1917 /*   unsigned HSMHV2_nf_Given  :1; */
1918   unsigned HSMHV2_vfbc_Given  :1;
1919   unsigned HSMHV2_vbi_Given  :1;
1920   unsigned HSMHV2_nsubc_Given  :1;
1921   unsigned HSMHV2_parl2_Given  :1;
1922   unsigned HSMHV2_lp_Given  :1;
1923   unsigned HSMHV2_nsubp_Given  :1;
1924   unsigned HSMHV2_ndepm_Given  :1;
1925   unsigned HSMHV2_tndep_Given  :1;
1926   unsigned HSMHV2_depmue0_Given  :1;
1927   unsigned HSMHV2_depmue1_Given  :1;
1928   unsigned HSMHV2_depmueback0_Given  :1;
1929   unsigned HSMHV2_depmueback1_Given  :1;
1930   unsigned HSMHV2_depleak_Given  :1;
1931   unsigned HSMHV2_depeta_Given  :1;
1932   unsigned HSMHV2_depvmax_Given  :1;
1933   unsigned HSMHV2_depvdsef1_Given  :1;
1934   unsigned HSMHV2_depvdsef2_Given  :1;
1935   unsigned HSMHV2_depmueph0_Given  :1;
1936   unsigned HSMHV2_depmueph1_Given  :1;
1937   unsigned HSMHV2_depbb_Given  :1;
1938   unsigned HSMHV2_depvtmp_Given  :1;
1939   unsigned HSMHV2_depmuetmp_Given  :1;
1940 
1941   unsigned HSMHV2_isbreak_Given  :1;
1942   unsigned HSMHV2_rwell_Given  :1;
1943 
1944 
1945   unsigned HSMHV2_nsubp0_Given  :1;
1946   unsigned HSMHV2_nsubwp_Given  :1;
1947   unsigned HSMHV2_scp1_Given  :1;
1948   unsigned HSMHV2_scp2_Given  :1;
1949   unsigned HSMHV2_scp3_Given  :1;
1950   unsigned HSMHV2_sc1_Given  :1;
1951   unsigned HSMHV2_sc2_Given  :1;
1952   unsigned HSMHV2_sc3_Given  :1;
1953   unsigned HSMHV2_sc4_Given  :1;
1954   unsigned HSMHV2_pgd1_Given  :1;
1955   unsigned HSMHV2_pgd2_Given  :1;
1956   unsigned HSMHV2_pgd4_Given  :1;
1957   unsigned HSMHV2_ndep_Given  :1;
1958   unsigned HSMHV2_ndepl_Given  :1;
1959   unsigned HSMHV2_ndeplp_Given  :1;
1960   unsigned HSMHV2_ninv_Given  :1;
1961   unsigned HSMHV2_muecb0_Given  :1;
1962   unsigned HSMHV2_muecb1_Given  :1;
1963   unsigned HSMHV2_mueph1_Given  :1;
1964   unsigned HSMHV2_mueph0_Given  :1;
1965   unsigned HSMHV2_muephw_Given  :1;
1966   unsigned HSMHV2_muepwp_Given  :1;
1967   unsigned HSMHV2_muephl_Given  :1;
1968   unsigned HSMHV2_mueplp_Given  :1;
1969   unsigned HSMHV2_muephs_Given  :1;
1970   unsigned HSMHV2_muepsp_Given  :1;
1971   unsigned HSMHV2_vtmp_Given  :1;
1972   unsigned HSMHV2_wvth0_Given  :1;
1973   unsigned HSMHV2_muesr1_Given  :1;
1974   unsigned HSMHV2_muesr0_Given  :1;
1975   unsigned HSMHV2_muesrl_Given  :1;
1976   unsigned HSMHV2_mueslp_Given  :1;
1977   unsigned HSMHV2_muesrw_Given  :1;
1978   unsigned HSMHV2_mueswp_Given  :1;
1979   unsigned HSMHV2_bb_Given  :1;
1980   unsigned HSMHV2_sub1_Given  :1;
1981   unsigned HSMHV2_sub2_Given  :1;
1982   unsigned HSMHV2_svgs_Given  :1;
1983   unsigned HSMHV2_svbs_Given  :1;
1984   unsigned HSMHV2_svbsl_Given  :1;
1985   unsigned HSMHV2_svds_Given  :1;
1986   unsigned HSMHV2_slg_Given  :1;
1987   unsigned HSMHV2_sub1l_Given  :1;
1988   unsigned HSMHV2_sub2l_Given  :1;
1989   unsigned HSMHV2_fn1_Given  :1;
1990   unsigned HSMHV2_fn2_Given  :1;
1991   unsigned HSMHV2_fn3_Given  :1;
1992   unsigned HSMHV2_fvbs_Given  :1;
1993   unsigned HSMHV2_svgsl_Given  :1;
1994   unsigned HSMHV2_svgslp_Given  :1;
1995   unsigned HSMHV2_svgswp_Given  :1;
1996   unsigned HSMHV2_svgsw_Given  :1;
1997   unsigned HSMHV2_svbslp_Given  :1;
1998   unsigned HSMHV2_slgl_Given  :1;
1999   unsigned HSMHV2_slglp_Given  :1;
2000   unsigned HSMHV2_sub1lp_Given  :1;
2001   unsigned HSMHV2_nsti_Given  :1;
2002   unsigned HSMHV2_wsti_Given  :1;
2003   unsigned HSMHV2_wstil_Given  :1;
2004   unsigned HSMHV2_wstilp_Given  :1;
2005   unsigned HSMHV2_wstiw_Given  :1;
2006   unsigned HSMHV2_wstiwp_Given  :1;
2007   unsigned HSMHV2_scsti1_Given  :1;
2008   unsigned HSMHV2_scsti2_Given  :1;
2009   unsigned HSMHV2_vthsti_Given  :1;
2010   unsigned HSMHV2_vdsti_Given  :1;
2011   unsigned HSMHV2_muesti1_Given  :1;
2012   unsigned HSMHV2_muesti2_Given  :1;
2013   unsigned HSMHV2_muesti3_Given  :1;
2014   unsigned HSMHV2_nsubpsti1_Given  :1;
2015   unsigned HSMHV2_nsubpsti2_Given  :1;
2016   unsigned HSMHV2_nsubpsti3_Given  :1;
2017   unsigned HSMHV2_lpext_Given  :1;
2018   unsigned HSMHV2_npext_Given  :1;
2019   unsigned HSMHV2_scp22_Given  :1;
2020   unsigned HSMHV2_scp21_Given  :1;
2021   unsigned HSMHV2_bs1_Given  :1;
2022   unsigned HSMHV2_bs2_Given  :1;
2023   unsigned HSMHV2_cgso_Given  :1;
2024   unsigned HSMHV2_cgdo_Given  :1;
2025   unsigned HSMHV2_cgbo_Given  :1;
2026   unsigned HSMHV2_tpoly_Given  :1;
2027   unsigned HSMHV2_js0_Given  :1;
2028   unsigned HSMHV2_js0sw_Given  :1;
2029   unsigned HSMHV2_nj_Given  :1;
2030   unsigned HSMHV2_njsw_Given  :1;
2031   unsigned HSMHV2_xti_Given  :1;
2032   unsigned HSMHV2_cj_Given  :1;
2033   unsigned HSMHV2_cjsw_Given  :1;
2034   unsigned HSMHV2_cjswg_Given  :1;
2035   unsigned HSMHV2_mj_Given  :1;
2036   unsigned HSMHV2_mjsw_Given  :1;
2037   unsigned HSMHV2_mjswg_Given  :1;
2038   unsigned HSMHV2_xti2_Given  :1;
2039   unsigned HSMHV2_cisb_Given  :1;
2040   unsigned HSMHV2_cvb_Given  :1;
2041   unsigned HSMHV2_ctemp_Given  :1;
2042   unsigned HSMHV2_cisbk_Given  :1;
2043   unsigned HSMHV2_cvbk_Given  :1;
2044   unsigned HSMHV2_divx_Given  :1;
2045   unsigned HSMHV2_pb_Given  :1;
2046   unsigned HSMHV2_pbsw_Given  :1;
2047   unsigned HSMHV2_pbswg_Given  :1;
2048   unsigned HSMHV2_clm1_Given  :1;
2049   unsigned HSMHV2_clm2_Given  :1;
2050   unsigned HSMHV2_clm3_Given  :1;
2051   unsigned HSMHV2_clm5_Given  :1;
2052   unsigned HSMHV2_clm6_Given  :1;
2053   unsigned HSMHV2_muetmp_Given  :1;
2054   unsigned HSMHV2_vover_Given  :1;
2055   unsigned HSMHV2_voverp_Given  :1;
2056   unsigned HSMHV2_vovers_Given  :1;
2057   unsigned HSMHV2_voversp_Given  :1;
2058   unsigned HSMHV2_wfc_Given  :1;
2059   unsigned HSMHV2_nsubcw_Given  :1;
2060   unsigned HSMHV2_nsubcwp_Given  :1;
2061   unsigned HSMHV2_qme1_Given  :1;
2062   unsigned HSMHV2_qme2_Given  :1;
2063   unsigned HSMHV2_qme3_Given  :1;
2064   unsigned HSMHV2_gidl1_Given  :1;
2065   unsigned HSMHV2_gidl2_Given  :1;
2066   unsigned HSMHV2_gidl3_Given  :1;
2067   unsigned HSMHV2_gidl4_Given  :1;
2068   unsigned HSMHV2_gidl5_Given  :1;
2069   unsigned HSMHV2_gleak1_Given  :1;
2070   unsigned HSMHV2_gleak2_Given  :1;
2071   unsigned HSMHV2_gleak3_Given  :1;
2072   unsigned HSMHV2_gleak4_Given  :1;
2073   unsigned HSMHV2_gleak5_Given  :1;
2074   unsigned HSMHV2_gleak6_Given  :1;
2075   unsigned HSMHV2_gleak7_Given  :1;
2076   unsigned HSMHV2_glpart1_Given  :1;
2077   unsigned HSMHV2_glksd1_Given  :1;
2078   unsigned HSMHV2_glksd2_Given  :1;
2079   unsigned HSMHV2_glksd3_Given  :1;
2080   unsigned HSMHV2_glkb1_Given  :1;
2081   unsigned HSMHV2_glkb2_Given  :1;
2082   unsigned HSMHV2_glkb3_Given  :1;
2083   unsigned HSMHV2_egig_Given  :1;
2084   unsigned HSMHV2_igtemp2_Given  :1;
2085   unsigned HSMHV2_igtemp3_Given  :1;
2086   unsigned HSMHV2_vzadd0_Given  :1;
2087   unsigned HSMHV2_pzadd0_Given  :1;
2088   unsigned HSMHV2_nftrp_Given  :1;
2089   unsigned HSMHV2_nfalp_Given  :1;
2090   unsigned HSMHV2_cit_Given  :1;
2091   unsigned HSMHV2_falph_Given  :1;
2092   unsigned HSMHV2_dly1_Given :1;
2093   unsigned HSMHV2_dly2_Given :1;
2094   unsigned HSMHV2_dly3_Given :1;
2095   unsigned HSMHV2_dlyov_Given :1;
2096   unsigned HSMHV2_tnom_Given :1;
2097   unsigned HSMHV2_ovslp_Given :1;
2098   unsigned HSMHV2_ovmag_Given :1;
2099   unsigned HSMHV2_gbmin_Given :1;
2100   unsigned HSMHV2_rbpb_Given :1;
2101   unsigned HSMHV2_rbpd_Given :1;
2102   unsigned HSMHV2_rbps_Given :1;
2103   unsigned HSMHV2_rbdb_Given :1;
2104   unsigned HSMHV2_rbsb_Given :1;
2105   unsigned HSMHV2_ibpc1_Given :1;
2106   unsigned HSMHV2_ibpc1l_Given :1;
2107   unsigned HSMHV2_ibpc1lp_Given :1;
2108   unsigned HSMHV2_ibpc2_Given :1;
2109   unsigned HSMHV2_mphdfm_Given :1;
2110 
2111   unsigned HSMHV2_ptl_Given :1;
2112   unsigned HSMHV2_ptp_Given :1;
2113   unsigned HSMHV2_pt2_Given :1;
2114   unsigned HSMHV2_ptlp_Given :1;
2115   unsigned HSMHV2_gdl_Given :1;
2116   unsigned HSMHV2_gdlp_Given :1;
2117 
2118   unsigned HSMHV2_gdld_Given :1;
2119   unsigned HSMHV2_pt4_Given :1;
2120   unsigned HSMHV2_pt4p_Given :1;
2121   unsigned HSMHV2_rdvg11_Given  :1;
2122   unsigned HSMHV2_rdvg12_Given  :1;
2123   unsigned HSMHV2_ldrift_Given  :1;
2124   unsigned HSMHV2_rd20_Given  :1;
2125   unsigned HSMHV2_rd21_Given  :1;
2126   unsigned HSMHV2_rd22_Given  :1;
2127   unsigned HSMHV2_rd22d_Given :1;
2128   unsigned HSMHV2_rd23_Given  :1;
2129   unsigned HSMHV2_rd24_Given  :1;
2130   unsigned HSMHV2_rd25_Given  :1;
2131   unsigned HSMHV2_rdvdl_Given  :1;
2132   unsigned HSMHV2_rdvdlp_Given  :1;
2133   unsigned HSMHV2_rdvds_Given  :1;
2134   unsigned HSMHV2_rdvdsp_Given  :1;
2135   unsigned HSMHV2_rd23l_Given  :1;
2136   unsigned HSMHV2_rd23lp_Given  :1;
2137   unsigned HSMHV2_rd23s_Given  :1;
2138   unsigned HSMHV2_rd23sp_Given  :1;
2139   unsigned HSMHV2_rds_Given  :1;
2140   unsigned HSMHV2_rdsp_Given  :1;
2141   unsigned HSMHV2_vbsmin_Given  :1;
2142   unsigned HSMHV2_ninvd_Given  :1;
2143   unsigned HSMHV2_ninvdw_Given  :1;
2144   unsigned HSMHV2_ninvdwp_Given  :1;
2145   unsigned HSMHV2_ninvdt1_Given  :1;
2146   unsigned HSMHV2_ninvdt2_Given  :1;
2147   unsigned HSMHV2_rdvb_Given  :1;
2148   unsigned HSMHV2_rth0nf_Given  :1;
2149 
2150   unsigned HSMHV2_rthtemp1_Given  :1;
2151   unsigned HSMHV2_rthtemp2_Given  :1;
2152   unsigned HSMHV2_prattemp1_Given  :1;
2153   unsigned HSMHV2_prattemp2_Given  :1;
2154 
2155 
2156   unsigned HSMHV2_rth0_Given :1;
2157   unsigned HSMHV2_cth0_Given :1;
2158   unsigned HSMHV2_powrat_Given :1;
2159 
2160 
2161   unsigned HSMHV2_tcjbd_Given :1;
2162   unsigned HSMHV2_tcjbs_Given :1;
2163   unsigned HSMHV2_tcjbdsw_Given :1;
2164   unsigned HSMHV2_tcjbssw_Given :1;
2165   unsigned HSMHV2_tcjbdswg_Given :1;
2166   unsigned HSMHV2_tcjbsswg_Given :1;
2167 
2168 
2169 /*   unsigned HSMHV2_wth0_Given :1; */
2170   unsigned HSMHV2_qdftvd_Given  :1;
2171   unsigned HSMHV2_rdvd_Given  :1;
2172   unsigned HSMHV2_rdtemp1_Given :1;
2173   unsigned HSMHV2_rdtemp2_Given :1;
2174   unsigned HSMHV2_rth0r_Given :1;
2175   unsigned HSMHV2_rdvdtemp1_Given :1;
2176   unsigned HSMHV2_rdvdtemp2_Given :1;
2177   unsigned HSMHV2_rth0w_Given :1;
2178   unsigned HSMHV2_rth0wp_Given :1;
2179 
2180   unsigned HSMHV2_cvdsover_Given :1;
2181 
2182   /* substrate effect */
2183   unsigned HSMHV2_rdvsub_Given  :1;  /* substrate effect */
2184   unsigned HSMHV2_rdvdsub_Given  :1; /* substrate effect */
2185   unsigned HSMHV2_ddrift_Given  :1;  /* substrate effect */
2186   unsigned HSMHV2_vbisub_Given  :1;  /* substrate effect */
2187   unsigned HSMHV2_nsubsub_Given  :1; /* substrate effect */
2188 
2189   unsigned HSMHV2_rdrmue_Given  :1;
2190   unsigned HSMHV2_rdrvmax_Given  :1;
2191   unsigned HSMHV2_rdrmuetmp_Given  :1;
2192   unsigned HSMHV2_myu0_leak_Given  :1;
2193   unsigned HSMHV2_myu0_leaktmp_Given  :1;
2194   unsigned HSMHV2_myu0_vmax_Given  :1;
2195   unsigned HSMHV2_myu0_cotemp1_Given  :1;
2196   unsigned HSMHV2_myu0_cotemp2_Given  :1;
2197 
2198   unsigned HSMHV2_rdrvtmp_Given  :1;
2199   unsigned HSMHV2_rdrdjunc_Given  :1;
2200   unsigned HSMHV2_rdrcx_Given  :1;
2201   unsigned HSMHV2_rdrcar_Given  :1;
2202   unsigned HSMHV2_rdrdl1_Given  :1;
2203   unsigned HSMHV2_rdrdl2_Given  :1;
2204   unsigned HSMHV2_rdrvmaxw_Given  :1;
2205   unsigned HSMHV2_rdrvmaxwp_Given  :1;
2206   unsigned HSMHV2_rdrvmaxl_Given  :1;
2207   unsigned HSMHV2_rdrvmaxlp_Given  :1;
2208   unsigned HSMHV2_rdrmuel_Given  :1;
2209   unsigned HSMHV2_rdrmuelp_Given  :1;
2210   unsigned HSMHV2_qovadd_Given :1;
2211   unsigned HSMHV2_rdrqover_Given  :1;
2212   unsigned HSMHV2_js0d_Given :1;
2213   unsigned HSMHV2_js0swd_Given :1;
2214   unsigned HSMHV2_njd_Given :1;
2215   unsigned HSMHV2_njswd_Given :1;
2216   unsigned HSMHV2_xtid_Given :1;
2217   unsigned HSMHV2_cjd_Given :1;
2218   unsigned HSMHV2_cjswd_Given :1;
2219   unsigned HSMHV2_cjswgd_Given :1;
2220   unsigned HSMHV2_mjd_Given :1;
2221   unsigned HSMHV2_mjswd_Given :1;
2222   unsigned HSMHV2_mjswgd_Given :1;
2223   unsigned HSMHV2_pbd_Given :1;
2224   unsigned HSMHV2_pbswd_Given :1;
2225   unsigned HSMHV2_pbswgd_Given :1;
2226   unsigned HSMHV2_xti2d_Given :1;
2227   unsigned HSMHV2_cisbd_Given :1;
2228   unsigned HSMHV2_cvbd_Given :1;
2229   unsigned HSMHV2_ctempd_Given :1;
2230   unsigned HSMHV2_cisbkd_Given :1;
2231   unsigned HSMHV2_divxd_Given :1;
2232   unsigned HSMHV2_vdiffjd_Given :1;
2233   unsigned HSMHV2_js0s_Given :1;
2234   unsigned HSMHV2_js0sws_Given :1;
2235   unsigned HSMHV2_njs_Given :1;
2236   unsigned HSMHV2_njsws_Given :1;
2237   unsigned HSMHV2_xtis_Given :1;
2238   unsigned HSMHV2_cjs_Given :1;
2239   unsigned HSMHV2_cjsws_Given :1;
2240   unsigned HSMHV2_cjswgs_Given :1;
2241   unsigned HSMHV2_mjs_Given :1;
2242   unsigned HSMHV2_mjsws_Given :1;
2243   unsigned HSMHV2_mjswgs_Given :1;
2244   unsigned HSMHV2_pbs_Given :1;
2245   unsigned HSMHV2_pbsws_Given :1;
2246   unsigned HSMHV2_pbswgs_Given :1;
2247   unsigned HSMHV2_xti2s_Given :1;
2248   unsigned HSMHV2_cisbs_Given :1;
2249   unsigned HSMHV2_cvbs_Given :1;
2250   unsigned HSMHV2_ctemps_Given :1;
2251   unsigned HSMHV2_cisbks_Given :1;
2252   unsigned HSMHV2_divxs_Given :1;
2253   unsigned HSMHV2_vdiffjs_Given :1;
2254   unsigned HSMHV2_shemax_Given :1;
2255   unsigned HSMHV2_vgsmin_Given :1;
2256   unsigned HSMHV2_gdsleak_Given :1;
2257   unsigned HSMHV2_rdrbb_Given :1;
2258   unsigned HSMHV2_rdrbbtmp_Given :1;
2259 
2260 
2261   /* binning parameters */
2262   unsigned HSMHV2_lmin_Given :1;
2263   unsigned HSMHV2_lmax_Given :1;
2264   unsigned HSMHV2_wmin_Given :1;
2265   unsigned HSMHV2_wmax_Given :1;
2266   unsigned HSMHV2_lbinn_Given :1;
2267   unsigned HSMHV2_wbinn_Given :1;
2268 
2269   /* Length dependence */
2270   unsigned HSMHV2_lvmax_Given :1;
2271   unsigned HSMHV2_lbgtmp1_Given :1;
2272   unsigned HSMHV2_lbgtmp2_Given :1;
2273   unsigned HSMHV2_leg0_Given :1;
2274   unsigned HSMHV2_lvfbover_Given :1;
2275   unsigned HSMHV2_lnover_Given :1;
2276   unsigned HSMHV2_lnovers_Given :1;
2277   unsigned HSMHV2_lwl2_Given :1;
2278   unsigned HSMHV2_lvfbc_Given :1;
2279   unsigned HSMHV2_lnsubc_Given :1;
2280   unsigned HSMHV2_lnsubp_Given :1;
2281   unsigned HSMHV2_lscp1_Given :1;
2282   unsigned HSMHV2_lscp2_Given :1;
2283   unsigned HSMHV2_lscp3_Given :1;
2284   unsigned HSMHV2_lsc1_Given :1;
2285   unsigned HSMHV2_lsc2_Given :1;
2286   unsigned HSMHV2_lsc3_Given :1;
2287   unsigned HSMHV2_lpgd1_Given :1;
2288   unsigned HSMHV2_lndep_Given :1;
2289   unsigned HSMHV2_lninv_Given :1;
2290   unsigned HSMHV2_lmuecb0_Given :1;
2291   unsigned HSMHV2_lmuecb1_Given :1;
2292   unsigned HSMHV2_lmueph1_Given :1;
2293   unsigned HSMHV2_lvtmp_Given :1;
2294   unsigned HSMHV2_lwvth0_Given :1;
2295   unsigned HSMHV2_lmuesr1_Given :1;
2296   unsigned HSMHV2_lmuetmp_Given :1;
2297   unsigned HSMHV2_lsub1_Given :1;
2298   unsigned HSMHV2_lsub2_Given :1;
2299   unsigned HSMHV2_lsvds_Given :1;
2300   unsigned HSMHV2_lsvbs_Given :1;
2301   unsigned HSMHV2_lsvgs_Given :1;
2302   unsigned HSMHV2_lfn1_Given :1;
2303   unsigned HSMHV2_lfn2_Given :1;
2304   unsigned HSMHV2_lfn3_Given :1;
2305   unsigned HSMHV2_lfvbs_Given :1;
2306   unsigned HSMHV2_lnsti_Given :1;
2307   unsigned HSMHV2_lwsti_Given :1;
2308   unsigned HSMHV2_lscsti1_Given :1;
2309   unsigned HSMHV2_lscsti2_Given :1;
2310   unsigned HSMHV2_lvthsti_Given :1;
2311   unsigned HSMHV2_lmuesti1_Given :1;
2312   unsigned HSMHV2_lmuesti2_Given :1;
2313   unsigned HSMHV2_lmuesti3_Given :1;
2314   unsigned HSMHV2_lnsubpsti1_Given :1;
2315   unsigned HSMHV2_lnsubpsti2_Given :1;
2316   unsigned HSMHV2_lnsubpsti3_Given :1;
2317   unsigned HSMHV2_lcgso_Given :1;
2318   unsigned HSMHV2_lcgdo_Given :1;
2319   unsigned HSMHV2_ljs0_Given :1;
2320   unsigned HSMHV2_ljs0sw_Given :1;
2321   unsigned HSMHV2_lnj_Given :1;
2322   unsigned HSMHV2_lcisbk_Given :1;
2323   unsigned HSMHV2_lclm1_Given :1;
2324   unsigned HSMHV2_lclm2_Given :1;
2325   unsigned HSMHV2_lclm3_Given :1;
2326   unsigned HSMHV2_lwfc_Given :1;
2327   unsigned HSMHV2_lgidl1_Given :1;
2328   unsigned HSMHV2_lgidl2_Given :1;
2329   unsigned HSMHV2_lgleak1_Given :1;
2330   unsigned HSMHV2_lgleak2_Given :1;
2331   unsigned HSMHV2_lgleak3_Given :1;
2332   unsigned HSMHV2_lgleak6_Given :1;
2333   unsigned HSMHV2_lglksd1_Given :1;
2334   unsigned HSMHV2_lglksd2_Given :1;
2335   unsigned HSMHV2_lglkb1_Given :1;
2336   unsigned HSMHV2_lglkb2_Given :1;
2337   unsigned HSMHV2_lnftrp_Given :1;
2338   unsigned HSMHV2_lnfalp_Given :1;
2339   unsigned HSMHV2_lvdiffj_Given :1;
2340   unsigned HSMHV2_libpc1_Given :1;
2341   unsigned HSMHV2_libpc2_Given :1;
2342   unsigned HSMHV2_lcgbo_Given :1;
2343   unsigned HSMHV2_lcvdsover_Given :1;
2344   unsigned HSMHV2_lfalph_Given :1;
2345   unsigned HSMHV2_lnpext_Given :1;
2346   unsigned HSMHV2_lpowrat_Given :1;
2347   unsigned HSMHV2_lrd_Given :1;
2348   unsigned HSMHV2_lrd22_Given :1;
2349   unsigned HSMHV2_lrd23_Given :1;
2350   unsigned HSMHV2_lrd24_Given :1;
2351   unsigned HSMHV2_lrdict1_Given :1;
2352   unsigned HSMHV2_lrdov13_Given :1;
2353   unsigned HSMHV2_lrdslp1_Given :1;
2354   unsigned HSMHV2_lrdvb_Given :1;
2355   unsigned HSMHV2_lrdvd_Given :1;
2356   unsigned HSMHV2_lrdvg11_Given :1;
2357   unsigned HSMHV2_lrs_Given :1;
2358   unsigned HSMHV2_lrth0_Given :1;
2359   unsigned HSMHV2_lvover_Given :1;
2360   unsigned HSMHV2_ljs0d_Given :1;
2361   unsigned HSMHV2_ljs0swd_Given :1;
2362   unsigned HSMHV2_lnjd_Given :1;
2363   unsigned HSMHV2_lcisbkd_Given :1;
2364   unsigned HSMHV2_lvdiffjd_Given :1;
2365   unsigned HSMHV2_ljs0s_Given :1;
2366   unsigned HSMHV2_ljs0sws_Given :1;
2367   unsigned HSMHV2_lnjs_Given :1;
2368   unsigned HSMHV2_lcisbks_Given :1;
2369   unsigned HSMHV2_lvdiffjs_Given :1;
2370 
2371   /* Width dependence */
2372   unsigned HSMHV2_wvmax_Given :1;
2373   unsigned HSMHV2_wbgtmp1_Given :1;
2374   unsigned HSMHV2_wbgtmp2_Given :1;
2375   unsigned HSMHV2_weg0_Given :1;
2376   unsigned HSMHV2_wvfbover_Given :1;
2377   unsigned HSMHV2_wnover_Given :1;
2378   unsigned HSMHV2_wnovers_Given :1;
2379   unsigned HSMHV2_wwl2_Given :1;
2380   unsigned HSMHV2_wvfbc_Given :1;
2381   unsigned HSMHV2_wnsubc_Given :1;
2382   unsigned HSMHV2_wnsubp_Given :1;
2383   unsigned HSMHV2_wscp1_Given :1;
2384   unsigned HSMHV2_wscp2_Given :1;
2385   unsigned HSMHV2_wscp3_Given :1;
2386   unsigned HSMHV2_wsc1_Given :1;
2387   unsigned HSMHV2_wsc2_Given :1;
2388   unsigned HSMHV2_wsc3_Given :1;
2389   unsigned HSMHV2_wpgd1_Given :1;
2390   unsigned HSMHV2_wndep_Given :1;
2391   unsigned HSMHV2_wninv_Given :1;
2392   unsigned HSMHV2_wmuecb0_Given :1;
2393   unsigned HSMHV2_wmuecb1_Given :1;
2394   unsigned HSMHV2_wmueph1_Given :1;
2395   unsigned HSMHV2_wvtmp_Given :1;
2396   unsigned HSMHV2_wwvth0_Given :1;
2397   unsigned HSMHV2_wmuesr1_Given :1;
2398   unsigned HSMHV2_wmuetmp_Given :1;
2399   unsigned HSMHV2_wsub1_Given :1;
2400   unsigned HSMHV2_wsub2_Given :1;
2401   unsigned HSMHV2_wsvds_Given :1;
2402   unsigned HSMHV2_wsvbs_Given :1;
2403   unsigned HSMHV2_wsvgs_Given :1;
2404   unsigned HSMHV2_wfn1_Given :1;
2405   unsigned HSMHV2_wfn2_Given :1;
2406   unsigned HSMHV2_wfn3_Given :1;
2407   unsigned HSMHV2_wfvbs_Given :1;
2408   unsigned HSMHV2_wnsti_Given :1;
2409   unsigned HSMHV2_wwsti_Given :1;
2410   unsigned HSMHV2_wscsti1_Given :1;
2411   unsigned HSMHV2_wscsti2_Given :1;
2412   unsigned HSMHV2_wvthsti_Given :1;
2413   unsigned HSMHV2_wmuesti1_Given :1;
2414   unsigned HSMHV2_wmuesti2_Given :1;
2415   unsigned HSMHV2_wmuesti3_Given :1;
2416   unsigned HSMHV2_wnsubpsti1_Given :1;
2417   unsigned HSMHV2_wnsubpsti2_Given :1;
2418   unsigned HSMHV2_wnsubpsti3_Given :1;
2419   unsigned HSMHV2_wcgso_Given :1;
2420   unsigned HSMHV2_wcgdo_Given :1;
2421   unsigned HSMHV2_wjs0_Given :1;
2422   unsigned HSMHV2_wjs0sw_Given :1;
2423   unsigned HSMHV2_wnj_Given :1;
2424   unsigned HSMHV2_wcisbk_Given :1;
2425   unsigned HSMHV2_wclm1_Given :1;
2426   unsigned HSMHV2_wclm2_Given :1;
2427   unsigned HSMHV2_wclm3_Given :1;
2428   unsigned HSMHV2_wwfc_Given :1;
2429   unsigned HSMHV2_wgidl1_Given :1;
2430   unsigned HSMHV2_wgidl2_Given :1;
2431   unsigned HSMHV2_wgleak1_Given :1;
2432   unsigned HSMHV2_wgleak2_Given :1;
2433   unsigned HSMHV2_wgleak3_Given :1;
2434   unsigned HSMHV2_wgleak6_Given :1;
2435   unsigned HSMHV2_wglksd1_Given :1;
2436   unsigned HSMHV2_wglksd2_Given :1;
2437   unsigned HSMHV2_wglkb1_Given :1;
2438   unsigned HSMHV2_wglkb2_Given :1;
2439   unsigned HSMHV2_wnftrp_Given :1;
2440   unsigned HSMHV2_wnfalp_Given :1;
2441   unsigned HSMHV2_wvdiffj_Given :1;
2442   unsigned HSMHV2_wibpc1_Given :1;
2443   unsigned HSMHV2_wibpc2_Given :1;
2444   unsigned HSMHV2_wcgbo_Given :1;
2445   unsigned HSMHV2_wcvdsover_Given :1;
2446   unsigned HSMHV2_wfalph_Given :1;
2447   unsigned HSMHV2_wnpext_Given :1;
2448   unsigned HSMHV2_wpowrat_Given :1;
2449   unsigned HSMHV2_wrd_Given :1;
2450   unsigned HSMHV2_wrd22_Given :1;
2451   unsigned HSMHV2_wrd23_Given :1;
2452   unsigned HSMHV2_wrd24_Given :1;
2453   unsigned HSMHV2_wrdict1_Given :1;
2454   unsigned HSMHV2_wrdov13_Given :1;
2455   unsigned HSMHV2_wrdslp1_Given :1;
2456   unsigned HSMHV2_wrdvb_Given :1;
2457   unsigned HSMHV2_wrdvd_Given :1;
2458   unsigned HSMHV2_wrdvg11_Given :1;
2459   unsigned HSMHV2_wrs_Given :1;
2460   unsigned HSMHV2_wrth0_Given :1;
2461   unsigned HSMHV2_wvover_Given :1;
2462   unsigned HSMHV2_wjs0d_Given :1;
2463   unsigned HSMHV2_wjs0swd_Given :1;
2464   unsigned HSMHV2_wnjd_Given :1;
2465   unsigned HSMHV2_wcisbkd_Given :1;
2466   unsigned HSMHV2_wvdiffjd_Given :1;
2467   unsigned HSMHV2_wjs0s_Given :1;
2468   unsigned HSMHV2_wjs0sws_Given :1;
2469   unsigned HSMHV2_wnjs_Given :1;
2470   unsigned HSMHV2_wcisbks_Given :1;
2471   unsigned HSMHV2_wvdiffjs_Given :1;
2472 
2473   /* Cross-term dependence */
2474   unsigned HSMHV2_pvmax_Given :1;
2475   unsigned HSMHV2_pbgtmp1_Given :1;
2476   unsigned HSMHV2_pbgtmp2_Given :1;
2477   unsigned HSMHV2_peg0_Given :1;
2478   unsigned HSMHV2_pvfbover_Given :1;
2479   unsigned HSMHV2_pnover_Given :1;
2480   unsigned HSMHV2_pnovers_Given :1;
2481   unsigned HSMHV2_pwl2_Given :1;
2482   unsigned HSMHV2_pvfbc_Given :1;
2483   unsigned HSMHV2_pnsubc_Given :1;
2484   unsigned HSMHV2_pnsubp_Given :1;
2485   unsigned HSMHV2_pscp1_Given :1;
2486   unsigned HSMHV2_pscp2_Given :1;
2487   unsigned HSMHV2_pscp3_Given :1;
2488   unsigned HSMHV2_psc1_Given :1;
2489   unsigned HSMHV2_psc2_Given :1;
2490   unsigned HSMHV2_psc3_Given :1;
2491   unsigned HSMHV2_ppgd1_Given :1;
2492   unsigned HSMHV2_pndep_Given :1;
2493   unsigned HSMHV2_pninv_Given :1;
2494   unsigned HSMHV2_pmuecb0_Given :1;
2495   unsigned HSMHV2_pmuecb1_Given :1;
2496   unsigned HSMHV2_pmueph1_Given :1;
2497   unsigned HSMHV2_pvtmp_Given :1;
2498   unsigned HSMHV2_pwvth0_Given :1;
2499   unsigned HSMHV2_pmuesr1_Given :1;
2500   unsigned HSMHV2_pmuetmp_Given :1;
2501   unsigned HSMHV2_psub1_Given :1;
2502   unsigned HSMHV2_psub2_Given :1;
2503   unsigned HSMHV2_psvds_Given :1;
2504   unsigned HSMHV2_psvbs_Given :1;
2505   unsigned HSMHV2_psvgs_Given :1;
2506   unsigned HSMHV2_pfn1_Given :1;
2507   unsigned HSMHV2_pfn2_Given :1;
2508   unsigned HSMHV2_pfn3_Given :1;
2509   unsigned HSMHV2_pfvbs_Given :1;
2510   unsigned HSMHV2_pnsti_Given :1;
2511   unsigned HSMHV2_pwsti_Given :1;
2512   unsigned HSMHV2_pscsti1_Given :1;
2513   unsigned HSMHV2_pscsti2_Given :1;
2514   unsigned HSMHV2_pvthsti_Given :1;
2515   unsigned HSMHV2_pmuesti1_Given :1;
2516   unsigned HSMHV2_pmuesti2_Given :1;
2517   unsigned HSMHV2_pmuesti3_Given :1;
2518   unsigned HSMHV2_pnsubpsti1_Given :1;
2519   unsigned HSMHV2_pnsubpsti2_Given :1;
2520   unsigned HSMHV2_pnsubpsti3_Given :1;
2521   unsigned HSMHV2_pcgso_Given :1;
2522   unsigned HSMHV2_pcgdo_Given :1;
2523   unsigned HSMHV2_pjs0_Given :1;
2524   unsigned HSMHV2_pjs0sw_Given :1;
2525   unsigned HSMHV2_pnj_Given :1;
2526   unsigned HSMHV2_pcisbk_Given :1;
2527   unsigned HSMHV2_pclm1_Given :1;
2528   unsigned HSMHV2_pclm2_Given :1;
2529   unsigned HSMHV2_pclm3_Given :1;
2530   unsigned HSMHV2_pwfc_Given :1;
2531   unsigned HSMHV2_pgidl1_Given :1;
2532   unsigned HSMHV2_pgidl2_Given :1;
2533   unsigned HSMHV2_pgleak1_Given :1;
2534   unsigned HSMHV2_pgleak2_Given :1;
2535   unsigned HSMHV2_pgleak3_Given :1;
2536   unsigned HSMHV2_pgleak6_Given :1;
2537   unsigned HSMHV2_pglksd1_Given :1;
2538   unsigned HSMHV2_pglksd2_Given :1;
2539   unsigned HSMHV2_pglkb1_Given :1;
2540   unsigned HSMHV2_pglkb2_Given :1;
2541   unsigned HSMHV2_pnftrp_Given :1;
2542   unsigned HSMHV2_pnfalp_Given :1;
2543   unsigned HSMHV2_pvdiffj_Given :1;
2544   unsigned HSMHV2_pibpc1_Given :1;
2545   unsigned HSMHV2_pibpc2_Given :1;
2546   unsigned HSMHV2_pcgbo_Given :1;
2547   unsigned HSMHV2_pcvdsover_Given :1;
2548   unsigned HSMHV2_pfalph_Given :1;
2549   unsigned HSMHV2_pnpext_Given :1;
2550   unsigned HSMHV2_ppowrat_Given :1;
2551   unsigned HSMHV2_prd_Given :1;
2552   unsigned HSMHV2_prd22_Given :1;
2553   unsigned HSMHV2_prd23_Given :1;
2554   unsigned HSMHV2_prd24_Given :1;
2555   unsigned HSMHV2_prdict1_Given :1;
2556   unsigned HSMHV2_prdov13_Given :1;
2557   unsigned HSMHV2_prdslp1_Given :1;
2558   unsigned HSMHV2_prdvb_Given :1;
2559   unsigned HSMHV2_prdvd_Given :1;
2560   unsigned HSMHV2_prdvg11_Given :1;
2561   unsigned HSMHV2_prs_Given :1;
2562   unsigned HSMHV2_prth0_Given :1;
2563   unsigned HSMHV2_pvover_Given :1;
2564   unsigned HSMHV2_pjs0d_Given :1;
2565   unsigned HSMHV2_pjs0swd_Given :1;
2566   unsigned HSMHV2_pnjd_Given :1;
2567   unsigned HSMHV2_pcisbkd_Given :1;
2568   unsigned HSMHV2_pvdiffjd_Given :1;
2569   unsigned HSMHV2_pjs0s_Given :1;
2570   unsigned HSMHV2_pjs0sws_Given :1;
2571   unsigned HSMHV2_pnjs_Given :1;
2572   unsigned HSMHV2_pcisbks_Given :1;
2573   unsigned HSMHV2_pvdiffjs_Given :1;
2574 
2575   unsigned HSMHV2vgsMaxGiven  :1;
2576   unsigned HSMHV2vgdMaxGiven  :1;
2577   unsigned HSMHV2vgbMaxGiven  :1;
2578   unsigned HSMHV2vdsMaxGiven  :1;
2579   unsigned HSMHV2vbsMaxGiven  :1;
2580   unsigned HSMHV2vbdMaxGiven  :1;
2581   unsigned HSMHV2vgsrMaxGiven  :1;
2582   unsigned HSMHV2vgdrMaxGiven  :1;
2583   unsigned HSMHV2vgbrMaxGiven  :1;
2584   unsigned HSMHV2vbsrMaxGiven  :1;
2585   unsigned HSMHV2vbdrMaxGiven  :1;
2586 
2587 } HSMHV2model;
2588 
2589 #ifndef NMOS
2590 #define NMOS 1
2591 #define PMOS -1
2592 #endif /*NMOS*/
2593 
2594 #define HSMHV2_BAD_PARAM -1
2595 
2596 /* flags */
2597 #define HSMHV2_MOD_NMOS     1
2598 #define HSMHV2_MOD_PMOS     2
2599 #define HSMHV2_MOD_LEVEL    3
2600 #define HSMHV2_MOD_INFO     4
2601 #define HSMHV2_MOD_NOISE    5
2602 #define HSMHV2_MOD_VERSION  6
2603 #define HSMHV2_MOD_SHOW     7
2604 #define HSMHV2_MOD_CORSRD  11
2605 #define HSMHV2_MOD_COIPRV  12
2606 #define HSMHV2_MOD_COPPRV  13
2607 #define HSMHV2_MOD_COADOV  17
2608 #define HSMHV2_MOD_COISUB  21
2609 #define HSMHV2_MOD_COIIGS    22
2610 #define HSMHV2_MOD_COGIDL 23
2611 #define HSMHV2_MOD_COOVLP  24
2612 #define HSMHV2_MOD_COOVLPS  8
2613 #define HSMHV2_MOD_COFLICK 25
2614 #define HSMHV2_MOD_COISTI  26
2615 #define HSMHV2_MOD_CONQS   29
2616 #define HSMHV2_MOD_COTHRML 30
2617 #define HSMHV2_MOD_COIGN   31    /* Induced gate noise */
2618 #define HSMHV2_MOD_CORG    32
2619 #define HSMHV2_MOD_CORBNET 33
2620 #define HSMHV2_MOD_CODFM   36    /* DFM */
2621 #define HSMHV2_MOD_COQOVSM 34
2622 #define HSMHV2_MOD_COSELFHEAT 35 /* Self-heating model--SHE-- */
2623 #define HSMHV2_MOD_COSUBNODE  48
2624 #define HSMHV2_MOD_COSYM   37    /* Symmery model for HV */
2625 #define HSMHV2_MOD_COTEMP  38
2626 #define HSMHV2_MOD_COLDRIFT 39
2627 #define HSMHV2_MOD_CORDRIFT 40
2628 #define HSMHV2_MOD_COERRREP 44
2629 #define HSMHV2_MOD_CODEP    45
2630 #define HSMHV2_MOD_CODDLT   46
2631 /* device parameters */
2632 #define HSMHV2_COSELFHEAT  49
2633 #define HSMHV2_COSUBNODE   50
2634 #define HSMHV2_L           51
2635 #define HSMHV2_W           52
2636 #define HSMHV2_AD          53
2637 #define HSMHV2_AS          54
2638 #define HSMHV2_PD          55
2639 #define HSMHV2_PS          56
2640 #define HSMHV2_NRD         57
2641 #define HSMHV2_NRS         58
2642 /* #define HSMHV2_TEMP        59	not used */
2643 #define HSMHV2_DTEMP       60
2644 #define HSMHV2_OFF         61
2645 #define HSMHV2_IC_VBS      62
2646 #define HSMHV2_IC_VDS      63
2647 #define HSMHV2_IC_VGS      64
2648 #define HSMHV2_IC          65
2649 #define HSMHV2_CORBNET     66
2650 #define HSMHV2_RBPB        67
2651 #define HSMHV2_RBPD        68
2652 #define HSMHV2_RBPS        69
2653 #define HSMHV2_RBDB        70
2654 #define HSMHV2_RBSB        71
2655 #define HSMHV2_CORG        72
2656 /* #define HSMHV2_RSHG        73 */
2657 #define HSMHV2_NGCON       74
2658 #define HSMHV2_XGW         75
2659 #define HSMHV2_XGL         76
2660 #define HSMHV2_NF          77
2661 #define HSMHV2_SA          78
2662 #define HSMHV2_SB          79
2663 #define HSMHV2_SD          80
2664 #define HSMHV2_NSUBCDFM    82
2665 #define HSMHV2_M           83
2666 #define HSMHV2_SUBLD1      86
2667 #define HSMHV2_SUBLD2      87
2668 #define HSMHV2_LOVER       41
2669 #define HSMHV2_LOVERS      42
2670 #define HSMHV2_LOVERLD     43
2671 #define HSMHV2_LDRIFT1     88
2672 #define HSMHV2_LDRIFT2     89
2673 #define HSMHV2_LDRIFT1S    90
2674 #define HSMHV2_LDRIFT2S    91
2675 /* #define HSMHV2_RTH0        84	not used */
2676 /* #define HSMHV2_CTH0        85	not used */
2677 
2678 
2679 
2680 
2681 /* model parameters */
2682 #define HSMHV2_MOD_VBSMIN    198
2683 #define HSMHV2_MOD_VMAX      500
2684 #define HSMHV2_MOD_VMAXT1    503
2685 #define HSMHV2_MOD_VMAXT2    504
2686 #define HSMHV2_MOD_BGTMP1    101
2687 #define HSMHV2_MOD_BGTMP2    102
2688 #define HSMHV2_MOD_EG0       103
2689 #define HSMHV2_MOD_TOX       104
2690 #define HSMHV2_MOD_XLD       105
2691 #define HSMHV2_MOD_LOVER     106
2692 #define HSMHV2_MOD_LOVERS    385
2693 #define HSMHV2_MOD_RDOV11    313
2694 #define HSMHV2_MOD_RDOV12    314
2695 #define HSMHV2_MOD_RDOV13    476
2696 #define HSMHV2_MOD_RDSLP1    315
2697 #define HSMHV2_MOD_RDICT1    316
2698 #define HSMHV2_MOD_RDSLP2    317
2699 #define HSMHV2_MOD_RDICT2    318
2700 #define HSMHV2_MOD_LOVERLD   436
2701 #define HSMHV2_MOD_LDRIFT1   319
2702 #define HSMHV2_MOD_LDRIFT2   320
2703 #define HSMHV2_MOD_LDRIFT1S  324
2704 #define HSMHV2_MOD_LDRIFT2S  325
2705 #define HSMHV2_MOD_SUBLD1    321
2706 #define HSMHV2_MOD_SUBLD1L   329
2707 #define HSMHV2_MOD_SUBLD1LP  330
2708 #define HSMHV2_MOD_SUBLD2    322
2709 #define HSMHV2_MOD_XPDV      326
2710 #define HSMHV2_MOD_XPVDTH    327
2711 #define HSMHV2_MOD_XPVDTHG   328
2712 #define HSMHV2_MOD_DDLTMAX   421 /* Vdseff */
2713 #define HSMHV2_MOD_DDLTSLP   422 /* Vdseff */
2714 #define HSMHV2_MOD_DDLTICT   423 /* Vdseff */
2715 #define HSMHV2_MOD_VFBOVER   428
2716 #define HSMHV2_MOD_NOVER     430
2717 #define HSMHV2_MOD_NOVERS    431
2718 #define HSMHV2_MOD_XWD       107
2719 #define HSMHV2_MOD_XWDC      513
2720 #define HSMHV2_MOD_XL        112
2721 #define HSMHV2_MOD_XW        117
2722 #define HSMHV2_MOD_SAREF     433
2723 #define HSMHV2_MOD_SBREF     434
2724 #define HSMHV2_MOD_LL        108
2725 #define HSMHV2_MOD_LLD       109
2726 #define HSMHV2_MOD_LLN       110
2727 #define HSMHV2_MOD_WL        111
2728 #define HSMHV2_MOD_WL1       113
2729 #define HSMHV2_MOD_WL1P      114
2730 #define HSMHV2_MOD_WL2       407
2731 #define HSMHV2_MOD_WL2P      408
2732 #define HSMHV2_MOD_WLD       115
2733 #define HSMHV2_MOD_WLN       116
2734 
2735 #define HSMHV2_MOD_XQY       178
2736 #define HSMHV2_MOD_XQY1      118
2737 #define HSMHV2_MOD_XQY2      120
2738 #define HSMHV2_MOD_RSH       119
2739 
2740 #define HSMHV2_MOD_RSHG      384
2741 /* #define HSMHV2_MOD_NGCON     385 */
2742 /* #define HSMHV2_MOD_XGW       386 */
2743 /* #define HSMHV2_MOD_XGL       387 */
2744 /* #define HSMHV2_MOD_NF        388 */
2745 #define HSMHV2_MOD_RS        398
2746 #define HSMHV2_MOD_RD        399
2747 
2748 #define HSMHV2_MOD_VFBC      121
2749 #define HSMHV2_MOD_VBI       122
2750 #define HSMHV2_MOD_NSUBC     123
2751 #define HSMHV2_MOD_TNOM      124
2752 #define HSMHV2_MOD_PARL2     125
2753 #define HSMHV2_MOD_SC1       126
2754 #define HSMHV2_MOD_SC2       127
2755 #define HSMHV2_MOD_SC3       128
2756 #define HSMHV2_MOD_SC4       248
2757 #define HSMHV2_MOD_NDEP      129
2758 #define HSMHV2_MOD_NDEPL     419
2759 #define HSMHV2_MOD_NDEPLP    420
2760 #define HSMHV2_MOD_NINV      130
2761 #define HSMHV2_MOD_NINVD     505
2762 #define HSMHV2_MOD_NINVDW    506
2763 #define HSMHV2_MOD_NINVDWP   507
2764 #define HSMHV2_MOD_NINVDT1   508
2765 #define HSMHV2_MOD_NINVDT2   509
2766 #define HSMHV2_MOD_MUECB0    131
2767 #define HSMHV2_MOD_MUECB1    132
2768 #define HSMHV2_MOD_MUEPH1    133
2769 #define HSMHV2_MOD_MUEPH0    134
2770 #define HSMHV2_MOD_MUEPHW    135
2771 #define HSMHV2_MOD_MUEPWP    136
2772 #define HSMHV2_MOD_MUEPHL    137
2773 #define HSMHV2_MOD_MUEPLP    138
2774 #define HSMHV2_MOD_MUEPHS    139
2775 #define HSMHV2_MOD_MUEPSP    140
2776 #define HSMHV2_MOD_VTMP      141
2777 #define HSMHV2_MOD_WVTH0 	   142
2778 #define HSMHV2_MOD_MUESR1    143
2779 #define HSMHV2_MOD_MUESR0    144
2780 #define HSMHV2_MOD_MUESRL    145
2781 #define HSMHV2_MOD_MUESLP    146
2782 #define HSMHV2_MOD_MUESRW    147
2783 #define HSMHV2_MOD_MUESWP    148
2784 #define HSMHV2_MOD_BB        149
2785 
2786 #define HSMHV2_MOD_SUB1      151
2787 #define HSMHV2_MOD_SUB2      152
2788 #define HSMHV2_MOD_CGSO      154
2789 #define HSMHV2_MOD_CGDO      155
2790 #define HSMHV2_MOD_CGBO      156
2791 #define HSMHV2_MOD_JS0       157
2792 #define HSMHV2_MOD_JS0SW     158
2793 #define HSMHV2_MOD_NJ        159
2794 #define HSMHV2_MOD_NJSW      160
2795 #define HSMHV2_MOD_XTI       161
2796 #define HSMHV2_MOD_CJ        162
2797 #define HSMHV2_MOD_CJSW      163
2798 #define HSMHV2_MOD_CJSWG     164
2799 #define HSMHV2_MOD_MJ        165
2800 #define HSMHV2_MOD_MJSW      166
2801 #define HSMHV2_MOD_MJSWG     167
2802 #define HSMHV2_MOD_XTI2      168
2803 #define HSMHV2_MOD_CISB      169
2804 #define HSMHV2_MOD_CVB       170
2805 #define HSMHV2_MOD_CTEMP     171
2806 #define HSMHV2_MOD_CISBK     172
2807 #define HSMHV2_MOD_CVBK      173
2808 #define HSMHV2_MOD_DIVX      174
2809 #define HSMHV2_MOD_PB        175
2810 #define HSMHV2_MOD_PBSW      176
2811 #define HSMHV2_MOD_PBSWG     177
2812 #define HSMHV2_MOD_TPOLY     179
2813 /* #define HSMHV2_MOD_TPOLYLD   	not used */
2814 #define HSMHV2_MOD_LP        180
2815 #define HSMHV2_MOD_NSUBP     181
2816 #define HSMHV2_MOD_NSUBP0    182
2817 #define HSMHV2_MOD_NSUBWP    183
2818 #define HSMHV2_MOD_NDEPM     600
2819 #define HSMHV2_MOD_TNDEP     601
2820 #define HSMHV2_MOD_DEPMUE0 605
2821 #define HSMHV2_MOD_DEPMUE1 606
2822 #define HSMHV2_MOD_DEPMUEBACK0 607
2823 #define HSMHV2_MOD_DEPMUEBACK1 608
2824 #define HSMHV2_MOD_DEPVMAX 609
2825 #define HSMHV2_MOD_DEPBB 610
2826 #define HSMHV2_MOD_DEPVDSEF1 611
2827 #define HSMHV2_MOD_DEPVDSEF2 612
2828 #define HSMHV2_MOD_DEPMUEPH0 613
2829 #define HSMHV2_MOD_DEPMUEPH1 614
2830 #define HSMHV2_MOD_DEPLEAK   615
2831 #define HSMHV2_MOD_DEPETA    616
2832 #define HSMHV2_MOD_DEPVTMP   617
2833 #define HSMHV2_MOD_DEPMUETMP 618
2834 #define HSMHV2_MOD_ISBREAK   619
2835 #define HSMHV2_MOD_RWELL     620
2836 #define HSMHV2_MOD_SCP1      184
2837 #define HSMHV2_MOD_SCP2      185
2838 #define HSMHV2_MOD_SCP3      186
2839 #define HSMHV2_MOD_PGD1      187
2840 #define HSMHV2_MOD_PGD2      188
2841 //#define HSMHV2_MOD_PGD3
2842 #define HSMHV2_MOD_PGD4      190
2843 #define HSMHV2_MOD_CLM1      191
2844 #define HSMHV2_MOD_CLM2      192
2845 #define HSMHV2_MOD_CLM3      193
2846 #define HSMHV2_MOD_CLM5      402
2847 #define HSMHV2_MOD_CLM6      403
2848 #define HSMHV2_MOD_MUETMP    195
2849 
2850 #define HSMHV2_MOD_VOVER     199
2851 #define HSMHV2_MOD_VOVERP    200
2852 #define HSMHV2_MOD_WFC       201
2853 #define HSMHV2_MOD_NSUBCW    249
2854 #define HSMHV2_MOD_NSUBCWP   250
2855 #define HSMHV2_MOD_QME1      202
2856 #define HSMHV2_MOD_QME2      203
2857 #define HSMHV2_MOD_QME3      204
2858 #define HSMHV2_MOD_GIDL1     205
2859 #define HSMHV2_MOD_GIDL2     206
2860 #define HSMHV2_MOD_GIDL3     207
2861 #define HSMHV2_MOD_GLEAK1    208
2862 #define HSMHV2_MOD_GLEAK2    209
2863 #define HSMHV2_MOD_GLEAK3    210
2864 #define HSMHV2_MOD_GLEAK4    211
2865 #define HSMHV2_MOD_GLEAK5    212
2866 #define HSMHV2_MOD_GLEAK6    213
2867 #define HSMHV2_MOD_GLEAK7    214
2868 #define HSMHV2_MOD_GLPART1   406
2869 #define HSMHV2_MOD_GLKSD1    215
2870 #define HSMHV2_MOD_GLKSD2    216
2871 #define HSMHV2_MOD_GLKSD3    217
2872 #define HSMHV2_MOD_GLKB1     218
2873 #define HSMHV2_MOD_GLKB2     219
2874 #define HSMHV2_MOD_GLKB3     429
2875 #define HSMHV2_MOD_EGIG      220
2876 #define HSMHV2_MOD_IGTEMP2   221
2877 #define HSMHV2_MOD_IGTEMP3   222
2878 #define HSMHV2_MOD_VZADD0    223
2879 #define HSMHV2_MOD_PZADD0    224
2880 #define HSMHV2_MOD_NSTI      225
2881 #define HSMHV2_MOD_WSTI      226
2882 #define HSMHV2_MOD_WSTIL     227
2883 #define HSMHV2_MOD_WSTILP    231
2884 #define HSMHV2_MOD_WSTIW     234
2885 #define HSMHV2_MOD_WSTIWP    228
2886 #define HSMHV2_MOD_SCSTI1    229
2887 #define HSMHV2_MOD_SCSTI2    230
2888 #define HSMHV2_MOD_VTHSTI    232
2889 #define HSMHV2_MOD_VDSTI     233
2890 #define HSMHV2_MOD_MUESTI1   235
2891 #define HSMHV2_MOD_MUESTI2   236
2892 #define HSMHV2_MOD_MUESTI3   237
2893 #define HSMHV2_MOD_NSUBPSTI1 238
2894 #define HSMHV2_MOD_NSUBPSTI2 239
2895 #define HSMHV2_MOD_NSUBPSTI3 240
2896 #define HSMHV2_MOD_LPEXT     241
2897 #define HSMHV2_MOD_NPEXT     242
2898 #define HSMHV2_MOD_SCP22     243
2899 #define HSMHV2_MOD_SCP21     244
2900 #define HSMHV2_MOD_BS1       245
2901 #define HSMHV2_MOD_BS2       246
2902 #define HSMHV2_MOD_KAPPA     251
2903 //#define HSMHV2_MOD_PTHROU    253
2904 #define HSMHV2_MOD_VDIFFJ    254
2905 #define HSMHV2_MOD_DLY1      255
2906 #define HSMHV2_MOD_DLY2      256
2907 #define HSMHV2_MOD_DLY3      257
2908 #define HSMHV2_MOD_NFTRP     258
2909 #define HSMHV2_MOD_NFALP     259
2910 #define HSMHV2_MOD_CIT       260
2911 #define HSMHV2_MOD_FALPH     263
2912 #define HSMHV2_MOD_OVSLP     261
2913 #define HSMHV2_MOD_OVMAG     262
2914 #define HSMHV2_MOD_GIDL4     281
2915 #define HSMHV2_MOD_GIDL5     282
2916 #define HSMHV2_MOD_SVGS      283
2917 #define HSMHV2_MOD_SVBS      284
2918 #define HSMHV2_MOD_SVBSL     285
2919 #define HSMHV2_MOD_SVDS      286
2920 #define HSMHV2_MOD_SLG       287
2921 #define HSMHV2_MOD_SUB1L     290
2922 #define HSMHV2_MOD_SUB2L     292
2923 #define HSMHV2_MOD_FN1       294
2924 #define HSMHV2_MOD_FN2       295
2925 #define HSMHV2_MOD_FN3       296
2926 #define HSMHV2_MOD_FVBS      297
2927 #define HSMHV2_MOD_VOVERS    303
2928 #define HSMHV2_MOD_VOVERSP   304
2929 #define HSMHV2_MOD_SVGSL     305
2930 #define HSMHV2_MOD_SVGSLP    306
2931 #define HSMHV2_MOD_SVGSWP    307
2932 #define HSMHV2_MOD_SVGSW     308
2933 #define HSMHV2_MOD_SVBSLP    309
2934 #define HSMHV2_MOD_SLGL      310
2935 #define HSMHV2_MOD_SLGLP     311
2936 #define HSMHV2_MOD_SUB1LP    312
2937 #define HSMHV2_MOD_IBPC1     404
2938 #define HSMHV2_MOD_IBPC1L    331
2939 #define HSMHV2_MOD_IBPC1LP   332
2940 #define HSMHV2_MOD_IBPC2     405
2941 #define HSMHV2_MOD_MPHDFM    409
2942 
2943 #define HSMHV2_MOD_PTL       530
2944 #define HSMHV2_MOD_PTP       531
2945 #define HSMHV2_MOD_PT2       532
2946 #define HSMHV2_MOD_PTLP      533
2947 #define HSMHV2_MOD_GDL       534
2948 #define HSMHV2_MOD_GDLP      535
2949 
2950 #define HSMHV2_MOD_GDLD      536
2951 #define HSMHV2_MOD_PT4       537
2952 #define HSMHV2_MOD_PT4P      538
2953 #define HSMHV2_MOD_RDVG11    424
2954 #define HSMHV2_MOD_RDVG12    425
2955 #define HSMHV2_MOD_RTH0      432
2956 #define HSMHV2_MOD_CTH0      462
2957 #define HSMHV2_MOD_POWRAT    463
2958 /* #define HSMHV2_MOD_WTH0      463 /\*---------SHE----------*\/ */
2959 #define HSMHV2_MOD_DLYOV     437
2960 #define HSMHV2_MOD_QDFTVD    438
2961 #define HSMHV2_MOD_XLDLD     439
2962 #define HSMHV2_MOD_XWDLD     494
2963 #define HSMHV2_MOD_RDVD      510
2964 #define HSMHV2_MOD_RDVB      301
2965 
2966 #define HSMHV2_MOD_RDVSUB    481 /* substrate effect */
2967 #define HSMHV2_MOD_RDVDSUB   482 /* substrate effect */
2968 #define HSMHV2_MOD_DDRIFT    483 /* substrate effect */
2969 #define HSMHV2_MOD_VBISUB    484 /* substrate effect */
2970 #define HSMHV2_MOD_NSUBSUB   485 /* substrate effect */
2971 
2972 //#define HSMHV2_MOD_QOVSM     323
2973 //#define HSMHV2_MOD_LDRIFT    458
2974 #define HSMHV2_MOD_RD20      447
2975 #define HSMHV2_MOD_RD21      441
2976 #define HSMHV2_MOD_RD22      442
2977 #define HSMHV2_MOD_RD22D     478
2978 #define HSMHV2_MOD_RD23      443
2979 #define HSMHV2_MOD_RD24      444
2980 #define HSMHV2_MOD_RD25      445
2981 #define HSMHV2_MOD_RDVDL     448
2982 #define HSMHV2_MOD_RDVDLP    449
2983 #define HSMHV2_MOD_RDVDS     450
2984 #define HSMHV2_MOD_RDVDSP    451
2985 #define HSMHV2_MOD_RD23L     452
2986 #define HSMHV2_MOD_RD23LP    453
2987 #define HSMHV2_MOD_RD23S     454
2988 #define HSMHV2_MOD_RD23SP    455
2989 #define HSMHV2_MOD_RDS       456
2990 #define HSMHV2_MOD_RDSP      457
2991 #define HSMHV2_MOD_RDTEMP1   461
2992 #define HSMHV2_MOD_RDTEMP2   464
2993 #define HSMHV2_MOD_RTH0R     470
2994 #define HSMHV2_MOD_RDVDTEMP1 471
2995 #define HSMHV2_MOD_RDVDTEMP2 472
2996 #define HSMHV2_MOD_RTH0W     473
2997 #define HSMHV2_MOD_RTH0WP    474
2998 #define HSMHV2_MOD_RTH0NF    475
2999 
3000 #define HSMHV2_MOD_RTHTEMP1  490
3001 #define HSMHV2_MOD_RTHTEMP2  491
3002 #define HSMHV2_MOD_PRATTEMP1 492
3003 #define HSMHV2_MOD_PRATTEMP2 493
3004 
3005 
3006 #define HSMHV2_MOD_CVDSOVER  480
3007 
3008 #define HSMHV2_MOD_RDRMUE    520
3009 #define HSMHV2_MOD_RDRVMAX   521
3010 #define HSMHV2_MOD_RDRMUETMP 522
3011 #define HSMHV2_MOD_M0LEAK    524
3012 #define HSMHV2_MOD_M0LEAKTMP 525
3013 #define HSMHV2_MOD_LEAKVMAX  543
3014 #define HSMHV2_MOD_M0TEMP1   551
3015 #define HSMHV2_MOD_M0TEMP2   553
3016 
3017 #define HSMHV2_MOD_RDRVTMP   523
3018 #define HSMHV2_MOD_RDRDJUNC  527
3019 #define HSMHV2_MOD_RDRCX     528
3020 #define HSMHV2_MOD_RDRCAR    529
3021 #define HSMHV2_MOD_RDRDL1    540
3022 #define HSMHV2_MOD_RDRDL2    541
3023 #define HSMHV2_MOD_RDRVMAXW  544
3024 #define HSMHV2_MOD_RDRVMAXWP 545
3025 #define HSMHV2_MOD_RDRVMAXL  546
3026 #define HSMHV2_MOD_RDRVMAXLP 547
3027 #define HSMHV2_MOD_RDRMUEL   548
3028 #define HSMHV2_MOD_RDRMUELP  549
3029 #define HSMHV2_MOD_RDRQOVER  552
3030 #define HSMHV2_MOD_QOVADD      338
3031 #define HSMHV2_MOD_JS0D        100
3032 #define HSMHV2_MOD_JS0SWD      150
3033 #define HSMHV2_MOD_NJD         153
3034 #define HSMHV2_MOD_NJSWD       189
3035 #define HSMHV2_MOD_XTID        194
3036 #define HSMHV2_MOD_CJD         196
3037 #define HSMHV2_MOD_CJSWD       197
3038 #define HSMHV2_MOD_CJSWGD      247
3039 #define HSMHV2_MOD_MJD         252
3040 #define HSMHV2_MOD_MJSWD       253
3041 #define HSMHV2_MOD_MJSWGD      264
3042 #define HSMHV2_MOD_PBD         265
3043 #define HSMHV2_MOD_PBSWD       266
3044 #define HSMHV2_MOD_PBSWDG      267
3045 #define HSMHV2_MOD_XTI2D       268
3046 #define HSMHV2_MOD_CISBD       269
3047 #define HSMHV2_MOD_CVBD        270
3048 #define HSMHV2_MOD_CTEMPD      271
3049 #define HSMHV2_MOD_CISBKD      272
3050 #define HSMHV2_MOD_DIVXD       274
3051 #define HSMHV2_MOD_VDIFFJD     275
3052 #define HSMHV2_MOD_JS0S        276
3053 #define HSMHV2_MOD_JS0SWS      277
3054 #define HSMHV2_MOD_NJS         278
3055 #define HSMHV2_MOD_NJSWS       279
3056 #define HSMHV2_MOD_XTIS        280
3057 #define HSMHV2_MOD_CJS         288
3058 #define HSMHV2_MOD_CJSSW       289
3059 #define HSMHV2_MOD_CJSWGS      291
3060 #define HSMHV2_MOD_MJS         293
3061 #define HSMHV2_MOD_MJSWS       298
3062 #define HSMHV2_MOD_MJSWGS      299
3063 #define HSMHV2_MOD_PBS         300
3064 #define HSMHV2_MOD_PBSWS       302
3065 #define HSMHV2_MOD_PBSWSG      323
3066 #define HSMHV2_MOD_XTI2S       333
3067 #define HSMHV2_MOD_CISBS       334
3068 #define HSMHV2_MOD_CVBS        335
3069 #define HSMHV2_MOD_CTEMPS      336
3070 #define HSMHV2_MOD_CISBKS      337
3071 #define HSMHV2_MOD_DIVXS       339
3072 #define HSMHV2_MOD_VDIFFJS     340
3073 #define HSMHV2_MOD_SHEMAX      501
3074 #define HSMHV2_MOD_VGSMIN      502
3075 #define HSMHV2_MOD_GDSLEAK     511
3076 #define HSMHV2_MOD_RDRBB       273
3077 #define HSMHV2_MOD_RDRBBTMP    602
3078 
3079 /* binning parameters */
3080 #define HSMHV2_MOD_LMIN       1000
3081 #define HSMHV2_MOD_LMAX       1001
3082 #define HSMHV2_MOD_WMIN       1002
3083 #define HSMHV2_MOD_WMAX       1003
3084 #define HSMHV2_MOD_LBINN      1004
3085 #define HSMHV2_MOD_WBINN      1005
3086 
3087 /* Length dependence */
3088 #define HSMHV2_MOD_LVMAX      1100
3089 #define HSMHV2_MOD_LBGTMP1    1101
3090 #define HSMHV2_MOD_LBGTMP2    1102
3091 #define HSMHV2_MOD_LEG0       1103
3092 #define HSMHV2_MOD_LVFBOVER   1428
3093 #define HSMHV2_MOD_LNOVER     1430
3094 #define HSMHV2_MOD_LNOVERS    1431
3095 #define HSMHV2_MOD_LWL2       1407
3096 #define HSMHV2_MOD_LVFBC      1121
3097 #define HSMHV2_MOD_LNSUBC     1123
3098 #define HSMHV2_MOD_LNSUBP     1181
3099 #define HSMHV2_MOD_LSCP1      1184
3100 #define HSMHV2_MOD_LSCP2      1185
3101 #define HSMHV2_MOD_LSCP3      1186
3102 #define HSMHV2_MOD_LSC1       1126
3103 #define HSMHV2_MOD_LSC2       1127
3104 #define HSMHV2_MOD_LSC3       1128
3105 #define HSMHV2_MOD_LPGD1      1187
3106 //#define HSMHV2_MOD_LPGD3      1189
3107 #define HSMHV2_MOD_LNDEP      1129
3108 #define HSMHV2_MOD_LNINV      1130
3109 #define HSMHV2_MOD_LMUECB0    1131
3110 #define HSMHV2_MOD_LMUECB1    1132
3111 #define HSMHV2_MOD_LMUEPH1    1133
3112 #define HSMHV2_MOD_LVTMP      1141
3113 #define HSMHV2_MOD_LWVTH0     1142
3114 #define HSMHV2_MOD_LMUESR1    1143
3115 #define HSMHV2_MOD_LMUETMP    1195
3116 #define HSMHV2_MOD_LSUB1      1151
3117 #define HSMHV2_MOD_LSUB2      1152
3118 #define HSMHV2_MOD_LSVDS      1286
3119 #define HSMHV2_MOD_LSVBS      1284
3120 #define HSMHV2_MOD_LSVGS      1283
3121 #define HSMHV2_MOD_LFN1       1294
3122 #define HSMHV2_MOD_LFN2       1295
3123 #define HSMHV2_MOD_LFN3       1296
3124 #define HSMHV2_MOD_LFVBS      1297
3125 #define HSMHV2_MOD_LNSTI      1225
3126 #define HSMHV2_MOD_LWSTI      1226
3127 #define HSMHV2_MOD_LSCSTI1    1229
3128 #define HSMHV2_MOD_LSCSTI2    1230
3129 #define HSMHV2_MOD_LVTHSTI    1232
3130 #define HSMHV2_MOD_LMUESTI1   1235
3131 #define HSMHV2_MOD_LMUESTI2   1236
3132 #define HSMHV2_MOD_LMUESTI3   1237
3133 #define HSMHV2_MOD_LNSUBPSTI1 1238
3134 #define HSMHV2_MOD_LNSUBPSTI2 1239
3135 #define HSMHV2_MOD_LNSUBPSTI3 1240
3136 #define HSMHV2_MOD_LCGSO      1154
3137 #define HSMHV2_MOD_LCGDO      1155
3138 #define HSMHV2_MOD_LJS0       1157
3139 #define HSMHV2_MOD_LJS0SW     1158
3140 #define HSMHV2_MOD_LNJ        1159
3141 #define HSMHV2_MOD_LCISBK     1172
3142 #define HSMHV2_MOD_LCLM1      1191
3143 #define HSMHV2_MOD_LCLM2      1192
3144 #define HSMHV2_MOD_LCLM3      1193
3145 #define HSMHV2_MOD_LWFC       1201
3146 #define HSMHV2_MOD_LGIDL1     1205
3147 #define HSMHV2_MOD_LGIDL2     1206
3148 #define HSMHV2_MOD_LGLEAK1    1208
3149 #define HSMHV2_MOD_LGLEAK2    1209
3150 #define HSMHV2_MOD_LGLEAK3    1210
3151 #define HSMHV2_MOD_LGLEAK6    1213
3152 #define HSMHV2_MOD_LGLKSD1    1215
3153 #define HSMHV2_MOD_LGLKSD2    1216
3154 #define HSMHV2_MOD_LGLKB1     1218
3155 #define HSMHV2_MOD_LGLKB2     1219
3156 #define HSMHV2_MOD_LNFTRP     1258
3157 #define HSMHV2_MOD_LNFALP     1259
3158 //#define HSMHV2_MOD_LPTHROU    1253
3159 #define HSMHV2_MOD_LVDIFFJ    1254
3160 #define HSMHV2_MOD_LIBPC1     1404
3161 #define HSMHV2_MOD_LIBPC2     1405
3162 #define HSMHV2_MOD_LCGBO      1156
3163 #define HSMHV2_MOD_LCVDSOVER  1480
3164 #define HSMHV2_MOD_LFALPH     1263
3165 #define HSMHV2_MOD_LNPEXT     1242
3166 #define HSMHV2_MOD_LPOWRAT    1463
3167 #define HSMHV2_MOD_LRD        1399
3168 #define HSMHV2_MOD_LRD22      1442
3169 #define HSMHV2_MOD_LRD23      1443
3170 #define HSMHV2_MOD_LRD24      1444
3171 #define HSMHV2_MOD_LRDICT1    1316
3172 #define HSMHV2_MOD_LRDOV13    1476
3173 #define HSMHV2_MOD_LRDSLP1    1315
3174 #define HSMHV2_MOD_LRDVB      1301
3175 #define HSMHV2_MOD_LRDVD      1510
3176 #define HSMHV2_MOD_LRDVG11    1424
3177 #define HSMHV2_MOD_LRS        1398
3178 #define HSMHV2_MOD_LRTH0      1432
3179 #define HSMHV2_MOD_LVOVER     1199
3180 #define HSMHV2_MOD_LJS0D       345
3181 #define HSMHV2_MOD_LJS0SWD     370
3182 #define HSMHV2_MOD_LNJD        372
3183 #define HSMHV2_MOD_LCISBKD     386
3184 #define HSMHV2_MOD_LVDIFFJD    387
3185 #define HSMHV2_MOD_LJS0S       388
3186 #define HSMHV2_MOD_LJS0SWS     395
3187 #define HSMHV2_MOD_LNJS        396
3188 #define HSMHV2_MOD_LCISBKS     397
3189 #define HSMHV2_MOD_LVDIFFJS    400
3190 
3191 /* Width dependence */
3192 #define HSMHV2_MOD_WVMAX      2100
3193 #define HSMHV2_MOD_WBGTMP1    2101
3194 #define HSMHV2_MOD_WBGTMP2    2102
3195 #define HSMHV2_MOD_WEG0       2103
3196 #define HSMHV2_MOD_WVFBOVER   2428
3197 #define HSMHV2_MOD_WNOVER     2430
3198 #define HSMHV2_MOD_WNOVERS    2431
3199 #define HSMHV2_MOD_WWL2       2407
3200 #define HSMHV2_MOD_WVFBC      2121
3201 #define HSMHV2_MOD_WNSUBC     2123
3202 #define HSMHV2_MOD_WNSUBP     2181
3203 #define HSMHV2_MOD_WSCP1      2184
3204 #define HSMHV2_MOD_WSCP2      2185
3205 #define HSMHV2_MOD_WSCP3      2186
3206 #define HSMHV2_MOD_WSC1       2126
3207 #define HSMHV2_MOD_WSC2       2127
3208 #define HSMHV2_MOD_WSC3       2128
3209 #define HSMHV2_MOD_WPGD1      2187
3210 //#define HSMHV2_MOD_WPGD3      2189
3211 #define HSMHV2_MOD_WNDEP      2129
3212 #define HSMHV2_MOD_WNINV      2130
3213 #define HSMHV2_MOD_WMUECB0    2131
3214 #define HSMHV2_MOD_WMUECB1    2132
3215 #define HSMHV2_MOD_WMUEPH1    2133
3216 #define HSMHV2_MOD_WVTMP      2141
3217 #define HSMHV2_MOD_WWVTH0     2142
3218 #define HSMHV2_MOD_WMUESR1    2143
3219 #define HSMHV2_MOD_WMUETMP    2195
3220 #define HSMHV2_MOD_WSUB1      2151
3221 #define HSMHV2_MOD_WSUB2      2152
3222 #define HSMHV2_MOD_WSVDS      2286
3223 #define HSMHV2_MOD_WSVBS      2284
3224 #define HSMHV2_MOD_WSVGS      2283
3225 #define HSMHV2_MOD_WFN1       2294
3226 #define HSMHV2_MOD_WFN2       2295
3227 #define HSMHV2_MOD_WFN3       2296
3228 #define HSMHV2_MOD_WFVBS      2297
3229 #define HSMHV2_MOD_WNSTI      2225
3230 #define HSMHV2_MOD_WWSTI      2226
3231 #define HSMHV2_MOD_WSCSTI1    2229
3232 #define HSMHV2_MOD_WSCSTI2    2230
3233 #define HSMHV2_MOD_WVTHSTI    2232
3234 #define HSMHV2_MOD_WMUESTI1   2235
3235 #define HSMHV2_MOD_WMUESTI2   2236
3236 #define HSMHV2_MOD_WMUESTI3   2237
3237 #define HSMHV2_MOD_WNSUBPSTI1 2238
3238 #define HSMHV2_MOD_WNSUBPSTI2 2239
3239 #define HSMHV2_MOD_WNSUBPSTI3 2240
3240 #define HSMHV2_MOD_WCGSO      2154
3241 #define HSMHV2_MOD_WCGDO      2155
3242 #define HSMHV2_MOD_WJS0       2157
3243 #define HSMHV2_MOD_WJS0SW     2158
3244 #define HSMHV2_MOD_WNJ        2159
3245 #define HSMHV2_MOD_WCISBK     2172
3246 #define HSMHV2_MOD_WCLM1      2191
3247 #define HSMHV2_MOD_WCLM2      2192
3248 #define HSMHV2_MOD_WCLM3      2193
3249 #define HSMHV2_MOD_WWFC       2201
3250 #define HSMHV2_MOD_WGIDL1     2205
3251 #define HSMHV2_MOD_WGIDL2     2206
3252 #define HSMHV2_MOD_WGLEAK1    2208
3253 #define HSMHV2_MOD_WGLEAK2    2209
3254 #define HSMHV2_MOD_WGLEAK3    2210
3255 #define HSMHV2_MOD_WGLEAK6    2213
3256 #define HSMHV2_MOD_WGLKSD1    2215
3257 #define HSMHV2_MOD_WGLKSD2    2216
3258 #define HSMHV2_MOD_WGLKB1     2218
3259 #define HSMHV2_MOD_WGLKB2     2219
3260 #define HSMHV2_MOD_WNFTRP     2258
3261 #define HSMHV2_MOD_WNFALP     2259
3262 //#define HSMHV2_MOD_WPTHROU    2253
3263 #define HSMHV2_MOD_WVDIFFJ    2254
3264 #define HSMHV2_MOD_WIBPC1     2404
3265 #define HSMHV2_MOD_WIBPC2     2405
3266 #define HSMHV2_MOD_WCGBO      2156
3267 #define HSMHV2_MOD_WCVDSOVER  2480
3268 #define HSMHV2_MOD_WFALPH     2263
3269 #define HSMHV2_MOD_WNPEXT     2242
3270 #define HSMHV2_MOD_WPOWRAT    2463
3271 #define HSMHV2_MOD_WRD        2399
3272 #define HSMHV2_MOD_WRD22      2442
3273 #define HSMHV2_MOD_WRD23      2443
3274 #define HSMHV2_MOD_WRD24      2444
3275 #define HSMHV2_MOD_WRDICT1    2316
3276 #define HSMHV2_MOD_WRDOV13    2476
3277 #define HSMHV2_MOD_WRDSLP1    2315
3278 #define HSMHV2_MOD_WRDVB      2301
3279 #define HSMHV2_MOD_WRDVD      2510
3280 #define HSMHV2_MOD_WRDVG11    2424
3281 #define HSMHV2_MOD_WRS        2398
3282 #define HSMHV2_MOD_WRTH0      2432
3283 #define HSMHV2_MOD_WVOVER     2199
3284 #define HSMHV2_MOD_WJS0D       401
3285 #define HSMHV2_MOD_WJS0SWD     435
3286 #define HSMHV2_MOD_WNJD        440
3287 #define HSMHV2_MOD_WCISBKD     446
3288 #define HSMHV2_MOD_WVDIFFJD    459
3289 #define HSMHV2_MOD_WJS0S       460
3290 #define HSMHV2_MOD_WJS0SWS     467
3291 #define HSMHV2_MOD_WNJS        468
3292 #define HSMHV2_MOD_WCISBKS     469
3293 #define HSMHV2_MOD_WVDIFFJS    477
3294 
3295 /* Cross-term dependence */
3296 #define HSMHV2_MOD_PVMAX      3100
3297 #define HSMHV2_MOD_PBGTMP1    3101
3298 #define HSMHV2_MOD_PBGTMP2    3102
3299 #define HSMHV2_MOD_PEG0       3103
3300 #define HSMHV2_MOD_PVFBOVER   3428
3301 #define HSMHV2_MOD_PNOVER     3430
3302 #define HSMHV2_MOD_PNOVERS    3431
3303 #define HSMHV2_MOD_PWL2       3407
3304 #define HSMHV2_MOD_PVFBC      3121
3305 #define HSMHV2_MOD_PNSUBC     3123
3306 #define HSMHV2_MOD_PNSUBP     3181
3307 #define HSMHV2_MOD_PSCP1      3184
3308 #define HSMHV2_MOD_PSCP2      3185
3309 #define HSMHV2_MOD_PSCP3      3186
3310 #define HSMHV2_MOD_PSC1       3126
3311 #define HSMHV2_MOD_PSC2       3127
3312 #define HSMHV2_MOD_PSC3       3128
3313 #define HSMHV2_MOD_PPGD1      3187
3314 //#define HSMHV2_MOD_PPGD3      3189
3315 #define HSMHV2_MOD_PNDEP      3129
3316 #define HSMHV2_MOD_PNINV      3130
3317 #define HSMHV2_MOD_PMUECB0    3131
3318 #define HSMHV2_MOD_PMUECB1    3132
3319 #define HSMHV2_MOD_PMUEPH1    3133
3320 #define HSMHV2_MOD_PVTMP      3141
3321 #define HSMHV2_MOD_PWVTH0     3142
3322 #define HSMHV2_MOD_PMUESR1    3143
3323 #define HSMHV2_MOD_PMUETMP    3195
3324 #define HSMHV2_MOD_PSUB1      3151
3325 #define HSMHV2_MOD_PSUB2      3152
3326 #define HSMHV2_MOD_PSVDS      3286
3327 #define HSMHV2_MOD_PSVBS      3284
3328 #define HSMHV2_MOD_PSVGS      3283
3329 #define HSMHV2_MOD_PFN1       3294
3330 #define HSMHV2_MOD_PFN2       3295
3331 #define HSMHV2_MOD_PFN3       3296
3332 #define HSMHV2_MOD_PFVBS      3297
3333 #define HSMHV2_MOD_PNSTI      3225
3334 #define HSMHV2_MOD_PWSTI      3226
3335 #define HSMHV2_MOD_PSCSTI1    3229
3336 #define HSMHV2_MOD_PSCSTI2    3230
3337 #define HSMHV2_MOD_PVTHSTI    3232
3338 #define HSMHV2_MOD_PMUESTI1   3235
3339 #define HSMHV2_MOD_PMUESTI2   3236
3340 #define HSMHV2_MOD_PMUESTI3   3237
3341 #define HSMHV2_MOD_PNSUBPSTI1 3238
3342 #define HSMHV2_MOD_PNSUBPSTI2 3239
3343 #define HSMHV2_MOD_PNSUBPSTI3 3240
3344 #define HSMHV2_MOD_PCGSO      3154
3345 #define HSMHV2_MOD_PCGDO      3155
3346 #define HSMHV2_MOD_PJS0       3157
3347 #define HSMHV2_MOD_PJS0SW     3158
3348 #define HSMHV2_MOD_PNJ        3159
3349 #define HSMHV2_MOD_PCISBK     3172
3350 #define HSMHV2_MOD_PCLM1      3191
3351 #define HSMHV2_MOD_PCLM2      3192
3352 #define HSMHV2_MOD_PCLM3      3193
3353 #define HSMHV2_MOD_PWFC       3201
3354 #define HSMHV2_MOD_PGIDL1     3205
3355 #define HSMHV2_MOD_PGIDL2     3206
3356 #define HSMHV2_MOD_PGLEAK1    3208
3357 #define HSMHV2_MOD_PGLEAK2    3209
3358 #define HSMHV2_MOD_PGLEAK3    3210
3359 #define HSMHV2_MOD_PGLEAK6    3213
3360 #define HSMHV2_MOD_PGLKSD1    3215
3361 #define HSMHV2_MOD_PGLKSD2    3216
3362 #define HSMHV2_MOD_PGLKB1     3218
3363 #define HSMHV2_MOD_PGLKB2     3219
3364 #define HSMHV2_MOD_PNFTRP     3258
3365 #define HSMHV2_MOD_PNFALP     3259
3366 //#define HSMHV2_MOD_PPTHROU    3253
3367 #define HSMHV2_MOD_PVDIFFJ    3254
3368 #define HSMHV2_MOD_PIBPC1     3404
3369 #define HSMHV2_MOD_PIBPC2     3405
3370 #define HSMHV2_MOD_PCGBO      3156
3371 #define HSMHV2_MOD_PCVDSOVER  3480
3372 #define HSMHV2_MOD_PFALPH     3263
3373 #define HSMHV2_MOD_PNPEXT     3242
3374 #define HSMHV2_MOD_PPOWRAT    3463
3375 #define HSMHV2_MOD_PRD        3399
3376 #define HSMHV2_MOD_PRD22      3442
3377 #define HSMHV2_MOD_PRD23      3443
3378 #define HSMHV2_MOD_PRD24      3444
3379 #define HSMHV2_MOD_PRDICT1    3316
3380 #define HSMHV2_MOD_PRDOV13    3476
3381 #define HSMHV2_MOD_PRDSLP1    3315
3382 #define HSMHV2_MOD_PRDVB      3301
3383 #define HSMHV2_MOD_PRDVD      3510
3384 #define HSMHV2_MOD_PRDVG11    3424
3385 #define HSMHV2_MOD_PRS        3398
3386 #define HSMHV2_MOD_PRTH0      3432
3387 #define HSMHV2_MOD_PVOVER     3199
3388 #define HSMHV2_MOD_PJS0D       479
3389 #define HSMHV2_MOD_PJS0SWD     486
3390 #define HSMHV2_MOD_PNJD        487
3391 #define HSMHV2_MOD_PCISBKD     488
3392 #define HSMHV2_MOD_PVDIFFJD    489
3393 #define HSMHV2_MOD_PJS0S       495
3394 #define HSMHV2_MOD_PJS0SWS     496
3395 #define HSMHV2_MOD_PNJS        497
3396 #define HSMHV2_MOD_PCISBKS     498
3397 #define HSMHV2_MOD_PVDIFFJS    499
3398 
3399 /* device requests */
3400 #define HSMHV2_DNODE          341
3401 #define HSMHV2_GNODE          342
3402 #define HSMHV2_SNODE          343
3403 #define HSMHV2_BNODE          344
3404 /* #define HSMHV2_TEMPNODE       345	not used */
3405 #define HSMHV2_DNODEPRIME     346
3406 #define HSMHV2_SNODEPRIME     347
3407 /* #define HSMHV2_BNODEPRIME     395	not used */
3408 /* #define HSMHV2_DBNODE         396	not used */
3409 /* #define HSMHV2_SBNODE         397	not used */
3410 /* #define HSMHV2_VBD            347 */
3411 #define HSMHV2_VBD            466
3412 #define HSMHV2_VBS            348
3413 #define HSMHV2_VGS            349
3414 #define HSMHV2_VDS            350
3415 #define HSMHV2_CD             351
3416 #define HSMHV2_CBS            352
3417 #define HSMHV2_CBD            353
3418 #define HSMHV2_GM             354
3419 #define HSMHV2_GDS            355
3420 #define HSMHV2_GMBS           356
3421 #define HSMHV2_GMT            465
3422 /* #define HSMHV2_ISUBT          466 */
3423 #define HSMHV2_GBD            357
3424 #define HSMHV2_GBS            358
3425 #define HSMHV2_QB             359
3426 #define HSMHV2_CQB            360
3427 /* #define HSMHV2_QTH            467	not used */
3428 /* #define HSMHV2_CQTH           468	not used */
3429 /* #define HSMHV2_CTH            469	not used */
3430 #define HSMHV2_QG             361
3431 #define HSMHV2_CQG            362
3432 #define HSMHV2_QD             363
3433 #define HSMHV2_CQD            364
3434 #define HSMHV2_CGG            365
3435 #define HSMHV2_CGD            366
3436 #define HSMHV2_CGS            367
3437 #define HSMHV2_CBG            368
3438 #define HSMHV2_CAPBD          369
3439 /* #define HSMHV2_CQBD           370	not used */
3440 #define HSMHV2_CAPBS          371
3441 /* #define HSMHV2_CQBS           372	not used */
3442 #define HSMHV2_CDG            373
3443 #define HSMHV2_CDD            374
3444 #define HSMHV2_CDS            375
3445 #define HSMHV2_VON            376
3446 #define HSMHV2_VDSAT          377
3447 #define HSMHV2_QBS            378
3448 #define HSMHV2_QBD            379
3449 #define HSMHV2_SOURCECONDUCT  380
3450 #define HSMHV2_DRAINCONDUCT   381
3451 #define HSMHV2_CBDB           382
3452 #define HSMHV2_CBSB           383
3453 #define HSMHV2_MOD_RBPB       389
3454 #define HSMHV2_MOD_RBPD       390
3455 #define HSMHV2_MOD_RBPS       391
3456 #define HSMHV2_MOD_RBDB       392
3457 #define HSMHV2_MOD_RBSB       393
3458 #define HSMHV2_MOD_GBMIN      394
3459 
3460 #define HSMHV2_ISUB           410
3461 #define HSMHV2_ISUBLD         426
3462 #define HSMHV2_IDSIBPC        427
3463 #define HSMHV2_IGIDL          411
3464 #define HSMHV2_IGISL          412
3465 #define HSMHV2_IGD            413
3466 #define HSMHV2_IGS            414
3467 #define HSMHV2_IGB            415
3468 #define HSMHV2_CGSO           416
3469 #define HSMHV2_CGBO           417
3470 #define HSMHV2_CGDO           418
3471 
3472 #define HSMHV2_MOD_TCJBD         92
3473 #define HSMHV2_MOD_TCJBS         93
3474 #define HSMHV2_MOD_TCJBDSW       94
3475 #define HSMHV2_MOD_TCJBSSW       95
3476 #define HSMHV2_MOD_TCJBDSWG      96
3477 #define HSMHV2_MOD_TCJBSSWG      97
3478 
3479 #define HSMHV2_MOD_VGS_MAX          4001
3480 #define HSMHV2_MOD_VGD_MAX          4002
3481 #define HSMHV2_MOD_VGB_MAX          4003
3482 #define HSMHV2_MOD_VDS_MAX          4004
3483 #define HSMHV2_MOD_VBS_MAX          4005
3484 #define HSMHV2_MOD_VBD_MAX          4006
3485 #define HSMHV2_MOD_VGSR_MAX         4007
3486 #define HSMHV2_MOD_VGDR_MAX         4008
3487 #define HSMHV2_MOD_VGBR_MAX         4009
3488 #define HSMHV2_MOD_VBSR_MAX         4010
3489 #define HSMHV2_MOD_VBDR_MAX         4011
3490 
3491 #include "hsmhv2ext.h"
3492 
3493 /* Prototype has to be adapted!
3494 extern void HSMHV2evaluate(double,double,double,HSMHV2instance*,HSMHV2model*,
3495         double*,double*,double*, double*, double*, double*, double*,
3496         double*, double*, double*, double*, double*, double*, double*,
3497         double*, double*, double*, double*, CKTcircuit*);
3498 */
3499 
3500 #endif /*HSMHV2*/
3501 
3502