2022-10-12 17:22:28 +02:00
|
|
|
CODE ORGANIZATION
|
|
|
|
|
|
|
|
|
|
The top level directory contains several README files on
|
|
|
|
|
specific topics, info and news, compile scripts for
|
|
|
|
|
Linux, macOS, Cygwin, MINGW, configure.ac used by
|
|
|
|
|
autogen.sh to create file configure used by the "../configure" command.
|
|
|
|
|
|
|
|
|
|
"m4/" is use in the configure step.
|
|
|
|
|
|
|
|
|
|
"examples/" contains several spice input files.
|
|
|
|
|
|
|
|
|
|
"test/" contains several spice input files for 'make check' and other
|
|
|
|
|
tests
|
|
|
|
|
|
|
|
|
|
"man/" contains UNIX style manual pages (only short infos).
|
|
|
|
|
|
|
|
|
|
"visualc/" project files to enable compilation with MS Visual Studio.
|
|
|
|
|
|
|
|
|
|
"src/" and its subdirectories contain all of the C source code.
|
2023-08-11 14:12:50 +02:00
|
|
|
It contains the top level files "main.c" used by ngspice and
|
2022-10-12 17:22:28 +02:00
|
|
|
"sharedspice.c" used by ngspice as shared library.
|
|
|
|
|
There are also main files for outdated ngnutmeg, nghelp, ngmultidec,
|
|
|
|
|
ngproc2mod, and ngsconvert.
|
2023-08-11 14:12:50 +02:00
|
|
|
|
2022-10-12 17:22:28 +02:00
|
|
|
"src/ciderlib" hosts the code for the CIDER extension to ngspice, a
|
|
|
|
|
2D process simulator offering connection between process and devices
|
|
|
|
|
to be simulated by ngspice.
|
2023-08-11 14:12:50 +02:00
|
|
|
|
2022-10-12 17:22:28 +02:00
|
|
|
"src/xspice" contains the code for the XSPICE extension to ngspice, an
|
2023-08-11 14:12:50 +02:00
|
|
|
interface to analog and digital code models for true mixed signal simulation.
|
2022-10-12 17:22:28 +02:00
|
|
|
|
|
|
|
|
"src/misc" Miscellaneous utility and portability routines.
|
2023-08-11 14:12:50 +02:00
|
|
|
|
|
|
|
|
"src/include" Header files for all *.c files of ngspice.
|
2022-10-12 17:22:28 +02:00
|
|
|
|
|
|
|
|
"src/spicelib" is the device library and analysis portion of ngspice. Within
|
|
|
|
|
it are the following subdirectories:
|
|
|
|
|
devices/ All of the device specific code, with a subdir for
|
|
|
|
|
each device implementation.
|
|
|
|
|
analysis/ All of the analysis code.
|
|
|
|
|
parser/ To set up the matrix derived from the netlist.
|
2023-08-11 14:12:50 +02:00
|
|
|
|
2022-10-12 17:22:28 +02:00
|
|
|
"src/maths" contains all maths functions of ngspice with
|
|
|
|
|
ni/ Numerical algorithms (used by ckt routines).
|
|
|
|
|
sparse/ Sparse matrix package (used by ckt and ni).
|
|
|
|
|
cmaths/ Functions used in the control language
|
|
|
|
|
fft/ Fast Fourier transform function (internal or interface to fftw)
|
|
|
|
|
poly/ Interpolation functions
|
|
|
|
|
misc/ Various math support algorithms
|
|
|
|
|
deriv/ Various partial derivatives used by some device models (bjt, MOS1-9)
|
|
|
|
|
dense/ Matrix operations used by S-parameter simulation
|
2023-08-11 14:12:50 +02:00
|
|
|
|
2022-10-12 17:22:28 +02:00
|
|
|
"src/frontend" contains the code for interfacing ngspice to its input and output.
|
|
|
|
|
Files com_*.c contain the control language commands. outitf.c organizes the
|
|
|
|
|
output file structure, rawfile.c writes output files, parse.c is the control
|
|
|
|
|
language function parser. svg and postscript output are handled as well.
|
2023-08-11 14:12:50 +02:00
|
|
|
inp.c, inpcom.c and subckt.c serve the main input handling functions:
|
|
|
|
|
reading the netlist, parsing it, dealing with compatibility, expanding
|
2022-10-12 17:22:28 +02:00
|
|
|
subcircuits and preparing the internal circuit structure.
|
2023-08-11 14:12:50 +02:00
|
|
|
|
|
|
|
|
Furthermore it contains subdirs
|
2022-10-12 17:22:28 +02:00
|
|
|
help/ The windowed help system (outdated).
|
|
|
|
|
numparam/ Parser for .param and .func statements.
|
|
|
|
|
parser/ More front end -- "C shell".
|
|
|
|
|
wdisp/ MS Windows GUI
|
|
|
|
|
trannoise/ random number and noise generator
|
2023-08-11 14:12:50 +02:00
|
|
|
plotting/ plot interface to X11, gnuplot, and preparing output graphs
|
2022-10-12 17:22:28 +02:00
|
|
|
(curves and grid), interpreter for 'plot' command (plotit.c)
|
2023-08-11 14:12:50 +02:00
|
|
|
|
|
|
|
|
"src/osdi" contains the code for interfacing ngspice to the OpenVAF compiled
|
|
|
|
|
Verilog-A compact device models.
|