361 lines
13 KiB
Plaintext
361 lines
13 KiB
Plaintext
Ngspice F.A.Q.Version 2.3 (ngspice-31 release)
|
|
|
|
Maintained by Holger Vogt
|
|
Last update: 09-14-2018
|
|
|
|
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 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 Discussion groups
|
|
1.9 What mailing lists exist for ngspice?
|
|
1.10 Are the mailing lists archived anywhere?
|
|
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?
|
|
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 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"
|
|
(as they say) initially under the guide of Donald O. Peterson.
|
|
|
|
- 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 (and) Good, etc.
|
|
Choose or invent the one you prefer. The heart of the project is the
|
|
ngspice program, with its tremendous advancements.
|
|
|
|
|
|
1.2 What is sharedspice ?
|
|
|
|
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.
|
|
This has not been used and tested for some time.
|
|
|
|
|
|
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
|
|
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. 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.
|
|
|
|
|
|
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
|
|
simulator available. This means fixing bugs, adding new features but always
|
|
in the spice3 framework. Achieving compatibility with commercial spice based
|
|
simulators and provide users the latest devices models are important goals
|
|
of the project. Improvements in the postprocessing (data handling
|
|
capabilities) and user interface are other goals.
|
|
|
|
|
|
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
|
|
day by developers writing on the lists. Ngspice development activity
|
|
can be summarized in 3 points:
|
|
|
|
+ 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 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.
|
|
|
|
+ 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
|
|
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. 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.7 Legal issues
|
|
|
|
The ngspice base license is new BSD, as provided by UCB. For some parts
|
|
of the code other compatible licences apply. All licenses are DFSG
|
|
compatible. Please see file COPYING for details.
|
|
|
|
|
|
1.8 Discussion groups
|
|
|
|
Vivid discussion are going on in the ngspice discussion groups.
|
|
They are found at https://sourceforge.net/p/ngspice/discussion/
|
|
A new group 'ngspice tips and examples' will present interesting
|
|
ngspice tips (your input is welcome!)
|
|
|
|
|
|
1.9 What mailing lists exist for ngspice?
|
|
|
|
Mailing lists have somewhat lost importance compared to the
|
|
discussion groups described above.
|
|
|
|
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
|
|
and general discussion on ngspice can be sent here.
|
|
|
|
Developers mailing list: <ngspice-devel@lists.sourceforge.net>
|
|
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.
|
|
|
|
Send an empty message with Subject "help" to the following addresses
|
|
to get instructions.
|
|
|
|
<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
|
|
|
|
|
|
1.10 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/p/ngspice/mailman/
|
|
|
|
|
|
1.11 Where can I get a copy of ngspice?
|
|
|
|
You can download ngspice from:
|
|
|
|
http://sourceforge.net/projects/ngspice/files/ng-spice-rework/
|
|
|
|
|
|
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.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
|
|
|
|
Others docs are assembled at:
|
|
http://ngspice.sourceforge.net/literature.html
|
|
|
|
|
|
|
|
2. DEVELOPMENT
|
|
|
|
|
|
2.1. What is the current version?
|
|
|
|
The latest version released is:
|
|
|
|
* ngspice-31 (released on 22/09/2019)
|
|
|
|
|
|
2.2. What are the latest features in the current release?
|
|
|
|
- New features:
|
|
+ configure flag --with-fftw3 If set to 'no', internal fast fourier is used
|
|
instead of fftw
|
|
+ command setseed to set the seed value for the random number generator
|
|
+ option seed=[val|random]
|
|
+ variable inputdir to remeber and retrieve the last input file directory
|
|
+ example directory 'digital' with analog, behavioral and digital example input files
|
|
+ new XSPICE filesource, d_source, and state-machine examples
|
|
+ +, - maybe part of instance name
|
|
+ Quasi-saturation VDMOS example
|
|
+ add environmental variable SOURCE_DATE_EPOCH to allow reproducible executables
|
|
+ new parameters to command setplot: setplot next, setplot previous
|
|
+ updates to commands cd, rusage, print
|
|
+ update to bipolar and diode temperature equations
|
|
|
|
- Bug fixes:
|
|
+ several bug fixes
|
|
+ lots of memory leaks removed, especially when XSPICE circuits are called several
|
|
times in a loop.
|
|
|
|
|
|
2.3. What does it look like?
|
|
|
|
Ngspice, as the original Spice3 (and Xspice and Cider) is a command
|
|
line simulator, but with a graphics output capability.
|
|
|
|
|
|
2.4. Who are the authors of ngspice?
|
|
|
|
The development is open to anyone who wish to contribute. If the
|
|
original Spice3 was made with the contribution of "a cast of
|
|
thousand", ngspice can only increase that number. An incomplete
|
|
list of contributor makes the "acknowledgements" page of the ngspice
|
|
manual.
|
|
|
|
|
|
2.5. How can I report a bug/request for a feature?
|
|
|
|
The ngspice summary page (hosted on Sourceforge) has bug-reporting,
|
|
feature-request and bugs trackers. You can use them or subscribe to
|
|
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.
|
|
|
|
|
|
2.6. How can I join the development?
|
|
|
|
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.
|
|
|
|
There is no bureaucracy here.
|
|
|
|
|
|
|
|
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
|
|
|
|
|
|
3.1. What systems are supported?
|
|
|
|
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
|
|
be compiled under Windows using the mingw or cygwin environment as
|
|
well as MS Visual Studio.
|
|
|
|
|
|
3.2. I get errors when I try to compile the source code, why?
|
|
|
|
This is a one-million-euros question :).
|
|
|
|
Write to the user's discussion group describing the problem and providing
|
|
information on the type of hardware, the flavour of operating system.
|
|
|
|
|
|
3.3. This document didn't answer my question. Where else can I look
|
|
for an answer?
|
|
|
|
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 lists.
|
|
|
|
|
|
|
|
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
|
|
|
|
|
|
4.1. Feedback
|
|
|
|
Send your comments about this F.A.Q. to:
|
|
https://sourceforge.net/p/ngspice/discussion/127605/
|
|
|
|
|
|
4.2. Formats in which this FAQ is available
|
|
|
|
This document is available only in ASCII format in the ngspice source
|
|
package.
|
|
|
|
|
|
4.3. Authorship and acknowledgements
|
|
|
|
Parts of the questions and answers originate from Paolo Nenzi
|
|
and are updated by Holger Vogt.
|
|
|
|
|
|
4.4. Disclaimer and Copyright
|
|
|
|
Copyright: Holger Vogt, 2018
|
|
License: Creative Commons Attribution Share-Alike (CC-BY-SA) v4.0.
|
|
This document is provided as is. The information in it is not
|
|
warranted to be correct: you use it at your own risk.
|