168 lines
6.0 KiB
Plaintext
168 lines
6.0 KiB
Plaintext
README for NGSPICE
|
|
------------------
|
|
|
|
This long message describes what NGSPICE may become in the (near ?)
|
|
future. I used a question mark because, as you will read, most of the
|
|
features of ngspice are found on Hi-quality commercial products and
|
|
(which is the true reason) I have no idea on how can be implemented.
|
|
|
|
** 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 is available in
|
|
source code, and most of the electrical simulators inherited it's syntax.
|
|
On the more technical side, spice3f4(5) uses good numerical algorithms
|
|
(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: it's well introduced in the
|
|
academic environment.
|
|
|
|
|
|
** What does NGSPICE mean ?
|
|
|
|
It stands for Next Generation Spice but that's not the official name of
|
|
the projest. This projects still lacks a name. NGSPICE is a temporary
|
|
name.
|
|
|
|
|
|
** What will NGSPICE be ?
|
|
|
|
Berkeley's Spice lacks in three directions:
|
|
|
|
a) Graphical user interface (I prefer to say "the framework").
|
|
b) Documentation.
|
|
c) Features in the code.
|
|
|
|
* The framework:
|
|
Spice is (and should continue to be) acommand 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 tool 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 ony to be integrated in a common EDA environment.
|
|
This is the first direction of development.
|
|
|
|
* Documentation: Commercial simulators (hi-end) have very good manuals
|
|
with tutorials, models equation explained, example of use, suggestions,
|
|
etc. This line of development has the task of provinding the final
|
|
spice user with an orderd and comprehensive set of information on the
|
|
program and it's features. The documentation should be useful for the
|
|
student as well as for the circuit professional.
|
|
|
|
* Improvements to the spice code: This is the hard part. The target of
|
|
this direction is to make ngspice a commercial grade simulator. This
|
|
means improving it's speed, it's numerical robustness, include the
|
|
latest models available and some other important features. I will
|
|
describe some of them briefly:
|
|
|
|
- Analyses -
|
|
Network analysis: given four nodes, extract z,y,s and the other
|
|
double bipole parameters.
|
|
|
|
Monte Carlo analysis: statistical simulation based on device
|
|
parameters tolerances.
|
|
|
|
Worst Case analysis: find the worst case of operation of a given
|
|
circuit based on device parameters tolerances.
|
|
|
|
Parametric analysis: repeat an analysis when one or more parameters
|
|
assumes different values.
|
|
|
|
- Devices -
|
|
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 circuits.
|
|
|
|
Dynamically loading of device: reduce the memory occupied by the
|
|
simulator 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).
|
|
|
|
Code Level Modeling: Let users write their devices in C and use
|
|
them in the simulator. I have discovered a couple of standars
|
|
for doing this at the Sematech ftp site.
|
|
|
|
Improving device: Include additional parameters to some devices:
|
|
HDIF, LDIF, etc.
|
|
|
|
- Numerical Algs -
|
|
Integration: include (if necessary) more stable algorithms for
|
|
integration. What about Runge-Kutta Methods ?
|
|
|
|
How if we check LKC at every node as convergence test ?
|
|
|
|
Linearization:
|
|
Are there better algorithms for nonlinear equations the the Newton
|
|
raphson ?
|
|
|
|
- Sparse Matrix -
|
|
Faster handling of sparse matrices: new processors offers generous
|
|
caches and vectors operations.
|
|
|
|
|
|
- Options -
|
|
Possibility to mesure circuit pameters, like the delay between two
|
|
nodes, etc.
|
|
|
|
|
|
... and others that will emerge during the project.
|
|
|
|
|
|
Paolo Nenzi (pnenzi@ieee.ing.uniroma.it)
|
|
|
|
|
|
|
|
|
|
NOTES:
|
|
------
|
|
|
|
This version builds correctly on redhat linux 6.0, and most probably
|
|
on any glibc2-based linux distribution. The executables have hardly been
|
|
tested, all I know is that they build. The main goal of this release is
|
|
to get autoconf to work.
|
|
|
|
The goal is to put all possible configurations flags into the autoconf support.
|
|
|
|
It should build on most other unices (especially POSIX ones), please report to me
|
|
if it does, or if you know how to fix it if it doesn't.
|
|
|
|
As the -Wall flag is turned on during compilation, you will notice a HUGE
|
|
amount of warnings - our first job should be to work on those to 'sanitize'
|
|
the existing code.
|
|
|
|
|
|
MAILING LISTS:
|
|
-------------
|
|
|
|
There are three mailing lists dedicated to the development of ngspice.
|
|
|
|
ngspice-users@lists.sourceforge.net: This list is the list for the users of the
|
|
ngspice simulator.
|
|
|
|
ngspice-devel@lists.sourceforge.net: ngspice development issues. Developers and
|
|
"want to be" developers should
|
|
subscribe here.
|
|
|
|
ngspice-frontend@list.sourceforge.net: issues related to development of
|
|
frontends for ngspice.
|
|
|
|
To subscribe the list(s), send a message to:
|
|
<ngspice-users-subscribe@lists.sourceforge.net>
|
|
<ngspice-devel-subscribe@lists.sourceforge.net>
|
|
<ngspice-frontend-subscribe@lists.sourceforge.net>
|
|
|
|
|
|
WEB SITE:
|
|
--------
|
|
|
|
This project is hosted on Sourceforge.
|
|
The home page is http://ngspice.sourceforge.net
|
|
|
|
Manu (emmanuel.rouat@wanadoo.fr)
|
|
Paolo (p.nenzi@ieee.org)
|
|
|
|
|