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
|
||||
Maintened by Paolo Nenzi <p.nenzi@ieee.org>
|
||||
Last update: 05/12/2001
|
||||
Ngspice F.A.Q.Version 1.2
|
||||
Maintained by Paolo Nenzi <p.nenzi@ieee.org>
|
||||
Last update: 02-11-2003
|
||||
|
||||
This document contains the Frequently Asked Questions (and Answers)
|
||||
for ngspice project.
|
||||
______________________________________________________________________
|
||||
__________________________________________________________________________
|
||||
|
||||
Table of Contents
|
||||
|
||||
|
|
@ -33,7 +33,8 @@
|
|||
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?
|
||||
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
|
||||
|
|
@ -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.
|
||||
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.
|
||||
The idea behind the project is to improve the capabilities of the
|
||||
Spice 3f5 circuit simulator. Spice is the most famous circuit
|
||||
simulator, developed at the University of California at Berkeley
|
||||
(UCB), by "a cast of thousand". The NG prefix has a lot of meanings:
|
||||
Next Generation, New Good, etc. Choose or invent the one you prefer.
|
||||
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
|
||||
simulators available today. It is an old but still good piece of
|
||||
|
|
@ -73,118 +75,128 @@
|
|||
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
|
||||
friendly circuit simulator for mixed signal/mixed level simulation.
|
||||
Easy isn't it? ;-).
|
||||
1.4 What you are going to do?
|
||||
|
||||
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
|
||||
development follows two parallel paths:
|
||||
+ Simulator's analyses: this is a low priority area. Planned improvements
|
||||
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
|
||||
this, while the second one will bring us a new simulator,
|
||||
compatible with its father but more expandable and presumably
|
||||
faster and numerically stronger.
|
||||
http://sourceforge.net/projects/sparse
|
||||
|
||||
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.
|
||||
Other planned improvements, but with very low priority, includes the
|
||||
use SuperLU library as possible Sparse library replacement (the
|
||||
library is available at http://crd.lbl.gov/~xiaoye/SuperLU) and the
|
||||
introduction of continuation metohds to aid DC convergence.
|
||||
|
||||
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.
|
||||
+ Spice language: The language used to input the circuit to the simulator
|
||||
has been extended and now allows the user to input parametric values
|
||||
for components (the numparam library). This is an experimental feature
|
||||
that will be improved in the future. Planned improvements includes the
|
||||
support for loading more than one circuit, netlist manipulation via
|
||||
command line (adding and removing instances) and the implementation
|
||||
of a command history using the libedit library, available at:
|
||||
|
||||
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,
|
||||
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.
|
||||
etc. Spice came with little documentation. The Spice3f manual,
|
||||
available on the Internet will be constantly improved during
|
||||
ngspice development and integrated with the documentation
|
||||
accompanying Xspice and Cider. This is a very time consuming task
|
||||
and probably the documentation will always be left slightly
|
||||
behind.
|
||||
|
||||
|
||||
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.
|
||||
1.5 Legal issues
|
||||
|
||||
Ngspice merges three different simulators: spice and cider are covered
|
||||
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??
|
||||
|
|
|
|||
Loading…
Reference in New Issue