ngspice/FAQ

381 lines
13 KiB
Plaintext
Raw Normal View History

Ngspice F.A.Q.Version 1.9 (rework-25 release)
2010-06-12 17:47:54 +02:00
Maintained by Paolo Nenzi, Holger Vogt
Last update: 22-12-2012
2001-12-06 17:33:02 +01:00
This document contains the Frequently Asked Questions (and Answers)
for ngspice project.
2003-11-02 23:35:53 +01:00
__________________________________________________________________________
2001-12-06 17:33:02 +01:00
Table of Contents
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?
2001-12-06 17:33:02 +01:00
2. DEVELOPMENT
2000-04-27 22:03:57 +02:00
2.1 What is the current version?
2.2 What are the latest features in the current release?
2001-12-06 17:33:02 +01:00
2.3 What does it look like?
2.4 Who are the authors of ngspice?
2000-04-27 22:03:57 +02:00
2.5 How can I report a bug/request for a feature?
2.6 How can I join the development?
2001-12-06 17:33:02 +01:00
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
2000-04-27 22:03:57 +02:00
3.1 What systems are supported?
3.2 I get errors when I try to compile the source code, why?
2003-11-02 23:35:53 +01:00
3.3 This document didn't answer my question. Where else can I look for
an answer?
2001-12-06 17:33:02 +01:00
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
2000-04-27 22:03:57 +02:00
4.1 Feedback
4.2 Formats in which this FAQ is available
4.3 Authorship and acknowledgements
4.4 Disclaimer and Copyright
2001-12-06 17:33:02 +01:00
______________________________________________________________________
2003-11-02 23:35:53 +01:00
1. INTRODUCTION AND GENERAL INFORMATION
2001-12-06 17:33:02 +01:00
1.1 What is ngspice ?
2001-12-06 17:33:02 +01:00
2014-01-04 15:42:57 +01:00
Ngspice is a mixed-level/mixed-signal circuit simulator based on three
open source software packages: Spice3f5, Cider1b1 and Xspice:
- Spice3 is a widely used circuit simulator. It was developed by the
University of California at Berkeley (UCB), by "a cast of thousand"
(as they say) initially under the guide of Donald O. Peterson.
2014-01-04 15:42:57 +01:00
- 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
2004-01-27 23:00:27 +01:00
models.
2014-01-04 15:42:57 +01:00
- Xspice is an extension to Spice3 that provides code modeling support
and simulation of digital components through an embedded event
2004-01-27 23:00:27 +01:00
driven algorithm.
2014-01-04 15:42:57 +01:00
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
2004-01-27 23:00:27 +01:00
ngspice program.
2001-12-06 17:33:02 +01:00
1.2 What is tclspice ?
2014-01-04 15:42:57 +01:00
Tclspice is a circuit simulator that embeds ngspice and provides a
tcl/tk interface to the user. Tclspice is both a batch and interactive
2014-01-04 15:42:57 +01:00
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.
2014-01-04 15:42:57 +01:00
1.3 Why resurrecting Berkeley's Spice?
2014-01-04 15:42:57 +01:00
2001-12-06 17:33:02 +01:00
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
2014-01-04 15:42:57 +01:00
simulators inherited it's syntax. Spice3 is based on proven numerical
algorithms (most commercial implementations have only strengthened
them), implements most of the models for MOSFET submicron design
and has a powerful set of analyses. The readily availability of
its source code in the past made this simulator the de-facto standard.
2001-12-06 17:33:02 +01:00
2014-01-04 15:42:57 +01:00
1.4 What is the project's goal?
2003-11-02 23:35:53 +01:00
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
simulator available. This means fixing bugs, adding new features but always
2014-01-04 15:42:57 +01:00
in the spice3 framework. Achieving compatibility with commercial spice based
simulators and provide users the latest devices models are important goals
2014-01-04 15:42:57 +01:00
of the project. Improvements in the postprocessing (data handling
capabilities) and user interface are other goals.
2003-11-02 23:35:53 +01:00
2014-01-04 15:42:57 +01:00
1.5 What you are going to do?
2003-11-02 23:35:53 +01:00
An official roadmap for ngspice was never drawn. Contributions made by
2014-01-04 15:42:57 +01:00
developers drive ngspice development and the roadmap is built day by
day by developers writing on the lists. Ngspice development activity
can be summarized in 3 points:
2003-11-02 23:35:53 +01:00
+ Compatibility: Ngspice should be compatible with commercial products,
2014-01-04 15:42:57 +01:00
thus allowing people to use the netlist generated for such tools. As
most of the commercial simulators avaiable 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
2014-01-04 15:42:57 +01:00
foundries.
+ Compact models: The interest in using ngspice is intimately connected
2014-01-04 15:42:57 +01:00
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.
2014-01-04 15:42:57 +01:00
+ 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
2005-04-29 08:49:53 +02:00
Spice3f manual, available on the Internet has been used as the basis
2014-01-04 15:42:57 +01:00
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
2003-11-08 12:05:34 +01:00
documentation will always be left slightly behind.
2014-01-04 15:42:57 +01:00
2003-11-02 23:35:53 +01:00
1.6 Legal issues
2003-11-02 23:35:53 +01:00
2014-01-04 15:42:57 +01:00
Ngspice, starting from release rework-18 is released under BSD/LGPL
license. Part of the code are covered by other compatible licenses:
2014-01-04 15:42:57 +01:00
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)
2001-12-06 17:33:02 +01:00
1.7. What mailing lists exist for ngspice?
2001-12-06 17:33:02 +01:00
2014-01-04 15:42:57 +01:00
There are two general mailing lists dedicated to the ngspice project.
2003-11-08 12:05:34 +01:00
Users mailing list: <ngspice-users@lists.sourceforge.net>
This list is for ngspice users, examples, problems, bug reports
2014-01-04 15:42:57 +01:00
and general discussion on ngspice can be sent here.
2003-11-08 12:05:34 +01:00
Developers mailing list: <ngspice-devel@lists.sourceforge.net>
2014-01-04 15:42:57 +01:00
The list dedicated to ngspice development. Developers shold
2003-11-08 12:05:34 +01:00
subscribe here, to follow the program development. May be used
2014-01-04 15:42:57 +01:00
to send patches, and technical discussion on ngspice.
2013-03-16 22:16:56 +01:00
Send an empty message with Subject "help" to the following addresses
to get instructions.
2014-01-04 15:42:57 +01:00
2013-03-16 22:16:56 +01:00
<ngspice-users-request@lists.sourceforge.net>
<ngspice-devel-request@lists.sourceforge.net>
Send an empty message to the following address to Subscribe.
<ngspice-users-join@lists.sourceforge.net>
<ngspice-devel-join@lists.sourceforge.net>
Documentation about the user interface of
these mailing lists can be found at:
http://www.gnu.org/software/mailman/mailman-member
2001-12-06 17:33:02 +01:00
1.8. Are the mailing lists archived anywhere ?
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
Yes, the lists are archived. There are two places where to look for
2005-04-29 08:49:53 +02:00
archives. The project started on the IEEE Central and South Italy
2003-11-08 12:05:34 +01:00
web server and then moved to sourceforge. Sourceforge provides an
archiving service that cam be accessed via the summary page:
2014-01-04 15:42:57 +01:00
2003-11-08 12:05:34 +01:00
http://sourceforge.net/projects/ngspice
2014-01-04 15:42:57 +01:00
(look for the "Lists" link). Old messages from the pre-sourceforge
2003-11-08 12:05:34 +01:00
age are available at:
2014-01-04 15:42:57 +01:00
http://ngspice.sourceforge.net/lists.html
2001-12-06 17:33:02 +01:00
1.9. What newsgroups exist for ngspice?
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
There is no ngspice specific newsgroup. Anyway ngspice threads appear
on newsgroups dedicated to circuit simulation and electronic design.
An (incomplete) list is:
2014-01-04 15:42:57 +01:00
2003-11-08 12:05:34 +01:00
sci.electronics.cad
2014-01-04 15:42:57 +01:00
comp.lsi.cad
2000-04-27 22:03:57 +02:00
1.10. Where can I get a copy of ngspice?
2001-12-06 17:33:02 +01:00
You can download ngspice from:
2003-11-08 12:05:34 +01:00
http://sourceforge.net/projects/ngspice
2001-12-06 17:33:02 +01:00
1.11. Where should I look on the World Wide Web for ngspice stuff?
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
Look at the official Ngpice Web Page:
2014-01-04 15:42:57 +01:00
http://ngspice.sourceforge.net
2000-04-27 22:03:57 +02:00
1.12. Where should I look on the World Wide Web for Spice documentation?
2000-04-27 22:03:57 +02:00
2010-09-25 16:34:58 +02:00
There is a detailed ngspice manual available at:
2010-06-12 17:47:54 +02:00
http://ngspice.sourceforge.net/docs.html
2014-01-04 15:42:57 +01:00
2010-09-25 16:34:58 +02:00
There are a lot of Internet sites that have information on spice. The
best way is to ask your preferred search engine. Some interesting
2014-01-04 15:42:57 +01:00
sites are:
Pages on Spice:
2003-11-08 12:05:34 +01:00
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm
2010-06-12 17:47:54 +02:00
http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/index.html#toc
2014-01-04 15:42:57 +01:00
2003-11-08 12:05:34 +01:00
Xspice Page:
http://users.ece.gatech.edu/~mrichard/Xspice
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
Cider Page:
http://embedded.eecs.berkeley.edu/pubs/downloads/cider/index.htm
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
2. DEVELOPMENT
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
2.1. What is the current version?
2000-04-27 22:03:57 +02:00
2014-01-04 15:42:57 +01:00
The latest version released is:
* ngspice-rework-25 (released on 04/01/2013)
2014-01-04 15:42:57 +01:00
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
2.2. What are the latest features in the current release?
2001-12-06 17:33:02 +01:00
2011-05-28 19:35:56 +02:00
- New features:
2014-01-04 15:42:57 +01:00
+ add temperature coefficients for B source
+ commands "mdump", "mrdump" to dump matrix to file
+ allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
+ Enable ctrl-c to interrupt a simulation also for Windows GUI
+ tests/bsim4: use the standard CMC model check
+ implement exit code for command "quit"
+ .nodeset all = value
+ memristor code model in extradev
+ new scalable diode model including tunnel component
+ variable xtrtol may override the XSPICE reduction of trtol
+ XSPICE example: delta-sigma converter
+ XSPICE: new d_source model
+ new option noopac
+ bsim3: make additonal parameters accessible with @mxx[par]
+ enable Mac OS X compilation
+ option reseries = val
+ commands "snsave", "snload"
+ update hisim to version 2.7.0, new qa tests
+ hisimhv update to version 1.2.3, new qa tests
+ allow Ctrl-d to quit
+ jfet model temperature extension, tcv and bex parameter
+ speed up vector handling by hash table for vector address storage and retrieval
+ update PSS code
2011-05-28 19:35:56 +02:00
- Bug fixes:
2014-01-04 15:42:57 +01:00
+ many, many ... please see
http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
+ remove memory leaks
+ update tclspice for MS Windows
2012-12-31 15:11:44 +01:00
+ adms3 removed due to licensing issues
+ Many small bugs
2000-04-27 22:03:57 +02:00
2010-09-25 16:34:58 +02:00
2.3. What does it look like?
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
Ngspice, as the original Spice3 (and Xspice and Cider) is a command
line simulator.
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
2.4. Who are the authors of ngspice?
2001-12-06 17:33:02 +01:00
2014-01-04 15:42:57 +01:00
The development is open to anyone who wish to contribute. If the
original Spice3 was made with the contribution of "a cast of
2003-11-08 12:05:34 +01:00
thousand", ngspice can only increase that number. An incomplete
2010-09-25 16:34:58 +02:00
list of contributor makes the "acknowledgements" page of the ngspice
2014-01-04 15:42:57 +01:00
manual.
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
2.5. How can I report a bug/request for a feature?
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
The ngspice summary page (hosted on Sourceforge) has bug-reporting,
feature-request and bugs trackers. You can use them or subscribe to
2010-09-25 16:34:58 +02:00
mailing lists and post there. The former is preferred since almost
it allows to track all necessary actions upon a bug. The web site at
http://ngspice.sourceforge.net/bugrep.html will give you more details.
2001-12-06 17:33:02 +01:00
2014-01-04 15:42:57 +01:00
2003-11-08 12:05:34 +01:00
2.6. How can I join the development?
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
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 git repository.
It might be that your feature has already been implemented.
2014-01-04 15:42:57 +01:00
2003-11-08 12:05:34 +01:00
There is no bureaucracy here.
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
3.1. What systems are supported?
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
Ngspice is written in C, and uses some GNU extensions, then you need
a GNU C compiler and a UNIX environment to compile it. Ngspice can
2014-01-04 15:42:57 +01:00
be compiled under Windows using the mingw or cygwin environment as
2010-06-12 17:47:54 +02:00
well as MS Visual Studio.
2014-01-04 15:42:57 +01:00
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
3.2. I get errors when I try to compile the source code, why?
2014-01-04 15:42:57 +01:00
This is a one-million-euros question :).
2003-11-08 12:05:34 +01:00
Write a mail to the user's list describing the problem and providing
information on the type of hardware, the flavour of operating system.
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
3.3. This document didn't answer my question. Where else can I look
for an answer?
2014-01-04 15:42:57 +01:00
2001-12-06 17:33:02 +01:00
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
2003-11-08 12:05:34 +01:00
answer, post your question to the mailing lists.
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
4.1. Feedback
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
Send your comments about this F.A.Q. to:
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
Paolo Nenzi <p.nenzi@ieee.org>.
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
Send your comments about ngspice to:
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
Paolo Nenzi <p.nenzi@ieee.org>.
2000-04-27 22:03:57 +02:00
2003-11-08 12:05:34 +01:00
4.2. Formats in which this FAQ is available
2001-12-06 17:33:02 +01:00
This document is available only in ASCII format in the ngspice source
2000-04-27 22:03:57 +02:00
package.
2001-12-06 17:33:02 +01:00
2003-11-08 12:05:34 +01:00
4.3. Authorship and acknowledgements
2000-04-27 22:03:57 +02:00
Parts of the questions and answers are originate from Paolo Nenzi.
2003-11-08 12:05:34 +01:00
4.4. Disclaimer and Copyright
2001-12-06 17:33:02 +01:00
This document is provided as is. The information in it is not
warranted to be correct: you use it at your own risk.