* TODO: Removed.
This commit is contained in:
parent
b2c1e70401
commit
385994e1e1
121
TODO
121
TODO
|
|
@ -1,121 +0,0 @@
|
||||||
Long term vision
|
|
||||||
================
|
|
||||||
|
|
||||||
Remove distinction between subcircuits and models as much as possible.
|
|
||||||
With a Spice netlist compiler (to be written), the subcircuit can be
|
|
||||||
translated into a compiled version, dynamically loadable into the
|
|
||||||
simulation core.
|
|
||||||
|
|
||||||
Using the approach outlined above, we can cut down on maintenance for
|
|
||||||
the bsim[123], bjt, and other transistor models. For inspiration,
|
|
||||||
look at *.model files in ACS (Al's Circuit Simulator).
|
|
||||||
|
|
||||||
|
|
||||||
List of Things To Do
|
|
||||||
====================
|
|
||||||
|
|
||||||
|
|
||||||
Standards conformance
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
Add proper copyright headers to every source, header, documentation
|
|
||||||
and other files.
|
|
||||||
|
|
||||||
Fix all compiler warnings.
|
|
||||||
|
|
||||||
Remove smktemp() in favor of tmpfile() or other ANSI C equivalent;
|
|
||||||
Note: different symantics!
|
|
||||||
|
|
||||||
Write a asprintf() replacement for systems that don't have it
|
|
||||||
available. Also check how this function interacts with the garbage
|
|
||||||
collector.
|
|
||||||
|
|
||||||
Prefix all functions in the spice library with spice_*.
|
|
||||||
|
|
||||||
|
|
||||||
Usability issues
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Plug all memory leaks; use debauch (http://quorum.tamu.edu/jon/gnu/)
|
|
||||||
or another memory checker to find them. Could also try a garbage
|
|
||||||
collector (http://www.hpl.hp.com/personal/Hans_Boehm/gc/) to
|
|
||||||
circumvent memory leaks.
|
|
||||||
|
|
||||||
Substitute help interface by call to webbrowser or info reader and get
|
|
||||||
rid of all help-related code.
|
|
||||||
|
|
||||||
|
|
||||||
Refactorings
|
|
||||||
------------
|
|
||||||
|
|
||||||
Netlist parsing. The circuit directory currrently has definitions for
|
|
||||||
parsing one model line per device. Get this generalized into a
|
|
||||||
structure that codifies the changes between the devices. At a later
|
|
||||||
stage, distribute the structure into the devices directories. The
|
|
||||||
generic parser remains in the spice library.
|
|
||||||
|
|
||||||
Separate ngspice and nutmeg; i.e., no more SIMULATOR define. ngspice
|
|
||||||
should probably only contain the batch processor. nutmeg would have
|
|
||||||
the complete frontend.
|
|
||||||
|
|
||||||
All frontend commands can now be found in the frontend directory.
|
|
||||||
Move frontend helper functions into frontend directory as well.
|
|
||||||
Not all files that define commands, start with com_*; fix that.
|
|
||||||
|
|
||||||
Make devices dynamically loadable. Perhaps use framework from glib
|
|
||||||
(http://developer.gnome.org/doc/API/glib/index.html).
|
|
||||||
|
|
||||||
Integrate bsim3, bsim3v1, bsim3v2 to use a single codebase instead of
|
|
||||||
three only slighty differing implementations. This also cuts down
|
|
||||||
compilation time.
|
|
||||||
|
|
||||||
Code for determing memory limits and resource usage, now use
|
|
||||||
setjmp()/longjmp(), replace this by rlimit() on systems that have it.
|
|
||||||
|
|
||||||
Program frontend in Guile (http://www.gnu.org/software/guile ),
|
|
||||||
Python (http://www.python.org ), or SWIG (http://www.swig.org). This
|
|
||||||
shows where the spicelib API needs refining.
|
|
||||||
|
|
||||||
|
|
||||||
Testability
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Verify C code device models by building equivalent netlists and
|
|
||||||
comparing simulation results. Equivalent netlists also help document
|
|
||||||
the models currently in Spice.
|
|
||||||
|
|
||||||
Use benchmarking suite to profile Spice. Use gcov to measure coverage
|
|
||||||
(and to find out where more tests are needed.) Make profiling support
|
|
||||||
a configure switch.
|
|
||||||
|
|
||||||
Devise a way to compare outputs from different circuit simulators to
|
|
||||||
verify the results of the simulations.
|
|
||||||
|
|
||||||
Add small tests for all functions in the complex library in
|
|
||||||
src/maths/cmaths.
|
|
||||||
|
|
||||||
Add tests for all functions in the sparse matrix library in
|
|
||||||
src/maths/sparse.
|
|
||||||
|
|
||||||
Add tests for all functions in the polynomial library in
|
|
||||||
src/maths/poly.
|
|
||||||
|
|
||||||
Add tests for all functions in the derivative library in
|
|
||||||
src/maths/deriv.
|
|
||||||
|
|
||||||
Add more circuit tests into the tests directory.
|
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Make a document that contains a high level architectural overview of
|
|
||||||
spice.
|
|
||||||
|
|
||||||
Convert ngspice.texi further to texinfo format. [PARTIAL]
|
|
||||||
|
|
||||||
Distribute devices documentation into the devices tree. This makes it
|
|
||||||
easier for developers to update documentation in concert with code.
|
|
||||||
|
|
||||||
Update manual pages for spice and nutmeg. Perhaps generate them with
|
|
||||||
c2man or some other documentation generation utility.
|
|
||||||
Loading…
Reference in New Issue