1 /**********
2 Copyright 1990 Regents of the University of California.  All rights reserved.
3 Author: 1985 Thomas L. Quarles
4 Modified: 2000 AlanFixes
5 **********/
6 
7 #ifndef MOS3
8 #define MOS3
9 
10 #include "ngspice/ifsim.h"
11 #include "ngspice/cktdefs.h"
12 #include "ngspice/gendefs.h"
13 #include "ngspice/complex.h"
14 #include "ngspice/noisedef.h"
15 
16     /* declarations for level 3 MOSFETs */
17 
18 /* indices to the array of MOSFET(3) noise sources */
19 
20 enum {
21     MOS3RDNOIZ = 0,
22     MOS3RSNOIZ,
23     MOS3IDNOIZ,
24     MOS3FLNOIZ,
25     MOS3TOTNOIZ,
26     /* finally, the number of noise sources */
27     MOS3NSRCS
28 };
29 
30 /* information needed for each instance */
31 
32 typedef struct sMOS3instance {
33 
34     struct GENinstance gen;
35 
36 #define MOS3modPtr(inst) ((struct sMOS3model *)((inst)->gen.GENmodPtr))
37 #define MOS3nextInstance(inst) ((struct sMOS3instance *)((inst)->gen.GENnextInstance))
38 #define MOS3name gen.GENname
39 #define MOS3states gen.GENstate
40 
41     const int MOS3dNode;  /* number of the gate node of the mosfet */
42     const int MOS3gNode;  /* number of the gate node of the mosfet */
43     const int MOS3sNode;  /* number of the source node of the mosfet */
44     const int MOS3bNode;  /* number of the bulk node of the mosfet */
45     int MOS3dNodePrime; /* number of the internal drain node of the mosfet */
46     int MOS3sNodePrime; /* number of the internal source node of the mosfet */
47 
48     double MOS3m;   /* parallel device multiplier */
49     double MOS3l;   /* the length of the channel region */
50     double MOS3w;   /* the width of the channel region */
51     double MOS3drainArea;   /* the area of the drain diffusion */
52     double MOS3sourceArea;  /* the area of the source diffusion */
53     double MOS3drainSquares;    /* the length of the drain in squares */
54     double MOS3sourceSquares;   /* the length of the source in squares */
55     double MOS3drainPerimiter;
56     double MOS3sourcePerimiter;
57     double MOS3sourceConductance;   /*conductance of source(or 0):set in setup*/
58     double MOS3drainConductance;    /*conductance of drain(or 0):set in setup*/
59     double MOS3temp;    /* operating temperature of this instance */
60     double MOS3dtemp;    /* temperature difference for this instance */
61 
62     double MOS3tTransconductance;   /* temperature corrected transconductance*/
63     double MOS3tSurfMob;            /* temperature corrected surface mobility */
64     double MOS3tPhi;                /* temperature corrected Phi */
65     double MOS3tVto;                /* temperature corrected Vto */
66     double MOS3tSatCur;             /* temperature corrected saturation Cur. */
67     double MOS3tSatCurDens; /* temperature corrected saturation Cur. density*/
68     double MOS3tCbd;                /* temperature corrected B-D Capacitance */
69     double MOS3tCbs;                /* temperature corrected B-S Capacitance */
70     double MOS3tCj;         /* temperature corrected Bulk bottom Capacitance */
71     double MOS3tCjsw;       /* temperature corrected Bulk side Capacitance */
72     double MOS3tBulkPot;    /* temperature corrected Bulk potential */
73     double MOS3tDepCap;     /* temperature adjusted transition point in */
74                             /* the cureve matching Fc * Vj */
75     double MOS3tVbi;        /* temperature adjusted Vbi */
76 
77     double MOS3icVBS;   /* initial condition B-S voltage */
78     double MOS3icVDS;   /* initial condition D-S voltage */
79     double MOS3icVGS;   /* initial condition G-S voltage */
80     double MOS3von;
81     double MOS3vdsat;
82     double MOS3sourceVcrit; /* vcrit for pos. vds */
83     double MOS3drainVcrit;  /* vcrit for neg. vds */
84     double MOS3cd;
85     double MOS3cbs;
86     double MOS3cbd;
87     double MOS3gmbs;
88     double MOS3gm;
89     double MOS3gds;
90     double MOS3gbd;
91     double MOS3gbs;
92     double MOS3capbd;
93     double MOS3capbs;
94     double MOS3Cbd;
95     double MOS3Cbdsw;
96     double MOS3Cbs;
97     double MOS3Cbssw;
98     double MOS3f2d;
99     double MOS3f3d;
100     double MOS3f4d;
101     double MOS3f2s;
102     double MOS3f3s;
103     double MOS3f4s;
104     int MOS3mode;       /* device mode : 1 = normal, -1 = inverse */
105 
106 
107     unsigned MOS3off :1;/* non-zero to indicate device is off for dc analysis*/
108     unsigned MOS3tempGiven :1;  /* instance temperature specified */
109     unsigned MOS3dtempGiven :1;  /* instance temperature difference specified */
110     unsigned MOS3mGiven :1;
111     unsigned MOS3lGiven :1;
112     unsigned MOS3wGiven :1;
113     unsigned MOS3drainAreaGiven :1;
114     unsigned MOS3sourceAreaGiven    :1;
115     unsigned MOS3drainSquaresGiven  :1;
116     unsigned MOS3sourceSquaresGiven :1;
117     unsigned MOS3drainPerimiterGiven    :1;
118     unsigned MOS3sourcePerimiterGiven   :1;
119     unsigned MOS3dNodePrimeSet  :1;
120     unsigned MOS3sNodePrimeSet  :1;
121     unsigned MOS3icVBSGiven :1;
122     unsigned MOS3icVDSGiven :1;
123     unsigned MOS3icVGSGiven :1;
124     unsigned MOS3vonGiven   :1;
125     unsigned MOS3vdsatGiven :1;
126     unsigned MOS3modeGiven  :1;
127 
128 
129     double *MOS3DdPtr;      /* pointer to sparse matrix element at
130                                      * (Drain node,drain node) */
131     double *MOS3GgPtr;      /* pointer to sparse matrix element at
132                                      * (gate node,gate node) */
133     double *MOS3SsPtr;      /* pointer to sparse matrix element at
134                                      * (source node,source node) */
135     double *MOS3BbPtr;      /* pointer to sparse matrix element at
136                                      * (bulk node,bulk node) */
137     double *MOS3DPdpPtr;    /* pointer to sparse matrix element at
138                                      * (drain prime node,drain prime node) */
139     double *MOS3SPspPtr;    /* pointer to sparse matrix element at
140                                      * (source prime node,source prime node) */
141     double *MOS3DdpPtr;     /* pointer to sparse matrix element at
142                                      * (drain node,drain prime node) */
143     double *MOS3GbPtr;      /* pointer to sparse matrix element at
144                                      * (gate node,bulk node) */
145     double *MOS3GdpPtr;     /* pointer to sparse matrix element at
146                                      * (gate node,drain prime node) */
147     double *MOS3GspPtr;     /* pointer to sparse matrix element at
148                                      * (gate node,source prime node) */
149     double *MOS3SspPtr;     /* pointer to sparse matrix element at
150                                      * (source node,source prime node) */
151     double *MOS3BdpPtr;     /* pointer to sparse matrix element at
152                                      * (bulk node,drain prime node) */
153     double *MOS3BspPtr;     /* pointer to sparse matrix element at
154                                      * (bulk node,source prime node) */
155     double *MOS3DPspPtr;    /* pointer to sparse matrix element at
156                                      * (drain prime node,source prime node) */
157     double *MOS3DPdPtr;     /* pointer to sparse matrix element at
158                                      * (drain prime node,drain node) */
159     double *MOS3BgPtr;      /* pointer to sparse matrix element at
160                                      * (bulk node,gate node) */
161     double *MOS3DPgPtr;     /* pointer to sparse matrix element at
162                                      * (drain prime node,gate node) */
163 
164     double *MOS3SPgPtr;     /* pointer to sparse matrix element at
165                                      * (source prime node,gate node) */
166     double *MOS3SPsPtr;     /* pointer to sparse matrix element at
167                                      * (source prime node,source node) */
168     double *MOS3DPbPtr;     /* pointer to sparse matrix element at
169                                      * (drain prime node,bulk node) */
170     double *MOS3SPbPtr;     /* pointer to sparse matrix element at
171                                      * (source prime node,bulk node) */
172     double *MOS3SPdpPtr;    /* pointer to sparse matrix element at
173                                      * (source prime node,drain prime node) */
174     int  MOS3senParmNo;   /* parameter # for sensitivity use;
175             set equal to 0  if  neither length
176             nor width of the mosfet is a design
177             parameter */
178     unsigned MOS3sens_l :1;   /* field which indicates whether
179               length of the mosfet is a design
180               parameter or not */
181     unsigned MOS3sens_w :1;   /* field which indicates whether
182               width of the mosfet is a design
183               parameter or not */
184     unsigned MOS3senPertFlag :1; /* indictes whether the the parameter of
185                         the particular instance is to be perturbed */
186     double MOS3cgs;
187     double MOS3cgd;
188     double MOS3cgb;
189     double *MOS3sens;
190 
191 #define MOS3senGdpr MOS3sens
192 #define MOS3senGspr MOS3sens + 1
193 #define MOS3senCgs MOS3sens + 2 /* contains pertured values of cgs */
194 #define MOS3senCgd MOS3sens + 8 /* contains perturbed values of cgd*/
195 #define MOS3senCgb MOS3sens + 14 /* contains perturbed values of cgb*/
196 #define MOS3senCbd MOS3sens + 20 /* contains perturbed values of cbd*/
197 #define MOS3senCbs MOS3sens + 26 /* contains perturbed values of cbs*/
198 #define MOS3senGds MOS3sens + 32 /* contains perturbed values of gds*/
199 #define MOS3senGbs MOS3sens + 38 /* contains perturbed values of gbs*/
200 #define MOS3senGbd MOS3sens + 44 /* contains perturbed values of gbd*/
201 #define MOS3senGm MOS3sens + 50 /* contains perturbed values of gm*/
202 #define MOS3senGmbs MOS3sens + 56 /* contains perturbed values of gmbs*/
203 #define MOS3dphigs_dl MOS3sens + 62
204 #define MOS3dphigd_dl MOS3sens + 63
205 #define MOS3dphigb_dl MOS3sens + 64
206 #define MOS3dphibs_dl MOS3sens + 65
207 #define MOS3dphibd_dl MOS3sens + 66
208 #define MOS3dphigs_dw MOS3sens + 67
209 #define MOS3dphigd_dw MOS3sens + 68
210 #define MOS3dphigb_dw MOS3sens + 69
211 #define MOS3dphibs_dw MOS3sens + 70
212 #define MOS3dphibd_dw MOS3sens + 71
213 
214     /* 		distortion stuff 	*/
215 /*
216  * naming convention:
217  * x = vgs
218  * y = vbs
219  * z = vds
220  * cdr = cdrain
221  */
222 
223 
224 #define	MOS3NDCOEFFS	30
225 
226 #ifndef NODISTO
227 	double MOS3dCoeffs[MOS3NDCOEFFS];
228 #else /* NODISTO */
229 	double *MOS3dCoeffs;
230 #endif /* NODISTO */
231 
232 #ifndef CONFIG
233 
234 #define	capbs2		MOS3dCoeffs[0]
235 #define	capbs3		MOS3dCoeffs[1]
236 #define	capbd2		MOS3dCoeffs[2]
237 #define	capbd3		MOS3dCoeffs[3]
238 #define	gbs2		MOS3dCoeffs[4]
239 #define	gbs3		MOS3dCoeffs[5]
240 #define	gbd2		MOS3dCoeffs[6]
241 #define	gbd3		MOS3dCoeffs[7]
242 #define	capgb2		MOS3dCoeffs[8]
243 #define	capgb3		MOS3dCoeffs[9]
244 #define	cdr_x2		MOS3dCoeffs[10]
245 #define	cdr_y2		MOS3dCoeffs[11]
246 #define	cdr_z2		MOS3dCoeffs[12]
247 #define	cdr_xy		MOS3dCoeffs[13]
248 #define	cdr_yz		MOS3dCoeffs[14]
249 #define	cdr_xz		MOS3dCoeffs[15]
250 #define	cdr_x3		MOS3dCoeffs[16]
251 #define	cdr_y3		MOS3dCoeffs[17]
252 #define	cdr_z3		MOS3dCoeffs[18]
253 #define	cdr_x2z		MOS3dCoeffs[19]
254 #define	cdr_x2y		MOS3dCoeffs[20]
255 #define	cdr_y2z		MOS3dCoeffs[21]
256 #define	cdr_xy2		MOS3dCoeffs[22]
257 #define	cdr_xz2		MOS3dCoeffs[23]
258 #define	cdr_yz2		MOS3dCoeffs[24]
259 #define	cdr_xyz		MOS3dCoeffs[25]
260 #define	capgs2		MOS3dCoeffs[26]
261 #define	capgs3		MOS3dCoeffs[27]
262 #define	capgd2		MOS3dCoeffs[28]
263 #define	capgd3		MOS3dCoeffs[29]
264 
265 #endif
266 
267     /* 		end distortion coeffs.  	*/
268 
269 #ifndef NONOISE
270     double MOS3nVar[NSTATVARS][MOS3NSRCS];
271 #else /* NONOISE */
272 	double **MOS3nVar;
273 #endif /* NONOISE */
274 
275 } MOS3instance ;
276 
277 #define MOS3vbd MOS3states+ 0
278 #define MOS3vbs MOS3states+ 1
279 #define MOS3vgs MOS3states+ 2
280 #define MOS3vds MOS3states+ 3
281 
282 /* meyer capacitances */
283 #define MOS3capgs MOS3states+ 4 /* gate-source capacitor value */
284 #define MOS3qgs MOS3states+ 5   /* gate-source capacitor charge */
285 #define MOS3cqgs MOS3states+ 6  /* gate-source capacitor current */
286 
287 #define MOS3capgd MOS3states+ 7 /* gate-drain capacitor value */
288 #define MOS3qgd MOS3states+ 8   /* gate-drain capacitor charge */
289 #define MOS3cqgd MOS3states+ 9  /* gate-drain capacitor current */
290 
291 #define MOS3capgb MOS3states+ 10/* gate-bulk capacitor value */
292 #define MOS3qgb MOS3states+ 11  /* gate-bulk capacitor charge */
293 #define MOS3cqgb MOS3states+ 12 /* gate-bulk capacitor current */
294 
295 /* diode capacitances */
296 #define MOS3qbd MOS3states+ 13  /* bulk-drain capacitor charge */
297 #define MOS3cqbd MOS3states+ 14 /* bulk-drain capacitor current */
298 
299 #define MOS3qbs MOS3states+ 15  /* bulk-source capacitor charge */
300 #define MOS3cqbs MOS3states+ 16 /* bulk-source capacitor current */
301 
302 #define MOS3NUMSTATES 17
303 
304 
305 #define MOS3sensxpgs MOS3states+17 /* charge sensitivities and their derivatives
306                                      +18 for the derivatives - pointer to the
307                      beginning of the array */
308 #define MOS3sensxpgd  MOS3states+19
309 #define MOS3sensxpgb  MOS3states+21
310 #define MOS3sensxpbs  MOS3states+23
311 #define MOS3sensxpbd  MOS3states+25
312 
313 #define MOS3numSenStates 10
314 
315 
316 /* per model data */
317 
318     /* NOTE:  parameters marked 'input - use xxxx' are paramters for
319      * which a temperature correction is applied in MOS3temp, thus
320      * the MOS3xxxx value in the per-instance structure should be used
321      * instead in all calculations
322      */
323 
324 typedef struct sMOS3model {       /* model structure for a resistor */
325 
326     struct GENmodel gen;
327 
328 #define MOS3modType gen.GENmodType
329 #define MOS3nextModel(inst) ((struct sMOS3model *)((inst)->gen.GENnextModel))
330 #define MOS3instances(inst) ((MOS3instance *)((inst)->gen.GENinstances))
331 #define MOS3modName gen.GENmodName
332 
333     int MOS3type;       /* device type : 1 = nmos,  -1 = pmos */
334     double MOS3tnom;        /* temperature at which parameters measured */
335     double MOS3latDiff;
336     double MOS3lengthAdjust;    /* New parm: mask adjustment to length */
337     double MOS3widthNarrow;     /* New parm to reduce effective width */
338     double MOS3widthAdjust;     /* New parm: mask adjustment to width */
339     double MOS3delvt0;          /* New parm: adjustment calculated vtO */
340     double MOS3jctSatCurDensity;    /* input - use tSatCurDens*/
341     double MOS3jctSatCur;   /* input - use tSatCur instead */
342     double MOS3drainResistance;
343     double MOS3sourceResistance;
344     double MOS3sheetResistance;
345     double MOS3transconductance; /* input - use tTransconductance */
346     double MOS3gateSourceOverlapCapFactor;
347     double MOS3gateDrainOverlapCapFactor;
348     double MOS3gateBulkOverlapCapFactor;
349     double MOS3oxideCapFactor;
350     double MOS3vt0; /* input - use tVto */
351     double MOS3capBD;   /* input - use tCbs */
352     double MOS3capBS;   /* input - use tCbd */
353     double MOS3bulkCapFactor;   /* input - use tCj */
354     double MOS3sideWallCapFactor;   /* input - use tCjsw */
355     double MOS3bulkJctPotential;    /* input - use tBulkPot */
356     double MOS3bulkJctBotGradingCoeff;
357     double MOS3bulkJctSideGradingCoeff;
358     double MOS3fwdCapDepCoeff;
359     double MOS3phi; /* input - use tPhi */
360     double MOS3gamma;
361     double MOS3substrateDoping;
362     int MOS3gateType;
363     double MOS3surfaceStateDensity;
364     double MOS3oxideThickness;
365     double MOS3surfaceMobility; /* input - use tSurfMob */
366     double MOS3eta;
367     double MOS3junctionDepth;
368     double MOS3coeffDepLayWidth; /* xd */
369     double MOS3narrowFactor;    /* delta */
370     double MOS3delta;   /* input delta */
371     double MOS3fastSurfaceStateDensity; /* nfs */
372     double MOS3theta;   /* theta */
373     double MOS3maxDriftVel; /* vmax */
374     double MOS3alpha;   /* alpha */
375     double MOS3kappa;   /* kappa */
376     double MOS3fNcoef;
377     double MOS3fNexp;
378 
379     unsigned MOS3typeGiven  :1;
380     unsigned MOS3latDiffGiven   :1;
381     unsigned MOS3lengthAdjustGiven  :1;
382     unsigned MOS3widthNarrowGiven   :1;
383     unsigned MOS3widthAdjustGiven   :1;
384     unsigned MOS3delvt0Given        :1;
385     unsigned MOS3jctSatCurDensityGiven  :1;
386     unsigned MOS3jctSatCurGiven :1;
387     unsigned MOS3drainResistanceGiven   :1;
388     unsigned MOS3sourceResistanceGiven  :1;
389     unsigned MOS3sheetResistanceGiven   :1;
390     unsigned MOS3transconductanceGiven  :1;
391     unsigned MOS3gateSourceOverlapCapFactorGiven    :1;
392     unsigned MOS3gateDrainOverlapCapFactorGiven :1;
393     unsigned MOS3gateBulkOverlapCapFactorGiven  :1;
394     unsigned MOS3vt0Given   :1;
395     unsigned MOS3capBDGiven :1;
396     unsigned MOS3capBSGiven :1;
397     unsigned MOS3bulkCapFactorGiven :1;
398     unsigned MOS3sideWallCapFactorGiven   :1;
399     unsigned MOS3bulkJctPotentialGiven  :1;
400     unsigned MOS3bulkJctBotGradingCoeffGiven    :1;
401     unsigned MOS3bulkJctSideGradingCoeffGiven   :1;
402     unsigned MOS3fwdCapDepCoeffGiven    :1;
403     unsigned MOS3phiGiven   :1;
404     unsigned MOS3gammaGiven :1;
405     unsigned MOS3substrateDopingGiven   :1;
406     unsigned MOS3gateTypeGiven  :1;
407     unsigned MOS3surfaceStateDensityGiven   :1;
408     unsigned MOS3oxideThicknessGiven    :1;
409     unsigned MOS3surfaceMobilityGiven   :1;
410     unsigned MOS3etaGiven   :1;
411     unsigned MOS3junctionDepthGiven :1;
412     unsigned MOS3deltaGiven :1; /* delta */
413     unsigned MOS3fastSurfaceStateDensityGiven   :1; /* nfs */
414     unsigned MOS3thetaGiven :1; /* theta */
415     unsigned MOS3maxDriftVelGiven   :1; /* vmax */
416     unsigned MOS3kappaGiven :1; /* kappa */
417     unsigned MOS3tnomGiven :1;  /* Tnom was given? */
418     unsigned MOS3fNcoefGiven :1;
419     unsigned MOS3fNexpGiven :1;
420 
421 } MOS3model;
422 
423 #ifndef NMOS
424 #define NMOS 1
425 #define PMOS -1
426 #endif /*NMOS*/
427 
428 /* device parameters */
429 enum {
430     MOS3_W = 1,
431     MOS3_L,
432     MOS3_AS,
433     MOS3_AD,
434     MOS3_PS,
435     MOS3_PD,
436     MOS3_NRS,
437     MOS3_NRD,
438     MOS3_OFF,
439     MOS3_IC,
440     MOS3_IC_VBS,
441     MOS3_IC_VDS,
442     MOS3_IC_VGS,
443     MOS3_W_SENS,
444     MOS3_L_SENS,
445     MOS3_CB,
446     MOS3_CG,
447     MOS3_CS,
448     MOS3_POWER,
449     MOS3_CGS,
450     MOS3_CGD,
451     MOS3_DNODE,
452     MOS3_GNODE,
453     MOS3_SNODE,
454     MOS3_BNODE,
455     MOS3_DNODEPRIME,
456     MOS3_SNODEPRIME,
457     MOS3_SOURCECONDUCT,
458     MOS3_DRAINCONDUCT,
459     MOS3_VON,
460     MOS3_VDSAT,
461     MOS3_SOURCEVCRIT,
462     MOS3_DRAINVCRIT,
463     MOS3_CD,
464     MOS3_CBS,
465     MOS3_CBD,
466     MOS3_GMBS,
467     MOS3_GM,
468     MOS3_GDS,
469     MOS3_GBD,
470     MOS3_GBS,
471     MOS3_CAPBD,
472     MOS3_CAPBS,
473     MOS3_CAPZEROBIASBD,
474     MOS3_CAPZEROBIASBDSW,
475     MOS3_CAPZEROBIASBS,
476     MOS3_CAPZEROBIASBSSW,
477     MOS3_VBD,
478     MOS3_VBS,
479     MOS3_VGS,
480     MOS3_VDS,
481     MOS3_CAPGS,
482     MOS3_QGS,
483     MOS3_CQGS,
484     MOS3_CAPGD,
485     MOS3_QGD,
486     MOS3_CQGD,
487     MOS3_CAPGB,
488     MOS3_QGB,
489     MOS3_CQGB,
490     MOS3_QBD,
491     MOS3_CQBD,
492     MOS3_QBS,
493     MOS3_CQBS,
494     MOS3_W_SENS_REAL,
495     MOS3_W_SENS_IMAG,
496     MOS3_W_SENS_MAG,
497     MOS3_W_SENS_PH,
498     MOS3_W_SENS_CPLX,
499     MOS3_L_SENS_REAL,
500     MOS3_L_SENS_IMAG,
501     MOS3_L_SENS_MAG,
502     MOS3_L_SENS_PH,
503     MOS3_L_SENS_CPLX,
504     MOS3_W_SENS_DC,
505     MOS3_L_SENS_DC,
506     MOS3_TEMP,
507     MOS3_SOURCERESIST,
508     MOS3_DRAINRESIST,
509     MOS3_M,
510     MOS3_DTEMP,
511 };
512 
513 /* model parameters */
514 enum {
515     MOS3_MOD_VTO = 101,
516     MOS3_MOD_KP,
517     MOS3_MOD_GAMMA,
518     MOS3_MOD_PHI,
519     MOS3_MOD_RD,
520     MOS3_MOD_RS,
521     MOS3_MOD_CBD,
522     MOS3_MOD_CBS,
523     MOS3_MOD_IS,
524     MOS3_MOD_PB,
525     MOS3_MOD_CGSO,
526     MOS3_MOD_CGDO,
527     MOS3_MOD_CGBO,
528     MOS3_MOD_RSH,
529     MOS3_MOD_CJ,
530     MOS3_MOD_MJ,
531     MOS3_MOD_CJSW,
532     MOS3_MOD_MJSW,
533     MOS3_MOD_JS,
534     MOS3_MOD_TOX,
535     MOS3_MOD_LD,
536     MOS3_MOD_U0,
537     MOS3_MOD_FC,
538     MOS3_MOD_NSUB,
539     MOS3_MOD_TPG,
540     MOS3_MOD_NSS,
541     MOS3_MOD_ETA,
542     MOS3_MOD_DELTA,
543     MOS3_MOD_NFS,
544     MOS3_MOD_THETA,
545     MOS3_MOD_VMAX,
546     MOS3_MOD_KAPPA,
547     MOS3_MOD_NMOS,
548     MOS3_MOD_PMOS,
549     MOS3_MOD_XJ,
550     MOS3_MOD_UEXP,
551     MOS3_MOD_NEFF,
552     MOS3_MOD_XD,
553     MOS3_MOD_ALPHA,
554     MOS3_DELTA,
555     MOS3_MOD_TNOM,
556     MOS3_MOD_KF,
557     MOS3_MOD_AF,
558     MOS3_MOD_TYPE,
559     MOS3_MOD_XL,
560     MOS3_MOD_WD,
561     MOS3_MOD_XW,
562     MOS3_MOD_DELVTO,
563 };
564 
565 /* device questions */
566 
567 
568 /* model questions */
569 
570 #include "mos3ext.h"
571 
572 #endif /*MOS3*/
573