ngspice-26: update documentation

This commit is contained in:
h_vogt 2014-01-04 15:42:57 +01:00 committed by rlar
parent b19641dcc2
commit 8c99ec76f4
10 changed files with 168 additions and 121 deletions

View File

@ -8,9 +8,10 @@ This file lists the analyses currently implemented into ngspice.
Table of Contents
1 Noise analysis (NOISE)
1.1 Small signal noise
1.2 Transient noise
2 Operating point analysis (OP)
3 Operating point sweep Analysis (DC)
3.1 Enhancements
4 Pole-zero analysis (PZ)
5 Small-Signal distortion analysis (DISTO)
6 Small Signal frequency response analysis (AC)
@ -23,6 +24,8 @@ Table of Contents
1 Noise analysis (NOISE)
1.1 Small signal noise
The noise analysis does analysis device-generated noise for the given
circuit. When provided with an input source and an output port, the analysis
calculates the noise contributions of each device (and each noise generator
@ -32,6 +35,12 @@ Table of Contents
range - the calculated value of the noise corresponds to the spectral density
of the circuit variable viewed as a stationary gaussian stochastic process.
1.2 Transient noise
Time domain noise analysis during transient simulation is enabled by
providing voltage (and current) source options with white, 1/f and
random telegraph signal noise signals.
2 Operating point analysis (OP)
@ -44,11 +53,8 @@ Table of Contents
The operating point sweep analysis determines the values of output
variables while one or two specified independent voltage or current source is
stepped over a user-specified range and the dc output variables are stored
for each sequential source value.
3.1 Enhancements
Added resistance and temperature sweep.
for each sequential source value. Resistance and temperature sweep are
included.
4 Pole-zero analysis (PZ)
@ -57,7 +63,8 @@ Table of Contents
ac transfer function. The program first computes the dc operating point and
then determines the linearized, small-signal models for all the nonlinear
devices in the circuit. This circuit is then used to find the poles and zeros
of the transfer function.
of the transfer function. Unfortunately this code is (since its inception in
spice3) not free of bugs.
5 Small-Signal distortion analysis (DISTO)

View File

@ -7,12 +7,12 @@ releasing patches to the original code through the Internet.
The following people have contributed in some way:
@verbatim
Vera Albrecht,
Cecil Aswell,
Giles C. Billingsley,
Phil Barker,
Steven Borley,
Krzysztof Blaszkowski,
Stuart Brorson,
Mansun Chan,
Wayne A. Christopher,
@ -68,7 +68,6 @@ Michael Widlok,
Charles D.H. Williams,
Antony Wilson,
and many others...
@end verbatim
If someone helped in the development and has not been inserted in this list
then this omission was unintentional. If you feel you should be on this list

36
COPYING
View File

@ -1,47 +1,51 @@
12345678901234567890123456789012345678901234567890123456789012345678901234567890
Ngspice-25
Copyright (c) 2012,
Ngspice 26
Copyright (c) 2014,
All rights reserved.
Foreword:
Spice's name was originally chosen at the University of California, Berkeley.
As it is the basis of almost all circuit simulators, the major part of the
The name 'Spice' (Simulation Program with Integrated Circuit Emphasis)
was originally chosen at the University of California, Berkeley. The
original Berkeley code is covered under the modified BSD license and
thus sets the basis for all other code added.
As Spice is the basis of almost all circuit simulators, the major part of the
analogue and mixed signals simulation's code is designed to fit with it.
The *spices (generic name for its forks) are heterogeneous in many points due
to the work of researchers, electronic designers, software editors, etc.
The Ngspice team tries to collect work from the different sources and
contribute new functionalities. Thus, the material we manipulate is
heterogeneous in licenses. Keeping the licenses as is, is the way to live with
that diversity. For release 25 as well, we choose not to relicense.
heterogeneous in licenses. Keeping the licenses as is, but also keep it
compatible with the new BSD license, is the way to live with that diversity.
Copyleft is a fundamental question in FOSS development. The choice of a
copylefted contribution, or a non copylefted contribution is an important
choice that should be respected. Ngspice branch as a whole will not be covered
by a specific license. The Ngspice team wants to encourage contributions to
ngspice. We let each new developper choose its position regarding copyleft,
as we respect the position of the former developpers. In order to keep things
ngspice. We let each new developer choose its position regarding copyleft,
as we respect the position of the former developers. In order to keep things
clear ngspice team proposes to follow the following guidelines:
Each piece of code should be kept under its original contributor's license.
As for any project, modifications made in sources covered by a less
restrictive license can be covered by a more restrictive license, such as
GPL. We do not encourage it.
restrictive license can be covered by a more restrictive license than new BSD.
We do not encourage it.
If you feel to add code in a file under a different license than the rest of
the file, please use comments to mark the boundaries of the modification, and
edit the comments at the begining of the file with correct license and
edit the comments at the beginning of the file with correct license and
copyright information.
We encourage restrictive licenses to be chosen only for new functionalities,
written in distinct files, leading to distinct libraries that links depending
written in distinct files, leading to distinct libraries that link depending
on a specific configure flag.
We encourage non proliferation of licenses (e.g. choosing either GPL, LGPL or
new BSD).
We encourage non proliferation of licenses (e.g. choosing either LGPL or
new BSD). GPL is not suitable for code to be directly linked into ngspice,
but may be used in shared object libraries only.
This heterogenous license status makes it difficult to know which license
applies. Please take care of knowing which license aplies to the code you are
This heterogeneous license status requires some effort to keep track on licenses
applied. Please take care of knowing which license applies to the code you are
editing, or conveying and not to commit license infringements, especially to
GPL and LGPL which are quite restrictive.

View File

@ -66,6 +66,7 @@ Table of contents
13.3 HICUM0 Bipolar Model
13.4 HICUM2 Bipolar Model
13.5 Mextram Bipolar Model
14. XSPICE code models
------------------
@ -849,3 +850,5 @@ will be updated every time the device specific code is altered or changed to ref
Status: TO BE TESTED
Web site at: http://mextram.ewi.tudelft.nl/ and http://mextram.sourceforge.net/
14. XSpice code models, see ngspice manual chapt. 12

134
FAQ
View File

@ -1,6 +1,6 @@
Ngspice F.A.Q.Version 1.9 (rework-25 release)
Ngspice F.A.Q.Version 2.0 (ngspice 26 release)
Maintained by Paolo Nenzi, Holger Vogt
Last update: 22-12-2012
Last update: 02-01-2014
This document contains the Frequently Asked Questions (and Answers)
for ngspice project.
@ -11,17 +11,18 @@
1. INTRODUCTION AND GENERAL INFORMATION
1.1 What is ngspice?
1.2 What is tclspice ?
1.3 Why resurrecting Berkeley's Spice?
1.4 What is the project's goal?
1.5 What you are going to do?
1.6 Legal issues
1.7 What mailing lists exist for ngspice?
1.8 Are the mailing lists archived anywhere?
1.9 What newsgroups exist for ngspice?
1.10 Where can I get a copy of ngspice?
1.11 Where should I look on the World Wide Web for ngspice stuff?
1.12 Where should I look on the World Wide Web for Spice documentation?
1.2 What is sharedspice?
1.3 What is tclspice ?
1.4 Why resurrecting Berkeley's Spice?
1.5 What is the project's goal?
1.6 What you are going to do?
1.7 Legal issues
1.8 What mailing lists exist for ngspice?
1.9 Are the mailing lists archived anywhere?
1.10 What newsgroups exist for ngspice?
1.11 Where can I get a copy of ngspice?
1.12 Where should I look on the World Wide Web for ngspice stuff?
1.13 Where should I look on the World Wide Web for Spice documentation?
2. DEVELOPMENT
2.1 What is the current version?
@ -52,8 +53,9 @@
1.1 What is ngspice ?
Ngspice is a mixed-level/mixed-signal circuit simulator based on three
open source software packages: Spice3f5, Cider1b1 and Xspice:
Ngspice is a mixed-level/mixed-signal circuit simulator, based on three
open source software packages: Spice3f5, Cider1b1 and Xspice, and
including many bug fixes and enhancements:
- Spice3 is a widely used circuit simulator. It was developed by the
University of California at Berkeley (UCB), by "a cast of thousand"
@ -73,20 +75,28 @@
The NG prefix has lot of meanings: Next Generation, New Good, etc.
Choose or invent the one you prefer. The heart of the project is the
ngspice program.
ngspice program, with its tremendous advancements.
1.2 What is tclspice ?
1.2 What is sharedspice ?
Tclspice is a circuit simulator that embeds ngspice and provides a
tcl/tk interface to the user. Tclspice is both a batch and interactive
simulator and a building block for simulator applications. Analyses can
be run from a tcl script and vector plotted or post processed using tcl
or a small GUI can be built to analyze a circuit or a set of circuits.
Sharedspice is an interface option to ngspice. It compiles the simulator
into a shared object (or dynamic link library), providing full control
of ngspice to any suitable controlling program (GUI, optimizer,
development system, etc., to be provided by the user).
1.3 What is tclspice ?
Tclspice is a another interface option of ngspice, providing a tcl/tk
interface to the user. Tclspice is both a batch and interactive simulator
and a building block for simulator applications. Analyses can be run
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.
1.3 Why resurrecting Berkeley's Spice?
1.4 Why resurrecting Berkeley's Spice?
Berkeley's Spice can be considered the father of most circuit
simulators available today. It is an old but still good piece of
@ -99,7 +109,7 @@
its source code in the past made this simulator the de-facto standard.
1.4 What is the project's goal?
1.5 What is the project's goal?
Ngspice is both a maintenance and enhancement project. It is a maintenance
project because it aims to provide the free EDA community the best spice3
@ -110,7 +120,7 @@
capabilities) and user interface are other goals.
1.5 What you are going to do?
1.6 What you are going to do?
An official roadmap for ngspice was never drawn. Contributions made by
developers drive ngspice development and the roadmap is built day by
@ -119,7 +129,7 @@
+ Compatibility: Ngspice should be compatible with commercial products,
thus allowing people to use the netlist generated for such tools. As
most of the commercial simulators avaiable tracked each other in netlist
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.
@ -135,28 +145,29 @@
Spice3f manual, available on the Internet has been used as the basis
for the new manual. It will be constantly improved during ngspice
development and integrated with the documentation accompanying Xspice
and Cider. This is a very time consuming task and probably the
documentation will always be left slightly behind.
and Cider. The ngspice manual today contains description of all
features ngspice is offering. It is however not a tutorial of ngspice
usage, but there are now several good ones available on the internet
(see http://ngspice.sourceforge.net/tutorials.html).
1.6 Legal issues
1.7 Legal issues
Ngspice, starting from release rework-18 is released under BSD/LGPL
license. Part of the code are covered by other compatible licenses:
spice3 and cider are BSD, xspice is Public Domain and TCLSPICE is
LGPL and the copyright is of their respective owners (need to write better)
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.
1.7. What mailing lists exist for ngspice?
1.8 What mailing lists exist for ngspice?
There are two general mailing lists dedicated to the ngspice project.
Users mailing list: <ngspice-users@lists.sourceforge.net>
This list is for ngspice users, examples, problems, bug reports
This list is for ngspice users. Examples, problems, bug reports
and general discussion on ngspice can be sent here.
Developers mailing list: <ngspice-devel@lists.sourceforge.net>
The list dedicated to ngspice development. Developers shold
The list is dedicated to ngspice development. Developers should
subscribe here, to follow the program development. May be used
to send patches, and technical discussion on ngspice.
@ -176,64 +187,49 @@
http://www.gnu.org/software/mailman/mailman-member
1.8. Are the mailing lists archived anywhere ?
1.9 Are the mailing lists archived anywhere ?
Yes, the lists are archived. There are two places where to look for
archives. The project started on the IEEE Central and South Italy
web server and then moved to sourceforge. Sourceforge provides an
archiving service that cam be accessed via the summary page:
http://sourceforge.net/projects/ngspice
(look for the "Lists" link). Old messages from the pre-sourceforge
age are available at:
http://ngspice.sourceforge.net/lists.html
http://sourceforge.net/p/ngspice/mailman/
1.9. What newsgroups exist for ngspice?
There is no ngspice specific newsgroup. Anyway ngspice threads appear
on newsgroups dedicated to circuit simulation and electronic design.
An (incomplete) list is:
1.10 What newsgroups exist for ngspice?
sci.electronics.cad
comp.lsi.cad
There is no ngspice specific newsgroup. Sourceforge offers additional
discussion groups for ngspice, please see
http://sourceforge.net/p/ngspice/discussion/
ngspice threads may appear on newsgroups dedicated to circuit
simulation and electronic design.
1.10. Where can I get a copy of ngspice?
1.11 Where can I get a copy of ngspice?
You can download ngspice from:
http://sourceforge.net/projects/ngspice
http://sourceforge.net/projects/ngspice/files/ng-spice-rework/
1.11. Where should I look on the World Wide Web for ngspice stuff?
1.12 Where should I look on the World Wide Web for ngspice stuff?
Look at the official Ngpice Web Page:
http://ngspice.sourceforge.net
1.12. Where should I look on the World Wide Web for Spice documentation?
1.13 Where should I look on the World Wide Web for Spice documentation?
There is a detailed ngspice manual available at:
http://ngspice.sourceforge.net/docs.html
There are a lot of Internet sites that have information on spice. The
best way is to ask your preferred search engine. Some interesting
sites are:
Pages on Spice:
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm
http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/index.html#toc
Xspice Page:
http://users.ece.gatech.edu/~mrichard/Xspice
Cider Page:
http://embedded.eecs.berkeley.edu/pubs/downloads/cider/index.htm
Others docs are assembled at:
http://ngspice.sourceforge.net/literature.html
@ -244,7 +240,7 @@
The latest version released is:
* ngspice-rework-25 (released on 04/01/2013)
* ngspice-26 (released on 04/01/2013)
2.2. What are the latest features in the current release?
@ -288,7 +284,7 @@
2.3. What does it look like?
Ngspice, as the original Spice3 (and Xspice and Cider) is a command
line simulator.
line simulator, but with a graphics output capability.
2.4. Who are the authors of ngspice?

38
INSTALL
View File

@ -5,7 +5,7 @@ Table of contents
1 Ngspice installation (LINUX)
1.1 Prerequisites
1.2 Install from tarball (e.g. ngspice-25.tar.gz)
1.2 Install from tarball (e.g. ngspice-26.tar.gz)
1.3 Install from git repository
1.4 Advanced Install
1.4.1 Most useful options
@ -41,7 +41,7 @@ This file describes the procedures to install ngspice from sources.
bison, flex, and X11 headers and libs.
If you want to compile the source from the git repository you need
additional software: autoconf, automake, libtool, texinfo.
additional software: autoconf, automake, libtool, texinfo, readline.
The following software may be needed when enabling additional features:
editline, tcl/tk, adms
@ -51,14 +51,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-25.tar.gz)
1.2 Install from tarball (e.g. ngspice-26.tar.gz)
This covers installation from a release distribution (for example
ngspice-25.tar.gz, the so called tar ball).
ngspice-26.tar.gz, the so called tar ball).
After downloading the tar ball to a local directory unpack it using:
$ tar -zxvf ngspice-25.tar.gz
$ tar -zxvf ngspice-26.tar.gz
Now change directories in to the top-level source directory (where this
INSTALL file can be found).
@ -99,12 +99,12 @@ This file describes the procedures to install ngspice from sources.
This section describes how to install from source code taken directly
from the git repository. It is intended for those who want to use the most
recent enahancements of ngspice and for developers. For user install
recent enhancements of ngspice and for developers. For user install
instructions using source from a released distributions, please see the
sections titled 'Install from tarball' and 'Advanced Install'.
Download ngspice sources from the git repository as described on the sourceforge project page
(see http://sourceforge.net/projects/ngspice/ and click on the git link)
(see http://ngspice.sourceforge.net/download.html and click on the git link)
Now change directories in to the top-level source directory (where this
INSTALL file can be found).
@ -115,7 +115,7 @@ This file describes the procedures to install ngspice from sources.
$ ./autogen.sh
$ mkdir debug
$ cd debug
$ ../configure --enable-maintainer-mode
$ ../configure --with-x --with-readline=yes
$ make
$ sudo make install
@ -123,7 +123,7 @@ This file describes the procedures to install ngspice from sources.
that can be passed to ./configure to customise the build and installation.
Preferred arguments to ./configure to obtain a comfortably working ngspice may be
--with-readline=yes and --disable-debug (for smaller and speed optimized
--with-readline=yes and --disable-debug (for a smaller and speed optimized
executable).
A fully featured ngspice on LINUX may be obtained with the following commands:
@ -134,8 +134,8 @@ This file describes the procedures to install ngspice from sources.
$ make 2>&1 | tee make.log
$ sudo make install
If a problem is found with the build proccess, please submit a report to
the Ngspice development team. Please provide information about your system
If a problem is found with the build process, please submit a report to
the ngspice development team. Please provide information about your system
and any ./configure arguments you are using, together with any error
messages. Ideally you would have tried to fix the problem yourself first.
If you have fixed the problem then the development team will love to hear
@ -451,8 +451,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-25.tar.gz, is now simple: After
expanding, you may just run ./compile_min.sh from the ngspice-25 directory.
Installing from the tarball, e.g. ngspice-26.tar.gz, is now simple: After
expanding, you may just run ./compile_min.sh from the ngspice-26 directory.
The default installation location of ngspice is the Windows path
C:\spice. The install path can be altered by passing --prefix=NEWPATH
@ -466,14 +466,14 @@ 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-25
$ cd ngspice-26
$ mkdir release
$ cd release
$ ../configure --with-wingui ...and other options
$ make
$ make install
The useful options are:
The most useful options are:
--enable-xspice
--enable-cider
--disable-debug (-O2 optimization, no debug information)
@ -486,9 +486,10 @@ Most of the options now following are not well maintained, are not tested or eve
$ make install
However, to compile code extracted from the git repository the procedure is
a little different. To obtain ngspice, you may do the following:
a little different. Firstly install git, e.g. from http://git-scm.com/download/win
To obtain ngspice, you may do the following:
Go to a directory of your choice, e.g. D:\Spice
Open the git command window. Go to a directory of your choice, e.g. D:\Spice
$ cd /d/Spice
Issue the command for downloading ngspice:
@ -562,7 +563,8 @@ Most of the options now following are not well maintained, are not tested or eve
vngspice.sln (project starter) and
vngspice.vcproj (project contents)
allows to compile and link ngspice with MS Visual Studio 2008.
The project is probably not compatible with Visual Studio 2005.
Newer Visual Studio versions will translate the project files
into their compatible format (tested with MS Visual Studio 2010).
/visualc/include contains a dedicated config.h file. It contains the
preprocessor definitions required to properly compile the code.

29
NEWS
View File

@ -1,3 +1,32 @@
Ngspice-26, Jan 4th, 2014
============
- New features:
+ fft command may (optionally) use fftw3 library
+ add nint() rounding function
+ usage of 'temper' in behavioral devices
+ check for soa (safe operating area) in several device models
+ library processing rewritten completely to enhance ngspice
compatibility (.lib)
+ include file processing rewritten to allow nesting and various
absolute and relative path names (.inc)
+ asinh, acosh, atanh functions
+ shared ngspice option added: ngspice optionally compiles as
a shared object or dynamic link library
+ use a hash table to massively speeding up finding a model
+ implement a very basic .if/.else block
+ implement a signed power function `pwr' for controlled sources
+ implement multiplier `m' in F, G source
+ apply Area Calculation Method (ACM) to the bsim3v3.3 model
+ implement `tc1', `tc2' instance parameters
- Bug fixes:
+ many, many ... please see
http://sourceforge.net/p/ngspice/ngspice/ci/master/tree/
and check the 'history' button on the upper right.
+ removed memory leaks
Ngspice-25, Jan 4th, 2013
============

10
README
View File

@ -13,11 +13,11 @@ Cider couples Spice3f5 circuit level simulator to DSIM device simulator
to provide greater simulation accuracy of critical devices. DSIM
devices are described in terms of their structures and materials.
Xspice is an extension to Spice3C1 that provides code modeling support
Xspice is an extension to Spice3C1 that provides code modelling support
and simulation of digital components through an embedded event driven
algorithm.
Ngspice is, anyway, a little more than the simple sum of the packages
Ngspice is, anyway, much more than the simple sum of the packages
above, as many people contributed to the project with their experience,
their bug fixes and their improvements. If you are interested, browse
the site and discover what ngspice offers and what needs. If you think
@ -45,12 +45,6 @@ MAILING LISTS:
<ngspice-devel-subscribe@lists.sourceforge.net>
OBSOLETE MAILING LISTS:
-------------
* ngspice-bugs@list.sourceforge.net:
This list is no longer used by the ngspice maintainers. Bug reports should
go to the ngspice bug tracker.
WEB SITEs:
--------

View File

@ -19,6 +19,13 @@
*Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.*
*********************************************************************************
WARNING!
The text in this document has been prepared in 2006 and is partially outdated.
It is provided here only for reference and may provide some (historical)
information.
Welcome to tclspice README_tcl
This file acompanies ngspice sources starting with ngspice-rework-18. It
@ -57,7 +64,7 @@ tk : the graphical extension of tcl, to represent data graphically and for GUIs
blt : BLT toolkit gives number handling and plotting features to tcl/tk
The most tested configuration is the latest:
tclspice-25
tclspice-26
tcl 8.4
tk 8.4
blt 2.4

View File

@ -1,5 +1,11 @@
SPICE 2 POLY CODEMODEL
WARNING!
The text in this document has been prepared in 2003 and is outdated. It is
provided here only for reference and may provide some (historical)
information.
SPICE2 POLY attributes are now available for controlled sources. To
use POLY attributes, configure tclspice/ngspice with the
--enable-xspice flag set as described above. After compilation of