ngspice/notes/internal

99 lines
3.5 KiB
Plaintext

Internal Changes from 3e2
The device structure has changed: The state counter in all device
structures has been moved to correspond to GENstates in the
GENinstance structure.
Also, a new per-device-type function has been added: XXXunsetup,
which deallocates nodes and other resources created in the
XXXsetup function. ("XXX" is the device abbreviation.)
Internal Changes from 3d2
FILE NAMES:
Of the changes to spice3 between 3d2 and 3e1, the
the most obvious is the new filenames. All filesnames
have been converted to lowercase and are at most eight
characters plus an optional dot and three character extension.
This change was made to accomodate MS-DOS and other operating
systems which limit the maximum file name length.
ORGANIZATION
The top level directory contains the installation "readme" file
and a "makedefs" files used by the "build" command.
"src/" contains all of the C source code. This used to be named
"spice3" or "spice3d2" in previous releases.
"src/lib" is the library or "toolkit" portion of Spice3. Within
it are the following subdirectories:
ckt/ All of the analysis code.
ni/ Numerical algorithms (used by ckt routines).
sparse/ Sparse matrix package (used by ckt and ni).
misc/ Miscellaneous utility and portability routines.
dev/ All of the device specific code, with a subdir for
each device implementation.
inp/ Input parsing; could be much smaller.
fte/ The front end. Really bad.
cp/ More front end -- "C shell".
hlp/ The windowed help system.
mfb/ Terminal independant graphics package.
mfbpc/ MFB interface for the IBM PC.
"src/bin" contains the source for all executable programs (the
location for "main( )"). "main.c" is used by spice, nutmeg,
bspice, and cspice (the latter two for MS-DOS). The function
of "main.c" is altered by defining the pre-processor symbols
SIMULATOR (for either spice, bspice, or cspice), BATCH for
bspice, and BATCH and SPICE2 for cspice (no special defines
give nutmeg). Each variant of the simulator uses "conf.c" (or
"bconf.c" or "cconf.c", or "nconf.c" for nutmeg), which is
automatically generated from "config.c". "config.c" is a
template used to select devices and analyses. "tune.c"
("tunepc.c") contains the compiled in pathnames.
"examples/" contains several spice input files.
"lib/" contains standard data files for spice, such as the help
files and MFB capability files.
"man/" contains UNIX style manual pages (ala "man(1)").
"util/" contains utility scripts, such as "build" for running the
recursive "make" and "delall.bat" for deleting the distribution on
MS-DOS systems.
All "Makefile"s have been replaced with "makedefs" (and optionally
"depend" and "makeops"). "makedefs" is combined with other
make definition files with the "build" script.
SOURCE LEVEL CHANGES
(Added features are listed in the "README" file).
DEVICES: The interface to devices has, once again, changed.
The change is small from 3d2. Table size values in the device
information struction are now pointers to integers containing
the table sizes. Per-analyses functions have been surrounded
with "#ifdef AN_xx"/"#else"/"#endif" lines. Note that the
"itf.h" files are stored only in the "include/" subdirectory.
Adding devices to the master list is done in the file
"src/bin/config.c", instead of "FTE/SPIinit.c".
SPARSE MATRIX PACKAGE: the sparse matrix package in Spice3e1
and later is a more efficient implementation than in earlier releases.
The interface is the same.