Commit Graph

3698 Commits

Author SHA1 Message Date
Francesco Lannutti 15e732dbb4 fix the list of supported devices 2023-08-16 11:14:11 +02:00
Francesco Lannutti ce18d6846f KLU Integration from scratch #4, changed files 2023-08-16 11:14:10 +02:00
Holger Vogt d90c9dd3b5 Initialize to remove VS2022 linker warnings 2023-08-13 10:01:12 +02:00
Holger Vogt b893e32d75 Reemove needless code, check for '}0',
don't do anything here if not true m=something
2023-08-12 15:11:41 +02:00
Holger Vogt 0e0c8de5ee Remove gcc compiler warning: remove needless code 2023-08-12 15:11:32 +02:00
Holger Vogt 9c2a87a469 Remove buggy if clause, add safeguards against buggy input 2023-08-12 15:11:21 +02:00
Holger Vogt 62f803dfa5 Remove gcc compiler warnings 2023-08-12 15:11:04 +02:00
Giles Atkinson 502f15522e Fix an infinite loop bug that may be seen with "stop whan a>b" or
"stop when a<>b".
2023-08-11 11:39:17 +02:00
Brian Taylor f16c0556af Add support for PSpice DLYLINE. 2023-08-11 11:39:06 +02:00
Holger Vogt 2065dee82c Fix comment on old-style .lib 2023-08-11 11:37:49 +02:00
Brian Taylor e235fda42b For d0_eff, d0_gff timing models specify the 1.0e-12 minimum Xspice delay valuesrather than defaulting to 1ns. 2023-08-11 11:37:19 +02:00
Holger Vogt d4c54123d4 Revert "Add code in ivars.c to look for a SPICE_ROOT environment variable"
This reverts commit 6b0ab44f1e.
2023-08-06 16:27:33 +02:00
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".
2023-07-31 14:29:23 +02:00
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.
2023-07-31 14:28:29 +02:00
Holger Vogt 3adfa89cfc Prevent crash when number of parameter dependencies increases beyond
limit. Raise the limit from 100 to 200.
2023-07-31 14:27:49 +02:00
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.
2023-07-31 14:27:23 +02:00
Holger Vogt fe3222a118 Add an option nginfo to enable a status report during simulation
(currently available only with MS Windows GUI version).
2023-07-31 14:26:40 +02:00
Holger Vogt c66f9faaab Remove compiler warnings (VS2022) 2023-07-31 14:26:23 +02:00
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. 2023-07-31 14:26:01 +02:00
Giles Atkinson 480e269102 Allow netlist lines to grow during parameter substitution,
removing a 25-character limit on the size of string parameters.
2023-07-31 14:25:51 +02:00
Brian Taylor 4d8b105b86 Simplify expression nesting depth. 2023-07-15 11:34:09 +02:00
Giles Atkinson a60b7f5630 Fix sluggish output of the "Reference value" progress indicator on Linux
after it switched from stderr to stdout (28a3413).  Add fflush().
2023-07-15 11:31:03 +02:00
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.
2023-07-15 11:30:48 +02:00
Giles Atkinson 1c1a53bac8 Set default colours for the button box in the X11 plot window that
match the default dark background of the plot.
2023-07-15 11:30:29 +02:00
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.
2023-07-15 11:29:32 +02:00
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.
2023-07-15 11:28:48 +02:00
Holger Vogt d3dccc68b2 Error print output consistenly only to stderr.
Replace out_printf by fprint(stderr, ...
2023-07-15 11:28:25 +02:00
Holger Vogt 4421d95379 improve comment 2023-07-15 11:27:14 +02:00
Holger Vogt 53b72a7693 Skip title line when resorting .params, .meas, .temp 2023-07-15 11:25:27 +02:00
Holger Vogt eda9cadbed The 'plot' command is not available in batch mode.
Issue a warning and ignore it.
2023-07-15 11:22:00 +02:00
Holger Vogt f5091bdc2d Make the error message a little more reasonable.
Unfortunately the current setup does not easily allow naming
the offending command.
2023-07-15 11:21:11 +02:00
Holger Vogt d46cd894cc Prevent crash if s == NULL 2023-07-15 11:20:09 +02:00
Holger Vogt 7f8e1cecab Allow ';' also at the beginning of a line. 2023-07-15 11:19:57 +02:00
Holger Vogt c1db561373 No syntax check for title line 2023-07-15 11:19:31 +02:00
Holger Vogt 3420e66705 During syntax check: v,i sources need two nodes,
and prevent crash upon buggy ac input.
2023-07-15 11:18:09 +02:00
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 {(...)}.
2023-07-15 11:17:34 +02:00
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.
2023-07-15 11:17:10 +02:00
Holger Vogt 01e8b4da84 Prevent crash upon buggy user input (missing ] or >) 2023-07-15 11:16:57 +02:00
Holger Vogt 1340002c05 Improve error message 2023-07-15 11:16:43 +02:00
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
2023-07-15 11:15:50 +02:00
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.
2023-07-15 11:15:08 +02:00
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.
2023-07-15 11:14:35 +02:00
Holger Vogt d295fe3ac6 Slightly improve error handling and warning message 2023-05-27 10:50:02 +02:00
Holger Vogt 823465ceb8 .csparam: Add some safeguarding against wrong input and crash,
allow multiple parameters in a .csparam row (like .param).
2023-05-27 10:49:53 +02:00
Holger Vogt ba7ad783a8 safeguard against crash upon buggy input 2023-05-27 10:49:07 +02:00
Holger Vogt c723e124d9 Make error message more verbose and useful 2023-05-27 10:48:57 +02:00
Holger Vogt e834c89313 Prevent a crash when number of nodes differs in subckt and X call. 2023-05-27 10:48:30 +02:00
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.
2023-05-27 10:47:27 +02:00
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.
2023-05-27 10:46:45 +02:00
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.
2023-05-27 10:46:24 +02:00