1 /********** 2 * Copyright 1990 Regents of the University of California. All rights reserved. 3 * File: b3mpar.c 4 * Author: 1995 Min-Chie Jeng and Mansun Chan. 5 * Modified by Paolo Nenzi 2002 6 **********/ 7 8 /* 9 * Release Notes: 10 * BSIM3v1v3.1, Released by yuhua 96/12/08 11 */ 12 13 #include "ngspice/ngspice.h" 14 #include "bsim3v1def.h" 15 #include "ngspice/ifsim.h" 16 #include "ngspice/sperror.h" 17 #include "ngspice/suffix.h" 18 19 20 int BSIM3v1mParam(int param,IFvalue * value,GENmodel * inMod)21BSIM3v1mParam(int param, IFvalue *value, GENmodel *inMod) 22 { 23 BSIM3v1model *mod = (BSIM3v1model*)inMod; 24 switch(param) 25 { case BSIM3v1_MOD_MOBMOD : 26 mod->BSIM3v1mobMod = value->iValue; 27 mod->BSIM3v1mobModGiven = TRUE; 28 break; 29 case BSIM3v1_MOD_BINUNIT : 30 mod->BSIM3v1binUnit = value->iValue; 31 mod->BSIM3v1binUnitGiven = TRUE; 32 break; 33 case BSIM3v1_MOD_PARAMCHK : 34 mod->BSIM3v1paramChk = value->iValue; 35 mod->BSIM3v1paramChkGiven = TRUE; 36 break; 37 case BSIM3v1_MOD_CAPMOD : 38 mod->BSIM3v1capMod = value->iValue; 39 mod->BSIM3v1capModGiven = TRUE; 40 break; 41 case BSIM3v1_MOD_NQSMOD : 42 mod->BSIM3v1nqsMod = value->iValue; 43 mod->BSIM3v1nqsModGiven = TRUE; 44 break; 45 case BSIM3v1_MOD_NOIMOD : 46 mod->BSIM3v1noiMod = value->iValue; 47 mod->BSIM3v1noiModGiven = TRUE; 48 break; 49 case BSIM3v1_MOD_VERSION : 50 mod->BSIM3v1version = value->rValue; 51 mod->BSIM3v1versionGiven = TRUE; 52 break; 53 case BSIM3v1_MOD_TOX : 54 mod->BSIM3v1tox = value->rValue; 55 mod->BSIM3v1toxGiven = TRUE; 56 break; 57 58 case BSIM3v1_MOD_CDSC : 59 mod->BSIM3v1cdsc = value->rValue; 60 mod->BSIM3v1cdscGiven = TRUE; 61 break; 62 case BSIM3v1_MOD_CDSCB : 63 mod->BSIM3v1cdscb = value->rValue; 64 mod->BSIM3v1cdscbGiven = TRUE; 65 break; 66 67 case BSIM3v1_MOD_CDSCD : 68 mod->BSIM3v1cdscd = value->rValue; 69 mod->BSIM3v1cdscdGiven = TRUE; 70 break; 71 72 case BSIM3v1_MOD_CIT : 73 mod->BSIM3v1cit = value->rValue; 74 mod->BSIM3v1citGiven = TRUE; 75 break; 76 case BSIM3v1_MOD_NFACTOR : 77 mod->BSIM3v1nfactor = value->rValue; 78 mod->BSIM3v1nfactorGiven = TRUE; 79 break; 80 case BSIM3v1_MOD_XJ: 81 mod->BSIM3v1xj = value->rValue; 82 mod->BSIM3v1xjGiven = TRUE; 83 break; 84 case BSIM3v1_MOD_VSAT: 85 mod->BSIM3v1vsat = value->rValue; 86 mod->BSIM3v1vsatGiven = TRUE; 87 break; 88 case BSIM3v1_MOD_A0: 89 mod->BSIM3v1a0 = value->rValue; 90 mod->BSIM3v1a0Given = TRUE; 91 break; 92 93 case BSIM3v1_MOD_AGS: 94 mod->BSIM3v1ags= value->rValue; 95 mod->BSIM3v1agsGiven = TRUE; 96 break; 97 98 case BSIM3v1_MOD_A1: 99 mod->BSIM3v1a1 = value->rValue; 100 mod->BSIM3v1a1Given = TRUE; 101 break; 102 case BSIM3v1_MOD_A2: 103 mod->BSIM3v1a2 = value->rValue; 104 mod->BSIM3v1a2Given = TRUE; 105 break; 106 case BSIM3v1_MOD_AT: 107 mod->BSIM3v1at = value->rValue; 108 mod->BSIM3v1atGiven = TRUE; 109 break; 110 case BSIM3v1_MOD_KETA: 111 mod->BSIM3v1keta = value->rValue; 112 mod->BSIM3v1ketaGiven = TRUE; 113 break; 114 case BSIM3v1_MOD_NSUB: 115 mod->BSIM3v1nsub = value->rValue; 116 mod->BSIM3v1nsubGiven = TRUE; 117 break; 118 case BSIM3v1_MOD_NPEAK: 119 mod->BSIM3v1npeak = value->rValue; 120 mod->BSIM3v1npeakGiven = TRUE; 121 if (mod->BSIM3v1npeak > 1.0e20) 122 mod->BSIM3v1npeak *= 1.0e-6; 123 break; 124 case BSIM3v1_MOD_NGATE: 125 mod->BSIM3v1ngate = value->rValue; 126 mod->BSIM3v1ngateGiven = TRUE; 127 if (mod->BSIM3v1ngate > 1.000001e24) 128 mod->BSIM3v1ngate *= 1.0e-6; 129 break; 130 case BSIM3v1_MOD_GAMMA1: 131 mod->BSIM3v1gamma1 = value->rValue; 132 mod->BSIM3v1gamma1Given = TRUE; 133 break; 134 case BSIM3v1_MOD_GAMMA2: 135 mod->BSIM3v1gamma2 = value->rValue; 136 mod->BSIM3v1gamma2Given = TRUE; 137 break; 138 case BSIM3v1_MOD_VBX: 139 mod->BSIM3v1vbx = value->rValue; 140 mod->BSIM3v1vbxGiven = TRUE; 141 break; 142 case BSIM3v1_MOD_VBM: 143 mod->BSIM3v1vbm = value->rValue; 144 mod->BSIM3v1vbmGiven = TRUE; 145 break; 146 case BSIM3v1_MOD_XT: 147 mod->BSIM3v1xt = value->rValue; 148 mod->BSIM3v1xtGiven = TRUE; 149 break; 150 case BSIM3v1_MOD_K1: 151 mod->BSIM3v1k1 = value->rValue; 152 mod->BSIM3v1k1Given = TRUE; 153 break; 154 case BSIM3v1_MOD_KT1: 155 mod->BSIM3v1kt1 = value->rValue; 156 mod->BSIM3v1kt1Given = TRUE; 157 break; 158 case BSIM3v1_MOD_KT1L: 159 mod->BSIM3v1kt1l = value->rValue; 160 mod->BSIM3v1kt1lGiven = TRUE; 161 break; 162 case BSIM3v1_MOD_KT2: 163 mod->BSIM3v1kt2 = value->rValue; 164 mod->BSIM3v1kt2Given = TRUE; 165 break; 166 case BSIM3v1_MOD_K2: 167 mod->BSIM3v1k2 = value->rValue; 168 mod->BSIM3v1k2Given = TRUE; 169 break; 170 case BSIM3v1_MOD_K3: 171 mod->BSIM3v1k3 = value->rValue; 172 mod->BSIM3v1k3Given = TRUE; 173 break; 174 case BSIM3v1_MOD_K3B: 175 mod->BSIM3v1k3b = value->rValue; 176 mod->BSIM3v1k3bGiven = TRUE; 177 break; 178 case BSIM3v1_MOD_NLX: 179 mod->BSIM3v1nlx = value->rValue; 180 mod->BSIM3v1nlxGiven = TRUE; 181 break; 182 case BSIM3v1_MOD_W0: 183 mod->BSIM3v1w0 = value->rValue; 184 mod->BSIM3v1w0Given = TRUE; 185 break; 186 case BSIM3v1_MOD_DVT0: 187 mod->BSIM3v1dvt0 = value->rValue; 188 mod->BSIM3v1dvt0Given = TRUE; 189 break; 190 case BSIM3v1_MOD_DVT1: 191 mod->BSIM3v1dvt1 = value->rValue; 192 mod->BSIM3v1dvt1Given = TRUE; 193 break; 194 case BSIM3v1_MOD_DVT2: 195 mod->BSIM3v1dvt2 = value->rValue; 196 mod->BSIM3v1dvt2Given = TRUE; 197 break; 198 case BSIM3v1_MOD_DVT0W: 199 mod->BSIM3v1dvt0w = value->rValue; 200 mod->BSIM3v1dvt0wGiven = TRUE; 201 break; 202 case BSIM3v1_MOD_DVT1W: 203 mod->BSIM3v1dvt1w = value->rValue; 204 mod->BSIM3v1dvt1wGiven = TRUE; 205 break; 206 case BSIM3v1_MOD_DVT2W: 207 mod->BSIM3v1dvt2w = value->rValue; 208 mod->BSIM3v1dvt2wGiven = TRUE; 209 break; 210 case BSIM3v1_MOD_DROUT: 211 mod->BSIM3v1drout = value->rValue; 212 mod->BSIM3v1droutGiven = TRUE; 213 break; 214 case BSIM3v1_MOD_DSUB: 215 mod->BSIM3v1dsub = value->rValue; 216 mod->BSIM3v1dsubGiven = TRUE; 217 break; 218 case BSIM3v1_MOD_VTH0: 219 mod->BSIM3v1vth0 = value->rValue; 220 mod->BSIM3v1vth0Given = TRUE; 221 break; 222 case BSIM3v1_MOD_UA: 223 mod->BSIM3v1ua = value->rValue; 224 mod->BSIM3v1uaGiven = TRUE; 225 break; 226 case BSIM3v1_MOD_UA1: 227 mod->BSIM3v1ua1 = value->rValue; 228 mod->BSIM3v1ua1Given = TRUE; 229 break; 230 case BSIM3v1_MOD_UB: 231 mod->BSIM3v1ub = value->rValue; 232 mod->BSIM3v1ubGiven = TRUE; 233 break; 234 case BSIM3v1_MOD_UB1: 235 mod->BSIM3v1ub1 = value->rValue; 236 mod->BSIM3v1ub1Given = TRUE; 237 break; 238 case BSIM3v1_MOD_UC: 239 mod->BSIM3v1uc = value->rValue; 240 mod->BSIM3v1ucGiven = TRUE; 241 break; 242 case BSIM3v1_MOD_UC1: 243 mod->BSIM3v1uc1 = value->rValue; 244 mod->BSIM3v1uc1Given = TRUE; 245 break; 246 case BSIM3v1_MOD_U0 : 247 mod->BSIM3v1u0 = value->rValue; 248 mod->BSIM3v1u0Given = TRUE; 249 break; 250 case BSIM3v1_MOD_UTE : 251 mod->BSIM3v1ute = value->rValue; 252 mod->BSIM3v1uteGiven = TRUE; 253 break; 254 case BSIM3v1_MOD_VOFF: 255 mod->BSIM3v1voff = value->rValue; 256 mod->BSIM3v1voffGiven = TRUE; 257 break; 258 case BSIM3v1_MOD_DELTA : 259 mod->BSIM3v1delta = value->rValue; 260 mod->BSIM3v1deltaGiven = TRUE; 261 break; 262 case BSIM3v1_MOD_RDSW: 263 mod->BSIM3v1rdsw = value->rValue; 264 mod->BSIM3v1rdswGiven = TRUE; 265 break; 266 case BSIM3v1_MOD_PRWG: 267 mod->BSIM3v1prwg = value->rValue; 268 mod->BSIM3v1prwgGiven = TRUE; 269 break; 270 case BSIM3v1_MOD_PRWB: 271 mod->BSIM3v1prwb = value->rValue; 272 mod->BSIM3v1prwbGiven = TRUE; 273 break; 274 case BSIM3v1_MOD_PRT: 275 mod->BSIM3v1prt = value->rValue; 276 mod->BSIM3v1prtGiven = TRUE; 277 break; 278 case BSIM3v1_MOD_ETA0: 279 mod->BSIM3v1eta0 = value->rValue; 280 mod->BSIM3v1eta0Given = TRUE; 281 break; 282 case BSIM3v1_MOD_ETAB: 283 mod->BSIM3v1etab = value->rValue; 284 mod->BSIM3v1etabGiven = TRUE; 285 break; 286 case BSIM3v1_MOD_PCLM: 287 mod->BSIM3v1pclm = value->rValue; 288 mod->BSIM3v1pclmGiven = TRUE; 289 break; 290 case BSIM3v1_MOD_PDIBL1: 291 mod->BSIM3v1pdibl1 = value->rValue; 292 mod->BSIM3v1pdibl1Given = TRUE; 293 break; 294 case BSIM3v1_MOD_PDIBL2: 295 mod->BSIM3v1pdibl2 = value->rValue; 296 mod->BSIM3v1pdibl2Given = TRUE; 297 break; 298 case BSIM3v1_MOD_PDIBLB: 299 mod->BSIM3v1pdiblb = value->rValue; 300 mod->BSIM3v1pdiblbGiven = TRUE; 301 break; 302 case BSIM3v1_MOD_PSCBE1: 303 mod->BSIM3v1pscbe1 = value->rValue; 304 mod->BSIM3v1pscbe1Given = TRUE; 305 break; 306 case BSIM3v1_MOD_PSCBE2: 307 mod->BSIM3v1pscbe2 = value->rValue; 308 mod->BSIM3v1pscbe2Given = TRUE; 309 break; 310 case BSIM3v1_MOD_PVAG: 311 mod->BSIM3v1pvag = value->rValue; 312 mod->BSIM3v1pvagGiven = TRUE; 313 break; 314 case BSIM3v1_MOD_WR : 315 mod->BSIM3v1wr = value->rValue; 316 mod->BSIM3v1wrGiven = TRUE; 317 break; 318 case BSIM3v1_MOD_DWG : 319 mod->BSIM3v1dwg = value->rValue; 320 mod->BSIM3v1dwgGiven = TRUE; 321 break; 322 case BSIM3v1_MOD_DWB : 323 mod->BSIM3v1dwb = value->rValue; 324 mod->BSIM3v1dwbGiven = TRUE; 325 break; 326 case BSIM3v1_MOD_B0 : 327 mod->BSIM3v1b0 = value->rValue; 328 mod->BSIM3v1b0Given = TRUE; 329 break; 330 case BSIM3v1_MOD_B1 : 331 mod->BSIM3v1b1 = value->rValue; 332 mod->BSIM3v1b1Given = TRUE; 333 break; 334 case BSIM3v1_MOD_ALPHA0 : 335 mod->BSIM3v1alpha0 = value->rValue; 336 mod->BSIM3v1alpha0Given = TRUE; 337 break; 338 case BSIM3v1_MOD_BETA0 : 339 mod->BSIM3v1beta0 = value->rValue; 340 mod->BSIM3v1beta0Given = TRUE; 341 break; 342 343 case BSIM3v1_MOD_ELM : 344 mod->BSIM3v1elm = value->rValue; 345 mod->BSIM3v1elmGiven = TRUE; 346 break; 347 case BSIM3v1_MOD_CGSL : 348 mod->BSIM3v1cgsl = value->rValue; 349 mod->BSIM3v1cgslGiven = TRUE; 350 break; 351 case BSIM3v1_MOD_CGDL : 352 mod->BSIM3v1cgdl = value->rValue; 353 mod->BSIM3v1cgdlGiven = TRUE; 354 break; 355 case BSIM3v1_MOD_CKAPPA : 356 mod->BSIM3v1ckappa = value->rValue; 357 mod->BSIM3v1ckappaGiven = TRUE; 358 break; 359 case BSIM3v1_MOD_CF : 360 mod->BSIM3v1cf = value->rValue; 361 mod->BSIM3v1cfGiven = TRUE; 362 break; 363 case BSIM3v1_MOD_CLC : 364 mod->BSIM3v1clc = value->rValue; 365 mod->BSIM3v1clcGiven = TRUE; 366 break; 367 case BSIM3v1_MOD_CLE : 368 mod->BSIM3v1cle = value->rValue; 369 mod->BSIM3v1cleGiven = TRUE; 370 break; 371 case BSIM3v1_MOD_DWC : 372 mod->BSIM3v1dwc = value->rValue; 373 mod->BSIM3v1dwcGiven = TRUE; 374 break; 375 case BSIM3v1_MOD_DLC : 376 mod->BSIM3v1dlc = value->rValue; 377 mod->BSIM3v1dlcGiven = TRUE; 378 break; 379 case BSIM3v1_MOD_VFBCV : 380 mod->BSIM3v1vfbcv = value->rValue; 381 mod->BSIM3v1vfbcvGiven = TRUE; 382 break; 383 384 /* Length dependence */ 385 case BSIM3v1_MOD_LCDSC : 386 mod->BSIM3v1lcdsc = value->rValue; 387 mod->BSIM3v1lcdscGiven = TRUE; 388 break; 389 390 391 case BSIM3v1_MOD_LCDSCB : 392 mod->BSIM3v1lcdscb = value->rValue; 393 mod->BSIM3v1lcdscbGiven = TRUE; 394 break; 395 case BSIM3v1_MOD_LCDSCD : 396 mod->BSIM3v1lcdscd = value->rValue; 397 mod->BSIM3v1lcdscdGiven = TRUE; 398 break; 399 case BSIM3v1_MOD_LCIT : 400 mod->BSIM3v1lcit = value->rValue; 401 mod->BSIM3v1lcitGiven = TRUE; 402 break; 403 case BSIM3v1_MOD_LNFACTOR : 404 mod->BSIM3v1lnfactor = value->rValue; 405 mod->BSIM3v1lnfactorGiven = TRUE; 406 break; 407 case BSIM3v1_MOD_LXJ: 408 mod->BSIM3v1lxj = value->rValue; 409 mod->BSIM3v1lxjGiven = TRUE; 410 break; 411 case BSIM3v1_MOD_LVSAT: 412 mod->BSIM3v1lvsat = value->rValue; 413 mod->BSIM3v1lvsatGiven = TRUE; 414 break; 415 416 417 case BSIM3v1_MOD_LA0: 418 mod->BSIM3v1la0 = value->rValue; 419 mod->BSIM3v1la0Given = TRUE; 420 break; 421 case BSIM3v1_MOD_LAGS: 422 mod->BSIM3v1lags = value->rValue; 423 mod->BSIM3v1lagsGiven = TRUE; 424 break; 425 case BSIM3v1_MOD_LA1: 426 mod->BSIM3v1la1 = value->rValue; 427 mod->BSIM3v1la1Given = TRUE; 428 break; 429 case BSIM3v1_MOD_LA2: 430 mod->BSIM3v1la2 = value->rValue; 431 mod->BSIM3v1la2Given = TRUE; 432 break; 433 case BSIM3v1_MOD_LAT: 434 mod->BSIM3v1lat = value->rValue; 435 mod->BSIM3v1latGiven = TRUE; 436 break; 437 case BSIM3v1_MOD_LKETA: 438 mod->BSIM3v1lketa = value->rValue; 439 mod->BSIM3v1lketaGiven = TRUE; 440 break; 441 case BSIM3v1_MOD_LNSUB: 442 mod->BSIM3v1lnsub = value->rValue; 443 mod->BSIM3v1lnsubGiven = TRUE; 444 break; 445 case BSIM3v1_MOD_LNPEAK: 446 mod->BSIM3v1lnpeak = value->rValue; 447 mod->BSIM3v1lnpeakGiven = TRUE; 448 if (mod->BSIM3v1lnpeak > 1.0e20) 449 mod->BSIM3v1lnpeak *= 1.0e-6; 450 break; 451 case BSIM3v1_MOD_LNGATE: 452 mod->BSIM3v1lngate = value->rValue; 453 mod->BSIM3v1lngateGiven = TRUE; 454 if (mod->BSIM3v1lngate > 1.0e23) 455 mod->BSIM3v1lngate *= 1.0e-6; 456 break; 457 case BSIM3v1_MOD_LGAMMA1: 458 mod->BSIM3v1lgamma1 = value->rValue; 459 mod->BSIM3v1lgamma1Given = TRUE; 460 break; 461 case BSIM3v1_MOD_LGAMMA2: 462 mod->BSIM3v1lgamma2 = value->rValue; 463 mod->BSIM3v1lgamma2Given = TRUE; 464 break; 465 case BSIM3v1_MOD_LVBX: 466 mod->BSIM3v1lvbx = value->rValue; 467 mod->BSIM3v1lvbxGiven = TRUE; 468 break; 469 case BSIM3v1_MOD_LVBM: 470 mod->BSIM3v1lvbm = value->rValue; 471 mod->BSIM3v1lvbmGiven = TRUE; 472 break; 473 case BSIM3v1_MOD_LXT: 474 mod->BSIM3v1lxt = value->rValue; 475 mod->BSIM3v1lxtGiven = TRUE; 476 break; 477 case BSIM3v1_MOD_LK1: 478 mod->BSIM3v1lk1 = value->rValue; 479 mod->BSIM3v1lk1Given = TRUE; 480 break; 481 case BSIM3v1_MOD_LKT1: 482 mod->BSIM3v1lkt1 = value->rValue; 483 mod->BSIM3v1lkt1Given = TRUE; 484 break; 485 case BSIM3v1_MOD_LKT1L: 486 mod->BSIM3v1lkt1l = value->rValue; 487 mod->BSIM3v1lkt1lGiven = TRUE; 488 break; 489 case BSIM3v1_MOD_LKT2: 490 mod->BSIM3v1lkt2 = value->rValue; 491 mod->BSIM3v1lkt2Given = TRUE; 492 break; 493 case BSIM3v1_MOD_LK2: 494 mod->BSIM3v1lk2 = value->rValue; 495 mod->BSIM3v1lk2Given = TRUE; 496 break; 497 case BSIM3v1_MOD_LK3: 498 mod->BSIM3v1lk3 = value->rValue; 499 mod->BSIM3v1lk3Given = TRUE; 500 break; 501 case BSIM3v1_MOD_LK3B: 502 mod->BSIM3v1lk3b = value->rValue; 503 mod->BSIM3v1lk3bGiven = TRUE; 504 break; 505 case BSIM3v1_MOD_LNLX: 506 mod->BSIM3v1lnlx = value->rValue; 507 mod->BSIM3v1lnlxGiven = TRUE; 508 break; 509 case BSIM3v1_MOD_LW0: 510 mod->BSIM3v1lw0 = value->rValue; 511 mod->BSIM3v1lw0Given = TRUE; 512 break; 513 case BSIM3v1_MOD_LDVT0: 514 mod->BSIM3v1ldvt0 = value->rValue; 515 mod->BSIM3v1ldvt0Given = TRUE; 516 break; 517 case BSIM3v1_MOD_LDVT1: 518 mod->BSIM3v1ldvt1 = value->rValue; 519 mod->BSIM3v1ldvt1Given = TRUE; 520 break; 521 case BSIM3v1_MOD_LDVT2: 522 mod->BSIM3v1ldvt2 = value->rValue; 523 mod->BSIM3v1ldvt2Given = TRUE; 524 break; 525 case BSIM3v1_MOD_LDVT0W: 526 mod->BSIM3v1ldvt0w = value->rValue; 527 mod->BSIM3v1ldvt0Given = TRUE; 528 break; 529 case BSIM3v1_MOD_LDVT1W: 530 mod->BSIM3v1ldvt1w = value->rValue; 531 mod->BSIM3v1ldvt1wGiven = TRUE; 532 break; 533 case BSIM3v1_MOD_LDVT2W: 534 mod->BSIM3v1ldvt2w = value->rValue; 535 mod->BSIM3v1ldvt2wGiven = TRUE; 536 break; 537 case BSIM3v1_MOD_LDROUT: 538 mod->BSIM3v1ldrout = value->rValue; 539 mod->BSIM3v1ldroutGiven = TRUE; 540 break; 541 case BSIM3v1_MOD_LDSUB: 542 mod->BSIM3v1ldsub = value->rValue; 543 mod->BSIM3v1ldsubGiven = TRUE; 544 break; 545 case BSIM3v1_MOD_LVTH0: 546 mod->BSIM3v1lvth0 = value->rValue; 547 mod->BSIM3v1lvth0Given = TRUE; 548 break; 549 case BSIM3v1_MOD_LUA: 550 mod->BSIM3v1lua = value->rValue; 551 mod->BSIM3v1luaGiven = TRUE; 552 break; 553 case BSIM3v1_MOD_LUA1: 554 mod->BSIM3v1lua1 = value->rValue; 555 mod->BSIM3v1lua1Given = TRUE; 556 break; 557 case BSIM3v1_MOD_LUB: 558 mod->BSIM3v1lub = value->rValue; 559 mod->BSIM3v1lubGiven = TRUE; 560 break; 561 case BSIM3v1_MOD_LUB1: 562 mod->BSIM3v1lub1 = value->rValue; 563 mod->BSIM3v1lub1Given = TRUE; 564 break; 565 case BSIM3v1_MOD_LUC: 566 mod->BSIM3v1luc = value->rValue; 567 mod->BSIM3v1lucGiven = TRUE; 568 break; 569 case BSIM3v1_MOD_LUC1: 570 mod->BSIM3v1luc1 = value->rValue; 571 mod->BSIM3v1luc1Given = TRUE; 572 break; 573 case BSIM3v1_MOD_LU0 : 574 mod->BSIM3v1lu0 = value->rValue; 575 mod->BSIM3v1lu0Given = TRUE; 576 break; 577 case BSIM3v1_MOD_LUTE : 578 mod->BSIM3v1lute = value->rValue; 579 mod->BSIM3v1luteGiven = TRUE; 580 break; 581 case BSIM3v1_MOD_LVOFF: 582 mod->BSIM3v1lvoff = value->rValue; 583 mod->BSIM3v1lvoffGiven = TRUE; 584 break; 585 case BSIM3v1_MOD_LDELTA : 586 mod->BSIM3v1ldelta = value->rValue; 587 mod->BSIM3v1ldeltaGiven = TRUE; 588 break; 589 case BSIM3v1_MOD_LRDSW: 590 mod->BSIM3v1lrdsw = value->rValue; 591 mod->BSIM3v1lrdswGiven = TRUE; 592 break; 593 case BSIM3v1_MOD_LPRWB: 594 mod->BSIM3v1lprwb = value->rValue; 595 mod->BSIM3v1lprwbGiven = TRUE; 596 break; 597 case BSIM3v1_MOD_LPRWG: 598 mod->BSIM3v1lprwg = value->rValue; 599 mod->BSIM3v1lprwgGiven = TRUE; 600 break; 601 case BSIM3v1_MOD_LPRT: 602 mod->BSIM3v1lprt = value->rValue; 603 mod->BSIM3v1lprtGiven = TRUE; 604 break; 605 case BSIM3v1_MOD_LETA0: 606 mod->BSIM3v1leta0 = value->rValue; 607 mod->BSIM3v1leta0Given = TRUE; 608 break; 609 case BSIM3v1_MOD_LETAB: 610 mod->BSIM3v1letab = value->rValue; 611 mod->BSIM3v1letabGiven = TRUE; 612 break; 613 case BSIM3v1_MOD_LPCLM: 614 mod->BSIM3v1lpclm = value->rValue; 615 mod->BSIM3v1lpclmGiven = TRUE; 616 break; 617 case BSIM3v1_MOD_LPDIBL1: 618 mod->BSIM3v1lpdibl1 = value->rValue; 619 mod->BSIM3v1lpdibl1Given = TRUE; 620 break; 621 case BSIM3v1_MOD_LPDIBL2: 622 mod->BSIM3v1lpdibl2 = value->rValue; 623 mod->BSIM3v1lpdibl2Given = TRUE; 624 break; 625 case BSIM3v1_MOD_LPDIBLB: 626 mod->BSIM3v1lpdiblb = value->rValue; 627 mod->BSIM3v1lpdiblbGiven = TRUE; 628 break; 629 case BSIM3v1_MOD_LPSCBE1: 630 mod->BSIM3v1lpscbe1 = value->rValue; 631 mod->BSIM3v1lpscbe1Given = TRUE; 632 break; 633 case BSIM3v1_MOD_LPSCBE2: 634 mod->BSIM3v1lpscbe2 = value->rValue; 635 mod->BSIM3v1lpscbe2Given = TRUE; 636 break; 637 case BSIM3v1_MOD_LPVAG: 638 mod->BSIM3v1lpvag = value->rValue; 639 mod->BSIM3v1lpvagGiven = TRUE; 640 break; 641 case BSIM3v1_MOD_LWR : 642 mod->BSIM3v1lwr = value->rValue; 643 mod->BSIM3v1lwrGiven = TRUE; 644 break; 645 case BSIM3v1_MOD_LDWG : 646 mod->BSIM3v1ldwg = value->rValue; 647 mod->BSIM3v1ldwgGiven = TRUE; 648 break; 649 case BSIM3v1_MOD_LDWB : 650 mod->BSIM3v1ldwb = value->rValue; 651 mod->BSIM3v1ldwbGiven = TRUE; 652 break; 653 case BSIM3v1_MOD_LB0 : 654 mod->BSIM3v1lb0 = value->rValue; 655 mod->BSIM3v1lb0Given = TRUE; 656 break; 657 case BSIM3v1_MOD_LB1 : 658 mod->BSIM3v1lb1 = value->rValue; 659 mod->BSIM3v1lb1Given = TRUE; 660 break; 661 case BSIM3v1_MOD_LALPHA0 : 662 mod->BSIM3v1lalpha0 = value->rValue; 663 mod->BSIM3v1lalpha0Given = TRUE; 664 break; 665 case BSIM3v1_MOD_LBETA0 : 666 mod->BSIM3v1lbeta0 = value->rValue; 667 mod->BSIM3v1lbeta0Given = TRUE; 668 break; 669 670 case BSIM3v1_MOD_LELM : 671 mod->BSIM3v1lelm = value->rValue; 672 mod->BSIM3v1lelmGiven = TRUE; 673 break; 674 case BSIM3v1_MOD_LCGSL : 675 mod->BSIM3v1lcgsl = value->rValue; 676 mod->BSIM3v1lcgslGiven = TRUE; 677 break; 678 case BSIM3v1_MOD_LCGDL : 679 mod->BSIM3v1lcgdl = value->rValue; 680 mod->BSIM3v1lcgdlGiven = TRUE; 681 break; 682 case BSIM3v1_MOD_LCKAPPA : 683 mod->BSIM3v1lckappa = value->rValue; 684 mod->BSIM3v1lckappaGiven = TRUE; 685 break; 686 case BSIM3v1_MOD_LCF : 687 mod->BSIM3v1lcf = value->rValue; 688 mod->BSIM3v1lcfGiven = TRUE; 689 break; 690 case BSIM3v1_MOD_LCLC : 691 mod->BSIM3v1lclc = value->rValue; 692 mod->BSIM3v1lclcGiven = TRUE; 693 break; 694 case BSIM3v1_MOD_LCLE : 695 mod->BSIM3v1lcle = value->rValue; 696 mod->BSIM3v1lcleGiven = TRUE; 697 break; 698 case BSIM3v1_MOD_LVFBCV : 699 mod->BSIM3v1lvfbcv = value->rValue; 700 mod->BSIM3v1lvfbcvGiven = TRUE; 701 break; 702 703 /* Width dependence */ 704 case BSIM3v1_MOD_WCDSC : 705 mod->BSIM3v1wcdsc = value->rValue; 706 mod->BSIM3v1wcdscGiven = TRUE; 707 break; 708 709 710 case BSIM3v1_MOD_WCDSCB : 711 mod->BSIM3v1wcdscb = value->rValue; 712 mod->BSIM3v1wcdscbGiven = TRUE; 713 break; 714 case BSIM3v1_MOD_WCDSCD : 715 mod->BSIM3v1wcdscd = value->rValue; 716 mod->BSIM3v1wcdscdGiven = TRUE; 717 break; 718 case BSIM3v1_MOD_WCIT : 719 mod->BSIM3v1wcit = value->rValue; 720 mod->BSIM3v1wcitGiven = TRUE; 721 break; 722 case BSIM3v1_MOD_WNFACTOR : 723 mod->BSIM3v1wnfactor = value->rValue; 724 mod->BSIM3v1wnfactorGiven = TRUE; 725 break; 726 case BSIM3v1_MOD_WXJ: 727 mod->BSIM3v1wxj = value->rValue; 728 mod->BSIM3v1wxjGiven = TRUE; 729 break; 730 case BSIM3v1_MOD_WVSAT: 731 mod->BSIM3v1wvsat = value->rValue; 732 mod->BSIM3v1wvsatGiven = TRUE; 733 break; 734 735 736 case BSIM3v1_MOD_WA0: 737 mod->BSIM3v1wa0 = value->rValue; 738 mod->BSIM3v1wa0Given = TRUE; 739 break; 740 case BSIM3v1_MOD_WAGS: 741 mod->BSIM3v1wags = value->rValue; 742 mod->BSIM3v1wagsGiven = TRUE; 743 break; 744 case BSIM3v1_MOD_WA1: 745 mod->BSIM3v1wa1 = value->rValue; 746 mod->BSIM3v1wa1Given = TRUE; 747 break; 748 case BSIM3v1_MOD_WA2: 749 mod->BSIM3v1wa2 = value->rValue; 750 mod->BSIM3v1wa2Given = TRUE; 751 break; 752 case BSIM3v1_MOD_WAT: 753 mod->BSIM3v1wat = value->rValue; 754 mod->BSIM3v1watGiven = TRUE; 755 break; 756 case BSIM3v1_MOD_WKETA: 757 mod->BSIM3v1wketa = value->rValue; 758 mod->BSIM3v1wketaGiven = TRUE; 759 break; 760 case BSIM3v1_MOD_WNSUB: 761 mod->BSIM3v1wnsub = value->rValue; 762 mod->BSIM3v1wnsubGiven = TRUE; 763 break; 764 case BSIM3v1_MOD_WNPEAK: 765 mod->BSIM3v1wnpeak = value->rValue; 766 mod->BSIM3v1wnpeakGiven = TRUE; 767 if (mod->BSIM3v1wnpeak > 1.0e20) 768 mod->BSIM3v1wnpeak *= 1.0e-6; 769 break; 770 case BSIM3v1_MOD_WNGATE: 771 mod->BSIM3v1wngate = value->rValue; 772 mod->BSIM3v1wngateGiven = TRUE; 773 if (mod->BSIM3v1wngate > 1.0e23) 774 mod->BSIM3v1wngate *= 1.0e-6; 775 break; 776 case BSIM3v1_MOD_WGAMMA1: 777 mod->BSIM3v1wgamma1 = value->rValue; 778 mod->BSIM3v1wgamma1Given = TRUE; 779 break; 780 case BSIM3v1_MOD_WGAMMA2: 781 mod->BSIM3v1wgamma2 = value->rValue; 782 mod->BSIM3v1wgamma2Given = TRUE; 783 break; 784 case BSIM3v1_MOD_WVBX: 785 mod->BSIM3v1wvbx = value->rValue; 786 mod->BSIM3v1wvbxGiven = TRUE; 787 break; 788 case BSIM3v1_MOD_WVBM: 789 mod->BSIM3v1wvbm = value->rValue; 790 mod->BSIM3v1wvbmGiven = TRUE; 791 break; 792 case BSIM3v1_MOD_WXT: 793 mod->BSIM3v1wxt = value->rValue; 794 mod->BSIM3v1wxtGiven = TRUE; 795 break; 796 case BSIM3v1_MOD_WK1: 797 mod->BSIM3v1wk1 = value->rValue; 798 mod->BSIM3v1wk1Given = TRUE; 799 break; 800 case BSIM3v1_MOD_WKT1: 801 mod->BSIM3v1wkt1 = value->rValue; 802 mod->BSIM3v1wkt1Given = TRUE; 803 break; 804 case BSIM3v1_MOD_WKT1L: 805 mod->BSIM3v1wkt1l = value->rValue; 806 mod->BSIM3v1wkt1lGiven = TRUE; 807 break; 808 case BSIM3v1_MOD_WKT2: 809 mod->BSIM3v1wkt2 = value->rValue; 810 mod->BSIM3v1wkt2Given = TRUE; 811 break; 812 case BSIM3v1_MOD_WK2: 813 mod->BSIM3v1wk2 = value->rValue; 814 mod->BSIM3v1wk2Given = TRUE; 815 break; 816 case BSIM3v1_MOD_WK3: 817 mod->BSIM3v1wk3 = value->rValue; 818 mod->BSIM3v1wk3Given = TRUE; 819 break; 820 case BSIM3v1_MOD_WK3B: 821 mod->BSIM3v1wk3b = value->rValue; 822 mod->BSIM3v1wk3bGiven = TRUE; 823 break; 824 case BSIM3v1_MOD_WNLX: 825 mod->BSIM3v1wnlx = value->rValue; 826 mod->BSIM3v1wnlxGiven = TRUE; 827 break; 828 case BSIM3v1_MOD_WW0: 829 mod->BSIM3v1ww0 = value->rValue; 830 mod->BSIM3v1ww0Given = TRUE; 831 break; 832 case BSIM3v1_MOD_WDVT0: 833 mod->BSIM3v1wdvt0 = value->rValue; 834 mod->BSIM3v1wdvt0Given = TRUE; 835 break; 836 case BSIM3v1_MOD_WDVT1: 837 mod->BSIM3v1wdvt1 = value->rValue; 838 mod->BSIM3v1wdvt1Given = TRUE; 839 break; 840 case BSIM3v1_MOD_WDVT2: 841 mod->BSIM3v1wdvt2 = value->rValue; 842 mod->BSIM3v1wdvt2Given = TRUE; 843 break; 844 case BSIM3v1_MOD_WDVT0W: 845 mod->BSIM3v1wdvt0w = value->rValue; 846 mod->BSIM3v1wdvt0wGiven = TRUE; 847 break; 848 case BSIM3v1_MOD_WDVT1W: 849 mod->BSIM3v1wdvt1w = value->rValue; 850 mod->BSIM3v1wdvt1wGiven = TRUE; 851 break; 852 case BSIM3v1_MOD_WDVT2W: 853 mod->BSIM3v1wdvt2w = value->rValue; 854 mod->BSIM3v1wdvt2wGiven = TRUE; 855 break; 856 case BSIM3v1_MOD_WDROUT: 857 mod->BSIM3v1wdrout = value->rValue; 858 mod->BSIM3v1wdroutGiven = TRUE; 859 break; 860 case BSIM3v1_MOD_WDSUB: 861 mod->BSIM3v1wdsub = value->rValue; 862 mod->BSIM3v1wdsubGiven = TRUE; 863 break; 864 case BSIM3v1_MOD_WVTH0: 865 mod->BSIM3v1wvth0 = value->rValue; 866 mod->BSIM3v1wvth0Given = TRUE; 867 break; 868 case BSIM3v1_MOD_WUA: 869 mod->BSIM3v1wua = value->rValue; 870 mod->BSIM3v1wuaGiven = TRUE; 871 break; 872 case BSIM3v1_MOD_WUA1: 873 mod->BSIM3v1wua1 = value->rValue; 874 mod->BSIM3v1wua1Given = TRUE; 875 break; 876 case BSIM3v1_MOD_WUB: 877 mod->BSIM3v1wub = value->rValue; 878 mod->BSIM3v1wubGiven = TRUE; 879 break; 880 case BSIM3v1_MOD_WUB1: 881 mod->BSIM3v1wub1 = value->rValue; 882 mod->BSIM3v1wub1Given = TRUE; 883 break; 884 case BSIM3v1_MOD_WUC: 885 mod->BSIM3v1wuc = value->rValue; 886 mod->BSIM3v1wucGiven = TRUE; 887 break; 888 case BSIM3v1_MOD_WUC1: 889 mod->BSIM3v1wuc1 = value->rValue; 890 mod->BSIM3v1wuc1Given = TRUE; 891 break; 892 case BSIM3v1_MOD_WU0 : 893 mod->BSIM3v1wu0 = value->rValue; 894 mod->BSIM3v1wu0Given = TRUE; 895 break; 896 case BSIM3v1_MOD_WUTE : 897 mod->BSIM3v1wute = value->rValue; 898 mod->BSIM3v1wuteGiven = TRUE; 899 break; 900 case BSIM3v1_MOD_WVOFF: 901 mod->BSIM3v1wvoff = value->rValue; 902 mod->BSIM3v1wvoffGiven = TRUE; 903 break; 904 case BSIM3v1_MOD_WDELTA : 905 mod->BSIM3v1wdelta = value->rValue; 906 mod->BSIM3v1wdeltaGiven = TRUE; 907 break; 908 case BSIM3v1_MOD_WRDSW: 909 mod->BSIM3v1wrdsw = value->rValue; 910 mod->BSIM3v1wrdswGiven = TRUE; 911 break; 912 case BSIM3v1_MOD_WPRWB: 913 mod->BSIM3v1wprwb = value->rValue; 914 mod->BSIM3v1wprwbGiven = TRUE; 915 break; 916 case BSIM3v1_MOD_WPRWG: 917 mod->BSIM3v1wprwg = value->rValue; 918 mod->BSIM3v1wprwgGiven = TRUE; 919 break; 920 case BSIM3v1_MOD_WPRT: 921 mod->BSIM3v1wprt = value->rValue; 922 mod->BSIM3v1wprtGiven = TRUE; 923 break; 924 case BSIM3v1_MOD_WETA0: 925 mod->BSIM3v1weta0 = value->rValue; 926 mod->BSIM3v1weta0Given = TRUE; 927 break; 928 case BSIM3v1_MOD_WETAB: 929 mod->BSIM3v1wetab = value->rValue; 930 mod->BSIM3v1wetabGiven = TRUE; 931 break; 932 case BSIM3v1_MOD_WPCLM: 933 mod->BSIM3v1wpclm = value->rValue; 934 mod->BSIM3v1wpclmGiven = TRUE; 935 break; 936 case BSIM3v1_MOD_WPDIBL1: 937 mod->BSIM3v1wpdibl1 = value->rValue; 938 mod->BSIM3v1wpdibl1Given = TRUE; 939 break; 940 case BSIM3v1_MOD_WPDIBL2: 941 mod->BSIM3v1wpdibl2 = value->rValue; 942 mod->BSIM3v1wpdibl2Given = TRUE; 943 break; 944 case BSIM3v1_MOD_WPDIBLB: 945 mod->BSIM3v1wpdiblb = value->rValue; 946 mod->BSIM3v1wpdiblbGiven = TRUE; 947 break; 948 case BSIM3v1_MOD_WPSCBE1: 949 mod->BSIM3v1wpscbe1 = value->rValue; 950 mod->BSIM3v1wpscbe1Given = TRUE; 951 break; 952 case BSIM3v1_MOD_WPSCBE2: 953 mod->BSIM3v1wpscbe2 = value->rValue; 954 mod->BSIM3v1wpscbe2Given = TRUE; 955 break; 956 case BSIM3v1_MOD_WPVAG: 957 mod->BSIM3v1wpvag = value->rValue; 958 mod->BSIM3v1wpvagGiven = TRUE; 959 break; 960 case BSIM3v1_MOD_WWR : 961 mod->BSIM3v1wwr = value->rValue; 962 mod->BSIM3v1wwrGiven = TRUE; 963 break; 964 case BSIM3v1_MOD_WDWG : 965 mod->BSIM3v1wdwg = value->rValue; 966 mod->BSIM3v1wdwgGiven = TRUE; 967 break; 968 case BSIM3v1_MOD_WDWB : 969 mod->BSIM3v1wdwb = value->rValue; 970 mod->BSIM3v1wdwbGiven = TRUE; 971 break; 972 case BSIM3v1_MOD_WB0 : 973 mod->BSIM3v1wb0 = value->rValue; 974 mod->BSIM3v1wb0Given = TRUE; 975 break; 976 case BSIM3v1_MOD_WB1 : 977 mod->BSIM3v1wb1 = value->rValue; 978 mod->BSIM3v1wb1Given = TRUE; 979 break; 980 case BSIM3v1_MOD_WALPHA0 : 981 mod->BSIM3v1walpha0 = value->rValue; 982 mod->BSIM3v1walpha0Given = TRUE; 983 break; 984 case BSIM3v1_MOD_WBETA0 : 985 mod->BSIM3v1wbeta0 = value->rValue; 986 mod->BSIM3v1wbeta0Given = TRUE; 987 break; 988 989 case BSIM3v1_MOD_WELM : 990 mod->BSIM3v1welm = value->rValue; 991 mod->BSIM3v1welmGiven = TRUE; 992 break; 993 case BSIM3v1_MOD_WCGSL : 994 mod->BSIM3v1wcgsl = value->rValue; 995 mod->BSIM3v1wcgslGiven = TRUE; 996 break; 997 case BSIM3v1_MOD_WCGDL : 998 mod->BSIM3v1wcgdl = value->rValue; 999 mod->BSIM3v1wcgdlGiven = TRUE; 1000 break; 1001 case BSIM3v1_MOD_WCKAPPA : 1002 mod->BSIM3v1wckappa = value->rValue; 1003 mod->BSIM3v1wckappaGiven = TRUE; 1004 break; 1005 case BSIM3v1_MOD_WCF : 1006 mod->BSIM3v1wcf = value->rValue; 1007 mod->BSIM3v1wcfGiven = TRUE; 1008 break; 1009 case BSIM3v1_MOD_WCLC : 1010 mod->BSIM3v1wclc = value->rValue; 1011 mod->BSIM3v1wclcGiven = TRUE; 1012 break; 1013 case BSIM3v1_MOD_WCLE : 1014 mod->BSIM3v1wcle = value->rValue; 1015 mod->BSIM3v1wcleGiven = TRUE; 1016 break; 1017 case BSIM3v1_MOD_WVFBCV : 1018 mod->BSIM3v1wvfbcv = value->rValue; 1019 mod->BSIM3v1wvfbcvGiven = TRUE; 1020 break; 1021 1022 /* Cross-term dependence */ 1023 case BSIM3v1_MOD_PCDSC : 1024 mod->BSIM3v1pcdsc = value->rValue; 1025 mod->BSIM3v1pcdscGiven = TRUE; 1026 break; 1027 1028 1029 case BSIM3v1_MOD_PCDSCB : 1030 mod->BSIM3v1pcdscb = value->rValue; 1031 mod->BSIM3v1pcdscbGiven = TRUE; 1032 break; 1033 case BSIM3v1_MOD_PCDSCD : 1034 mod->BSIM3v1pcdscd = value->rValue; 1035 mod->BSIM3v1pcdscdGiven = TRUE; 1036 break; 1037 case BSIM3v1_MOD_PCIT : 1038 mod->BSIM3v1pcit = value->rValue; 1039 mod->BSIM3v1pcitGiven = TRUE; 1040 break; 1041 case BSIM3v1_MOD_PNFACTOR : 1042 mod->BSIM3v1pnfactor = value->rValue; 1043 mod->BSIM3v1pnfactorGiven = TRUE; 1044 break; 1045 case BSIM3v1_MOD_PXJ: 1046 mod->BSIM3v1pxj = value->rValue; 1047 mod->BSIM3v1pxjGiven = TRUE; 1048 break; 1049 case BSIM3v1_MOD_PVSAT: 1050 mod->BSIM3v1pvsat = value->rValue; 1051 mod->BSIM3v1pvsatGiven = TRUE; 1052 break; 1053 1054 1055 case BSIM3v1_MOD_PA0: 1056 mod->BSIM3v1pa0 = value->rValue; 1057 mod->BSIM3v1pa0Given = TRUE; 1058 break; 1059 case BSIM3v1_MOD_PAGS: 1060 mod->BSIM3v1pags = value->rValue; 1061 mod->BSIM3v1pagsGiven = TRUE; 1062 break; 1063 case BSIM3v1_MOD_PA1: 1064 mod->BSIM3v1pa1 = value->rValue; 1065 mod->BSIM3v1pa1Given = TRUE; 1066 break; 1067 case BSIM3v1_MOD_PA2: 1068 mod->BSIM3v1pa2 = value->rValue; 1069 mod->BSIM3v1pa2Given = TRUE; 1070 break; 1071 case BSIM3v1_MOD_PAT: 1072 mod->BSIM3v1pat = value->rValue; 1073 mod->BSIM3v1patGiven = TRUE; 1074 break; 1075 case BSIM3v1_MOD_PKETA: 1076 mod->BSIM3v1pketa = value->rValue; 1077 mod->BSIM3v1pketaGiven = TRUE; 1078 break; 1079 case BSIM3v1_MOD_PNSUB: 1080 mod->BSIM3v1pnsub = value->rValue; 1081 mod->BSIM3v1pnsubGiven = TRUE; 1082 break; 1083 case BSIM3v1_MOD_PNPEAK: 1084 mod->BSIM3v1pnpeak = value->rValue; 1085 mod->BSIM3v1pnpeakGiven = TRUE; 1086 if (mod->BSIM3v1pnpeak > 1.0e20) 1087 mod->BSIM3v1pnpeak *= 1.0e-6; 1088 break; 1089 case BSIM3v1_MOD_PNGATE: 1090 mod->BSIM3v1pngate = value->rValue; 1091 mod->BSIM3v1pngateGiven = TRUE; 1092 if (mod->BSIM3v1pngate > 1.0e23) 1093 mod->BSIM3v1pngate *= 1.0e-6; 1094 break; 1095 case BSIM3v1_MOD_PGAMMA1: 1096 mod->BSIM3v1pgamma1 = value->rValue; 1097 mod->BSIM3v1pgamma1Given = TRUE; 1098 break; 1099 case BSIM3v1_MOD_PGAMMA2: 1100 mod->BSIM3v1pgamma2 = value->rValue; 1101 mod->BSIM3v1pgamma2Given = TRUE; 1102 break; 1103 case BSIM3v1_MOD_PVBX: 1104 mod->BSIM3v1pvbx = value->rValue; 1105 mod->BSIM3v1pvbxGiven = TRUE; 1106 break; 1107 case BSIM3v1_MOD_PVBM: 1108 mod->BSIM3v1pvbm = value->rValue; 1109 mod->BSIM3v1pvbmGiven = TRUE; 1110 break; 1111 case BSIM3v1_MOD_PXT: 1112 mod->BSIM3v1pxt = value->rValue; 1113 mod->BSIM3v1pxtGiven = TRUE; 1114 break; 1115 case BSIM3v1_MOD_PK1: 1116 mod->BSIM3v1pk1 = value->rValue; 1117 mod->BSIM3v1pk1Given = TRUE; 1118 break; 1119 case BSIM3v1_MOD_PKT1: 1120 mod->BSIM3v1pkt1 = value->rValue; 1121 mod->BSIM3v1pkt1Given = TRUE; 1122 break; 1123 case BSIM3v1_MOD_PKT1L: 1124 mod->BSIM3v1pkt1l = value->rValue; 1125 mod->BSIM3v1pkt1lGiven = TRUE; 1126 break; 1127 case BSIM3v1_MOD_PKT2: 1128 mod->BSIM3v1pkt2 = value->rValue; 1129 mod->BSIM3v1pkt2Given = TRUE; 1130 break; 1131 case BSIM3v1_MOD_PK2: 1132 mod->BSIM3v1pk2 = value->rValue; 1133 mod->BSIM3v1pk2Given = TRUE; 1134 break; 1135 case BSIM3v1_MOD_PK3: 1136 mod->BSIM3v1pk3 = value->rValue; 1137 mod->BSIM3v1pk3Given = TRUE; 1138 break; 1139 case BSIM3v1_MOD_PK3B: 1140 mod->BSIM3v1pk3b = value->rValue; 1141 mod->BSIM3v1pk3bGiven = TRUE; 1142 break; 1143 case BSIM3v1_MOD_PNLX: 1144 mod->BSIM3v1pnlx = value->rValue; 1145 mod->BSIM3v1pnlxGiven = TRUE; 1146 break; 1147 case BSIM3v1_MOD_PW0: 1148 mod->BSIM3v1pw0 = value->rValue; 1149 mod->BSIM3v1pw0Given = TRUE; 1150 break; 1151 case BSIM3v1_MOD_PDVT0: 1152 mod->BSIM3v1pdvt0 = value->rValue; 1153 mod->BSIM3v1pdvt0Given = TRUE; 1154 break; 1155 case BSIM3v1_MOD_PDVT1: 1156 mod->BSIM3v1pdvt1 = value->rValue; 1157 mod->BSIM3v1pdvt1Given = TRUE; 1158 break; 1159 case BSIM3v1_MOD_PDVT2: 1160 mod->BSIM3v1pdvt2 = value->rValue; 1161 mod->BSIM3v1pdvt2Given = TRUE; 1162 break; 1163 case BSIM3v1_MOD_PDVT0W: 1164 mod->BSIM3v1pdvt0w = value->rValue; 1165 mod->BSIM3v1pdvt0wGiven = TRUE; 1166 break; 1167 case BSIM3v1_MOD_PDVT1W: 1168 mod->BSIM3v1pdvt1w = value->rValue; 1169 mod->BSIM3v1pdvt1wGiven = TRUE; 1170 break; 1171 case BSIM3v1_MOD_PDVT2W: 1172 mod->BSIM3v1pdvt2w = value->rValue; 1173 mod->BSIM3v1pdvt2wGiven = TRUE; 1174 break; 1175 case BSIM3v1_MOD_PDROUT: 1176 mod->BSIM3v1pdrout = value->rValue; 1177 mod->BSIM3v1pdroutGiven = TRUE; 1178 break; 1179 case BSIM3v1_MOD_PDSUB: 1180 mod->BSIM3v1pdsub = value->rValue; 1181 mod->BSIM3v1pdsubGiven = TRUE; 1182 break; 1183 case BSIM3v1_MOD_PVTH0: 1184 mod->BSIM3v1pvth0 = value->rValue; 1185 mod->BSIM3v1pvth0Given = TRUE; 1186 break; 1187 case BSIM3v1_MOD_PUA: 1188 mod->BSIM3v1pua = value->rValue; 1189 mod->BSIM3v1puaGiven = TRUE; 1190 break; 1191 case BSIM3v1_MOD_PUA1: 1192 mod->BSIM3v1pua1 = value->rValue; 1193 mod->BSIM3v1pua1Given = TRUE; 1194 break; 1195 case BSIM3v1_MOD_PUB: 1196 mod->BSIM3v1pub = value->rValue; 1197 mod->BSIM3v1pubGiven = TRUE; 1198 break; 1199 case BSIM3v1_MOD_PUB1: 1200 mod->BSIM3v1pub1 = value->rValue; 1201 mod->BSIM3v1pub1Given = TRUE; 1202 break; 1203 case BSIM3v1_MOD_PUC: 1204 mod->BSIM3v1puc = value->rValue; 1205 mod->BSIM3v1pucGiven = TRUE; 1206 break; 1207 case BSIM3v1_MOD_PUC1: 1208 mod->BSIM3v1puc1 = value->rValue; 1209 mod->BSIM3v1puc1Given = TRUE; 1210 break; 1211 case BSIM3v1_MOD_PU0 : 1212 mod->BSIM3v1pu0 = value->rValue; 1213 mod->BSIM3v1pu0Given = TRUE; 1214 break; 1215 case BSIM3v1_MOD_PUTE : 1216 mod->BSIM3v1pute = value->rValue; 1217 mod->BSIM3v1puteGiven = TRUE; 1218 break; 1219 case BSIM3v1_MOD_PVOFF: 1220 mod->BSIM3v1pvoff = value->rValue; 1221 mod->BSIM3v1pvoffGiven = TRUE; 1222 break; 1223 case BSIM3v1_MOD_PDELTA : 1224 mod->BSIM3v1pdelta = value->rValue; 1225 mod->BSIM3v1pdeltaGiven = TRUE; 1226 break; 1227 case BSIM3v1_MOD_PRDSW: 1228 mod->BSIM3v1prdsw = value->rValue; 1229 mod->BSIM3v1prdswGiven = TRUE; 1230 break; 1231 case BSIM3v1_MOD_PPRWB: 1232 mod->BSIM3v1pprwb = value->rValue; 1233 mod->BSIM3v1pprwbGiven = TRUE; 1234 break; 1235 case BSIM3v1_MOD_PPRWG: 1236 mod->BSIM3v1pprwg = value->rValue; 1237 mod->BSIM3v1pprwgGiven = TRUE; 1238 break; 1239 case BSIM3v1_MOD_PPRT: 1240 mod->BSIM3v1pprt = value->rValue; 1241 mod->BSIM3v1pprtGiven = TRUE; 1242 break; 1243 case BSIM3v1_MOD_PETA0: 1244 mod->BSIM3v1peta0 = value->rValue; 1245 mod->BSIM3v1peta0Given = TRUE; 1246 break; 1247 case BSIM3v1_MOD_PETAB: 1248 mod->BSIM3v1petab = value->rValue; 1249 mod->BSIM3v1petabGiven = TRUE; 1250 break; 1251 case BSIM3v1_MOD_PPCLM: 1252 mod->BSIM3v1ppclm = value->rValue; 1253 mod->BSIM3v1ppclmGiven = TRUE; 1254 break; 1255 case BSIM3v1_MOD_PPDIBL1: 1256 mod->BSIM3v1ppdibl1 = value->rValue; 1257 mod->BSIM3v1ppdibl1Given = TRUE; 1258 break; 1259 case BSIM3v1_MOD_PPDIBL2: 1260 mod->BSIM3v1ppdibl2 = value->rValue; 1261 mod->BSIM3v1ppdibl2Given = TRUE; 1262 break; 1263 case BSIM3v1_MOD_PPDIBLB: 1264 mod->BSIM3v1ppdiblb = value->rValue; 1265 mod->BSIM3v1ppdiblbGiven = TRUE; 1266 break; 1267 case BSIM3v1_MOD_PPSCBE1: 1268 mod->BSIM3v1ppscbe1 = value->rValue; 1269 mod->BSIM3v1ppscbe1Given = TRUE; 1270 break; 1271 case BSIM3v1_MOD_PPSCBE2: 1272 mod->BSIM3v1ppscbe2 = value->rValue; 1273 mod->BSIM3v1ppscbe2Given = TRUE; 1274 break; 1275 case BSIM3v1_MOD_PPVAG: 1276 mod->BSIM3v1ppvag = value->rValue; 1277 mod->BSIM3v1ppvagGiven = TRUE; 1278 break; 1279 case BSIM3v1_MOD_PWR : 1280 mod->BSIM3v1pwr = value->rValue; 1281 mod->BSIM3v1pwrGiven = TRUE; 1282 break; 1283 case BSIM3v1_MOD_PDWG : 1284 mod->BSIM3v1pdwg = value->rValue; 1285 mod->BSIM3v1pdwgGiven = TRUE; 1286 break; 1287 case BSIM3v1_MOD_PDWB : 1288 mod->BSIM3v1pdwb = value->rValue; 1289 mod->BSIM3v1pdwbGiven = TRUE; 1290 break; 1291 case BSIM3v1_MOD_PB0 : 1292 mod->BSIM3v1pb0 = value->rValue; 1293 mod->BSIM3v1pb0Given = TRUE; 1294 break; 1295 case BSIM3v1_MOD_PB1 : 1296 mod->BSIM3v1pb1 = value->rValue; 1297 mod->BSIM3v1pb1Given = TRUE; 1298 break; 1299 case BSIM3v1_MOD_PALPHA0 : 1300 mod->BSIM3v1palpha0 = value->rValue; 1301 mod->BSIM3v1palpha0Given = TRUE; 1302 break; 1303 case BSIM3v1_MOD_PBETA0 : 1304 mod->BSIM3v1pbeta0 = value->rValue; 1305 mod->BSIM3v1pbeta0Given = TRUE; 1306 break; 1307 1308 case BSIM3v1_MOD_PELM : 1309 mod->BSIM3v1pelm = value->rValue; 1310 mod->BSIM3v1pelmGiven = TRUE; 1311 break; 1312 case BSIM3v1_MOD_PCGSL : 1313 mod->BSIM3v1pcgsl = value->rValue; 1314 mod->BSIM3v1pcgslGiven = TRUE; 1315 break; 1316 case BSIM3v1_MOD_PCGDL : 1317 mod->BSIM3v1pcgdl = value->rValue; 1318 mod->BSIM3v1pcgdlGiven = TRUE; 1319 break; 1320 case BSIM3v1_MOD_PCKAPPA : 1321 mod->BSIM3v1pckappa = value->rValue; 1322 mod->BSIM3v1pckappaGiven = TRUE; 1323 break; 1324 case BSIM3v1_MOD_PCF : 1325 mod->BSIM3v1pcf = value->rValue; 1326 mod->BSIM3v1pcfGiven = TRUE; 1327 break; 1328 case BSIM3v1_MOD_PCLC : 1329 mod->BSIM3v1pclc = value->rValue; 1330 mod->BSIM3v1pclcGiven = TRUE; 1331 break; 1332 case BSIM3v1_MOD_PCLE : 1333 mod->BSIM3v1pcle = value->rValue; 1334 mod->BSIM3v1pcleGiven = TRUE; 1335 break; 1336 case BSIM3v1_MOD_PVFBCV : 1337 mod->BSIM3v1pvfbcv = value->rValue; 1338 mod->BSIM3v1pvfbcvGiven = TRUE; 1339 break; 1340 1341 case BSIM3v1_MOD_TNOM : 1342 mod->BSIM3v1tnom = value->rValue + 273.15; 1343 mod->BSIM3v1tnomGiven = TRUE; 1344 break; 1345 case BSIM3v1_MOD_CGSO : 1346 mod->BSIM3v1cgso = value->rValue; 1347 mod->BSIM3v1cgsoGiven = TRUE; 1348 break; 1349 case BSIM3v1_MOD_CGDO : 1350 mod->BSIM3v1cgdo = value->rValue; 1351 mod->BSIM3v1cgdoGiven = TRUE; 1352 break; 1353 case BSIM3v1_MOD_CGBO : 1354 mod->BSIM3v1cgbo = value->rValue; 1355 mod->BSIM3v1cgboGiven = TRUE; 1356 break; 1357 case BSIM3v1_MOD_XPART : 1358 mod->BSIM3v1xpart = value->rValue; 1359 mod->BSIM3v1xpartGiven = TRUE; 1360 break; 1361 case BSIM3v1_MOD_RSH : 1362 mod->BSIM3v1sheetResistance = value->rValue; 1363 mod->BSIM3v1sheetResistanceGiven = TRUE; 1364 break; 1365 case BSIM3v1_MOD_JS : 1366 mod->BSIM3v1jctSatCurDensity = value->rValue; 1367 mod->BSIM3v1jctSatCurDensityGiven = TRUE; 1368 break; 1369 case BSIM3v1_MOD_JSW : 1370 mod->BSIM3v1jctSidewallSatCurDensity = value->rValue; 1371 mod->BSIM3v1jctSidewallSatCurDensityGiven = TRUE; 1372 break; 1373 case BSIM3v1_MOD_PB : 1374 mod->BSIM3v1bulkJctPotential = value->rValue; 1375 mod->BSIM3v1bulkJctPotentialGiven = TRUE; 1376 break; 1377 case BSIM3v1_MOD_MJ : 1378 mod->BSIM3v1bulkJctBotGradingCoeff = value->rValue; 1379 mod->BSIM3v1bulkJctBotGradingCoeffGiven = TRUE; 1380 break; 1381 case BSIM3v1_MOD_PBSW : 1382 mod->BSIM3v1sidewallJctPotential = value->rValue; 1383 mod->BSIM3v1sidewallJctPotentialGiven = TRUE; 1384 break; 1385 case BSIM3v1_MOD_MJSW : 1386 mod->BSIM3v1bulkJctSideGradingCoeff = value->rValue; 1387 mod->BSIM3v1bulkJctSideGradingCoeffGiven = TRUE; 1388 break; 1389 case BSIM3v1_MOD_CJ : 1390 mod->BSIM3v1unitAreaJctCap = value->rValue; 1391 mod->BSIM3v1unitAreaJctCapGiven = TRUE; 1392 break; 1393 case BSIM3v1_MOD_CJSW : 1394 mod->BSIM3v1unitLengthSidewallJctCap = value->rValue; 1395 mod->BSIM3v1unitLengthSidewallJctCapGiven = TRUE; 1396 break; 1397 case BSIM3v1_MOD_NJ : 1398 mod->BSIM3v1jctEmissionCoeff = value->rValue; 1399 mod->BSIM3v1jctEmissionCoeffGiven = TRUE; 1400 break; 1401 case BSIM3v1_MOD_PBSWG : 1402 mod->BSIM3v1GatesidewallJctPotential = value->rValue; 1403 mod->BSIM3v1GatesidewallJctPotentialGiven = TRUE; 1404 break; 1405 case BSIM3v1_MOD_MJSWG : 1406 mod->BSIM3v1bulkJctGateSideGradingCoeff = value->rValue; 1407 mod->BSIM3v1bulkJctGateSideGradingCoeffGiven = TRUE; 1408 break; 1409 case BSIM3v1_MOD_CJSWG : 1410 mod->BSIM3v1unitLengthGateSidewallJctCap = value->rValue; 1411 mod->BSIM3v1unitLengthGateSidewallJctCapGiven = TRUE; 1412 break; 1413 case BSIM3v1_MOD_XTI : 1414 mod->BSIM3v1jctTempExponent = value->rValue; 1415 mod->BSIM3v1jctTempExponentGiven = TRUE; 1416 break; 1417 case BSIM3v1_MOD_LINT : 1418 mod->BSIM3v1Lint = value->rValue; 1419 mod->BSIM3v1LintGiven = TRUE; 1420 break; 1421 case BSIM3v1_MOD_LL : 1422 mod->BSIM3v1Ll = value->rValue; 1423 mod->BSIM3v1LlGiven = TRUE; 1424 break; 1425 case BSIM3v1_MOD_LLN : 1426 mod->BSIM3v1Lln = value->rValue; 1427 mod->BSIM3v1LlnGiven = TRUE; 1428 break; 1429 case BSIM3v1_MOD_LW : 1430 mod->BSIM3v1Lw = value->rValue; 1431 mod->BSIM3v1LwGiven = TRUE; 1432 break; 1433 case BSIM3v1_MOD_LWN : 1434 mod->BSIM3v1Lwn = value->rValue; 1435 mod->BSIM3v1LwnGiven = TRUE; 1436 break; 1437 case BSIM3v1_MOD_LWL : 1438 mod->BSIM3v1Lwl = value->rValue; 1439 mod->BSIM3v1LwlGiven = TRUE; 1440 break; 1441 case BSIM3v1_MOD_LMIN : 1442 mod->BSIM3v1Lmin = value->rValue; 1443 mod->BSIM3v1LminGiven = TRUE; 1444 break; 1445 case BSIM3v1_MOD_LMAX : 1446 mod->BSIM3v1Lmax = value->rValue; 1447 mod->BSIM3v1LmaxGiven = TRUE; 1448 break; 1449 case BSIM3v1_MOD_WINT : 1450 mod->BSIM3v1Wint = value->rValue; 1451 mod->BSIM3v1WintGiven = TRUE; 1452 break; 1453 case BSIM3v1_MOD_WL : 1454 mod->BSIM3v1Wl = value->rValue; 1455 mod->BSIM3v1WlGiven = TRUE; 1456 break; 1457 case BSIM3v1_MOD_WLN : 1458 mod->BSIM3v1Wln = value->rValue; 1459 mod->BSIM3v1WlnGiven = TRUE; 1460 break; 1461 case BSIM3v1_MOD_WW : 1462 mod->BSIM3v1Ww = value->rValue; 1463 mod->BSIM3v1WwGiven = TRUE; 1464 break; 1465 case BSIM3v1_MOD_WWN : 1466 mod->BSIM3v1Wwn = value->rValue; 1467 mod->BSIM3v1WwnGiven = TRUE; 1468 break; 1469 case BSIM3v1_MOD_WWL : 1470 mod->BSIM3v1Wwl = value->rValue; 1471 mod->BSIM3v1WwlGiven = TRUE; 1472 break; 1473 case BSIM3v1_MOD_WMIN : 1474 mod->BSIM3v1Wmin = value->rValue; 1475 mod->BSIM3v1WminGiven = TRUE; 1476 break; 1477 case BSIM3v1_MOD_WMAX : 1478 mod->BSIM3v1Wmax = value->rValue; 1479 mod->BSIM3v1WmaxGiven = TRUE; 1480 break; 1481 1482 case BSIM3v1_MOD_NOIA : 1483 mod->BSIM3v1oxideTrapDensityA = value->rValue; 1484 mod->BSIM3v1oxideTrapDensityAGiven = TRUE; 1485 break; 1486 case BSIM3v1_MOD_NOIB : 1487 mod->BSIM3v1oxideTrapDensityB = value->rValue; 1488 mod->BSIM3v1oxideTrapDensityBGiven = TRUE; 1489 break; 1490 case BSIM3v1_MOD_NOIC : 1491 mod->BSIM3v1oxideTrapDensityC = value->rValue; 1492 mod->BSIM3v1oxideTrapDensityCGiven = TRUE; 1493 break; 1494 case BSIM3v1_MOD_EM : 1495 mod->BSIM3v1em = value->rValue; 1496 mod->BSIM3v1emGiven = TRUE; 1497 break; 1498 case BSIM3v1_MOD_EF : 1499 mod->BSIM3v1ef = value->rValue; 1500 mod->BSIM3v1efGiven = TRUE; 1501 break; 1502 case BSIM3v1_MOD_AF : 1503 mod->BSIM3v1af = value->rValue; 1504 mod->BSIM3v1afGiven = TRUE; 1505 break; 1506 case BSIM3v1_MOD_KF : 1507 mod->BSIM3v1kf = value->rValue; 1508 mod->BSIM3v1kfGiven = TRUE; 1509 break; 1510 case BSIM3v1_MOD_NMOS : 1511 if(value->iValue) { 1512 mod->BSIM3v1type = 1; 1513 mod->BSIM3v1typeGiven = TRUE; 1514 } 1515 break; 1516 case BSIM3v1_MOD_PMOS : 1517 if(value->iValue) { 1518 mod->BSIM3v1type = - 1; 1519 mod->BSIM3v1typeGiven = TRUE; 1520 } 1521 break; 1522 /* serban */ 1523 case BSIM3v1_MOD_HDIF : 1524 mod->BSIM3v1hdif = value->rValue; 1525 mod->BSIM3v1hdifGiven = TRUE; 1526 break; 1527 default: 1528 return(E_BADPARM); 1529 } 1530 return(OK); 1531 } 1532 1533 1534