Commit 3c5bab5f authored by Carsten Schoenert's avatar Carsten Schoenert

New upstream version 29

parent 44659b52
#
# do not change crlf line endings of visual studio project files
#
*.vcproj -text
*.sln -text
*.vcxproj -text
Ngspice F.A.Q.Version 2.2 (ngspice-28 release)
Ngspice F.A.Q.Version 2.3 (ngspice-29 release)
Maintained by Paolo Nenzi, Holger Vogt
Last update: 05-19-2018
Maintained by Holger Vogt
Last update: 09-14-2018
This document contains the Frequently Asked Questions (and Answers)
for ngspice project.
......@@ -156,8 +156,8 @@
1.7 Legal issues
The ngspice base license is new BSD, as provided by UCB. For some parts
of the code other compatible licences apply. Please see file COPYING
for details.
of the code other compatible licences apply. All licenses are DFSG
compatible. Please see file COPYING for details.
1.8 Discussion groups
......@@ -241,39 +241,30 @@
The latest version released is:
* ngspice-28 (released on ../../2018)
* ngspice-29 (released on ../../2018)
2.2. What are the latest features in the current release?
- New features:
+ VDMOS power MOS model added
+ if 'set ngbehavior=ps' is given in .spiceinit, device libraries loaded
via .include may have PSPICE syntax
+ --enable-oldapps configure flag to compile the old, seldom used apps
ngmakeidx, ngmultidec, ngproc2mod, ngsconvert
+ add command mc_source to internally re-load the circuit
+ add command alterparam to alter the value of a parameter xxx given in .param xxx=value
+ add the fiunction i(xyz) to measure the current in node 1 of device xyz, to be
used in .params and behavioral models.
+ new label 'noretraceplot' for the 'plot' command, if graphs in a plot show unwanted
retracing lines.
+ The hyphen '-' is a valid character in model, device and subcircuit names
+ add noise for behavioral resistor
+ add a new vector type "temperature"
+ support instance parameter defaults on .model lines
+ New functions for XSPICE event node data export from shared ngspice:
ngGet_Evt_NodeInfo(char*) and ngSpice_AllEvtNodes(void)
+ 'edisplay' command now showing node name, node type and number of events per node
+ add flag 'none' to the 'save' commandfor shared ngspice.
Output data will not be stored, but are available via callback function ng_data.
+ add a function cm_get_circuit to allow accessing the circuit structure ckt
from within an XSPICE code model.
+ add variable 'sim_status' to indicate if a simulation has been aborted
+ add pkg-config file
+ configure flag --with-fftw3 If set to 'no', internal fast fourier is used
instead of fftw
+ command setseed to set the seed value for the random number generator
+ option seed=[val|random]
+ variable inputdir to remeber and retrieve the last input file directory
+ example directory 'digital' with analog, behavioral and digital example input files
+ new XSPICE filesource, d_source, and state-machine examples
+ +, - maybe part of instance name
+ Quasi-saturation VDMOS example
+ add environmental variable SOURCE_DATE_EPOCH to allow reproducible executables
+ new parameters to command setplot: setplot next, setplot previous
+ updates to commands cd, rusage, print
+ update to bipolar and diode temperature equations
- Bug fixes:
+ many, many ... as always
+ several bug fixes
+ lots of memory leaks removed, especially when XSPICE circuits are called several
times in a loop.
2.3. What does it look like?
......@@ -357,11 +348,13 @@
4.3. Authorship and acknowledgements
Parts of the questions and answers are originate from Paolo Nenzi
Parts of the questions and answers originate from Paolo Nenzi
and are updated by Holger Vogt.
4.4. Disclaimer and Copyright
Copyright: Holger Vogt, 2018
License: Creative Commons Attribution Share-Alike (CC-BY-SA) v4.0.
This document is provided as is. The information in it is not
warranted to be correct: you use it at your own risk.
......@@ -5,7 +5,7 @@ Table of contents
1 Ngspice installation (LINUX)
1.1 Prerequisites
1.2 Install from tarball (e.g. ngspice-27.tar.gz)
1.2 Install from tarball (e.g. ngspice-29.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-27.tar.gz)
1.2 Install from tarball (e.g. ngspice-29.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-27.tar.gz
$ tar -zxvf ngspice-29.tar.gz
Now change directories in to the top-level source directory (where this
INSTALL file can be found).
......@@ -189,6 +189,14 @@ This file describes the procedures to install ngspice from sources.
This speeds up simulating significantly, and is recommended for
normal use.
--enable-oldapps
The old apllications ngsconvert ngproc2mod ngmultidec and ngmakeidx
are made only per user request, by adding this flag.
--with-fftw3=no
Disable using fftw fast fourier transform library. Use internal
fft instead. Default is 'yes'.
1.4.2 Options Specific to Enable Ngspice as a shared library
......@@ -225,9 +233,8 @@ Most of the options now following are not well maintained, are not tested or eve
to mask devices under development. Almost useless for users.
--enable-experimental
This enables some experimental code. Specifically it enables:
* The ability to save and load snapshots: adds
interactive keywords 'savesnap' and 'loadsnap'.
define EXPERIMENTAL_CODE to mark experimental parts the code
(currently not used)
--enable-help
Force building nghelp. This is deprecated.
......@@ -291,9 +298,6 @@ Most of the options now following are not well maintained, are not tested or eve
--enable-ftedebug
Enable ngspice frontend debug.
--enable-gc
Enable the Boehm-Weiser Conservative Garbage Collector.
--enable-pzdebug
Debug pole/zero code.
......@@ -456,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-27.tar.gz, is now simple: After
expanding, you may just run ./compile_min.sh from the ngspice-27 directory.
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.
The default installation location of ngspice is the Windows path
C:\spice. The install path can be altered by passing --prefix=NEWPATH
......@@ -471,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-27
$ cd ngspice-29
$ mkdir release
$ cd release
$ ../configure --with-wingui ...and other options
......@@ -550,8 +554,56 @@ Most of the options now following are not well maintained, are not tested or eve
An alternative compiler setup is available at
http://tdm-gcc.tdragon.net/
A modern environment is offered by MSYS2 (https://www.msys2.org/).
9.2 make ngspice with MS Visual Studio 2008
The install tree generated during 'make install' is:
C:\Spice\
bin\
ngspice.exe
nghelp.exe
ngmakeidx.exe
ngnutmeg.exe
cmpp.exe
lib\
spice\
analog.cm
digital.cm
spice2poly.cm
extradev.cm
extravt.cm
share\
info\
dir
ngspice.info
ngspice.info-1
..
ngspice.info-10
man\
man1\
cmpp.1
ngmakeidx.1
ngmultidec.1
ngnutmeg.1
ngproc2mod.1
ngsconvert.1
ngspice.1
ngspice\
helpdir\
ngspice.idx
ngspice.txt
scripts\
ciderinit
devaxis
devload
setplot
spectrum
spinit
9.2 make ngspice with MS Visual Studio 2015/17
ngspice may be compiled with MS Visual Studio 2015 or newer.
......@@ -595,13 +647,9 @@ Most of the options now following are not well maintained, are not tested or eve
An installation tree (as provided with MINGW make install) and also used by
vngspice is (maybe created manually):
C:\Spice\
C:\Spice64\
bin\
ngspice.exe
nghelp.exe
ngmakeidx.exe
ngnutmeg.exe
cmpp.exe
lib\
spice\
analog.cm
......@@ -610,31 +658,8 @@ Most of the options now following are not well maintained, are not tested or eve
extradev.cm
extravt.cm
share\
info\
dir
ngspice.info
ngspice.info-1
..
ngspice.info-10
man\
man1\
cmpp.1
ngmakeidx.1
ngmultidec.1
ngnutmeg.1
ngproc2mod.1
ngsconvert.1
ngspice.1
ngspice\
helpdir\
ngspice.idx
ngspice.txt
scripts\
ciderinit
devaxis
devload
setplot
spectrum
spinit
If you intend to install vngspice into another directory, e.g. D:\MySpice,
......
......@@ -12,7 +12,8 @@ EXTRA_DIST = FAQ autogen.sh Stuarts_Poly_Notes \
xgraph/aclocal.m4 \
build-for-mac-os.sh \
cross-compile.sh cross-compile-shared.sh \
compile_min.sh compile_linux.sh .gitignore
compile_min.sh compile_linux.sh compile_min_shared.sh \
ngspice.pc.in .gitignore
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 ar-lib compile config.guess \
src/include/ngspice/config.h.in config.sub configure install-sh \
......
This diff is collapsed.
Ngspice-29, Sept 30th, 2018
============
- New features:
+ 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,
psa, lta, and ltpsa are the same for the whole netlist
+ .if, .elseif, .endif is now evaluated recursively, nested .if are thus
enabled
+ new code model sidiode, that is a simple diode, linear breakdown, reverse
and forward regions with smooth overlapp, and optional current limits
+ configure flag --with-fftw3. If set to 'no', internal fast fourier is used
instead of fftw
+ command setseed to set the seed value for the random number generator
+ option seed=[val|random]
+ variable inputdir to remeber and retrieve the last input file directory
+ example directory 'digital' with analog, behavioral and digital example input files
+ new XSPICE filesource, d_source, and state-machine examples
+ + or - maybe part of instance name
+ Quasi-saturation VDMOS example
+ add environmental variable SOURCE_DATE_EPOCH to allow reproducible executables
+ new parameters to command setplot: setplot next, setplot previous
+ updates to commands cd, rusage, print
+ introduce diode recombination current part (ISR, NR)
+ update to bipolar and diode temperature equations
- Bug fixes:
+ several bug fixes
+ lots of memory leaks removed, especially when XSPICE circuits are called several
times in a loop.
Ngspice-28, May 27th, 2018
============
......
......@@ -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-28 file distribution folder. After downloading, you may expand the zipped files into
ngspice-29 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
......
This diff is collapsed.
#! /bin/sh
# Wrapper for Microsoft lib.exe
me=ar-lib
scriptversion=2012-03-01.08; # UTC
# Copyright (C) 2010-2017 Free Software Foundation, Inc.
# Written by Peter Rosin <peda@lysator.liu.se>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# func_error message
func_error ()
{
echo "$me: $1" 1>&2
exit 1
}
file_conv=
# func_file_conv build_file
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*|MSYS*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv in
mingw)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin|msys)
file=`cygpath -m "$file" || echo "$file"`
;;
wine)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_at_file at_file operation archive
# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
# for each of them.
# When interpreting the content of the @FILE, do NOT use func_file_conv,
# since the user would need to supply preconverted file names to
# binutils ar, at least for MinGW.
func_at_file ()
{
operation=$2
archive=$3
at_file_contents=`cat "$1"`
eval set x "$at_file_contents"
shift
for member
do
$AR -NOLOGO $operation:"$member" "$archive" || exit $?
done
}
case $1 in
'')
func_error "no command. Try '$0 --help' for more information."
;;
-h | --h*)
cat <<EOF
Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
Members may be specified in a file named with @FILE.
EOF
exit $?
;;
-v | --v*)
echo "$me, version $scriptversion"
exit $?
;;
esac
if test $# -lt 3; then
func_error "you must specify a program, an action and an archive"
fi
AR=$1
shift
while :
do
if test $# -lt 2; then
func_error "you must specify a program, an action and an archive"
fi
case $1 in
-lib | -LIB \
| -ltcg | -LTCG \
| -machine* | -MACHINE* \
| -subsystem* | -SUBSYSTEM* \
| -verbose | -VERBOSE \
| -wx* | -WX* )
AR="$AR $1"
shift
;;
*)
action=$1
shift
break
;;
esac
done
orig_archive=$1
shift
func_file_conv "$orig_archive"
archive=$file
# strip leading dash in $action
action=${action#-}
delete=
extract=
list=
quick=
replace=
index=
create=
while test -n "$action"
do
case $action in
d*) delete=yes ;;
x*) extract=yes ;;
t*) list=yes ;;
q*) quick=yes ;;
r*) replace=yes ;;
s*) index=yes ;;
S*) ;; # the index is always updated implicitly
c*) create=yes ;;
u*) ;; # TODO: don't ignore the update modifier
v*) ;; # TODO: don't ignore the verbose modifier
*)
func_error "unknown action specified"
;;
esac
action=${action#?}
done
case $delete$extract$list$quick$replace,$index in
yes,* | ,yes)
;;
yesyes*)
func_error "more than one action specified"
;;
*)
func_error "no action specified"
;;
esac
if test -n "$delete"; then
if test ! -f "$orig_archive"; then
func_error "archive not found"
fi