faq


To NG-Spice <ng-spice@ieee.ing.uniroma1.it>
From Daniele Foci <mc3438@mclink.it>
Date Mon, 30 Aug 1999 00:03:05 +0200
Delivered-To mailing list ng-spice@ieee.ing.uniroma1.it
Mailing-List contact ng-spice-help@ieee.ing.uniroma1.it; run by ezmlm
Reply-To ng-spice@ieee.ing.uniroma1.it

Ok, this is the first release of the faq. Paolo, I mixed some of your mail to 
make
the introduction to the project, tell me if there are errors.
Comments are welcome. :-)

-- 
Daniele Foci      Email: mc3438@mclink.it        "Real man don't use GUI!"
Rome (Italy)      ICQ:   12086976                (C) Bo Arnklit

Fingerprint = 52 61 D1 32 D6 AC CC D9  9D FD DF 3A 10 EA 4F F5
                               NG-Spice F.A.Q.
                         Frequently Asked Questions
                                (and Answers)

           Maintened by Daniele Foci <d.foci@ieee.ing.uniroma1.it>
                         Last update:  29/08/1999


CONTENTS

1. INTRODUCTION AND GENERAL INFORMATION
     1.1 What is NG-Spice?
     1.2 Why resurrecting Berkeley's Spice?
     1.3 What are the project's goals?
     1.4 Legal issues
     1.5 What mailing lists exist for NG-Spice?
     1.6 Are the mailing lists archived anywhere?
     1.7 What newsgroups exist for NG-Spice?
     1.8 Where can I get a copy of NG-Spice?
     1.9 Where should I look on the World Wide Web for NG-Spice stuff?
2. DEVELOPMENT
     2.1 What is the current version?
     2.2 What are the latest features in the current release?
     2.3 What does it look like ?
     2.4 Who are the authors of ng-spice ?
     2.5 How can I report a bug/request for a feature?
     2.6 How can I join the development?
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?
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
     4.1 Feedback
     4.2 Formats in which this FAQ is available
     4.3 Authorship and acknowledgements
     4.4 Disclaimer and Copyright

-------------------------------------------------------------------------------

1. INTRODUCTION AND GENERAL INFORMATION

1.1 What is NG-Spice?

  It stands for "Next Generation Spice"; it's a project that aims to improve
  the capabilities of the spice3f5 circuit simulator from the Berkeley CAD
  Group.

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

1.3 What are the project's goals?

  The project is divided in two main phases, in the first one the original
  code will undergo a "cleaning" process, and in the second improvements
  will be inserted and tested.
  In the cleaning phase, all the configuration code will be put under autoconf
  (thus eliminating the old configuration interface), most of the #defines for
  non ANSI C compilers removed and the support for non-UNIX or obsolete
  operating systems discarded. In this phase will be also closed already known
  bugs.
  In the second phase will be added new features which should include:

  1) The framework (or Graphic User Interface):
     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 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 only to be integrated in a common EDA environment.

  2) Documentation:
     Commercial simulators have very good manuals with tutorials, models
     equation explained, example of use, suggestions, etc. This line of
     development has the task of providing the final spice user with an orderd
     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) Improvements to the Spice code:
     This is the hard part. The target of this direction is to make NG-Spice a
     commercial grade simulator. This means improving it's speed, its
     numerical robustness, include the latest models available and some other
     important features:

      * Numerical Algorithms:
        - More stable algorithms for integration (as Runge-Kutta Methods).
        - Better convergence in Operating Point Calculation replacing the
          Newton-Raphson algorithm, a modified version of Fixed-Point
          Homotopy.

      * 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 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).
        - Code Level Modeling: let users write their devices in C and use
                               them in the simulator.
        - Improving device: include additional parameters to some devices as
                            HDIF, LDIF, etc.

      * New types of analysis, oriented to circuits syntesis and optimization:
        - Network analysis: given four nodes, extract z,y,s and the other
                            double bipole paramters.
        - Monte Carlo analysis: statistical simulation based on device
                                tolerances.
        - Worst Case analysis: find the worst case of operation of a given
                               circuit based on device tolerances.
        - Parametric analysis: repeat an analysis when one or more parameters
                               assumes different values.

      * Faster handling of sparse matrices.

      * Possibility to mesure circuit pameters, like the delay between two
        nodes, etc.

      * ... whatever else can be judged useful.


1.4 Legal issues

  [not written yet: GPL vs. Berkeley]

1.5 What mailing lists exist for NG-Spice?

  Only one. Send an empty message to <ng-spice-help@ieee.ing.uniroma1.it> to
  have information on subscription.

1.6 Is the mailing lists archived anywhere?

  Yes, the list is archived. Send an empty message to
  <ng-spice-help@ieee.ing.uniroma1.it> to have information on how to retrieve
  old messages.

1.7 What newsgroups exist for NG-Spice?

  None. Sorry.

1.8 Where can I get a copy of NG-Spice?

  You can download NG-Spice from:
  ftp://ieee.ing.uniroma1.it/pub/ng-spice/distribution/

1.9 Where should I look on the World Wide Web for NG-Spice stuff?

  There is a WWW page for NG-Spice. The URL is:
  http://


2. DEVELOPMENT

2.1 What is the current version?

  0.2 (released on 08/08/1999)

2.2 What are the latest features in the current release?

  * New features:
    - Autoconf interface.
    - BSIM 3.2.2 Model.
    - Temperature and resistance sweeps.

  * Bug fixes:
    - Altermod command connected to the parse.
    - Some memory leaks closed.
    - Spice3f5 fixes available on the net.

2.3 What does it look like ?

  This is a command line utility, no screenshots!

2.4 Who are the authors of ng-spice ?

  The development is open to anyone who wish to contribute.
  People who contributed are:

  * Paolo Nenzi
  * Serban-Mihai Popescu
  * Emmanuel Rouat
  * Michael Widlok

2.5 How can I report a bug/request for a feature?

  Write in the mailing list.

2.6 How can I join the development?

  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 NG-Spice from our CVS. It might be that your feature
  has already been implemented.
  To access the anonymous CVS do the following:

  1) Install cvs on your machine (version 1.9.x - 1.10.x are just fine).
  2) Set one of the following environment variables:
  For bash:
  export CVSROOT=:pserver:anonymous@ieee.ing.uniroma1.it:/var/services/cvsroot
  For csh/tcsh:
  setenv CVSROOT :pserver:anonymous@ieee.ing.uniroma1.it:/var/services/cvsroot
  3) Login to the cvs server by running:
     $>  cvs login
     The password is 'guest' (without the quotes of course). You will only
     have to do this once.
  4) Checkout the appropriate files executing the following commands:
     $>  mkdir somedirectory
     $>  cd somedirectory
     $>  cvs co ng-spice
  5) Wait for the cvs logout.


3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS

3.1 What systems are supported?

  This is the updated list:

  Hardware           O.S.               Compiler       Functional?
  ----------------   ------------------ -------------- -----------
  i386               Linux (RedHat)     gcc            yes
  i386               Linux (Debian)     gcc            yes
  i386               Linux (SuSE)       gcc            yes
  IBM Risc 6000      AiX                lcc            no
  SUN                Solaris 7          ?              no

3.2 I get errors when I try to compile the source code, why?

  [not written yet]

3.3 This document didn't answer my question. Where else can I look for
    an answer?

  Read old messages from the mailing list archive, search the web site or read
  the docs. Upgrade to the latest version of NG-Spice, many problems are fixed
  in the new versions. If you still can't find an answer, post your question
  to the mailing list.


4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS

4.1 Feedback

  Send your comments about this F.A.Q. to <d.foci@ieee.ing.uniroma1.it>.
  Send your comments about NG-Spice to <ng-spice@ieee.ing.uniroma1.it>.

4.2 Formats in which this FAQ is available

  This document is available only in ASCII format in the NG-Spice source
  package.

4.3 Authorship and acknowledgements

  Parts of the questions and answers are originate from Paolo Nenzi.

4.4 Disclaimer and Copyright

  This document is provided as is. The information in it is not warranted to
  be correct: you use it at your own risk.

Partial thread listing: