Ngspice Frequently Asked Questions
- Document Revsion: 1.4
- Document Maintainer: Paolo Nenzi
- Last Update: 27-01-2004
F.A.Q. 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
- Spice3 is the most famous and used circuit simulator. It was developed University of California at Berkeley (UCB), by "a cast of thousand" (as they say).
- Cider is a mixed-level simulator that already includes Spice3f5 and adds a device simulator to it: DSIM. Cider couples the circuit level simulator to the device simulator to provide greater simulation accuracy (at the expense of greater simulation time). Critical devices can be described with technology parameters (numerical models) and non critical ones with the original spice's compact models.
- Xspice is an extension to Spice3 that provides code modeling support and simulation of digital components through an embedded event driven algorithm.
- 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.
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 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:
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 come with very good manuals containing tutorials, description of models equations, example of use, suggestions, etc. Spice came with little documentation. The 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.
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.
Users mailing list: <ngspice-users@lists.sourceforge.net> 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 subscribe here, to follow the program development. May be used 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 on subscription.
ngspice-users-help@lists.sourceforge.net
http://sourceforge.net/projects/ngspice
(look for the "Lists" link). Old messages from the pre-sourceforge age are available at:
- sci.electronics.cad
- comp.lsi.cad
The Spice Home Page:
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
Xspice Page:
http://users.ece.gatech.edu/~mrichard/Xspice
Cider Page:
http://www-cad.eecs.barkeley.edu/Software/cider.html
Spice benchmarks:
- ngspice-rework-15 (released on 10/12/2001)
- ngspice-rework-15pre3 (released on 28/01/2004)
- Improved bipolar devices (Diode and bjt)
- Improved BSIM3 and BSIM4
- VBIC and HiSIM compact models
- Cider and Xspice inclusion
- More flexibility in net names
- Parameter substitution in netlist
- Many memory leaks closed
- Control language works as expected
There is no bureaucracy here.
In the future a compatibility table will be written.
Write a mail to the user's list describing the problem and providing information on the type of hardware, the flavour of operating system.
Paolo Nenzi <pDOTnenziATieeeDOTorg>.
Send your comments about ngspice to:
Paolo Nenzi <pDOTnenziATieeeDOTorg>.


