Browse Source

scale option included

pre-master-46
dwarning 19 years ago
parent
commit
1807ad0179
  1. 17
      src/spicelib/devices/bsim3/b3par.c
  2. 17
      src/spicelib/devices/bsim3v0/b3v0par.c
  3. 17
      src/spicelib/devices/bsim3v1/b3v1par.c
  4. 17
      src/spicelib/devices/bsim3v1a/b3v1apar.c
  5. 17
      src/spicelib/devices/bsim3v1s/b3v1spar.c
  6. 17
      src/spicelib/devices/bsim4/b4par.c
  7. 1
      src/spicelib/devices/bsim4v2/b4v2par.c

17
src/spicelib/devices/bsim3/b3par.c

@ -14,18 +14,23 @@
#include "bsim3def.h"
#include "sperror.h"
#include "suffix.h"
#include "fteext.h"
int
BSIM3param (int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
if ( !cp_getvar( "scale", CP_REAL, (double*) &scale ) ) scale = 1;
BSIM3instance *here = (BSIM3instance*)inst;
switch(param)
{ case BSIM3_W:
here->BSIM3w = value->rValue;
here->BSIM3w = value->rValue*scale;
here->BSIM3wGiven = TRUE;
break;
case BSIM3_L:
here->BSIM3l = value->rValue;
here->BSIM3l = value->rValue*scale;
here->BSIM3lGiven = TRUE;
break;
case BSIM3_M:
@ -33,19 +38,19 @@ BSIM3param (int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->BSIM3mGiven = TRUE;
break;
case BSIM3_AS:
here->BSIM3sourceArea = value->rValue;
here->BSIM3sourceArea = value->rValue*scale*scale;
here->BSIM3sourceAreaGiven = TRUE;
break;
case BSIM3_AD:
here->BSIM3drainArea = value->rValue;
here->BSIM3drainArea = value->rValue*scale*scale;
here->BSIM3drainAreaGiven = TRUE;
break;
case BSIM3_PS:
here->BSIM3sourcePerimeter = value->rValue;
here->BSIM3sourcePerimeter = value->rValue*scale;
here->BSIM3sourcePerimeterGiven = TRUE;
break;
case BSIM3_PD:
here->BSIM3drainPerimeter = value->rValue;
here->BSIM3drainPerimeter = value->rValue*scale;
here->BSIM3drainPerimeterGiven = TRUE;
break;
case BSIM3_NRS:

17
src/spicelib/devices/bsim3v0/b3v0par.c

@ -9,18 +9,23 @@ File: b3v0par.c
#include "bsim3v0def.h"
#include "sperror.h"
#include "suffix.h"
#include "fteext.h"
int
BSIM3v0param(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
if ( !cp_getvar( "scale", CP_REAL, (double*) &scale ) ) scale = 1;
BSIM3v0instance *here = (BSIM3v0instance*)inst;
switch(param)
{ case BSIM3v0_W:
here->BSIM3v0w = value->rValue;
here->BSIM3v0w = value->rValue*scale;
here->BSIM3v0wGiven = TRUE;
break;
case BSIM3v0_L:
here->BSIM3v0l = value->rValue;
here->BSIM3v0l = value->rValue*scale;
here->BSIM3v0lGiven = TRUE;
break;
case BSIM3v0_M:
@ -28,19 +33,19 @@ BSIM3v0param(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->BSIM3v0mGiven = TRUE;
break;
case BSIM3v0_AS:
here->BSIM3v0sourceArea = value->rValue;
here->BSIM3v0sourceArea = value->rValue*scale*scale;
here->BSIM3v0sourceAreaGiven = TRUE;
break;
case BSIM3v0_AD:
here->BSIM3v0drainArea = value->rValue;
here->BSIM3v0drainArea = value->rValue*scale*scale;
here->BSIM3v0drainAreaGiven = TRUE;
break;
case BSIM3v0_PS:
here->BSIM3v0sourcePerimeter = value->rValue;
here->BSIM3v0sourcePerimeter = value->rValue*scale;
here->BSIM3v0sourcePerimeterGiven = TRUE;
break;
case BSIM3v0_PD:
here->BSIM3v0drainPerimeter = value->rValue;
here->BSIM3v0drainPerimeter = value->rValue*scale;
here->BSIM3v0drainPerimeterGiven = TRUE;
break;
case BSIM3v0_NRS:

17
src/spicelib/devices/bsim3v1/b3v1par.c

@ -15,18 +15,23 @@
#include "bsim3v1def.h"
#include "sperror.h"
#include "suffix.h"
#include "fteext.h"
int
BSIM3v1param(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
if ( !cp_getvar( "scale", CP_REAL, (double*) &scale ) ) scale = 1;
BSIM3v1instance *here = (BSIM3v1instance*)inst;
switch(param)
{ case BSIM3v1_W:
here->BSIM3v1w = value->rValue;
here->BSIM3v1w = value->rValue*scale;
here->BSIM3v1wGiven = TRUE;
break;
case BSIM3v1_L:
here->BSIM3v1l = value->rValue;
here->BSIM3v1l = value->rValue*scale;
here->BSIM3v1lGiven = TRUE;
break;
case BSIM3v1_M:
@ -34,19 +39,19 @@ BSIM3v1param(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->BSIM3v1mGiven = TRUE;
break;
case BSIM3v1_AS:
here->BSIM3v1sourceArea = value->rValue;
here->BSIM3v1sourceArea = value->rValue*scale*scale;
here->BSIM3v1sourceAreaGiven = TRUE;
break;
case BSIM3v1_AD:
here->BSIM3v1drainArea = value->rValue;
here->BSIM3v1drainArea = value->rValue*scale*scale;
here->BSIM3v1drainAreaGiven = TRUE;
break;
case BSIM3v1_PS:
here->BSIM3v1sourcePerimeter = value->rValue;
here->BSIM3v1sourcePerimeter = value->rValue*scale;
here->BSIM3v1sourcePerimeterGiven = TRUE;
break;
case BSIM3v1_PD:
here->BSIM3v1drainPerimeter = value->rValue;
here->BSIM3v1drainPerimeter = value->rValue*scale;
here->BSIM3v1drainPerimeterGiven = TRUE;
break;
case BSIM3v1_NRS:

17
src/spicelib/devices/bsim3v1a/b3v1apar.c

@ -10,18 +10,23 @@ File: b3v1apar.c
#include "bsim3v1adef.h"
#include "sperror.h"
#include "suffix.h"
#include "fteext.h"
int
BSIM3v1Aparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
if ( !cp_getvar( "scale", CP_REAL, (double*) &scale ) ) scale = 1;
BSIM3v1Ainstance *here = (BSIM3v1Ainstance*)inst;
switch(param)
{ case BSIM3v1A_W:
here->BSIM3v1Aw = value->rValue;
here->BSIM3v1Aw = value->rValue*scale;
here->BSIM3v1AwGiven = TRUE;
break;
case BSIM3v1A_L:
here->BSIM3v1Al = value->rValue;
here->BSIM3v1Al = value->rValue*scale;
here->BSIM3v1AlGiven = TRUE;
break;
case BSIM3v1A_M:
@ -29,19 +34,19 @@ BSIM3v1Aparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
here->BSIM3v1AmGiven = TRUE;
break;
case BSIM3v1A_AS:
here->BSIM3v1AsourceArea = value->rValue;
here->BSIM3v1AsourceArea = value->rValue*scale*scale;
here->BSIM3v1AsourceAreaGiven = TRUE;
break;
case BSIM3v1A_AD:
here->BSIM3v1AdrainArea = value->rValue;
here->BSIM3v1AdrainArea = value->rValue*scale*scale;
here->BSIM3v1AdrainAreaGiven = TRUE;
break;
case BSIM3v1A_PS:
here->BSIM3v1AsourcePerimeter = value->rValue;
here->BSIM3v1AsourcePerimeter = value->rValue*scale;
here->BSIM3v1AsourcePerimeterGiven = TRUE;
break;
case BSIM3v1A_PD:
here->BSIM3v1AdrainPerimeter = value->rValue;
here->BSIM3v1AdrainPerimeter = value->rValue*scale;
here->BSIM3v1AdrainPerimeterGiven = TRUE;
break;
case BSIM3v1A_NRS:

17
src/spicelib/devices/bsim3v1s/b3v1spar.c

@ -10,34 +10,39 @@ File: b3v1spar.c
#include "bsim3v1sdef.h"
#include "sperror.h"
#include "suffix.h"
#include "fteext.h"
int
BSIM3v1Sparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
double scale;
if ( !cp_getvar( "scale", CP_REAL, (double*) &scale ) ) scale = 1;
BSIM3v1Sinstance *here = (BSIM3v1Sinstance*)inst;
switch(param)
{ case BSIM3v1S_W:
here->BSIM3v1Sw = value->rValue;
here->BSIM3v1Sw = value->rValue*scale;
here->BSIM3v1SwGiven = TRUE;
break;
case BSIM3v1S_L:
here->BSIM3v1Sl = value->rValue;
here->BSIM3v1Sl = value->rValue*scale;
here->BSIM3v1SlGiven = TRUE;
break;
case BSIM3v1S_AS:
here->BSIM3v1SsourceArea = value->rValue;
here->BSIM3v1SsourceArea = value->rValue*scale*scale;
here->BSIM3v1SsourceAreaGiven = TRUE;
break;
case BSIM3v1S_AD:
here->BSIM3v1SdrainArea = value->rValue;
here->BSIM3v1SdrainArea = value->rValue*scale*scale;
here->BSIM3v1SdrainAreaGiven = TRUE;
break;
case BSIM3v1S_PS:
here->BSIM3v1SsourcePerimeter = value->rValue;
here->BSIM3v1SsourcePerimeter = value->rValue*scale;
here->BSIM3v1SsourcePerimeterGiven = TRUE;
break;
case BSIM3v1S_PD:
here->BSIM3v1SdrainPerimeter = value->rValue;
here->BSIM3v1SdrainPerimeter = value->rValue*scale;
here->BSIM3v1SdrainPerimeterGiven = TRUE;
break;
case BSIM3v1S_NRS:

17
src/spicelib/devices/bsim4/b4par.c

@ -19,6 +19,7 @@
#include "bsim4def.h"
#include "sperror.h"
#include "suffix.h"
#include "fteext.h"
int
BSIM4param(param,value,inst,select)
@ -27,14 +28,18 @@ IFvalue *value;
GENinstance *inst;
IFvalue *select;
{
double scale;
if ( !cp_getvar( "scale", CP_REAL, (double*) &scale ) ) scale = 1;
BSIM4instance *here = (BSIM4instance*)inst;
switch(param)
{ case BSIM4_W:
here->BSIM4w = value->rValue;
here->BSIM4w = value->rValue*scale;
here->BSIM4wGiven = TRUE;
break;
case BSIM4_L:
here->BSIM4l = value->rValue;
here->BSIM4l = value->rValue*scale;
here->BSIM4lGiven = TRUE;
break;
case BSIM4_M:
@ -50,19 +55,19 @@ IFvalue *select;
here->BSIM4minGiven = TRUE;
break;
case BSIM4_AS:
here->BSIM4sourceArea = value->rValue;
here->BSIM4sourceArea = value->rValue*scale*scale;
here->BSIM4sourceAreaGiven = TRUE;
break;
case BSIM4_AD:
here->BSIM4drainArea = value->rValue;
here->BSIM4drainArea = value->rValue*scale*scale;
here->BSIM4drainAreaGiven = TRUE;
break;
case BSIM4_PS:
here->BSIM4sourcePerimeter = value->rValue;
here->BSIM4sourcePerimeter = value->rValue*scale;
here->BSIM4sourcePerimeterGiven = TRUE;
break;
case BSIM4_PD:
here->BSIM4drainPerimeter = value->rValue;
here->BSIM4drainPerimeter = value->rValue*scale;
here->BSIM4drainPerimeterGiven = TRUE;
break;
case BSIM4_NRS:

1
src/spicelib/devices/bsim4v2/b4v2par.c

@ -9,7 +9,6 @@
**********/
#include "ngspice.h"
#include <stdio.h>
#include "ifsim.h"
#include "bsim4v2def.h"
#include "sperror.h"

Loading…
Cancel
Save