diff --git a/configure.ac b/configure.ac
index 344e72cba..c3c4a4898 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1080,6 +1080,7 @@ AC_CONFIG_FILES([Makefile
src/spicelib/devices/bsim4/Makefile
src/spicelib/devices/bsim4v5/Makefile
src/spicelib/devices/bsim4v6/Makefile
+ src/spicelib/devices/bsim4v7/Makefile
src/spicelib/devices/bsim3soi_pd/Makefile
src/spicelib/devices/bsim3soi_fd/Makefile
src/spicelib/devices/bsim3soi_dd/Makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index 67f429c75..c64cc8b84 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -55,6 +55,7 @@ DYNAMIC_DEVICELIBS = \
spicelib/devices/bsim4/libbsim4.la \
spicelib/devices/bsim4v5/libbsim4v5.la \
spicelib/devices/bsim4v6/libbsim4v6.la \
+ spicelib/devices/bsim4v7/libbsim4v7.la \
spicelib/devices/cap/libcap.la \
spicelib/devices/bsim3soi_pd/libbsim3soipd.la \
spicelib/devices/bsim3soi_fd/libbsim3soifd.la \
diff --git a/src/spicelib/devices/Makefile.am b/src/spicelib/devices/Makefile.am
index 027ee8a2d..4a3caa7a0 100644
--- a/src/spicelib/devices/Makefile.am
+++ b/src/spicelib/devices/Makefile.am
@@ -10,6 +10,7 @@ SUBDIRS = \
bsim4 \
bsim4v5 \
bsim4v6 \
+ bsim4v7 \
bsim3v0 \
bsim3v1 \
bsim3v32 \
@@ -69,6 +70,7 @@ DIST_SUBDIRS = \
bsim4 \
bsim4v5 \
bsim4v6 \
+ bsim4v7 \
bsim3v0 \
bsim3v1 \
bsim3v32 \
diff --git a/src/spicelib/devices/dev.c b/src/spicelib/devices/dev.c
index 0fed660b0..acdb09f2b 100644
--- a/src/spicelib/devices/dev.c
+++ b/src/spicelib/devices/dev.c
@@ -81,6 +81,7 @@ int add_udn(int,Evt_Udn_Info_t **);
#include "bsim4/bsim4itf.h"
#include "bsim4v5/bsim4v5itf.h"
#include "bsim4v6/bsim4v6itf.h"
+#include "bsim4v7/bsim4v7itf.h"
#include "bsim3soi_pd/b3soipditf.h"
#include "bsim3soi_fd/b3soifditf.h"
#include "bsim3soi_dd/b3soidditf.h"
@@ -151,6 +152,7 @@ static SPICEdev *(*static_devices[])(void) = {
get_bsim4_info,
get_bsim4v5_info,
get_bsim4v6_info,
+ get_bsim4v7_info,
get_b3soipd_info,
get_b3soifd_info,
get_b3soidd_info,
@@ -282,12 +284,12 @@ SPICEdev ** devices(void)
/*not yet usable*/
#ifdef ADMS
-#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", \
+#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", "bsim4v7", \
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv1", \
"cap", "cccs", "ccvs", "csw", "dio", "hfet", "hfet2", "ind", "isrc", "jfet", "ltra", "mes", "mesa" ,"mos1", "mos2", "mos3", \
"mos6", "mos9", "res", "soi3", "sw", "tra", "urc", "vccs", "vcvs", "vsrc", "hicum0", "hicum2", "bjt504t", "ekv", "psp102"}
#else
-#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", \
+#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", "bsim4v7", \
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv1", \
"cap", "cccs", "ccvs", "csw", "dio", "hfet", "hfet2", "ind", "isrc", "jfet", "ltra", "mes", "mesa" ,"mos1", "mos2", "mos3", \
"mos6", "mos9", "res", "soi3", "sw", "tra", "urc", "vccs", "vcvs", "vsrc"}
diff --git a/src/spicelib/parser/inp2m.c b/src/spicelib/parser/inp2m.c
index 85505077e..0208360fd 100644
--- a/src/spicelib/parser/inp2m.c
+++ b/src/spicelib/parser/inp2m.c
@@ -225,6 +225,7 @@ INP2M (CKTcircuit *ckt, INPtables * tab, card * current)
&& thismodel->INPmodType != INPtypelook ("BSIM4")
&& thismodel->INPmodType != INPtypelook ("BSIM4v5")
&& thismodel->INPmodType != INPtypelook ("BSIM4v6")
+ && thismodel->INPmodType != INPtypelook ("BSIM4v7")
&& thismodel->INPmodType != INPtypelook ("BSIM3v0")
&& thismodel->INPmodType != INPtypelook ("BSIM3v1")
&& thismodel->INPmodType != INPtypelook ("SOI3")
diff --git a/src/spicelib/parser/inpdomod.c b/src/spicelib/parser/inpdomod.c
index 6e96416eb..da3a49b42 100644
--- a/src/spicelib/parser/inpdomod.c
+++ b/src/spicelib/parser/inpdomod.c
@@ -310,7 +310,10 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
if (prefix("4.6", ver)) {
type = INPtypelook("BSIM4v6");
}
- if ( (strstr(ver, "default")) || (prefix("4.7", ver)) ) {
+ if (prefix("4.7", ver)) {
+ type = INPtypelook("BSIM4v7");
+ }
+ if ( (strstr(ver, "default")) || (prefix("4.8", ver)) ) {
type = INPtypelook("BSIM4");
}
if (type < 0) {
diff --git a/src/spicelib/parser/inpgmod.c b/src/spicelib/parser/inpgmod.c
index 7d8eb69c3..2cb17d347 100644
--- a/src/spicelib/parser/inpgmod.c
+++ b/src/spicelib/parser/inpgmod.c
@@ -220,6 +220,7 @@ INPgetModBin( CKTcircuit* ckt, char* name, INPmodel** model, INPtables* tab, cha
&& modtmp->INPmodType != INPtypelook ("BSIM4")
&& modtmp->INPmodType != INPtypelook ("BSIM4v5")
&& modtmp->INPmodType != INPtypelook ("BSIM4v6")
+ && modtmp->INPmodType != INPtypelook ("BSIM4v7")
&& modtmp->INPmodType != INPtypelook ("HiSIM2")
&& modtmp->INPmodType != INPtypelook ("HiSIMHV")
) continue; /* We left the loop if the model is not in the list */
diff --git a/visualc-shared/sharedspice.vcproj b/visualc-shared/sharedspice.vcproj
index 892e8252f..cef4435d0 100644
--- a/visualc-shared/sharedspice.vcproj
+++ b/visualc-shared/sharedspice.vcproj
@@ -596,6 +596,22 @@
RelativePath="..\src\spicelib\devices\bsim4v6\bsim4v6itf.h"
>
+
+
+
+
+
+
+
+
@@ -3384,6 +3400,86 @@
RelativePath="..\src\spicelib\devices\bsim4v6\b4v6trunc.c"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3548,6 +3644,10 @@
RelativePath="..\src\spicelib\devices\bsim4v6\bsim4v6init.c"
>
+
+
diff --git a/visualc/vngspice.vcproj b/visualc/vngspice.vcproj
index 0157213c2..983e64412 100644
--- a/visualc/vngspice.vcproj
+++ b/visualc/vngspice.vcproj
@@ -1392,6 +1392,22 @@
RelativePath="..\src\spicelib\devices\bsim4v6\bsim4v6itf.h"
>
+
+
+
+
+
+
+
+
@@ -4164,6 +4180,86 @@
RelativePath="..\src\spicelib\devices\bsim4v6\b4v6trunc.c"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4328,6 +4424,10 @@
RelativePath="..\src\spicelib\devices\bsim4v6\bsim4v6init.c"
>
+
+
diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj
index 716f1c984..a138ad47b 100644
--- a/visualc/vngspice.vcxproj
+++ b/visualc/vngspice.vcxproj
@@ -892,6 +892,10 @@
+
+
+
+
@@ -1586,6 +1590,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1627,6 +1651,7 @@
+
diff --git a/visualc/vngspice_fftw.vcproj b/visualc/vngspice_fftw.vcproj
index 8b6c20405..bd43abb64 100644
--- a/visualc/vngspice_fftw.vcproj
+++ b/visualc/vngspice_fftw.vcproj
@@ -1423,6 +1423,22 @@
RelativePath="..\src\spicelib\devices\bsim4v6\bsim4v6itf.h"
>
+
+
+
+
+
+
+
+
@@ -4195,6 +4211,86 @@
RelativePath="..\src\spicelib\devices\bsim4v6\b4v6trunc.c"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4359,6 +4455,10 @@
RelativePath="..\src\spicelib\devices\bsim4v6\bsim4v6init.c"
>
+
+
diff --git a/visualc/vngspice_fftw_vc10.vcxproj b/visualc/vngspice_fftw_vc10.vcxproj
index f599e24e8..33d65ccb8 100644
--- a/visualc/vngspice_fftw_vc10.vcxproj
+++ b/visualc/vngspice_fftw_vc10.vcxproj
@@ -875,6 +875,10 @@
+
+
+
+
@@ -1569,6 +1573,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1610,6 +1634,7 @@
+