390 lines
14 KiB
Plaintext
390 lines
14 KiB
Plaintext
Ngspice F.A.Q.Version 1.2
|
||
Maintained by Paolo Nenzi <p.nenzi@ieee.org>
|
||
Last update: 02-11-2003
|
||
|
||
This document contains the Frequently Asked Questions (and Answers)
|
||
for ngspice project.
|
||
__________________________________________________________________________
|
||
|
||
Table of Contents
|
||
|
||
|
||
1. INTRODUCTION AND GENERAL INFORMATION
|
||
1.1 What is ngspice?
|
||
1.2 Why resurrecting Berkeley's Spice?
|
||
1.3 What is the project's goal?
|
||
1.4 What you are going to do?
|
||
1.5 Legal issues
|
||
1.6 What mailing lists exist for ngspice?
|
||
1.7 Are the mailing lists archived anywhere?
|
||
1.8 What newsgroups exist for ngspice?
|
||
1.9 Where can I get a copy of 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 Spice documentation?
|
||
|
||
2. DEVELOPMENT
|
||
2.1 What is the current version?
|
||
2.2 What are the latest features in the current release?
|
||
2.3 What does it look like?
|
||
2.4 Who are the authors of ngspice?
|
||
2.5 How can I report a bug/request for a feature?
|
||
2.6 How can I join the development?
|
||
|
||
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
|
||
3.1 What systems are supported?
|
||
3.2 I get errors when I try to compile the source code, why?
|
||
3.3 This document didn't answer my question. Where else can I look for
|
||
an answer?
|
||
|
||
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
|
||
4.1 Feedback
|
||
4.2 Formats in which this FAQ is available
|
||
4.3 Authorship and acknowledgements
|
||
4.4 Disclaimer and Copyright
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
1. INTRODUCTION AND GENERAL INFORMATION
|
||
|
||
|
||
|
||
1.1 What is ngspice ?
|
||
|
||
Ngspice is the name of a project and of a program in the project.
|
||
The idea behind the project is to improve the capabilities of the
|
||
Spice 3f5 circuit simulator. Spice is the most famous circuit
|
||
simulator, developed at the University of California at Berkeley
|
||
(UCB), by "a cast of thousand". The NG prefix has a lot of meanings:
|
||
Next Generation, New Good, etc. Choose or invent the one you prefer.
|
||
The heart of the project is the ngspice program, a circuit simulator
|
||
derived from spice3f5.
|
||
|
||
|
||
1.2 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
|
||
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
|
||
simulators inherited it's syntax. On the more technical side, spice3
|
||
uses good numerical algorithms (most commercial implementations have
|
||
only strengthened them), implements most of the models for MOSFET
|
||
submicron designs and has a powerful set of analyses. On the more
|
||
"social" side, spice3 it's well introduced in the academic
|
||
environment.
|
||
|
||
|
||
1.3 What is the project's goal?
|
||
|
||
The project goal evolved during project development, at first the
|
||
final goal was to develop a reliable, fast and friendly circuit
|
||
simulator for mixed signal/mixed level simulation. During
|
||
development it become apparent that to reach the goal a complete
|
||
rewrite of spice was needed. Since it was almost absurd to rewrite
|
||
Spice and since a new simulator was already under development:
|
||
ACS (Al's Circuit Simulator), now GNUCap (GNU Circuit Analyis
|
||
package), the goal of nspice became less utopical: merge
|
||
spice, 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?
|
||
|
||
We are going to develop a mixed-signal/mixed-level circuit simulation
|
||
program integrating three different spice based simulators:
|
||
Spice, Xspice and Cider.
|
||
|
||
Xspice is a mixed-signal circuit simulator developed by GTRI (Georgia
|
||
Tech Research Institute) at Georgia Institute of Technology. Xspice
|
||
was originally developed as an extension over Spice3c1. Xspice
|
||
introduces code modeling and a digital simulator into ngspice.
|
||
The "home site" of Xspice is:
|
||
|
||
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
|
||
directives:
|
||
|
||
|
||
+ 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, "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
|
||
behavior 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.
|
||
|
||
|
||
+ Documentation: Commercial simulators have very good manuals with
|
||
tutorials, models equations explained, example of use, suggestions,
|
||
etc. Spice came with little documentation. The Spice3f manual,
|
||
available on the Internet 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.
|
||
|
||
|
||
|
||
1.5 Legal issues
|
||
|
||
Ngspice merges three different simulators: spice and cider are covered
|
||
with the "old" BSD license, Xspice by its own license. The ngspice
|
||
license will be then the BSD license.
|
||
|
||
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 probably
|
||
never be relased under the GPL license.
|
||
|
||
|
||
|
||
|
||
11..66.. WWhhaatt mmaaiilliinngg lliissttss eexxiisstt ffoorr nnggssppiiccee??
|
||
|
||
There are three mailing lists dedicated to the ngspice project. Send
|
||
an empty message to the following addresses to get information on
|
||
subscription. <ngspice-users-help@lists.sourceforge.net>
|
||
|
||
<ngspice-devel-help@lists.sourceforge.net>
|
||
|
||
|
||
<ngspice-frontends-help@lists.sourceforge.net>
|
||
|
||
|
||
|
||
11..77.. AArree tthhee mmaaiilliinngg lliissttss aarrcchhiivveedd aannyywwhheerree??
|
||
|
||
Yes, the list are archived. Look at the project's web site to access
|
||
archives.
|
||
|
||
|
||
11..88.. WWhhaatt nneewwssggrroouuppss eexxiisstt ffoorr nnggssppiiccee??
|
||
|
||
None. Sorry.
|
||
|
||
|
||
11..99.. WWhheerree ccaann II ggeett aa ccooppyy ooff nnggssppiiccee??
|
||
|
||
You can download ngspice from:
|
||
|
||
<http://sourceforge.net/projects/ngspice>
|
||
|
||
|
||
11..1100.. WWhheerree sshhoouulldd II llooookk oonn tthhee WWoorrlldd WWiiddee WWeebb ffoorr nnggssppiiccee ssttuuffff??
|
||
|
||
Look at the official NG-Spice Web Page
|
||
<http://ngspice.sourceforge.net>
|
||
|
||
|
||
11..1111.. WWhheerree sshhoouulldd II llooookk oonn tthhee WWoorrlldd WWiiddee WWeebb ffoorr SSppiiccee ddooccuummeennttaa--
|
||
ttiioonn??
|
||
|
||
50 Circuits analyzed with SPICE
|
||
<http://www.dacafe.com/DACafe/EDATools/EDAbooks/SpiceHandBook/01_TOC.html>
|
||
|
||
<http://www.dacafe.com/DACafe/EDATools/EDAbooks/SMPS/SMPS.htm>
|
||
|
||
|
||
22.. DDEEVVEELLOOPPMMEENNTT
|
||
|
||
|
||
|
||
22..11.. WWhhaatt iiss tthhee ccuurrrreenntt vveerrssiioonn??
|
||
|
||
rework-14 (released on 10/12/2001)
|
||
|
||
|
||
22..22.. WWhhaatt aarree tthhee llaatteesstt ffeeaattuurreess iinn tthhee ccuurrrreenntt rreelleeaassee??
|
||
|
||
New features:
|
||
|
||
+o New functions for vectors: vecmax (find max element in a vector),
|
||
vecmin (find minimum element in a vector), vecd (differentiate a
|
||
vector).
|
||
|
||
+o BSIM 4 and support EKV models.
|
||
|
||
Bug fixes:
|
||
|
||
+o Some memory leaks closed.
|
||
|
||
+o Error reporting more verbose
|
||
|
||
|
||
|
||
22..33.. WWhhaatt ddooeess iitt llooookk lliikkee??
|
||
|
||
This is a command line utility, no screenshots!
|
||
|
||
|
||
22..44.. WWhhoo aarree tthhee aauutthhoorrss ooff nnggssppiiccee??
|
||
|
||
The development is open to anyone who wish to contribute.
|
||
|
||
People who contributed are (in alphabetical order):
|
||
|
||
+o Daniele Foci <dfoci@ieee.ing.uniroma1.it>
|
||
|
||
+o Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
|
||
|
||
+o Arno Peters <A.W.Peters@ieee.org>
|
||
|
||
+o Serban-Mihai Popescu <serbanp@ix.netcom.com>
|
||
|
||
+o Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
||
|
||
+o Michael Widlok <twidlok@uci.agh.edu.pl>
|
||
|
||
|
||
This list is surely incomplete (due to open development group), there
|
||
are many people who contributed with improvements, pieces of code, bug
|
||
fixes, etc. If you have contributed and do not appear, write to:
|
||
|
||
<ng-spice@ieee.ing.uniroma1.it>
|
||
|
||
and ask to be included.
|
||
|
||
|
||
22..55.. HHooww ccaann II rreeppoorrtt aa bbuugg//rreeqquueesstt ffoorr aa ffeeaattuurree??
|
||
|
||
Look at the projects summary page: ngspice summary page
|
||
|
||
22..66.. HHooww ccaann II jjooiinn tthhee ddeevveellooppmmeenntt??
|
||
|
||
To join the development just code the feature you want to add and send
|
||
your patch in the mailing list. Before you start coding check the
|
||
latest development release of ngspice from our CVS. It might be that
|
||
your feature has already been implemented.
|
||
|
||
|
||
33.. SSOOLLUUTTIIOONNSS TTOO CCOOMMMMOONN MMIISSCCEELLLLAANNEEOOUUSS PPRROOBBLLEEMMSS
|
||
|
||
|
||
|
||
33..11.. WWhhaatt ssyysstteemmss aarree ssuuppppoorrtteedd??
|
||
|
||
This is the updated list:
|
||
|
||
Hardware O.S. Version Compiler Functional?
|
||
---------------- ----------------------- -------------- -----------
|
||
???? HP-UX 10.10 gcc 2.95.2 yes
|
||
IBM Risc 6000 ??? lcc no
|
||
i386 Debian GNU/Linux 2.1 gcc 2.7.2 yes
|
||
i386 Red Hat Linux 5.2 gcc 2.7.2 yes
|
||
i386 SuSE Linux 6.0 gcc 2.7.2 yes
|
||
i386 Linux (SuSE) gcc yes
|
||
UltraSPARC Solaris 7 gcc yes
|
||
UltraSPARC Solaris 7 SUN Workshop ?
|
||
|
||
|
||
|
||
MS-Dos, VMS and MacOS are no longer supported.
|
||
|
||
|
||
33..22.. II ggeett eerrrroorrss wwhheenn II ttrryy ttoo ccoommppiillee tthhee ssoouurrccee ccooddee,, wwhhyy??
|
||
|
||
[not written yet]
|
||
|
||
|
||
33..33.. TThhiiss ddooccuummeenntt ddiiddnn''tt aannsswweerr mmyy qquueessttiioonn.. WWhheerree eellssee ccaann II llooookk
|
||
ffoorr aann aannsswweerr??
|
||
|
||
Read old messages from the mailing list archive, search the web site
|
||
or read the docs. Upgrade to the latest version of ngspice, many
|
||
problems are fixed in the new versions. If you still can't find an
|
||
answer, post your question to the mailing list.
|
||
|
||
|
||
44.. AADDMMIINNIISSTTRRAATTIIVVEE IINNFFOORRMMAATTIIOONN AANNDD AACCKKNNOOWWLLEEDDGGEEMMEENNTTSS
|
||
|
||
|
||
44..11.. FFeeeeddbbaacckk
|
||
|
||
Send your comments about this F.A.Q. to:
|
||
|
||
Paolo Nenzi <p.nenzi@ieee.org>.
|
||
|
||
Send your comments about ngspice to:
|
||
|
||
Paolo Nenzi <p.nenzi@ieee.org>.
|
||
|
||
|
||
44..22.. FFoorrmmaattss iinn wwhhiicchh tthhiiss FFAAQQ iiss aavvaaiillaabbllee
|
||
|
||
This document is available only in ASCII format in the ngspice source
|
||
package.
|
||
|
||
|
||
44..33.. AAuutthhoorrsshhiipp aanndd aacckknnoowwlleeddggeemmeennttss
|
||
|
||
Parts of the questions and answers are originate from Paolo Nenzi.
|
||
|
||
|
||
44..44.. DDiissccllaaiimmeerr aanndd CCooppyyrriigghhtt
|
||
|
||
This document is provided as is. The information in it is not
|
||
warranted to be correct: you use it at your own risk.
|
||
|
||
|
||
|