1 changed files with 0 additions and 121 deletions
-
121TODO
@ -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. |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue