From 3a1560e4ee554053f7b6f7e93e390969c5524d14 Mon Sep 17 00:00:00 2001 From: pnenzi Date: Sun, 2 Nov 2003 22:35:53 +0000 Subject: [PATCH] Partial FAQ update. --- FAQ | 256 +++++++++++++++++++++++++++++++----------------------------- 1 file changed, 134 insertions(+), 122 deletions(-) diff --git a/FAQ b/FAQ index 589ce6547..b77c20e59 100644 --- a/FAQ +++ b/FAQ @@ -1,10 +1,10 @@ - Ngspice F.A.Q.Version 1.0 - Maintened by Paolo Nenzi - Last update: 05/12/2001 + Ngspice F.A.Q.Version 1.2 + Maintained by Paolo Nenzi + 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,23 +45,24 @@ ______________________________________________________________________ - 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 software, it may not be the fastest or the most reliable but it's @@ -72,119 +74,129 @@ "social" side, spice3 it's well introduced in the academic environment. + + 1.3 What is the project's goal? - 11..33.. WWhhaatt iiss tthhee pprroojjeecctt''ss ggooaall?? + 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: + + + + 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. + + + + 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. + + + + 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: + + http://sourceforge.net/projects/sparse + + 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. + + + + 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: + + 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. 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..44.. WWhhaatt yyoouu aarree ggooiinngg ttoo ddoo?? + 1.5 Legal issues - - We are going to develop a circuit simulation program. The line of - development follows two parallel paths: - - 1. EEnnhhaanncceemmeennttss aanndd bbuugg--ffiixxiinngg ooff tthhee oorriiggiinnaall ssppiiccee33ff55 ccooddee.. - - 2. DDeevveellppppmmeenntt ooff aa nneeww GGPPLL''eedd ssiimmuullaattoorr.. - - 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. - - 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. - - 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. - - 2. DDooccuummeennttaattiioonn:: 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. - - - 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. + 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??