378 lines
14 KiB
Plaintext
378 lines
14 KiB
Plaintext
Ngspice F.A.Q.Version 1.0
|
||
Maintened by Paolo Nenzi <p.nenzi@ieee.org>
|
||
Last update: 05/12/2001
|
||
|
||
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
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
11.. IINNTTRROODDUUCCTTIIOONN AANNDD GGEENNEERRAALL IINNFFOORRMMAATTIIOONN
|
||
|
||
|
||
|
||
11..11.. WWhhaatt iiss nnggssppiiccee??
|
||
|
||
Ngspice is the name of a project and of a program in the project.
|
||
Spice is the famous circuit simulator developed by the CAD Group of
|
||
the University of California at Berkeley (UCB). The NG prefix has a
|
||
lot of meanings: Next Generation, New Good, etc. Choose or invent the
|
||
one you prefer. The ngspice project aims to improve the capabilities
|
||
of the Spice3 circuit simulator. The heart of the project is the
|
||
ngspice program, a circuit simulator derived from spice3f5.
|
||
|
||
|
||
11..22.. WWhhyy rreessuurrrreeccttiinngg BBeerrkkeelleeyy''ss SSppiiccee??
|
||
|
||
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.
|
||
|
||
|
||
11..33.. WWhhaatt iiss tthhee pprroojjeecctt''ss ggooaall??
|
||
|
||
|
||
The final goal of ngspice project is to develop a reliable, fast and
|
||
friendly circuit simulator for mixed signal/mixed level simulation.
|
||
Easy isn't it? ;-).
|
||
|
||
|
||
11..44.. WWhhaatt yyoouu aarree ggooiinngg ttoo ddoo??
|
||
|
||
|
||
We are going to develop a circuit simulation program. The line of
|
||
development follows two parallel paths:
|
||
|
||
1. EEnnhhaanncceemmeennttss aanndd bbuugg--ffiixxiinngg ooff tthhee oorriiggiinnaall ssppiiccee33ff55 ccooddee..
|
||
|
||
2. DDeevveellppppmmeenntt ooff aa nneeww GGPPLL''eedd ssiimmuullaattoorr..
|
||
|
||
The first phat will lead to a better spice3f5 and nothing more than
|
||
this, while the second one will bring us a new simulator,
|
||
compatible with its father but more expandable and presumably
|
||
faster and numerically stronger.
|
||
|
||
There is another project in ngspice: the development of one or more
|
||
frontend to the new simulator. One of the key issues of our project is
|
||
to let users design the front end they want, using the widget set and
|
||
the language they prefer. For this reason ngspice differs a lot from
|
||
spice3f5: in ngspice there is a clear distinction between the front
|
||
end and the back end. In ngspice the front end takes care of the
|
||
interaction with the user. It is back-end's task to maintain the
|
||
object database, to exchange data with the simulator, etc.
|
||
|
||
There are various improvements we are planning, some follows:
|
||
|
||
1. TThhee ffrraammeewwoorrkk ((oorr GGrraapphhiicc UUsseerr IInntteerrffaaccee)):: Spice is (and should
|
||
continue to be) a command line or a text tool, but this makes very
|
||
difficult to design large circuits. To overcome this difficulty, a
|
||
schematic entry tool and a waveform viewer tools are needed.
|
||
Nevertheless, there are other tools that can be useful: a parts
|
||
database, an editor which higlights the syntax, a symbol editor,
|
||
etc. Most of these program already exists in the open source world,
|
||
so they need only to be integrated in a common EDA environment.
|
||
|
||
2. DDooccuummeennttaattiioonn:: Commercial simulators have very good manuals with
|
||
tutorials, models equations explained, example of use, suggestions,
|
||
etc. This line of development has the task of providing the final
|
||
spice user with an ordered and comprehensive set of information on
|
||
the program and its features. The documentation should be useful
|
||
for the student as well as for the circuit professional.
|
||
|
||
3. IImmpprroovveemmeennttss ttoo tthhee SSppiiccee ccooddee:: This is the hard part. The target
|
||
of this direction is to make ngspice a commercial grade simulator.
|
||
This means improving it's speed, its numerical strenght, include
|
||
the latest models available and some other important features:
|
||
|
||
+o Numerical Algorithms:
|
||
|
||
+o More stable algorithms for integration (as Runge-Kutta
|
||
Methods (?) ).
|
||
|
||
+o Better convergence in Operating Point Calculation adding a
|
||
modified version of Fixed-Point Homotopy to the Newton-
|
||
Raphson algorithm,
|
||
|
||
+o Devices:
|
||
|
||
+o Behavioral device: enhance the B device of spice3 to accepts
|
||
IF THEN ELSE conditions, and digital keywords like DELAY,
|
||
HIGHV, LOWV, etc. to simulate simple digital macromodels.
|
||
|
||
+o Dynamically Loadable Devices: reduce the memory occupied by
|
||
the simulator by using shared object code for devices. Each
|
||
device is a .so library that is inserted only if the circuit
|
||
contains an element modeled by the device. If we are
|
||
simulating CMOS, we do not need BJT or SOI (in most of the
|
||
situations).
|
||
|
||
+o Code Level Modeling: let users write their devices in C and
|
||
use them in the simulator.
|
||
|
||
+o Improving device: include additional parameters to some
|
||
devices as HDIF, LDIF, etc.
|
||
|
||
+o New types of analysis, oriented to circuits syntesis and
|
||
optimization:
|
||
|
||
+o Network analysis: given four nodes, extract z,y,s and the
|
||
other double bipole paramters.
|
||
|
||
+o Monte Carlo analysis: statistical simulation based on device
|
||
tolerances.
|
||
|
||
+o Worst Case analysis: find the worst case of operation of a
|
||
given circuit based on device parameters tolerances.
|
||
|
||
+o Parametric analysis: repeat an analysis when one or more
|
||
parameters assumes different values.
|
||
|
||
+o Faster handling of sparse matrices.
|
||
|
||
+o Possibility to mesure circuit pameters, like the delay between
|
||
two nodes, etc.
|
||
|
||
+o Whatever else can be judged useful.
|
||
|
||
|
||
11..55.. LLeeggaall iissssuueess
|
||
|
||
The improved spice3f5 will be relased under the original Berkeley's
|
||
lincese. The new simulator will be released as GPL. Make ngspice a GPL
|
||
program, allow us to link a lot of good code laying on the net and
|
||
obviously contribute to the GPL community.
|
||
|
||
|
||
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.
|
||
|
||
|
||
|