Update the Information files for ngspice-43

This commit is contained in:
Holger Vogt 2024-07-09 17:36:38 +02:00
parent 1fef3835c9
commit cf9b889bb2
8 changed files with 100 additions and 72 deletions

View File

@ -1,5 +1,3 @@
12345678901234567890123456789012345678901234567890123456789012345678901234567890
ANALYSES
========
@ -46,7 +44,9 @@ Table of Contents
2 Operating point analysis (OP)
The operating point analysis determines the dc operating point of the
circuit with inductors shorted and capacitors opened.
circuit with inductors shorted and capacitors opened. If a simple matrix
solution fails, two versions of gmin stepping may be followed by source
stepping and finally an OP search by a transient simulation.
3 Operating point sweep Analysis (DC)

View File

@ -15,6 +15,7 @@ Phil Barker,
Steven Borley,
Krzysztof Blaszkowski,
Stuart Brorson,
Árpád Bűrmen,
Alessio Cacciatori,
Mansun Chan,
Wayne A. Christopher,

6
BUGS
View File

@ -30,9 +30,3 @@ OPEN BUGS:
algorithms, does not give correct results for all tested input files.
The effort to correct that issue seems to be large.
* voltage (and current) controlled switches need better timing
The controlled switches (SW, CSW), which still stem from the original
spice3f5 implementation, sometimes lead to wrong results when on and off
ramp times differ considerably.

View File

@ -827,16 +827,16 @@ will be updated every time the device specific code is altered or changed to ref
13.8 r2_cmc
More models are available at https://github.com/dwarning/VA-Models,
user compiled models are possible as well (See ngspice manual, chapter 13).
user compiled models are possible as well (See ngspice manual, chapter 9).
14. XSpice code models
more than 100 models are available, please see ngspice manual chapt. 12
more than 100 models are available, please see ngspice manual chapt. 8
15. Digital Building Blocks (U instances)
U instances are digital primitives which may be used (in proper combination) to
model digital devices, e.g. from the 74xx or 40xx families. ngspice maps them
onto XSPICE models, which allows a fast event based simulation. Please see the
ngspice manual, chapter 14.
ngspice manual, chapter 10.

12
FAQ
View File

@ -96,7 +96,7 @@
from a tcl script and vector plotted or post processed using tcl. A small
GUI may be built by the user to analyze a circuit or a set of circuits.
Tclspice is obtained compiling ngspice activating an additional option.
This has not been used and tested for recently.
This has not been used and tested for some time now.
1.4 Why resurrecting Berkeley's Spice?
@ -135,7 +135,7 @@
most of the commercial simulators available tracked each other in netlist
language, this should not be an impossible task. The most important goal
here is to provide a reliable support for model libraries coming from
foundries.
foundries. Some compatibility switches are available.
+ Compact models: The interest in using ngspice is intimately connected
to the available models. To provide the latest models available for
@ -256,7 +256,7 @@
The latest version released is:
ngspice-41 (released on Aug 13 2023)
ngspice-43 (released on July 14 2024)
2.2. What are the latest features in the current release?
@ -308,8 +308,8 @@
3.1. What systems are supported?
Ngspice is written in C, and uses some GNU extensions. You may use
a GNU C compiler and a LINUX environment to compile it. Ngspice can
Ngspice is written in C, C++, and uses some GNU extensions. You may use
a GNU C/C++ compiler and a LINUX environment to compile it. Ngspice can
be compiled under Windows using the mingw or cygwin environment as
well as MS Visual Studio. It will readily compile on macOS.
FreeBSD or Solaris will do, but are not officially supported.
@ -356,7 +356,7 @@
4.4. Disclaimer and Copyright
Copyright: Holger Vogt, 2023
Copyright: Holger Vogt, 2024
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.

81
INSTALL
View File

@ -56,7 +56,7 @@ This file describes the procedures to install ngspice from sources.
library and ngspice as a tcl/tk library.
Compilation to 64 bit is recommended and available per default in
the ./compile_linux.sh compule script. 32 bit might be possible,
the ./compile_linux_new.sh compile script. 32 bit might be possible,
but is not tested.
The following software must be installed in your system to compile
@ -64,7 +64,8 @@ This file describes the procedures to install ngspice from sources.
output):
bison, flex, X11 headers and libs, Xaw, Xmu, Xext, Xft, FontConfig,
Xrender, freetype headers and readline.
Typically one needs the headers (e.g. libX11-devel) and the libs (e.g. libX11-6).
Typically one needs the headers (e.g. libX11-devel) and the libs (e.g. libX11-6)
of the packages mentioned above.
ngspice as a shared library (no graphics and no command-line interfaces)
will need bison and flex only.
@ -73,11 +74,11 @@ This file describes the procedures to install ngspice from sources.
internal fft algorithms.
If you want to compile the source from the git repository, or if you want to
use the compile script ./compile_linux.sh, you will need additional software:
use the compile script ./compile_linux_new.sh, you will need additional software:
autoconf, automake, libtool.
The following software may be needed when enabling additional features:
editline, tcl/tk.
editline (as a replacement for readline), tcl/tk (when compiling tclspice).
Please have a look at the current ngspice manual, downloadable at
http://ngspice.sourceforge.net/docs.html, which gives you much more
@ -86,20 +87,20 @@ This file describes the procedures to install ngspice from sources.
For compiling ngspice as a shared library, see section 1.4.
1.2 Install from tarball (e.g. ngspice-41.tar.gz)
1.2 Install from tarball (e.g. ngspice-43.tar.gz)
This covers installation from a release distribution (for example
ngspice-41.tar.gz, the so called tar ball).
ngspice-43.tar.gz, the so called tar ball).
After downloading the tar ball to a local directory, unpack it by command:
$ tar -zxvf ngspice-41.tar.gz
$ tar -zxvf ngspice-43.tar.gz
Now change directories in to the top-level source directory (where this
INSTALL file can be found).
The most comfortable way to compile ngspice is running the compile script
compile_linux.sh within the terminal window by ./compile_linux.sh. The
compile_linux.sh within the terminal window by ./compile_linux_new.sh. The
script has to be declared as 'executable', and admin
rights are required to allow the installation of ngspice.
@ -110,31 +111,27 @@ This file describes the procedures to install ngspice from sources.
$ mkdir release
$ cd release
$ ../configure --with-x --with-readline=yes --disable-debug
$ ../configure --with-x
$ make
$ sudo make install
The default install directory for executables is /usr/local/bin, the XSPICE
code models will be installed in /usr/local/lib/ngspice. Some distros use lib64
instead.
A simple ../configure might be sufficient for a basic ngspice, but the preferred
arguments to ../configure are
--with-x --with-readline=yes and --disable-debug
providing you with a comfortably working ngspice.
See the section 1.5 titled 'Advanced Install' for instructions about additional arguments
that can be passed to ../configure to customise the build and installation.
instead. The following options are now included automatically: readline, openmp,
osdi, xspice. Only CIDER has to be selected as an extra option.
A fully featured ngspice on LINUX may be obtained with the following commands:
$ mkdir release
$ cd release
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-predictor --enable-osdi --enable-openmp
$ ../configure --with-x --enable-cider --enable-predictor
$ make 2>&1 | tee make.log
$ sudo make install
To remove the executables and libraries from the install directory, you may call
$ sudo make uninstall
To disable one of the already inlcuded options, you may call --with-readline=no, or
--disable-openmp, --disable-osdi, --disable-xspice
1.3 Install from the git repository
@ -155,7 +152,7 @@ This file describes the procedures to install ngspice from sources.
directory, so to e.g. maintain separate debug and release versions.
The most comfortable way to compile ngspice is running the compile script
compile_linux.sh within the terminal window by ./compile_linux.sh. Admin
compile_linux_new.sh within the terminal window by ./compile_linux_new.sh. Admin
rights are required to allow the installation included in the script.
If you want to copile ngspice manually, you may run
@ -163,7 +160,7 @@ This file describes the procedures to install ngspice from sources.
$ ./autogen.sh
$ mkdir debug
$ cd debug
$ ../configure --with-x --with-readline=yes
$ ../configure --with-x
$ make
$ sudo make install
@ -178,7 +175,7 @@ This file describes the procedures to install ngspice from sources.
$ ./autogen.sh
$ mkdir release
$ cd release
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-predictor --enable-osdi
$ ../configure --with-x --enable-cider --enable-predictor
$ make 2>&1 | tee make.log
$ sudo make install
@ -189,7 +186,7 @@ This file describes the procedures to install ngspice from sources.
1.4 ngspice as a shared library
The relevant configure options for the ngspice shared library are:
$ --with-ngshared --enable-xspice --disable-debug --enable-cider --enable-osdi --enable-openmp
$ --with-ngshared --enable-cider
Typically the two aliases libngspice.so, libngspice.so.0 and the compiled
library libngspice.so.0.0.1 are made. The install locations depend on
@ -217,15 +214,7 @@ This file describes the procedures to install ngspice from sources.
1.5.1 Most useful options:
--enable-osdi
Add the OSDI interface to ngspice. This interface allow to dynamically
load compiled Veriloag-A compact models. Compiling is done with
OpenVAF. Thus for the first time ngspice has access to modern
device models like BSOMBULK or BSIM_CMG.
--enable-cider
Cider is a mixed-level simulator that couples Spice3 and DSIM
to simulate devices from their technological parameters.
(the following are already included)
--enable-xspice
Enable XSpice enhancements,
@ -240,11 +229,18 @@ This file describes the procedures to install ngspice from sources.
Parallelization is done by OpenMP, for MOS models in BSIM3.3.0
BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details.
--disable-debug
This option will remove the '-g' option passed to the compiler
and add -O2 optimization (instead of default O0).
This speeds up simulating significantly, and is recommended for
normal use.
--enable-osdi
Add the OSDI interface to ngspice. This interface allow to dynamically
load compiled Veriloag-A compact models. Compiling is done with
OpenVAF. Thus for the first time ngspice has access to modern
device models like BSOMBULK or BSIM_CMG.
(the following have to be selected to become available)
--enable-cider
Cider is a mixed-level simulator that couples Spice3 and DSIM
to simulate devices from their technological parameters.
--enable-oldapps
The old apllications ngsconvert ngproc2mod ngmultidec and ngmakeidx
@ -254,11 +250,11 @@ This file describes the procedures to install ngspice from sources.
Disable using fftw fast fourier transform library. Use internal
fft instead. Default is 'yes'.
--with-editline=yes
Enables the use of the BSD editline library (libedit) instead
of readline.
See https://www.thrysoee.dk/editline/
(requires --with-readline=no)
--enable-shortcheck
Enables a 'make check' with strongly reduced runtime. Besides some
@ -494,7 +490,7 @@ This file describes the procedures to install ngspice from sources.
automake, libtool, FLEX and BISON, all available with pacman in MSYSS2).
Some links are given below which describe the procedures.
Installing from the tarball, e.g. ngspice-36.tar.gz, is simple: After
Installing from the tarball, e.g. ngspice-43.tar.gz, is simple: After
expanding, you may just run ./compile_min.sh from the ngspice directory.
The default installation location of ngspice is the Windows path
@ -517,16 +513,11 @@ This file describes the procedures to install ngspice from sources.
$ make
$ make install
The most useful options are:
--enable-xspice
--enable-cider
--disable-debug (-O2 optimization, no debug information)
A fully featured ngspice on Windows may be obtained with the following commands:
$ ./autogen.sh
$ mkdir release
$ cd release
$ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-osdi
$ ../configure --with-wingui --enable-cider --disable-debug
$ make install
However, to compile code extracted from the git repository the procedure is

49
NEWS
View File

@ -1,3 +1,44 @@
Ngspice-43, July 14th, 2024
============
- New features:
+ Update to VBIC model: Enable self-heating in AC sim.
+ Enable single terminal n devices (Verilog-A modules)
+ Add path or filepath (without file name) to variable sourcepath,
when calling command 'source'
+ B source pwl, enable monotonic negative growth of abscissa values.
+ Enable coupling of more than 2 inductots in a single line:
K1 L1 L2 L3 L4 L5 0.99
+ Enable reading library search paths from env. variables like
.lib "$ENVS1/$ENVS2/libraries/sky130_fd_pr/latest/models/sky130.lib.spice" tt
+ Add '.save nosub' to suppress storing the node vectors from inside
of subcircuits.
+ Transform nested braces {{}} into {()} also in .param statements
+ Save path to .include file, add it to the search paths
for loading the next .include file.
+ In ./configure, the following options are now standard:
non-debug, osdi, xspice, readline, klu, openmp
+ in case of netlist errors, try identifying the file and line number
of its origin.
+ Add diode model parameters, Level 3, for diode breakdown voltage
as used in sky130 PDK
+ New environmental variable NGSPICE_OSDI_DIR may contain
a path for *.osdi files (compiled Verilog-A models)
+ optran 0 0 0 0 0 uic may be used to load initial conditions (.ic=xxx
statements) without starting an op iteration.
+ Add variable ps_scan_gates_optimize (default 1). If < 1, then turn off
the optimizations in scan_gates.
+ new exported function ngSpice_nospinit() to set variable no_spinit
+ Update to JFET model (add emission coefficient)
+ MOS models 1...3: updated noise code
+ Update to fft window functions, scaling etc.
+ Add transformer model with params on the .subckt line
+ timing .model statements at the global level for subckts with U* instances
+ variable 'rsdiode' sets RS of a diode, if not given in the .model line.
+ Update the AM voltage/current sources: enable amplitude
modulation, carrier suppression.
+ Remove some ADMS remnants.
Ngspice-42, Dec 24th, 2023
============
- New features:
@ -27,7 +68,6 @@ Ngspice-42, Dec 24th, 2023
+ Add scripts for running the paranoia tests in parallel on Linux with valgrind.
Ngspice-41, Aug 13th, 2023
============
- New features:
@ -60,7 +100,8 @@ Ngspice-41, Aug 13th, 2023
+ Several crash bugs (double delete, access NULL pointer etc) removed
which have occurred mostly due to incomplete or faulty inputs.
+ Memory leaks for CIDER removed
Ngspice-40, Mar 31st, 2023
============
- New features:
@ -153,7 +194,7 @@ Ngspice-38, Oct 30th, 2022
Ngspice-37, May 22nd, 2022
============
- New features:
+ Reduce XSPICE memory consumption dramatically
+ Reduce XSPICE memory consumption dramatically
(> factor of 10).
+ Add source stepping to B source
+ Add 'esave' command to save only specific event nodes.
@ -320,7 +361,7 @@ Ngspice-32, Apr 25th, 2020
- New features:
+ Add resource info on memory used and available for macOS
+ redesign of memory monitoring
+ Replace B source pwl by XSPICE PWL Controlled Source that has smooth rounded and
+ Replace B source pwl by XSPICE PWL Controlled Source that has smooth rounded and
stepless differentiable corners.
+ Get a variable directly from an input file with i/o redirection
+ Make 64 bit compilation the standard

11
README
View File

@ -5,16 +5,17 @@ Ngspice is a mixed-level/mixed-signal circuit simulator. Its code
is based on three open source software packages: Spice3f5, Cider1b1
and Xspice.
Spice3 does not need any introduction, is the most popular circuit
simulator. In over 30 years of its life Spice3 has become a de-facto
standard for simulating circuits.
Spice3 does not need any introduction, it is the ancestor of many
commercial or open source circuit simulators. In over 30 years
since its existence it has set several de-facto standards for
simulating circuits.
Cider couples Spice3f5 circuit level simulator to a device simulator
Cider couples the Spice3 circuit level simulator to a device simulator
to provide greater simulation accuracy of critical devices. So you may
create device models for diodes, bipolar, JFet and MOSFETs derived
from their cross-sectional structures and materials.
Xspice is an extension to Spice3C1 that provides code modelling support
Xspice is an extension to Spice3 that provides code modelling support
and simulation of digital components through an embedded event driven
algorithm.