Commit Graph

3700 Commits

Author SHA1 Message Date
Holger Vogt ca4ddf6bbc Fix bug 642 by replacing strstr() by search_plain_identifier() 2023-08-17 17:18:18 +02:00
Holger Vogt 4432987919 Initialize to remove VS2022 linker warnings 2023-08-13 11:32:38 +02:00
Holger Vogt 0db8d3b956 Reemove needless code, check for '}0',
don't do anything here if not true m=something
2023-08-12 14:55:48 +02:00
Holger Vogt 2f369d5435 Remove gcc compiler warning: remove needless code 2023-08-12 14:19:29 +02:00
Holger Vogt c33bcafb34 Remove buggy if clause, add safeguards against buggy input 2023-08-12 13:55:51 +02:00
Holger Vogt 550f563e0d Remove gcc compiler warnings 2023-08-12 12:30:47 +02:00
Giles Atkinson c02de13e10 Fix an infinite loop bug that may be seen with "stop whan a>b" or
"stop when a<>b".
2023-08-08 11:59:51 +01:00
Brian Taylor 7840547408 Add support for PSpice DLYLINE. 2023-08-06 12:25:25 +02:00
Holger Vogt aecf5cdcba Fix comment on old-style .lib 2023-08-04 20:11:39 +02:00
Brian Taylor ea685d3c64 For d0_eff, d0_gff timing models specify the 1.0e-12 minimum Xspice delay valuesrather than defaulting to 1ns. 2023-08-04 11:29:20 +02:00
Holger Vogt 4246b31126 Revert "Marcel Hendrix's fix for Bug #324 -"
This reverts commit d3a8634afe.
2023-07-30 16:01:15 +02:00
Giles Atkinson 54b8171c53 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-29 09:37:57 +01:00
Giles Atkinson d3a8634afe Marcel Hendrix's fix for Bug #324 -
Difference between file and line input for '];'
2023-07-29 09:30:51 +01:00
Giles Atkinson e9386155a6 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-29 09:16:01 +01:00
Holger Vogt c9548c10c9 Prevent crash when number of parameter dependencies increases beyond
limit. Raise the limit from 100 to 200.
2023-07-25 15:18:02 +02:00
Holger Vogt d1187e9a34 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-24 14:18:05 +02:00
Holger Vogt 7027a49663 Add an option nginfo to enable a status report during simulation
(currently available only with MS Windows GUI version).
2023-07-22 16:03:34 +02:00
Holger Vogt f46f481942 Remove compiler warnings (VS2022) 2023-07-22 10:30:37 +02:00
Brian Taylor 752c4936c0 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-22 10:19:27 +02:00
Giles Atkinson 3f3c4dc6aa Allow netlist lines to grow during parameter substitution,
removing a 25-character limit on the size of string parameters.
2023-07-21 08:47:10 +02:00
Brian Taylor 50b9a55392 Simplify expression nesting depth. 2023-07-11 09:48:16 +02:00
Giles Atkinson d4c4ac7937 Fix sluggish output of the "Reference value" progress indicator on Linux
after it switched from stderr to stdout (28a3413).  Add fflush().
2023-06-24 17:24:21 +02:00
Giles Atkinson b62c9b1ef3 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-06-24 17:24:15 +02:00
Giles Atkinson e0cc583669 Set default colours for the button box in the X11 plot window that
match the default dark background of the plot.
2023-06-24 17:24:09 +02:00
Giles Atkinson 1a056f935c 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-06-20 20:01:41 +02:00
Giles Atkinson 8ce190e7d6 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-06-20 20:01:31 +02:00
Holger Vogt 64cbf224b5 Error print output consistenly only to stderr.
Replace out_printf by fprint(stderr, ...
2023-06-20 19:56:55 +02:00
Holger Vogt 5761b71ecd improve comment 2023-06-13 20:06:27 +02:00
Holger Vogt 216e5cb58b Skip title line when resorting .params, .meas, .temp 2023-06-13 19:57:19 +02:00
Holger Vogt bda4a83dc6 Revert "Skip the title line when re-sorting parameters"
This reverts commit 72496da4c9.
2023-06-12 23:20:46 +02:00
Holger Vogt 630e800bd6 The 'plot' command is not available in batch mode.
Issue a warning and ignore it.
2023-06-09 16:31:04 +02:00
Holger Vogt d76e7362e7 Make the error message a little more reasonable.
Unfortunately the current setup does not easily allow naming
the offending command.
2023-06-09 16:09:57 +02:00
Holger Vogt 72496da4c9 Skip the title line when re-sorting parameters
and removing .meas statement.
2023-06-09 14:44:40 +02:00
Holger Vogt bf1dfa0127 Prevent crash if s == NULL 2023-06-07 16:25:24 +02:00
Holger Vogt 5e73be130a Allow ';' also at the beginning of a line. 2023-06-04 14:53:38 +02:00
Holger Vogt a99caf504f No syntax check for title line 2023-06-04 14:36:27 +02:00
Holger Vogt 6dc09e6592 During syntax check: v,i sources need two nodes,
and prevent crash upon buggy ac input.
2023-06-04 14:01:44 +02:00
Holger Vogt 1ddb1f58b4 Bail out if {...} or '...' are missing around RHS of the equation.
(...) may be possible, elsewhere additional {} are put around,
so we have {(...)}.
2023-06-04 10:36:21 +02:00
Holger Vogt 3a535f19db 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-06-04 09:46:13 +02:00
Holger Vogt 10e86d72d3 Prevent crash upon buggy user input (missing ] or >) 2023-06-03 17:09:10 +02:00
Holger Vogt a03369fc12 Improve error message 2023-06-03 15:48:06 +02:00
Holger Vogt 981c63f1ab 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-06-02 15:31:28 +02:00
Giles Atkinson e61db1d2cd 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-05-31 16:04:51 +02:00
Giles Atkinson 94da54bcea 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-05-29 09:47:27 +01:00
Holger Vogt 61f7188ef0 Slightly improve error handling and warning message 2023-05-22 15:18:39 +02:00
Holger Vogt 3071cdd2d5 .csparam: Add some safeguarding against wrong input and crash,
allow multiple parameters in a .csparam row (like .param).
2023-05-22 14:46:17 +02:00
Holger Vogt b271b6d9e3 safeguard against crash upon buggy input 2023-05-17 09:32:23 +02:00
Holger Vogt 2206956bc1 Make error message more verbose and useful 2023-05-13 23:43:44 +02:00
Holger Vogt b97c273805 Prevent a crash when number of nodes differs in subckt and X call. 2023-05-12 17:00:08 +02:00
Holger Vogt 5047a19112 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-07 15:48:06 +02:00