Go to file
arno d7ad0ee10c * AUTHORS TODO: Small updates.
* src/devices/dev.c src/devices/dev.h: Small updates.

	* src/devices/README: Short description of the purpose of the
	devices directory.

	* src/analysis/cktaccpt.c src/analysis/cktcrte.c
	src/analysis/cktinit.c: Moved these files into src/devices.

	* src/analysis/dctran.c: Updates to ease the move.

	* src/analysis/Makefile.am src/devices/Makefile.am: Updates

	* src/Makefile.am: Library loading reordered.

	* src/main.c: Small updates.

	* src/devices/devsup/devsup.c: Moved this file into src/devices.

	* src/devices/devsup/.cvsignore
	src/devices/devsup/Makefile.am: Superfluous files, removed

	* configure.in: Removed src/devices/devsup/Makefile.
2000-06-17 22:54:26 +00:00
contrib Initial revision 2000-04-27 20:03:57 +00:00
doc Added scale parameter to resistor model. Updated documentation and tests 2000-06-04 11:37:29 +00:00
man * man/man1/nutmeg.1 man/man1/spice.1 src/multidec.c 2000-05-03 20:01:30 +00:00
notes Initial revision 2000-04-27 20:03:57 +00:00
src * AUTHORS TODO: Small updates. 2000-06-17 22:54:26 +00:00
tests * tests/polezero/Makefile.am tests/polezero/filt_bridge_t.cir: 2000-06-17 22:47:14 +00:00
.cvsignore * .cvsignore: Help CVS ignore generated files. 2000-05-01 18:20:45 +00:00
ANALYSES Initial revision 2000-04-27 20:03:57 +00:00
AUTHORS * AUTHORS TODO: Small updates. 2000-06-17 22:54:26 +00:00
COPYING Initial revision 2000-04-27 20:03:57 +00:00
ChangeLog src/frontend/doplot.c: refactored into the following files: 2000-06-16 19:04:15 +00:00
DEVICES Updated to reflect change in the resistor code 2000-06-04 11:42:06 +00:00
FAQ Initial revision 2000-04-27 20:03:57 +00:00
INSTALL Initial revision 2000-04-27 20:03:57 +00:00
Makefile.am Initial revision 2000-04-27 20:03:57 +00:00
NEWS Initial revision 2000-04-27 20:03:57 +00:00
README Initial revision 2000-04-27 20:03:57 +00:00
TODO * AUTHORS TODO: Small updates. 2000-06-17 22:54:26 +00:00
acconfig.h Initial revision 2000-04-27 20:03:57 +00:00
autogen.sh Initial revision 2000-04-27 20:03:57 +00:00
configure.in * AUTHORS TODO: Small updates. 2000-06-17 22:54:26 +00:00

README

README for NGSPICE
------------------

This long message describes what NG-SPICE may become in the (near ?)
future. I used a question mark because, as you will read, most of the
features of ng-spice 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 simulator
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 weel introduced in the
academic environment.

 
** What does NG-SPICE mean ?

It stands for Next Generation Spice but that's not the official name of
the projest. This projects still lacks a name. NG-SPICE is a temporary
name.  


** What will NG-SPICE 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. Th target of
   this direction is to make ng-spice 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 analisys: given four nodes, extract z,y,s and the other
     double bipole paramters.  
     
     Monte Carlo analisys: statistical simulation based on device
     tolerances.

     Worst Case analisys: find the worst case of operation of a given 
     circuit based on device tolerances.

     Parametric analisys: 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 device.
     
     Dynamically loading of device: 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).  

     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. (Serban, can you explain better).

   - Numerical Algs - 
     Integration: include (if necessary) more stable algorithms for
     integration. Runge-Kutta Methods ?
     
     Linearization:
     Are there better algorithms for nonlinear equations the the Newton
     raphson ?

  - Sparse Matrix - 
    Faster handling of sparse matrices.

  
  - 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. 

ng-spice@ieee.ing.uniroma1.it: This list is the list for the users of the
                               ng-spice simulator. 

ng-spice-devel@ieee.ing.uniroma1.it: ng-spice development issues.      

ng-spice-frontends@ieee.ing.uniroma1.it: issues related to development of
                                         frontends for ng-spice.

To subscribe the list(s), send a message to:
   <ng-spice-subscribe@ieee.ing.uniroma1.it>
   <ng-spice-devel-subscribe@ieee.ing.uniroma1.it>
   <ng-spice-frontends-subscribe@ieee.ing.uniroma1.it>


WEB SITE:
--------

This project is hosted on the IEEE Central & South Italy Section Server.
The home page is http://ieee.ing.uniroma1.it/ngspice

Manu (emmanuel.rouat@wanadoo.fr)
Paolo (p.nenzi@ieee.org)