1 /**** BSIM3v3.3.0, Released by Xuemei Xi 07/29/2005 ****/ 2 3 /********** 4 * Copyright 2004 Regents of the University of California. All rights reserved. 5 * File: b3mpar.c of BSIM3v3.3.0 6 * Author: 1995 Min-Chie Jeng and Mansun Chan. 7 * Author: 1997-1999 Weidong Liu. 8 * Author: 2001 Xuemei Xi 9 **********/ 10 11 #include "ngspice/ngspice.h" 12 #include "bsim3def.h" 13 #include "ngspice/ifsim.h" 14 #include "ngspice/sperror.h" 15 #include "ngspice/suffix.h" 16 17 18 int BSIM3mParam(int param,IFvalue * value,GENmodel * inMod)19BSIM3mParam( 20 int param, 21 IFvalue *value, 22 GENmodel *inMod) 23 { 24 BSIM3model *mod = (BSIM3model*)inMod; 25 switch(param) 26 { case BSIM3_MOD_MOBMOD : 27 mod->BSIM3mobMod = value->iValue; 28 mod->BSIM3mobModGiven = TRUE; 29 break; 30 case BSIM3_MOD_BINUNIT : 31 mod->BSIM3binUnit = value->iValue; 32 mod->BSIM3binUnitGiven = TRUE; 33 break; 34 case BSIM3_MOD_PARAMCHK : 35 mod->BSIM3paramChk = value->iValue; 36 mod->BSIM3paramChkGiven = TRUE; 37 break; 38 case BSIM3_MOD_CAPMOD : 39 mod->BSIM3capMod = value->iValue; 40 mod->BSIM3capModGiven = TRUE; 41 break; 42 case BSIM3_MOD_ACMMOD: 43 mod->BSIM3acmMod = value->iValue; 44 mod->BSIM3acmModGiven = TRUE; 45 break; 46 case BSIM3_MOD_CALCACM: 47 mod->BSIM3calcacm = value->iValue; 48 mod->BSIM3calcacmGiven = TRUE; 49 break; 50 case BSIM3_MOD_NOIMOD : 51 mod->BSIM3noiMod = value->iValue; 52 mod->BSIM3noiModGiven = TRUE; 53 break; 54 case BSIM3_MOD_NQSMOD : 55 mod->BSIM3nqsMod = value->iValue; 56 mod->BSIM3nqsModGiven = TRUE; 57 break; 58 case BSIM3_MOD_ACNQSMOD : 59 mod->BSIM3acnqsMod = value->iValue; 60 mod->BSIM3acnqsModGiven = TRUE; 61 break; 62 case BSIM3_MOD_VERSION : 63 mod->BSIM3version = value->sValue; 64 mod->BSIM3versionGiven = TRUE; 65 break; 66 case BSIM3_MOD_TOX : 67 mod->BSIM3tox = value->rValue; 68 mod->BSIM3toxGiven = TRUE; 69 break; 70 case BSIM3_MOD_TOXM : 71 mod->BSIM3toxm = value->rValue; 72 mod->BSIM3toxmGiven = TRUE; 73 break; 74 75 case BSIM3_MOD_CDSC : 76 mod->BSIM3cdsc = value->rValue; 77 mod->BSIM3cdscGiven = TRUE; 78 break; 79 case BSIM3_MOD_CDSCB : 80 mod->BSIM3cdscb = value->rValue; 81 mod->BSIM3cdscbGiven = TRUE; 82 break; 83 84 case BSIM3_MOD_CDSCD : 85 mod->BSIM3cdscd = value->rValue; 86 mod->BSIM3cdscdGiven = TRUE; 87 break; 88 89 case BSIM3_MOD_CIT : 90 mod->BSIM3cit = value->rValue; 91 mod->BSIM3citGiven = TRUE; 92 break; 93 case BSIM3_MOD_NFACTOR : 94 mod->BSIM3nfactor = value->rValue; 95 mod->BSIM3nfactorGiven = TRUE; 96 break; 97 case BSIM3_MOD_XJ: 98 mod->BSIM3xj = value->rValue; 99 mod->BSIM3xjGiven = TRUE; 100 break; 101 case BSIM3_MOD_VSAT: 102 mod->BSIM3vsat = value->rValue; 103 mod->BSIM3vsatGiven = TRUE; 104 break; 105 case BSIM3_MOD_A0: 106 mod->BSIM3a0 = value->rValue; 107 mod->BSIM3a0Given = TRUE; 108 break; 109 110 case BSIM3_MOD_AGS: 111 mod->BSIM3ags= value->rValue; 112 mod->BSIM3agsGiven = TRUE; 113 break; 114 115 case BSIM3_MOD_A1: 116 mod->BSIM3a1 = value->rValue; 117 mod->BSIM3a1Given = TRUE; 118 break; 119 case BSIM3_MOD_A2: 120 mod->BSIM3a2 = value->rValue; 121 mod->BSIM3a2Given = TRUE; 122 break; 123 case BSIM3_MOD_AT: 124 mod->BSIM3at = value->rValue; 125 mod->BSIM3atGiven = TRUE; 126 break; 127 case BSIM3_MOD_KETA: 128 mod->BSIM3keta = value->rValue; 129 mod->BSIM3ketaGiven = TRUE; 130 break; 131 case BSIM3_MOD_NSUB: 132 mod->BSIM3nsub = value->rValue; 133 mod->BSIM3nsubGiven = TRUE; 134 break; 135 case BSIM3_MOD_NPEAK: 136 mod->BSIM3npeak = value->rValue; 137 mod->BSIM3npeakGiven = TRUE; 138 if (mod->BSIM3npeak > 1.0e20) 139 mod->BSIM3npeak *= 1.0e-6; 140 break; 141 case BSIM3_MOD_NGATE: 142 mod->BSIM3ngate = value->rValue; 143 mod->BSIM3ngateGiven = TRUE; 144 if (mod->BSIM3ngate > 1.000001e24) 145 mod->BSIM3ngate *= 1.0e-6; 146 break; 147 case BSIM3_MOD_GAMMA1: 148 mod->BSIM3gamma1 = value->rValue; 149 mod->BSIM3gamma1Given = TRUE; 150 break; 151 case BSIM3_MOD_GAMMA2: 152 mod->BSIM3gamma2 = value->rValue; 153 mod->BSIM3gamma2Given = TRUE; 154 break; 155 case BSIM3_MOD_VBX: 156 mod->BSIM3vbx = value->rValue; 157 mod->BSIM3vbxGiven = TRUE; 158 break; 159 case BSIM3_MOD_VBM: 160 mod->BSIM3vbm = value->rValue; 161 mod->BSIM3vbmGiven = TRUE; 162 break; 163 case BSIM3_MOD_XT: 164 mod->BSIM3xt = value->rValue; 165 mod->BSIM3xtGiven = TRUE; 166 break; 167 case BSIM3_MOD_K1: 168 mod->BSIM3k1 = value->rValue; 169 mod->BSIM3k1Given = TRUE; 170 break; 171 case BSIM3_MOD_KT1: 172 mod->BSIM3kt1 = value->rValue; 173 mod->BSIM3kt1Given = TRUE; 174 break; 175 case BSIM3_MOD_KT1L: 176 mod->BSIM3kt1l = value->rValue; 177 mod->BSIM3kt1lGiven = TRUE; 178 break; 179 case BSIM3_MOD_KT2: 180 mod->BSIM3kt2 = value->rValue; 181 mod->BSIM3kt2Given = TRUE; 182 break; 183 case BSIM3_MOD_K2: 184 mod->BSIM3k2 = value->rValue; 185 mod->BSIM3k2Given = TRUE; 186 break; 187 case BSIM3_MOD_K3: 188 mod->BSIM3k3 = value->rValue; 189 mod->BSIM3k3Given = TRUE; 190 break; 191 case BSIM3_MOD_K3B: 192 mod->BSIM3k3b = value->rValue; 193 mod->BSIM3k3bGiven = TRUE; 194 break; 195 case BSIM3_MOD_NLX: 196 mod->BSIM3nlx = value->rValue; 197 mod->BSIM3nlxGiven = TRUE; 198 break; 199 case BSIM3_MOD_W0: 200 mod->BSIM3w0 = value->rValue; 201 mod->BSIM3w0Given = TRUE; 202 break; 203 case BSIM3_MOD_DVT0: 204 mod->BSIM3dvt0 = value->rValue; 205 mod->BSIM3dvt0Given = TRUE; 206 break; 207 case BSIM3_MOD_DVT1: 208 mod->BSIM3dvt1 = value->rValue; 209 mod->BSIM3dvt1Given = TRUE; 210 break; 211 case BSIM3_MOD_DVT2: 212 mod->BSIM3dvt2 = value->rValue; 213 mod->BSIM3dvt2Given = TRUE; 214 break; 215 case BSIM3_MOD_DVT0W: 216 mod->BSIM3dvt0w = value->rValue; 217 mod->BSIM3dvt0wGiven = TRUE; 218 break; 219 case BSIM3_MOD_DVT1W: 220 mod->BSIM3dvt1w = value->rValue; 221 mod->BSIM3dvt1wGiven = TRUE; 222 break; 223 case BSIM3_MOD_DVT2W: 224 mod->BSIM3dvt2w = value->rValue; 225 mod->BSIM3dvt2wGiven = TRUE; 226 break; 227 case BSIM3_MOD_DROUT: 228 mod->BSIM3drout = value->rValue; 229 mod->BSIM3droutGiven = TRUE; 230 break; 231 case BSIM3_MOD_DSUB: 232 mod->BSIM3dsub = value->rValue; 233 mod->BSIM3dsubGiven = TRUE; 234 break; 235 case BSIM3_MOD_VTH0: 236 mod->BSIM3vth0 = value->rValue; 237 mod->BSIM3vth0Given = TRUE; 238 break; 239 case BSIM3_MOD_UA: 240 mod->BSIM3ua = value->rValue; 241 mod->BSIM3uaGiven = TRUE; 242 break; 243 case BSIM3_MOD_UA1: 244 mod->BSIM3ua1 = value->rValue; 245 mod->BSIM3ua1Given = TRUE; 246 break; 247 case BSIM3_MOD_UB: 248 mod->BSIM3ub = value->rValue; 249 mod->BSIM3ubGiven = TRUE; 250 break; 251 case BSIM3_MOD_UB1: 252 mod->BSIM3ub1 = value->rValue; 253 mod->BSIM3ub1Given = TRUE; 254 break; 255 case BSIM3_MOD_UC: 256 mod->BSIM3uc = value->rValue; 257 mod->BSIM3ucGiven = TRUE; 258 break; 259 case BSIM3_MOD_UC1: 260 mod->BSIM3uc1 = value->rValue; 261 mod->BSIM3uc1Given = TRUE; 262 break; 263 case BSIM3_MOD_U0 : 264 mod->BSIM3u0 = value->rValue; 265 mod->BSIM3u0Given = TRUE; 266 break; 267 case BSIM3_MOD_UTE : 268 mod->BSIM3ute = value->rValue; 269 mod->BSIM3uteGiven = TRUE; 270 break; 271 case BSIM3_MOD_VOFF: 272 mod->BSIM3voff = value->rValue; 273 mod->BSIM3voffGiven = TRUE; 274 break; 275 case BSIM3_MOD_DELTA : 276 mod->BSIM3delta = value->rValue; 277 mod->BSIM3deltaGiven = TRUE; 278 break; 279 case BSIM3_MOD_RDSW: 280 mod->BSIM3rdsw = value->rValue; 281 mod->BSIM3rdswGiven = TRUE; 282 break; 283 case BSIM3_MOD_PRWG: 284 mod->BSIM3prwg = value->rValue; 285 mod->BSIM3prwgGiven = TRUE; 286 break; 287 case BSIM3_MOD_PRWB: 288 mod->BSIM3prwb = value->rValue; 289 mod->BSIM3prwbGiven = TRUE; 290 break; 291 case BSIM3_MOD_PRT: 292 mod->BSIM3prt = value->rValue; 293 mod->BSIM3prtGiven = TRUE; 294 break; 295 case BSIM3_MOD_ETA0: 296 mod->BSIM3eta0 = value->rValue; 297 mod->BSIM3eta0Given = TRUE; 298 break; 299 case BSIM3_MOD_ETAB: 300 mod->BSIM3etab = value->rValue; 301 mod->BSIM3etabGiven = TRUE; 302 break; 303 case BSIM3_MOD_PCLM: 304 mod->BSIM3pclm = value->rValue; 305 mod->BSIM3pclmGiven = TRUE; 306 break; 307 case BSIM3_MOD_PDIBL1: 308 mod->BSIM3pdibl1 = value->rValue; 309 mod->BSIM3pdibl1Given = TRUE; 310 break; 311 case BSIM3_MOD_PDIBL2: 312 mod->BSIM3pdibl2 = value->rValue; 313 mod->BSIM3pdibl2Given = TRUE; 314 break; 315 case BSIM3_MOD_PDIBLB: 316 mod->BSIM3pdiblb = value->rValue; 317 mod->BSIM3pdiblbGiven = TRUE; 318 break; 319 case BSIM3_MOD_PSCBE1: 320 mod->BSIM3pscbe1 = value->rValue; 321 mod->BSIM3pscbe1Given = TRUE; 322 break; 323 case BSIM3_MOD_PSCBE2: 324 mod->BSIM3pscbe2 = value->rValue; 325 mod->BSIM3pscbe2Given = TRUE; 326 break; 327 case BSIM3_MOD_PVAG: 328 mod->BSIM3pvag = value->rValue; 329 mod->BSIM3pvagGiven = TRUE; 330 break; 331 case BSIM3_MOD_WR : 332 mod->BSIM3wr = value->rValue; 333 mod->BSIM3wrGiven = TRUE; 334 break; 335 case BSIM3_MOD_DWG : 336 mod->BSIM3dwg = value->rValue; 337 mod->BSIM3dwgGiven = TRUE; 338 break; 339 case BSIM3_MOD_DWB : 340 mod->BSIM3dwb = value->rValue; 341 mod->BSIM3dwbGiven = TRUE; 342 break; 343 case BSIM3_MOD_B0 : 344 mod->BSIM3b0 = value->rValue; 345 mod->BSIM3b0Given = TRUE; 346 break; 347 case BSIM3_MOD_B1 : 348 mod->BSIM3b1 = value->rValue; 349 mod->BSIM3b1Given = TRUE; 350 break; 351 case BSIM3_MOD_ALPHA0 : 352 mod->BSIM3alpha0 = value->rValue; 353 mod->BSIM3alpha0Given = TRUE; 354 break; 355 case BSIM3_MOD_ALPHA1 : 356 mod->BSIM3alpha1 = value->rValue; 357 mod->BSIM3alpha1Given = TRUE; 358 break; 359 case BSIM3_MOD_BETA0 : 360 mod->BSIM3beta0 = value->rValue; 361 mod->BSIM3beta0Given = TRUE; 362 break; 363 case BSIM3_MOD_IJTH : 364 mod->BSIM3ijth = value->rValue; 365 mod->BSIM3ijthGiven = TRUE; 366 break; 367 case BSIM3_MOD_VFB : 368 mod->BSIM3vfb = value->rValue; 369 mod->BSIM3vfbGiven = TRUE; 370 break; 371 372 case BSIM3_MOD_ELM : 373 mod->BSIM3elm = value->rValue; 374 mod->BSIM3elmGiven = TRUE; 375 break; 376 case BSIM3_MOD_CGSL : 377 mod->BSIM3cgsl = value->rValue; 378 mod->BSIM3cgslGiven = TRUE; 379 break; 380 case BSIM3_MOD_CGDL : 381 mod->BSIM3cgdl = value->rValue; 382 mod->BSIM3cgdlGiven = TRUE; 383 break; 384 case BSIM3_MOD_CKAPPA : 385 mod->BSIM3ckappa = value->rValue; 386 mod->BSIM3ckappaGiven = TRUE; 387 break; 388 case BSIM3_MOD_CF : 389 mod->BSIM3cf = value->rValue; 390 mod->BSIM3cfGiven = TRUE; 391 break; 392 case BSIM3_MOD_CLC : 393 mod->BSIM3clc = value->rValue; 394 mod->BSIM3clcGiven = TRUE; 395 break; 396 case BSIM3_MOD_CLE : 397 mod->BSIM3cle = value->rValue; 398 mod->BSIM3cleGiven = TRUE; 399 break; 400 case BSIM3_MOD_DWC : 401 mod->BSIM3dwc = value->rValue; 402 mod->BSIM3dwcGiven = TRUE; 403 break; 404 case BSIM3_MOD_DLC : 405 mod->BSIM3dlc = value->rValue; 406 mod->BSIM3dlcGiven = TRUE; 407 break; 408 case BSIM3_MOD_VFBCV : 409 mod->BSIM3vfbcv = value->rValue; 410 mod->BSIM3vfbcvGiven = TRUE; 411 break; 412 case BSIM3_MOD_ACDE : 413 mod->BSIM3acde = value->rValue; 414 mod->BSIM3acdeGiven = TRUE; 415 break; 416 case BSIM3_MOD_MOIN : 417 mod->BSIM3moin = value->rValue; 418 mod->BSIM3moinGiven = TRUE; 419 break; 420 case BSIM3_MOD_NOFF : 421 mod->BSIM3noff = value->rValue; 422 mod->BSIM3noffGiven = TRUE; 423 break; 424 case BSIM3_MOD_VOFFCV : 425 mod->BSIM3voffcv = value->rValue; 426 mod->BSIM3voffcvGiven = TRUE; 427 break; 428 case BSIM3_MOD_TCJ : 429 mod->BSIM3tcj = value->rValue; 430 mod->BSIM3tcjGiven = TRUE; 431 break; 432 case BSIM3_MOD_TPB : 433 mod->BSIM3tpb = value->rValue; 434 mod->BSIM3tpbGiven = TRUE; 435 break; 436 case BSIM3_MOD_TCJSW : 437 mod->BSIM3tcjsw = value->rValue; 438 mod->BSIM3tcjswGiven = TRUE; 439 break; 440 case BSIM3_MOD_TPBSW : 441 mod->BSIM3tpbsw = value->rValue; 442 mod->BSIM3tpbswGiven = TRUE; 443 break; 444 case BSIM3_MOD_TCJSWG : 445 mod->BSIM3tcjswg = value->rValue; 446 mod->BSIM3tcjswgGiven = TRUE; 447 break; 448 case BSIM3_MOD_TPBSWG : 449 mod->BSIM3tpbswg = value->rValue; 450 mod->BSIM3tpbswgGiven = TRUE; 451 break; 452 453 /* acm model */ 454 case BSIM3_MOD_HDIF: 455 mod->BSIM3hdif = value->rValue; 456 mod->BSIM3hdifGiven = TRUE; 457 break; 458 case BSIM3_MOD_LDIF: 459 mod->BSIM3ldif = value->rValue; 460 mod->BSIM3ldifGiven = TRUE; 461 break; 462 case BSIM3_MOD_LD: 463 mod->BSIM3ld = value->rValue; 464 mod->BSIM3ldGiven = TRUE; 465 break; 466 case BSIM3_MOD_RD: 467 mod->BSIM3rd = value->rValue; 468 mod->BSIM3rdGiven = TRUE; 469 break; 470 case BSIM3_MOD_RS: 471 mod->BSIM3rs = value->rValue; 472 mod->BSIM3rsGiven = TRUE; 473 break; 474 case BSIM3_MOD_RDC: 475 mod->BSIM3rdc = value->rValue; 476 mod->BSIM3rdcGiven = TRUE; 477 break; 478 case BSIM3_MOD_RSC: 479 mod->BSIM3rsc = value->rValue; 480 mod->BSIM3rscGiven = TRUE; 481 break; 482 case BSIM3_MOD_WMLT: 483 mod->BSIM3wmlt = value->rValue; 484 mod->BSIM3wmltGiven = TRUE; 485 break; 486 487 /* Length dependence */ 488 case BSIM3_MOD_LCDSC : 489 mod->BSIM3lcdsc = value->rValue; 490 mod->BSIM3lcdscGiven = TRUE; 491 break; 492 493 494 case BSIM3_MOD_LCDSCB : 495 mod->BSIM3lcdscb = value->rValue; 496 mod->BSIM3lcdscbGiven = TRUE; 497 break; 498 case BSIM3_MOD_LCDSCD : 499 mod->BSIM3lcdscd = value->rValue; 500 mod->BSIM3lcdscdGiven = TRUE; 501 break; 502 case BSIM3_MOD_LCIT : 503 mod->BSIM3lcit = value->rValue; 504 mod->BSIM3lcitGiven = TRUE; 505 break; 506 case BSIM3_MOD_LNFACTOR : 507 mod->BSIM3lnfactor = value->rValue; 508 mod->BSIM3lnfactorGiven = TRUE; 509 break; 510 case BSIM3_MOD_LXJ: 511 mod->BSIM3lxj = value->rValue; 512 mod->BSIM3lxjGiven = TRUE; 513 break; 514 case BSIM3_MOD_LVSAT: 515 mod->BSIM3lvsat = value->rValue; 516 mod->BSIM3lvsatGiven = TRUE; 517 break; 518 519 520 case BSIM3_MOD_LA0: 521 mod->BSIM3la0 = value->rValue; 522 mod->BSIM3la0Given = TRUE; 523 break; 524 case BSIM3_MOD_LAGS: 525 mod->BSIM3lags = value->rValue; 526 mod->BSIM3lagsGiven = TRUE; 527 break; 528 case BSIM3_MOD_LA1: 529 mod->BSIM3la1 = value->rValue; 530 mod->BSIM3la1Given = TRUE; 531 break; 532 case BSIM3_MOD_LA2: 533 mod->BSIM3la2 = value->rValue; 534 mod->BSIM3la2Given = TRUE; 535 break; 536 case BSIM3_MOD_LAT: 537 mod->BSIM3lat = value->rValue; 538 mod->BSIM3latGiven = TRUE; 539 break; 540 case BSIM3_MOD_LKETA: 541 mod->BSIM3lketa = value->rValue; 542 mod->BSIM3lketaGiven = TRUE; 543 break; 544 case BSIM3_MOD_LNSUB: 545 mod->BSIM3lnsub = value->rValue; 546 mod->BSIM3lnsubGiven = TRUE; 547 break; 548 case BSIM3_MOD_LNPEAK: 549 mod->BSIM3lnpeak = value->rValue; 550 mod->BSIM3lnpeakGiven = TRUE; 551 if (mod->BSIM3lnpeak > 1.0e20) 552 mod->BSIM3lnpeak *= 1.0e-6; 553 break; 554 case BSIM3_MOD_LNGATE: 555 mod->BSIM3lngate = value->rValue; 556 mod->BSIM3lngateGiven = TRUE; 557 if (mod->BSIM3lngate > 1.0e23) 558 mod->BSIM3lngate *= 1.0e-6; 559 break; 560 case BSIM3_MOD_LGAMMA1: 561 mod->BSIM3lgamma1 = value->rValue; 562 mod->BSIM3lgamma1Given = TRUE; 563 break; 564 case BSIM3_MOD_LGAMMA2: 565 mod->BSIM3lgamma2 = value->rValue; 566 mod->BSIM3lgamma2Given = TRUE; 567 break; 568 case BSIM3_MOD_LVBX: 569 mod->BSIM3lvbx = value->rValue; 570 mod->BSIM3lvbxGiven = TRUE; 571 break; 572 case BSIM3_MOD_LVBM: 573 mod->BSIM3lvbm = value->rValue; 574 mod->BSIM3lvbmGiven = TRUE; 575 break; 576 case BSIM3_MOD_LXT: 577 mod->BSIM3lxt = value->rValue; 578 mod->BSIM3lxtGiven = TRUE; 579 break; 580 case BSIM3_MOD_LK1: 581 mod->BSIM3lk1 = value->rValue; 582 mod->BSIM3lk1Given = TRUE; 583 break; 584 case BSIM3_MOD_LKT1: 585 mod->BSIM3lkt1 = value->rValue; 586 mod->BSIM3lkt1Given = TRUE; 587 break; 588 case BSIM3_MOD_LKT1L: 589 mod->BSIM3lkt1l = value->rValue; 590 mod->BSIM3lkt1lGiven = TRUE; 591 break; 592 case BSIM3_MOD_LKT2: 593 mod->BSIM3lkt2 = value->rValue; 594 mod->BSIM3lkt2Given = TRUE; 595 break; 596 case BSIM3_MOD_LK2: 597 mod->BSIM3lk2 = value->rValue; 598 mod->BSIM3lk2Given = TRUE; 599 break; 600 case BSIM3_MOD_LK3: 601 mod->BSIM3lk3 = value->rValue; 602 mod->BSIM3lk3Given = TRUE; 603 break; 604 case BSIM3_MOD_LK3B: 605 mod->BSIM3lk3b = value->rValue; 606 mod->BSIM3lk3bGiven = TRUE; 607 break; 608 case BSIM3_MOD_LNLX: 609 mod->BSIM3lnlx = value->rValue; 610 mod->BSIM3lnlxGiven = TRUE; 611 break; 612 case BSIM3_MOD_LW0: 613 mod->BSIM3lw0 = value->rValue; 614 mod->BSIM3lw0Given = TRUE; 615 break; 616 case BSIM3_MOD_LDVT0: 617 mod->BSIM3ldvt0 = value->rValue; 618 mod->BSIM3ldvt0Given = TRUE; 619 break; 620 case BSIM3_MOD_LDVT1: 621 mod->BSIM3ldvt1 = value->rValue; 622 mod->BSIM3ldvt1Given = TRUE; 623 break; 624 case BSIM3_MOD_LDVT2: 625 mod->BSIM3ldvt2 = value->rValue; 626 mod->BSIM3ldvt2Given = TRUE; 627 break; 628 case BSIM3_MOD_LDVT0W: 629 mod->BSIM3ldvt0w = value->rValue; 630 mod->BSIM3ldvt0wGiven = TRUE; 631 break; 632 case BSIM3_MOD_LDVT1W: 633 mod->BSIM3ldvt1w = value->rValue; 634 mod->BSIM3ldvt1wGiven = TRUE; 635 break; 636 case BSIM3_MOD_LDVT2W: 637 mod->BSIM3ldvt2w = value->rValue; 638 mod->BSIM3ldvt2wGiven = TRUE; 639 break; 640 case BSIM3_MOD_LDROUT: 641 mod->BSIM3ldrout = value->rValue; 642 mod->BSIM3ldroutGiven = TRUE; 643 break; 644 case BSIM3_MOD_LDSUB: 645 mod->BSIM3ldsub = value->rValue; 646 mod->BSIM3ldsubGiven = TRUE; 647 break; 648 case BSIM3_MOD_LVTH0: 649 mod->BSIM3lvth0 = value->rValue; 650 mod->BSIM3lvth0Given = TRUE; 651 break; 652 case BSIM3_MOD_LUA: 653 mod->BSIM3lua = value->rValue; 654 mod->BSIM3luaGiven = TRUE; 655 break; 656 case BSIM3_MOD_LUA1: 657 mod->BSIM3lua1 = value->rValue; 658 mod->BSIM3lua1Given = TRUE; 659 break; 660 case BSIM3_MOD_LUB: 661 mod->BSIM3lub = value->rValue; 662 mod->BSIM3lubGiven = TRUE; 663 break; 664 case BSIM3_MOD_LUB1: 665 mod->BSIM3lub1 = value->rValue; 666 mod->BSIM3lub1Given = TRUE; 667 break; 668 case BSIM3_MOD_LUC: 669 mod->BSIM3luc = value->rValue; 670 mod->BSIM3lucGiven = TRUE; 671 break; 672 case BSIM3_MOD_LUC1: 673 mod->BSIM3luc1 = value->rValue; 674 mod->BSIM3luc1Given = TRUE; 675 break; 676 case BSIM3_MOD_LU0 : 677 mod->BSIM3lu0 = value->rValue; 678 mod->BSIM3lu0Given = TRUE; 679 break; 680 case BSIM3_MOD_LUTE : 681 mod->BSIM3lute = value->rValue; 682 mod->BSIM3luteGiven = TRUE; 683 break; 684 case BSIM3_MOD_LVOFF: 685 mod->BSIM3lvoff = value->rValue; 686 mod->BSIM3lvoffGiven = TRUE; 687 break; 688 case BSIM3_MOD_LDELTA : 689 mod->BSIM3ldelta = value->rValue; 690 mod->BSIM3ldeltaGiven = TRUE; 691 break; 692 case BSIM3_MOD_LRDSW: 693 mod->BSIM3lrdsw = value->rValue; 694 mod->BSIM3lrdswGiven = TRUE; 695 break; 696 case BSIM3_MOD_LPRWB: 697 mod->BSIM3lprwb = value->rValue; 698 mod->BSIM3lprwbGiven = TRUE; 699 break; 700 case BSIM3_MOD_LPRWG: 701 mod->BSIM3lprwg = value->rValue; 702 mod->BSIM3lprwgGiven = TRUE; 703 break; 704 case BSIM3_MOD_LPRT: 705 mod->BSIM3lprt = value->rValue; 706 mod->BSIM3lprtGiven = TRUE; 707 break; 708 case BSIM3_MOD_LETA0: 709 mod->BSIM3leta0 = value->rValue; 710 mod->BSIM3leta0Given = TRUE; 711 break; 712 case BSIM3_MOD_LETAB: 713 mod->BSIM3letab = value->rValue; 714 mod->BSIM3letabGiven = TRUE; 715 break; 716 case BSIM3_MOD_LPCLM: 717 mod->BSIM3lpclm = value->rValue; 718 mod->BSIM3lpclmGiven = TRUE; 719 break; 720 case BSIM3_MOD_LPDIBL1: 721 mod->BSIM3lpdibl1 = value->rValue; 722 mod->BSIM3lpdibl1Given = TRUE; 723 break; 724 case BSIM3_MOD_LPDIBL2: 725 mod->BSIM3lpdibl2 = value->rValue; 726 mod->BSIM3lpdibl2Given = TRUE; 727 break; 728 case BSIM3_MOD_LPDIBLB: 729 mod->BSIM3lpdiblb = value->rValue; 730 mod->BSIM3lpdiblbGiven = TRUE; 731 break; 732 case BSIM3_MOD_LPSCBE1: 733 mod->BSIM3lpscbe1 = value->rValue; 734 mod->BSIM3lpscbe1Given = TRUE; 735 break; 736 case BSIM3_MOD_LPSCBE2: 737 mod->BSIM3lpscbe2 = value->rValue; 738 mod->BSIM3lpscbe2Given = TRUE; 739 break; 740 case BSIM3_MOD_LPVAG: 741 mod->BSIM3lpvag = value->rValue; 742 mod->BSIM3lpvagGiven = TRUE; 743 break; 744 case BSIM3_MOD_LWR : 745 mod->BSIM3lwr = value->rValue; 746 mod->BSIM3lwrGiven = TRUE; 747 break; 748 case BSIM3_MOD_LDWG : 749 mod->BSIM3ldwg = value->rValue; 750 mod->BSIM3ldwgGiven = TRUE; 751 break; 752 case BSIM3_MOD_LDWB : 753 mod->BSIM3ldwb = value->rValue; 754 mod->BSIM3ldwbGiven = TRUE; 755 break; 756 case BSIM3_MOD_LB0 : 757 mod->BSIM3lb0 = value->rValue; 758 mod->BSIM3lb0Given = TRUE; 759 break; 760 case BSIM3_MOD_LB1 : 761 mod->BSIM3lb1 = value->rValue; 762 mod->BSIM3lb1Given = TRUE; 763 break; 764 case BSIM3_MOD_LALPHA0 : 765 mod->BSIM3lalpha0 = value->rValue; 766 mod->BSIM3lalpha0Given = TRUE; 767 break; 768 case BSIM3_MOD_LALPHA1 : 769 mod->BSIM3lalpha1 = value->rValue; 770 mod->BSIM3lalpha1Given = TRUE; 771 break; 772 case BSIM3_MOD_LBETA0 : 773 mod->BSIM3lbeta0 = value->rValue; 774 mod->BSIM3lbeta0Given = TRUE; 775 break; 776 case BSIM3_MOD_LVFB : 777 mod->BSIM3lvfb = value->rValue; 778 mod->BSIM3lvfbGiven = TRUE; 779 break; 780 781 case BSIM3_MOD_LELM : 782 mod->BSIM3lelm = value->rValue; 783 mod->BSIM3lelmGiven = TRUE; 784 break; 785 case BSIM3_MOD_LCGSL : 786 mod->BSIM3lcgsl = value->rValue; 787 mod->BSIM3lcgslGiven = TRUE; 788 break; 789 case BSIM3_MOD_LCGDL : 790 mod->BSIM3lcgdl = value->rValue; 791 mod->BSIM3lcgdlGiven = TRUE; 792 break; 793 case BSIM3_MOD_LCKAPPA : 794 mod->BSIM3lckappa = value->rValue; 795 mod->BSIM3lckappaGiven = TRUE; 796 break; 797 case BSIM3_MOD_LCF : 798 mod->BSIM3lcf = value->rValue; 799 mod->BSIM3lcfGiven = TRUE; 800 break; 801 case BSIM3_MOD_LCLC : 802 mod->BSIM3lclc = value->rValue; 803 mod->BSIM3lclcGiven = TRUE; 804 break; 805 case BSIM3_MOD_LCLE : 806 mod->BSIM3lcle = value->rValue; 807 mod->BSIM3lcleGiven = TRUE; 808 break; 809 case BSIM3_MOD_LVFBCV : 810 mod->BSIM3lvfbcv = value->rValue; 811 mod->BSIM3lvfbcvGiven = TRUE; 812 break; 813 case BSIM3_MOD_LACDE : 814 mod->BSIM3lacde = value->rValue; 815 mod->BSIM3lacdeGiven = TRUE; 816 break; 817 case BSIM3_MOD_LMOIN : 818 mod->BSIM3lmoin = value->rValue; 819 mod->BSIM3lmoinGiven = TRUE; 820 break; 821 case BSIM3_MOD_LNOFF : 822 mod->BSIM3lnoff = value->rValue; 823 mod->BSIM3lnoffGiven = TRUE; 824 break; 825 case BSIM3_MOD_LVOFFCV : 826 mod->BSIM3lvoffcv = value->rValue; 827 mod->BSIM3lvoffcvGiven = TRUE; 828 break; 829 830 /* Width dependence */ 831 case BSIM3_MOD_WCDSC : 832 mod->BSIM3wcdsc = value->rValue; 833 mod->BSIM3wcdscGiven = TRUE; 834 break; 835 836 837 case BSIM3_MOD_WCDSCB : 838 mod->BSIM3wcdscb = value->rValue; 839 mod->BSIM3wcdscbGiven = TRUE; 840 break; 841 case BSIM3_MOD_WCDSCD : 842 mod->BSIM3wcdscd = value->rValue; 843 mod->BSIM3wcdscdGiven = TRUE; 844 break; 845 case BSIM3_MOD_WCIT : 846 mod->BSIM3wcit = value->rValue; 847 mod->BSIM3wcitGiven = TRUE; 848 break; 849 case BSIM3_MOD_WNFACTOR : 850 mod->BSIM3wnfactor = value->rValue; 851 mod->BSIM3wnfactorGiven = TRUE; 852 break; 853 case BSIM3_MOD_WXJ: 854 mod->BSIM3wxj = value->rValue; 855 mod->BSIM3wxjGiven = TRUE; 856 break; 857 case BSIM3_MOD_WVSAT: 858 mod->BSIM3wvsat = value->rValue; 859 mod->BSIM3wvsatGiven = TRUE; 860 break; 861 862 863 case BSIM3_MOD_WA0: 864 mod->BSIM3wa0 = value->rValue; 865 mod->BSIM3wa0Given = TRUE; 866 break; 867 case BSIM3_MOD_WAGS: 868 mod->BSIM3wags = value->rValue; 869 mod->BSIM3wagsGiven = TRUE; 870 break; 871 case BSIM3_MOD_WA1: 872 mod->BSIM3wa1 = value->rValue; 873 mod->BSIM3wa1Given = TRUE; 874 break; 875 case BSIM3_MOD_WA2: 876 mod->BSIM3wa2 = value->rValue; 877 mod->BSIM3wa2Given = TRUE; 878 break; 879 case BSIM3_MOD_WAT: 880 mod->BSIM3wat = value->rValue; 881 mod->BSIM3watGiven = TRUE; 882 break; 883 case BSIM3_MOD_WKETA: 884 mod->BSIM3wketa = value->rValue; 885 mod->BSIM3wketaGiven = TRUE; 886 break; 887 case BSIM3_MOD_WNSUB: 888 mod->BSIM3wnsub = value->rValue; 889 mod->BSIM3wnsubGiven = TRUE; 890 break; 891 case BSIM3_MOD_WNPEAK: 892 mod->BSIM3wnpeak = value->rValue; 893 mod->BSIM3wnpeakGiven = TRUE; 894 if (mod->BSIM3wnpeak > 1.0e20) 895 mod->BSIM3wnpeak *= 1.0e-6; 896 break; 897 case BSIM3_MOD_WNGATE: 898 mod->BSIM3wngate = value->rValue; 899 mod->BSIM3wngateGiven = TRUE; 900 if (mod->BSIM3wngate > 1.0e23) 901 mod->BSIM3wngate *= 1.0e-6; 902 break; 903 case BSIM3_MOD_WGAMMA1: 904 mod->BSIM3wgamma1 = value->rValue; 905 mod->BSIM3wgamma1Given = TRUE; 906 break; 907 case BSIM3_MOD_WGAMMA2: 908 mod->BSIM3wgamma2 = value->rValue; 909 mod->BSIM3wgamma2Given = TRUE; 910 break; 911 case BSIM3_MOD_WVBX: 912 mod->BSIM3wvbx = value->rValue; 913 mod->BSIM3wvbxGiven = TRUE; 914 break; 915 case BSIM3_MOD_WVBM: 916 mod->BSIM3wvbm = value->rValue; 917 mod->BSIM3wvbmGiven = TRUE; 918 break; 919 case BSIM3_MOD_WXT: 920 mod->BSIM3wxt = value->rValue; 921 mod->BSIM3wxtGiven = TRUE; 922 break; 923 case BSIM3_MOD_WK1: 924 mod->BSIM3wk1 = value->rValue; 925 mod->BSIM3wk1Given = TRUE; 926 break; 927 case BSIM3_MOD_WKT1: 928 mod->BSIM3wkt1 = value->rValue; 929 mod->BSIM3wkt1Given = TRUE; 930 break; 931 case BSIM3_MOD_WKT1L: 932 mod->BSIM3wkt1l = value->rValue; 933 mod->BSIM3wkt1lGiven = TRUE; 934 break; 935 case BSIM3_MOD_WKT2: 936 mod->BSIM3wkt2 = value->rValue; 937 mod->BSIM3wkt2Given = TRUE; 938 break; 939 case BSIM3_MOD_WK2: 940 mod->BSIM3wk2 = value->rValue; 941 mod->BSIM3wk2Given = TRUE; 942 break; 943 case BSIM3_MOD_WK3: 944 mod->BSIM3wk3 = value->rValue; 945 mod->BSIM3wk3Given = TRUE; 946 break; 947 case BSIM3_MOD_WK3B: 948 mod->BSIM3wk3b = value->rValue; 949 mod->BSIM3wk3bGiven = TRUE; 950 break; 951 case BSIM3_MOD_WNLX: 952 mod->BSIM3wnlx = value->rValue; 953 mod->BSIM3wnlxGiven = TRUE; 954 break; 955 case BSIM3_MOD_WW0: 956 mod->BSIM3ww0 = value->rValue; 957 mod->BSIM3ww0Given = TRUE; 958 break; 959 case BSIM3_MOD_WDVT0: 960 mod->BSIM3wdvt0 = value->rValue; 961 mod->BSIM3wdvt0Given = TRUE; 962 break; 963 case BSIM3_MOD_WDVT1: 964 mod->BSIM3wdvt1 = value->rValue; 965 mod->BSIM3wdvt1Given = TRUE; 966 break; 967 case BSIM3_MOD_WDVT2: 968 mod->BSIM3wdvt2 = value->rValue; 969 mod->BSIM3wdvt2Given = TRUE; 970 break; 971 case BSIM3_MOD_WDVT0W: 972 mod->BSIM3wdvt0w = value->rValue; 973 mod->BSIM3wdvt0wGiven = TRUE; 974 break; 975 case BSIM3_MOD_WDVT1W: 976 mod->BSIM3wdvt1w = value->rValue; 977 mod->BSIM3wdvt1wGiven = TRUE; 978 break; 979 case BSIM3_MOD_WDVT2W: 980 mod->BSIM3wdvt2w = value->rValue; 981 mod->BSIM3wdvt2wGiven = TRUE; 982 break; 983 case BSIM3_MOD_WDROUT: 984 mod->BSIM3wdrout = value->rValue; 985 mod->BSIM3wdroutGiven = TRUE; 986 break; 987 case BSIM3_MOD_WDSUB: 988 mod->BSIM3wdsub = value->rValue; 989 mod->BSIM3wdsubGiven = TRUE; 990 break; 991 case BSIM3_MOD_WVTH0: 992 mod->BSIM3wvth0 = value->rValue; 993 mod->BSIM3wvth0Given = TRUE; 994 break; 995 case BSIM3_MOD_WUA: 996 mod->BSIM3wua = value->rValue; 997 mod->BSIM3wuaGiven = TRUE; 998 break; 999 case BSIM3_MOD_WUA1: 1000 mod->BSIM3wua1 = value->rValue; 1001 mod->BSIM3wua1Given = TRUE; 1002 break; 1003 case BSIM3_MOD_WUB: 1004 mod->BSIM3wub = value->rValue; 1005 mod->BSIM3wubGiven = TRUE; 1006 break; 1007 case BSIM3_MOD_WUB1: 1008 mod->BSIM3wub1 = value->rValue; 1009 mod->BSIM3wub1Given = TRUE; 1010 break; 1011 case BSIM3_MOD_WUC: 1012 mod->BSIM3wuc = value->rValue; 1013 mod->BSIM3wucGiven = TRUE; 1014 break; 1015 case BSIM3_MOD_WUC1: 1016 mod->BSIM3wuc1 = value->rValue; 1017 mod->BSIM3wuc1Given = TRUE; 1018 break; 1019 case BSIM3_MOD_WU0 : 1020 mod->BSIM3wu0 = value->rValue; 1021 mod->BSIM3wu0Given = TRUE; 1022 break; 1023 case BSIM3_MOD_WUTE : 1024 mod->BSIM3wute = value->rValue; 1025 mod->BSIM3wuteGiven = TRUE; 1026 break; 1027 case BSIM3_MOD_WVOFF: 1028 mod->BSIM3wvoff = value->rValue; 1029 mod->BSIM3wvoffGiven = TRUE; 1030 break; 1031 case BSIM3_MOD_WDELTA : 1032 mod->BSIM3wdelta = value->rValue; 1033 mod->BSIM3wdeltaGiven = TRUE; 1034 break; 1035 case BSIM3_MOD_WRDSW: 1036 mod->BSIM3wrdsw = value->rValue; 1037 mod->BSIM3wrdswGiven = TRUE; 1038 break; 1039 case BSIM3_MOD_WPRWB: 1040 mod->BSIM3wprwb = value->rValue; 1041 mod->BSIM3wprwbGiven = TRUE; 1042 break; 1043 case BSIM3_MOD_WPRWG: 1044 mod->BSIM3wprwg = value->rValue; 1045 mod->BSIM3wprwgGiven = TRUE; 1046 break; 1047 case BSIM3_MOD_WPRT: 1048 mod->BSIM3wprt = value->rValue; 1049 mod->BSIM3wprtGiven = TRUE; 1050 break; 1051 case BSIM3_MOD_WETA0: 1052 mod->BSIM3weta0 = value->rValue; 1053 mod->BSIM3weta0Given = TRUE; 1054 break; 1055 case BSIM3_MOD_WETAB: 1056 mod->BSIM3wetab = value->rValue; 1057 mod->BSIM3wetabGiven = TRUE; 1058 break; 1059 case BSIM3_MOD_WPCLM: 1060 mod->BSIM3wpclm = value->rValue; 1061 mod->BSIM3wpclmGiven = TRUE; 1062 break; 1063 case BSIM3_MOD_WPDIBL1: 1064 mod->BSIM3wpdibl1 = value->rValue; 1065 mod->BSIM3wpdibl1Given = TRUE; 1066 break; 1067 case BSIM3_MOD_WPDIBL2: 1068 mod->BSIM3wpdibl2 = value->rValue; 1069 mod->BSIM3wpdibl2Given = TRUE; 1070 break; 1071 case BSIM3_MOD_WPDIBLB: 1072 mod->BSIM3wpdiblb = value->rValue; 1073 mod->BSIM3wpdiblbGiven = TRUE; 1074 break; 1075 case BSIM3_MOD_WPSCBE1: 1076 mod->BSIM3wpscbe1 = value->rValue; 1077 mod->BSIM3wpscbe1Given = TRUE; 1078 break; 1079 case BSIM3_MOD_WPSCBE2: 1080 mod->BSIM3wpscbe2 = value->rValue; 1081 mod->BSIM3wpscbe2Given = TRUE; 1082 break; 1083 case BSIM3_MOD_WPVAG: 1084 mod->BSIM3wpvag = value->rValue; 1085 mod->BSIM3wpvagGiven = TRUE; 1086 break; 1087 case BSIM3_MOD_WWR : 1088 mod->BSIM3wwr = value->rValue; 1089 mod->BSIM3wwrGiven = TRUE; 1090 break; 1091 case BSIM3_MOD_WDWG : 1092 mod->BSIM3wdwg = value->rValue; 1093 mod->BSIM3wdwgGiven = TRUE; 1094 break; 1095 case BSIM3_MOD_WDWB : 1096 mod->BSIM3wdwb = value->rValue; 1097 mod->BSIM3wdwbGiven = TRUE; 1098 break; 1099 case BSIM3_MOD_WB0 : 1100 mod->BSIM3wb0 = value->rValue; 1101 mod->BSIM3wb0Given = TRUE; 1102 break; 1103 case BSIM3_MOD_WB1 : 1104 mod->BSIM3wb1 = value->rValue; 1105 mod->BSIM3wb1Given = TRUE; 1106 break; 1107 case BSIM3_MOD_WALPHA0 : 1108 mod->BSIM3walpha0 = value->rValue; 1109 mod->BSIM3walpha0Given = TRUE; 1110 break; 1111 case BSIM3_MOD_WALPHA1 : 1112 mod->BSIM3walpha1 = value->rValue; 1113 mod->BSIM3walpha1Given = TRUE; 1114 break; 1115 case BSIM3_MOD_WBETA0 : 1116 mod->BSIM3wbeta0 = value->rValue; 1117 mod->BSIM3wbeta0Given = TRUE; 1118 break; 1119 case BSIM3_MOD_WVFB : 1120 mod->BSIM3wvfb = value->rValue; 1121 mod->BSIM3wvfbGiven = TRUE; 1122 break; 1123 1124 case BSIM3_MOD_WELM : 1125 mod->BSIM3welm = value->rValue; 1126 mod->BSIM3welmGiven = TRUE; 1127 break; 1128 case BSIM3_MOD_WCGSL : 1129 mod->BSIM3wcgsl = value->rValue; 1130 mod->BSIM3wcgslGiven = TRUE; 1131 break; 1132 case BSIM3_MOD_WCGDL : 1133 mod->BSIM3wcgdl = value->rValue; 1134 mod->BSIM3wcgdlGiven = TRUE; 1135 break; 1136 case BSIM3_MOD_WCKAPPA : 1137 mod->BSIM3wckappa = value->rValue; 1138 mod->BSIM3wckappaGiven = TRUE; 1139 break; 1140 case BSIM3_MOD_WCF : 1141 mod->BSIM3wcf = value->rValue; 1142 mod->BSIM3wcfGiven = TRUE; 1143 break; 1144 case BSIM3_MOD_WCLC : 1145 mod->BSIM3wclc = value->rValue; 1146 mod->BSIM3wclcGiven = TRUE; 1147 break; 1148 case BSIM3_MOD_WCLE : 1149 mod->BSIM3wcle = value->rValue; 1150 mod->BSIM3wcleGiven = TRUE; 1151 break; 1152 case BSIM3_MOD_WVFBCV : 1153 mod->BSIM3wvfbcv = value->rValue; 1154 mod->BSIM3wvfbcvGiven = TRUE; 1155 break; 1156 case BSIM3_MOD_WACDE : 1157 mod->BSIM3wacde = value->rValue; 1158 mod->BSIM3wacdeGiven = TRUE; 1159 break; 1160 case BSIM3_MOD_WMOIN : 1161 mod->BSIM3wmoin = value->rValue; 1162 mod->BSIM3wmoinGiven = TRUE; 1163 break; 1164 case BSIM3_MOD_WNOFF : 1165 mod->BSIM3wnoff = value->rValue; 1166 mod->BSIM3wnoffGiven = TRUE; 1167 break; 1168 case BSIM3_MOD_WVOFFCV : 1169 mod->BSIM3wvoffcv = value->rValue; 1170 mod->BSIM3wvoffcvGiven = TRUE; 1171 break; 1172 1173 /* Cross-term dependence */ 1174 case BSIM3_MOD_PCDSC : 1175 mod->BSIM3pcdsc = value->rValue; 1176 mod->BSIM3pcdscGiven = TRUE; 1177 break; 1178 1179 1180 case BSIM3_MOD_PCDSCB : 1181 mod->BSIM3pcdscb = value->rValue; 1182 mod->BSIM3pcdscbGiven = TRUE; 1183 break; 1184 case BSIM3_MOD_PCDSCD : 1185 mod->BSIM3pcdscd = value->rValue; 1186 mod->BSIM3pcdscdGiven = TRUE; 1187 break; 1188 case BSIM3_MOD_PCIT : 1189 mod->BSIM3pcit = value->rValue; 1190 mod->BSIM3pcitGiven = TRUE; 1191 break; 1192 case BSIM3_MOD_PNFACTOR : 1193 mod->BSIM3pnfactor = value->rValue; 1194 mod->BSIM3pnfactorGiven = TRUE; 1195 break; 1196 case BSIM3_MOD_PXJ: 1197 mod->BSIM3pxj = value->rValue; 1198 mod->BSIM3pxjGiven = TRUE; 1199 break; 1200 case BSIM3_MOD_PVSAT: 1201 mod->BSIM3pvsat = value->rValue; 1202 mod->BSIM3pvsatGiven = TRUE; 1203 break; 1204 1205 1206 case BSIM3_MOD_PA0: 1207 mod->BSIM3pa0 = value->rValue; 1208 mod->BSIM3pa0Given = TRUE; 1209 break; 1210 case BSIM3_MOD_PAGS: 1211 mod->BSIM3pags = value->rValue; 1212 mod->BSIM3pagsGiven = TRUE; 1213 break; 1214 case BSIM3_MOD_PA1: 1215 mod->BSIM3pa1 = value->rValue; 1216 mod->BSIM3pa1Given = TRUE; 1217 break; 1218 case BSIM3_MOD_PA2: 1219 mod->BSIM3pa2 = value->rValue; 1220 mod->BSIM3pa2Given = TRUE; 1221 break; 1222 case BSIM3_MOD_PAT: 1223 mod->BSIM3pat = value->rValue; 1224 mod->BSIM3patGiven = TRUE; 1225 break; 1226 case BSIM3_MOD_PKETA: 1227 mod->BSIM3pketa = value->rValue; 1228 mod->BSIM3pketaGiven = TRUE; 1229 break; 1230 case BSIM3_MOD_PNSUB: 1231 mod->BSIM3pnsub = value->rValue; 1232 mod->BSIM3pnsubGiven = TRUE; 1233 break; 1234 case BSIM3_MOD_PNPEAK: 1235 mod->BSIM3pnpeak = value->rValue; 1236 mod->BSIM3pnpeakGiven = TRUE; 1237 if (mod->BSIM3pnpeak > 1.0e20) 1238 mod->BSIM3pnpeak *= 1.0e-6; 1239 break; 1240 case BSIM3_MOD_PNGATE: 1241 mod->BSIM3pngate = value->rValue; 1242 mod->BSIM3pngateGiven = TRUE; 1243 if (mod->BSIM3pngate > 1.0e23) 1244 mod->BSIM3pngate *= 1.0e-6; 1245 break; 1246 case BSIM3_MOD_PGAMMA1: 1247 mod->BSIM3pgamma1 = value->rValue; 1248 mod->BSIM3pgamma1Given = TRUE; 1249 break; 1250 case BSIM3_MOD_PGAMMA2: 1251 mod->BSIM3pgamma2 = value->rValue; 1252 mod->BSIM3pgamma2Given = TRUE; 1253 break; 1254 case BSIM3_MOD_PVBX: 1255 mod->BSIM3pvbx = value->rValue; 1256 mod->BSIM3pvbxGiven = TRUE; 1257 break; 1258 case BSIM3_MOD_PVBM: 1259 mod->BSIM3pvbm = value->rValue; 1260 mod->BSIM3pvbmGiven = TRUE; 1261 break; 1262 case BSIM3_MOD_PXT: 1263 mod->BSIM3pxt = value->rValue; 1264 mod->BSIM3pxtGiven = TRUE; 1265 break; 1266 case BSIM3_MOD_PK1: 1267 mod->BSIM3pk1 = value->rValue; 1268 mod->BSIM3pk1Given = TRUE; 1269 break; 1270 case BSIM3_MOD_PKT1: 1271 mod->BSIM3pkt1 = value->rValue; 1272 mod->BSIM3pkt1Given = TRUE; 1273 break; 1274 case BSIM3_MOD_PKT1L: 1275 mod->BSIM3pkt1l = value->rValue; 1276 mod->BSIM3pkt1lGiven = TRUE; 1277 break; 1278 case BSIM3_MOD_PKT2: 1279 mod->BSIM3pkt2 = value->rValue; 1280 mod->BSIM3pkt2Given = TRUE; 1281 break; 1282 case BSIM3_MOD_PK2: 1283 mod->BSIM3pk2 = value->rValue; 1284 mod->BSIM3pk2Given = TRUE; 1285 break; 1286 case BSIM3_MOD_PK3: 1287 mod->BSIM3pk3 = value->rValue; 1288 mod->BSIM3pk3Given = TRUE; 1289 break; 1290 case BSIM3_MOD_PK3B: 1291 mod->BSIM3pk3b = value->rValue; 1292 mod->BSIM3pk3bGiven = TRUE; 1293 break; 1294 case BSIM3_MOD_PNLX: 1295 mod->BSIM3pnlx = value->rValue; 1296 mod->BSIM3pnlxGiven = TRUE; 1297 break; 1298 case BSIM3_MOD_PW0: 1299 mod->BSIM3pw0 = value->rValue; 1300 mod->BSIM3pw0Given = TRUE; 1301 break; 1302 case BSIM3_MOD_PDVT0: 1303 mod->BSIM3pdvt0 = value->rValue; 1304 mod->BSIM3pdvt0Given = TRUE; 1305 break; 1306 case BSIM3_MOD_PDVT1: 1307 mod->BSIM3pdvt1 = value->rValue; 1308 mod->BSIM3pdvt1Given = TRUE; 1309 break; 1310 case BSIM3_MOD_PDVT2: 1311 mod->BSIM3pdvt2 = value->rValue; 1312 mod->BSIM3pdvt2Given = TRUE; 1313 break; 1314 case BSIM3_MOD_PDVT0W: 1315 mod->BSIM3pdvt0w = value->rValue; 1316 mod->BSIM3pdvt0wGiven = TRUE; 1317 break; 1318 case BSIM3_MOD_PDVT1W: 1319 mod->BSIM3pdvt1w = value->rValue; 1320 mod->BSIM3pdvt1wGiven = TRUE; 1321 break; 1322 case BSIM3_MOD_PDVT2W: 1323 mod->BSIM3pdvt2w = value->rValue; 1324 mod->BSIM3pdvt2wGiven = TRUE; 1325 break; 1326 case BSIM3_MOD_PDROUT: 1327 mod->BSIM3pdrout = value->rValue; 1328 mod->BSIM3pdroutGiven = TRUE; 1329 break; 1330 case BSIM3_MOD_PDSUB: 1331 mod->BSIM3pdsub = value->rValue; 1332 mod->BSIM3pdsubGiven = TRUE; 1333 break; 1334 case BSIM3_MOD_PVTH0: 1335 mod->BSIM3pvth0 = value->rValue; 1336 mod->BSIM3pvth0Given = TRUE; 1337 break; 1338 case BSIM3_MOD_PUA: 1339 mod->BSIM3pua = value->rValue; 1340 mod->BSIM3puaGiven = TRUE; 1341 break; 1342 case BSIM3_MOD_PUA1: 1343 mod->BSIM3pua1 = value->rValue; 1344 mod->BSIM3pua1Given = TRUE; 1345 break; 1346 case BSIM3_MOD_PUB: 1347 mod->BSIM3pub = value->rValue; 1348 mod->BSIM3pubGiven = TRUE; 1349 break; 1350 case BSIM3_MOD_PUB1: 1351 mod->BSIM3pub1 = value->rValue; 1352 mod->BSIM3pub1Given = TRUE; 1353 break; 1354 case BSIM3_MOD_PUC: 1355 mod->BSIM3puc = value->rValue; 1356 mod->BSIM3pucGiven = TRUE; 1357 break; 1358 case BSIM3_MOD_PUC1: 1359 mod->BSIM3puc1 = value->rValue; 1360 mod->BSIM3puc1Given = TRUE; 1361 break; 1362 case BSIM3_MOD_PU0 : 1363 mod->BSIM3pu0 = value->rValue; 1364 mod->BSIM3pu0Given = TRUE; 1365 break; 1366 case BSIM3_MOD_PUTE : 1367 mod->BSIM3pute = value->rValue; 1368 mod->BSIM3puteGiven = TRUE; 1369 break; 1370 case BSIM3_MOD_PVOFF: 1371 mod->BSIM3pvoff = value->rValue; 1372 mod->BSIM3pvoffGiven = TRUE; 1373 break; 1374 case BSIM3_MOD_PDELTA : 1375 mod->BSIM3pdelta = value->rValue; 1376 mod->BSIM3pdeltaGiven = TRUE; 1377 break; 1378 case BSIM3_MOD_PRDSW: 1379 mod->BSIM3prdsw = value->rValue; 1380 mod->BSIM3prdswGiven = TRUE; 1381 break; 1382 case BSIM3_MOD_PPRWB: 1383 mod->BSIM3pprwb = value->rValue; 1384 mod->BSIM3pprwbGiven = TRUE; 1385 break; 1386 case BSIM3_MOD_PPRWG: 1387 mod->BSIM3pprwg = value->rValue; 1388 mod->BSIM3pprwgGiven = TRUE; 1389 break; 1390 case BSIM3_MOD_PPRT: 1391 mod->BSIM3pprt = value->rValue; 1392 mod->BSIM3pprtGiven = TRUE; 1393 break; 1394 case BSIM3_MOD_PETA0: 1395 mod->BSIM3peta0 = value->rValue; 1396 mod->BSIM3peta0Given = TRUE; 1397 break; 1398 case BSIM3_MOD_PETAB: 1399 mod->BSIM3petab = value->rValue; 1400 mod->BSIM3petabGiven = TRUE; 1401 break; 1402 case BSIM3_MOD_PPCLM: 1403 mod->BSIM3ppclm = value->rValue; 1404 mod->BSIM3ppclmGiven = TRUE; 1405 break; 1406 case BSIM3_MOD_PPDIBL1: 1407 mod->BSIM3ppdibl1 = value->rValue; 1408 mod->BSIM3ppdibl1Given = TRUE; 1409 break; 1410 case BSIM3_MOD_PPDIBL2: 1411 mod->BSIM3ppdibl2 = value->rValue; 1412 mod->BSIM3ppdibl2Given = TRUE; 1413 break; 1414 case BSIM3_MOD_PPDIBLB: 1415 mod->BSIM3ppdiblb = value->rValue; 1416 mod->BSIM3ppdiblbGiven = TRUE; 1417 break; 1418 case BSIM3_MOD_PPSCBE1: 1419 mod->BSIM3ppscbe1 = value->rValue; 1420 mod->BSIM3ppscbe1Given = TRUE; 1421 break; 1422 case BSIM3_MOD_PPSCBE2: 1423 mod->BSIM3ppscbe2 = value->rValue; 1424 mod->BSIM3ppscbe2Given = TRUE; 1425 break; 1426 case BSIM3_MOD_PPVAG: 1427 mod->BSIM3ppvag = value->rValue; 1428 mod->BSIM3ppvagGiven = TRUE; 1429 break; 1430 case BSIM3_MOD_PWR : 1431 mod->BSIM3pwr = value->rValue; 1432 mod->BSIM3pwrGiven = TRUE; 1433 break; 1434 case BSIM3_MOD_PDWG : 1435 mod->BSIM3pdwg = value->rValue; 1436 mod->BSIM3pdwgGiven = TRUE; 1437 break; 1438 case BSIM3_MOD_PDWB : 1439 mod->BSIM3pdwb = value->rValue; 1440 mod->BSIM3pdwbGiven = TRUE; 1441 break; 1442 case BSIM3_MOD_PB0 : 1443 mod->BSIM3pb0 = value->rValue; 1444 mod->BSIM3pb0Given = TRUE; 1445 break; 1446 case BSIM3_MOD_PB1 : 1447 mod->BSIM3pb1 = value->rValue; 1448 mod->BSIM3pb1Given = TRUE; 1449 break; 1450 case BSIM3_MOD_PALPHA0 : 1451 mod->BSIM3palpha0 = value->rValue; 1452 mod->BSIM3palpha0Given = TRUE; 1453 break; 1454 case BSIM3_MOD_PALPHA1 : 1455 mod->BSIM3palpha1 = value->rValue; 1456 mod->BSIM3palpha1Given = TRUE; 1457 break; 1458 case BSIM3_MOD_PBETA0 : 1459 mod->BSIM3pbeta0 = value->rValue; 1460 mod->BSIM3pbeta0Given = TRUE; 1461 break; 1462 case BSIM3_MOD_PVFB : 1463 mod->BSIM3pvfb = value->rValue; 1464 mod->BSIM3pvfbGiven = TRUE; 1465 break; 1466 1467 case BSIM3_MOD_PELM : 1468 mod->BSIM3pelm = value->rValue; 1469 mod->BSIM3pelmGiven = TRUE; 1470 break; 1471 case BSIM3_MOD_PCGSL : 1472 mod->BSIM3pcgsl = value->rValue; 1473 mod->BSIM3pcgslGiven = TRUE; 1474 break; 1475 case BSIM3_MOD_PCGDL : 1476 mod->BSIM3pcgdl = value->rValue; 1477 mod->BSIM3pcgdlGiven = TRUE; 1478 break; 1479 case BSIM3_MOD_PCKAPPA : 1480 mod->BSIM3pckappa = value->rValue; 1481 mod->BSIM3pckappaGiven = TRUE; 1482 break; 1483 case BSIM3_MOD_PCF : 1484 mod->BSIM3pcf = value->rValue; 1485 mod->BSIM3pcfGiven = TRUE; 1486 break; 1487 case BSIM3_MOD_PCLC : 1488 mod->BSIM3pclc = value->rValue; 1489 mod->BSIM3pclcGiven = TRUE; 1490 break; 1491 case BSIM3_MOD_PCLE : 1492 mod->BSIM3pcle = value->rValue; 1493 mod->BSIM3pcleGiven = TRUE; 1494 break; 1495 case BSIM3_MOD_PVFBCV : 1496 mod->BSIM3pvfbcv = value->rValue; 1497 mod->BSIM3pvfbcvGiven = TRUE; 1498 break; 1499 case BSIM3_MOD_PACDE : 1500 mod->BSIM3pacde = value->rValue; 1501 mod->BSIM3pacdeGiven = TRUE; 1502 break; 1503 case BSIM3_MOD_PMOIN : 1504 mod->BSIM3pmoin = value->rValue; 1505 mod->BSIM3pmoinGiven = TRUE; 1506 break; 1507 case BSIM3_MOD_PNOFF : 1508 mod->BSIM3pnoff = value->rValue; 1509 mod->BSIM3pnoffGiven = TRUE; 1510 break; 1511 case BSIM3_MOD_PVOFFCV : 1512 mod->BSIM3pvoffcv = value->rValue; 1513 mod->BSIM3pvoffcvGiven = TRUE; 1514 break; 1515 1516 case BSIM3_MOD_TNOM : 1517 mod->BSIM3tnom = value->rValue + CONSTCtoK; 1518 mod->BSIM3tnomGiven = TRUE; 1519 break; 1520 case BSIM3_MOD_CGSO : 1521 mod->BSIM3cgso = value->rValue; 1522 mod->BSIM3cgsoGiven = TRUE; 1523 break; 1524 case BSIM3_MOD_CGDO : 1525 mod->BSIM3cgdo = value->rValue; 1526 mod->BSIM3cgdoGiven = TRUE; 1527 break; 1528 case BSIM3_MOD_CGBO : 1529 mod->BSIM3cgbo = value->rValue; 1530 mod->BSIM3cgboGiven = TRUE; 1531 break; 1532 case BSIM3_MOD_XPART : 1533 mod->BSIM3xpart = value->rValue; 1534 mod->BSIM3xpartGiven = TRUE; 1535 break; 1536 case BSIM3_MOD_RSH : 1537 mod->BSIM3sheetResistance = value->rValue; 1538 mod->BSIM3sheetResistanceGiven = TRUE; 1539 break; 1540 case BSIM3_MOD_JS : 1541 mod->BSIM3jctSatCurDensity = value->rValue; 1542 mod->BSIM3jctSatCurDensityGiven = TRUE; 1543 break; 1544 case BSIM3_MOD_JSW : 1545 mod->BSIM3jctSidewallSatCurDensity = value->rValue; 1546 mod->BSIM3jctSidewallSatCurDensityGiven = TRUE; 1547 break; 1548 case BSIM3_MOD_PB : 1549 mod->BSIM3bulkJctPotential = value->rValue; 1550 mod->BSIM3bulkJctPotentialGiven = TRUE; 1551 break; 1552 case BSIM3_MOD_MJ : 1553 mod->BSIM3bulkJctBotGradingCoeff = value->rValue; 1554 mod->BSIM3bulkJctBotGradingCoeffGiven = TRUE; 1555 break; 1556 case BSIM3_MOD_PBSW : 1557 mod->BSIM3sidewallJctPotential = value->rValue; 1558 mod->BSIM3sidewallJctPotentialGiven = TRUE; 1559 break; 1560 case BSIM3_MOD_MJSW : 1561 mod->BSIM3bulkJctSideGradingCoeff = value->rValue; 1562 mod->BSIM3bulkJctSideGradingCoeffGiven = TRUE; 1563 break; 1564 case BSIM3_MOD_CJ : 1565 mod->BSIM3unitAreaJctCap = value->rValue; 1566 mod->BSIM3unitAreaJctCapGiven = TRUE; 1567 break; 1568 case BSIM3_MOD_CJSW : 1569 mod->BSIM3unitLengthSidewallJctCap = value->rValue; 1570 mod->BSIM3unitLengthSidewallJctCapGiven = TRUE; 1571 break; 1572 case BSIM3_MOD_NJ : 1573 mod->BSIM3jctEmissionCoeff = value->rValue; 1574 mod->BSIM3jctEmissionCoeffGiven = TRUE; 1575 break; 1576 case BSIM3_MOD_PBSWG : 1577 mod->BSIM3GatesidewallJctPotential = value->rValue; 1578 mod->BSIM3GatesidewallJctPotentialGiven = TRUE; 1579 break; 1580 case BSIM3_MOD_MJSWG : 1581 mod->BSIM3bulkJctGateSideGradingCoeff = value->rValue; 1582 mod->BSIM3bulkJctGateSideGradingCoeffGiven = TRUE; 1583 break; 1584 case BSIM3_MOD_CJSWG : 1585 mod->BSIM3unitLengthGateSidewallJctCap = value->rValue; 1586 mod->BSIM3unitLengthGateSidewallJctCapGiven = TRUE; 1587 break; 1588 case BSIM3_MOD_XTI : 1589 mod->BSIM3jctTempExponent = value->rValue; 1590 mod->BSIM3jctTempExponentGiven = TRUE; 1591 break; 1592 case BSIM3_MOD_LINTNOI: 1593 mod->BSIM3lintnoi = value->rValue; 1594 mod->BSIM3lintnoiGiven = TRUE; 1595 break; 1596 case BSIM3_MOD_LINT : 1597 mod->BSIM3Lint = value->rValue; 1598 mod->BSIM3LintGiven = TRUE; 1599 break; 1600 case BSIM3_MOD_LL : 1601 mod->BSIM3Ll = value->rValue; 1602 mod->BSIM3LlGiven = TRUE; 1603 break; 1604 case BSIM3_MOD_LLC : 1605 mod->BSIM3Llc = value->rValue; 1606 mod->BSIM3LlcGiven = TRUE; 1607 break; 1608 case BSIM3_MOD_LLN : 1609 mod->BSIM3Lln = value->rValue; 1610 mod->BSIM3LlnGiven = TRUE; 1611 break; 1612 case BSIM3_MOD_LW : 1613 mod->BSIM3Lw = value->rValue; 1614 mod->BSIM3LwGiven = TRUE; 1615 break; 1616 case BSIM3_MOD_LWC : 1617 mod->BSIM3Lwc = value->rValue; 1618 mod->BSIM3LwcGiven = TRUE; 1619 break; 1620 case BSIM3_MOD_LWN : 1621 mod->BSIM3Lwn = value->rValue; 1622 mod->BSIM3LwnGiven = TRUE; 1623 break; 1624 case BSIM3_MOD_LWL : 1625 mod->BSIM3Lwl = value->rValue; 1626 mod->BSIM3LwlGiven = TRUE; 1627 break; 1628 case BSIM3_MOD_LWLC : 1629 mod->BSIM3Lwlc = value->rValue; 1630 mod->BSIM3LwlcGiven = TRUE; 1631 break; 1632 case BSIM3_MOD_LMIN : 1633 mod->BSIM3Lmin = value->rValue; 1634 mod->BSIM3LminGiven = TRUE; 1635 break; 1636 case BSIM3_MOD_LMAX : 1637 mod->BSIM3Lmax = value->rValue; 1638 mod->BSIM3LmaxGiven = TRUE; 1639 break; 1640 case BSIM3_MOD_WINT : 1641 mod->BSIM3Wint = value->rValue; 1642 mod->BSIM3WintGiven = TRUE; 1643 break; 1644 case BSIM3_MOD_WL : 1645 mod->BSIM3Wl = value->rValue; 1646 mod->BSIM3WlGiven = TRUE; 1647 break; 1648 case BSIM3_MOD_WLC : 1649 mod->BSIM3Wlc = value->rValue; 1650 mod->BSIM3WlcGiven = TRUE; 1651 break; 1652 case BSIM3_MOD_WLN : 1653 mod->BSIM3Wln = value->rValue; 1654 mod->BSIM3WlnGiven = TRUE; 1655 break; 1656 case BSIM3_MOD_WW : 1657 mod->BSIM3Ww = value->rValue; 1658 mod->BSIM3WwGiven = TRUE; 1659 break; 1660 case BSIM3_MOD_WWC : 1661 mod->BSIM3Wwc = value->rValue; 1662 mod->BSIM3WwcGiven = TRUE; 1663 break; 1664 case BSIM3_MOD_WWN : 1665 mod->BSIM3Wwn = value->rValue; 1666 mod->BSIM3WwnGiven = TRUE; 1667 break; 1668 case BSIM3_MOD_WWL : 1669 mod->BSIM3Wwl = value->rValue; 1670 mod->BSIM3WwlGiven = TRUE; 1671 break; 1672 case BSIM3_MOD_WWLC : 1673 mod->BSIM3Wwlc = value->rValue; 1674 mod->BSIM3WwlcGiven = TRUE; 1675 break; 1676 case BSIM3_MOD_WMIN : 1677 mod->BSIM3Wmin = value->rValue; 1678 mod->BSIM3WminGiven = TRUE; 1679 break; 1680 case BSIM3_MOD_WMAX : 1681 mod->BSIM3Wmax = value->rValue; 1682 mod->BSIM3WmaxGiven = TRUE; 1683 break; 1684 1685 case BSIM3_MOD_XL: 1686 mod->BSIM3xl = value->rValue; 1687 mod->BSIM3xlGiven = TRUE; 1688 break; 1689 case BSIM3_MOD_XW: 1690 mod->BSIM3xw = value->rValue; 1691 mod->BSIM3xwGiven = TRUE; 1692 break; 1693 1694 case BSIM3_MOD_NOIA : 1695 mod->BSIM3oxideTrapDensityA = value->rValue; 1696 mod->BSIM3oxideTrapDensityAGiven = TRUE; 1697 break; 1698 case BSIM3_MOD_NOIB : 1699 mod->BSIM3oxideTrapDensityB = value->rValue; 1700 mod->BSIM3oxideTrapDensityBGiven = TRUE; 1701 break; 1702 case BSIM3_MOD_NOIC : 1703 mod->BSIM3oxideTrapDensityC = value->rValue; 1704 mod->BSIM3oxideTrapDensityCGiven = TRUE; 1705 break; 1706 case BSIM3_MOD_EM : 1707 mod->BSIM3em = value->rValue; 1708 mod->BSIM3emGiven = TRUE; 1709 break; 1710 case BSIM3_MOD_EF : 1711 mod->BSIM3ef = value->rValue; 1712 mod->BSIM3efGiven = TRUE; 1713 break; 1714 case BSIM3_MOD_AF : 1715 mod->BSIM3af = value->rValue; 1716 mod->BSIM3afGiven = TRUE; 1717 break; 1718 case BSIM3_MOD_KF : 1719 mod->BSIM3kf = value->rValue; 1720 mod->BSIM3kfGiven = TRUE; 1721 break; 1722 1723 case BSIM3_MOD_VGS_MAX: 1724 mod->BSIM3vgsMax = value->rValue; 1725 mod->BSIM3vgsMaxGiven = TRUE; 1726 break; 1727 case BSIM3_MOD_VGD_MAX: 1728 mod->BSIM3vgdMax = value->rValue; 1729 mod->BSIM3vgdMaxGiven = TRUE; 1730 break; 1731 case BSIM3_MOD_VGB_MAX: 1732 mod->BSIM3vgbMax = value->rValue; 1733 mod->BSIM3vgbMaxGiven = TRUE; 1734 break; 1735 case BSIM3_MOD_VDS_MAX: 1736 mod->BSIM3vdsMax = value->rValue; 1737 mod->BSIM3vdsMaxGiven = TRUE; 1738 break; 1739 case BSIM3_MOD_VBS_MAX: 1740 mod->BSIM3vbsMax = value->rValue; 1741 mod->BSIM3vbsMaxGiven = TRUE; 1742 break; 1743 case BSIM3_MOD_VBD_MAX: 1744 mod->BSIM3vbdMax = value->rValue; 1745 mod->BSIM3vbdMaxGiven = TRUE; 1746 break; 1747 case BSIM3_MOD_VGSR_MAX: 1748 mod->BSIM3vgsrMax = value->rValue; 1749 mod->BSIM3vgsrMaxGiven = TRUE; 1750 break; 1751 case BSIM3_MOD_VGDR_MAX: 1752 mod->BSIM3vgdrMax = value->rValue; 1753 mod->BSIM3vgdrMaxGiven = TRUE; 1754 break; 1755 case BSIM3_MOD_VGBR_MAX: 1756 mod->BSIM3vgbrMax = value->rValue; 1757 mod->BSIM3vgbrMaxGiven = TRUE; 1758 break; 1759 case BSIM3_MOD_VBSR_MAX: 1760 mod->BSIM3vbsrMax = value->rValue; 1761 mod->BSIM3vbsrMaxGiven = TRUE; 1762 break; 1763 case BSIM3_MOD_VBDR_MAX: 1764 mod->BSIM3vbdrMax = value->rValue; 1765 mod->BSIM3vbdrMaxGiven = TRUE; 1766 break; 1767 1768 case BSIM3_MOD_NMOS : 1769 if(value->iValue) { 1770 mod->BSIM3type = 1; 1771 mod->BSIM3typeGiven = TRUE; 1772 } 1773 break; 1774 case BSIM3_MOD_PMOS : 1775 if(value->iValue) { 1776 mod->BSIM3type = - 1; 1777 mod->BSIM3typeGiven = TRUE; 1778 } 1779 break; 1780 default: 1781 return(E_BADPARM); 1782 } 1783 return(OK); 1784 } 1785 1786 1787