Giles Atkinson
6b0ab44f1e
Add code in ivars.c to look for a SPICE_ROOT environment variable
that gives the location of the ngspice installation. That allows
binaries to be installed in a different directory to the one
compiled in. The spinit startup file is made location-independent
by passing a variable giving the location of loadable modules,
so this fixes Bug #615 -
"spinit contains arch dependent paths, but is installed as noarch DATA".
3 years ago
Giles Atkinson
84821a4cf5
Add support for including analog node changes in VCD file output,
and an option to explicitly set the VCD timestep. Correct the
output value for high-impedance nodes.
3 years ago
Holger Vogt
3adfa89cfc
Prevent crash when number of parameter dependencies increases beyond
limit. Raise the limit from 100 to 200.
3 years ago
Holger Vogt
aa10f9344e
Add variable "csnumprec" to allow setting the precision of vectors
and variables as arguments to functions listet in manual chapter 17.5.
Default is 6, as has been standard up to now.
3 years ago
Holger Vogt
fe3222a118
Add an option nginfo to enable a status report during simulation
(currently available only with MS Windows GUI version).
3 years ago
Holger Vogt
c66f9faaab
Remove compiler warnings (VS2022)
3 years ago
Brian Taylor
b79eca646b
Prevent crashes in udevices.c when malformed U* instances are present. This would happen with incorrectly written U* gates, ff, latches which do not conform to the PSpice specs. Instead, ERROR messages are output which, hopefully, will help a user to debug their subckt.
3 years ago
Giles Atkinson
480e269102
Allow netlist lines to grow during parameter substitution,
removing a 25-character limit on the size of string parameters.
3 years ago
Brian Taylor
4d8b105b86
Simplify expression nesting depth.
3 years ago
Giles Atkinson
a60b7f5630
Fix sluggish output of the "Reference value" progress indicator on Linux
after it switched from stderr to stdout (28a3413). Add fflush().
3 years ago
Giles Atkinson
ac6487932b
Make the returned status of the "shell" command available as interpreter
variable "shellstatus". Also change the default shell to /bin/sh
as csh is now rare.
3 years ago
Giles Atkinson
1c1a53bac8
Set default colours for the button box in the X11 plot window that
match the default dark background of the plot.
3 years ago
Giles Atkinson
5114d6c2f4
Add an option to the iplot command: -d sets the number of simulation
steps before the window is shown. The value can be chosen to
limit rapid resizing when starting and that is used in the PLL examples.
3 years ago
Giles Atkinson
e5a931e537
Improve commands for vector scales. "setscale" can now change
or clear the scale of an individual vector and "compose" can
explicitly create a vector from XSPICE event node history.
3 years ago
Holger Vogt
d3dccc68b2
Error print output consistenly only to stderr.
Replace out_printf by fprint(stderr, ...
3 years ago
Holger Vogt
4421d95379
improve comment
3 years ago
Holger Vogt
53b72a7693
Skip title line when resorting .params, .meas, .temp
3 years ago
Holger Vogt
eda9cadbed
The 'plot' command is not available in batch mode.
Issue a warning and ignore it.
3 years ago
Holger Vogt
f5091bdc2d
Make the error message a little more reasonable.
Unfortunately the current setup does not easily allow naming
the offending command.
3 years ago
Holger Vogt
d46cd894cc
Prevent crash if s == NULL
3 years ago
Holger Vogt
7f8e1cecab
Allow ';' also at the beginning of a line.
3 years ago
Holger Vogt
c1db561373
No syntax check for title line
3 years ago
Holger Vogt
3420e66705
During syntax check: v,i sources need two nodes,
and prevent crash upon buggy ac input.
3 years ago
Holger Vogt
29c51c0d30
Bail out if {...} or '...' are missing around RHS of the equation.
(...) may be possible, elsewhere additional {} are put around,
so we have {(...)}.
3 years ago
Holger Vogt
0ee5e3f32a
Add a control language function cvector, to create a complex vector.
Let vec1 = cvector(50)
will generate a complex vector, with the real part values
increasing from 0 to 49, the imaginary values are set to 0.
Useful in ac loops to store result data.
3 years ago
Holger Vogt
01e8b4da84
Prevent crash upon buggy user input (missing ] or >)
3 years ago
Holger Vogt
1340002c05
Improve error message
3 years ago
Holger Vogt
695c1e1bd6
Add an extra model stitching for CIDER only.
This one fills in actualLine, which is use by
parsing the CIDER model parameters in INPparseNumMod()
from inpgmod.c
3 years ago
Giles Atkinson
d31568bd83
Add parsing and translation of the FREQ form of E-source devices,
integrated with the existing parsing of AND/NAND/OR/NOR forms (inpcom.c).
For the implementation, add a new analog XSPICE code model, xfer.
Add an example to examples/sp.
3 years ago
Giles Atkinson
422a205409
Always propgate any individual scale for a vector that appears
in an expression, resolving conflicts by matching length and warning
only when making an arbitary choice. One effect of this is that it
is now possible to mix analog nodes with offset digital nodes
(an expression like dvalue+6) without a warning and get a correct plot.
3 years ago
Holger Vogt
d295fe3ac6
Slightly improve error handling and warning message
3 years ago
Holger Vogt
823465ceb8
.csparam: Add some safeguarding against wrong input and crash,
allow multiple parameters in a .csparam row (like .param).
3 years ago
Holger Vogt
ba7ad783a8
safeguard against crash upon buggy input
3 years ago
Holger Vogt
c723e124d9
Make error message more verbose and useful
3 years ago
Holger Vogt
e834c89313
Prevent a crash when number of nodes differs in subckt and X call.
3 years ago
Holger Vogt
96bebafac5
Enable history substitution of interactive commands only when variable 'histsubst' is set.
This feature is in conflict with ! (logic inversion)
in .control language logic expressions.
3 years ago
Giles Atkinson
45015f974d
Add a "-w" option to the iplot command. It sets a width for the
window (in the current scale units) so that it does not re-scale
on overflow, but instead plots recently-generated data on a fixed scale.
3 years ago
Giles Atkinson
7a5514a1ff
In graf.c change local function set() to do what you might expect,
rather than the opposite. Also fix a debug message.
3 years ago
Holger Vogt
923f7efab0
Prevent crash (seg fault), if measure statement is incomplete
3 years ago
Holger Vogt
66a4b2226e
.libsave: don't save the command itself, improve messaging
3 years ago
Holger Vogt
006a66b055
.libsave: Print to file the expanded library read by .lib
3 years ago
Holger Vogt
c6efc6bc9c
Send 'refernce value' to stdout, not to stderr
3 years ago
Holger Vogt
50a9daf24a
Line concatenation: use dstring instead of tprintf:
Parsing time of Skywater libs reduced by more than 35%.
3 years ago
dwarning
924dc10368
get the right place for variable declaration
3 years ago
dwarning
a4f6a777c0
few cleanings to prevent compiler warnings
3 years ago
Brian Taylor
6b85bcb805
Allocate compound gate connectors where needed.
3 years ago
Brian Taylor
de34a90bb4
Create correct translations of degenerate compound gates with $d_hi/$d_lo inputs.
3 years ago
Holger Vogt
797795e7c0
Shift all compatibility handlinmg from inpcom.c into its own source files
inpcompat.c and inpcompat.h
3 years ago
Brian Taylor
14a403e193
Use ~ on the input of a tristate buffer for INV3, and avoid creating an extra inverter. For ff/latch use ~ on set/reset and jkff clock inputs to avoid creating extra inverters.
3 years ago
Giles Atkinson
5aa48cab0b
Do not generate netlist lines that use non-existent libraries.
To support that, give global scope to function inp_pathresolve()
in inpcom.c. Update internal documentation (long comment).
3 years ago