1 /********** 2 Copyright 1990 Regents of the University of California. All rights reserved. 3 Author: 1995 Min-Chie Jeng and Mansun Chan 4 File: bsim3v0def.h 5 **********/ 6 7 #ifndef BSIM3v0 8 #define BSIM3v0 9 10 #include "ngspice/ifsim.h" 11 #include "ngspice/gendefs.h" 12 #include "ngspice/cktdefs.h" 13 #include "ngspice/complex.h" 14 #include "ngspice/noisedef.h" 15 16 typedef struct sBSIM3v0instance 17 { 18 19 struct GENinstance gen; 20 21 #define BSIM3v0modPtr(inst) ((struct sBSIM3v0model *)((inst)->gen.GENmodPtr)) 22 #define BSIM3v0nextInstance(inst) ((struct sBSIM3v0instance *)((inst)->gen.GENnextInstance)) 23 #define BSIM3v0name gen.GENname 24 #define BSIM3v0states gen.GENstate 25 26 const int BSIM3v0dNode; 27 const int BSIM3v0gNode; 28 const int BSIM3v0sNode; 29 const int BSIM3v0bNode; 30 int BSIM3v0dNodePrime; 31 int BSIM3v0sNodePrime; 32 int BSIM3v0qNode; /* MCJ */ 33 34 /* MCJ */ 35 double BSIM3v0ueff; 36 double BSIM3v0thetavth; 37 double BSIM3v0von; 38 double BSIM3v0vdsat; 39 double BSIM3v0cgdo; 40 double BSIM3v0cgso; 41 42 double BSIM3v0l; 43 double BSIM3v0w; 44 double BSIM3v0m; 45 double BSIM3v0drainArea; 46 double BSIM3v0sourceArea; 47 double BSIM3v0drainSquares; 48 double BSIM3v0sourceSquares; 49 double BSIM3v0drainPerimeter; 50 double BSIM3v0sourcePerimeter; 51 double BSIM3v0sourceConductance; 52 double BSIM3v0drainConductance; 53 54 double BSIM3v0icVBS; 55 double BSIM3v0icVDS; 56 double BSIM3v0icVGS; 57 int BSIM3v0off; 58 int BSIM3v0mode; 59 int BSIM3v0nqsMod; 60 61 /* OP point */ 62 double BSIM3v0qinv; 63 double BSIM3v0cd; 64 double BSIM3v0cbs; 65 double BSIM3v0cbd; 66 double BSIM3v0csub; 67 double BSIM3v0gm; 68 double BSIM3v0gds; 69 double BSIM3v0gmbs; 70 double BSIM3v0gbd; 71 double BSIM3v0gbs; 72 73 double BSIM3v0gbbs; 74 double BSIM3v0gbgs; 75 double BSIM3v0gbds; 76 77 double BSIM3v0cggb; 78 double BSIM3v0cgdb; 79 double BSIM3v0cgsb; 80 double BSIM3v0cbgb; 81 double BSIM3v0cbdb; 82 double BSIM3v0cbsb; 83 double BSIM3v0cdgb; 84 double BSIM3v0cddb; 85 double BSIM3v0cdsb; 86 double BSIM3v0capbd; 87 double BSIM3v0capbs; 88 89 double BSIM3v0cqgb; 90 double BSIM3v0cqdb; 91 double BSIM3v0cqsb; 92 double BSIM3v0cqbb; 93 94 double BSIM3v0gtau; 95 double BSIM3v0gtg; 96 double BSIM3v0gtd; 97 double BSIM3v0gts; 98 double BSIM3v0gtb; 99 double BSIM3v0tconst; 100 101 struct bsim3v0SizeDependParam *pParam; 102 103 unsigned BSIM3v0lGiven :1; 104 unsigned BSIM3v0wGiven :1; 105 unsigned BSIM3v0mGiven :1; 106 unsigned BSIM3v0drainAreaGiven :1; 107 unsigned BSIM3v0sourceAreaGiven :1; 108 unsigned BSIM3v0drainSquaresGiven :1; 109 unsigned BSIM3v0sourceSquaresGiven :1; 110 unsigned BSIM3v0drainPerimeterGiven :1; 111 unsigned BSIM3v0sourcePerimeterGiven :1; 112 unsigned BSIM3v0dNodePrimeSet :1; 113 unsigned BSIM3v0sNodePrimeSet :1; 114 unsigned BSIM3v0icVBSGiven :1; 115 unsigned BSIM3v0icVDSGiven :1; 116 unsigned BSIM3v0icVGSGiven :1; 117 unsigned BSIM3v0nqsModGiven :1; 118 119 double *BSIM3v0DdPtr; 120 double *BSIM3v0GgPtr; 121 double *BSIM3v0SsPtr; 122 double *BSIM3v0BbPtr; 123 double *BSIM3v0DPdpPtr; 124 double *BSIM3v0SPspPtr; 125 double *BSIM3v0DdpPtr; 126 double *BSIM3v0GbPtr; 127 double *BSIM3v0GdpPtr; 128 double *BSIM3v0GspPtr; 129 double *BSIM3v0SspPtr; 130 double *BSIM3v0BdpPtr; 131 double *BSIM3v0BspPtr; 132 double *BSIM3v0DPspPtr; 133 double *BSIM3v0DPdPtr; 134 double *BSIM3v0BgPtr; 135 double *BSIM3v0DPgPtr; 136 double *BSIM3v0SPgPtr; 137 double *BSIM3v0SPsPtr; 138 double *BSIM3v0DPbPtr; 139 double *BSIM3v0SPbPtr; 140 double *BSIM3v0SPdpPtr; 141 142 double *BSIM3v0QqPtr; 143 double *BSIM3v0QdpPtr; 144 double *BSIM3v0QgPtr; 145 double *BSIM3v0QspPtr; 146 double *BSIM3v0QbPtr; 147 double *BSIM3v0DPqPtr; 148 double *BSIM3v0GqPtr; 149 double *BSIM3v0SPqPtr; 150 double *BSIM3v0BqPtr; 151 152 #define BSIM3v0vbd BSIM3v0states+ 0 153 #define BSIM3v0vbs BSIM3v0states+ 1 154 #define BSIM3v0vgs BSIM3v0states+ 2 155 #define BSIM3v0vds BSIM3v0states+ 3 156 157 #define BSIM3v0qb BSIM3v0states+ 4 158 #define BSIM3v0cqb BSIM3v0states+ 5 159 #define BSIM3v0qg BSIM3v0states+ 6 160 #define BSIM3v0cqg BSIM3v0states+ 7 161 #define BSIM3v0qd BSIM3v0states+ 8 162 #define BSIM3v0cqd BSIM3v0states+ 9 163 164 #define BSIM3v0qbs BSIM3v0states+ 10 165 #define BSIM3v0qbd BSIM3v0states+ 11 166 167 #define BSIM3v0qcheq BSIM3v0states+ 12 168 #define BSIM3v0cqcheq BSIM3v0states+ 13 169 #define BSIM3v0qcdump BSIM3v0states+ 14 170 #define BSIM3v0cqcdump BSIM3v0states+ 15 171 172 #define BSIM3v0tau BSIM3v0states+ 16 173 #define BSIM3v0qdef BSIM3v0states+ 17 174 175 #define BSIM3v0numStates 18 176 177 178 /* indices to the array of BSIM3v0 NOISE SOURCES */ 179 180 #define BSIM3v0RDNOIZ 0 181 #define BSIM3v0RSNOIZ 1 182 #define BSIM3v0IDNOIZ 2 183 #define BSIM3v0FLNOIZ 3 184 #define BSIM3v0TOTNOIZ 4 185 186 #define BSIM3v0NSRCS 5 /* the number of MOSFET(3) noise sources */ 187 188 #ifndef NONOISE 189 double BSIM3v0nVar[NSTATVARS][BSIM3v0NSRCS]; 190 #else /* NONOISE */ 191 double **BSIM3v0nVar; 192 #endif /* NONOISE */ 193 194 } BSIM3v0instance ; 195 196 struct bsim3v0SizeDependParam 197 { 198 double Width; 199 double Length; 200 201 double BSIM3v0cdsc; 202 double BSIM3v0cdscb; 203 double BSIM3v0cdscd; 204 double BSIM3v0cit; 205 double BSIM3v0nfactor; 206 double BSIM3v0xj; 207 double BSIM3v0vsat; 208 double BSIM3v0at; 209 double BSIM3v0a0; 210 double BSIM3v0ags; 211 double BSIM3v0a1; 212 double BSIM3v0a2; 213 double BSIM3v0keta; 214 double BSIM3v0nsub; 215 double BSIM3v0npeak; 216 double BSIM3v0ngate; 217 double BSIM3v0gamma1; 218 double BSIM3v0gamma2; 219 double BSIM3v0vbx; 220 double BSIM3v0vbi; 221 double BSIM3v0vbm; 222 double BSIM3v0vbsc; 223 double BSIM3v0xt; 224 double BSIM3v0phi; 225 double BSIM3v0litl; 226 double BSIM3v0k1; 227 double BSIM3v0kt1; 228 double BSIM3v0kt1l; 229 double BSIM3v0kt2; 230 double BSIM3v0k2; 231 double BSIM3v0k3; 232 double BSIM3v0k3b; 233 double BSIM3v0w0; 234 double BSIM3v0nlx; 235 double BSIM3v0dvt0; 236 double BSIM3v0dvt1; 237 double BSIM3v0dvt2; 238 double BSIM3v0dvt0w; 239 double BSIM3v0dvt1w; 240 double BSIM3v0dvt2w; 241 double BSIM3v0drout; 242 double BSIM3v0dsub; 243 double BSIM3v0vth0; 244 double BSIM3v0ua; 245 double BSIM3v0ua1; 246 double BSIM3v0ub; 247 double BSIM3v0ub1; 248 double BSIM3v0uc; 249 double BSIM3v0uc1; 250 double BSIM3v0u0; 251 double BSIM3v0ute; 252 double BSIM3v0voff; 253 double BSIM3v0vfb; 254 double BSIM3v0delta; 255 double BSIM3v0rdsw; 256 double BSIM3v0rds0; 257 double BSIM3v0prwg; 258 double BSIM3v0prwb; 259 double BSIM3v0prt; 260 double BSIM3v0eta0; 261 double BSIM3v0etab; 262 double BSIM3v0pclm; 263 double BSIM3v0pdibl1; 264 double BSIM3v0pdibl2; 265 double BSIM3v0pdiblb; 266 double BSIM3v0pscbe1; 267 double BSIM3v0pscbe2; 268 double BSIM3v0pvag; 269 double BSIM3v0wr; 270 double BSIM3v0dwg; 271 double BSIM3v0dwb; 272 double BSIM3v0b0; 273 double BSIM3v0b1; 274 double BSIM3v0alpha0; 275 double BSIM3v0beta0; 276 277 278 /* CV model */ 279 double BSIM3v0elm; 280 double BSIM3v0cgsl; 281 double BSIM3v0cgdl; 282 double BSIM3v0ckappa; 283 double BSIM3v0cf; 284 double BSIM3v0clc; 285 double BSIM3v0cle; 286 287 288 /* Pre-calculated constants */ 289 290 double BSIM3v0dw; 291 double BSIM3v0dl; 292 double BSIM3v0leff; 293 double BSIM3v0weff; 294 295 double BSIM3v0dwc; 296 double BSIM3v0dlc; 297 double BSIM3v0leffCV; 298 double BSIM3v0weffCV; 299 double BSIM3v0abulkCVfactor; 300 double BSIM3v0cgso; 301 double BSIM3v0cgdo; 302 double BSIM3v0cgbo; 303 304 double BSIM3v0u0temp; 305 double BSIM3v0vsattemp; 306 double BSIM3v0sqrtPhi; 307 double BSIM3v0phis3; 308 double BSIM3v0Xdep0; 309 double BSIM3v0sqrtXdep0; 310 double BSIM3v0theta0vb0; 311 double BSIM3v0thetaRout; 312 313 double BSIM3v0cof1; 314 double BSIM3v0cof2; 315 double BSIM3v0cof3; 316 double BSIM3v0cof4; 317 double BSIM3v0cdep0; 318 struct bsim3v0SizeDependParam *pNext; 319 }; 320 321 322 typedef struct sBSIM3v0model 323 { 324 325 struct GENmodel gen; 326 327 #define BSIM3v0modType gen.GENmodType 328 #define BSIM3v0nextModel(inst) ((struct sBSIM3v0model *)((inst)->gen.GENnextModel)) 329 #define BSIM3v0instances(inst) ((BSIM3v0instance *)((inst)->gen.GENinstances)) 330 #define BSIM3v0modName gen.GENmodName 331 332 int BSIM3v0type; 333 334 int BSIM3v0mobMod; 335 int BSIM3v0capMod; 336 int BSIM3v0nqsMod; 337 int BSIM3v0noiMod; 338 int BSIM3v0binUnit; 339 double BSIM3v0tox; 340 double BSIM3v0cdsc; 341 double BSIM3v0cdscb; 342 double BSIM3v0cdscd; 343 double BSIM3v0cit; 344 double BSIM3v0nfactor; 345 double BSIM3v0xj; 346 double BSIM3v0vsat; 347 double BSIM3v0at; 348 double BSIM3v0a0; 349 double BSIM3v0ags; 350 double BSIM3v0a1; 351 double BSIM3v0a2; 352 double BSIM3v0keta; 353 double BSIM3v0nsub; 354 double BSIM3v0npeak; 355 double BSIM3v0ngate; 356 double BSIM3v0gamma1; 357 double BSIM3v0gamma2; 358 double BSIM3v0vbx; 359 double BSIM3v0vbm; 360 double BSIM3v0xt; 361 double BSIM3v0k1; 362 double BSIM3v0kt1; 363 double BSIM3v0kt1l; 364 double BSIM3v0kt2; 365 double BSIM3v0k2; 366 double BSIM3v0k3; 367 double BSIM3v0k3b; 368 double BSIM3v0w0; 369 double BSIM3v0nlx; 370 double BSIM3v0dvt0; 371 double BSIM3v0dvt1; 372 double BSIM3v0dvt2; 373 double BSIM3v0dvt0w; 374 double BSIM3v0dvt1w; 375 double BSIM3v0dvt2w; 376 double BSIM3v0drout; 377 double BSIM3v0dsub; 378 double BSIM3v0vth0; 379 double BSIM3v0ua; 380 double BSIM3v0ua1; 381 double BSIM3v0ub; 382 double BSIM3v0ub1; 383 double BSIM3v0uc; 384 double BSIM3v0uc1; 385 double BSIM3v0u0; 386 double BSIM3v0ute; 387 double BSIM3v0voff; 388 double BSIM3v0delta; 389 double BSIM3v0rdsw; 390 double BSIM3v0prwg; 391 double BSIM3v0prwb; 392 double BSIM3v0prt; 393 double BSIM3v0eta0; 394 double BSIM3v0etab; 395 double BSIM3v0pclm; 396 double BSIM3v0pdibl1; 397 double BSIM3v0pdibl2; 398 double BSIM3v0pdiblb; 399 double BSIM3v0pscbe1; 400 double BSIM3v0pscbe2; 401 double BSIM3v0pvag; 402 double BSIM3v0wr; 403 double BSIM3v0dwg; 404 double BSIM3v0dwb; 405 double BSIM3v0b0; 406 double BSIM3v0b1; 407 double BSIM3v0alpha0; 408 double BSIM3v0beta0; 409 410 /* CV model */ 411 double BSIM3v0elm; 412 double BSIM3v0cgsl; 413 double BSIM3v0cgdl; 414 double BSIM3v0ckappa; 415 double BSIM3v0cf; 416 double BSIM3v0clc; 417 double BSIM3v0cle; 418 double BSIM3v0dwc; 419 double BSIM3v0dlc; 420 421 /* Length Dependence */ 422 double BSIM3v0lcdsc; 423 double BSIM3v0lcdscb; 424 double BSIM3v0lcdscd; 425 double BSIM3v0lcit; 426 double BSIM3v0lnfactor; 427 double BSIM3v0lxj; 428 double BSIM3v0lvsat; 429 double BSIM3v0lat; 430 double BSIM3v0la0; 431 double BSIM3v0lags; 432 double BSIM3v0la1; 433 double BSIM3v0la2; 434 double BSIM3v0lketa; 435 double BSIM3v0lnsub; 436 double BSIM3v0lnpeak; 437 double BSIM3v0lngate; 438 double BSIM3v0lgamma1; 439 double BSIM3v0lgamma2; 440 double BSIM3v0lvbx; 441 double BSIM3v0lvbm; 442 double BSIM3v0lxt; 443 double BSIM3v0lk1; 444 double BSIM3v0lkt1; 445 double BSIM3v0lkt1l; 446 double BSIM3v0lkt2; 447 double BSIM3v0lk2; 448 double BSIM3v0lk3; 449 double BSIM3v0lk3b; 450 double BSIM3v0lw0; 451 double BSIM3v0lnlx; 452 double BSIM3v0ldvt0; 453 double BSIM3v0ldvt1; 454 double BSIM3v0ldvt2; 455 double BSIM3v0ldvt0w; 456 double BSIM3v0ldvt1w; 457 double BSIM3v0ldvt2w; 458 double BSIM3v0ldrout; 459 double BSIM3v0ldsub; 460 double BSIM3v0lvth0; 461 double BSIM3v0lua; 462 double BSIM3v0lua1; 463 double BSIM3v0lub; 464 double BSIM3v0lub1; 465 double BSIM3v0luc; 466 double BSIM3v0luc1; 467 double BSIM3v0lu0; 468 double BSIM3v0lute; 469 double BSIM3v0lvoff; 470 double BSIM3v0ldelta; 471 double BSIM3v0lrdsw; 472 double BSIM3v0lprwg; 473 double BSIM3v0lprwb; 474 double BSIM3v0lprt; 475 double BSIM3v0leta0; 476 double BSIM3v0letab; 477 double BSIM3v0lpclm; 478 double BSIM3v0lpdibl1; 479 double BSIM3v0lpdibl2; 480 double BSIM3v0lpdiblb; 481 double BSIM3v0lpscbe1; 482 double BSIM3v0lpscbe2; 483 double BSIM3v0lpvag; 484 double BSIM3v0lwr; 485 double BSIM3v0ldwg; 486 double BSIM3v0ldwb; 487 double BSIM3v0lb0; 488 double BSIM3v0lb1; 489 double BSIM3v0lalpha0; 490 double BSIM3v0lbeta0; 491 492 /* CV model */ 493 double BSIM3v0lelm; 494 double BSIM3v0lcgsl; 495 double BSIM3v0lcgdl; 496 double BSIM3v0lckappa; 497 double BSIM3v0lcf; 498 double BSIM3v0lclc; 499 double BSIM3v0lcle; 500 501 /* Width Dependence */ 502 double BSIM3v0wcdsc; 503 double BSIM3v0wcdscb; 504 double BSIM3v0wcdscd; 505 double BSIM3v0wcit; 506 double BSIM3v0wnfactor; 507 double BSIM3v0wxj; 508 double BSIM3v0wvsat; 509 double BSIM3v0wat; 510 double BSIM3v0wa0; 511 double BSIM3v0wags; 512 double BSIM3v0wa1; 513 double BSIM3v0wa2; 514 double BSIM3v0wketa; 515 double BSIM3v0wnsub; 516 double BSIM3v0wnpeak; 517 double BSIM3v0wngate; 518 double BSIM3v0wgamma1; 519 double BSIM3v0wgamma2; 520 double BSIM3v0wvbx; 521 double BSIM3v0wvbm; 522 double BSIM3v0wxt; 523 double BSIM3v0wk1; 524 double BSIM3v0wkt1; 525 double BSIM3v0wkt1l; 526 double BSIM3v0wkt2; 527 double BSIM3v0wk2; 528 double BSIM3v0wk3; 529 double BSIM3v0wk3b; 530 double BSIM3v0ww0; 531 double BSIM3v0wnlx; 532 double BSIM3v0wdvt0; 533 double BSIM3v0wdvt1; 534 double BSIM3v0wdvt2; 535 double BSIM3v0wdvt0w; 536 double BSIM3v0wdvt1w; 537 double BSIM3v0wdvt2w; 538 double BSIM3v0wdrout; 539 double BSIM3v0wdsub; 540 double BSIM3v0wvth0; 541 double BSIM3v0wua; 542 double BSIM3v0wua1; 543 double BSIM3v0wub; 544 double BSIM3v0wub1; 545 double BSIM3v0wuc; 546 double BSIM3v0wuc1; 547 double BSIM3v0wu0; 548 double BSIM3v0wute; 549 double BSIM3v0wvoff; 550 double BSIM3v0wdelta; 551 double BSIM3v0wrdsw; 552 double BSIM3v0wprwg; 553 double BSIM3v0wprwb; 554 double BSIM3v0wprt; 555 double BSIM3v0weta0; 556 double BSIM3v0wetab; 557 double BSIM3v0wpclm; 558 double BSIM3v0wpdibl1; 559 double BSIM3v0wpdibl2; 560 double BSIM3v0wpdiblb; 561 double BSIM3v0wpscbe1; 562 double BSIM3v0wpscbe2; 563 double BSIM3v0wpvag; 564 double BSIM3v0wwr; 565 double BSIM3v0wdwg; 566 double BSIM3v0wdwb; 567 double BSIM3v0wb0; 568 double BSIM3v0wb1; 569 double BSIM3v0walpha0; 570 double BSIM3v0wbeta0; 571 572 /* CV model */ 573 double BSIM3v0welm; 574 double BSIM3v0wcgsl; 575 double BSIM3v0wcgdl; 576 double BSIM3v0wckappa; 577 double BSIM3v0wcf; 578 double BSIM3v0wclc; 579 double BSIM3v0wcle; 580 581 /* Cross-term Dependence */ 582 double BSIM3v0pcdsc; 583 double BSIM3v0pcdscb; 584 double BSIM3v0pcdscd; 585 double BSIM3v0pcit; 586 double BSIM3v0pnfactor; 587 double BSIM3v0pxj; 588 double BSIM3v0pvsat; 589 double BSIM3v0pat; 590 double BSIM3v0pa0; 591 double BSIM3v0pags; 592 double BSIM3v0pa1; 593 double BSIM3v0pa2; 594 double BSIM3v0pketa; 595 double BSIM3v0pnsub; 596 double BSIM3v0pnpeak; 597 double BSIM3v0pngate; 598 double BSIM3v0pgamma1; 599 double BSIM3v0pgamma2; 600 double BSIM3v0pvbx; 601 double BSIM3v0pvbm; 602 double BSIM3v0pxt; 603 double BSIM3v0pk1; 604 double BSIM3v0pkt1; 605 double BSIM3v0pkt1l; 606 double BSIM3v0pkt2; 607 double BSIM3v0pk2; 608 double BSIM3v0pk3; 609 double BSIM3v0pk3b; 610 double BSIM3v0pw0; 611 double BSIM3v0pnlx; 612 double BSIM3v0pdvt0; 613 double BSIM3v0pdvt1; 614 double BSIM3v0pdvt2; 615 double BSIM3v0pdvt0w; 616 double BSIM3v0pdvt1w; 617 double BSIM3v0pdvt2w; 618 double BSIM3v0pdrout; 619 double BSIM3v0pdsub; 620 double BSIM3v0pvth0; 621 double BSIM3v0pua; 622 double BSIM3v0pua1; 623 double BSIM3v0pub; 624 double BSIM3v0pub1; 625 double BSIM3v0puc; 626 double BSIM3v0puc1; 627 double BSIM3v0pu0; 628 double BSIM3v0pute; 629 double BSIM3v0pvoff; 630 double BSIM3v0pdelta; 631 double BSIM3v0prdsw; 632 double BSIM3v0pprwg; 633 double BSIM3v0pprwb; 634 double BSIM3v0pprt; 635 double BSIM3v0peta0; 636 double BSIM3v0petab; 637 double BSIM3v0ppclm; 638 double BSIM3v0ppdibl1; 639 double BSIM3v0ppdibl2; 640 double BSIM3v0ppdiblb; 641 double BSIM3v0ppscbe1; 642 double BSIM3v0ppscbe2; 643 double BSIM3v0ppvag; 644 double BSIM3v0pwr; 645 double BSIM3v0pdwg; 646 double BSIM3v0pdwb; 647 double BSIM3v0pb0; 648 double BSIM3v0pb1; 649 double BSIM3v0palpha0; 650 double BSIM3v0pbeta0; 651 652 /* CV model */ 653 double BSIM3v0pelm; 654 double BSIM3v0pcgsl; 655 double BSIM3v0pcgdl; 656 double BSIM3v0pckappa; 657 double BSIM3v0pcf; 658 double BSIM3v0pclc; 659 double BSIM3v0pcle; 660 661 double BSIM3v0tnom; 662 double BSIM3v0cgso; 663 double BSIM3v0cgdo; 664 double BSIM3v0cgbo; 665 double BSIM3v0xpart; 666 double BSIM3v0cFringOut; 667 double BSIM3v0cFringMax; 668 669 double BSIM3v0sheetResistance; 670 double BSIM3v0jctSatCurDensity; 671 double BSIM3v0bulkJctPotential; 672 double BSIM3v0bulkJctBotGradingCoeff; 673 double BSIM3v0bulkJctSideGradingCoeff; 674 double BSIM3v0sidewallJctPotential; 675 double BSIM3v0unitAreaJctCap; 676 double BSIM3v0unitLengthSidewallJctCap; 677 678 double BSIM3v0Lint; 679 double BSIM3v0Ll; 680 double BSIM3v0Lln; 681 double BSIM3v0Lw; 682 double BSIM3v0Lwn; 683 double BSIM3v0Lwl; 684 double BSIM3v0Lmin; 685 double BSIM3v0Lmax; 686 687 double BSIM3v0Wint; 688 double BSIM3v0Wl; 689 double BSIM3v0Wln; 690 double BSIM3v0Ww; 691 double BSIM3v0Wwn; 692 double BSIM3v0Wwl; 693 double BSIM3v0Wmin; 694 double BSIM3v0Wmax; 695 696 697 /* Pre-calculated constants */ 698 /* MCJ: move to size-dependent param. */ 699 double BSIM3v0vtm; 700 double BSIM3v0cox; 701 double BSIM3v0cof1; 702 double BSIM3v0cof2; 703 double BSIM3v0cof3; 704 double BSIM3v0cof4; 705 double BSIM3v0vcrit; 706 double BSIM3v0factor1; 707 708 double BSIM3v0oxideTrapDensityA; 709 double BSIM3v0oxideTrapDensityB; 710 double BSIM3v0oxideTrapDensityC; 711 double BSIM3v0em; 712 double BSIM3v0ef; 713 double BSIM3v0af; 714 double BSIM3v0kf; 715 716 struct bsim3v0SizeDependParam *pSizeDependParamKnot; 717 718 /* Flags */ 719 unsigned BSIM3v0mobModGiven :1; 720 unsigned BSIM3v0binUnitGiven :1; 721 unsigned BSIM3v0capModGiven :1; 722 unsigned BSIM3v0nqsModGiven :1; 723 unsigned BSIM3v0noiModGiven :1; 724 unsigned BSIM3v0typeGiven :1; 725 unsigned BSIM3v0toxGiven :1; 726 727 unsigned BSIM3v0cdscGiven :1; 728 unsigned BSIM3v0cdscbGiven :1; 729 unsigned BSIM3v0cdscdGiven :1; 730 unsigned BSIM3v0citGiven :1; 731 unsigned BSIM3v0nfactorGiven :1; 732 unsigned BSIM3v0xjGiven :1; 733 unsigned BSIM3v0vsatGiven :1; 734 unsigned BSIM3v0atGiven :1; 735 unsigned BSIM3v0a0Given :1; 736 unsigned BSIM3v0agsGiven :1; 737 unsigned BSIM3v0a1Given :1; 738 unsigned BSIM3v0a2Given :1; 739 unsigned BSIM3v0ketaGiven :1; 740 unsigned BSIM3v0nsubGiven :1; 741 unsigned BSIM3v0npeakGiven :1; 742 unsigned BSIM3v0ngateGiven :1; 743 unsigned BSIM3v0gamma1Given :1; 744 unsigned BSIM3v0gamma2Given :1; 745 unsigned BSIM3v0vbxGiven :1; 746 unsigned BSIM3v0vbmGiven :1; 747 unsigned BSIM3v0xtGiven :1; 748 unsigned BSIM3v0k1Given :1; 749 unsigned BSIM3v0kt1Given :1; 750 unsigned BSIM3v0kt1lGiven :1; 751 unsigned BSIM3v0kt2Given :1; 752 unsigned BSIM3v0k2Given :1; 753 unsigned BSIM3v0k3Given :1; 754 unsigned BSIM3v0k3bGiven :1; 755 unsigned BSIM3v0w0Given :1; 756 unsigned BSIM3v0nlxGiven :1; 757 unsigned BSIM3v0dvt0Given :1; 758 unsigned BSIM3v0dvt1Given :1; 759 unsigned BSIM3v0dvt2Given :1; 760 unsigned BSIM3v0dvt0wGiven :1; 761 unsigned BSIM3v0dvt1wGiven :1; 762 unsigned BSIM3v0dvt2wGiven :1; 763 unsigned BSIM3v0droutGiven :1; 764 unsigned BSIM3v0dsubGiven :1; 765 unsigned BSIM3v0vth0Given :1; 766 unsigned BSIM3v0uaGiven :1; 767 unsigned BSIM3v0ua1Given :1; 768 unsigned BSIM3v0ubGiven :1; 769 unsigned BSIM3v0ub1Given :1; 770 unsigned BSIM3v0ucGiven :1; 771 unsigned BSIM3v0uc1Given :1; 772 unsigned BSIM3v0u0Given :1; 773 unsigned BSIM3v0uteGiven :1; 774 unsigned BSIM3v0voffGiven :1; 775 unsigned BSIM3v0rdswGiven :1; 776 unsigned BSIM3v0prwgGiven :1; 777 unsigned BSIM3v0prwbGiven :1; 778 unsigned BSIM3v0prtGiven :1; 779 unsigned BSIM3v0eta0Given :1; 780 unsigned BSIM3v0etabGiven :1; 781 unsigned BSIM3v0pclmGiven :1; 782 unsigned BSIM3v0pdibl1Given :1; 783 unsigned BSIM3v0pdibl2Given :1; 784 unsigned BSIM3v0pdiblbGiven :1; 785 unsigned BSIM3v0pscbe1Given :1; 786 unsigned BSIM3v0pscbe2Given :1; 787 unsigned BSIM3v0pvagGiven :1; 788 unsigned BSIM3v0deltaGiven :1; 789 unsigned BSIM3v0wrGiven :1; 790 unsigned BSIM3v0dwgGiven :1; 791 unsigned BSIM3v0dwbGiven :1; 792 unsigned BSIM3v0b0Given :1; 793 unsigned BSIM3v0b1Given :1; 794 unsigned BSIM3v0alpha0Given :1; 795 unsigned BSIM3v0beta0Given :1; 796 797 /* CV model */ 798 unsigned BSIM3v0elmGiven :1; 799 unsigned BSIM3v0cgslGiven :1; 800 unsigned BSIM3v0cgdlGiven :1; 801 unsigned BSIM3v0ckappaGiven :1; 802 unsigned BSIM3v0cfGiven :1; 803 unsigned BSIM3v0clcGiven :1; 804 unsigned BSIM3v0cleGiven :1; 805 unsigned BSIM3v0dwcGiven :1; 806 unsigned BSIM3v0dlcGiven :1; 807 808 809 /* Length dependence */ 810 unsigned BSIM3v0lcdscGiven :1; 811 unsigned BSIM3v0lcdscbGiven :1; 812 unsigned BSIM3v0lcdscdGiven :1; 813 unsigned BSIM3v0lcitGiven :1; 814 unsigned BSIM3v0lnfactorGiven :1; 815 unsigned BSIM3v0lxjGiven :1; 816 unsigned BSIM3v0lvsatGiven :1; 817 unsigned BSIM3v0latGiven :1; 818 unsigned BSIM3v0la0Given :1; 819 unsigned BSIM3v0lagsGiven :1; 820 unsigned BSIM3v0la1Given :1; 821 unsigned BSIM3v0la2Given :1; 822 unsigned BSIM3v0lketaGiven :1; 823 unsigned BSIM3v0lnsubGiven :1; 824 unsigned BSIM3v0lnpeakGiven :1; 825 unsigned BSIM3v0lngateGiven :1; 826 unsigned BSIM3v0lgamma1Given :1; 827 unsigned BSIM3v0lgamma2Given :1; 828 unsigned BSIM3v0lvbxGiven :1; 829 unsigned BSIM3v0lvbmGiven :1; 830 unsigned BSIM3v0lxtGiven :1; 831 unsigned BSIM3v0lk1Given :1; 832 unsigned BSIM3v0lkt1Given :1; 833 unsigned BSIM3v0lkt1lGiven :1; 834 unsigned BSIM3v0lkt2Given :1; 835 unsigned BSIM3v0lk2Given :1; 836 unsigned BSIM3v0lk3Given :1; 837 unsigned BSIM3v0lk3bGiven :1; 838 unsigned BSIM3v0lw0Given :1; 839 unsigned BSIM3v0lnlxGiven :1; 840 unsigned BSIM3v0ldvt0Given :1; 841 unsigned BSIM3v0ldvt1Given :1; 842 unsigned BSIM3v0ldvt2Given :1; 843 unsigned BSIM3v0ldvt0wGiven :1; 844 unsigned BSIM3v0ldvt1wGiven :1; 845 unsigned BSIM3v0ldvt2wGiven :1; 846 unsigned BSIM3v0ldroutGiven :1; 847 unsigned BSIM3v0ldsubGiven :1; 848 unsigned BSIM3v0lvth0Given :1; 849 unsigned BSIM3v0luaGiven :1; 850 unsigned BSIM3v0lua1Given :1; 851 unsigned BSIM3v0lubGiven :1; 852 unsigned BSIM3v0lub1Given :1; 853 unsigned BSIM3v0lucGiven :1; 854 unsigned BSIM3v0luc1Given :1; 855 unsigned BSIM3v0lu0Given :1; 856 unsigned BSIM3v0luteGiven :1; 857 unsigned BSIM3v0lvoffGiven :1; 858 unsigned BSIM3v0lrdswGiven :1; 859 unsigned BSIM3v0lprwgGiven :1; 860 unsigned BSIM3v0lprwbGiven :1; 861 unsigned BSIM3v0lprtGiven :1; 862 unsigned BSIM3v0leta0Given :1; 863 unsigned BSIM3v0letabGiven :1; 864 unsigned BSIM3v0lpclmGiven :1; 865 unsigned BSIM3v0lpdibl1Given :1; 866 unsigned BSIM3v0lpdibl2Given :1; 867 unsigned BSIM3v0lpdiblbGiven :1; 868 unsigned BSIM3v0lpscbe1Given :1; 869 unsigned BSIM3v0lpscbe2Given :1; 870 unsigned BSIM3v0lpvagGiven :1; 871 unsigned BSIM3v0ldeltaGiven :1; 872 unsigned BSIM3v0lwrGiven :1; 873 unsigned BSIM3v0ldwgGiven :1; 874 unsigned BSIM3v0ldwbGiven :1; 875 unsigned BSIM3v0lb0Given :1; 876 unsigned BSIM3v0lb1Given :1; 877 unsigned BSIM3v0lalpha0Given :1; 878 unsigned BSIM3v0lbeta0Given :1; 879 880 /* CV model */ 881 unsigned BSIM3v0lelmGiven :1; 882 unsigned BSIM3v0lcgslGiven :1; 883 unsigned BSIM3v0lcgdlGiven :1; 884 unsigned BSIM3v0lckappaGiven :1; 885 unsigned BSIM3v0lcfGiven :1; 886 unsigned BSIM3v0lclcGiven :1; 887 unsigned BSIM3v0lcleGiven :1; 888 889 /* Width dependence */ 890 unsigned BSIM3v0wcdscGiven :1; 891 unsigned BSIM3v0wcdscbGiven :1; 892 unsigned BSIM3v0wcdscdGiven :1; 893 unsigned BSIM3v0wcitGiven :1; 894 unsigned BSIM3v0wnfactorGiven :1; 895 unsigned BSIM3v0wxjGiven :1; 896 unsigned BSIM3v0wvsatGiven :1; 897 unsigned BSIM3v0watGiven :1; 898 unsigned BSIM3v0wa0Given :1; 899 unsigned BSIM3v0wagsGiven :1; 900 unsigned BSIM3v0wa1Given :1; 901 unsigned BSIM3v0wa2Given :1; 902 unsigned BSIM3v0wketaGiven :1; 903 unsigned BSIM3v0wnsubGiven :1; 904 unsigned BSIM3v0wnpeakGiven :1; 905 unsigned BSIM3v0wngateGiven :1; 906 unsigned BSIM3v0wgamma1Given :1; 907 unsigned BSIM3v0wgamma2Given :1; 908 unsigned BSIM3v0wvbxGiven :1; 909 unsigned BSIM3v0wvbmGiven :1; 910 unsigned BSIM3v0wxtGiven :1; 911 unsigned BSIM3v0wk1Given :1; 912 unsigned BSIM3v0wkt1Given :1; 913 unsigned BSIM3v0wkt1lGiven :1; 914 unsigned BSIM3v0wkt2Given :1; 915 unsigned BSIM3v0wk2Given :1; 916 unsigned BSIM3v0wk3Given :1; 917 unsigned BSIM3v0wk3bGiven :1; 918 unsigned BSIM3v0ww0Given :1; 919 unsigned BSIM3v0wnlxGiven :1; 920 unsigned BSIM3v0wdvt0Given :1; 921 unsigned BSIM3v0wdvt1Given :1; 922 unsigned BSIM3v0wdvt2Given :1; 923 unsigned BSIM3v0wdvt0wGiven :1; 924 unsigned BSIM3v0wdvt1wGiven :1; 925 unsigned BSIM3v0wdvt2wGiven :1; 926 unsigned BSIM3v0wdroutGiven :1; 927 unsigned BSIM3v0wdsubGiven :1; 928 unsigned BSIM3v0wvth0Given :1; 929 unsigned BSIM3v0wuaGiven :1; 930 unsigned BSIM3v0wua1Given :1; 931 unsigned BSIM3v0wubGiven :1; 932 unsigned BSIM3v0wub1Given :1; 933 unsigned BSIM3v0wucGiven :1; 934 unsigned BSIM3v0wuc1Given :1; 935 unsigned BSIM3v0wu0Given :1; 936 unsigned BSIM3v0wuteGiven :1; 937 unsigned BSIM3v0wvoffGiven :1; 938 unsigned BSIM3v0wrdswGiven :1; 939 unsigned BSIM3v0wprwgGiven :1; 940 unsigned BSIM3v0wprwbGiven :1; 941 unsigned BSIM3v0wprtGiven :1; 942 unsigned BSIM3v0weta0Given :1; 943 unsigned BSIM3v0wetabGiven :1; 944 unsigned BSIM3v0wpclmGiven :1; 945 unsigned BSIM3v0wpdibl1Given :1; 946 unsigned BSIM3v0wpdibl2Given :1; 947 unsigned BSIM3v0wpdiblbGiven :1; 948 unsigned BSIM3v0wpscbe1Given :1; 949 unsigned BSIM3v0wpscbe2Given :1; 950 unsigned BSIM3v0wpvagGiven :1; 951 unsigned BSIM3v0wdeltaGiven :1; 952 unsigned BSIM3v0wwrGiven :1; 953 unsigned BSIM3v0wdwgGiven :1; 954 unsigned BSIM3v0wdwbGiven :1; 955 unsigned BSIM3v0wb0Given :1; 956 unsigned BSIM3v0wb1Given :1; 957 unsigned BSIM3v0walpha0Given :1; 958 unsigned BSIM3v0wbeta0Given :1; 959 960 /* CV model */ 961 unsigned BSIM3v0welmGiven :1; 962 unsigned BSIM3v0wcgslGiven :1; 963 unsigned BSIM3v0wcgdlGiven :1; 964 unsigned BSIM3v0wckappaGiven :1; 965 unsigned BSIM3v0wcfGiven :1; 966 unsigned BSIM3v0wclcGiven :1; 967 unsigned BSIM3v0wcleGiven :1; 968 969 /* Cross-term dependence */ 970 unsigned BSIM3v0pcdscGiven :1; 971 unsigned BSIM3v0pcdscbGiven :1; 972 unsigned BSIM3v0pcdscdGiven :1; 973 unsigned BSIM3v0pcitGiven :1; 974 unsigned BSIM3v0pnfactorGiven :1; 975 unsigned BSIM3v0pxjGiven :1; 976 unsigned BSIM3v0pvsatGiven :1; 977 unsigned BSIM3v0patGiven :1; 978 unsigned BSIM3v0pa0Given :1; 979 unsigned BSIM3v0pagsGiven :1; 980 unsigned BSIM3v0pa1Given :1; 981 unsigned BSIM3v0pa2Given :1; 982 unsigned BSIM3v0pketaGiven :1; 983 unsigned BSIM3v0pnsubGiven :1; 984 unsigned BSIM3v0pnpeakGiven :1; 985 unsigned BSIM3v0pngateGiven :1; 986 unsigned BSIM3v0pgamma1Given :1; 987 unsigned BSIM3v0pgamma2Given :1; 988 unsigned BSIM3v0pvbxGiven :1; 989 unsigned BSIM3v0pvbmGiven :1; 990 unsigned BSIM3v0pxtGiven :1; 991 unsigned BSIM3v0pk1Given :1; 992 unsigned BSIM3v0pkt1Given :1; 993 unsigned BSIM3v0pkt1lGiven :1; 994 unsigned BSIM3v0pkt2Given :1; 995 unsigned BSIM3v0pk2Given :1; 996 unsigned BSIM3v0pk3Given :1; 997 unsigned BSIM3v0pk3bGiven :1; 998 unsigned BSIM3v0pw0Given :1; 999 unsigned BSIM3v0pnlxGiven :1; 1000 unsigned BSIM3v0pdvt0Given :1; 1001 unsigned BSIM3v0pdvt1Given :1; 1002 unsigned BSIM3v0pdvt2Given :1; 1003 unsigned BSIM3v0pdvt0wGiven :1; 1004 unsigned BSIM3v0pdvt1wGiven :1; 1005 unsigned BSIM3v0pdvt2wGiven :1; 1006 unsigned BSIM3v0pdroutGiven :1; 1007 unsigned BSIM3v0pdsubGiven :1; 1008 unsigned BSIM3v0pvth0Given :1; 1009 unsigned BSIM3v0puaGiven :1; 1010 unsigned BSIM3v0pua1Given :1; 1011 unsigned BSIM3v0pubGiven :1; 1012 unsigned BSIM3v0pub1Given :1; 1013 unsigned BSIM3v0pucGiven :1; 1014 unsigned BSIM3v0puc1Given :1; 1015 unsigned BSIM3v0pu0Given :1; 1016 unsigned BSIM3v0puteGiven :1; 1017 unsigned BSIM3v0pvoffGiven :1; 1018 unsigned BSIM3v0prdswGiven :1; 1019 unsigned BSIM3v0pprwgGiven :1; 1020 unsigned BSIM3v0pprwbGiven :1; 1021 unsigned BSIM3v0pprtGiven :1; 1022 unsigned BSIM3v0peta0Given :1; 1023 unsigned BSIM3v0petabGiven :1; 1024 unsigned BSIM3v0ppclmGiven :1; 1025 unsigned BSIM3v0ppdibl1Given :1; 1026 unsigned BSIM3v0ppdibl2Given :1; 1027 unsigned BSIM3v0ppdiblbGiven :1; 1028 unsigned BSIM3v0ppscbe1Given :1; 1029 unsigned BSIM3v0ppscbe2Given :1; 1030 unsigned BSIM3v0ppvagGiven :1; 1031 unsigned BSIM3v0pdeltaGiven :1; 1032 unsigned BSIM3v0pwrGiven :1; 1033 unsigned BSIM3v0pdwgGiven :1; 1034 unsigned BSIM3v0pdwbGiven :1; 1035 unsigned BSIM3v0pb0Given :1; 1036 unsigned BSIM3v0pb1Given :1; 1037 unsigned BSIM3v0palpha0Given :1; 1038 unsigned BSIM3v0pbeta0Given :1; 1039 1040 /* CV model */ 1041 unsigned BSIM3v0pelmGiven :1; 1042 unsigned BSIM3v0pcgslGiven :1; 1043 unsigned BSIM3v0pcgdlGiven :1; 1044 unsigned BSIM3v0pckappaGiven :1; 1045 unsigned BSIM3v0pcfGiven :1; 1046 unsigned BSIM3v0pclcGiven :1; 1047 unsigned BSIM3v0pcleGiven :1; 1048 1049 unsigned BSIM3v0useFringeGiven :1; 1050 1051 unsigned BSIM3v0tnomGiven :1; 1052 unsigned BSIM3v0cgsoGiven :1; 1053 unsigned BSIM3v0cgdoGiven :1; 1054 unsigned BSIM3v0cgboGiven :1; 1055 unsigned BSIM3v0xpartGiven :1; 1056 unsigned BSIM3v0sheetResistanceGiven :1; 1057 unsigned BSIM3v0jctSatCurDensityGiven :1; 1058 unsigned BSIM3v0bulkJctPotentialGiven :1; 1059 unsigned BSIM3v0bulkJctBotGradingCoeffGiven :1; 1060 unsigned BSIM3v0sidewallJctPotentialGiven :1; 1061 unsigned BSIM3v0bulkJctSideGradingCoeffGiven :1; 1062 unsigned BSIM3v0unitAreaJctCapGiven :1; 1063 unsigned BSIM3v0unitLengthSidewallJctCapGiven :1; 1064 1065 unsigned BSIM3v0oxideTrapDensityAGiven :1; 1066 unsigned BSIM3v0oxideTrapDensityBGiven :1; 1067 unsigned BSIM3v0oxideTrapDensityCGiven :1; 1068 unsigned BSIM3v0emGiven :1; 1069 unsigned BSIM3v0efGiven :1; 1070 unsigned BSIM3v0afGiven :1; 1071 unsigned BSIM3v0kfGiven :1; 1072 1073 unsigned BSIM3v0LintGiven :1; 1074 unsigned BSIM3v0LlGiven :1; 1075 unsigned BSIM3v0LlnGiven :1; 1076 unsigned BSIM3v0LwGiven :1; 1077 unsigned BSIM3v0LwnGiven :1; 1078 unsigned BSIM3v0LwlGiven :1; 1079 unsigned BSIM3v0LminGiven :1; 1080 unsigned BSIM3v0LmaxGiven :1; 1081 1082 unsigned BSIM3v0WintGiven :1; 1083 unsigned BSIM3v0WlGiven :1; 1084 unsigned BSIM3v0WlnGiven :1; 1085 unsigned BSIM3v0WwGiven :1; 1086 unsigned BSIM3v0WwnGiven :1; 1087 unsigned BSIM3v0WwlGiven :1; 1088 unsigned BSIM3v0WminGiven :1; 1089 unsigned BSIM3v0WmaxGiven :1; 1090 1091 } BSIM3v0model; 1092 1093 1094 #ifndef NMOS 1095 #define NMOS 1 1096 #define PMOS -1 1097 #endif /*NMOS*/ 1098 1099 1100 /* device parameters */ 1101 #define BSIM3v0_W 1 1102 #define BSIM3v0_L 2 1103 #define BSIM3v0_M 15 1104 #define BSIM3v0_AS 3 1105 #define BSIM3v0_AD 4 1106 #define BSIM3v0_PS 5 1107 #define BSIM3v0_PD 6 1108 #define BSIM3v0_NRS 7 1109 #define BSIM3v0_NRD 8 1110 #define BSIM3v0_OFF 9 1111 #define BSIM3v0_IC_VBS 10 1112 #define BSIM3v0_IC_VDS 11 1113 #define BSIM3v0_IC_VGS 12 1114 #define BSIM3v0_IC 13 1115 #define BSIM3v0_NQSMOD 14 1116 1117 /* model parameters */ 1118 #define BSIM3v0_MOD_CAPMOD 101 1119 #define BSIM3v0_MOD_NQSMOD 102 1120 #define BSIM3v0_MOD_MOBMOD 103 1121 #define BSIM3v0_MOD_NOIMOD 104 1122 1123 #define BSIM3v0_MOD_TOX 105 1124 1125 #define BSIM3v0_MOD_CDSC 106 1126 #define BSIM3v0_MOD_CDSCB 107 1127 #define BSIM3v0_MOD_CIT 108 1128 #define BSIM3v0_MOD_NFACTOR 109 1129 #define BSIM3v0_MOD_XJ 110 1130 #define BSIM3v0_MOD_VSAT 111 1131 #define BSIM3v0_MOD_AT 112 1132 #define BSIM3v0_MOD_A0 113 1133 #define BSIM3v0_MOD_A1 114 1134 #define BSIM3v0_MOD_A2 115 1135 #define BSIM3v0_MOD_KETA 116 1136 #define BSIM3v0_MOD_NSUB 117 1137 #define BSIM3v0_MOD_NPEAK 118 1138 #define BSIM3v0_MOD_NGATE 120 1139 #define BSIM3v0_MOD_GAMMA1 121 1140 #define BSIM3v0_MOD_GAMMA2 122 1141 #define BSIM3v0_MOD_VBX 123 1142 #define BSIM3v0_MOD_BINUNIT 124 1143 1144 #define BSIM3v0_MOD_VBM 125 1145 1146 #define BSIM3v0_MOD_XT 126 1147 #define BSIM3v0_MOD_K1 129 1148 #define BSIM3v0_MOD_KT1 130 1149 #define BSIM3v0_MOD_KT1L 131 1150 #define BSIM3v0_MOD_K2 132 1151 #define BSIM3v0_MOD_KT2 133 1152 #define BSIM3v0_MOD_K3 134 1153 #define BSIM3v0_MOD_K3B 135 1154 #define BSIM3v0_MOD_W0 136 1155 #define BSIM3v0_MOD_NLX 137 1156 1157 #define BSIM3v0_MOD_DVT0 138 1158 #define BSIM3v0_MOD_DVT1 139 1159 #define BSIM3v0_MOD_DVT2 140 1160 1161 #define BSIM3v0_MOD_DVT0W 141 1162 #define BSIM3v0_MOD_DVT1W 142 1163 #define BSIM3v0_MOD_DVT2W 143 1164 1165 #define BSIM3v0_MOD_DROUT 144 1166 #define BSIM3v0_MOD_DSUB 145 1167 #define BSIM3v0_MOD_VTH0 146 1168 #define BSIM3v0_MOD_UA 147 1169 #define BSIM3v0_MOD_UA1 148 1170 #define BSIM3v0_MOD_UB 149 1171 #define BSIM3v0_MOD_UB1 150 1172 #define BSIM3v0_MOD_UC 151 1173 #define BSIM3v0_MOD_UC1 152 1174 #define BSIM3v0_MOD_U0 153 1175 #define BSIM3v0_MOD_UTE 154 1176 #define BSIM3v0_MOD_VOFF 155 1177 #define BSIM3v0_MOD_DELTA 156 1178 #define BSIM3v0_MOD_RDSW 157 1179 #define BSIM3v0_MOD_PRT 158 1180 #define BSIM3v0_MOD_LDD 159 1181 #define BSIM3v0_MOD_ETA 160 1182 #define BSIM3v0_MOD_ETA0 161 1183 #define BSIM3v0_MOD_ETAB 162 1184 #define BSIM3v0_MOD_PCLM 163 1185 #define BSIM3v0_MOD_PDIBL1 164 1186 #define BSIM3v0_MOD_PDIBL2 165 1187 #define BSIM3v0_MOD_PSCBE1 166 1188 #define BSIM3v0_MOD_PSCBE2 167 1189 #define BSIM3v0_MOD_PVAG 168 1190 #define BSIM3v0_MOD_WR 169 1191 #define BSIM3v0_MOD_DWG 170 1192 #define BSIM3v0_MOD_DWB 171 1193 #define BSIM3v0_MOD_B0 172 1194 #define BSIM3v0_MOD_B1 173 1195 #define BSIM3v0_MOD_ALPHA0 174 1196 #define BSIM3v0_MOD_BETA0 175 1197 #define BSIM3v0_MOD_PDIBLB 178 1198 1199 #define BSIM3v0_MOD_PRWG 179 1200 #define BSIM3v0_MOD_PRWB 180 1201 1202 #define BSIM3v0_MOD_CDSCD 181 1203 #define BSIM3v0_MOD_AGS 182 1204 1205 #define BSIM3v0_MOD_FRINGE 184 1206 #define BSIM3v0_MOD_ELM 185 1207 #define BSIM3v0_MOD_CGSL 186 1208 #define BSIM3v0_MOD_CGDL 187 1209 #define BSIM3v0_MOD_CKAPPA 188 1210 #define BSIM3v0_MOD_CF 189 1211 #define BSIM3v0_MOD_CLC 190 1212 #define BSIM3v0_MOD_CLE 191 1213 1214 /* Length dependence */ 1215 #define BSIM3v0_MOD_LCDSC 201 1216 #define BSIM3v0_MOD_LCDSCB 202 1217 #define BSIM3v0_MOD_LCIT 203 1218 #define BSIM3v0_MOD_LNFACTOR 204 1219 #define BSIM3v0_MOD_LXJ 205 1220 #define BSIM3v0_MOD_LVSAT 206 1221 #define BSIM3v0_MOD_LAT 207 1222 #define BSIM3v0_MOD_LA0 208 1223 #define BSIM3v0_MOD_LA1 209 1224 #define BSIM3v0_MOD_LA2 210 1225 #define BSIM3v0_MOD_LKETA 211 1226 #define BSIM3v0_MOD_LNSUB 212 1227 #define BSIM3v0_MOD_LNPEAK 213 1228 #define BSIM3v0_MOD_LNGATE 215 1229 #define BSIM3v0_MOD_LGAMMA1 216 1230 #define BSIM3v0_MOD_LGAMMA2 217 1231 #define BSIM3v0_MOD_LVBX 218 1232 1233 #define BSIM3v0_MOD_LVBM 220 1234 1235 #define BSIM3v0_MOD_LXT 222 1236 #define BSIM3v0_MOD_LK1 225 1237 #define BSIM3v0_MOD_LKT1 226 1238 #define BSIM3v0_MOD_LKT1L 227 1239 #define BSIM3v0_MOD_LK2 228 1240 #define BSIM3v0_MOD_LKT2 229 1241 #define BSIM3v0_MOD_LK3 230 1242 #define BSIM3v0_MOD_LK3B 231 1243 #define BSIM3v0_MOD_LW0 232 1244 #define BSIM3v0_MOD_LNLX 233 1245 1246 #define BSIM3v0_MOD_LDVT0 234 1247 #define BSIM3v0_MOD_LDVT1 235 1248 #define BSIM3v0_MOD_LDVT2 236 1249 1250 #define BSIM3v0_MOD_LDVT0W 237 1251 #define BSIM3v0_MOD_LDVT1W 238 1252 #define BSIM3v0_MOD_LDVT2W 239 1253 1254 #define BSIM3v0_MOD_LDROUT 240 1255 #define BSIM3v0_MOD_LDSUB 241 1256 #define BSIM3v0_MOD_LVTH0 242 1257 #define BSIM3v0_MOD_LUA 243 1258 #define BSIM3v0_MOD_LUA1 244 1259 #define BSIM3v0_MOD_LUB 245 1260 #define BSIM3v0_MOD_LUB1 246 1261 #define BSIM3v0_MOD_LUC 247 1262 #define BSIM3v0_MOD_LUC1 248 1263 #define BSIM3v0_MOD_LU0 249 1264 #define BSIM3v0_MOD_LUTE 250 1265 #define BSIM3v0_MOD_LVOFF 251 1266 #define BSIM3v0_MOD_LDELTA 252 1267 #define BSIM3v0_MOD_LRDSW 253 1268 #define BSIM3v0_MOD_LPRT 254 1269 #define BSIM3v0_MOD_LLDD 255 1270 #define BSIM3v0_MOD_LETA 256 1271 #define BSIM3v0_MOD_LETA0 257 1272 #define BSIM3v0_MOD_LETAB 258 1273 #define BSIM3v0_MOD_LPCLM 259 1274 #define BSIM3v0_MOD_LPDIBL1 260 1275 #define BSIM3v0_MOD_LPDIBL2 261 1276 #define BSIM3v0_MOD_LPSCBE1 262 1277 #define BSIM3v0_MOD_LPSCBE2 263 1278 #define BSIM3v0_MOD_LPVAG 264 1279 #define BSIM3v0_MOD_LWR 265 1280 #define BSIM3v0_MOD_LDWG 266 1281 #define BSIM3v0_MOD_LDWB 267 1282 #define BSIM3v0_MOD_LB0 268 1283 #define BSIM3v0_MOD_LB1 269 1284 #define BSIM3v0_MOD_LALPHA0 270 1285 #define BSIM3v0_MOD_LBETA0 271 1286 #define BSIM3v0_MOD_LPDIBLB 274 1287 1288 #define BSIM3v0_MOD_LPRWG 275 1289 #define BSIM3v0_MOD_LPRWB 276 1290 1291 #define BSIM3v0_MOD_LCDSCD 277 1292 #define BSIM3v0_MOD_LAGS 278 1293 1294 1295 #define BSIM3v0_MOD_LFRINGE 281 1296 #define BSIM3v0_MOD_LELM 282 1297 #define BSIM3v0_MOD_LCGSL 283 1298 #define BSIM3v0_MOD_LCGDL 284 1299 #define BSIM3v0_MOD_LCKAPPA 285 1300 #define BSIM3v0_MOD_LCF 286 1301 #define BSIM3v0_MOD_LCLC 287 1302 #define BSIM3v0_MOD_LCLE 288 1303 1304 /* Width dependence */ 1305 #define BSIM3v0_MOD_WCDSC 301 1306 #define BSIM3v0_MOD_WCDSCB 302 1307 #define BSIM3v0_MOD_WCIT 303 1308 #define BSIM3v0_MOD_WNFACTOR 304 1309 #define BSIM3v0_MOD_WXJ 305 1310 #define BSIM3v0_MOD_WVSAT 306 1311 #define BSIM3v0_MOD_WAT 307 1312 #define BSIM3v0_MOD_WA0 308 1313 #define BSIM3v0_MOD_WA1 309 1314 #define BSIM3v0_MOD_WA2 310 1315 #define BSIM3v0_MOD_WKETA 311 1316 #define BSIM3v0_MOD_WNSUB 312 1317 #define BSIM3v0_MOD_WNPEAK 313 1318 #define BSIM3v0_MOD_WNGATE 315 1319 #define BSIM3v0_MOD_WGAMMA1 316 1320 #define BSIM3v0_MOD_WGAMMA2 317 1321 #define BSIM3v0_MOD_WVBX 318 1322 1323 #define BSIM3v0_MOD_WVBM 320 1324 1325 #define BSIM3v0_MOD_WXT 322 1326 #define BSIM3v0_MOD_WK1 325 1327 #define BSIM3v0_MOD_WKT1 326 1328 #define BSIM3v0_MOD_WKT1L 327 1329 #define BSIM3v0_MOD_WK2 328 1330 #define BSIM3v0_MOD_WKT2 329 1331 #define BSIM3v0_MOD_WK3 330 1332 #define BSIM3v0_MOD_WK3B 331 1333 #define BSIM3v0_MOD_WW0 332 1334 #define BSIM3v0_MOD_WNLX 333 1335 1336 #define BSIM3v0_MOD_WDVT0 334 1337 #define BSIM3v0_MOD_WDVT1 335 1338 #define BSIM3v0_MOD_WDVT2 336 1339 1340 #define BSIM3v0_MOD_WDVT0W 337 1341 #define BSIM3v0_MOD_WDVT1W 338 1342 #define BSIM3v0_MOD_WDVT2W 339 1343 1344 #define BSIM3v0_MOD_WDROUT 340 1345 #define BSIM3v0_MOD_WDSUB 341 1346 #define BSIM3v0_MOD_WVTH0 342 1347 #define BSIM3v0_MOD_WUA 343 1348 #define BSIM3v0_MOD_WUA1 344 1349 #define BSIM3v0_MOD_WUB 345 1350 #define BSIM3v0_MOD_WUB1 346 1351 #define BSIM3v0_MOD_WUC 347 1352 #define BSIM3v0_MOD_WUC1 348 1353 #define BSIM3v0_MOD_WU0 349 1354 #define BSIM3v0_MOD_WUTE 350 1355 #define BSIM3v0_MOD_WVOFF 351 1356 #define BSIM3v0_MOD_WDELTA 352 1357 #define BSIM3v0_MOD_WRDSW 353 1358 #define BSIM3v0_MOD_WPRT 354 1359 #define BSIM3v0_MOD_WLDD 355 1360 #define BSIM3v0_MOD_WETA 356 1361 #define BSIM3v0_MOD_WETA0 357 1362 #define BSIM3v0_MOD_WETAB 358 1363 #define BSIM3v0_MOD_WPCLM 359 1364 #define BSIM3v0_MOD_WPDIBL1 360 1365 #define BSIM3v0_MOD_WPDIBL2 361 1366 #define BSIM3v0_MOD_WPSCBE1 362 1367 #define BSIM3v0_MOD_WPSCBE2 363 1368 #define BSIM3v0_MOD_WPVAG 364 1369 #define BSIM3v0_MOD_WWR 365 1370 #define BSIM3v0_MOD_WDWG 366 1371 #define BSIM3v0_MOD_WDWB 367 1372 #define BSIM3v0_MOD_WB0 368 1373 #define BSIM3v0_MOD_WB1 369 1374 #define BSIM3v0_MOD_WALPHA0 370 1375 #define BSIM3v0_MOD_WBETA0 371 1376 #define BSIM3v0_MOD_WPDIBLB 374 1377 1378 #define BSIM3v0_MOD_WPRWG 375 1379 #define BSIM3v0_MOD_WPRWB 376 1380 1381 #define BSIM3v0_MOD_WCDSCD 377 1382 #define BSIM3v0_MOD_WAGS 378 1383 1384 1385 #define BSIM3v0_MOD_WFRINGE 381 1386 #define BSIM3v0_MOD_WELM 382 1387 #define BSIM3v0_MOD_WCGSL 383 1388 #define BSIM3v0_MOD_WCGDL 384 1389 #define BSIM3v0_MOD_WCKAPPA 385 1390 #define BSIM3v0_MOD_WCF 386 1391 #define BSIM3v0_MOD_WCLC 387 1392 #define BSIM3v0_MOD_WCLE 388 1393 1394 /* Cross-term dependence */ 1395 #define BSIM3v0_MOD_PCDSC 401 1396 #define BSIM3v0_MOD_PCDSCB 402 1397 #define BSIM3v0_MOD_PCIT 403 1398 #define BSIM3v0_MOD_PNFACTOR 404 1399 #define BSIM3v0_MOD_PXJ 405 1400 #define BSIM3v0_MOD_PVSAT 406 1401 #define BSIM3v0_MOD_PAT 407 1402 #define BSIM3v0_MOD_PA0 408 1403 #define BSIM3v0_MOD_PA1 409 1404 #define BSIM3v0_MOD_PA2 410 1405 #define BSIM3v0_MOD_PKETA 411 1406 #define BSIM3v0_MOD_PNSUB 412 1407 #define BSIM3v0_MOD_PNPEAK 413 1408 #define BSIM3v0_MOD_PNGATE 415 1409 #define BSIM3v0_MOD_PGAMMA1 416 1410 #define BSIM3v0_MOD_PGAMMA2 417 1411 #define BSIM3v0_MOD_PVBX 418 1412 1413 #define BSIM3v0_MOD_PVBM 420 1414 1415 #define BSIM3v0_MOD_PXT 422 1416 #define BSIM3v0_MOD_PK1 425 1417 #define BSIM3v0_MOD_PKT1 426 1418 #define BSIM3v0_MOD_PKT1L 427 1419 #define BSIM3v0_MOD_PK2 428 1420 #define BSIM3v0_MOD_PKT2 429 1421 #define BSIM3v0_MOD_PK3 430 1422 #define BSIM3v0_MOD_PK3B 431 1423 #define BSIM3v0_MOD_PW0 432 1424 #define BSIM3v0_MOD_PNLX 433 1425 1426 #define BSIM3v0_MOD_PDVT0 434 1427 #define BSIM3v0_MOD_PDVT1 435 1428 #define BSIM3v0_MOD_PDVT2 436 1429 1430 #define BSIM3v0_MOD_PDVT0W 437 1431 #define BSIM3v0_MOD_PDVT1W 438 1432 #define BSIM3v0_MOD_PDVT2W 439 1433 1434 #define BSIM3v0_MOD_PDROUT 440 1435 #define BSIM3v0_MOD_PDSUB 441 1436 #define BSIM3v0_MOD_PVTH0 442 1437 #define BSIM3v0_MOD_PUA 443 1438 #define BSIM3v0_MOD_PUA1 444 1439 #define BSIM3v0_MOD_PUB 445 1440 #define BSIM3v0_MOD_PUB1 446 1441 #define BSIM3v0_MOD_PUC 447 1442 #define BSIM3v0_MOD_PUC1 448 1443 #define BSIM3v0_MOD_PU0 449 1444 #define BSIM3v0_MOD_PUTE 450 1445 #define BSIM3v0_MOD_PVOFF 451 1446 #define BSIM3v0_MOD_PDELTA 452 1447 #define BSIM3v0_MOD_PRDSW 453 1448 #define BSIM3v0_MOD_PPRT 454 1449 #define BSIM3v0_MOD_PLDD 455 1450 #define BSIM3v0_MOD_PETA 456 1451 #define BSIM3v0_MOD_PETA0 457 1452 #define BSIM3v0_MOD_PETAB 458 1453 #define BSIM3v0_MOD_PPCLM 459 1454 #define BSIM3v0_MOD_PPDIBL1 460 1455 #define BSIM3v0_MOD_PPDIBL2 461 1456 #define BSIM3v0_MOD_PPSCBE1 462 1457 #define BSIM3v0_MOD_PPSCBE2 463 1458 #define BSIM3v0_MOD_PPVAG 464 1459 #define BSIM3v0_MOD_PWR 465 1460 #define BSIM3v0_MOD_PDWG 466 1461 #define BSIM3v0_MOD_PDWB 467 1462 #define BSIM3v0_MOD_PB0 468 1463 #define BSIM3v0_MOD_PB1 469 1464 #define BSIM3v0_MOD_PALPHA0 470 1465 #define BSIM3v0_MOD_PBETA0 471 1466 #define BSIM3v0_MOD_PPDIBLB 474 1467 1468 #define BSIM3v0_MOD_PPRWG 475 1469 #define BSIM3v0_MOD_PPRWB 476 1470 1471 #define BSIM3v0_MOD_PCDSCD 477 1472 #define BSIM3v0_MOD_PAGS 478 1473 1474 #define BSIM3v0_MOD_PFRINGE 481 1475 #define BSIM3v0_MOD_PELM 482 1476 #define BSIM3v0_MOD_PCGSL 483 1477 #define BSIM3v0_MOD_PCGDL 484 1478 #define BSIM3v0_MOD_PCKAPPA 485 1479 #define BSIM3v0_MOD_PCF 486 1480 #define BSIM3v0_MOD_PCLC 487 1481 #define BSIM3v0_MOD_PCLE 488 1482 1483 #define BSIM3v0_MOD_TNOM 501 1484 #define BSIM3v0_MOD_CGSO 502 1485 #define BSIM3v0_MOD_CGDO 503 1486 #define BSIM3v0_MOD_CGBO 504 1487 #define BSIM3v0_MOD_XPART 505 1488 1489 #define BSIM3v0_MOD_RSH 506 1490 #define BSIM3v0_MOD_JS 507 1491 #define BSIM3v0_MOD_PB 508 1492 #define BSIM3v0_MOD_MJ 509 1493 #define BSIM3v0_MOD_PBSW 510 1494 #define BSIM3v0_MOD_MJSW 511 1495 #define BSIM3v0_MOD_CJ 512 1496 #define BSIM3v0_MOD_CJSW 513 1497 #define BSIM3v0_MOD_NMOS 514 1498 #define BSIM3v0_MOD_PMOS 515 1499 1500 #define BSIM3v0_MOD_NOIA 516 1501 #define BSIM3v0_MOD_NOIB 517 1502 #define BSIM3v0_MOD_NOIC 518 1503 1504 #define BSIM3v0_MOD_LINT 519 1505 #define BSIM3v0_MOD_LL 520 1506 #define BSIM3v0_MOD_LLN 521 1507 #define BSIM3v0_MOD_LW 522 1508 #define BSIM3v0_MOD_LWN 523 1509 #define BSIM3v0_MOD_LWL 524 1510 #define BSIM3v0_MOD_LMIN 525 1511 #define BSIM3v0_MOD_LMAX 526 1512 1513 #define BSIM3v0_MOD_WINT 527 1514 #define BSIM3v0_MOD_WL 528 1515 #define BSIM3v0_MOD_WLN 529 1516 #define BSIM3v0_MOD_WW 530 1517 #define BSIM3v0_MOD_WWN 531 1518 #define BSIM3v0_MOD_WWL 532 1519 #define BSIM3v0_MOD_WMIN 533 1520 #define BSIM3v0_MOD_WMAX 534 1521 1522 #define BSIM3v0_MOD_DWC 535 1523 #define BSIM3v0_MOD_DLC 536 1524 1525 #define BSIM3v0_MOD_EM 537 1526 #define BSIM3v0_MOD_EF 538 1527 #define BSIM3v0_MOD_AF 539 1528 #define BSIM3v0_MOD_KF 540 1529 1530 1531 /* device questions */ 1532 #define BSIM3v0_DNODE 601 1533 #define BSIM3v0_GNODE 602 1534 #define BSIM3v0_SNODE 603 1535 #define BSIM3v0_BNODE 604 1536 #define BSIM3v0_DNODEPRIME 605 1537 #define BSIM3v0_SNODEPRIME 606 1538 #define BSIM3v0_VBD 607 1539 #define BSIM3v0_VBS 608 1540 #define BSIM3v0_VGS 609 1541 #define BSIM3v0_VDS 610 1542 #define BSIM3v0_CD 611 1543 #define BSIM3v0_CBS 612 1544 #define BSIM3v0_CBD 613 1545 #define BSIM3v0_GM 614 1546 #define BSIM3v0_GDS 615 1547 #define BSIM3v0_GMBS 616 1548 #define BSIM3v0_GBD 617 1549 #define BSIM3v0_GBS 618 1550 #define BSIM3v0_QB 619 1551 #define BSIM3v0_CQB 620 1552 #define BSIM3v0_QG 621 1553 #define BSIM3v0_CQG 622 1554 #define BSIM3v0_QD 623 1555 #define BSIM3v0_CQD 624 1556 #define BSIM3v0_CGG 625 1557 #define BSIM3v0_CGD 626 1558 #define BSIM3v0_CGS 627 1559 #define BSIM3v0_CBG 628 1560 #define BSIM3v0_CAPBD 629 1561 #define BSIM3v0_CQBD 630 1562 #define BSIM3v0_CAPBS 631 1563 #define BSIM3v0_CQBS 632 1564 #define BSIM3v0_CDG 633 1565 #define BSIM3v0_CDD 634 1566 #define BSIM3v0_CDS 635 1567 #define BSIM3v0_VON 636 1568 #define BSIM3v0_VDSAT 637 1569 #define BSIM3v0_QBS 638 1570 #define BSIM3v0_QBD 639 1571 #define BSIM3v0_SOURCECONDUCT 640 1572 #define BSIM3v0_DRAINCONDUCT 641 1573 #define BSIM3v0_CBDB 642 1574 #define BSIM3v0_CBSB 643 1575 1576 #include "bsim3v0ext.h" 1577 1578 extern void BSIM3v0evaluate(double,double,double,BSIM3v0instance*,BSIM3v0model*, 1579 double*,double*,double*, double*, double*, double*, double*, 1580 double*, double*, double*, double*, double*, double*, double*, 1581 double*, double*, double*, double*, CKTcircuit*); 1582 1583 #endif /*BSIM3v0*/ 1584 1585 1586 1587