ngspice/FAQ

378 lines
14 KiB
Plaintext
Raw Normal View History

2001-12-06 17:33:02 +01:00
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
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?
2001-12-06 17:33:02 +01:00
3.3 This document didn't answer my question. Where else can I look for an answer?
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
______________________________________________________________________
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??
2000-04-27 22:03:57 +02:00
None. Sorry.
2001-12-06 17:33:02 +01:00
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>
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
11..1111.. WWhheerree sshhoouulldd II llooookk oonn tthhee WWoorrlldd WWiiddee WWeebb ffoorr SSppiiccee ddooccuummeennttaa--
ttiioonn??
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
50 Circuits analyzed with SPICE
<http://www.dacafe.com/DACafe/EDATools/EDAbooks/SpiceHandBook/01_TOC.html>
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
<http://www.dacafe.com/DACafe/EDATools/EDAbooks/SMPS/SMPS.htm>
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
22.. DDEEVVEELLOOPPMMEENNTT
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
22..11.. WWhhaatt iiss tthhee ccuurrrreenntt vveerrssiioonn??
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
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??
2000-04-27 22:03:57 +02:00
This is a command line utility, no screenshots!
2001-12-06 17:33:02 +01:00
22..44.. WWhhoo aarree tthhee aauutthhoorrss ooff nnggssppiiccee??
2000-04-27 22:03:57 +02:00
The development is open to anyone who wish to contribute.
2001-12-06 17:33:02 +01:00
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>
2000-04-27 22:03:57 +02:00
and ask to be included.
2001-12-06 17:33:02 +01:00
22..55.. HHooww ccaann II rreeppoorrtt aa bbuugg//rreeqquueesstt ffoorr aa ffeeaattuurree??
Look at the projects summary page: ngspice summary page
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
22..66.. HHooww ccaann II jjooiinn tthhee ddeevveellooppmmeenntt??
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 CVS. It might be that
your feature has already been implemented.
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
33.. SSOOLLUUTTIIOONNSS TTOO CCOOMMMMOONN MMIISSCCEELLLLAANNEEOOUUSS PPRROOBBLLEEMMSS
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
33..11.. WWhhaatt ssyysstteemmss aarree ssuuppppoorrtteedd??
2000-04-27 22:03:57 +02:00
This is the updated list:
2001-12-06 17:33:02 +01:00
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 ?
2000-04-27 22:03:57 +02:00
2001-12-06 17:33:02 +01:00
MS-Dos, VMS and MacOS are no longer supported.
33..22.. II ggeett eerrrroorrss wwhheenn II ttrryy ttoo ccoommppiillee tthhee ssoouurrccee ccooddee,, wwhhyy??
2000-04-27 22:03:57 +02:00
[not written yet]
2001-12-06 17:33:02 +01:00
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
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
2001-12-06 17:33:02 +01:00
44..22.. FFoorrmmaattss iinn wwhhiicchh tthhiiss FFAAQQ iiss aavvaaiillaabbllee
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
44..33.. AAuutthhoorrsshhiipp aanndd aacckknnoowwlleeddggeemmeennttss
2000-04-27 22:03:57 +02:00
Parts of the questions and answers are originate from Paolo Nenzi.
2001-12-06 17:33:02 +01:00
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.