Updated FAQ - Preliminary version - not for release
This commit is contained in:
parent
72482f964e
commit
0664b466bd
244
FAQ
244
FAQ
|
|
@ -1,6 +1,6 @@
|
||||||
Ngspice F.A.Q.Version 1.4
|
Ngspice F.A.Q.Version 1.5 (rework-18 release)
|
||||||
Maintained by Paolo Nenzi <p.nenzi@ieee.org>
|
Maintained by Paolo Nenzi
|
||||||
Last update: 27-01-2004
|
Last update: 5-11-2008
|
||||||
|
|
||||||
This document contains the Frequently Asked Questions (and Answers)
|
This document contains the Frequently Asked Questions (and Answers)
|
||||||
for ngspice project.
|
for ngspice project.
|
||||||
|
|
@ -11,16 +11,17 @@
|
||||||
|
|
||||||
1. INTRODUCTION AND GENERAL INFORMATION
|
1. INTRODUCTION AND GENERAL INFORMATION
|
||||||
1.1 What is ngspice?
|
1.1 What is ngspice?
|
||||||
1.2 Why resurrecting Berkeley's Spice?
|
1.2 What is tclspice ?
|
||||||
1.3 What is the project's goal?
|
1.3 Why resurrecting Berkeley's Spice?
|
||||||
1.4 What you are going to do?
|
1.4 What is the project's goal?
|
||||||
1.5 Legal issues
|
1.5 What you are going to do?
|
||||||
1.6 What mailing lists exist for ngspice?
|
1.6 Legal issues
|
||||||
1.7 Are the mailing lists archived anywhere?
|
1.7 What mailing lists exist for ngspice?
|
||||||
1.8 What newsgroups exist for ngspice?
|
1.8 Are the mailing lists archived anywhere?
|
||||||
1.9 Where can I get a copy of ngspice?
|
1.9 What newsgroups exist for ngspice?
|
||||||
1.10 Where should I look on the World Wide Web for ngspice stuff?
|
1.10 Where can I get a copy of ngspice?
|
||||||
1.11 Where should I look on the World Wide Web for Spice documentation?
|
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?
|
||||||
|
|
||||||
2. DEVELOPMENT
|
2. DEVELOPMENT
|
||||||
2.1 What is the current version?
|
2.1 What is the current version?
|
||||||
|
|
@ -49,14 +50,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.1 What is ngspice?
|
1.1 What is ngspice ?
|
||||||
|
|
||||||
Ngspice is a mixed-level/mixed-signal circuit simulator based on three
|
Ngspice is a mixed-level/mixed-signal circuit simulator based on three
|
||||||
open source software packages: Spice3f5, Cider1b1 and Xspice:
|
open source software packages: Spice3f5, Cider1b1 and Xspice:
|
||||||
|
|
||||||
- Spice3 is the most famous and used circuit simulator. It was
|
- Spice3 is a widely used circuit simulator. It was developed by the
|
||||||
developed University of California at Berkeley (UCB), by "a cast of
|
University of California at Berkeley (UCB), by "a cast of thousand"
|
||||||
thousand" (as they say).
|
(as they say) initially under the guide of Donald O. Peterson.
|
||||||
|
|
||||||
- Cider is a mixed-level simulator that already includes Spice3f5 and
|
- Cider is a mixed-level simulator that already includes Spice3f5 and
|
||||||
adds a device simulator to it: DSIM. Cider couples the circuit level
|
adds a device simulator to it: DSIM. Cider couples the circuit level
|
||||||
|
|
@ -75,112 +76,58 @@
|
||||||
ngspice program.
|
ngspice program.
|
||||||
|
|
||||||
|
|
||||||
1.2 Why resurrecting Berkeley's Spice?
|
1.2 What is tclspice ?
|
||||||
|
|
||||||
|
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.
|
||||||
|
Tclspice is obtained compiling ngspice activating an additional option.
|
||||||
|
|
||||||
|
|
||||||
|
1.3 Why resurrecting Berkeley's Spice?
|
||||||
|
|
||||||
Berkeley's Spice can be considered the father of most circuit
|
Berkeley's Spice can be considered the father of most circuit
|
||||||
simulators available today. It is an old but still good piece of
|
simulators available today. It is an old but still good piece of
|
||||||
software, it may not be the fastest or the most reliable but it's
|
software, it may not be the fastest or the most reliable but it's
|
||||||
free, it's available in source code and most of the electrical
|
free, it's available in source code and most of the electrical
|
||||||
simulators inherited it's syntax. On the more technical side, spice3
|
simulators inherited it's syntax. Spice3 is based on proven numerical
|
||||||
uses good numerical algorithms (most commercial implementations have
|
algorithms (most commercial implementations have only strengthened
|
||||||
only strengthened them), implements most of the models for MOSFET
|
them), implements most of the models for MOSFET submicron design
|
||||||
submicron designs and has a powerful set of analyses. On the more
|
and has a powerful set of analyses. The readily availability of
|
||||||
"social" side, spice3 it's well introduced in the academic
|
its source code in the past made this simulator the de-facto standard.
|
||||||
environment.
|
|
||||||
|
|
||||||
|
|
||||||
1.3 What is the project's goal?
|
1.4 What is the project's goal?
|
||||||
|
|
||||||
The project goal evolved during project development, at first the
|
Ngspice is both a maintenance and enhancement project. It is a maintenance
|
||||||
final goal was to develop a reliable, fast and friendly circuit
|
project because it aims to provide the free EDA community the best spice3
|
||||||
simulator for mixed signal/mixed level simulation. During
|
simulator available. This means fixing bugs, adding new features but always
|
||||||
development it become apparent that to reach the goal a complete
|
in the spice3 framework. Achieving compatibility with commercial spice based
|
||||||
rewrite of spice was needed. Since it was almost absurd to rewrite
|
simulators and provide users the latest devices models are important goals
|
||||||
Spice and since a new simulator was already under development:
|
of the project. Improvements in the postprocessing (data handling
|
||||||
ACS (Al's Circuit Simulator), now GNUCap (GNU Circuit Analysis
|
capabilities) and user interface are other goals.
|
||||||
package), the goal of nspice became less utopical: merge
|
|
||||||
Spice3f5, Xspice and Cider into a mixed-signal/mixed-level simulator
|
|
||||||
that can be used as a reliable engine.
|
|
||||||
|
|
||||||
|
|
||||||
1.4 What you are going to do?
|
1.5 What you are going to do?
|
||||||
|
|
||||||
We are going to develop a mixed-signal/mixed-level circuit simulation
|
An official roadmap for ngspice was never drawn. Contributions made by
|
||||||
program integrating three different spice based simulators:
|
developers drive ngspice development and the roadmap is built day by
|
||||||
Spice, Xspice and Cider.
|
day by developers writing on the lists. Ngspice development activity
|
||||||
|
can be summarized in 3 points:
|
||||||
|
|
||||||
Xspice is a mixed-signal circuit simulator developed by GTRI (Georgia
|
+ Compatibility: Ngspice should be compatible with commercial products,
|
||||||
Tech Research Institute) at Georgia Institute of Technology. Xspice
|
thus allowing people to use the netlist generated for such tools. As
|
||||||
was originally developed as an extension over Spice3c1. Xspice
|
most of the commercial simulators avaiable tracked each other in netlist
|
||||||
introduces code modeling and a digital simulator into ngspice.
|
language, this should not be an impossible task. The most important goal
|
||||||
The "home site" of Xspice is:
|
here is to provide a reliable support for model libraries coming from
|
||||||
|
foundries.
|
||||||
http://users.ece.gatech.edu/~mrichard/Xspice/
|
|
||||||
|
|
||||||
Cider is a mixed-level circuit and device simulator based on Spice3f5
|
|
||||||
that couples a device simulator (DSIM) to Spice. More information can
|
|
||||||
be found at:
|
|
||||||
|
|
||||||
http://www-cad.eecs.berkeley.edu/Software/cider.html
|
|
||||||
|
|
||||||
The merging process is done in parallel with bug fixing and improvement
|
|
||||||
of the three simulators. The improvements are concentrated into 6
|
|
||||||
directions:
|
|
||||||
|
|
||||||
|
|
||||||
+ Compact models: the improvements in compact models will address
|
|
||||||
mainly the implementation of additional effects not available
|
|
||||||
in the original code. Device specific improvements are documented
|
|
||||||
on ngspice's documentation and in the DEVICE file in project's
|
|
||||||
tarball.
|
|
||||||
Improvements that affects all devices already implemented are:
|
|
||||||
"dtemp" option to set instance's temperature relative to the circuit
|
|
||||||
one and "m" parallel multiplier to simulate an arbitrary number of
|
|
||||||
instances of the same kind connected in parallel.
|
|
||||||
|
|
||||||
Planned improvements are the development of a dynamic loading
|
|
||||||
mechanism for compact models, to avoid loading in memory devices
|
|
||||||
that are not needed, and SOAR (Safe Operating ARea) checks to
|
|
||||||
identify situations in which devices are used out of their
|
|
||||||
safety areas.
|
|
||||||
|
|
||||||
|
|
||||||
+ Simulator's analyses: this is a low priority area. Planned improvements
|
|
||||||
include the implementation of parametric analyses, to analyse the
|
|
||||||
behaviour of the circuit as a parameter changes. Parameter sweep,
|
|
||||||
Monte Carlo and Worst Case fall in this category. Network analysis
|
|
||||||
(double bipole parameters extraction) is another planned improvement.
|
|
||||||
|
|
||||||
|
|
||||||
+ Numerical analysis code: the improvements within the numerical code
|
|
||||||
must be done with extreme care. Planned improvements are, the
|
|
||||||
replacement of the Sparse library with the latest code Kenneth Kundert
|
|
||||||
has released, available at:
|
|
||||||
|
|
||||||
http://sourceforge.net/projects/sparse
|
|
||||||
|
|
||||||
Other planned improvements, but with very low priority, includes the
|
|
||||||
use SuperLU library as possible Sparse library replacement (the
|
|
||||||
library is available at http://crd.lbl.gov/~xiaoye/SuperLU) and the
|
|
||||||
introduction of continuation metohds to aid DC convergence.
|
|
||||||
|
|
||||||
|
|
||||||
+ Spice language: The language used to input the circuit to the simulator
|
|
||||||
has been extended and now allows the user to input parametric values
|
|
||||||
for components (the numparam library). This is an experimental feature
|
|
||||||
that will be improved in the future. Planned improvements includes the
|
|
||||||
support for loading more than one circuit, netlist manipulation via
|
|
||||||
command line (adding and removing instances) and the implementation
|
|
||||||
of a command history using the libedit library, available at:
|
|
||||||
|
|
||||||
http://sourceforge.net/projects/libedit
|
|
||||||
|
|
||||||
|
|
||||||
+ Frontend: The design of a new spice frontend has not been successful
|
|
||||||
and now is orphaned, since the is no interests and many free and
|
|
||||||
commercial frontends are available. There is no planned improvement
|
|
||||||
here.
|
|
||||||
|
|
||||||
|
+ Compact models: The interest in using ngspice is intimately connected
|
||||||
|
to the available models. To provide the latest models available for
|
||||||
|
active and passive devices is a fundamental goal of the project. In
|
||||||
|
this direction we are integrating ADMS model compiler into ngspice.
|
||||||
|
|
||||||
+ Documentation: Commercial simulators come with very good manuals
|
+ Documentation: Commercial simulators come with very good manuals
|
||||||
containing tutorials, description of models equations, example of
|
containing tutorials, description of models equations, example of
|
||||||
|
|
@ -192,54 +139,35 @@
|
||||||
documentation will always be left slightly behind.
|
documentation will always be left slightly behind.
|
||||||
|
|
||||||
|
|
||||||
1.5 Legal issues
|
1.6 Legal issues
|
||||||
|
|
||||||
Ngspice merges three different simulators: spice and cider are covered
|
Ngspice, starting from release rework-18 is released under BSD/LGPL
|
||||||
with the "old" BSD license, Xspice by its own license. The ngspice
|
license. Part of the code are covered by other compatible licenses:
|
||||||
license will be then the BSD license.
|
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)
|
||||||
Since the "old" BSD license is not compatible with the GPL library
|
|
||||||
it is not possible to link the ngspice with GPL'ed code, as is
|
|
||||||
written in:
|
|
||||||
|
|
||||||
http://www.gnu.org/philosophy/bsd.html
|
|
||||||
|
|
||||||
The group developing ngspice has written to Berkeley's copyright
|
|
||||||
holders asking to change the license to the new BSD, which has the
|
|
||||||
incompatibility removed, but without success.
|
|
||||||
|
|
||||||
Ngspice will not be released under GPL license and, no GPL code can be
|
|
||||||
linked into ngspice (as in the original Spice3f) without breaking GPL.
|
|
||||||
|
|
||||||
|
|
||||||
1.6. What mailing lists exist for ngspice?
|
1.7. What mailing lists exist for ngspice?
|
||||||
|
|
||||||
There are three mailing lists dedicated to the ngspice project.
|
There are two general mailing lists dedicated to the ngspice project.
|
||||||
|
|
||||||
Users mailing list: <ngspice-users@lists.sourceforge.net>
|
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
|
and general discussion on ngspice can be sent here.
|
||||||
|
|
||||||
Developers mailing list: <ngspice-devel@lists.sourceforge.net>
|
Developers mailing list: <ngspice-devel@lists.sourceforge.net>
|
||||||
The list dedicated to ngspice development. Developers shold
|
The list dedicated to ngspice development. Developers shold
|
||||||
subscribe here, to follow the program development. May be used
|
subscribe here, to follow the program development. May be used
|
||||||
to send patches, and technical discussion on ngspice.
|
to send patches, and technical discussion on ngspice.
|
||||||
|
|
||||||
Frontend mailing list: <ngspice-frontends@lists.sourceforge.net>
|
|
||||||
Almost orphaned, this list should be used to discuss issues about
|
|
||||||
the realization of a graphical frontend to ngspice.
|
|
||||||
|
|
||||||
Send an empty message to the following addresses to get information
|
Send an empty message to the following addresses to get information
|
||||||
on subscription.
|
on subscription.
|
||||||
|
|
||||||
<ngspice-users-help@lists.sourceforge.net>
|
<ngspice-users-help@lists.sourceforge.net>
|
||||||
|
|
||||||
<ngspice-devel-help@lists.sourceforge.net>
|
<ngspice-devel-help@lists.sourceforge.net>
|
||||||
|
|
||||||
<ngspice-frontends-help@lists.sourceforge.net>
|
|
||||||
|
|
||||||
|
1.8. Are the mailing lists archived anywhere ?
|
||||||
1.7. Are the mailing lists archived anywhere ?
|
|
||||||
|
|
||||||
Yes, the lists are archived. There are two places where to look for
|
Yes, the lists are archived. There are two places where to look for
|
||||||
archives. The project started on the IEEE Central and South Italy
|
archives. The project started on the IEEE Central and South Italy
|
||||||
|
|
@ -254,7 +182,7 @@
|
||||||
http://ngspice.sourceforge.net/lists.html
|
http://ngspice.sourceforge.net/lists.html
|
||||||
|
|
||||||
|
|
||||||
1.8. What newsgroups exist for ngspice?
|
1.9. What newsgroups exist for ngspice?
|
||||||
|
|
||||||
There is no ngspice specific newsgroup. Anyway ngspice threads appear
|
There is no ngspice specific newsgroup. Anyway ngspice threads appear
|
||||||
on newsgroups dedicated to circuit simulation and electronic design.
|
on newsgroups dedicated to circuit simulation and electronic design.
|
||||||
|
|
@ -264,38 +192,36 @@
|
||||||
comp.lsi.cad
|
comp.lsi.cad
|
||||||
|
|
||||||
|
|
||||||
1.9. Where can I get a copy of ngspice?
|
1.10. Where can I get a copy of ngspice?
|
||||||
|
|
||||||
You can download ngspice from:
|
You can download ngspice from:
|
||||||
|
|
||||||
http://sourceforge.net/projects/ngspice
|
http://sourceforge.net/projects/ngspice
|
||||||
|
|
||||||
|
|
||||||
1.10. Where should I look on the World Wide Web for ngspice stuff?
|
1.11. Where should I look on the World Wide Web for ngspice stuff?
|
||||||
|
|
||||||
Look at the official Ngpice Web Page:
|
Look at the official Ngpice Web Page:
|
||||||
|
|
||||||
http://ngspice.sourceforge.net
|
http://ngspice.sourceforge.net
|
||||||
|
|
||||||
|
|
||||||
1.11. Where should I look on the World Wide Web for Spice documenta-
|
1.12. Where should I look on the World Wide Web for Spice documenta-
|
||||||
tion?
|
tion?
|
||||||
|
|
||||||
There are a lot of Internet sites that have information on spice, the
|
There are a lot of Internet sites that have information on spice, the
|
||||||
best way is to point to your preferred search engine. Some interesting
|
best way is to point to your preferred search engine. Some interesting
|
||||||
sites are:
|
sites are:
|
||||||
|
|
||||||
The Spice Home Page:
|
Pages on Spice:
|
||||||
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
|
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
|
||||||
|
http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm
|
||||||
|
|
||||||
Xspice Page:
|
Xspice Page:
|
||||||
http://users.ece.gatech.edu/~mrichard/Xspic
|
http://users.ece.gatech.edu/~mrichard/Xspice
|
||||||
|
|
||||||
Cider Page:
|
Cider Page:
|
||||||
http://www-cad.eecs.barkeley.edu/Software/cider.html
|
http://embedded.eecs.berkeley.edu/pubs/downloads/cider/index.htm
|
||||||
|
|
||||||
Spice benchmarks:
|
|
||||||
http://www.cbl.ncsu.edu/pub/Benchmark_dirs
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -306,11 +232,7 @@
|
||||||
|
|
||||||
The latest version released is:
|
The latest version released is:
|
||||||
|
|
||||||
* ngspice-rework-15 (released on 10/12/2001)
|
* ngspice-rework-18 (released on 1/12/2008)
|
||||||
|
|
||||||
The development version is:
|
|
||||||
|
|
||||||
* ngspice-rework-15pre3 (released on 28/01/2004)
|
|
||||||
|
|
||||||
|
|
||||||
2.2. What are the latest features in the current release?
|
2.2. What are the latest features in the current release?
|
||||||
|
|
@ -318,17 +240,15 @@
|
||||||
New features:
|
New features:
|
||||||
|
|
||||||
|
|
||||||
+ Improved bipolar devices (Diode and bjt)
|
+ Support for .lib and .param statements
|
||||||
+ Improved BSIM3 and BSIM4
|
+ Improved netlisting capabilites to support more complex model cards
|
||||||
+ VBIC and HiSIM compact models
|
+ Global net names
|
||||||
+ Cider and Xspice inclusion
|
+ Mosfet model binning
|
||||||
+ More flexibility in net names
|
|
||||||
+ Parameter substitution in netlist
|
|
||||||
|
|
||||||
Bug fixes:
|
Bug fixes:
|
||||||
|
|
||||||
+ Many memory leaks closed
|
+ Fixes in the control language
|
||||||
+ Control language works as expected
|
|
||||||
|
|
||||||
|
|
||||||
2.3. What does it looks like?
|
2.3. What does it looks like?
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue