From 19a444c72cd16c60bc6c5afa3c09b3d7802be54f Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Tue, 17 Feb 2026 12:53:10 +0100 Subject: [PATCH] Add 'factuo' as redundandant synonym to 'mulu0' to enable degradation simulation with BSIM3 and BSIM4. --- src/spicelib/devices/bsim3/b3.c | 1 + src/spicelib/devices/bsim3v32/b3v32.c | 1 + src/spicelib/devices/bsim4/b4.c | 1 + src/spicelib/devices/bsim4v5/b4v5.c | 1 + src/spicelib/devices/bsim4v6/b4v6.c | 1 + src/spicelib/devices/bsim4v7/b4v7.c | 1 + 6 files changed, 6 insertions(+) diff --git a/src/spicelib/devices/bsim3/b3.c b/src/spicelib/devices/bsim3/b3.c index d85a462ec..9deae1a24 100644 --- a/src/spicelib/devices/bsim3/b3.c +++ b/src/spicelib/devices/bsim3/b3.c @@ -29,6 +29,7 @@ IOP( "acnqsmod", BSIM3_ACNQSMOD, IF_INTEGER, "AC NQS model selector"), IOP( "geo", BSIM3_GEO, IF_INTEGER, "ACM model drain/source connection"), IOP( "delvto", BSIM3_DELVTO, IF_REAL, "Zero bias threshold voltage variation"), IOP( "mulu0", BSIM3_MULU0, IF_REAL, "Low field mobility multiplier"), +IOPR( "factuo", BSIM3_MULU0, IF_REAL, "Low field mobility multiplier"), IP( "ic", BSIM3_IC, IF_REALVEC , "Vector of DS,GS,BS initial voltages"), IOP( "icvgs", BSIM3_IC_VGS, IF_REAL , "GS initial voltage"), IOP( "icvds", BSIM3_IC_VDS, IF_REAL , "DS initial voltage"), diff --git a/src/spicelib/devices/bsim3v32/b3v32.c b/src/spicelib/devices/bsim3v32/b3v32.c index 8b38ff9b3..c4cf931cb 100644 --- a/src/spicelib/devices/bsim3v32/b3v32.c +++ b/src/spicelib/devices/bsim3v32/b3v32.c @@ -29,6 +29,7 @@ IOP( "nqsmod", BSIM3v32_NQSMOD, IF_INTEGER, "Non-quasi-static model selector"), IOP( "geo", BSIM3v32_GEO, IF_INTEGER, "ACM model drain/source connection"), IOP( "delvto", BSIM3v32_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOP( "mulu0", BSIM3v32_MULU0, IF_REAL , "Low field mobility multiplier"), +IOPR( "factuo", BSIM3v32_MULU0, IF_REAL , "Low field mobility multiplier"), IP( "ic", BSIM3v32_IC, IF_REALVEC , "Vector of DS,GS,BS initial voltages"), OP( "gmbs", BSIM3v32_GMBS, IF_REAL, "Gmb"), OP( "gm", BSIM3v32_GM, IF_REAL, "Gm"), diff --git a/src/spicelib/devices/bsim4/b4.c b/src/spicelib/devices/bsim4/b4.c index 438c1498b..913d26750 100644 --- a/src/spicelib/devices/bsim4/b4.c +++ b/src/spicelib/devices/bsim4/b4.c @@ -56,6 +56,7 @@ IOP( "rbpd", BSIM4_RBPD, IF_REAL , "Body resistance"), IOP( "delvto", BSIM4_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOPR("delvt0", BSIM4_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOP( "mulu0", BSIM4_MULU0, IF_REAL, "Low field mobility multiplier"), +IOPR( "factuo", BSIM4_MULU0, IF_REAL, "Low field mobility multiplier"), IOP( "xgw", BSIM4_XGW, IF_REAL, "Distance from gate contact center to device edge"), IOP( "ngcon", BSIM4_NGCON, IF_REAL, "Number of gate contacts"), IOP( "wnflag", BSIM4_WNFLAG, IF_INTEGER, "W/NF device flag for bin selection"), diff --git a/src/spicelib/devices/bsim4v5/b4v5.c b/src/spicelib/devices/bsim4v5/b4v5.c index 2d920af47..a5725d7c8 100644 --- a/src/spicelib/devices/bsim4v5/b4v5.c +++ b/src/spicelib/devices/bsim4v5/b4v5.c @@ -47,6 +47,7 @@ IOP( "rbpd", BSIM4v5_RBPD, IF_REAL , "Body resistance"), IOP( "delvto", BSIM4v5_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOPR( "delvt0", BSIM4v5_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOP( "mulu0", BSIM4v5_MULU0, IF_REAL, "Low field mobility multiplier"), +IOPR( "factuo", BSIM4v5_MULU0, IF_REAL, "Low field mobility multiplier"), IOP( "xgw", BSIM4v5_XGW, IF_REAL, "Distance from gate contact center to device edge"), IOP( "ngcon", BSIM4v5_NGCON, IF_REAL, "Number of gate contacts"), diff --git a/src/spicelib/devices/bsim4v6/b4v6.c b/src/spicelib/devices/bsim4v6/b4v6.c index 1ecb91625..a37db6567 100644 --- a/src/spicelib/devices/bsim4v6/b4v6.c +++ b/src/spicelib/devices/bsim4v6/b4v6.c @@ -53,6 +53,7 @@ IOP( "rbpd", BSIM4v6_RBPD, IF_REAL , "Body resistance"), IOP( "delvto", BSIM4v6_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOPR( "delvt0", BSIM4v6_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOP( "mulu0", BSIM4v6_MULU0, IF_REAL, "Low field mobility multiplier"), +IOPR( "factuo", BSIM4v6_MULU0, IF_REAL, "Low field mobility multiplier"), IOP( "xgw", BSIM4v6_XGW, IF_REAL, "Distance from gate contact center to device edge"), IOP( "ngcon", BSIM4v6_NGCON, IF_REAL, "Number of gate contacts"), diff --git a/src/spicelib/devices/bsim4v7/b4v7.c b/src/spicelib/devices/bsim4v7/b4v7.c index f1d70b209..d775850e4 100644 --- a/src/spicelib/devices/bsim4v7/b4v7.c +++ b/src/spicelib/devices/bsim4v7/b4v7.c @@ -54,6 +54,7 @@ IOP( "rbpd", BSIM4v7_RBPD, IF_REAL , "Body resistance"), IOP( "delvto", BSIM4v7_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOPR( "delvt0", BSIM4v7_DELVTO, IF_REAL , "Zero bias threshold voltage variation"), IOP( "mulu0", BSIM4v7_MULU0, IF_REAL, "Low field mobility multiplier"), +IOPR( "factuo", BSIM4v7_MULU0, IF_REAL, "Low field mobility multiplier"), IOP( "xgw", BSIM4v7_XGW, IF_REAL, "Distance from gate contact center to device edge"), IOP( "ngcon", BSIM4v7_NGCON, IF_REAL, "Number of gate contacts"), IOP( "wnflag", BSIM4v7_WNFLAG, IF_INTEGER, "W/NF device flag for bin selection"),