1 /* ******************************************************************************
2 * BSIM4 4.8.1 released by Chetan Kumar Dabhi 2/15/2017 *
3 * BSIM4 Model Equations *
4 ******************************************************************************
5
6 ******************************************************************************
7 * Copyright 2017 Regents of the University of California. *
8 * All rights reserved. *
9 * *
10 * Project Director: Prof. Chenming Hu. *
11 * Authors: Gary W. Ng, Weidong Liu, Xuemei Xi, Mohan Dunga, Wenwei Yang *
12 * Ali Niknejad, Shivendra Singh Parihar, Chetan Kumar Dabhi *
13 * Yogesh Singh Chauhan, Sayeef Salahuddin, Chenming Hu *
14 ******************************************************************************
15
16 ******************************************************************************
17 * CMC In-Code Statement *
18 * *
19 * The Developer agrees that the following statement will appear in the *
20 * model code that has been adopted as a CMC Standard. *
21 * *
22 * Software is distributed as is, completely without warranty or service *
23 * support. The University of California and its employees are not liable *
24 * for the condition or performance of the software. *
25 * *
26 * The University of California owns the copyright and grants users a *
27 * perpetual, irrevocable, worldwide, non-exclusive, royalty-free license *
28 * with respect to the software as set forth below. *
29 * *
30 * The University of California hereby disclaims all implied warranties. *
31 * *
32 * The University of California grants the users the right to modify, *
33 * copy, and redistribute the software and documentation, both within *
34 * the user's organization and externally, subject to the following *
35 * restrictions: *
36 * *
37 * 1. The users agree not to charge for the University of California code *
38 * itself but may charge for additions, extensions, or support. *
39 * *
40 * 2. In any product based on the software, the users agree to *
41 * acknowledge the University of California that developed the *
42 * software. This acknowledgment shall appear in the product *
43 * documentation. *
44 * *
45 * 3. Redistributions to others of source code and documentation must *
46 * retain the copyright notice, disclaimer, and list of conditions. *
47 * *
48 * 4. Redistributions to others in binary form must reproduce the *
49 * copyright notice, disclaimer, and list of conditions in the *
50 * documentation and/or other materials provided with the *
51 * distribution. *
52 * *
53 * Agreed to on ______Feb. 15, 2017______________ *
54 * *
55 * By: ____University of California, Berkeley___ *
56 * ____Chenming Hu__________________________ *
57 * ____Professor in Graduate School ________ *
58 * *
59 ****************************************************************************** */
60
61 #include "ngspice/ngspice.h"
62 #include "bsim4def.h"
63 #include "ngspice/ifsim.h"
64 #include "ngspice/sperror.h"
65 #include "ngspice/suffix.h"
66 #include "ngspice/const.h"
67
68 int
BSIM4mParam(int param,IFvalue * value,GENmodel * inMod)69 BSIM4mParam(
70 int param,
71 IFvalue *value,
72 GENmodel *inMod)
73 {
74 BSIM4model *mod = (BSIM4model*)inMod;
75 switch(param)
76 { case BSIM4_MOD_MOBMOD :
77 mod->BSIM4mobMod = value->iValue;
78 mod->BSIM4mobModGiven = TRUE;
79 break;
80 case BSIM4_MOD_BINUNIT :
81 mod->BSIM4binUnit = value->iValue;
82 mod->BSIM4binUnitGiven = TRUE;
83 break;
84 case BSIM4_MOD_PARAMCHK :
85 mod->BSIM4paramChk = value->iValue;
86 mod->BSIM4paramChkGiven = TRUE;
87 break;
88 case BSIM4_MOD_CVCHARGEMOD :
89 mod->BSIM4cvchargeMod = value->iValue;
90 mod->BSIM4cvchargeModGiven = TRUE;
91 break;
92 case BSIM4_MOD_CAPMOD :
93 mod->BSIM4capMod = value->iValue;
94 mod->BSIM4capModGiven = TRUE;
95 break;
96 case BSIM4_MOD_DIOMOD :
97 mod->BSIM4dioMod = value->iValue;
98 mod->BSIM4dioModGiven = TRUE;
99 break;
100 case BSIM4_MOD_RDSMOD :
101 mod->BSIM4rdsMod = value->iValue;
102 mod->BSIM4rdsModGiven = TRUE;
103 break;
104 case BSIM4_MOD_TRNQSMOD :
105 mod->BSIM4trnqsMod = value->iValue;
106 mod->BSIM4trnqsModGiven = TRUE;
107 break;
108 case BSIM4_MOD_ACNQSMOD :
109 mod->BSIM4acnqsMod = value->iValue;
110 mod->BSIM4acnqsModGiven = TRUE;
111 break;
112 case BSIM4_MOD_RBODYMOD :
113 mod->BSIM4rbodyMod = value->iValue;
114 mod->BSIM4rbodyModGiven = TRUE;
115 break;
116 case BSIM4_MOD_RGATEMOD :
117 mod->BSIM4rgateMod = value->iValue;
118 mod->BSIM4rgateModGiven = TRUE;
119 break;
120 case BSIM4_MOD_PERMOD :
121 mod->BSIM4perMod = value->iValue;
122 mod->BSIM4perModGiven = TRUE;
123 break;
124 case BSIM4_MOD_GEOMOD :
125 mod->BSIM4geoMod = value->iValue;
126 mod->BSIM4geoModGiven = TRUE;
127 break;
128 case BSIM4_MOD_RGEOMOD :
129 mod->BSIM4rgeoMod = value->iValue;
130 mod->BSIM4rgeoModGiven = TRUE;
131 break;
132 case BSIM4_MOD_FNOIMOD :
133 mod->BSIM4fnoiMod = value->iValue;
134 mod->BSIM4fnoiModGiven = TRUE;
135 break;
136 case BSIM4_MOD_TNOIMOD :
137 mod->BSIM4tnoiMod = value->iValue;
138 mod->BSIM4tnoiModGiven = TRUE;
139 break;
140 case BSIM4_MOD_MTRLMOD :
141 mod->BSIM4mtrlMod = value->iValue;
142 mod->BSIM4mtrlModGiven = TRUE;
143 break;
144 case BSIM4_MOD_MTRLCOMPATMOD :
145 mod->BSIM4mtrlCompatMod = value->iValue;
146 mod->BSIM4mtrlCompatModGiven = TRUE;
147 break;
148 case BSIM4_MOD_GIDLMOD : /* v4.7 New GIDL/GISL */
149 mod->BSIM4gidlMod = value->iValue;
150 mod->BSIM4gidlModGiven = TRUE;
151 break;
152 case BSIM4_MOD_IGCMOD :
153 mod->BSIM4igcMod = value->iValue;
154 mod->BSIM4igcModGiven = TRUE;
155 break;
156 case BSIM4_MOD_IGBMOD :
157 mod->BSIM4igbMod = value->iValue;
158 mod->BSIM4igbModGiven = TRUE;
159 break;
160 case BSIM4_MOD_TEMPMOD :
161 mod->BSIM4tempMod = value->iValue;
162 mod->BSIM4tempModGiven = TRUE;
163 break;
164
165 case BSIM4_MOD_VERSION :
166 mod->BSIM4version = value->sValue;
167 mod->BSIM4versionGiven = TRUE;
168 break;
169 case BSIM4_MOD_TOXREF :
170 mod->BSIM4toxref = value->rValue;
171 mod->BSIM4toxrefGiven = TRUE;
172 break;
173 case BSIM4_MOD_EOT :
174 mod->BSIM4eot = value->rValue;
175 mod->BSIM4eotGiven = TRUE;
176 break;
177 case BSIM4_MOD_VDDEOT :
178 mod->BSIM4vddeot = value->rValue;
179 mod->BSIM4vddeotGiven = TRUE;
180 break;
181 case BSIM4_MOD_TEMPEOT :
182 mod->BSIM4tempeot = value->rValue;
183 mod->BSIM4tempeotGiven = TRUE;
184 break;
185 case BSIM4_MOD_LEFFEOT :
186 mod->BSIM4leffeot = value->rValue;
187 mod->BSIM4leffeotGiven = TRUE;
188 break;
189 case BSIM4_MOD_WEFFEOT :
190 mod->BSIM4weffeot = value->rValue;
191 mod->BSIM4weffeotGiven = TRUE;
192 break;
193 case BSIM4_MOD_ADOS :
194 mod->BSIM4ados = value->rValue;
195 mod->BSIM4adosGiven = TRUE;
196 break;
197 case BSIM4_MOD_BDOS :
198 mod->BSIM4bdos = value->rValue;
199 mod->BSIM4bdosGiven = TRUE;
200 break;
201 case BSIM4_MOD_TOXE :
202 mod->BSIM4toxe = value->rValue;
203 mod->BSIM4toxeGiven = TRUE;
204 break;
205 case BSIM4_MOD_TOXP :
206 mod->BSIM4toxp = value->rValue;
207 mod->BSIM4toxpGiven = TRUE;
208 break;
209 case BSIM4_MOD_TOXM :
210 mod->BSIM4toxm = value->rValue;
211 mod->BSIM4toxmGiven = TRUE;
212 break;
213 case BSIM4_MOD_DTOX :
214 mod->BSIM4dtox = value->rValue;
215 mod->BSIM4dtoxGiven = TRUE;
216 break;
217 case BSIM4_MOD_EPSROX :
218 mod->BSIM4epsrox = value->rValue;
219 mod->BSIM4epsroxGiven = TRUE;
220 break;
221
222 case BSIM4_MOD_CDSC :
223 mod->BSIM4cdsc = value->rValue;
224 mod->BSIM4cdscGiven = TRUE;
225 break;
226 case BSIM4_MOD_CDSCB :
227 mod->BSIM4cdscb = value->rValue;
228 mod->BSIM4cdscbGiven = TRUE;
229 break;
230
231 case BSIM4_MOD_CDSCD :
232 mod->BSIM4cdscd = value->rValue;
233 mod->BSIM4cdscdGiven = TRUE;
234 break;
235
236 case BSIM4_MOD_CIT :
237 mod->BSIM4cit = value->rValue;
238 mod->BSIM4citGiven = TRUE;
239 break;
240 case BSIM4_MOD_NFACTOR :
241 mod->BSIM4nfactor = value->rValue;
242 mod->BSIM4nfactorGiven = TRUE;
243 break;
244 case BSIM4_MOD_XJ:
245 mod->BSIM4xj = value->rValue;
246 mod->BSIM4xjGiven = TRUE;
247 break;
248 case BSIM4_MOD_VSAT:
249 mod->BSIM4vsat = value->rValue;
250 mod->BSIM4vsatGiven = TRUE;
251 break;
252 case BSIM4_MOD_A0:
253 mod->BSIM4a0 = value->rValue;
254 mod->BSIM4a0Given = TRUE;
255 break;
256
257 case BSIM4_MOD_AGS:
258 mod->BSIM4ags= value->rValue;
259 mod->BSIM4agsGiven = TRUE;
260 break;
261
262 case BSIM4_MOD_A1:
263 mod->BSIM4a1 = value->rValue;
264 mod->BSIM4a1Given = TRUE;
265 break;
266 case BSIM4_MOD_A2:
267 mod->BSIM4a2 = value->rValue;
268 mod->BSIM4a2Given = TRUE;
269 break;
270 case BSIM4_MOD_AT:
271 mod->BSIM4at = value->rValue;
272 mod->BSIM4atGiven = TRUE;
273 break;
274 case BSIM4_MOD_KETA:
275 mod->BSIM4keta = value->rValue;
276 mod->BSIM4ketaGiven = TRUE;
277 break;
278 case BSIM4_MOD_NSUB:
279 mod->BSIM4nsub = value->rValue;
280 mod->BSIM4nsubGiven = TRUE;
281 break;
282 case BSIM4_MOD_PHIG:
283 mod->BSIM4phig = value->rValue;
284 mod->BSIM4phigGiven = TRUE;
285 break;
286 case BSIM4_MOD_EPSRGATE:
287 mod->BSIM4epsrgate = value->rValue;
288 mod->BSIM4epsrgateGiven = TRUE;
289 break;
290 case BSIM4_MOD_EASUB:
291 mod->BSIM4easub = value->rValue;
292 mod->BSIM4easubGiven = TRUE;
293 break;
294 case BSIM4_MOD_EPSRSUB:
295 mod->BSIM4epsrsub = value->rValue;
296 mod->BSIM4epsrsubGiven = TRUE;
297 break;
298 case BSIM4_MOD_NI0SUB:
299 mod->BSIM4ni0sub = value->rValue;
300 mod->BSIM4ni0subGiven = TRUE;
301 break;
302 case BSIM4_MOD_BG0SUB:
303 mod->BSIM4bg0sub = value->rValue;
304 mod->BSIM4bg0subGiven = TRUE;
305 break;
306 case BSIM4_MOD_TBGASUB:
307 mod->BSIM4tbgasub = value->rValue;
308 mod->BSIM4tbgasubGiven = TRUE;
309 break;
310 case BSIM4_MOD_TBGBSUB:
311 mod->BSIM4tbgbsub = value->rValue;
312 mod->BSIM4tbgbsubGiven = TRUE;
313 break;
314 case BSIM4_MOD_NDEP:
315 mod->BSIM4ndep = value->rValue;
316 mod->BSIM4ndepGiven = TRUE;
317 if (mod->BSIM4ndep > 1.0e20)
318 mod->BSIM4ndep *= 1.0e-6;
319 break;
320 case BSIM4_MOD_NSD:
321 mod->BSIM4nsd = value->rValue;
322 mod->BSIM4nsdGiven = TRUE;
323 if (mod->BSIM4nsd > 1.000001e24)
324 mod->BSIM4nsd *= 1.0e-6;
325 break;
326 case BSIM4_MOD_NGATE:
327 mod->BSIM4ngate = value->rValue;
328 mod->BSIM4ngateGiven = TRUE;
329 if (mod->BSIM4ngate > 1.000001e24)
330 mod->BSIM4ngate *= 1.0e-6;
331 break;
332 case BSIM4_MOD_GAMMA1:
333 mod->BSIM4gamma1 = value->rValue;
334 mod->BSIM4gamma1Given = TRUE;
335 break;
336 case BSIM4_MOD_GAMMA2:
337 mod->BSIM4gamma2 = value->rValue;
338 mod->BSIM4gamma2Given = TRUE;
339 break;
340 case BSIM4_MOD_VBX:
341 mod->BSIM4vbx = value->rValue;
342 mod->BSIM4vbxGiven = TRUE;
343 break;
344 case BSIM4_MOD_VBM:
345 mod->BSIM4vbm = value->rValue;
346 mod->BSIM4vbmGiven = TRUE;
347 break;
348 case BSIM4_MOD_XT:
349 mod->BSIM4xt = value->rValue;
350 mod->BSIM4xtGiven = TRUE;
351 break;
352 case BSIM4_MOD_K1:
353 mod->BSIM4k1 = value->rValue;
354 mod->BSIM4k1Given = TRUE;
355 break;
356 case BSIM4_MOD_KT1:
357 mod->BSIM4kt1 = value->rValue;
358 mod->BSIM4kt1Given = TRUE;
359 break;
360 case BSIM4_MOD_KT1L:
361 mod->BSIM4kt1l = value->rValue;
362 mod->BSIM4kt1lGiven = TRUE;
363 break;
364 case BSIM4_MOD_KT2:
365 mod->BSIM4kt2 = value->rValue;
366 mod->BSIM4kt2Given = TRUE;
367 break;
368 case BSIM4_MOD_K2:
369 mod->BSIM4k2 = value->rValue;
370 mod->BSIM4k2Given = TRUE;
371 break;
372 case BSIM4_MOD_K3:
373 mod->BSIM4k3 = value->rValue;
374 mod->BSIM4k3Given = TRUE;
375 break;
376 case BSIM4_MOD_K3B:
377 mod->BSIM4k3b = value->rValue;
378 mod->BSIM4k3bGiven = TRUE;
379 break;
380 case BSIM4_MOD_LPE0:
381 mod->BSIM4lpe0 = value->rValue;
382 mod->BSIM4lpe0Given = TRUE;
383 break;
384 case BSIM4_MOD_LPEB:
385 mod->BSIM4lpeb = value->rValue;
386 mod->BSIM4lpebGiven = TRUE;
387 break;
388 case BSIM4_MOD_DVTP0:
389 mod->BSIM4dvtp0 = value->rValue;
390 mod->BSIM4dvtp0Given = TRUE;
391 break;
392 case BSIM4_MOD_DVTP1:
393 mod->BSIM4dvtp1 = value->rValue;
394 mod->BSIM4dvtp1Given = TRUE;
395 break;
396 case BSIM4_MOD_DVTP2: /* New DIBL/Rout */
397 mod->BSIM4dvtp2 = value->rValue;
398 mod->BSIM4dvtp2Given = TRUE;
399 break;
400 case BSIM4_MOD_DVTP3:
401 mod->BSIM4dvtp3 = value->rValue;
402 mod->BSIM4dvtp3Given = TRUE;
403 break;
404 case BSIM4_MOD_DVTP4:
405 mod->BSIM4dvtp4 = value->rValue;
406 mod->BSIM4dvtp4Given = TRUE;
407 break;
408 case BSIM4_MOD_DVTP5:
409 mod->BSIM4dvtp5 = value->rValue;
410 mod->BSIM4dvtp5Given = TRUE;
411 break;
412 case BSIM4_MOD_W0:
413 mod->BSIM4w0 = value->rValue;
414 mod->BSIM4w0Given = TRUE;
415 break;
416 case BSIM4_MOD_DVT0:
417 mod->BSIM4dvt0 = value->rValue;
418 mod->BSIM4dvt0Given = TRUE;
419 break;
420 case BSIM4_MOD_DVT1:
421 mod->BSIM4dvt1 = value->rValue;
422 mod->BSIM4dvt1Given = TRUE;
423 break;
424 case BSIM4_MOD_DVT2:
425 mod->BSIM4dvt2 = value->rValue;
426 mod->BSIM4dvt2Given = TRUE;
427 break;
428 case BSIM4_MOD_DVT0W:
429 mod->BSIM4dvt0w = value->rValue;
430 mod->BSIM4dvt0wGiven = TRUE;
431 break;
432 case BSIM4_MOD_DVT1W:
433 mod->BSIM4dvt1w = value->rValue;
434 mod->BSIM4dvt1wGiven = TRUE;
435 break;
436 case BSIM4_MOD_DVT2W:
437 mod->BSIM4dvt2w = value->rValue;
438 mod->BSIM4dvt2wGiven = TRUE;
439 break;
440 case BSIM4_MOD_DROUT:
441 mod->BSIM4drout = value->rValue;
442 mod->BSIM4droutGiven = TRUE;
443 break;
444 case BSIM4_MOD_DSUB:
445 mod->BSIM4dsub = value->rValue;
446 mod->BSIM4dsubGiven = TRUE;
447 break;
448 case BSIM4_MOD_VTH0:
449 mod->BSIM4vth0 = value->rValue;
450 mod->BSIM4vth0Given = TRUE;
451 break;
452 case BSIM4_MOD_EU:
453 mod->BSIM4eu = value->rValue;
454 mod->BSIM4euGiven = TRUE;
455 break;
456 case BSIM4_MOD_UCS:
457 mod->BSIM4ucs = value->rValue;
458 mod->BSIM4ucsGiven = TRUE;
459 break;
460 case BSIM4_MOD_UA:
461 mod->BSIM4ua = value->rValue;
462 mod->BSIM4uaGiven = TRUE;
463 break;
464 case BSIM4_MOD_UA1:
465 mod->BSIM4ua1 = value->rValue;
466 mod->BSIM4ua1Given = TRUE;
467 break;
468 case BSIM4_MOD_UB:
469 mod->BSIM4ub = value->rValue;
470 mod->BSIM4ubGiven = TRUE;
471 break;
472 case BSIM4_MOD_UB1:
473 mod->BSIM4ub1 = value->rValue;
474 mod->BSIM4ub1Given = TRUE;
475 break;
476 case BSIM4_MOD_UC:
477 mod->BSIM4uc = value->rValue;
478 mod->BSIM4ucGiven = TRUE;
479 break;
480 case BSIM4_MOD_UC1:
481 mod->BSIM4uc1 = value->rValue;
482 mod->BSIM4uc1Given = TRUE;
483 break;
484 case BSIM4_MOD_U0 :
485 mod->BSIM4u0 = value->rValue;
486 mod->BSIM4u0Given = TRUE;
487 break;
488 case BSIM4_MOD_UTE :
489 mod->BSIM4ute = value->rValue;
490 mod->BSIM4uteGiven = TRUE;
491 break;
492 case BSIM4_MOD_UCSTE :
493 mod->BSIM4ucste = value->rValue;
494 mod->BSIM4ucsteGiven = TRUE;
495 break;
496 case BSIM4_MOD_UD:
497 mod->BSIM4ud = value->rValue;
498 mod->BSIM4udGiven = TRUE;
499 break;
500 case BSIM4_MOD_UD1:
501 mod->BSIM4ud1 = value->rValue;
502 mod->BSIM4ud1Given = TRUE;
503 break;
504 case BSIM4_MOD_UP:
505 mod->BSIM4up = value->rValue;
506 mod->BSIM4upGiven = TRUE;
507 break;
508 case BSIM4_MOD_LP:
509 mod->BSIM4lp = value->rValue;
510 mod->BSIM4lpGiven = TRUE;
511 break;
512 case BSIM4_MOD_LUD:
513 mod->BSIM4lud = value->rValue;
514 mod->BSIM4ludGiven = TRUE;
515 break;
516 case BSIM4_MOD_LUD1:
517 mod->BSIM4lud1 = value->rValue;
518 mod->BSIM4lud1Given = TRUE;
519 break;
520 case BSIM4_MOD_LUP:
521 mod->BSIM4lup = value->rValue;
522 mod->BSIM4lupGiven = TRUE;
523 break;
524 case BSIM4_MOD_LLP:
525 mod->BSIM4llp = value->rValue;
526 mod->BSIM4llpGiven = TRUE;
527 break;
528 case BSIM4_MOD_WUD:
529 mod->BSIM4wud = value->rValue;
530 mod->BSIM4wudGiven = TRUE;
531 break;
532 case BSIM4_MOD_WUD1:
533 mod->BSIM4wud1 = value->rValue;
534 mod->BSIM4wud1Given = TRUE;
535 break;
536 case BSIM4_MOD_WUP:
537 mod->BSIM4wup = value->rValue;
538 mod->BSIM4wupGiven = TRUE;
539 break;
540 case BSIM4_MOD_WLP:
541 mod->BSIM4wlp = value->rValue;
542 mod->BSIM4wlpGiven = TRUE;
543 break;
544 case BSIM4_MOD_PUD:
545 mod->BSIM4pud = value->rValue;
546 mod->BSIM4pudGiven = TRUE;
547 break;
548 case BSIM4_MOD_PUD1:
549 mod->BSIM4pud1 = value->rValue;
550 mod->BSIM4pud1Given = TRUE;
551 break;
552 case BSIM4_MOD_PUP:
553 mod->BSIM4pup = value->rValue;
554 mod->BSIM4pupGiven = TRUE;
555 break;
556 case BSIM4_MOD_PLP:
557 mod->BSIM4plp = value->rValue;
558 mod->BSIM4plpGiven = TRUE;
559 break;
560
561
562 case BSIM4_MOD_VOFF:
563 mod->BSIM4voff = value->rValue;
564 mod->BSIM4voffGiven = TRUE;
565 break;
566 case BSIM4_MOD_TVOFF:
567 mod->BSIM4tvoff = value->rValue;
568 mod->BSIM4tvoffGiven = TRUE;
569 break;
570 case BSIM4_MOD_TNFACTOR: /* v4.7 temp dep of leakage current */
571 mod->BSIM4tnfactor = value->rValue;
572 mod->BSIM4tnfactorGiven = TRUE;
573 break;
574 case BSIM4_MOD_TETA0: /* v4.7 temp dep of leakage current */
575 mod->BSIM4teta0 = value->rValue;
576 mod->BSIM4teta0Given = TRUE;
577 break;
578 case BSIM4_MOD_TVOFFCV: /* v4.7 temp dep of leakage current */
579 mod->BSIM4tvoffcv = value->rValue;
580 mod->BSIM4tvoffcvGiven = TRUE;
581 break;
582 case BSIM4_MOD_VOFFL:
583 mod->BSIM4voffl = value->rValue;
584 mod->BSIM4vofflGiven = TRUE;
585 break;
586 case BSIM4_MOD_VOFFCVL:
587 mod->BSIM4voffcvl = value->rValue;
588 mod->BSIM4voffcvlGiven = TRUE;
589 break;
590 case BSIM4_MOD_MINV:
591 mod->BSIM4minv = value->rValue;
592 mod->BSIM4minvGiven = TRUE;
593 break;
594 case BSIM4_MOD_MINVCV:
595 mod->BSIM4minvcv = value->rValue;
596 mod->BSIM4minvcvGiven = TRUE;
597 break;
598 case BSIM4_MOD_FPROUT:
599 mod->BSIM4fprout = value->rValue;
600 mod->BSIM4fproutGiven = TRUE;
601 break;
602 case BSIM4_MOD_PDITS:
603 mod->BSIM4pdits = value->rValue;
604 mod->BSIM4pditsGiven = TRUE;
605 break;
606 case BSIM4_MOD_PDITSD:
607 mod->BSIM4pditsd = value->rValue;
608 mod->BSIM4pditsdGiven = TRUE;
609 break;
610 case BSIM4_MOD_PDITSL:
611 mod->BSIM4pditsl = value->rValue;
612 mod->BSIM4pditslGiven = TRUE;
613 break;
614 case BSIM4_MOD_DELTA :
615 mod->BSIM4delta = value->rValue;
616 mod->BSIM4deltaGiven = TRUE;
617 break;
618 case BSIM4_MOD_RDSW:
619 mod->BSIM4rdsw = value->rValue;
620 mod->BSIM4rdswGiven = TRUE;
621 break;
622 case BSIM4_MOD_RDSWMIN:
623 mod->BSIM4rdswmin = value->rValue;
624 mod->BSIM4rdswminGiven = TRUE;
625 break;
626 case BSIM4_MOD_RDWMIN:
627 mod->BSIM4rdwmin = value->rValue;
628 mod->BSIM4rdwminGiven = TRUE;
629 break;
630 case BSIM4_MOD_RSWMIN:
631 mod->BSIM4rswmin = value->rValue;
632 mod->BSIM4rswminGiven = TRUE;
633 break;
634 case BSIM4_MOD_RDW:
635 mod->BSIM4rdw = value->rValue;
636 mod->BSIM4rdwGiven = TRUE;
637 break;
638 case BSIM4_MOD_RSW:
639 mod->BSIM4rsw = value->rValue;
640 mod->BSIM4rswGiven = TRUE;
641 break;
642 case BSIM4_MOD_PRWG:
643 mod->BSIM4prwg = value->rValue;
644 mod->BSIM4prwgGiven = TRUE;
645 break;
646 case BSIM4_MOD_PRWB:
647 mod->BSIM4prwb = value->rValue;
648 mod->BSIM4prwbGiven = TRUE;
649 break;
650 case BSIM4_MOD_PRT:
651 mod->BSIM4prt = value->rValue;
652 mod->BSIM4prtGiven = TRUE;
653 break;
654 case BSIM4_MOD_ETA0:
655 mod->BSIM4eta0 = value->rValue;
656 mod->BSIM4eta0Given = TRUE;
657 break;
658 case BSIM4_MOD_ETAB:
659 mod->BSIM4etab = value->rValue;
660 mod->BSIM4etabGiven = TRUE;
661 break;
662 case BSIM4_MOD_PCLM:
663 mod->BSIM4pclm = value->rValue;
664 mod->BSIM4pclmGiven = TRUE;
665 break;
666 case BSIM4_MOD_PDIBL1:
667 mod->BSIM4pdibl1 = value->rValue;
668 mod->BSIM4pdibl1Given = TRUE;
669 break;
670 case BSIM4_MOD_PDIBL2:
671 mod->BSIM4pdibl2 = value->rValue;
672 mod->BSIM4pdibl2Given = TRUE;
673 break;
674 case BSIM4_MOD_PDIBLB:
675 mod->BSIM4pdiblb = value->rValue;
676 mod->BSIM4pdiblbGiven = TRUE;
677 break;
678 case BSIM4_MOD_PSCBE1:
679 mod->BSIM4pscbe1 = value->rValue;
680 mod->BSIM4pscbe1Given = TRUE;
681 break;
682 case BSIM4_MOD_PSCBE2:
683 mod->BSIM4pscbe2 = value->rValue;
684 mod->BSIM4pscbe2Given = TRUE;
685 break;
686 case BSIM4_MOD_PVAG:
687 mod->BSIM4pvag = value->rValue;
688 mod->BSIM4pvagGiven = TRUE;
689 break;
690 case BSIM4_MOD_WR :
691 mod->BSIM4wr = value->rValue;
692 mod->BSIM4wrGiven = TRUE;
693 break;
694 case BSIM4_MOD_DWG :
695 mod->BSIM4dwg = value->rValue;
696 mod->BSIM4dwgGiven = TRUE;
697 break;
698 case BSIM4_MOD_DWB :
699 mod->BSIM4dwb = value->rValue;
700 mod->BSIM4dwbGiven = TRUE;
701 break;
702 case BSIM4_MOD_B0 :
703 mod->BSIM4b0 = value->rValue;
704 mod->BSIM4b0Given = TRUE;
705 break;
706 case BSIM4_MOD_B1 :
707 mod->BSIM4b1 = value->rValue;
708 mod->BSIM4b1Given = TRUE;
709 break;
710 case BSIM4_MOD_ALPHA0 :
711 mod->BSIM4alpha0 = value->rValue;
712 mod->BSIM4alpha0Given = TRUE;
713 break;
714 case BSIM4_MOD_ALPHA1 :
715 mod->BSIM4alpha1 = value->rValue;
716 mod->BSIM4alpha1Given = TRUE;
717 break;
718 case BSIM4_MOD_PHIN :
719 mod->BSIM4phin = value->rValue;
720 mod->BSIM4phinGiven = TRUE;
721 break;
722 case BSIM4_MOD_AGIDL :
723 mod->BSIM4agidl = value->rValue;
724 mod->BSIM4agidlGiven = TRUE;
725 break;
726 case BSIM4_MOD_BGIDL :
727 mod->BSIM4bgidl = value->rValue;
728 mod->BSIM4bgidlGiven = TRUE;
729 break;
730 case BSIM4_MOD_CGIDL :
731 mod->BSIM4cgidl = value->rValue;
732 mod->BSIM4cgidlGiven = TRUE;
733 break;
734 case BSIM4_MOD_EGIDL :
735 mod->BSIM4egidl = value->rValue;
736 mod->BSIM4egidlGiven = TRUE;
737 break;
738 case BSIM4_MOD_FGIDL : /* v4.7 New GIDL/GISL */
739 mod->BSIM4fgidl = value->rValue;
740 mod->BSIM4fgidlGiven = TRUE;
741 break;
742 case BSIM4_MOD_KGIDL : /* v4.7 New GIDL/GISL */
743 mod->BSIM4kgidl = value->rValue;
744 mod->BSIM4kgidlGiven = TRUE;
745 break;
746 case BSIM4_MOD_RGIDL : /* v4.7 New GIDL/GISL */
747 mod->BSIM4rgidl = value->rValue;
748 mod->BSIM4rgidlGiven = TRUE;
749 break;
750 case BSIM4_MOD_AGISL :
751 mod->BSIM4agisl = value->rValue;
752 mod->BSIM4agislGiven = TRUE;
753 break;
754 case BSIM4_MOD_BGISL :
755 mod->BSIM4bgisl = value->rValue;
756 mod->BSIM4bgislGiven = TRUE;
757 break;
758 case BSIM4_MOD_CGISL :
759 mod->BSIM4cgisl = value->rValue;
760 mod->BSIM4cgislGiven = TRUE;
761 break;
762 case BSIM4_MOD_EGISL :
763 mod->BSIM4egisl = value->rValue;
764 mod->BSIM4egislGiven = TRUE;
765 break;
766 case BSIM4_MOD_FGISL : /* v4.7 New GIDL/GISL */
767 mod->BSIM4fgisl = value->rValue;
768 mod->BSIM4fgislGiven = TRUE;
769 break;
770 case BSIM4_MOD_KGISL : /* v4.7 New GIDL/GISL */
771 mod->BSIM4kgisl = value->rValue;
772 mod->BSIM4kgislGiven = TRUE;
773 break;
774 case BSIM4_MOD_RGISL : /* v4.7 New GIDL/GISL */
775 mod->BSIM4rgisl = value->rValue;
776 mod->BSIM4rgislGiven = TRUE;
777 break;
778 case BSIM4_MOD_AIGC :
779 mod->BSIM4aigc = value->rValue;
780 mod->BSIM4aigcGiven = TRUE;
781 break;
782 case BSIM4_MOD_BIGC :
783 mod->BSIM4bigc = value->rValue;
784 mod->BSIM4bigcGiven = TRUE;
785 break;
786 case BSIM4_MOD_CIGC :
787 mod->BSIM4cigc = value->rValue;
788 mod->BSIM4cigcGiven = TRUE;
789 break;
790 case BSIM4_MOD_AIGSD :
791 mod->BSIM4aigsd = value->rValue;
792 mod->BSIM4aigsdGiven = TRUE;
793 break;
794 case BSIM4_MOD_BIGSD :
795 mod->BSIM4bigsd = value->rValue;
796 mod->BSIM4bigsdGiven = TRUE;
797 break;
798 case BSIM4_MOD_CIGSD :
799 mod->BSIM4cigsd = value->rValue;
800 mod->BSIM4cigsdGiven = TRUE;
801 break;
802 case BSIM4_MOD_AIGS :
803 mod->BSIM4aigs = value->rValue;
804 mod->BSIM4aigsGiven = TRUE;
805 break;
806 case BSIM4_MOD_BIGS :
807 mod->BSIM4bigs = value->rValue;
808 mod->BSIM4bigsGiven = TRUE;
809 break;
810 case BSIM4_MOD_CIGS :
811 mod->BSIM4cigs = value->rValue;
812 mod->BSIM4cigsGiven = TRUE;
813 break;
814 case BSIM4_MOD_AIGD :
815 mod->BSIM4aigd = value->rValue;
816 mod->BSIM4aigdGiven = TRUE;
817 break;
818 case BSIM4_MOD_BIGD :
819 mod->BSIM4bigd = value->rValue;
820 mod->BSIM4bigdGiven = TRUE;
821 break;
822 case BSIM4_MOD_CIGD :
823 mod->BSIM4cigd = value->rValue;
824 mod->BSIM4cigdGiven = TRUE;
825 break;
826 case BSIM4_MOD_AIGBACC :
827 mod->BSIM4aigbacc = value->rValue;
828 mod->BSIM4aigbaccGiven = TRUE;
829 break;
830 case BSIM4_MOD_BIGBACC :
831 mod->BSIM4bigbacc = value->rValue;
832 mod->BSIM4bigbaccGiven = TRUE;
833 break;
834 case BSIM4_MOD_CIGBACC :
835 mod->BSIM4cigbacc = value->rValue;
836 mod->BSIM4cigbaccGiven = TRUE;
837 break;
838 case BSIM4_MOD_AIGBINV :
839 mod->BSIM4aigbinv = value->rValue;
840 mod->BSIM4aigbinvGiven = TRUE;
841 break;
842 case BSIM4_MOD_BIGBINV :
843 mod->BSIM4bigbinv = value->rValue;
844 mod->BSIM4bigbinvGiven = TRUE;
845 break;
846 case BSIM4_MOD_CIGBINV :
847 mod->BSIM4cigbinv = value->rValue;
848 mod->BSIM4cigbinvGiven = TRUE;
849 break;
850 case BSIM4_MOD_NIGC :
851 mod->BSIM4nigc = value->rValue;
852 mod->BSIM4nigcGiven = TRUE;
853 break;
854 case BSIM4_MOD_NIGBINV :
855 mod->BSIM4nigbinv = value->rValue;
856 mod->BSIM4nigbinvGiven = TRUE;
857 break;
858 case BSIM4_MOD_NIGBACC :
859 mod->BSIM4nigbacc = value->rValue;
860 mod->BSIM4nigbaccGiven = TRUE;
861 break;
862 case BSIM4_MOD_NTOX :
863 mod->BSIM4ntox = value->rValue;
864 mod->BSIM4ntoxGiven = TRUE;
865 break;
866 case BSIM4_MOD_EIGBINV :
867 mod->BSIM4eigbinv = value->rValue;
868 mod->BSIM4eigbinvGiven = TRUE;
869 break;
870 case BSIM4_MOD_PIGCD :
871 mod->BSIM4pigcd = value->rValue;
872 mod->BSIM4pigcdGiven = TRUE;
873 break;
874 case BSIM4_MOD_POXEDGE :
875 mod->BSIM4poxedge = value->rValue;
876 mod->BSIM4poxedgeGiven = TRUE;
877 break;
878 case BSIM4_MOD_XRCRG1 :
879 mod->BSIM4xrcrg1 = value->rValue;
880 mod->BSIM4xrcrg1Given = TRUE;
881 break;
882 case BSIM4_MOD_XRCRG2 :
883 mod->BSIM4xrcrg2 = value->rValue;
884 mod->BSIM4xrcrg2Given = TRUE;
885 break;
886 case BSIM4_MOD_LAMBDA :
887 mod->BSIM4lambda = value->rValue;
888 mod->BSIM4lambdaGiven = TRUE;
889 break;
890 case BSIM4_MOD_VTL :
891 mod->BSIM4vtl = value->rValue;
892 mod->BSIM4vtlGiven = TRUE;
893 break;
894 case BSIM4_MOD_XN:
895 mod->BSIM4xn = value->rValue;
896 mod->BSIM4xnGiven = TRUE;
897 break;
898 case BSIM4_MOD_LC:
899 mod->BSIM4lc = value->rValue;
900 mod->BSIM4lcGiven = TRUE;
901 break;
902 case BSIM4_MOD_TNOIA :
903 mod->BSIM4tnoia = value->rValue;
904 mod->BSIM4tnoiaGiven = TRUE;
905 break;
906 case BSIM4_MOD_TNOIB :
907 mod->BSIM4tnoib = value->rValue;
908 mod->BSIM4tnoibGiven = TRUE;
909 break;
910 case BSIM4_MOD_TNOIC :
911 mod->BSIM4tnoic = value->rValue;
912 mod->BSIM4tnoicGiven = TRUE;
913 break;
914 case BSIM4_MOD_RNOIA :
915 mod->BSIM4rnoia = value->rValue;
916 mod->BSIM4rnoiaGiven = TRUE;
917 break;
918 case BSIM4_MOD_RNOIB :
919 mod->BSIM4rnoib = value->rValue;
920 mod->BSIM4rnoibGiven = TRUE;
921 break;
922 case BSIM4_MOD_RNOIC :
923 mod->BSIM4rnoic = value->rValue;
924 mod->BSIM4rnoicGiven = TRUE;
925 break;
926 case BSIM4_MOD_NTNOI :
927 mod->BSIM4ntnoi = value->rValue;
928 mod->BSIM4ntnoiGiven = TRUE;
929 break;
930 case BSIM4_MOD_VFBSDOFF:
931 mod->BSIM4vfbsdoff = value->rValue;
932 mod->BSIM4vfbsdoffGiven = TRUE;
933 break;
934 case BSIM4_MOD_TVFBSDOFF:
935 mod->BSIM4tvfbsdoff = value->rValue;
936 mod->BSIM4tvfbsdoffGiven = TRUE;
937 break;
938 case BSIM4_MOD_LINTNOI:
939 mod->BSIM4lintnoi = value->rValue;
940 mod->BSIM4lintnoiGiven = TRUE;
941 break;
942
943 /* stress effect */
944 case BSIM4_MOD_SAREF :
945 mod->BSIM4saref = value->rValue;
946 mod->BSIM4sarefGiven = TRUE;
947 break;
948 case BSIM4_MOD_SBREF :
949 mod->BSIM4sbref = value->rValue;
950 mod->BSIM4sbrefGiven = TRUE;
951 break;
952 case BSIM4_MOD_WLOD :
953 mod->BSIM4wlod = value->rValue;
954 mod->BSIM4wlodGiven = TRUE;
955 break;
956 case BSIM4_MOD_KU0 :
957 mod->BSIM4ku0 = value->rValue;
958 mod->BSIM4ku0Given = TRUE;
959 break;
960 case BSIM4_MOD_KVSAT :
961 mod->BSIM4kvsat = value->rValue;
962 mod->BSIM4kvsatGiven = TRUE;
963 break;
964 case BSIM4_MOD_KVTH0 :
965 mod->BSIM4kvth0 = value->rValue;
966 mod->BSIM4kvth0Given = TRUE;
967 break;
968 case BSIM4_MOD_TKU0 :
969 mod->BSIM4tku0 = value->rValue;
970 mod->BSIM4tku0Given = TRUE;
971 break;
972 case BSIM4_MOD_LLODKU0 :
973 mod->BSIM4llodku0 = value->rValue;
974 mod->BSIM4llodku0Given = TRUE;
975 break;
976 case BSIM4_MOD_WLODKU0 :
977 mod->BSIM4wlodku0 = value->rValue;
978 mod->BSIM4wlodku0Given = TRUE;
979 break;
980 case BSIM4_MOD_LLODVTH :
981 mod->BSIM4llodvth = value->rValue;
982 mod->BSIM4llodvthGiven = TRUE;
983 break;
984 case BSIM4_MOD_WLODVTH :
985 mod->BSIM4wlodvth = value->rValue;
986 mod->BSIM4wlodvthGiven = TRUE;
987 break;
988 case BSIM4_MOD_LKU0 :
989 mod->BSIM4lku0 = value->rValue;
990 mod->BSIM4lku0Given = TRUE;
991 break;
992 case BSIM4_MOD_WKU0 :
993 mod->BSIM4wku0 = value->rValue;
994 mod->BSIM4wku0Given = TRUE;
995 break;
996 case BSIM4_MOD_PKU0 :
997 mod->BSIM4pku0 = value->rValue;
998 mod->BSIM4pku0Given = TRUE;
999 break;
1000 case BSIM4_MOD_LKVTH0 :
1001 mod->BSIM4lkvth0 = value->rValue;
1002 mod->BSIM4lkvth0Given = TRUE;
1003 break;
1004 case BSIM4_MOD_WKVTH0 :
1005 mod->BSIM4wkvth0 = value->rValue;
1006 mod->BSIM4wkvth0Given = TRUE;
1007 break;
1008 case BSIM4_MOD_PKVTH0 :
1009 mod->BSIM4pkvth0 = value->rValue;
1010 mod->BSIM4pkvth0Given = TRUE;
1011 break;
1012 case BSIM4_MOD_STK2 :
1013 mod->BSIM4stk2 = value->rValue;
1014 mod->BSIM4stk2Given = TRUE;
1015 break;
1016 case BSIM4_MOD_LODK2 :
1017 mod->BSIM4lodk2 = value->rValue;
1018 mod->BSIM4lodk2Given = TRUE;
1019 break;
1020 case BSIM4_MOD_STETA0 :
1021 mod->BSIM4steta0 = value->rValue;
1022 mod->BSIM4steta0Given = TRUE;
1023 break;
1024 case BSIM4_MOD_LODETA0 :
1025 mod->BSIM4lodeta0 = value->rValue;
1026 mod->BSIM4lodeta0Given = TRUE;
1027 break;
1028
1029 case BSIM4_MOD_WEB :
1030 mod->BSIM4web = value->rValue;
1031 mod->BSIM4webGiven = TRUE;
1032 break;
1033 case BSIM4_MOD_WEC :
1034 mod->BSIM4wec = value->rValue;
1035 mod->BSIM4wecGiven = TRUE;
1036 break;
1037 case BSIM4_MOD_KVTH0WE :
1038 mod->BSIM4kvth0we = value->rValue;
1039 mod->BSIM4kvth0weGiven = TRUE;
1040 break;
1041 case BSIM4_MOD_K2WE :
1042 mod->BSIM4k2we = value->rValue;
1043 mod->BSIM4k2weGiven = TRUE;
1044 break;
1045 case BSIM4_MOD_KU0WE :
1046 mod->BSIM4ku0we = value->rValue;
1047 mod->BSIM4ku0weGiven = TRUE;
1048 break;
1049 case BSIM4_MOD_SCREF :
1050 mod->BSIM4scref = value->rValue;
1051 mod->BSIM4screfGiven = TRUE;
1052 break;
1053 case BSIM4_MOD_WPEMOD :
1054 mod->BSIM4wpemod = value->rValue;
1055 mod->BSIM4wpemodGiven = TRUE;
1056 break;
1057 case BSIM4_MOD_LKVTH0WE :
1058 mod->BSIM4lkvth0we = value->rValue;
1059 mod->BSIM4lkvth0weGiven = TRUE;
1060 break;
1061 case BSIM4_MOD_LK2WE :
1062 mod->BSIM4lk2we = value->rValue;
1063 mod->BSIM4lk2weGiven = TRUE;
1064 break;
1065 case BSIM4_MOD_LKU0WE :
1066 mod->BSIM4lku0we = value->rValue;
1067 mod->BSIM4lku0weGiven = TRUE;
1068 break;
1069 case BSIM4_MOD_WKVTH0WE :
1070 mod->BSIM4wkvth0we = value->rValue;
1071 mod->BSIM4wkvth0weGiven = TRUE;
1072 break;
1073 case BSIM4_MOD_WK2WE :
1074 mod->BSIM4wk2we = value->rValue;
1075 mod->BSIM4wk2weGiven = TRUE;
1076 break;
1077 case BSIM4_MOD_WKU0WE :
1078 mod->BSIM4wku0we = value->rValue;
1079 mod->BSIM4wku0weGiven = TRUE;
1080 break;
1081 case BSIM4_MOD_PKVTH0WE :
1082 mod->BSIM4pkvth0we = value->rValue;
1083 mod->BSIM4pkvth0weGiven = TRUE;
1084 break;
1085 case BSIM4_MOD_PK2WE :
1086 mod->BSIM4pk2we = value->rValue;
1087 mod->BSIM4pk2weGiven = TRUE;
1088 break;
1089 case BSIM4_MOD_PKU0WE :
1090 mod->BSIM4pku0we = value->rValue;
1091 mod->BSIM4pku0weGiven = TRUE;
1092 break;
1093
1094 case BSIM4_MOD_BETA0 :
1095 mod->BSIM4beta0 = value->rValue;
1096 mod->BSIM4beta0Given = TRUE;
1097 break;
1098 case BSIM4_MOD_IJTHDFWD :
1099 mod->BSIM4ijthdfwd = value->rValue;
1100 mod->BSIM4ijthdfwdGiven = TRUE;
1101 break;
1102 case BSIM4_MOD_IJTHSFWD :
1103 mod->BSIM4ijthsfwd = value->rValue;
1104 mod->BSIM4ijthsfwdGiven = TRUE;
1105 break;
1106 case BSIM4_MOD_IJTHDREV :
1107 mod->BSIM4ijthdrev = value->rValue;
1108 mod->BSIM4ijthdrevGiven = TRUE;
1109 break;
1110 case BSIM4_MOD_IJTHSREV :
1111 mod->BSIM4ijthsrev = value->rValue;
1112 mod->BSIM4ijthsrevGiven = TRUE;
1113 break;
1114 case BSIM4_MOD_XJBVD :
1115 mod->BSIM4xjbvd = value->rValue;
1116 mod->BSIM4xjbvdGiven = TRUE;
1117 break;
1118 case BSIM4_MOD_XJBVS :
1119 mod->BSIM4xjbvs = value->rValue;
1120 mod->BSIM4xjbvsGiven = TRUE;
1121 break;
1122 case BSIM4_MOD_BVD :
1123 mod->BSIM4bvd = value->rValue;
1124 mod->BSIM4bvdGiven = TRUE;
1125 break;
1126 case BSIM4_MOD_BVS :
1127 mod->BSIM4bvs = value->rValue;
1128 mod->BSIM4bvsGiven = TRUE;
1129 break;
1130
1131 /* reverse diode */
1132 case BSIM4_MOD_JTSS :
1133 mod->BSIM4jtss = value->rValue;
1134 mod->BSIM4jtssGiven = TRUE;
1135 break;
1136 case BSIM4_MOD_JTSD :
1137 mod->BSIM4jtsd = value->rValue;
1138 mod->BSIM4jtsdGiven = TRUE;
1139 break;
1140 case BSIM4_MOD_JTSSWS :
1141 mod->BSIM4jtssws = value->rValue;
1142 mod->BSIM4jtsswsGiven = TRUE;
1143 break;
1144 case BSIM4_MOD_JTSSWD :
1145 mod->BSIM4jtsswd = value->rValue;
1146 mod->BSIM4jtsswdGiven = TRUE;
1147 break;
1148 case BSIM4_MOD_JTSSWGS :
1149 mod->BSIM4jtsswgs = value->rValue;
1150 mod->BSIM4jtsswgsGiven = TRUE;
1151 break;
1152 case BSIM4_MOD_JTSSWGD :
1153 mod->BSIM4jtsswgd = value->rValue;
1154 mod->BSIM4jtsswgdGiven = TRUE;
1155 break;
1156 case BSIM4_MOD_JTWEFF :
1157 mod->BSIM4jtweff = value->rValue;
1158 mod->BSIM4jtweffGiven = TRUE;
1159 break;
1160 case BSIM4_MOD_NJTS :
1161 mod->BSIM4njts = value->rValue;
1162 mod->BSIM4njtsGiven = TRUE;
1163 break;
1164 case BSIM4_MOD_NJTSSW :
1165 mod->BSIM4njtssw = value->rValue;
1166 mod->BSIM4njtsswGiven = TRUE;
1167 break;
1168 case BSIM4_MOD_NJTSSWG :
1169 mod->BSIM4njtsswg = value->rValue;
1170 mod->BSIM4njtsswgGiven = TRUE;
1171 break;
1172 case BSIM4_MOD_NJTSD :
1173 mod->BSIM4njtsd = value->rValue;
1174 mod->BSIM4njtsdGiven = TRUE;
1175 break;
1176 case BSIM4_MOD_NJTSSWD :
1177 mod->BSIM4njtsswd = value->rValue;
1178 mod->BSIM4njtsswdGiven = TRUE;
1179 break;
1180 case BSIM4_MOD_NJTSSWGD :
1181 mod->BSIM4njtsswgd = value->rValue;
1182 mod->BSIM4njtsswgdGiven = TRUE;
1183 break;
1184 case BSIM4_MOD_XTSS :
1185 mod->BSIM4xtss = value->rValue;
1186 mod->BSIM4xtssGiven = TRUE;
1187 break;
1188 case BSIM4_MOD_XTSD :
1189 mod->BSIM4xtsd = value->rValue;
1190 mod->BSIM4xtsdGiven = TRUE;
1191 break;
1192 case BSIM4_MOD_XTSSWS :
1193 mod->BSIM4xtssws = value->rValue;
1194 mod->BSIM4xtsswsGiven = TRUE;
1195 break;
1196 case BSIM4_MOD_XTSSWD :
1197 mod->BSIM4xtsswd = value->rValue;
1198 mod->BSIM4xtsswdGiven = TRUE;
1199 break;
1200 case BSIM4_MOD_XTSSWGS :
1201 mod->BSIM4xtsswgs = value->rValue;
1202 mod->BSIM4xtsswgsGiven = TRUE;
1203 break;
1204 case BSIM4_MOD_XTSSWGD :
1205 mod->BSIM4xtsswgd = value->rValue;
1206 mod->BSIM4xtsswgdGiven = TRUE;
1207 break;
1208 case BSIM4_MOD_TNJTS :
1209 mod->BSIM4tnjts = value->rValue;
1210 mod->BSIM4tnjtsGiven = TRUE;
1211 break;
1212 case BSIM4_MOD_TNJTSSW :
1213 mod->BSIM4tnjtssw = value->rValue;
1214 mod->BSIM4tnjtsswGiven = TRUE;
1215 break;
1216 case BSIM4_MOD_TNJTSSWG :
1217 mod->BSIM4tnjtsswg = value->rValue;
1218 mod->BSIM4tnjtsswgGiven = TRUE;
1219 break;
1220 case BSIM4_MOD_TNJTSD :
1221 mod->BSIM4tnjtsd = value->rValue;
1222 mod->BSIM4tnjtsdGiven = TRUE;
1223 break;
1224 case BSIM4_MOD_TNJTSSWD :
1225 mod->BSIM4tnjtsswd = value->rValue;
1226 mod->BSIM4tnjtsswdGiven = TRUE;
1227 break;
1228 case BSIM4_MOD_TNJTSSWGD :
1229 mod->BSIM4tnjtsswgd = value->rValue;
1230 mod->BSIM4tnjtsswgdGiven = TRUE;
1231 break;
1232 case BSIM4_MOD_VTSS :
1233 mod->BSIM4vtss = value->rValue;
1234 mod->BSIM4vtssGiven = TRUE;
1235 break;
1236 case BSIM4_MOD_VTSD :
1237 mod->BSIM4vtsd = value->rValue;
1238 mod->BSIM4vtsdGiven = TRUE;
1239 break;
1240 case BSIM4_MOD_VTSSWS :
1241 mod->BSIM4vtssws = value->rValue;
1242 mod->BSIM4vtsswsGiven = TRUE;
1243 break;
1244 case BSIM4_MOD_VTSSWD :
1245 mod->BSIM4vtsswd = value->rValue;
1246 mod->BSIM4vtsswdGiven = TRUE;
1247 break;
1248 case BSIM4_MOD_VTSSWGS :
1249 mod->BSIM4vtsswgs = value->rValue;
1250 mod->BSIM4vtsswgsGiven = TRUE;
1251 break;
1252 case BSIM4_MOD_VTSSWGD :
1253 mod->BSIM4vtsswgd = value->rValue;
1254 mod->BSIM4vtsswgdGiven = TRUE;
1255 break;
1256
1257 case BSIM4_MOD_VFB :
1258 mod->BSIM4vfb = value->rValue;
1259 mod->BSIM4vfbGiven = TRUE;
1260 break;
1261
1262 case BSIM4_MOD_GBMIN :
1263 mod->BSIM4gbmin = value->rValue;
1264 mod->BSIM4gbminGiven = TRUE;
1265 break;
1266 case BSIM4_MOD_RBDB :
1267 mod->BSIM4rbdb = value->rValue;
1268 mod->BSIM4rbdbGiven = TRUE;
1269 break;
1270 case BSIM4_MOD_RBPB :
1271 mod->BSIM4rbpb = value->rValue;
1272 mod->BSIM4rbpbGiven = TRUE;
1273 break;
1274 case BSIM4_MOD_RBSB :
1275 mod->BSIM4rbsb = value->rValue;
1276 mod->BSIM4rbsbGiven = TRUE;
1277 break;
1278 case BSIM4_MOD_RBPS :
1279 mod->BSIM4rbps = value->rValue;
1280 mod->BSIM4rbpsGiven = TRUE;
1281 break;
1282 case BSIM4_MOD_RBPD :
1283 mod->BSIM4rbpd = value->rValue;
1284 mod->BSIM4rbpdGiven = TRUE;
1285 break;
1286
1287 case BSIM4_MOD_RBPS0 :
1288 mod->BSIM4rbps0 = value->rValue;
1289 mod->BSIM4rbps0Given = TRUE;
1290 break;
1291 case BSIM4_MOD_RBPSL :
1292 mod->BSIM4rbpsl = value->rValue;
1293 mod->BSIM4rbpslGiven = TRUE;
1294 break;
1295 case BSIM4_MOD_RBPSW :
1296 mod->BSIM4rbpsw = value->rValue;
1297 mod->BSIM4rbpswGiven = TRUE;
1298 break;
1299 case BSIM4_MOD_RBPSNF :
1300 mod->BSIM4rbpsnf = value->rValue;
1301 mod->BSIM4rbpsnfGiven = TRUE;
1302 break;
1303
1304 case BSIM4_MOD_RBPD0 :
1305 mod->BSIM4rbpd0 = value->rValue;
1306 mod->BSIM4rbpd0Given = TRUE;
1307 break;
1308 case BSIM4_MOD_RBPDL :
1309 mod->BSIM4rbpdl = value->rValue;
1310 mod->BSIM4rbpdlGiven = TRUE;
1311 break;
1312 case BSIM4_MOD_RBPDW :
1313 mod->BSIM4rbpdw = value->rValue;
1314 mod->BSIM4rbpdwGiven = TRUE;
1315 break;
1316 case BSIM4_MOD_RBPDNF :
1317 mod->BSIM4rbpdnf = value->rValue;
1318 mod->BSIM4rbpdnfGiven = TRUE;
1319 break;
1320
1321 case BSIM4_MOD_RBPBX0 :
1322 mod->BSIM4rbpbx0 = value->rValue;
1323 mod->BSIM4rbpbx0Given = TRUE;
1324 break;
1325 case BSIM4_MOD_RBPBXL :
1326 mod->BSIM4rbpbxl = value->rValue;
1327 mod->BSIM4rbpbxlGiven = TRUE;
1328 break;
1329 case BSIM4_MOD_RBPBXW :
1330 mod->BSIM4rbpbxw = value->rValue;
1331 mod->BSIM4rbpbxwGiven = TRUE;
1332 break;
1333 case BSIM4_MOD_RBPBXNF :
1334 mod->BSIM4rbpbxnf = value->rValue;
1335 mod->BSIM4rbpbxnfGiven = TRUE;
1336 break;
1337 case BSIM4_MOD_RBPBY0 :
1338 mod->BSIM4rbpby0 = value->rValue;
1339 mod->BSIM4rbpby0Given = TRUE;
1340 break;
1341 case BSIM4_MOD_RBPBYL :
1342 mod->BSIM4rbpbyl = value->rValue;
1343 mod->BSIM4rbpbylGiven = TRUE;
1344 break;
1345 case BSIM4_MOD_RBPBYW :
1346 mod->BSIM4rbpbyw = value->rValue;
1347 mod->BSIM4rbpbywGiven = TRUE;
1348 break;
1349 case BSIM4_MOD_RBPBYNF :
1350 mod->BSIM4rbpbynf = value->rValue;
1351 mod->BSIM4rbpbynfGiven = TRUE;
1352 break;
1353 case BSIM4_MOD_RBSBX0 :
1354 mod->BSIM4rbsbx0 = value->rValue;
1355 mod->BSIM4rbsbx0Given = TRUE;
1356 break;
1357 case BSIM4_MOD_RBSBY0 :
1358 mod->BSIM4rbsby0 = value->rValue;
1359 mod->BSIM4rbsby0Given = TRUE;
1360 break;
1361 case BSIM4_MOD_RBDBX0 :
1362 mod->BSIM4rbdbx0 = value->rValue;
1363 mod->BSIM4rbdbx0Given = TRUE;
1364 break;
1365 case BSIM4_MOD_RBDBY0 :
1366 mod->BSIM4rbdby0 = value->rValue;
1367 mod->BSIM4rbdby0Given = TRUE;
1368 break;
1369
1370
1371 case BSIM4_MOD_RBSDBXL :
1372 mod->BSIM4rbsdbxl = value->rValue;
1373 mod->BSIM4rbsdbxlGiven = TRUE;
1374 break;
1375 case BSIM4_MOD_RBSDBXW :
1376 mod->BSIM4rbsdbxw = value->rValue;
1377 mod->BSIM4rbsdbxwGiven = TRUE;
1378 break;
1379 case BSIM4_MOD_RBSDBXNF :
1380 mod->BSIM4rbsdbxnf = value->rValue;
1381 mod->BSIM4rbsdbxnfGiven = TRUE;
1382 break;
1383 case BSIM4_MOD_RBSDBYL :
1384 mod->BSIM4rbsdbyl = value->rValue;
1385 mod->BSIM4rbsdbylGiven = TRUE;
1386 break;
1387 case BSIM4_MOD_RBSDBYW :
1388 mod->BSIM4rbsdbyw = value->rValue;
1389 mod->BSIM4rbsdbywGiven = TRUE;
1390 break;
1391 case BSIM4_MOD_RBSDBYNF :
1392 mod->BSIM4rbsdbynf = value->rValue;
1393 mod->BSIM4rbsdbynfGiven = TRUE;
1394 break;
1395
1396 case BSIM4_MOD_CGSL :
1397 mod->BSIM4cgsl = value->rValue;
1398 mod->BSIM4cgslGiven = TRUE;
1399 break;
1400 case BSIM4_MOD_CGDL :
1401 mod->BSIM4cgdl = value->rValue;
1402 mod->BSIM4cgdlGiven = TRUE;
1403 break;
1404 case BSIM4_MOD_CKAPPAS :
1405 mod->BSIM4ckappas = value->rValue;
1406 mod->BSIM4ckappasGiven = TRUE;
1407 break;
1408 case BSIM4_MOD_CKAPPAD :
1409 mod->BSIM4ckappad = value->rValue;
1410 mod->BSIM4ckappadGiven = TRUE;
1411 break;
1412 case BSIM4_MOD_CF :
1413 mod->BSIM4cf = value->rValue;
1414 mod->BSIM4cfGiven = TRUE;
1415 break;
1416 case BSIM4_MOD_CLC :
1417 mod->BSIM4clc = value->rValue;
1418 mod->BSIM4clcGiven = TRUE;
1419 break;
1420 case BSIM4_MOD_CLE :
1421 mod->BSIM4cle = value->rValue;
1422 mod->BSIM4cleGiven = TRUE;
1423 break;
1424 case BSIM4_MOD_DWC :
1425 mod->BSIM4dwc = value->rValue;
1426 mod->BSIM4dwcGiven = TRUE;
1427 break;
1428 case BSIM4_MOD_DLC :
1429 mod->BSIM4dlc = value->rValue;
1430 mod->BSIM4dlcGiven = TRUE;
1431 break;
1432 case BSIM4_MOD_XW :
1433 mod->BSIM4xw = value->rValue;
1434 mod->BSIM4xwGiven = TRUE;
1435 break;
1436 case BSIM4_MOD_XL :
1437 mod->BSIM4xl = value->rValue;
1438 mod->BSIM4xlGiven = TRUE;
1439 break;
1440 case BSIM4_MOD_DLCIG :
1441 mod->BSIM4dlcig = value->rValue;
1442 mod->BSIM4dlcigGiven = TRUE;
1443 break;
1444 case BSIM4_MOD_DLCIGD :
1445 mod->BSIM4dlcigd = value->rValue;
1446 mod->BSIM4dlcigdGiven = TRUE;
1447 break;
1448 case BSIM4_MOD_DWJ :
1449 mod->BSIM4dwj = value->rValue;
1450 mod->BSIM4dwjGiven = TRUE;
1451 break;
1452 case BSIM4_MOD_VFBCV :
1453 mod->BSIM4vfbcv = value->rValue;
1454 mod->BSIM4vfbcvGiven = TRUE;
1455 break;
1456 case BSIM4_MOD_ACDE :
1457 mod->BSIM4acde = value->rValue;
1458 mod->BSIM4acdeGiven = TRUE;
1459 break;
1460 case BSIM4_MOD_MOIN :
1461 mod->BSIM4moin = value->rValue;
1462 mod->BSIM4moinGiven = TRUE;
1463 break;
1464 case BSIM4_MOD_NOFF :
1465 mod->BSIM4noff = value->rValue;
1466 mod->BSIM4noffGiven = TRUE;
1467 break;
1468 case BSIM4_MOD_VOFFCV :
1469 mod->BSIM4voffcv = value->rValue;
1470 mod->BSIM4voffcvGiven = TRUE;
1471 break;
1472 case BSIM4_MOD_DMCG :
1473 mod->BSIM4dmcg = value->rValue;
1474 mod->BSIM4dmcgGiven = TRUE;
1475 break;
1476 case BSIM4_MOD_DMCI :
1477 mod->BSIM4dmci = value->rValue;
1478 mod->BSIM4dmciGiven = TRUE;
1479 break;
1480 case BSIM4_MOD_DMDG :
1481 mod->BSIM4dmdg = value->rValue;
1482 mod->BSIM4dmdgGiven = TRUE;
1483 break;
1484 case BSIM4_MOD_DMCGT :
1485 mod->BSIM4dmcgt = value->rValue;
1486 mod->BSIM4dmcgtGiven = TRUE;
1487 break;
1488 case BSIM4_MOD_XGW :
1489 mod->BSIM4xgw = value->rValue;
1490 mod->BSIM4xgwGiven = TRUE;
1491 break;
1492 case BSIM4_MOD_XGL :
1493 mod->BSIM4xgl = value->rValue;
1494 mod->BSIM4xglGiven = TRUE;
1495 break;
1496 case BSIM4_MOD_RSHG :
1497 mod->BSIM4rshg = value->rValue;
1498 mod->BSIM4rshgGiven = TRUE;
1499 break;
1500 case BSIM4_MOD_NGCON :
1501 mod->BSIM4ngcon = value->rValue;
1502 mod->BSIM4ngconGiven = TRUE;
1503 break;
1504 case BSIM4_MOD_TCJ :
1505 mod->BSIM4tcj = value->rValue;
1506 mod->BSIM4tcjGiven = TRUE;
1507 break;
1508 case BSIM4_MOD_TPB :
1509 mod->BSIM4tpb = value->rValue;
1510 mod->BSIM4tpbGiven = TRUE;
1511 break;
1512 case BSIM4_MOD_TCJSW :
1513 mod->BSIM4tcjsw = value->rValue;
1514 mod->BSIM4tcjswGiven = TRUE;
1515 break;
1516 case BSIM4_MOD_TPBSW :
1517 mod->BSIM4tpbsw = value->rValue;
1518 mod->BSIM4tpbswGiven = TRUE;
1519 break;
1520 case BSIM4_MOD_TCJSWG :
1521 mod->BSIM4tcjswg = value->rValue;
1522 mod->BSIM4tcjswgGiven = TRUE;
1523 break;
1524 case BSIM4_MOD_TPBSWG :
1525 mod->BSIM4tpbswg = value->rValue;
1526 mod->BSIM4tpbswgGiven = TRUE;
1527 break;
1528
1529 /* Length dependence */
1530 case BSIM4_MOD_LCDSC :
1531 mod->BSIM4lcdsc = value->rValue;
1532 mod->BSIM4lcdscGiven = TRUE;
1533 break;
1534
1535
1536 case BSIM4_MOD_LCDSCB :
1537 mod->BSIM4lcdscb = value->rValue;
1538 mod->BSIM4lcdscbGiven = TRUE;
1539 break;
1540 case BSIM4_MOD_LCDSCD :
1541 mod->BSIM4lcdscd = value->rValue;
1542 mod->BSIM4lcdscdGiven = TRUE;
1543 break;
1544 case BSIM4_MOD_LCIT :
1545 mod->BSIM4lcit = value->rValue;
1546 mod->BSIM4lcitGiven = TRUE;
1547 break;
1548 case BSIM4_MOD_LNFACTOR :
1549 mod->BSIM4lnfactor = value->rValue;
1550 mod->BSIM4lnfactorGiven = TRUE;
1551 break;
1552 case BSIM4_MOD_LXJ:
1553 mod->BSIM4lxj = value->rValue;
1554 mod->BSIM4lxjGiven = TRUE;
1555 break;
1556 case BSIM4_MOD_LVSAT:
1557 mod->BSIM4lvsat = value->rValue;
1558 mod->BSIM4lvsatGiven = TRUE;
1559 break;
1560
1561
1562 case BSIM4_MOD_LA0:
1563 mod->BSIM4la0 = value->rValue;
1564 mod->BSIM4la0Given = TRUE;
1565 break;
1566 case BSIM4_MOD_LAGS:
1567 mod->BSIM4lags = value->rValue;
1568 mod->BSIM4lagsGiven = TRUE;
1569 break;
1570 case BSIM4_MOD_LA1:
1571 mod->BSIM4la1 = value->rValue;
1572 mod->BSIM4la1Given = TRUE;
1573 break;
1574 case BSIM4_MOD_LA2:
1575 mod->BSIM4la2 = value->rValue;
1576 mod->BSIM4la2Given = TRUE;
1577 break;
1578 case BSIM4_MOD_LAT:
1579 mod->BSIM4lat = value->rValue;
1580 mod->BSIM4latGiven = TRUE;
1581 break;
1582 case BSIM4_MOD_LKETA:
1583 mod->BSIM4lketa = value->rValue;
1584 mod->BSIM4lketaGiven = TRUE;
1585 break;
1586 case BSIM4_MOD_LNSUB:
1587 mod->BSIM4lnsub = value->rValue;
1588 mod->BSIM4lnsubGiven = TRUE;
1589 break;
1590 case BSIM4_MOD_LNDEP:
1591 mod->BSIM4lndep = value->rValue;
1592 mod->BSIM4lndepGiven = TRUE;
1593 if (mod->BSIM4lndep > 1.0e20)
1594 mod->BSIM4lndep *= 1.0e-6;
1595 break;
1596 case BSIM4_MOD_LNSD:
1597 mod->BSIM4lnsd = value->rValue;
1598 mod->BSIM4lnsdGiven = TRUE;
1599 if (mod->BSIM4lnsd > 1.0e23)
1600 mod->BSIM4lnsd *= 1.0e-6;
1601 break;
1602 case BSIM4_MOD_LNGATE:
1603 mod->BSIM4lngate = value->rValue;
1604 mod->BSIM4lngateGiven = TRUE;
1605 if (mod->BSIM4lngate > 1.0e23)
1606 mod->BSIM4lngate *= 1.0e-6;
1607 break;
1608 case BSIM4_MOD_LGAMMA1:
1609 mod->BSIM4lgamma1 = value->rValue;
1610 mod->BSIM4lgamma1Given = TRUE;
1611 break;
1612 case BSIM4_MOD_LGAMMA2:
1613 mod->BSIM4lgamma2 = value->rValue;
1614 mod->BSIM4lgamma2Given = TRUE;
1615 break;
1616 case BSIM4_MOD_LVBX:
1617 mod->BSIM4lvbx = value->rValue;
1618 mod->BSIM4lvbxGiven = TRUE;
1619 break;
1620 case BSIM4_MOD_LVBM:
1621 mod->BSIM4lvbm = value->rValue;
1622 mod->BSIM4lvbmGiven = TRUE;
1623 break;
1624 case BSIM4_MOD_LXT:
1625 mod->BSIM4lxt = value->rValue;
1626 mod->BSIM4lxtGiven = TRUE;
1627 break;
1628 case BSIM4_MOD_LK1:
1629 mod->BSIM4lk1 = value->rValue;
1630 mod->BSIM4lk1Given = TRUE;
1631 break;
1632 case BSIM4_MOD_LKT1:
1633 mod->BSIM4lkt1 = value->rValue;
1634 mod->BSIM4lkt1Given = TRUE;
1635 break;
1636 case BSIM4_MOD_LKT1L:
1637 mod->BSIM4lkt1l = value->rValue;
1638 mod->BSIM4lkt1lGiven = TRUE;
1639 break;
1640 case BSIM4_MOD_LKT2:
1641 mod->BSIM4lkt2 = value->rValue;
1642 mod->BSIM4lkt2Given = TRUE;
1643 break;
1644 case BSIM4_MOD_LK2:
1645 mod->BSIM4lk2 = value->rValue;
1646 mod->BSIM4lk2Given = TRUE;
1647 break;
1648 case BSIM4_MOD_LK3:
1649 mod->BSIM4lk3 = value->rValue;
1650 mod->BSIM4lk3Given = TRUE;
1651 break;
1652 case BSIM4_MOD_LK3B:
1653 mod->BSIM4lk3b = value->rValue;
1654 mod->BSIM4lk3bGiven = TRUE;
1655 break;
1656 case BSIM4_MOD_LLPE0:
1657 mod->BSIM4llpe0 = value->rValue;
1658 mod->BSIM4llpe0Given = TRUE;
1659 break;
1660 case BSIM4_MOD_LLPEB:
1661 mod->BSIM4llpeb = value->rValue;
1662 mod->BSIM4llpebGiven = TRUE;
1663 break;
1664 case BSIM4_MOD_LDVTP0:
1665 mod->BSIM4ldvtp0 = value->rValue;
1666 mod->BSIM4ldvtp0Given = TRUE;
1667 break;
1668 case BSIM4_MOD_LDVTP1:
1669 mod->BSIM4ldvtp1 = value->rValue;
1670 mod->BSIM4ldvtp1Given = TRUE;
1671 break;
1672 case BSIM4_MOD_LDVTP2: /* New DIBL/Rout */
1673 mod->BSIM4ldvtp2 = value->rValue;
1674 mod->BSIM4ldvtp2Given = TRUE;
1675 break;
1676 case BSIM4_MOD_LDVTP3:
1677 mod->BSIM4ldvtp3 = value->rValue;
1678 mod->BSIM4ldvtp3Given = TRUE;
1679 break;
1680 case BSIM4_MOD_LDVTP4:
1681 mod->BSIM4ldvtp4 = value->rValue;
1682 mod->BSIM4ldvtp4Given = TRUE;
1683 break;
1684 case BSIM4_MOD_LDVTP5:
1685 mod->BSIM4ldvtp5 = value->rValue;
1686 mod->BSIM4ldvtp5Given = TRUE;
1687 break;
1688 case BSIM4_MOD_LW0:
1689 mod->BSIM4lw0 = value->rValue;
1690 mod->BSIM4lw0Given = TRUE;
1691 break;
1692 case BSIM4_MOD_LDVT0:
1693 mod->BSIM4ldvt0 = value->rValue;
1694 mod->BSIM4ldvt0Given = TRUE;
1695 break;
1696 case BSIM4_MOD_LDVT1:
1697 mod->BSIM4ldvt1 = value->rValue;
1698 mod->BSIM4ldvt1Given = TRUE;
1699 break;
1700 case BSIM4_MOD_LDVT2:
1701 mod->BSIM4ldvt2 = value->rValue;
1702 mod->BSIM4ldvt2Given = TRUE;
1703 break;
1704 case BSIM4_MOD_LDVT0W:
1705 mod->BSIM4ldvt0w = value->rValue;
1706 mod->BSIM4ldvt0wGiven = TRUE;
1707 break;
1708 case BSIM4_MOD_LDVT1W:
1709 mod->BSIM4ldvt1w = value->rValue;
1710 mod->BSIM4ldvt1wGiven = TRUE;
1711 break;
1712 case BSIM4_MOD_LDVT2W:
1713 mod->BSIM4ldvt2w = value->rValue;
1714 mod->BSIM4ldvt2wGiven = TRUE;
1715 break;
1716 case BSIM4_MOD_LDROUT:
1717 mod->BSIM4ldrout = value->rValue;
1718 mod->BSIM4ldroutGiven = TRUE;
1719 break;
1720 case BSIM4_MOD_LDSUB:
1721 mod->BSIM4ldsub = value->rValue;
1722 mod->BSIM4ldsubGiven = TRUE;
1723 break;
1724 case BSIM4_MOD_LVTH0:
1725 mod->BSIM4lvth0 = value->rValue;
1726 mod->BSIM4lvth0Given = TRUE;
1727 break;
1728 case BSIM4_MOD_LUA:
1729 mod->BSIM4lua = value->rValue;
1730 mod->BSIM4luaGiven = TRUE;
1731 break;
1732 case BSIM4_MOD_LUA1:
1733 mod->BSIM4lua1 = value->rValue;
1734 mod->BSIM4lua1Given = TRUE;
1735 break;
1736 case BSIM4_MOD_LUB:
1737 mod->BSIM4lub = value->rValue;
1738 mod->BSIM4lubGiven = TRUE;
1739 break;
1740 case BSIM4_MOD_LUB1:
1741 mod->BSIM4lub1 = value->rValue;
1742 mod->BSIM4lub1Given = TRUE;
1743 break;
1744 case BSIM4_MOD_LUC:
1745 mod->BSIM4luc = value->rValue;
1746 mod->BSIM4lucGiven = TRUE;
1747 break;
1748 case BSIM4_MOD_LUC1:
1749 mod->BSIM4luc1 = value->rValue;
1750 mod->BSIM4luc1Given = TRUE;
1751 break;
1752 case BSIM4_MOD_LU0 :
1753 mod->BSIM4lu0 = value->rValue;
1754 mod->BSIM4lu0Given = TRUE;
1755 break;
1756 case BSIM4_MOD_LUTE :
1757 mod->BSIM4lute = value->rValue;
1758 mod->BSIM4luteGiven = TRUE;
1759 break;
1760 case BSIM4_MOD_LUCSTE :
1761 mod->BSIM4lucste = value->rValue;
1762 mod->BSIM4lucsteGiven = TRUE;
1763 break;
1764 case BSIM4_MOD_LVOFF:
1765 mod->BSIM4lvoff = value->rValue;
1766 mod->BSIM4lvoffGiven = TRUE;
1767 break;
1768 case BSIM4_MOD_LTVOFF:
1769 mod->BSIM4ltvoff = value->rValue;
1770 mod->BSIM4ltvoffGiven = TRUE;
1771 break;
1772 case BSIM4_MOD_LTNFACTOR: /* v4.7 temp dep of leakage current */
1773 mod->BSIM4ltnfactor = value->rValue;
1774 mod->BSIM4ltnfactorGiven = TRUE;
1775 break;
1776 case BSIM4_MOD_LTETA0: /* v4.7 temp dep of leakage current */
1777 mod->BSIM4lteta0 = value->rValue;
1778 mod->BSIM4lteta0Given = TRUE;
1779 break;
1780 case BSIM4_MOD_LTVOFFCV: /* v4.7 temp dep of leakage current */
1781 mod->BSIM4ltvoffcv = value->rValue;
1782 mod->BSIM4ltvoffcvGiven = TRUE;
1783 break;
1784 case BSIM4_MOD_LMINV:
1785 mod->BSIM4lminv = value->rValue;
1786 mod->BSIM4lminvGiven = TRUE;
1787 break;
1788 case BSIM4_MOD_LMINVCV:
1789 mod->BSIM4lminvcv = value->rValue;
1790 mod->BSIM4lminvcvGiven = TRUE;
1791 break;
1792 case BSIM4_MOD_LFPROUT:
1793 mod->BSIM4lfprout = value->rValue;
1794 mod->BSIM4lfproutGiven = TRUE;
1795 break;
1796 case BSIM4_MOD_LPDITS:
1797 mod->BSIM4lpdits = value->rValue;
1798 mod->BSIM4lpditsGiven = TRUE;
1799 break;
1800 case BSIM4_MOD_LPDITSD:
1801 mod->BSIM4lpditsd = value->rValue;
1802 mod->BSIM4lpditsdGiven = TRUE;
1803 break;
1804 case BSIM4_MOD_LDELTA :
1805 mod->BSIM4ldelta = value->rValue;
1806 mod->BSIM4ldeltaGiven = TRUE;
1807 break;
1808 case BSIM4_MOD_LRDSW:
1809 mod->BSIM4lrdsw = value->rValue;
1810 mod->BSIM4lrdswGiven = TRUE;
1811 break;
1812 case BSIM4_MOD_LRDW:
1813 mod->BSIM4lrdw = value->rValue;
1814 mod->BSIM4lrdwGiven = TRUE;
1815 break;
1816 case BSIM4_MOD_LRSW:
1817 mod->BSIM4lrsw = value->rValue;
1818 mod->BSIM4lrswGiven = TRUE;
1819 break;
1820 case BSIM4_MOD_LPRWB:
1821 mod->BSIM4lprwb = value->rValue;
1822 mod->BSIM4lprwbGiven = TRUE;
1823 break;
1824 case BSIM4_MOD_LPRWG:
1825 mod->BSIM4lprwg = value->rValue;
1826 mod->BSIM4lprwgGiven = TRUE;
1827 break;
1828 case BSIM4_MOD_LPRT:
1829 mod->BSIM4lprt = value->rValue;
1830 mod->BSIM4lprtGiven = TRUE;
1831 break;
1832 case BSIM4_MOD_LETA0:
1833 mod->BSIM4leta0 = value->rValue;
1834 mod->BSIM4leta0Given = TRUE;
1835 break;
1836 case BSIM4_MOD_LETAB:
1837 mod->BSIM4letab = value->rValue;
1838 mod->BSIM4letabGiven = TRUE;
1839 break;
1840 case BSIM4_MOD_LPCLM:
1841 mod->BSIM4lpclm = value->rValue;
1842 mod->BSIM4lpclmGiven = TRUE;
1843 break;
1844 case BSIM4_MOD_LPDIBL1:
1845 mod->BSIM4lpdibl1 = value->rValue;
1846 mod->BSIM4lpdibl1Given = TRUE;
1847 break;
1848 case BSIM4_MOD_LPDIBL2:
1849 mod->BSIM4lpdibl2 = value->rValue;
1850 mod->BSIM4lpdibl2Given = TRUE;
1851 break;
1852 case BSIM4_MOD_LPDIBLB:
1853 mod->BSIM4lpdiblb = value->rValue;
1854 mod->BSIM4lpdiblbGiven = TRUE;
1855 break;
1856 case BSIM4_MOD_LPSCBE1:
1857 mod->BSIM4lpscbe1 = value->rValue;
1858 mod->BSIM4lpscbe1Given = TRUE;
1859 break;
1860 case BSIM4_MOD_LPSCBE2:
1861 mod->BSIM4lpscbe2 = value->rValue;
1862 mod->BSIM4lpscbe2Given = TRUE;
1863 break;
1864 case BSIM4_MOD_LPVAG:
1865 mod->BSIM4lpvag = value->rValue;
1866 mod->BSIM4lpvagGiven = TRUE;
1867 break;
1868 case BSIM4_MOD_LWR :
1869 mod->BSIM4lwr = value->rValue;
1870 mod->BSIM4lwrGiven = TRUE;
1871 break;
1872 case BSIM4_MOD_LDWG :
1873 mod->BSIM4ldwg = value->rValue;
1874 mod->BSIM4ldwgGiven = TRUE;
1875 break;
1876 case BSIM4_MOD_LDWB :
1877 mod->BSIM4ldwb = value->rValue;
1878 mod->BSIM4ldwbGiven = TRUE;
1879 break;
1880 case BSIM4_MOD_LB0 :
1881 mod->BSIM4lb0 = value->rValue;
1882 mod->BSIM4lb0Given = TRUE;
1883 break;
1884 case BSIM4_MOD_LB1 :
1885 mod->BSIM4lb1 = value->rValue;
1886 mod->BSIM4lb1Given = TRUE;
1887 break;
1888 case BSIM4_MOD_LALPHA0 :
1889 mod->BSIM4lalpha0 = value->rValue;
1890 mod->BSIM4lalpha0Given = TRUE;
1891 break;
1892 case BSIM4_MOD_LALPHA1 :
1893 mod->BSIM4lalpha1 = value->rValue;
1894 mod->BSIM4lalpha1Given = TRUE;
1895 break;
1896 case BSIM4_MOD_LBETA0 :
1897 mod->BSIM4lbeta0 = value->rValue;
1898 mod->BSIM4lbeta0Given = TRUE;
1899 break;
1900 case BSIM4_MOD_LPHIN :
1901 mod->BSIM4lphin = value->rValue;
1902 mod->BSIM4lphinGiven = TRUE;
1903 break;
1904 case BSIM4_MOD_LAGIDL :
1905 mod->BSIM4lagidl = value->rValue;
1906 mod->BSIM4lagidlGiven = TRUE;
1907 break;
1908 case BSIM4_MOD_LBGIDL :
1909 mod->BSIM4lbgidl = value->rValue;
1910 mod->BSIM4lbgidlGiven = TRUE;
1911 break;
1912 case BSIM4_MOD_LCGIDL :
1913 mod->BSIM4lcgidl = value->rValue;
1914 mod->BSIM4lcgidlGiven = TRUE;
1915 break;
1916 case BSIM4_MOD_LEGIDL :
1917 mod->BSIM4legidl = value->rValue;
1918 mod->BSIM4legidlGiven = TRUE;
1919 break;
1920 case BSIM4_MOD_LFGIDL : /* v4.7 New GIDL/GISL */
1921 mod->BSIM4lfgidl = value->rValue;
1922 mod->BSIM4lfgidlGiven = TRUE;
1923 break;
1924 case BSIM4_MOD_LKGIDL : /* v4.7 New GIDL/GISL */
1925 mod->BSIM4lkgidl = value->rValue;
1926 mod->BSIM4lkgidlGiven = TRUE;
1927 break;
1928 case BSIM4_MOD_LRGIDL : /* v4.7 New GIDL/GISL */
1929 mod->BSIM4lrgidl = value->rValue;
1930 mod->BSIM4lrgidlGiven = TRUE;
1931 break;
1932 case BSIM4_MOD_LAGISL :
1933 mod->BSIM4lagisl = value->rValue;
1934 mod->BSIM4lagislGiven = TRUE;
1935 break;
1936 case BSIM4_MOD_LBGISL :
1937 mod->BSIM4lbgisl = value->rValue;
1938 mod->BSIM4lbgislGiven = TRUE;
1939 break;
1940 case BSIM4_MOD_LCGISL :
1941 mod->BSIM4lcgisl = value->rValue;
1942 mod->BSIM4lcgislGiven = TRUE;
1943 break;
1944 case BSIM4_MOD_LEGISL :
1945 mod->BSIM4legisl = value->rValue;
1946 mod->BSIM4legislGiven = TRUE;
1947 break;
1948 case BSIM4_MOD_LFGISL : /* v4.7 New GIDL/GISL */
1949 mod->BSIM4lfgisl = value->rValue;
1950 mod->BSIM4lfgislGiven = TRUE;
1951 break;
1952 case BSIM4_MOD_LKGISL : /* v4.7 New GIDL/GISL */
1953 mod->BSIM4lkgisl = value->rValue;
1954 mod->BSIM4lkgislGiven = TRUE;
1955 break;
1956 case BSIM4_MOD_LRGISL : /* v4.7 New GIDL/GISL */
1957 mod->BSIM4lrgisl = value->rValue;
1958 mod->BSIM4lrgislGiven = TRUE;
1959 break;
1960 case BSIM4_MOD_LAIGC :
1961 mod->BSIM4laigc = value->rValue;
1962 mod->BSIM4laigcGiven = TRUE;
1963 break;
1964 case BSIM4_MOD_LBIGC :
1965 mod->BSIM4lbigc = value->rValue;
1966 mod->BSIM4lbigcGiven = TRUE;
1967 break;
1968 case BSIM4_MOD_LCIGC :
1969 mod->BSIM4lcigc = value->rValue;
1970 mod->BSIM4lcigcGiven = TRUE;
1971 break;
1972 case BSIM4_MOD_LAIGSD :
1973 mod->BSIM4laigsd = value->rValue;
1974 mod->BSIM4laigsdGiven = TRUE;
1975 break;
1976 case BSIM4_MOD_LBIGSD :
1977 mod->BSIM4lbigsd = value->rValue;
1978 mod->BSIM4lbigsdGiven = TRUE;
1979 break;
1980 case BSIM4_MOD_LCIGSD :
1981 mod->BSIM4lcigsd = value->rValue;
1982 mod->BSIM4lcigsdGiven = TRUE;
1983 break;
1984 case BSIM4_MOD_LAIGS :
1985 mod->BSIM4laigs = value->rValue;
1986 mod->BSIM4laigsGiven = TRUE;
1987 break;
1988 case BSIM4_MOD_LBIGS :
1989 mod->BSIM4lbigs = value->rValue;
1990 mod->BSIM4lbigsGiven = TRUE;
1991 break;
1992 case BSIM4_MOD_LCIGS :
1993 mod->BSIM4lcigs = value->rValue;
1994 mod->BSIM4lcigsGiven = TRUE;
1995 break;
1996 case BSIM4_MOD_LAIGD :
1997 mod->BSIM4laigd = value->rValue;
1998 mod->BSIM4laigdGiven = TRUE;
1999 break;
2000 case BSIM4_MOD_LBIGD :
2001 mod->BSIM4lbigd = value->rValue;
2002 mod->BSIM4lbigdGiven = TRUE;
2003 break;
2004 case BSIM4_MOD_LCIGD :
2005 mod->BSIM4lcigd = value->rValue;
2006 mod->BSIM4lcigdGiven = TRUE;
2007 break;
2008 case BSIM4_MOD_LAIGBACC :
2009 mod->BSIM4laigbacc = value->rValue;
2010 mod->BSIM4laigbaccGiven = TRUE;
2011 break;
2012 case BSIM4_MOD_LBIGBACC :
2013 mod->BSIM4lbigbacc = value->rValue;
2014 mod->BSIM4lbigbaccGiven = TRUE;
2015 break;
2016 case BSIM4_MOD_LCIGBACC :
2017 mod->BSIM4lcigbacc = value->rValue;
2018 mod->BSIM4lcigbaccGiven = TRUE;
2019 break;
2020 case BSIM4_MOD_LAIGBINV :
2021 mod->BSIM4laigbinv = value->rValue;
2022 mod->BSIM4laigbinvGiven = TRUE;
2023 break;
2024 case BSIM4_MOD_LBIGBINV :
2025 mod->BSIM4lbigbinv = value->rValue;
2026 mod->BSIM4lbigbinvGiven = TRUE;
2027 break;
2028 case BSIM4_MOD_LCIGBINV :
2029 mod->BSIM4lcigbinv = value->rValue;
2030 mod->BSIM4lcigbinvGiven = TRUE;
2031 break;
2032 case BSIM4_MOD_LNIGC :
2033 mod->BSIM4lnigc = value->rValue;
2034 mod->BSIM4lnigcGiven = TRUE;
2035 break;
2036 case BSIM4_MOD_LNIGBINV :
2037 mod->BSIM4lnigbinv = value->rValue;
2038 mod->BSIM4lnigbinvGiven = TRUE;
2039 break;
2040 case BSIM4_MOD_LNIGBACC :
2041 mod->BSIM4lnigbacc = value->rValue;
2042 mod->BSIM4lnigbaccGiven = TRUE;
2043 break;
2044 case BSIM4_MOD_LNTOX :
2045 mod->BSIM4lntox = value->rValue;
2046 mod->BSIM4lntoxGiven = TRUE;
2047 break;
2048 case BSIM4_MOD_LEIGBINV :
2049 mod->BSIM4leigbinv = value->rValue;
2050 mod->BSIM4leigbinvGiven = TRUE;
2051 break;
2052 case BSIM4_MOD_LPIGCD :
2053 mod->BSIM4lpigcd = value->rValue;
2054 mod->BSIM4lpigcdGiven = TRUE;
2055 break;
2056 case BSIM4_MOD_LPOXEDGE :
2057 mod->BSIM4lpoxedge = value->rValue;
2058 mod->BSIM4lpoxedgeGiven = TRUE;
2059 break;
2060 case BSIM4_MOD_LXRCRG1 :
2061 mod->BSIM4lxrcrg1 = value->rValue;
2062 mod->BSIM4lxrcrg1Given = TRUE;
2063 break;
2064 case BSIM4_MOD_LXRCRG2 :
2065 mod->BSIM4lxrcrg2 = value->rValue;
2066 mod->BSIM4lxrcrg2Given = TRUE;
2067 break;
2068 case BSIM4_MOD_LLAMBDA :
2069 mod->BSIM4llambda = value->rValue;
2070 mod->BSIM4llambdaGiven = TRUE;
2071 break;
2072 case BSIM4_MOD_LVTL :
2073 mod->BSIM4lvtl = value->rValue;
2074 mod->BSIM4lvtlGiven = TRUE;
2075 break;
2076 case BSIM4_MOD_LXN:
2077 mod->BSIM4lxn = value->rValue;
2078 mod->BSIM4lxnGiven = TRUE;
2079 break;
2080 case BSIM4_MOD_LVFBSDOFF:
2081 mod->BSIM4lvfbsdoff = value->rValue;
2082 mod->BSIM4lvfbsdoffGiven = TRUE;
2083 break;
2084 case BSIM4_MOD_LTVFBSDOFF:
2085 mod->BSIM4ltvfbsdoff = value->rValue;
2086 mod->BSIM4ltvfbsdoffGiven = TRUE;
2087 break;
2088 case BSIM4_MOD_LEU :
2089 mod->BSIM4leu = value->rValue;
2090 mod->BSIM4leuGiven = TRUE;
2091 break;
2092 case BSIM4_MOD_LUCS :
2093 mod->BSIM4lucs = value->rValue;
2094 mod->BSIM4lucsGiven = TRUE;
2095 break;
2096 case BSIM4_MOD_LVFB :
2097 mod->BSIM4lvfb = value->rValue;
2098 mod->BSIM4lvfbGiven = TRUE;
2099 break;
2100 case BSIM4_MOD_LCGSL :
2101 mod->BSIM4lcgsl = value->rValue;
2102 mod->BSIM4lcgslGiven = TRUE;
2103 break;
2104 case BSIM4_MOD_LCGDL :
2105 mod->BSIM4lcgdl = value->rValue;
2106 mod->BSIM4lcgdlGiven = TRUE;
2107 break;
2108 case BSIM4_MOD_LCKAPPAS :
2109 mod->BSIM4lckappas = value->rValue;
2110 mod->BSIM4lckappasGiven = TRUE;
2111 break;
2112 case BSIM4_MOD_LCKAPPAD :
2113 mod->BSIM4lckappad = value->rValue;
2114 mod->BSIM4lckappadGiven = TRUE;
2115 break;
2116 case BSIM4_MOD_LCF :
2117 mod->BSIM4lcf = value->rValue;
2118 mod->BSIM4lcfGiven = TRUE;
2119 break;
2120 case BSIM4_MOD_LCLC :
2121 mod->BSIM4lclc = value->rValue;
2122 mod->BSIM4lclcGiven = TRUE;
2123 break;
2124 case BSIM4_MOD_LCLE :
2125 mod->BSIM4lcle = value->rValue;
2126 mod->BSIM4lcleGiven = TRUE;
2127 break;
2128 case BSIM4_MOD_LVFBCV :
2129 mod->BSIM4lvfbcv = value->rValue;
2130 mod->BSIM4lvfbcvGiven = TRUE;
2131 break;
2132 case BSIM4_MOD_LACDE :
2133 mod->BSIM4lacde = value->rValue;
2134 mod->BSIM4lacdeGiven = TRUE;
2135 break;
2136 case BSIM4_MOD_LMOIN :
2137 mod->BSIM4lmoin = value->rValue;
2138 mod->BSIM4lmoinGiven = TRUE;
2139 break;
2140 case BSIM4_MOD_LNOFF :
2141 mod->BSIM4lnoff = value->rValue;
2142 mod->BSIM4lnoffGiven = TRUE;
2143 break;
2144 case BSIM4_MOD_LVOFFCV :
2145 mod->BSIM4lvoffcv = value->rValue;
2146 mod->BSIM4lvoffcvGiven = TRUE;
2147 break;
2148
2149 /* Width dependence */
2150 case BSIM4_MOD_WCDSC :
2151 mod->BSIM4wcdsc = value->rValue;
2152 mod->BSIM4wcdscGiven = TRUE;
2153 break;
2154
2155
2156 case BSIM4_MOD_WCDSCB :
2157 mod->BSIM4wcdscb = value->rValue;
2158 mod->BSIM4wcdscbGiven = TRUE;
2159 break;
2160 case BSIM4_MOD_WCDSCD :
2161 mod->BSIM4wcdscd = value->rValue;
2162 mod->BSIM4wcdscdGiven = TRUE;
2163 break;
2164 case BSIM4_MOD_WCIT :
2165 mod->BSIM4wcit = value->rValue;
2166 mod->BSIM4wcitGiven = TRUE;
2167 break;
2168 case BSIM4_MOD_WNFACTOR :
2169 mod->BSIM4wnfactor = value->rValue;
2170 mod->BSIM4wnfactorGiven = TRUE;
2171 break;
2172 case BSIM4_MOD_WXJ:
2173 mod->BSIM4wxj = value->rValue;
2174 mod->BSIM4wxjGiven = TRUE;
2175 break;
2176 case BSIM4_MOD_WVSAT:
2177 mod->BSIM4wvsat = value->rValue;
2178 mod->BSIM4wvsatGiven = TRUE;
2179 break;
2180
2181
2182 case BSIM4_MOD_WA0:
2183 mod->BSIM4wa0 = value->rValue;
2184 mod->BSIM4wa0Given = TRUE;
2185 break;
2186 case BSIM4_MOD_WAGS:
2187 mod->BSIM4wags = value->rValue;
2188 mod->BSIM4wagsGiven = TRUE;
2189 break;
2190 case BSIM4_MOD_WA1:
2191 mod->BSIM4wa1 = value->rValue;
2192 mod->BSIM4wa1Given = TRUE;
2193 break;
2194 case BSIM4_MOD_WA2:
2195 mod->BSIM4wa2 = value->rValue;
2196 mod->BSIM4wa2Given = TRUE;
2197 break;
2198 case BSIM4_MOD_WAT:
2199 mod->BSIM4wat = value->rValue;
2200 mod->BSIM4watGiven = TRUE;
2201 break;
2202 case BSIM4_MOD_WKETA:
2203 mod->BSIM4wketa = value->rValue;
2204 mod->BSIM4wketaGiven = TRUE;
2205 break;
2206 case BSIM4_MOD_WNSUB:
2207 mod->BSIM4wnsub = value->rValue;
2208 mod->BSIM4wnsubGiven = TRUE;
2209 break;
2210 case BSIM4_MOD_WNDEP:
2211 mod->BSIM4wndep = value->rValue;
2212 mod->BSIM4wndepGiven = TRUE;
2213 if (mod->BSIM4wndep > 1.0e20)
2214 mod->BSIM4wndep *= 1.0e-6;
2215 break;
2216 case BSIM4_MOD_WNSD:
2217 mod->BSIM4wnsd = value->rValue;
2218 mod->BSIM4wnsdGiven = TRUE;
2219 if (mod->BSIM4wnsd > 1.0e23)
2220 mod->BSIM4wnsd *= 1.0e-6;
2221 break;
2222 case BSIM4_MOD_WNGATE:
2223 mod->BSIM4wngate = value->rValue;
2224 mod->BSIM4wngateGiven = TRUE;
2225 if (mod->BSIM4wngate > 1.0e23)
2226 mod->BSIM4wngate *= 1.0e-6;
2227 break;
2228 case BSIM4_MOD_WGAMMA1:
2229 mod->BSIM4wgamma1 = value->rValue;
2230 mod->BSIM4wgamma1Given = TRUE;
2231 break;
2232 case BSIM4_MOD_WGAMMA2:
2233 mod->BSIM4wgamma2 = value->rValue;
2234 mod->BSIM4wgamma2Given = TRUE;
2235 break;
2236 case BSIM4_MOD_WVBX:
2237 mod->BSIM4wvbx = value->rValue;
2238 mod->BSIM4wvbxGiven = TRUE;
2239 break;
2240 case BSIM4_MOD_WVBM:
2241 mod->BSIM4wvbm = value->rValue;
2242 mod->BSIM4wvbmGiven = TRUE;
2243 break;
2244 case BSIM4_MOD_WXT:
2245 mod->BSIM4wxt = value->rValue;
2246 mod->BSIM4wxtGiven = TRUE;
2247 break;
2248 case BSIM4_MOD_WK1:
2249 mod->BSIM4wk1 = value->rValue;
2250 mod->BSIM4wk1Given = TRUE;
2251 break;
2252 case BSIM4_MOD_WKT1:
2253 mod->BSIM4wkt1 = value->rValue;
2254 mod->BSIM4wkt1Given = TRUE;
2255 break;
2256 case BSIM4_MOD_WKT1L:
2257 mod->BSIM4wkt1l = value->rValue;
2258 mod->BSIM4wkt1lGiven = TRUE;
2259 break;
2260 case BSIM4_MOD_WKT2:
2261 mod->BSIM4wkt2 = value->rValue;
2262 mod->BSIM4wkt2Given = TRUE;
2263 break;
2264 case BSIM4_MOD_WK2:
2265 mod->BSIM4wk2 = value->rValue;
2266 mod->BSIM4wk2Given = TRUE;
2267 break;
2268 case BSIM4_MOD_WK3:
2269 mod->BSIM4wk3 = value->rValue;
2270 mod->BSIM4wk3Given = TRUE;
2271 break;
2272 case BSIM4_MOD_WK3B:
2273 mod->BSIM4wk3b = value->rValue;
2274 mod->BSIM4wk3bGiven = TRUE;
2275 break;
2276 case BSIM4_MOD_WLPE0:
2277 mod->BSIM4wlpe0 = value->rValue;
2278 mod->BSIM4wlpe0Given = TRUE;
2279 break;
2280 case BSIM4_MOD_WLPEB:
2281 mod->BSIM4wlpeb = value->rValue;
2282 mod->BSIM4wlpebGiven = TRUE;
2283 break;
2284 case BSIM4_MOD_WDVTP0:
2285 mod->BSIM4wdvtp0 = value->rValue;
2286 mod->BSIM4wdvtp0Given = TRUE;
2287 break;
2288 case BSIM4_MOD_WDVTP1:
2289 mod->BSIM4wdvtp1 = value->rValue;
2290 mod->BSIM4wdvtp1Given = TRUE;
2291 break;
2292 case BSIM4_MOD_WDVTP2: /* New DIBL/Rout */
2293 mod->BSIM4wdvtp2 = value->rValue;
2294 mod->BSIM4wdvtp2Given = TRUE;
2295 break;
2296 case BSIM4_MOD_WDVTP3:
2297 mod->BSIM4wdvtp3 = value->rValue;
2298 mod->BSIM4wdvtp3Given = TRUE;
2299 break;
2300 case BSIM4_MOD_WDVTP4:
2301 mod->BSIM4wdvtp4 = value->rValue;
2302 mod->BSIM4wdvtp4Given = TRUE;
2303 break;
2304 case BSIM4_MOD_WDVTP5:
2305 mod->BSIM4wdvtp5 = value->rValue;
2306 mod->BSIM4wdvtp5Given = TRUE;
2307 break;
2308 case BSIM4_MOD_WW0:
2309 mod->BSIM4ww0 = value->rValue;
2310 mod->BSIM4ww0Given = TRUE;
2311 break;
2312 case BSIM4_MOD_WDVT0:
2313 mod->BSIM4wdvt0 = value->rValue;
2314 mod->BSIM4wdvt0Given = TRUE;
2315 break;
2316 case BSIM4_MOD_WDVT1:
2317 mod->BSIM4wdvt1 = value->rValue;
2318 mod->BSIM4wdvt1Given = TRUE;
2319 break;
2320 case BSIM4_MOD_WDVT2:
2321 mod->BSIM4wdvt2 = value->rValue;
2322 mod->BSIM4wdvt2Given = TRUE;
2323 break;
2324 case BSIM4_MOD_WDVT0W:
2325 mod->BSIM4wdvt0w = value->rValue;
2326 mod->BSIM4wdvt0wGiven = TRUE;
2327 break;
2328 case BSIM4_MOD_WDVT1W:
2329 mod->BSIM4wdvt1w = value->rValue;
2330 mod->BSIM4wdvt1wGiven = TRUE;
2331 break;
2332 case BSIM4_MOD_WDVT2W:
2333 mod->BSIM4wdvt2w = value->rValue;
2334 mod->BSIM4wdvt2wGiven = TRUE;
2335 break;
2336 case BSIM4_MOD_WDROUT:
2337 mod->BSIM4wdrout = value->rValue;
2338 mod->BSIM4wdroutGiven = TRUE;
2339 break;
2340 case BSIM4_MOD_WDSUB:
2341 mod->BSIM4wdsub = value->rValue;
2342 mod->BSIM4wdsubGiven = TRUE;
2343 break;
2344 case BSIM4_MOD_WVTH0:
2345 mod->BSIM4wvth0 = value->rValue;
2346 mod->BSIM4wvth0Given = TRUE;
2347 break;
2348 case BSIM4_MOD_WUA:
2349 mod->BSIM4wua = value->rValue;
2350 mod->BSIM4wuaGiven = TRUE;
2351 break;
2352 case BSIM4_MOD_WUA1:
2353 mod->BSIM4wua1 = value->rValue;
2354 mod->BSIM4wua1Given = TRUE;
2355 break;
2356 case BSIM4_MOD_WUB:
2357 mod->BSIM4wub = value->rValue;
2358 mod->BSIM4wubGiven = TRUE;
2359 break;
2360 case BSIM4_MOD_WUB1:
2361 mod->BSIM4wub1 = value->rValue;
2362 mod->BSIM4wub1Given = TRUE;
2363 break;
2364 case BSIM4_MOD_WUC:
2365 mod->BSIM4wuc = value->rValue;
2366 mod->BSIM4wucGiven = TRUE;
2367 break;
2368 case BSIM4_MOD_WUC1:
2369 mod->BSIM4wuc1 = value->rValue;
2370 mod->BSIM4wuc1Given = TRUE;
2371 break;
2372 case BSIM4_MOD_WU0 :
2373 mod->BSIM4wu0 = value->rValue;
2374 mod->BSIM4wu0Given = TRUE;
2375 break;
2376 case BSIM4_MOD_WUTE :
2377 mod->BSIM4wute = value->rValue;
2378 mod->BSIM4wuteGiven = TRUE;
2379 break;
2380 case BSIM4_MOD_WUCSTE :
2381 mod->BSIM4wucste = value->rValue;
2382 mod->BSIM4wucsteGiven = TRUE;
2383 break;
2384 case BSIM4_MOD_WVOFF:
2385 mod->BSIM4wvoff = value->rValue;
2386 mod->BSIM4wvoffGiven = TRUE;
2387 break;
2388 case BSIM4_MOD_WTVOFF:
2389 mod->BSIM4wtvoff = value->rValue;
2390 mod->BSIM4wtvoffGiven = TRUE;
2391 break;
2392 case BSIM4_MOD_WTNFACTOR: /* v4.7 temp dep of leakage current */
2393 mod->BSIM4wtnfactor = value->rValue;
2394 mod->BSIM4wtnfactorGiven = TRUE;
2395 break;
2396 case BSIM4_MOD_WTETA0: /* v4.7 temp dep of leakage current */
2397 mod->BSIM4wteta0 = value->rValue;
2398 mod->BSIM4wteta0Given = TRUE;
2399 break;
2400 case BSIM4_MOD_WTVOFFCV: /* v4.7 temp dep of leakage current */
2401 mod->BSIM4wtvoffcv = value->rValue;
2402 mod->BSIM4wtvoffcvGiven = TRUE;
2403 break;
2404 case BSIM4_MOD_WMINV:
2405 mod->BSIM4wminv = value->rValue;
2406 mod->BSIM4wminvGiven = TRUE;
2407 break;
2408 case BSIM4_MOD_WMINVCV:
2409 mod->BSIM4wminvcv = value->rValue;
2410 mod->BSIM4wminvcvGiven = TRUE;
2411 break;
2412 case BSIM4_MOD_WFPROUT:
2413 mod->BSIM4wfprout = value->rValue;
2414 mod->BSIM4wfproutGiven = TRUE;
2415 break;
2416 case BSIM4_MOD_WPDITS:
2417 mod->BSIM4wpdits = value->rValue;
2418 mod->BSIM4wpditsGiven = TRUE;
2419 break;
2420 case BSIM4_MOD_WPDITSD:
2421 mod->BSIM4wpditsd = value->rValue;
2422 mod->BSIM4wpditsdGiven = TRUE;
2423 break;
2424 case BSIM4_MOD_WDELTA :
2425 mod->BSIM4wdelta = value->rValue;
2426 mod->BSIM4wdeltaGiven = TRUE;
2427 break;
2428 case BSIM4_MOD_WRDSW:
2429 mod->BSIM4wrdsw = value->rValue;
2430 mod->BSIM4wrdswGiven = TRUE;
2431 break;
2432 case BSIM4_MOD_WRDW:
2433 mod->BSIM4wrdw = value->rValue;
2434 mod->BSIM4wrdwGiven = TRUE;
2435 break;
2436 case BSIM4_MOD_WRSW:
2437 mod->BSIM4wrsw = value->rValue;
2438 mod->BSIM4wrswGiven = TRUE;
2439 break;
2440 case BSIM4_MOD_WPRWB:
2441 mod->BSIM4wprwb = value->rValue;
2442 mod->BSIM4wprwbGiven = TRUE;
2443 break;
2444 case BSIM4_MOD_WPRWG:
2445 mod->BSIM4wprwg = value->rValue;
2446 mod->BSIM4wprwgGiven = TRUE;
2447 break;
2448 case BSIM4_MOD_WPRT:
2449 mod->BSIM4wprt = value->rValue;
2450 mod->BSIM4wprtGiven = TRUE;
2451 break;
2452 case BSIM4_MOD_WETA0:
2453 mod->BSIM4weta0 = value->rValue;
2454 mod->BSIM4weta0Given = TRUE;
2455 break;
2456 case BSIM4_MOD_WETAB:
2457 mod->BSIM4wetab = value->rValue;
2458 mod->BSIM4wetabGiven = TRUE;
2459 break;
2460 case BSIM4_MOD_WPCLM:
2461 mod->BSIM4wpclm = value->rValue;
2462 mod->BSIM4wpclmGiven = TRUE;
2463 break;
2464 case BSIM4_MOD_WPDIBL1:
2465 mod->BSIM4wpdibl1 = value->rValue;
2466 mod->BSIM4wpdibl1Given = TRUE;
2467 break;
2468 case BSIM4_MOD_WPDIBL2:
2469 mod->BSIM4wpdibl2 = value->rValue;
2470 mod->BSIM4wpdibl2Given = TRUE;
2471 break;
2472 case BSIM4_MOD_WPDIBLB:
2473 mod->BSIM4wpdiblb = value->rValue;
2474 mod->BSIM4wpdiblbGiven = TRUE;
2475 break;
2476 case BSIM4_MOD_WPSCBE1:
2477 mod->BSIM4wpscbe1 = value->rValue;
2478 mod->BSIM4wpscbe1Given = TRUE;
2479 break;
2480 case BSIM4_MOD_WPSCBE2:
2481 mod->BSIM4wpscbe2 = value->rValue;
2482 mod->BSIM4wpscbe2Given = TRUE;
2483 break;
2484 case BSIM4_MOD_WPVAG:
2485 mod->BSIM4wpvag = value->rValue;
2486 mod->BSIM4wpvagGiven = TRUE;
2487 break;
2488 case BSIM4_MOD_WWR :
2489 mod->BSIM4wwr = value->rValue;
2490 mod->BSIM4wwrGiven = TRUE;
2491 break;
2492 case BSIM4_MOD_WDWG :
2493 mod->BSIM4wdwg = value->rValue;
2494 mod->BSIM4wdwgGiven = TRUE;
2495 break;
2496 case BSIM4_MOD_WDWB :
2497 mod->BSIM4wdwb = value->rValue;
2498 mod->BSIM4wdwbGiven = TRUE;
2499 break;
2500 case BSIM4_MOD_WB0 :
2501 mod->BSIM4wb0 = value->rValue;
2502 mod->BSIM4wb0Given = TRUE;
2503 break;
2504 case BSIM4_MOD_WB1 :
2505 mod->BSIM4wb1 = value->rValue;
2506 mod->BSIM4wb1Given = TRUE;
2507 break;
2508 case BSIM4_MOD_WALPHA0 :
2509 mod->BSIM4walpha0 = value->rValue;
2510 mod->BSIM4walpha0Given = TRUE;
2511 break;
2512 case BSIM4_MOD_WALPHA1 :
2513 mod->BSIM4walpha1 = value->rValue;
2514 mod->BSIM4walpha1Given = TRUE;
2515 break;
2516 case BSIM4_MOD_WBETA0 :
2517 mod->BSIM4wbeta0 = value->rValue;
2518 mod->BSIM4wbeta0Given = TRUE;
2519 break;
2520 case BSIM4_MOD_WPHIN :
2521 mod->BSIM4wphin = value->rValue;
2522 mod->BSIM4wphinGiven = TRUE;
2523 break;
2524 case BSIM4_MOD_WAGIDL :
2525 mod->BSIM4wagidl = value->rValue;
2526 mod->BSIM4wagidlGiven = TRUE;
2527 break;
2528 case BSIM4_MOD_WBGIDL :
2529 mod->BSIM4wbgidl = value->rValue;
2530 mod->BSIM4wbgidlGiven = TRUE;
2531 break;
2532 case BSIM4_MOD_WCGIDL :
2533 mod->BSIM4wcgidl = value->rValue;
2534 mod->BSIM4wcgidlGiven = TRUE;
2535 break;
2536 case BSIM4_MOD_WEGIDL :
2537 mod->BSIM4wegidl = value->rValue;
2538 mod->BSIM4wegidlGiven = TRUE;
2539 break;
2540 case BSIM4_MOD_WFGIDL : /* v4.7 New GIDL/GISL */
2541 mod->BSIM4wfgidl = value->rValue;
2542 mod->BSIM4wfgidlGiven = TRUE;
2543 break;
2544 case BSIM4_MOD_WKGIDL : /* v4.7 New GIDL/GISL */
2545 mod->BSIM4wkgidl = value->rValue;
2546 mod->BSIM4wkgidlGiven = TRUE;
2547 break;
2548 case BSIM4_MOD_WRGIDL : /* v4.7 New GIDL/GISL */
2549 mod->BSIM4wrgidl = value->rValue;
2550 mod->BSIM4wrgidlGiven = TRUE;
2551 break;
2552 case BSIM4_MOD_WAGISL :
2553 mod->BSIM4wagisl = value->rValue;
2554 mod->BSIM4wagislGiven = TRUE;
2555 break;
2556 case BSIM4_MOD_WBGISL :
2557 mod->BSIM4wbgisl = value->rValue;
2558 mod->BSIM4wbgislGiven = TRUE;
2559 break;
2560 case BSIM4_MOD_WCGISL :
2561 mod->BSIM4wcgisl = value->rValue;
2562 mod->BSIM4wcgislGiven = TRUE;
2563 break;
2564 case BSIM4_MOD_WEGISL :
2565 mod->BSIM4wegisl = value->rValue;
2566 mod->BSIM4wegislGiven = TRUE;
2567 break;
2568 case BSIM4_MOD_WFGISL : /* v4.7 New GIDL/GISL */
2569 mod->BSIM4wfgisl = value->rValue;
2570 mod->BSIM4wfgislGiven = TRUE;
2571 break;
2572 case BSIM4_MOD_WKGISL : /* v4.7 New GIDL/GISL */
2573 mod->BSIM4wkgisl = value->rValue;
2574 mod->BSIM4wkgislGiven = TRUE;
2575 break;
2576 case BSIM4_MOD_WRGISL : /* v4.7 New GIDL/GISL */
2577 mod->BSIM4wrgisl = value->rValue;
2578 mod->BSIM4wrgislGiven = TRUE;
2579 break;
2580 case BSIM4_MOD_WAIGC :
2581 mod->BSIM4waigc = value->rValue;
2582 mod->BSIM4waigcGiven = TRUE;
2583 break;
2584 case BSIM4_MOD_WBIGC :
2585 mod->BSIM4wbigc = value->rValue;
2586 mod->BSIM4wbigcGiven = TRUE;
2587 break;
2588 case BSIM4_MOD_WCIGC :
2589 mod->BSIM4wcigc = value->rValue;
2590 mod->BSIM4wcigcGiven = TRUE;
2591 break;
2592 case BSIM4_MOD_WAIGSD :
2593 mod->BSIM4waigsd = value->rValue;
2594 mod->BSIM4waigsdGiven = TRUE;
2595 break;
2596 case BSIM4_MOD_WBIGSD :
2597 mod->BSIM4wbigsd = value->rValue;
2598 mod->BSIM4wbigsdGiven = TRUE;
2599 break;
2600 case BSIM4_MOD_WCIGSD :
2601 mod->BSIM4wcigsd = value->rValue;
2602 mod->BSIM4wcigsdGiven = TRUE;
2603 break;
2604 case BSIM4_MOD_WAIGS :
2605 mod->BSIM4waigs = value->rValue;
2606 mod->BSIM4waigsGiven = TRUE;
2607 break;
2608 case BSIM4_MOD_WBIGS :
2609 mod->BSIM4wbigs = value->rValue;
2610 mod->BSIM4wbigsGiven = TRUE;
2611 break;
2612 case BSIM4_MOD_WCIGS :
2613 mod->BSIM4wcigs = value->rValue;
2614 mod->BSIM4wcigsGiven = TRUE;
2615 break;
2616 case BSIM4_MOD_WAIGD :
2617 mod->BSIM4waigd = value->rValue;
2618 mod->BSIM4waigdGiven = TRUE;
2619 break;
2620 case BSIM4_MOD_WBIGD :
2621 mod->BSIM4wbigd = value->rValue;
2622 mod->BSIM4wbigdGiven = TRUE;
2623 break;
2624 case BSIM4_MOD_WCIGD :
2625 mod->BSIM4wcigd = value->rValue;
2626 mod->BSIM4wcigdGiven = TRUE;
2627 break;
2628 case BSIM4_MOD_WAIGBACC :
2629 mod->BSIM4waigbacc = value->rValue;
2630 mod->BSIM4waigbaccGiven = TRUE;
2631 break;
2632 case BSIM4_MOD_WBIGBACC :
2633 mod->BSIM4wbigbacc = value->rValue;
2634 mod->BSIM4wbigbaccGiven = TRUE;
2635 break;
2636 case BSIM4_MOD_WCIGBACC :
2637 mod->BSIM4wcigbacc = value->rValue;
2638 mod->BSIM4wcigbaccGiven = TRUE;
2639 break;
2640 case BSIM4_MOD_WAIGBINV :
2641 mod->BSIM4waigbinv = value->rValue;
2642 mod->BSIM4waigbinvGiven = TRUE;
2643 break;
2644 case BSIM4_MOD_WBIGBINV :
2645 mod->BSIM4wbigbinv = value->rValue;
2646 mod->BSIM4wbigbinvGiven = TRUE;
2647 break;
2648 case BSIM4_MOD_WCIGBINV :
2649 mod->BSIM4wcigbinv = value->rValue;
2650 mod->BSIM4wcigbinvGiven = TRUE;
2651 break;
2652 case BSIM4_MOD_WNIGC :
2653 mod->BSIM4wnigc = value->rValue;
2654 mod->BSIM4wnigcGiven = TRUE;
2655 break;
2656 case BSIM4_MOD_WNIGBINV :
2657 mod->BSIM4wnigbinv = value->rValue;
2658 mod->BSIM4wnigbinvGiven = TRUE;
2659 break;
2660 case BSIM4_MOD_WNIGBACC :
2661 mod->BSIM4wnigbacc = value->rValue;
2662 mod->BSIM4wnigbaccGiven = TRUE;
2663 break;
2664 case BSIM4_MOD_WNTOX :
2665 mod->BSIM4wntox = value->rValue;
2666 mod->BSIM4wntoxGiven = TRUE;
2667 break;
2668 case BSIM4_MOD_WEIGBINV :
2669 mod->BSIM4weigbinv = value->rValue;
2670 mod->BSIM4weigbinvGiven = TRUE;
2671 break;
2672 case BSIM4_MOD_WPIGCD :
2673 mod->BSIM4wpigcd = value->rValue;
2674 mod->BSIM4wpigcdGiven = TRUE;
2675 break;
2676 case BSIM4_MOD_WPOXEDGE :
2677 mod->BSIM4wpoxedge = value->rValue;
2678 mod->BSIM4wpoxedgeGiven = TRUE;
2679 break;
2680 case BSIM4_MOD_WXRCRG1 :
2681 mod->BSIM4wxrcrg1 = value->rValue;
2682 mod->BSIM4wxrcrg1Given = TRUE;
2683 break;
2684 case BSIM4_MOD_WXRCRG2 :
2685 mod->BSIM4wxrcrg2 = value->rValue;
2686 mod->BSIM4wxrcrg2Given = TRUE;
2687 break;
2688 case BSIM4_MOD_WLAMBDA :
2689 mod->BSIM4wlambda = value->rValue;
2690 mod->BSIM4wlambdaGiven = TRUE;
2691 break;
2692 case BSIM4_MOD_WVTL :
2693 mod->BSIM4wvtl = value->rValue;
2694 mod->BSIM4wvtlGiven = TRUE;
2695 break;
2696 case BSIM4_MOD_WXN:
2697 mod->BSIM4wxn = value->rValue;
2698 mod->BSIM4wxnGiven = TRUE;
2699 break;
2700 case BSIM4_MOD_WVFBSDOFF:
2701 mod->BSIM4wvfbsdoff = value->rValue;
2702 mod->BSIM4wvfbsdoffGiven = TRUE;
2703 break;
2704 case BSIM4_MOD_WTVFBSDOFF:
2705 mod->BSIM4wtvfbsdoff = value->rValue;
2706 mod->BSIM4wtvfbsdoffGiven = TRUE;
2707 break;
2708 case BSIM4_MOD_WEU :
2709 mod->BSIM4weu = value->rValue;
2710 mod->BSIM4weuGiven = TRUE;
2711 break;
2712 case BSIM4_MOD_WUCS :
2713 mod->BSIM4wucs = value->rValue;
2714 mod->BSIM4wucsGiven = TRUE;
2715 break;
2716 case BSIM4_MOD_WVFB :
2717 mod->BSIM4wvfb = value->rValue;
2718 mod->BSIM4wvfbGiven = TRUE;
2719 break;
2720 case BSIM4_MOD_WCGSL :
2721 mod->BSIM4wcgsl = value->rValue;
2722 mod->BSIM4wcgslGiven = TRUE;
2723 break;
2724 case BSIM4_MOD_WCGDL :
2725 mod->BSIM4wcgdl = value->rValue;
2726 mod->BSIM4wcgdlGiven = TRUE;
2727 break;
2728 case BSIM4_MOD_WCKAPPAS :
2729 mod->BSIM4wckappas = value->rValue;
2730 mod->BSIM4wckappasGiven = TRUE;
2731 break;
2732 case BSIM4_MOD_WCKAPPAD :
2733 mod->BSIM4wckappad = value->rValue;
2734 mod->BSIM4wckappadGiven = TRUE;
2735 break;
2736 case BSIM4_MOD_WCF :
2737 mod->BSIM4wcf = value->rValue;
2738 mod->BSIM4wcfGiven = TRUE;
2739 break;
2740 case BSIM4_MOD_WCLC :
2741 mod->BSIM4wclc = value->rValue;
2742 mod->BSIM4wclcGiven = TRUE;
2743 break;
2744 case BSIM4_MOD_WCLE :
2745 mod->BSIM4wcle = value->rValue;
2746 mod->BSIM4wcleGiven = TRUE;
2747 break;
2748 case BSIM4_MOD_WVFBCV :
2749 mod->BSIM4wvfbcv = value->rValue;
2750 mod->BSIM4wvfbcvGiven = TRUE;
2751 break;
2752 case BSIM4_MOD_WACDE :
2753 mod->BSIM4wacde = value->rValue;
2754 mod->BSIM4wacdeGiven = TRUE;
2755 break;
2756 case BSIM4_MOD_WMOIN :
2757 mod->BSIM4wmoin = value->rValue;
2758 mod->BSIM4wmoinGiven = TRUE;
2759 break;
2760 case BSIM4_MOD_WNOFF :
2761 mod->BSIM4wnoff = value->rValue;
2762 mod->BSIM4wnoffGiven = TRUE;
2763 break;
2764 case BSIM4_MOD_WVOFFCV :
2765 mod->BSIM4wvoffcv = value->rValue;
2766 mod->BSIM4wvoffcvGiven = TRUE;
2767 break;
2768
2769 /* Cross-term dependence */
2770 case BSIM4_MOD_PCDSC :
2771 mod->BSIM4pcdsc = value->rValue;
2772 mod->BSIM4pcdscGiven = TRUE;
2773 break;
2774
2775
2776 case BSIM4_MOD_PCDSCB :
2777 mod->BSIM4pcdscb = value->rValue;
2778 mod->BSIM4pcdscbGiven = TRUE;
2779 break;
2780 case BSIM4_MOD_PCDSCD :
2781 mod->BSIM4pcdscd = value->rValue;
2782 mod->BSIM4pcdscdGiven = TRUE;
2783 break;
2784 case BSIM4_MOD_PCIT :
2785 mod->BSIM4pcit = value->rValue;
2786 mod->BSIM4pcitGiven = TRUE;
2787 break;
2788 case BSIM4_MOD_PNFACTOR :
2789 mod->BSIM4pnfactor = value->rValue;
2790 mod->BSIM4pnfactorGiven = TRUE;
2791 break;
2792 case BSIM4_MOD_PXJ:
2793 mod->BSIM4pxj = value->rValue;
2794 mod->BSIM4pxjGiven = TRUE;
2795 break;
2796 case BSIM4_MOD_PVSAT:
2797 mod->BSIM4pvsat = value->rValue;
2798 mod->BSIM4pvsatGiven = TRUE;
2799 break;
2800
2801
2802 case BSIM4_MOD_PA0:
2803 mod->BSIM4pa0 = value->rValue;
2804 mod->BSIM4pa0Given = TRUE;
2805 break;
2806 case BSIM4_MOD_PAGS:
2807 mod->BSIM4pags = value->rValue;
2808 mod->BSIM4pagsGiven = TRUE;
2809 break;
2810 case BSIM4_MOD_PA1:
2811 mod->BSIM4pa1 = value->rValue;
2812 mod->BSIM4pa1Given = TRUE;
2813 break;
2814 case BSIM4_MOD_PA2:
2815 mod->BSIM4pa2 = value->rValue;
2816 mod->BSIM4pa2Given = TRUE;
2817 break;
2818 case BSIM4_MOD_PAT:
2819 mod->BSIM4pat = value->rValue;
2820 mod->BSIM4patGiven = TRUE;
2821 break;
2822 case BSIM4_MOD_PKETA:
2823 mod->BSIM4pketa = value->rValue;
2824 mod->BSIM4pketaGiven = TRUE;
2825 break;
2826 case BSIM4_MOD_PNSUB:
2827 mod->BSIM4pnsub = value->rValue;
2828 mod->BSIM4pnsubGiven = TRUE;
2829 break;
2830 case BSIM4_MOD_PNDEP:
2831 mod->BSIM4pndep = value->rValue;
2832 mod->BSIM4pndepGiven = TRUE;
2833 if (mod->BSIM4pndep > 1.0e20)
2834 mod->BSIM4pndep *= 1.0e-6;
2835 break;
2836 case BSIM4_MOD_PNSD:
2837 mod->BSIM4pnsd = value->rValue;
2838 mod->BSIM4pnsdGiven = TRUE;
2839 if (mod->BSIM4pnsd > 1.0e23)
2840 mod->BSIM4pnsd *= 1.0e-6;
2841 break;
2842 case BSIM4_MOD_PNGATE:
2843 mod->BSIM4pngate = value->rValue;
2844 mod->BSIM4pngateGiven = TRUE;
2845 if (mod->BSIM4pngate > 1.0e23)
2846 mod->BSIM4pngate *= 1.0e-6;
2847 break;
2848 case BSIM4_MOD_PGAMMA1:
2849 mod->BSIM4pgamma1 = value->rValue;
2850 mod->BSIM4pgamma1Given = TRUE;
2851 break;
2852 case BSIM4_MOD_PGAMMA2:
2853 mod->BSIM4pgamma2 = value->rValue;
2854 mod->BSIM4pgamma2Given = TRUE;
2855 break;
2856 case BSIM4_MOD_PVBX:
2857 mod->BSIM4pvbx = value->rValue;
2858 mod->BSIM4pvbxGiven = TRUE;
2859 break;
2860 case BSIM4_MOD_PVBM:
2861 mod->BSIM4pvbm = value->rValue;
2862 mod->BSIM4pvbmGiven = TRUE;
2863 break;
2864 case BSIM4_MOD_PXT:
2865 mod->BSIM4pxt = value->rValue;
2866 mod->BSIM4pxtGiven = TRUE;
2867 break;
2868 case BSIM4_MOD_PK1:
2869 mod->BSIM4pk1 = value->rValue;
2870 mod->BSIM4pk1Given = TRUE;
2871 break;
2872 case BSIM4_MOD_PKT1:
2873 mod->BSIM4pkt1 = value->rValue;
2874 mod->BSIM4pkt1Given = TRUE;
2875 break;
2876 case BSIM4_MOD_PKT1L:
2877 mod->BSIM4pkt1l = value->rValue;
2878 mod->BSIM4pkt1lGiven = TRUE;
2879 break;
2880 case BSIM4_MOD_PKT2:
2881 mod->BSIM4pkt2 = value->rValue;
2882 mod->BSIM4pkt2Given = TRUE;
2883 break;
2884 case BSIM4_MOD_PK2:
2885 mod->BSIM4pk2 = value->rValue;
2886 mod->BSIM4pk2Given = TRUE;
2887 break;
2888 case BSIM4_MOD_PK3:
2889 mod->BSIM4pk3 = value->rValue;
2890 mod->BSIM4pk3Given = TRUE;
2891 break;
2892 case BSIM4_MOD_PK3B:
2893 mod->BSIM4pk3b = value->rValue;
2894 mod->BSIM4pk3bGiven = TRUE;
2895 break;
2896 case BSIM4_MOD_PLPE0:
2897 mod->BSIM4plpe0 = value->rValue;
2898 mod->BSIM4plpe0Given = TRUE;
2899 break;
2900 case BSIM4_MOD_PLPEB:
2901 mod->BSIM4plpeb = value->rValue;
2902 mod->BSIM4plpebGiven = TRUE;
2903 break;
2904 case BSIM4_MOD_PDVTP0:
2905 mod->BSIM4pdvtp0 = value->rValue;
2906 mod->BSIM4pdvtp0Given = TRUE;
2907 break;
2908 case BSIM4_MOD_PDVTP1:
2909 mod->BSIM4pdvtp1 = value->rValue;
2910 mod->BSIM4pdvtp1Given = TRUE;
2911 break;
2912 case BSIM4_MOD_PDVTP2: /* New DIBL/Rout */
2913 mod->BSIM4pdvtp2 = value->rValue;
2914 mod->BSIM4pdvtp2Given = TRUE;
2915 break;
2916 case BSIM4_MOD_PDVTP3:
2917 mod->BSIM4pdvtp3 = value->rValue;
2918 mod->BSIM4pdvtp3Given = TRUE;
2919 break;
2920 case BSIM4_MOD_PDVTP4:
2921 mod->BSIM4pdvtp4 = value->rValue;
2922 mod->BSIM4pdvtp4Given = TRUE;
2923 break;
2924 case BSIM4_MOD_PDVTP5:
2925 mod->BSIM4pdvtp5 = value->rValue;
2926 mod->BSIM4pdvtp5Given = TRUE;
2927 break;
2928 case BSIM4_MOD_PW0:
2929 mod->BSIM4pw0 = value->rValue;
2930 mod->BSIM4pw0Given = TRUE;
2931 break;
2932 case BSIM4_MOD_PDVT0:
2933 mod->BSIM4pdvt0 = value->rValue;
2934 mod->BSIM4pdvt0Given = TRUE;
2935 break;
2936 case BSIM4_MOD_PDVT1:
2937 mod->BSIM4pdvt1 = value->rValue;
2938 mod->BSIM4pdvt1Given = TRUE;
2939 break;
2940 case BSIM4_MOD_PDVT2:
2941 mod->BSIM4pdvt2 = value->rValue;
2942 mod->BSIM4pdvt2Given = TRUE;
2943 break;
2944 case BSIM4_MOD_PDVT0W:
2945 mod->BSIM4pdvt0w = value->rValue;
2946 mod->BSIM4pdvt0wGiven = TRUE;
2947 break;
2948 case BSIM4_MOD_PDVT1W:
2949 mod->BSIM4pdvt1w = value->rValue;
2950 mod->BSIM4pdvt1wGiven = TRUE;
2951 break;
2952 case BSIM4_MOD_PDVT2W:
2953 mod->BSIM4pdvt2w = value->rValue;
2954 mod->BSIM4pdvt2wGiven = TRUE;
2955 break;
2956 case BSIM4_MOD_PDROUT:
2957 mod->BSIM4pdrout = value->rValue;
2958 mod->BSIM4pdroutGiven = TRUE;
2959 break;
2960 case BSIM4_MOD_PDSUB:
2961 mod->BSIM4pdsub = value->rValue;
2962 mod->BSIM4pdsubGiven = TRUE;
2963 break;
2964 case BSIM4_MOD_PVTH0:
2965 mod->BSIM4pvth0 = value->rValue;
2966 mod->BSIM4pvth0Given = TRUE;
2967 break;
2968 case BSIM4_MOD_PUA:
2969 mod->BSIM4pua = value->rValue;
2970 mod->BSIM4puaGiven = TRUE;
2971 break;
2972 case BSIM4_MOD_PUA1:
2973 mod->BSIM4pua1 = value->rValue;
2974 mod->BSIM4pua1Given = TRUE;
2975 break;
2976 case BSIM4_MOD_PUB:
2977 mod->BSIM4pub = value->rValue;
2978 mod->BSIM4pubGiven = TRUE;
2979 break;
2980 case BSIM4_MOD_PUB1:
2981 mod->BSIM4pub1 = value->rValue;
2982 mod->BSIM4pub1Given = TRUE;
2983 break;
2984 case BSIM4_MOD_PUC:
2985 mod->BSIM4puc = value->rValue;
2986 mod->BSIM4pucGiven = TRUE;
2987 break;
2988 case BSIM4_MOD_PUC1:
2989 mod->BSIM4puc1 = value->rValue;
2990 mod->BSIM4puc1Given = TRUE;
2991 break;
2992 case BSIM4_MOD_PU0 :
2993 mod->BSIM4pu0 = value->rValue;
2994 mod->BSIM4pu0Given = TRUE;
2995 break;
2996 case BSIM4_MOD_PUTE :
2997 mod->BSIM4pute = value->rValue;
2998 mod->BSIM4puteGiven = TRUE;
2999 break;
3000 case BSIM4_MOD_PUCSTE :
3001 mod->BSIM4pucste = value->rValue;
3002 mod->BSIM4pucsteGiven = TRUE;
3003 break;
3004 case BSIM4_MOD_PVOFF:
3005 mod->BSIM4pvoff = value->rValue;
3006 mod->BSIM4pvoffGiven = TRUE;
3007 break;
3008 case BSIM4_MOD_PTVOFF:
3009 mod->BSIM4ptvoff = value->rValue;
3010 mod->BSIM4ptvoffGiven = TRUE;
3011 break;
3012 case BSIM4_MOD_PTNFACTOR: /* v4.7 temp dep of leakage current */
3013 mod->BSIM4ptnfactor = value->rValue;
3014 mod->BSIM4ptnfactorGiven = TRUE;
3015 break;
3016 case BSIM4_MOD_PTETA0: /* v4.7 temp dep of leakage current */
3017 mod->BSIM4pteta0 = value->rValue;
3018 mod->BSIM4pteta0Given = TRUE;
3019 break;
3020 case BSIM4_MOD_PTVOFFCV: /* v4.7 temp dep of leakage current */
3021 mod->BSIM4ptvoffcv = value->rValue;
3022 mod->BSIM4ptvoffcvGiven = TRUE;
3023 break;
3024 case BSIM4_MOD_PMINV:
3025 mod->BSIM4pminv = value->rValue;
3026 mod->BSIM4pminvGiven = TRUE;
3027 break;
3028 case BSIM4_MOD_PMINVCV:
3029 mod->BSIM4pminvcv = value->rValue;
3030 mod->BSIM4pminvcvGiven = TRUE;
3031 break;
3032 case BSIM4_MOD_PFPROUT:
3033 mod->BSIM4pfprout = value->rValue;
3034 mod->BSIM4pfproutGiven = TRUE;
3035 break;
3036 case BSIM4_MOD_PPDITS:
3037 mod->BSIM4ppdits = value->rValue;
3038 mod->BSIM4ppditsGiven = TRUE;
3039 break;
3040 case BSIM4_MOD_PPDITSD:
3041 mod->BSIM4ppditsd = value->rValue;
3042 mod->BSIM4ppditsdGiven = TRUE;
3043 break;
3044 case BSIM4_MOD_PDELTA :
3045 mod->BSIM4pdelta = value->rValue;
3046 mod->BSIM4pdeltaGiven = TRUE;
3047 break;
3048 case BSIM4_MOD_PRDSW:
3049 mod->BSIM4prdsw = value->rValue;
3050 mod->BSIM4prdswGiven = TRUE;
3051 break;
3052 case BSIM4_MOD_PRDW:
3053 mod->BSIM4prdw = value->rValue;
3054 mod->BSIM4prdwGiven = TRUE;
3055 break;
3056 case BSIM4_MOD_PRSW:
3057 mod->BSIM4prsw = value->rValue;
3058 mod->BSIM4prswGiven = TRUE;
3059 break;
3060 case BSIM4_MOD_PPRWB:
3061 mod->BSIM4pprwb = value->rValue;
3062 mod->BSIM4pprwbGiven = TRUE;
3063 break;
3064 case BSIM4_MOD_PPRWG:
3065 mod->BSIM4pprwg = value->rValue;
3066 mod->BSIM4pprwgGiven = TRUE;
3067 break;
3068 case BSIM4_MOD_PPRT:
3069 mod->BSIM4pprt = value->rValue;
3070 mod->BSIM4pprtGiven = TRUE;
3071 break;
3072 case BSIM4_MOD_PETA0:
3073 mod->BSIM4peta0 = value->rValue;
3074 mod->BSIM4peta0Given = TRUE;
3075 break;
3076 case BSIM4_MOD_PETAB:
3077 mod->BSIM4petab = value->rValue;
3078 mod->BSIM4petabGiven = TRUE;
3079 break;
3080 case BSIM4_MOD_PPCLM:
3081 mod->BSIM4ppclm = value->rValue;
3082 mod->BSIM4ppclmGiven = TRUE;
3083 break;
3084 case BSIM4_MOD_PPDIBL1:
3085 mod->BSIM4ppdibl1 = value->rValue;
3086 mod->BSIM4ppdibl1Given = TRUE;
3087 break;
3088 case BSIM4_MOD_PPDIBL2:
3089 mod->BSIM4ppdibl2 = value->rValue;
3090 mod->BSIM4ppdibl2Given = TRUE;
3091 break;
3092 case BSIM4_MOD_PPDIBLB:
3093 mod->BSIM4ppdiblb = value->rValue;
3094 mod->BSIM4ppdiblbGiven = TRUE;
3095 break;
3096 case BSIM4_MOD_PPSCBE1:
3097 mod->BSIM4ppscbe1 = value->rValue;
3098 mod->BSIM4ppscbe1Given = TRUE;
3099 break;
3100 case BSIM4_MOD_PPSCBE2:
3101 mod->BSIM4ppscbe2 = value->rValue;
3102 mod->BSIM4ppscbe2Given = TRUE;
3103 break;
3104 case BSIM4_MOD_PPVAG:
3105 mod->BSIM4ppvag = value->rValue;
3106 mod->BSIM4ppvagGiven = TRUE;
3107 break;
3108 case BSIM4_MOD_PWR :
3109 mod->BSIM4pwr = value->rValue;
3110 mod->BSIM4pwrGiven = TRUE;
3111 break;
3112 case BSIM4_MOD_PDWG :
3113 mod->BSIM4pdwg = value->rValue;
3114 mod->BSIM4pdwgGiven = TRUE;
3115 break;
3116 case BSIM4_MOD_PDWB :
3117 mod->BSIM4pdwb = value->rValue;
3118 mod->BSIM4pdwbGiven = TRUE;
3119 break;
3120 case BSIM4_MOD_PB0 :
3121 mod->BSIM4pb0 = value->rValue;
3122 mod->BSIM4pb0Given = TRUE;
3123 break;
3124 case BSIM4_MOD_PB1 :
3125 mod->BSIM4pb1 = value->rValue;
3126 mod->BSIM4pb1Given = TRUE;
3127 break;
3128 case BSIM4_MOD_PALPHA0 :
3129 mod->BSIM4palpha0 = value->rValue;
3130 mod->BSIM4palpha0Given = TRUE;
3131 break;
3132 case BSIM4_MOD_PALPHA1 :
3133 mod->BSIM4palpha1 = value->rValue;
3134 mod->BSIM4palpha1Given = TRUE;
3135 break;
3136 case BSIM4_MOD_PBETA0 :
3137 mod->BSIM4pbeta0 = value->rValue;
3138 mod->BSIM4pbeta0Given = TRUE;
3139 break;
3140 case BSIM4_MOD_PPHIN :
3141 mod->BSIM4pphin = value->rValue;
3142 mod->BSIM4pphinGiven = TRUE;
3143 break;
3144 case BSIM4_MOD_PAGIDL :
3145 mod->BSIM4pagidl = value->rValue;
3146 mod->BSIM4pagidlGiven = TRUE;
3147 break;
3148 case BSIM4_MOD_PBGIDL :
3149 mod->BSIM4pbgidl = value->rValue;
3150 mod->BSIM4pbgidlGiven = TRUE;
3151 break;
3152 case BSIM4_MOD_PCGIDL :
3153 mod->BSIM4pcgidl = value->rValue;
3154 mod->BSIM4pcgidlGiven = TRUE;
3155 break;
3156 case BSIM4_MOD_PEGIDL :
3157 mod->BSIM4pegidl = value->rValue;
3158 mod->BSIM4pegidlGiven = TRUE;
3159 break;
3160 case BSIM4_MOD_PFGIDL : /* v4.7 New GIDL/GISL */
3161 mod->BSIM4pfgidl = value->rValue;
3162 mod->BSIM4pfgidlGiven = TRUE;
3163 break;
3164 case BSIM4_MOD_PKGIDL : /* v4.7 New GIDL/GISL */
3165 mod->BSIM4pkgidl = value->rValue;
3166 mod->BSIM4pkgidlGiven = TRUE;
3167 break;
3168 case BSIM4_MOD_PRGIDL : /* v4.7 New GIDL/GISL */
3169 mod->BSIM4prgidl = value->rValue;
3170 mod->BSIM4prgidlGiven = TRUE;
3171 break;
3172 case BSIM4_MOD_PAGISL :
3173 mod->BSIM4pagisl = value->rValue;
3174 mod->BSIM4pagislGiven = TRUE;
3175 break;
3176 case BSIM4_MOD_PBGISL :
3177 mod->BSIM4pbgisl = value->rValue;
3178 mod->BSIM4pbgislGiven = TRUE;
3179 break;
3180 case BSIM4_MOD_PCGISL :
3181 mod->BSIM4pcgisl = value->rValue;
3182 mod->BSIM4pcgislGiven = TRUE;
3183 break;
3184 case BSIM4_MOD_PEGISL :
3185 mod->BSIM4pegisl = value->rValue;
3186 mod->BSIM4pegislGiven = TRUE;
3187 break;
3188 case BSIM4_MOD_PFGISL : /* v4.7 New GIDL/GISL */
3189 mod->BSIM4pfgisl = value->rValue;
3190 mod->BSIM4pfgislGiven = TRUE;
3191 break;
3192 case BSIM4_MOD_PKGISL : /* v4.7 New GIDL/GISL */
3193 mod->BSIM4pkgisl = value->rValue;
3194 mod->BSIM4pkgislGiven = TRUE;
3195 break;
3196 case BSIM4_MOD_PRGISL : /* v4.7 New GIDL/GISL */
3197 mod->BSIM4prgisl = value->rValue;
3198 mod->BSIM4prgislGiven = TRUE;
3199 break;
3200 case BSIM4_MOD_PAIGC :
3201 mod->BSIM4paigc = value->rValue;
3202 mod->BSIM4paigcGiven = TRUE;
3203 break;
3204 case BSIM4_MOD_PBIGC :
3205 mod->BSIM4pbigc = value->rValue;
3206 mod->BSIM4pbigcGiven = TRUE;
3207 break;
3208 case BSIM4_MOD_PCIGC :
3209 mod->BSIM4pcigc = value->rValue;
3210 mod->BSIM4pcigcGiven = TRUE;
3211 break;
3212 case BSIM4_MOD_PAIGSD :
3213 mod->BSIM4paigsd = value->rValue;
3214 mod->BSIM4paigsdGiven = TRUE;
3215 break;
3216 case BSIM4_MOD_PBIGSD :
3217 mod->BSIM4pbigsd = value->rValue;
3218 mod->BSIM4pbigsdGiven = TRUE;
3219 break;
3220 case BSIM4_MOD_PCIGSD :
3221 mod->BSIM4pcigsd = value->rValue;
3222 mod->BSIM4pcigsdGiven = TRUE;
3223 break;
3224 case BSIM4_MOD_PAIGS :
3225 mod->BSIM4paigs = value->rValue;
3226 mod->BSIM4paigsGiven = TRUE;
3227 break;
3228 case BSIM4_MOD_PBIGS :
3229 mod->BSIM4pbigs = value->rValue;
3230 mod->BSIM4pbigsGiven = TRUE;
3231 break;
3232 case BSIM4_MOD_PCIGS :
3233 mod->BSIM4pcigs = value->rValue;
3234 mod->BSIM4pcigsGiven = TRUE;
3235 break;
3236 case BSIM4_MOD_PAIGD :
3237 mod->BSIM4paigd = value->rValue;
3238 mod->BSIM4paigdGiven = TRUE;
3239 break;
3240 case BSIM4_MOD_PBIGD :
3241 mod->BSIM4pbigd = value->rValue;
3242 mod->BSIM4pbigdGiven = TRUE;
3243 break;
3244 case BSIM4_MOD_PCIGD :
3245 mod->BSIM4pcigd = value->rValue;
3246 mod->BSIM4pcigdGiven = TRUE;
3247 break;
3248 case BSIM4_MOD_PAIGBACC :
3249 mod->BSIM4paigbacc = value->rValue;
3250 mod->BSIM4paigbaccGiven = TRUE;
3251 break;
3252 case BSIM4_MOD_PBIGBACC :
3253 mod->BSIM4pbigbacc = value->rValue;
3254 mod->BSIM4pbigbaccGiven = TRUE;
3255 break;
3256 case BSIM4_MOD_PCIGBACC :
3257 mod->BSIM4pcigbacc = value->rValue;
3258 mod->BSIM4pcigbaccGiven = TRUE;
3259 break;
3260 case BSIM4_MOD_PAIGBINV :
3261 mod->BSIM4paigbinv = value->rValue;
3262 mod->BSIM4paigbinvGiven = TRUE;
3263 break;
3264 case BSIM4_MOD_PBIGBINV :
3265 mod->BSIM4pbigbinv = value->rValue;
3266 mod->BSIM4pbigbinvGiven = TRUE;
3267 break;
3268 case BSIM4_MOD_PCIGBINV :
3269 mod->BSIM4pcigbinv = value->rValue;
3270 mod->BSIM4pcigbinvGiven = TRUE;
3271 break;
3272 case BSIM4_MOD_PNIGC :
3273 mod->BSIM4pnigc = value->rValue;
3274 mod->BSIM4pnigcGiven = TRUE;
3275 break;
3276 case BSIM4_MOD_PNIGBINV :
3277 mod->BSIM4pnigbinv = value->rValue;
3278 mod->BSIM4pnigbinvGiven = TRUE;
3279 break;
3280 case BSIM4_MOD_PNIGBACC :
3281 mod->BSIM4pnigbacc = value->rValue;
3282 mod->BSIM4pnigbaccGiven = TRUE;
3283 break;
3284 case BSIM4_MOD_PNTOX :
3285 mod->BSIM4pntox = value->rValue;
3286 mod->BSIM4pntoxGiven = TRUE;
3287 break;
3288 case BSIM4_MOD_PEIGBINV :
3289 mod->BSIM4peigbinv = value->rValue;
3290 mod->BSIM4peigbinvGiven = TRUE;
3291 break;
3292 case BSIM4_MOD_PPIGCD :
3293 mod->BSIM4ppigcd = value->rValue;
3294 mod->BSIM4ppigcdGiven = TRUE;
3295 break;
3296 case BSIM4_MOD_PPOXEDGE :
3297 mod->BSIM4ppoxedge = value->rValue;
3298 mod->BSIM4ppoxedgeGiven = TRUE;
3299 break;
3300 case BSIM4_MOD_PXRCRG1 :
3301 mod->BSIM4pxrcrg1 = value->rValue;
3302 mod->BSIM4pxrcrg1Given = TRUE;
3303 break;
3304 case BSIM4_MOD_PXRCRG2 :
3305 mod->BSIM4pxrcrg2 = value->rValue;
3306 mod->BSIM4pxrcrg2Given = TRUE;
3307 break;
3308 case BSIM4_MOD_PLAMBDA :
3309 mod->BSIM4plambda = value->rValue;
3310 mod->BSIM4plambdaGiven = TRUE;
3311 break;
3312 case BSIM4_MOD_PVTL :
3313 mod->BSIM4pvtl = value->rValue;
3314 mod->BSIM4pvtlGiven = TRUE;
3315 break;
3316 case BSIM4_MOD_PXN:
3317 mod->BSIM4pxn = value->rValue;
3318 mod->BSIM4pxnGiven = TRUE;
3319 break;
3320 case BSIM4_MOD_PVFBSDOFF:
3321 mod->BSIM4pvfbsdoff = value->rValue;
3322 mod->BSIM4pvfbsdoffGiven = TRUE;
3323 break;
3324 case BSIM4_MOD_PTVFBSDOFF:
3325 mod->BSIM4ptvfbsdoff = value->rValue;
3326 mod->BSIM4ptvfbsdoffGiven = TRUE;
3327 break;
3328 case BSIM4_MOD_PEU :
3329 mod->BSIM4peu = value->rValue;
3330 mod->BSIM4peuGiven = TRUE;
3331 break;
3332 case BSIM4_MOD_PUCS :
3333 mod->BSIM4pucs = value->rValue;
3334 mod->BSIM4pucsGiven = TRUE;
3335 break;
3336 case BSIM4_MOD_PVFB :
3337 mod->BSIM4pvfb = value->rValue;
3338 mod->BSIM4pvfbGiven = TRUE;
3339 break;
3340 case BSIM4_MOD_PCGSL :
3341 mod->BSIM4pcgsl = value->rValue;
3342 mod->BSIM4pcgslGiven = TRUE;
3343 break;
3344 case BSIM4_MOD_PCGDL :
3345 mod->BSIM4pcgdl = value->rValue;
3346 mod->BSIM4pcgdlGiven = TRUE;
3347 break;
3348 case BSIM4_MOD_PCKAPPAS :
3349 mod->BSIM4pckappas = value->rValue;
3350 mod->BSIM4pckappasGiven = TRUE;
3351 break;
3352 case BSIM4_MOD_PCKAPPAD :
3353 mod->BSIM4pckappad = value->rValue;
3354 mod->BSIM4pckappadGiven = TRUE;
3355 break;
3356 case BSIM4_MOD_PCF :
3357 mod->BSIM4pcf = value->rValue;
3358 mod->BSIM4pcfGiven = TRUE;
3359 break;
3360 case BSIM4_MOD_PCLC :
3361 mod->BSIM4pclc = value->rValue;
3362 mod->BSIM4pclcGiven = TRUE;
3363 break;
3364 case BSIM4_MOD_PCLE :
3365 mod->BSIM4pcle = value->rValue;
3366 mod->BSIM4pcleGiven = TRUE;
3367 break;
3368 case BSIM4_MOD_PVFBCV :
3369 mod->BSIM4pvfbcv = value->rValue;
3370 mod->BSIM4pvfbcvGiven = TRUE;
3371 break;
3372 case BSIM4_MOD_PACDE :
3373 mod->BSIM4pacde = value->rValue;
3374 mod->BSIM4pacdeGiven = TRUE;
3375 break;
3376 case BSIM4_MOD_PMOIN :
3377 mod->BSIM4pmoin = value->rValue;
3378 mod->BSIM4pmoinGiven = TRUE;
3379 break;
3380 case BSIM4_MOD_PNOFF :
3381 mod->BSIM4pnoff = value->rValue;
3382 mod->BSIM4pnoffGiven = TRUE;
3383 break;
3384 case BSIM4_MOD_PVOFFCV :
3385 mod->BSIM4pvoffcv = value->rValue;
3386 mod->BSIM4pvoffcvGiven = TRUE;
3387 break;
3388
3389 case BSIM4_MOD_TNOM :
3390 mod->BSIM4tnom = value->rValue + CONSTCtoK;
3391 mod->BSIM4tnomGiven = TRUE;
3392 break;
3393 case BSIM4_MOD_CGSO :
3394 mod->BSIM4cgso = value->rValue;
3395 mod->BSIM4cgsoGiven = TRUE;
3396 break;
3397 case BSIM4_MOD_CGDO :
3398 mod->BSIM4cgdo = value->rValue;
3399 mod->BSIM4cgdoGiven = TRUE;
3400 break;
3401 case BSIM4_MOD_CGBO :
3402 mod->BSIM4cgbo = value->rValue;
3403 mod->BSIM4cgboGiven = TRUE;
3404 break;
3405 case BSIM4_MOD_XPART :
3406 mod->BSIM4xpart = value->rValue;
3407 mod->BSIM4xpartGiven = TRUE;
3408 break;
3409 case BSIM4_MOD_RSH :
3410 mod->BSIM4sheetResistance = value->rValue;
3411 mod->BSIM4sheetResistanceGiven = TRUE;
3412 break;
3413 case BSIM4_MOD_JSS :
3414 mod->BSIM4SjctSatCurDensity = value->rValue;
3415 mod->BSIM4SjctSatCurDensityGiven = TRUE;
3416 break;
3417 case BSIM4_MOD_JSWS :
3418 mod->BSIM4SjctSidewallSatCurDensity = value->rValue;
3419 mod->BSIM4SjctSidewallSatCurDensityGiven = TRUE;
3420 break;
3421 case BSIM4_MOD_JSWGS :
3422 mod->BSIM4SjctGateSidewallSatCurDensity = value->rValue;
3423 mod->BSIM4SjctGateSidewallSatCurDensityGiven = TRUE;
3424 break;
3425 case BSIM4_MOD_PBS :
3426 mod->BSIM4SbulkJctPotential = value->rValue;
3427 mod->BSIM4SbulkJctPotentialGiven = TRUE;
3428 break;
3429 case BSIM4_MOD_MJS :
3430 mod->BSIM4SbulkJctBotGradingCoeff = value->rValue;
3431 mod->BSIM4SbulkJctBotGradingCoeffGiven = TRUE;
3432 break;
3433 case BSIM4_MOD_PBSWS :
3434 mod->BSIM4SsidewallJctPotential = value->rValue;
3435 mod->BSIM4SsidewallJctPotentialGiven = TRUE;
3436 break;
3437 case BSIM4_MOD_MJSWS :
3438 mod->BSIM4SbulkJctSideGradingCoeff = value->rValue;
3439 mod->BSIM4SbulkJctSideGradingCoeffGiven = TRUE;
3440 break;
3441 case BSIM4_MOD_CJS :
3442 mod->BSIM4SunitAreaJctCap = value->rValue;
3443 mod->BSIM4SunitAreaJctCapGiven = TRUE;
3444 break;
3445 case BSIM4_MOD_CJSWS :
3446 mod->BSIM4SunitLengthSidewallJctCap = value->rValue;
3447 mod->BSIM4SunitLengthSidewallJctCapGiven = TRUE;
3448 break;
3449 case BSIM4_MOD_NJS :
3450 mod->BSIM4SjctEmissionCoeff = value->rValue;
3451 mod->BSIM4SjctEmissionCoeffGiven = TRUE;
3452 break;
3453 case BSIM4_MOD_PBSWGS :
3454 mod->BSIM4SGatesidewallJctPotential = value->rValue;
3455 mod->BSIM4SGatesidewallJctPotentialGiven = TRUE;
3456 break;
3457 case BSIM4_MOD_MJSWGS :
3458 mod->BSIM4SbulkJctGateSideGradingCoeff = value->rValue;
3459 mod->BSIM4SbulkJctGateSideGradingCoeffGiven = TRUE;
3460 break;
3461 case BSIM4_MOD_CJSWGS :
3462 mod->BSIM4SunitLengthGateSidewallJctCap = value->rValue;
3463 mod->BSIM4SunitLengthGateSidewallJctCapGiven = TRUE;
3464 break;
3465 case BSIM4_MOD_XTIS :
3466 mod->BSIM4SjctTempExponent = value->rValue;
3467 mod->BSIM4SjctTempExponentGiven = TRUE;
3468 break;
3469 case BSIM4_MOD_JSD :
3470 mod->BSIM4DjctSatCurDensity = value->rValue;
3471 mod->BSIM4DjctSatCurDensityGiven = TRUE;
3472 break;
3473 case BSIM4_MOD_JSWD :
3474 mod->BSIM4DjctSidewallSatCurDensity = value->rValue;
3475 mod->BSIM4DjctSidewallSatCurDensityGiven = TRUE;
3476 break;
3477 case BSIM4_MOD_JSWGD :
3478 mod->BSIM4DjctGateSidewallSatCurDensity = value->rValue;
3479 mod->BSIM4DjctGateSidewallSatCurDensityGiven = TRUE;
3480 break;
3481 case BSIM4_MOD_PBD :
3482 mod->BSIM4DbulkJctPotential = value->rValue;
3483 mod->BSIM4DbulkJctPotentialGiven = TRUE;
3484 break;
3485 case BSIM4_MOD_MJD :
3486 mod->BSIM4DbulkJctBotGradingCoeff = value->rValue;
3487 mod->BSIM4DbulkJctBotGradingCoeffGiven = TRUE;
3488 break;
3489 case BSIM4_MOD_PBSWD :
3490 mod->BSIM4DsidewallJctPotential = value->rValue;
3491 mod->BSIM4DsidewallJctPotentialGiven = TRUE;
3492 break;
3493 case BSIM4_MOD_MJSWD :
3494 mod->BSIM4DbulkJctSideGradingCoeff = value->rValue;
3495 mod->BSIM4DbulkJctSideGradingCoeffGiven = TRUE;
3496 break;
3497 case BSIM4_MOD_CJD :
3498 mod->BSIM4DunitAreaJctCap = value->rValue;
3499 mod->BSIM4DunitAreaJctCapGiven = TRUE;
3500 break;
3501 case BSIM4_MOD_CJSWD :
3502 mod->BSIM4DunitLengthSidewallJctCap = value->rValue;
3503 mod->BSIM4DunitLengthSidewallJctCapGiven = TRUE;
3504 break;
3505 case BSIM4_MOD_NJD :
3506 mod->BSIM4DjctEmissionCoeff = value->rValue;
3507 mod->BSIM4DjctEmissionCoeffGiven = TRUE;
3508 break;
3509 case BSIM4_MOD_PBSWGD :
3510 mod->BSIM4DGatesidewallJctPotential = value->rValue;
3511 mod->BSIM4DGatesidewallJctPotentialGiven = TRUE;
3512 break;
3513 case BSIM4_MOD_MJSWGD :
3514 mod->BSIM4DbulkJctGateSideGradingCoeff = value->rValue;
3515 mod->BSIM4DbulkJctGateSideGradingCoeffGiven = TRUE;
3516 break;
3517 case BSIM4_MOD_CJSWGD :
3518 mod->BSIM4DunitLengthGateSidewallJctCap = value->rValue;
3519 mod->BSIM4DunitLengthGateSidewallJctCapGiven = TRUE;
3520 break;
3521 case BSIM4_MOD_XTID :
3522 mod->BSIM4DjctTempExponent = value->rValue;
3523 mod->BSIM4DjctTempExponentGiven = TRUE;
3524 break;
3525 case BSIM4_MOD_LINT :
3526 mod->BSIM4Lint = value->rValue;
3527 mod->BSIM4LintGiven = TRUE;
3528 break;
3529 case BSIM4_MOD_LL :
3530 mod->BSIM4Ll = value->rValue;
3531 mod->BSIM4LlGiven = TRUE;
3532 break;
3533 case BSIM4_MOD_LLC :
3534 mod->BSIM4Llc = value->rValue;
3535 mod->BSIM4LlcGiven = TRUE;
3536 break;
3537 case BSIM4_MOD_LLN :
3538 mod->BSIM4Lln = value->rValue;
3539 mod->BSIM4LlnGiven = TRUE;
3540 break;
3541 case BSIM4_MOD_LW :
3542 mod->BSIM4Lw = value->rValue;
3543 mod->BSIM4LwGiven = TRUE;
3544 break;
3545 case BSIM4_MOD_LWC :
3546 mod->BSIM4Lwc = value->rValue;
3547 mod->BSIM4LwcGiven = TRUE;
3548 break;
3549 case BSIM4_MOD_LWN :
3550 mod->BSIM4Lwn = value->rValue;
3551 mod->BSIM4LwnGiven = TRUE;
3552 break;
3553 case BSIM4_MOD_LWL :
3554 mod->BSIM4Lwl = value->rValue;
3555 mod->BSIM4LwlGiven = TRUE;
3556 break;
3557 case BSIM4_MOD_LWLC :
3558 mod->BSIM4Lwlc = value->rValue;
3559 mod->BSIM4LwlcGiven = TRUE;
3560 break;
3561 case BSIM4_MOD_LMIN :
3562 mod->BSIM4Lmin = value->rValue;
3563 mod->BSIM4LminGiven = TRUE;
3564 break;
3565 case BSIM4_MOD_LMAX :
3566 mod->BSIM4Lmax = value->rValue;
3567 mod->BSIM4LmaxGiven = TRUE;
3568 break;
3569 case BSIM4_MOD_WINT :
3570 mod->BSIM4Wint = value->rValue;
3571 mod->BSIM4WintGiven = TRUE;
3572 break;
3573 case BSIM4_MOD_WL :
3574 mod->BSIM4Wl = value->rValue;
3575 mod->BSIM4WlGiven = TRUE;
3576 break;
3577 case BSIM4_MOD_WLC :
3578 mod->BSIM4Wlc = value->rValue;
3579 mod->BSIM4WlcGiven = TRUE;
3580 break;
3581 case BSIM4_MOD_WLN :
3582 mod->BSIM4Wln = value->rValue;
3583 mod->BSIM4WlnGiven = TRUE;
3584 break;
3585 case BSIM4_MOD_WW :
3586 mod->BSIM4Ww = value->rValue;
3587 mod->BSIM4WwGiven = TRUE;
3588 break;
3589 case BSIM4_MOD_WWC :
3590 mod->BSIM4Wwc = value->rValue;
3591 mod->BSIM4WwcGiven = TRUE;
3592 break;
3593 case BSIM4_MOD_WWN :
3594 mod->BSIM4Wwn = value->rValue;
3595 mod->BSIM4WwnGiven = TRUE;
3596 break;
3597 case BSIM4_MOD_WWL :
3598 mod->BSIM4Wwl = value->rValue;
3599 mod->BSIM4WwlGiven = TRUE;
3600 break;
3601 case BSIM4_MOD_WWLC :
3602 mod->BSIM4Wwlc = value->rValue;
3603 mod->BSIM4WwlcGiven = TRUE;
3604 break;
3605 case BSIM4_MOD_WMIN :
3606 mod->BSIM4Wmin = value->rValue;
3607 mod->BSIM4WminGiven = TRUE;
3608 break;
3609 case BSIM4_MOD_WMAX :
3610 mod->BSIM4Wmax = value->rValue;
3611 mod->BSIM4WmaxGiven = TRUE;
3612 break;
3613
3614 case BSIM4_MOD_NOIA :
3615 mod->BSIM4oxideTrapDensityA = value->rValue;
3616 mod->BSIM4oxideTrapDensityAGiven = TRUE;
3617 break;
3618 case BSIM4_MOD_NOIB :
3619 mod->BSIM4oxideTrapDensityB = value->rValue;
3620 mod->BSIM4oxideTrapDensityBGiven = TRUE;
3621 break;
3622 case BSIM4_MOD_NOIC :
3623 mod->BSIM4oxideTrapDensityC = value->rValue;
3624 mod->BSIM4oxideTrapDensityCGiven = TRUE;
3625 break;
3626 case BSIM4_MOD_EM :
3627 mod->BSIM4em = value->rValue;
3628 mod->BSIM4emGiven = TRUE;
3629 break;
3630 case BSIM4_MOD_EF :
3631 mod->BSIM4ef = value->rValue;
3632 mod->BSIM4efGiven = TRUE;
3633 break;
3634 case BSIM4_MOD_AF :
3635 mod->BSIM4af = value->rValue;
3636 mod->BSIM4afGiven = TRUE;
3637 break;
3638 case BSIM4_MOD_KF :
3639 mod->BSIM4kf = value->rValue;
3640 mod->BSIM4kfGiven = TRUE;
3641 break;
3642
3643 case BSIM4_MOD_VGS_MAX:
3644 mod->BSIM4vgsMax = value->rValue;
3645 mod->BSIM4vgsMaxGiven = TRUE;
3646 break;
3647 case BSIM4_MOD_VGD_MAX:
3648 mod->BSIM4vgdMax = value->rValue;
3649 mod->BSIM4vgdMaxGiven = TRUE;
3650 break;
3651 case BSIM4_MOD_VGB_MAX:
3652 mod->BSIM4vgbMax = value->rValue;
3653 mod->BSIM4vgbMaxGiven = TRUE;
3654 break;
3655 case BSIM4_MOD_VDS_MAX:
3656 mod->BSIM4vdsMax = value->rValue;
3657 mod->BSIM4vdsMaxGiven = TRUE;
3658 break;
3659 case BSIM4_MOD_VBS_MAX:
3660 mod->BSIM4vbsMax = value->rValue;
3661 mod->BSIM4vbsMaxGiven = TRUE;
3662 break;
3663 case BSIM4_MOD_VBD_MAX:
3664 mod->BSIM4vbdMax = value->rValue;
3665 mod->BSIM4vbdMaxGiven = TRUE;
3666 break;
3667 case BSIM4_MOD_VGSR_MAX:
3668 mod->BSIM4vgsrMax = value->rValue;
3669 mod->BSIM4vgsrMaxGiven = TRUE;
3670 break;
3671 case BSIM4_MOD_VGDR_MAX:
3672 mod->BSIM4vgdrMax = value->rValue;
3673 mod->BSIM4vgdrMaxGiven = TRUE;
3674 break;
3675 case BSIM4_MOD_VGBR_MAX:
3676 mod->BSIM4vgbrMax = value->rValue;
3677 mod->BSIM4vgbrMaxGiven = TRUE;
3678 break;
3679 case BSIM4_MOD_VBSR_MAX:
3680 mod->BSIM4vbsrMax = value->rValue;
3681 mod->BSIM4vbsrMaxGiven = TRUE;
3682 break;
3683 case BSIM4_MOD_VBDR_MAX:
3684 mod->BSIM4vbdrMax = value->rValue;
3685 mod->BSIM4vbdrMaxGiven = TRUE;
3686 break;
3687
3688 case BSIM4_MOD_NMOS :
3689 if(value->iValue) {
3690 mod->BSIM4type = 1;
3691 mod->BSIM4typeGiven = TRUE;
3692 }
3693 break;
3694 case BSIM4_MOD_PMOS :
3695 if(value->iValue) {
3696 mod->BSIM4type = - 1;
3697 mod->BSIM4typeGiven = TRUE;
3698 }
3699 break;
3700 default:
3701 return(E_BADPARM);
3702 }
3703 return(OK);
3704 }
3705
3706
3707