Partial FAQ update.
This commit is contained in:
parent
3cef27f2fe
commit
3a1560e4ee
230
FAQ
230
FAQ
|
|
@ -1,10 +1,10 @@
|
||||||
Ngspice F.A.Q.Version 1.0
|
Ngspice F.A.Q.Version 1.2
|
||||||
Maintened by Paolo Nenzi <p.nenzi@ieee.org>
|
Maintained by Paolo Nenzi <p.nenzi@ieee.org>
|
||||||
Last update: 05/12/2001
|
Last update: 02-11-2003
|
||||||
|
|
||||||
This document contains the Frequently Asked Questions (and Answers)
|
This document contains the Frequently Asked Questions (and Answers)
|
||||||
for ngspice project.
|
for ngspice project.
|
||||||
______________________________________________________________________
|
__________________________________________________________________________
|
||||||
|
|
||||||
Table of Contents
|
Table of Contents
|
||||||
|
|
||||||
|
|
@ -33,7 +33,8 @@
|
||||||
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
|
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
|
||||||
3.1 What systems are supported?
|
3.1 What systems are supported?
|
||||||
3.2 I get errors when I try to compile the source code, why?
|
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?
|
3.3 This document didn't answer my question. Where else can I look for
|
||||||
|
an answer?
|
||||||
|
|
||||||
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
|
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
|
||||||
4.1 Feedback
|
4.1 Feedback
|
||||||
|
|
@ -44,22 +45,23 @@
|
||||||
|
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
11.. IINNTTRROODDUUCCTTIIOONN AANNDD GGEENNEERRAALL IINNFFOORRMMAATTIIOONN
|
1. INTRODUCTION AND GENERAL INFORMATION
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
11..11.. WWhhaatt iiss nnggssppiiccee??
|
1.1 What is ngspice ?
|
||||||
|
|
||||||
Ngspice is the name of a project and of a program in the project.
|
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 idea behind the project is to improve the capabilities of the
|
||||||
the University of California at Berkeley (UCB). The NG prefix has a
|
Spice 3f5 circuit simulator. Spice is the most famous circuit
|
||||||
lot of meanings: Next Generation, New Good, etc. Choose or invent the
|
simulator, developed at the University of California at Berkeley
|
||||||
one you prefer. The ngspice project aims to improve the capabilities
|
(UCB), by "a cast of thousand". The NG prefix has a lot of meanings:
|
||||||
of the Spice3 circuit simulator. The heart of the project is the
|
Next Generation, New Good, etc. Choose or invent the one you prefer.
|
||||||
ngspice program, a circuit simulator derived from spice3f5.
|
The heart of the project is the ngspice program, a circuit simulator
|
||||||
|
derived from spice3f5.
|
||||||
|
|
||||||
|
|
||||||
11..22.. WWhhyy rreessuurrrreeccttiinngg BBeerrkkeelleeyy''ss SSppiiccee??
|
1.2 Why resurrecting Berkeley's Spice?
|
||||||
|
|
||||||
Berkeley's Spice can be considered the father of most circuit
|
Berkeley's Spice can be considered the father of most circuit
|
||||||
simulators available today. It is an old but still good piece of
|
simulators available today. It is an old but still good piece of
|
||||||
|
|
@ -73,118 +75,128 @@
|
||||||
environment.
|
environment.
|
||||||
|
|
||||||
|
|
||||||
11..33.. WWhhaatt iiss tthhee pprroojjeecctt''ss ggooaall??
|
1.3 What is the project's goal?
|
||||||
|
|
||||||
|
The project goal evolved during project development, at first the
|
||||||
|
final goal was to develop a reliable, fast and friendly circuit
|
||||||
|
simulator for mixed signal/mixed level simulation. During
|
||||||
|
development it become apparent that to reach the goal a complete
|
||||||
|
rewrite of spice was needed. Since it was almost absurd to rewrite
|
||||||
|
Spice and since a new simulator was already under development:
|
||||||
|
ACS (Al's Circuit Simulator), now GNUCap (GNU Circuit Analyis
|
||||||
|
package), the goal of nspice became less utopical: merge
|
||||||
|
spice, xspice and cider into a mixed-signal/mixed-level simulator
|
||||||
|
that can be used as a reliable engine.
|
||||||
|
|
||||||
|
|
||||||
The final goal of ngspice project is to develop a reliable, fast and
|
1.4 What you are going to do?
|
||||||
friendly circuit simulator for mixed signal/mixed level simulation.
|
|
||||||
Easy isn't it? ;-).
|
We are going to develop a mixed-signal/mixed-level circuit simulation
|
||||||
|
program integrating three different spice based simulators:
|
||||||
|
Spice, Xspice and Cider.
|
||||||
|
|
||||||
|
Xspice is a mixed-signal circuit simulator developed by GTRI (Georgia
|
||||||
|
Tech Research Institute) at Georgia Institute of Technology. Xspice
|
||||||
|
was originally developed as an extension over Spice3c1. Xspice
|
||||||
|
introduces code modeling and a digital simulator into ngspice.
|
||||||
|
The "home site" of Xspice is:
|
||||||
|
|
||||||
|
http://users.ece.gatech.edu/~mrichard/Xspice/
|
||||||
|
|
||||||
|
Cider is a mixed-level circuit and device simulator based on Spice3f5
|
||||||
|
that couples a device simulator (DSIM) to Spice. More information can
|
||||||
|
be found at:
|
||||||
|
|
||||||
|
http://www-cad.eecs.berkeley.edu/Software/cider.html
|
||||||
|
|
||||||
|
The merging process is done in parallel with bug fixing and improvement
|
||||||
|
of the three simulators. The improvements are concentrated into 6
|
||||||
|
directives:
|
||||||
|
|
||||||
|
|
||||||
11..44.. WWhhaatt yyoouu aarree ggooiinngg ttoo ddoo??
|
+ Compact models: the improvements in compact models will address
|
||||||
|
mainly the implementation of additional effects not available
|
||||||
|
in the original code. Device specific improvements are documented
|
||||||
|
on ngspice's documentation and in the DEVICE file in project's
|
||||||
|
tarball.
|
||||||
|
Improvements that affects all devices already implemented are:
|
||||||
|
"dtemp" option to set instance's temperature relative to the circuit
|
||||||
|
one, "m" parallel multiplier to simulate an arbitrary number of
|
||||||
|
instances of the same kind connected in parallel.
|
||||||
|
|
||||||
|
Planned improvements are the development of a dynamic loading
|
||||||
|
mechanism for compact models, to avoid loading in memory devices
|
||||||
|
that are not needed, and SOAR (Safe Operating ARea) checks to
|
||||||
|
identify situations in which devices are used out of their
|
||||||
|
safety areas.
|
||||||
|
|
||||||
|
|
||||||
We are going to develop a circuit simulation program. The line of
|
+ Simulator's analyses: this is a low priority area. Planned improvements
|
||||||
development follows two parallel paths:
|
include the implementation of parametric analyses, to analyse the
|
||||||
|
behavior of the circuit as a parameter changes. Parameter sweep,
|
||||||
|
Monte Carlo and Worst Case fall in this category. Network analysis
|
||||||
|
(double bipole parameters extraction) is another planned improvement.
|
||||||
|
|
||||||
1. EEnnhhaanncceemmeennttss aanndd bbuugg--ffiixxiinngg ooff tthhee oorriiggiinnaall ssppiiccee33ff55 ccooddee..
|
|
||||||
|
|
||||||
2. DDeevveellppppmmeenntt ooff aa nneeww GGPPLL''eedd ssiimmuullaattoorr..
|
+ Numerical analysis code: the improvements within the numerical code
|
||||||
|
must be done with extreme care. Planned improvements are, the
|
||||||
|
replacement of the Sparse library with the latest code Kenneth Kundert
|
||||||
|
has released, available at:
|
||||||
|
|
||||||
The first phat will lead to a better spice3f5 and nothing more than
|
http://sourceforge.net/projects/sparse
|
||||||
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
|
Other planned improvements, but with very low priority, includes the
|
||||||
frontend to the new simulator. One of the key issues of our project is
|
use SuperLU library as possible Sparse library replacement (the
|
||||||
to let users design the front end they want, using the widget set and
|
library is available at http://crd.lbl.gov/~xiaoye/SuperLU) and the
|
||||||
the language they prefer. For this reason ngspice differs a lot from
|
introduction of continuation metohds to aid DC convergence.
|
||||||
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
|
+ Spice language: The language used to input the circuit to the simulator
|
||||||
continue to be) a command line or a text tool, but this makes very
|
has been extended and now allows the user to input parametric values
|
||||||
difficult to design large circuits. To overcome this difficulty, a
|
for components (the numparam library). This is an experimental feature
|
||||||
schematic entry tool and a waveform viewer tools are needed.
|
that will be improved in the future. Planned improvements includes the
|
||||||
Nevertheless, there are other tools that can be useful: a parts
|
support for loading more than one circuit, netlist manipulation via
|
||||||
database, an editor which higlights the syntax, a symbol editor,
|
command line (adding and removing instances) and the implementation
|
||||||
etc. Most of these program already exists in the open source world,
|
of a command history using the libedit library, available at:
|
||||||
so they need only to be integrated in a common EDA environment.
|
|
||||||
|
|
||||||
2. DDooccuummeennttaattiioonn:: Commercial simulators have very good manuals with
|
http://sourceforge.net/projects/libedit
|
||||||
|
|
||||||
|
|
||||||
|
+ Frontend: The design of a new spice frontend has not been successful
|
||||||
|
and now is orphaned, since the is no interests and many free and
|
||||||
|
commercial frontends are available. There is no planned improvement
|
||||||
|
here.
|
||||||
|
|
||||||
|
|
||||||
|
+ Documentation: Commercial simulators have very good manuals with
|
||||||
tutorials, models equations explained, example of use, suggestions,
|
tutorials, models equations explained, example of use, suggestions,
|
||||||
etc. This line of development has the task of providing the final
|
etc. Spice came with little documentation. The Spice3f manual,
|
||||||
spice user with an ordered and comprehensive set of information on
|
available on the Internet will be constantly improved during
|
||||||
the program and its features. The documentation should be useful
|
ngspice development and integrated with the documentation
|
||||||
for the student as well as for the circuit professional.
|
accompanying Xspice and Cider. This is a very time consuming task
|
||||||
|
and probably the documentation will always be left slightly
|
||||||
3. IImmpprroovveemmeennttss ttoo tthhee SSppiiccee ccooddee:: This is the hard part. The target
|
behind.
|
||||||
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
|
1.5 Legal issues
|
||||||
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
|
Ngspice merges three different simulators: spice and cider are covered
|
||||||
obviously contribute to the GPL community.
|
with the "old" BSD license, Xspice by its own license. The ngspice
|
||||||
|
license will be then the BSD license.
|
||||||
|
|
||||||
|
Since the "old" BSD license is not compatible with the GPL library
|
||||||
|
it is not possible to link the ngspice with GPL'ed code, as is
|
||||||
|
written in:
|
||||||
|
|
||||||
|
http://www.gnu.org/philosophy/bsd.html
|
||||||
|
|
||||||
|
The group developing ngspice has written to Berkeley's copyright holders
|
||||||
|
asking to change the license to the new BSD, which has the
|
||||||
|
incompatibility removed, but without success. Ngspice will probably
|
||||||
|
never be relased under the GPL license.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
11..66.. WWhhaatt mmaaiilliinngg lliissttss eexxiisstt ffoorr nnggssppiiccee??
|
11..66.. WWhhaatt mmaaiilliinngg lliissttss eexxiisstt ffoorr nnggssppiiccee??
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue