forked from ngspice/ngspice
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINTERNALS
71 lines (55 loc) · 3.29 KB
/
INTERNALS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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.
It contains the top level files "main.c" used by ngspice and
"sharedspice.c" used by ngspice as shared library.
There are also main files for outdated ngnutmeg, nghelp, ngmultidec,
ngproc2mod, and ngsconvert.
"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.
"src/xspice" contains the code for the XSPICE extension to ngspice, an
interface to analog and digital code models for true mixed signal simulation.
"src/misc" Miscellaneous utility and portability routines.
"src/include" Header files for all *.c files of ngspice.
"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.
"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
"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.
inp.c, inpcom.c and subckt.c serve the main input handling functions:
reading the netlist, parsing it, dealing with compatibility, expanding
subcircuits and preparing the internal circuit structure.
Furthermore it contains subdirs
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
plotting/ plot interface to X11, gnuplot, and preparing output graphs
(curves and grid), interpreter for 'plot' command (plotit.c)
"src/osdi" contains the code for interfacing ngspice to the OpenVAF compiled
Verilog-A compact device models.