mirror of
https://git.code.sf.net/p/ngspice/ngspice
synced 2026-09-02 02:37:19 +02:00
382 lines
14 KiB
Plaintext
382 lines
14 KiB
Plaintext
Ngspice F.A.Q.Version 2.6 (ngspice-35 release)
|
|||
|
|||
Maintained by Holger Vogt
|
|||
Last update: 07-20-2021
|
|||
|
|||
|
|
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?
|
||
1.14 Are there some (official) tutorials available?
|
|||
|
|||
|
|
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
|
||
over 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: <[email protected]>
|
|||
This list is for ngspice users. Examples, problems, bug reports
|
|||
and general discussion on ngspice can be sent here.
|
|||
|
|
|
||
Developers mailing list: <[email protected]>
|
|||
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.
|
||
|
|||
<[email protected]>
|
|||
|
|
<[email protected]>
|
||
|
|
|
||
|
|
Send an empty message to the following address to Subscribe.
|
||
|
|
|
||
|
|
<[email protected]>
|
||
|
|
<[email protected]>
|
||
|
|
|
||
|
|
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
|
||
|
|||
|
|||
1.14 Are there some (official) tutorials available?
|
|||
|
|
|
||
|
|
Yes, they are, for ngspice, ngspice within KiCAD and on eletro-thermal
|
||
|
|
simulation. You may find them at:
|
||
|
|
http://ngspice.sourceforge.net/tutorials.html
|
||
|
|
|
||
|
|
|
||
|
|||
2. DEVELOPMENT
|
|||
|
|||
|
|
|
||
2.1. What is the current version?
|
|||
|
|||
The latest version released is:
|
|||
|
|
|
||
* ngspice-35 (released on 07/31/2021)
|
|||
|
|||
|
|||
2.2. What are the latest features in the current release?
|
|||
|
|||
- New features:
|
|||
+ Improved VBIC model
|
|||
|
|
+ Get the vector type automatically, if db, ph, cph are applied.
|
||
|
|
+ Enable finding 'spinit' if its path contains spaces.
|
||
|
|
+ Increase buffer size for command 'listing' to 4096 bytes.
|
||
|
|
+ Add compatibility modes for EAGLE (ea) and Spectre (spe).
|
||
|
|
+ Add parameter 'plain' to 'plot' command.
|
||
|
|
+ Add variables 'plainplot', 'plainwrite', 'plainlet'
|
||
|
|
+ Add RF bipolar model HICUM 2.4 to the ngspice C sources.
|
||
|
|
+ Add charge formulation for non-linear capacitors.
|
||
|
|
+ Remove outdated code from contrib and unsupported directories.
|
||
|
|
+ When installing ngspice executable, do not install the headers.
|
||
|
|
+ Add support for tc1, tc2, and m for behavioral resistors,
|
||
|
|
which use the B source internally.
|
||
|
|
+ Add supporting E_constant Vconst 0 TABLE {Max(V(DP)-V(GN),0)}=((20,120)).
|
||
|
|
+ Remove the XSPICE limitation of the current source flag "current".
|
||
|
|
+ Remove the XSPICE dependency of the phase parameter for the
|
||
|
|
independent current source.
|
||
|
|
+ Drastically reduce the memory requirements if there is a PDK with
|
||
|
|
a lot of binning models (e.g. the SkyWater PDK).
|
||
|
|
+ Update to admst: Enhance the Verilog A compatibility.
|
||
|
|
+ Add most recent PSP102, Mextram504, BSIMBULK, and BSIMCMG models
|
||
|
|
to the ngspice adms sources.
|
||
|
|
+ Model checking for BSIM4.5 will only write to file if an excursion
|
||
|
|
is detected (still to be added to the other BSIM models)
|
||
|
|
+ Many code updates not visible to the user, but enhancing stability
|
||
and efficiency
|
|||
|
|||
|
|
- Bug fixes:
|
||
+ many bugs fixed and code improvements (see bugs 523 and up)
|
|||
+ memory leaks removed
|
|||
|
|||
|
|
|
||
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. You may use
|
|||
|
|
a GNU C compiler and a LINUX environment to compile it. Ngspice can
|
||
be compiled under Windows using the mingw or cygwin environment as
|
|||
well as MS Visual Studio. It will readily compile on macOS.
|
|||
|
|
FreeBSD or Solaris will do, but are not officially supported.
|
||
|
|||
|
|||
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, 2021
|
|||
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.
|