scale option included
This commit is contained in:
parent
3e1a0ea99f
commit
1807ad0179
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
**********/
|
||||
|
||||
#include "ngspice.h"
|
||||
#include <stdio.h>
|
||||
#include "ifsim.h"
|
||||
#include "bsim4v2def.h"
|
||||
#include "sperror.h"
|
||||
|
|
|
|||
Loading…
Reference in New Issue