Commit bec44646 authored by Carsten Schoenert's avatar Carsten Schoenert

New upstream version 30.2

parent 3c5bab5f
Ngspice F.A.Q.Version 2.3 (ngspice-29 release)
Ngspice F.A.Q.Version 2.3 (ngspice-30 release)
Maintained by Holger Vogt
Last update: 09-14-2018
......@@ -241,7 +241,7 @@
The latest version released is:
* ngspice-29 (released on ../../2018)
* ngspice-30 (released on 01/01/2019)
2.2. What are the latest features in the current release?
......
......@@ -5,7 +5,7 @@ Table of contents
1 Ngspice installation (LINUX)
1.1 Prerequisites
1.2 Install from tarball (e.g. ngspice-29.tar.gz)
1.2 Install from tarball (e.g. ngspice-30.tar.gz)
1.3 Install from git repository
1.4 Advanced Install
1.4.1 Most useful options
......@@ -53,14 +53,14 @@ This file describes the procedures to install ngspice from sources.
information on ngspice and its usage.
1.2 Install from tarball (e.g. ngspice-29.tar.gz)
1.2 Install from tarball (e.g. ngspice-30.tar.gz)
This covers installation from a release distribution (for example
ngspice-27.tar.gz, the so called tar ball).
After downloading the tar ball to a local directory unpack it using:
$ tar -zxvf ngspice-29.tar.gz
$ tar -zxvf ngspice-30.tar.gz
Now change directories in to the top-level source directory (where this
INSTALL file can be found).
......@@ -460,8 +460,8 @@ Most of the options now following are not well maintained, are not tested or eve
to the standard install (FLEX and BISON have to be made available in MSYS).
Some links are given below which describe the procedures.
Installing from the tarball, e.g. ngspice-29.tar.gz, is now simple: After
expanding, you may just run ./compile_min.sh from the ngspice-29 directory.
Installing from the tarball, e.g. ngspice-30.tar.gz, is now simple: After
expanding, you may just run ./compile_min.sh from the ngspice-30 directory.
The default installation location of ngspice is the Windows path
C:\spice. The install path can be altered by passing --prefix=NEWPATH
......@@ -475,7 +475,7 @@ Most of the options now following are not well maintained, are not tested or eve
The procedure of compiling a distribution (for example, a tarball from
the ngspice website), is as follows:
$ cd ngspice-29
$ cd ngspice-30
$ mkdir release
$ cd release
$ ../configure --with-wingui ...and other options
......
## Process this file with automake to produce Makefile.in
SUBDIRS = @XGRAPHDIR@ src man tests
DIST_SUBDIRS = @XGRAPHDIR@ src man tests
SUBDIRS = src man tests
DIST_SUBDIRS = src man tests
EXTRA_DIST = FAQ autogen.sh Stuarts_Poly_Notes \
ANALYSES BUGS AUTHORS ChangeLog \
DEVICES NEWS README README.tcl \
README.shared-xspice README.vdmos \
README.adms README-old.adms contrib \
examples m4 visualc @NOTXGRAPH@ \
xgraph/aclocal.m4 \
examples m4 visualc \
build-for-mac-os.sh \
cross-compile.sh cross-compile-shared.sh \
compile_min.sh compile_linux.sh compile_min_shared.sh \
......@@ -27,12 +26,6 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = ngspice.pc
endif SHARED_MODULE
dist-hook:
rm -rf `find $(distdir)/xgraph -name .deps`
rm -rf `find $(distdir)/xgraph -name config.status`
rm -rf `find $(distdir)/xgraph -name config.log`
rm -rf `find $(distdir)/xgraph -name Makefile`
mrproper: maintainer-clean
rm -f `find $(top_srcdir) -type f -name "*~" -print`
rm -f `find $(top_srcdir) -type f -name "*.orig" -print`
......
Ngspice-30, Jan 1st, 2019
============
- New features:
+ VDMOS device model has been overhauled extensively
+ Making the manual is now much more flexible and comfortable,
xhtml manual added.
+ Add pre-defined variable controlswait to enable running .control sections
after the simulation has finished (shared ngspice only)
+ Add an icon to the MS Windows GUI build
+ Enable more reliable memory usage data
+ Support libtinfo
+ add rotation angle to text output, vertcally aligned text for Postscript
and Windows y-axis plot labels
+ enable postscript output for extended ascii. Currently only Western
European latin-1 (ISO/IEC 8859-1) encoding is supported
+ Ancient Xgraph code removed
- Bug fixes:
+ many bugs fixed (bug tracker nos. 253, 332, 337, 368, 374, 375, 376, 377, 378,
379, 380, 381, 384, 385, 386)
+ ancient bug removed that led to spurious heap corruption of shared ngspice
under (very sensitive) Windows 10
+ memory leaks removed
Ngspice-29, Sept 30th, 2018
============
......@@ -5,7 +30,7 @@ Ngspice-29, Sept 30th, 2018
+ new variable no_auto_gnd. If set, the automatic replacing of gnd by 0
is disabled
+ new compatibility modes for 'set behavior=??'. ps sets PSPICE, lt sets
LTSPICE compatibility, ltps is both for a file added by .include command,
LTSPICE compatibility, ltps is both for a file added by .include command,
psa, lta, and ltpsa are the same for the whole netlist
+ .if, .elseif, .endif is now evaluated recursively, nested .if are thus
enabled
......
......@@ -29,7 +29,7 @@ admsXml (see below).
Unfortunately most of the above named models licenses are not compatible to free software
rules as defined by DFSG. Therefore since ngspice-28 the va model files are no longer part of
the standard ngspice distribution. They may however be downloaded as a tar.gz archive from the
ngspice-29 file distribution folder. After downloading, you may expand the zipped files into
ngspice-30 file distribution folder. After downloading, you may expand the zipped files into
your ngspice top level folder. The models enable dc, ac, and tran simulations. Noise simulation
is not supported.
Other (foreign) va model files will not compile without code tweaking, due to the limited
......
......@@ -118,7 +118,7 @@ check_adms_va()
FOK=0
if [ -d "$adms_dir" ]; then
ls $adms_dir/admsva/*.va > /dev/null 2>&1
exitcode=${PIPESTATUS[0]}
exitcode=$?
if [ $exitcode -ne 0 ]; then
FOK=1
fi
......
......@@ -12,7 +12,7 @@
# ---------------
# Initialisation of configure
AC_INIT([ngspice], [29], [http://ngspice.sourceforge.net/bugrep.html])
AC_INIT([ngspice], [30], [http://ngspice.sourceforge.net/bugrep.html])
# Unique file in the source directory
AC_CONFIG_SRCDIR([src/ngspice.c])
......@@ -185,11 +185,6 @@ AC_ARG_ENABLE([cluster],
AC_ARG_ENABLE([help],
[AS_HELP_STRING([--enable-help], [Force building nghelp (deprecated)])])
# --enable-xgraph: Compile the xgraph plotting program. Default is "no".
# Xgraph is a plotting package for X11 once very popular.
AC_ARG_ENABLE([xgraph],
[AS_HELP_STRING([--enable-xgraph], [Enable xgraph compilation.])])
# --with-fftw3: Use fftw3 for Fourier transforms. Default is "yes".
AC_ARG_WITH([fftw3],
[AS_HELP_STRING([--with-fftw3[=yes/no]], [Use fftw3 for Fourier transforms. Default=yes.])])
......@@ -332,6 +327,8 @@ if test "x$with_ngshared" != x && test "x$with_ngshared" != xno ; then
CFLAGS="$CFLAGS -xldscope=hidden"
fi
;;
*mingw* | *msys* | *cygwin* )
;;
*)
CFLAGS="$CFLAGS -fvisibility=hidden"
;;
......@@ -552,6 +549,29 @@ AC_ARG_WITH([wingui],
AC_MSG_RESULT([$with_wingui])
AM_CONDITIONAL([WINGUI], [test "x$with_wingui" = xyes])
case $host_os in
*mingw* | *msys* )
has_win32=yes
if test "x$with_wingui" = xyes; then
has_winconsole=no
else
if test "x$with_ngshared" = xyes; then
has_winconsole=no
else
has_winconsole=yes
fi
fi
;;
*cygwin* )
has_cyg=yes
;;
*)
has_win32=no
has_cyg=no
;;
esac
AM_CONDITIONAL([WINCONSOLE], [test "x$has_winconsole" = xyes])
case $with_wingui in
yes )
AC_DEFINE([X_DISPLAY_MISSING])
......@@ -912,18 +932,6 @@ if test "x$enable_smltmsdebug" = xyes; then
AC_DEFINE([D_DBG_SMALLTIMES], [], [Define if we want debug distortion analysis (SMALLTIMES)])
AC_MSG_RESULT([WARNING: Distortion analysis debug *D_DBG_SMALLTIMES* is enabled])
fi
if test "x$enable_xgraph" = xyes; then
AC_MSG_RESULT([Xgraph compilation enabled.])
AC_CONFIG_SUBDIRS([xgraph])
XGRAPHDIR="xgraph"
NOTXGRAPH=""
else
XGRAPHDIR=""
NOTXGRAPH="xgraph"
fi
AC_SUBST([XGRAPHDIR])
AC_SUBST([NOTXGRAPH])
AC_PROG_YACC
AC_PATH_PROG([BISON], [bison])
......@@ -1082,9 +1090,9 @@ else
AC_CHECK_HEADERS([readline/readline.h readline/history.h],
[AC_DEFINE([HAVE_GNUREADLINE], [], [Define if we have GNU readline])],
[AC_MSG_ERROR([Couldn't find GNU readline headers.])])
AC_SEARCH_LIBS([tputs], [ncurses termcap],
[AC_DEFINE([HAVE_TERMCAP], [], [Define if we have ncurses or termcap])],
[AC_MSG_ERROR([Found neither ncurses or termcap])])
AC_SEARCH_LIBS([tputs], [ncurses tinfo termcap],
[AC_DEFINE([HAVE_TERMCAP], [], [Define if we have ncurses/terminfo or termcap])],
[AC_MSG_ERROR([Found neither ncurses/terminfo or termcap])])
AC_CHECK_LIB([readline], [readline],
[LIBS="$LIBS -lreadline"],
[AC_MSG_ERROR([Couldn't find readline libraries.])])
......@@ -1102,9 +1110,9 @@ else
AC_CHECK_HEADERS([editline/readline.h],
[AC_DEFINE([HAVE_BSDEDITLINE], [1], [Define to enable BSD editline])],
[AC_MSG_ERROR([Couldn't find BSD editline headers.])])
AC_SEARCH_LIBS([tputs], [ncurses termcap],
[AC_DEFINE([HAVE_TERMCAP], [], [Define if we have ncurses or termcap])],
[AC_MSG_ERROR([Found neither ncurses or termcap])])
AC_SEARCH_LIBS([tputs], [ncurses tinfo termcap],
[AC_DEFINE([HAVE_TERMCAP], [], [Define if we have ncurses/terminfo or termcap])],
[AC_MSG_ERROR([Found neither ncurses/terminfo or termcap])])
AC_CHECK_LIB([edit], [readline],
[LIBS="$LIBS -ledit"],
[AC_MSG_ERROR([Couldn't find editline libraries.])],
......
# install and dist
dist_doc_DATA = manual.pdf
# Makefile.am for ngspice-doc
#
# Copyright (C) Holger Vogt
# (C) 2018 Carsten Schoenert <c.schoenert@...>
#
# This file is part of the ngspice-doc. Please see README and COPYING for
# terms of use.
#
# SPDX-License-Identifier: CC-BY-SA-4.0
## Additional targets that will be processed by the distcheck target.
installcheck-am: check-lyx-files check-png-files
# dist
EXTRA_DIST = manual.lyx Tables Images
MAINTAINERCLEANFILES = manual.pdf
lyx_fragments := \
$(wildcard Tables/*.lyx) \
$(wildcard Images/*.png) \
$(wildcard Images/*.gif)
## Needed PNG files for the documentation.
GRAPHIC_FILES = \
$(top_srcdir)/Images/C4.png \
$(top_srcdir)/Images/C5.png \
$(top_srcdir)/Images/CIDER_Conc_profile1.png \
$(top_srcdir)/Images/CIDER_Conc_profile2.png \
$(top_srcdir)/Images/Example_Circuit_1.png \
$(top_srcdir)/Images/Example_Circuit_2.png \
$(top_srcdir)/Images/Example_Circuit_C1.png \
$(top_srcdir)/Images/Example_Circuit_C2.png \
$(top_srcdir)/Images/Example_Circuit_C3.png \
$(top_srcdir)/Images/fft_windows.png \
$(top_srcdir)/Images/Filter-IO.png \
$(top_srcdir)/Images/gnuplot-stat-an.png \
$(top_srcdir)/Images/mesh-3a.png \
$(top_srcdir)/Images/ng-win-out.png \
$(top_srcdir)/Images/ng-win-out-white.png \
$(top_srcdir)/Images/optim-speed.png \
$(top_srcdir)/Images/Subc-filter.png \
$(top_srcdir)/Images/vr2-trrandom.png \
$(top_srcdir)/Images/XSPICE-Toplevel.png
## Needed LYX files for the documentation.
LYX_FILES = \
$(top_srcdir)/Tables/ASRC.lyx \
$(top_srcdir)/Tables/BJT2.lyx \
$(top_srcdir)/Tables/BJT.lyx \
$(top_srcdir)/Tables/BSIM1.lyx \
$(top_srcdir)/Tables/BSIM2.lyx \
$(top_srcdir)/Tables/Capacitor.lyx \
$(top_srcdir)/Tables/CCCS.lyx \
$(top_srcdir)/Tables/CCVS.lyx \
$(top_srcdir)/Tables/CplLines.lyx \
$(top_srcdir)/Tables/Inductor.lyx \
$(top_srcdir)/Tables/Isource.lyx \
$(top_srcdir)/Tables/LTRA.lyx \
$(top_srcdir)/Tables/MOS1.lyx \
$(top_srcdir)/Tables/MOS2.lyx \
$(top_srcdir)/Tables/MOS3.lyx \
$(top_srcdir)/Tables/MOS6.lyx \
$(top_srcdir)/Tables/MOS9.lyx \
$(top_srcdir)/Tables/Mutual.lyx \
$(top_srcdir)/Tables/Resistor.lyx \
$(top_srcdir)/Tables/Tranline.lyx \
$(top_srcdir)/Tables/TransLine.lyx \
$(top_srcdir)/Tables/URC.lyx \
$(top_srcdir)/Tables/VBIC.lyx \
$(top_srcdir)/Tables/VCCS.lyx \
$(top_srcdir)/Tables/VCVS.lyx \
$(top_srcdir)/Tables/Vsource.lyx
BUILD_PDF = build_pdf
BUILD_HTML = build_html
all: manual.pdf manual.html
manual.pdf:
@$(MKDIR_P) $(top_builddir)/$(BUILD_PDF) ;\
echo "building $(top_builddir)/$(BUILD_PDF)/manual.pdf" ;\
lyx @LYX_USER_DIR@ -E pdf2 $(BUILD_PDF)/manual.pdf $(top_srcdir)/manual.lyx
manual.html:
@$(MKDIR_P) $(top_builddir)/$(BUILD_HTML) ;\
echo "building $(top_builddir)/$(BUILD_HTML)/manual.xhtml" ;\
lyx @LYX_USER_DIR@ -E xhtml $(BUILD_HTML)/manual.html $(top_srcdir)/manual.lyx
install-pdf-am: manual.pdf
$(MKDIR_P) $(DESTDIR)$(docdir) || exit 1
cp -a -f $(top_builddir)/$(BUILD_PDF)/manual.pdf $(DESTDIR)$(docdir)
install-html-am: manual.html
$(MKDIR_P) $(DESTDIR)$(docdir)/html || exit 1
cp -a -f $(top_builddir)/$(BUILD_HTML)/* $(DESTDIR)$(htmldir)/html
## Some sanity checks for the LYX files.
## This target will get called by the 'distcheck' target, The intention is
## to check for completeness of the files referenced by $(LYX_FILES).
check-lyx-files:
@echo -e "\nChecking availability of listed files in \$$(LYX_FILES)..."
@for file in $(LYX_FILES); do \
NOT_FOUND=0 ;\
if [ ! -f $${file} ]; then \
echo $${file} not found! ;\
NOT_FOUND=1 ;\
fi \
done ;\
if [ "$${NOT_FOUND}" -eq "1" ]; then \
echo "At least one file from \$$(LYX_FILES) could not be found!" ;\
else \
echo "All files found." ;\
fi
@echo -e "\nChecking for existing files that are *not* listed in \$$(LYX_FILES)..."
@FOUND_LYX_FILES=`find $(top_srcdir)/Tables -type f -name "*.lyx" | sort` ;\
ERROR=0 ;\
for entry in $${FOUND_LYX_FILES}; do \
FOUND_FILE=`basename $${entry}` ;\
echo "Checking $${FOUND_FILE} from $(top_srcdir)/Tables" ;\
for listed_lyx_file in $(LYX_FILES); do \
GIVEN_FILE=`basename $${listed_lyx_file}` ;\
FOUND=0 ;\
if [ "$${FOUND_FILE}" == "$${GIVEN_FILE}" ]; then \
FOUND=1 ;\
break ;\
fi ;\
done ;\
if [ "$${FOUND}" == "0" ]; then \
echo "Ooops! '$${entry}' not found in \$$(LYX_FILES)!" ;\
ERROR=1 ;\
fi ;\
done ;\
if [ "$${ERROR}" == "1" ]; then \
echo "" ;\
echo -e " \033[1;93mWARNING!!!" ;\
echo " At least one '*.lyx' file was found in the folder '$(top_srcdir)/Tables' that is not added to \$$(LYX_FILES) in '$(top_srcdir)/Makefile.am'!" ;\
echo -e " You might have forgotten to add these files?\e[0m" ;\
echo "" ;\
else \
echo "All files found." ;\
fi
## Some sanity checks for the PNG files.
## This target will get called by the 'distcheck' target, The intention is
## to check for completeness of the files referenced by $(GRAPHIC_FILES).
check-png-files:
@echo -e "\nChecking availability of listed files in \$$(GRAPHIC_FILES)..."
@for file in $(GRAPHIC_FILES); do \
NOT_FOUND=0 ;\
if [ ! -f $${file} ]; then \
echo $${file} not found! ;\
NOT_FOUND=1 ;\
fi \
done ;\
if [ "$${NOT_FOUND}" -eq "1" ]; then \
echo "At least one file from \$$(GRAPHICS_FILES) could not be found!" ;\
else \
echo "All files found." ;\
fi
@echo -e "\nChecking for existing files that are *not* listed in \$$(GRAPHICS_FILES)..."
@FOUND_GRAPHICS_FILES=`find $(top_srcdir)/Images -type f -name "*.png" | sort` ;\
ERROR=0 ;\
for entry in $${FOUND_GRAPHICS_FILES}; do \
FOUND_FILE=`basename $${entry}` ;\
echo "Checking $${FOUND_FILE} from $(top_srcdir)/Tables" ;\
for listed_lyx_file in $(GRAPHICS_FILES); do \
GIVEN_FILE=`basename $${listed_graphics_file}` ;\
FOUND=0 ;\
if [ "$${FOUND_FILE}" == "$${GIVEN_FILE}" ]; then \
FOUND=1 ;\
break ;\
fi ;\
done ;\
if [ "$${FOUND}" == "0" ]; then \
echo "Ooops! '$${entry}' not found in \$$(GRAPHICS_FILES)!" ;\
ERROR=1 ;\
fi ;\
done ;\
if [ "$${ERROR}" == "1" ]; then \
echo "" ;\
echo -e " \033[1;93mWARNING!!!" ;\
echo " At least one '*.png' file was found in the folder '$(top_srcdir)/Images' that is not added to \$$(GRAPHICS_FILES) in '$(top_srcdir)/Makefile.am'!" ;\
echo -e " You might have forgotten to add these files?\e[0m" ;\
echo "" ;\
else \
echo "All files found." ;\
fi
install-data-am: install-pdf-am install-html-am
uninstall-am:
rm -rf $(DESTDIR)$(docdir) $(DESTDIR)$(htmldir)
clean-local:
rm -rf $(top_builddir)/$(BUILD_PDF)
rm -rf $(top_builddir)/$(BUILD_HTML)
manual.pdf : manual.lyx $(lyx_fragments)
rm -f $@ ; lyx --export pdf2 $<
distclean-local: clean-local
upload:
chmod 664 manual.pdf
scp manual.pdf web.sourceforge.net:htdocs/docs
chmod 664 $(top_builddir)/$(BUILD_PDF)/manual.pdf
scp $(top_builddir)/$(BUILD_PDF)/manual.pdf web.sourceforge.net:htdocs/docs
echo "ls -l htdocs/docs" | sftp web.sourceforge.net
The manual for ngspice-28 is out!
The manual for ngspice-30 is there!
Starting with ngspice-21, we provide an elaborate manual.
It's source is a lyx file plus tables and pictures, it's standard
distribution is a pdf file. The manual actually uses Lyx 2.1 as its
distribution is a pdf file. The manual actually uses Lyx 2.2 as its
text processor.
......@@ -6,16 +6,17 @@ DESCRIPTION:
The Manual is composed from several LyX and image files.
This Package provides rules to:
* generate a pdf file from those.
* install the pdf somewhere
* build a tar-ball, for distribution
* generate a HTML based documentation.
* install the pdf somewhere.
* build a tar-ball for distribution.
USAGE:
======
eventually run:
autoreconf -Wno-portability --install
autoreconf [--verbose] --install
To `install' do something like:
./configure ; make ; make install
./configure [--prefix=DIR] ; make ; make install
Please read `INSTALL'
for detailed instructions.
......@@ -24,7 +25,7 @@ REQUIREMENTS:
You need:
`LyX 2.2' `TeX' and something like `texlive-lang-greek'
You need:
`GNU make' (wildcards are used)
`GNU make'
BUGS:
=====
......
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
# configure.ac for ngspice-doc
# To regenerate run:
# autoreconf -Wno-portability
# Copyright (C) Holger Vogt
# (C) 2018 Carsten Schoenert <c.schoenert@...>
#
# This file is part of the ngspice-doc. Please see README and COPYING for
# terms of use.
#
# SPDX-License-Identifier: CC-BY-SA-4.0
AC_INIT(ngspice-doc,29,[http://ngspice.sourceforge.net/bugrep.html])
# To regenerate the configure script call
# autoreconf -vi
AC_INIT(ngspice-doc,30,[http://ngspice.sourceforge.net/bugrep.html])
AC_PREREQ(2.61)
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE
AC_CHECK_PROG(lyx_found, lyx, [yes])
AC_CHECK_PROG([LYX], lyx, [yes], [no], [$PATH])
if test "$lyx_found" != "yes"; then
AC_MSG_ERROR([this package requires LyX])
if test "x$LYX" != "xyes"; then
AC_MSG_ERROR([This package requires LyX!])
fi
AC_ARG_WITH([lyxuserdir],
[AS_HELP_STRING([--with-lyxuserdir=DIR],
[use a dedicated Lyx user directory])],
[with_lyxuserdir="$withval"],
[with_lyxuserdir="no"])
# If the user has given the option '--with-lyxuserdir' substitute the given
# argument into the Makefile.
if test "x$with_lyxuserdir" != "xno"; then
LYX_USER_DIR="-userdir $with_lyxuserdir"
AC_MSG_NOTICE([==> LYX_USER_DIR is configured to '$with_lyxuserdir'.])
else
LYX_USER_DIR=""
fi
AC_SUBST([LYX_USER_DIR])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
This diff is collapsed.
* model name check
V1 1 0 1
R1 1 2 1k
D1 2 0 DMOD
.model DMOD D (is=1e-13 bv=50)
* o.k.
D2 2 0 _DMOD
.model _DMOD D (is=1e-13 bv=50)
* o.k.
D3 2 0 1n4001
.model 1n4001 D (is=1e-13 bv=50)
* o.k.
D4 2 0 22N4
.model 22N4 D (is=1e-13 bv=50)
* o.k.
D5 2 0 1e34
.model 1e34 D (is=1e-13 bv=50)
* not o.k.
D6 2 0 74ls4444
.model 74ls4444 D (is=1e-13 bv=50)
* o.k.
D7 2 0 ^274ls4444
.model ^274ls4444 D (is=1e-13 bv=50)
* not o.k.
D8 2 0 74!4444
.model 74!4444 D (is=1e-13 bv=50)
* o.k.
D9 2 0 12p4444
.model 12p4444 D (is=1e-13 bv=50)
* o.k.
D10 2 0 17n
.model 17n D (is=1e-13 bv=50)
* not o.k.
D11 2 0 17nB
.model 17nB D (is=1e-13 bv=50)
* o.k.
D12 2 0 17e12n
.model 17e12n D (is=1e-13 bv=50)
* not o.k.
D13 2 0 17e12Meg
.model 17e12Meg D (is=1e-13 bv=50)
* not o.k.
D14 2 0 17e12Megg
.model 17e12Megg D (is=1e-13 bv=50)
* o.k.
D15 2 0 20.5pF
.model 20.5pF D (is=1e-13 bv=50)
* not o.k.
.end
*****Single NMOS and PMOS Transistor For BSIM3 threshold voltage check (Id-Vgs) (Id-Vds) ***
M1 2 1 3 4 n1 W=1u L=0.35u Pd=1.5u Ps=1.5u ad=1.5p as=1.5p
vgs 1 0 3.5
vds 2 0 0.1
vss 3 0 0
vbs 4 0 0
M2 22 11 33 44 p1 W=2.5u L=0.35u Pd=3u Ps=3u ad=2.5p as=2.5p
vgsp 11 0 -3.5
vdsp 22 0 -0.1
vssp 33 0 0
vbsp 44 0 0
.options Temp=27.0
* BSIM3v3.3.0 model with modified default parameters 0.18m
.model n1 nmos level=49 version=3.3.0 tox=3.5n nch=2.4e17 nsub=5e16 vth0=0.15
.model p1 pmos level=49 version=3.3.0 tox=3.5n nch=2.5e17 nsub=5e16 vth0=-0.15
*.include ./Modelcards/modelcard.nmos $ Berkeley model cards limited to L >= 0.35m
*.include ./Modelcards/modelcard.pmos $ Berkeley model cards limited to L >= 0.35m
* update of the default parameters required
*.model n1 NMOS level=49 version=3.3.0 $ nearly no current due to VT > 2 V ?
*.model p1 PMOS level=49 version=3.3.0
.control
* various plot font sizes
dc vgs 0 1.5 0.05 vbs 0 -2.5 -0.5
plot vss#branch ylabel 'output current'
set wfont_size=18
dc vds 0 2 0.05 vgs 0 2 0.4
plot vss#branch ylabel 'output current'
set wfont_size=20
dc vgsp 0 -1.5 -0.05 vbsp 0 2.5 0.5
plot vssp#branch ylabel 'output current'
set wfont=Times
set wfont_size=18
dc vdsp 0 -2 -0.05 vgsp 0 -2 -0.4
plot vssp#branch ylabel 'output current'
.endc
.end
......@@ -4,13 +4,13 @@ VDMOS Test of quasi saturation IXTH80N20L IXTH48P20P
* The Quasi-saturation is added for demonstration only, it is not aligned with the data sheets
* and is for sure exaggerated, at least for the IXTH80N20L
mn1 d1 g1 s1 s1 IXTH80N20L
mn1 d1 g1 s1 IXTH80N20L