new simulator: specs


To ng-spice <ng-spice-devel@ieee.ing.uniroma1.it>
From Manu Rouat <emmanuel.rouat@wanadoo.fr>
Date Fri, 03 Dec 1999 20:41:00 -0500
Delivered-To mailing list ng-spice-devel@ieee.ing.uniroma1.it
Mailing-List contact ng-spice-devel-help@ieee.ing.uniroma1.it; run by ezmlm
Organization la Guilde
Sender rouat@war.wanadoo.com

OK, supposing that we want to start to code a spice-compatible
simulator from scratch up, here are a few guidelines that
I propose:

- license: GPL, but allow linking to non-GPL models (a la linux modules)
 --> this would allow us to reuse some spice code for complicated models 
perhaps.
but technically it could be difficult (is there a C coding expert among us?)

- use the GSL (GNU Scientific Library) for maths (despite the fact it is in an
unfinished state it seems very usable)

- code in ANSI-C

- spice compatible netlist format (but NOT necessarily for simulation options)

- use the GNU readline library for the interactive front-end (gives us 
emacs-like keyboard shortcuts etc)

- docs written using LyX (or texinfo? LyX is WYSYWIG which makes it
easier for contributions I think)

- on-line documentation should be just 'reminder' like ,eg: 'help VCCS'
gives: 'VCCS: Voltage Controled Current Source - syntax: ....' and
no more - more extensive docs available in HTML or postscript form

- autoconf/automake support

- make addition of models really easy (the interface must be well thought out,
I don't think that a compatibility with spice is mandatory, unless it turns
out that the spice interface is well thought out ;-)

- coding standards: don't enforce them (but I do like the coding style of
Ales Hvezda of the gEDA project - I think it is BSD style ?)

- use the good old 'modified nodal approach' for the matrix

- let's not be afraid of 'reinventing the wheel' - it doesn't matter if we use
techniques that are 20 years old to start with 

- the tool to view the output waves should be separate (dump nutmeg - Stephen 
Tells
gwave program could be a good candidate)

- several ouput waves formats (so that users can use the ones they already 
have!)


- devel tree: really like the one in the rework tar.gz:


`----docs
`----man
 |      `----man1
`----src
 |      `----analysis
 |      `----circuit
 |      `----devices
 |       |      `----asrc
 |       |      `----bjt
 |       |      `----bsim1
 |       |      `----bsim2
 |      `----frontend
 |      `----help
 |      `----include
 |      `----maths
 |      `----misc
 |      `----parser
`----tests

or similar....

- name of the simulator? all simulators that have 'spice' in them are really
descendants of berkeley spice, if we build from scratch up it is not the case
for us ---> find an entirely different name?


What do you think ?



manu


Partial thread listing: