Holger Vogt
b0f2ab8764
Fix bug 637
...
Prevent crash when external current source is used.
2023-07-15 11:27:43 +02:00
Holger Vogt
90d8f7f34f
Prevent crash if EXTERNAL voltage source is used
...
Fixes
98763c0ad ("Note: ix: dc value used for op instead of transient time=0 value Former warning message or note only issued when dc value and value at transient time=0 differ.", 2022-09-20)
2023-07-15 11:27:32 +02:00
Holger Vogt
4421d95379
improve comment
2023-07-15 11:27:14 +02:00
Holger Vogt
a28784d6d7
Prevent crash if *line == NULL
2023-07-15 11:26:52 +02:00
Holger Vogt
53b72a7693
Skip title line when resorting .params, .meas, .temp
2023-07-15 11:25:27 +02:00
Giles Atkinson
762b131bb3
Fix Bug #635 - "Starting ngspice with HOME env variable unset causes segfault".
2023-07-15 11:22:13 +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
0e6b785728
Remove the error message when a simulation has been started via the .control section.
2023-07-15 11:21:40 +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
c7ebb7aabb
Error message up to now was strictly for command line interactive use only.
...
Improve error message when parsing .ac lines.
2023-07-15 11:20:41 +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
0c1f114dea
add comment
2023-07-15 11:19:03 +02:00
Holger Vogt
cb9cc7140d
Prevent crash if no or not enough coeffs are given.
...
r is then probably not the repeat coefficient.
2023-07-15 11:18:36 +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
fc169fe23f
CIDER: Plug some memory leak
2023-07-15 11:16:22 +02:00
Holger Vogt
67b2ddbad5
CIDER: Plug some memory leaks by adding to TWOdestroy()
2023-07-15 11:16:13 +02:00
Holger Vogt
3bb9cd738f
CIDER: Plug small memory leaks in INPparseNumMod()
2023-07-15 11:16:01 +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
1fdf7dac51
Fix Bug #623 - "Parser warning for voltage source".
...
Do not warn when a single-element vector lacks parentheses.
2023-07-15 11:14:57 +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
Giles Atkinson
eeb912228a
When creating a plot vector from XSPICE event history, add a
...
final point at the end of the vector, so that a plotted line
does not end at the last event, leaving an odd spike.
2023-07-15 11:13:19 +02:00
Giles Atkinson
2db6b529f2
Fix Bug #630 - "pwl if r=last time, simulation never ends".
...
Allowing a PWL repeat to start at the last time-point makes no sense.
2023-07-15 11:13:05 +02:00
Giles Atkinson
f4f2f41940
Fix another error in 9c71db3a72.
2023-07-15 11:12:52 +02:00
Giles Atkinson
9099a922fd
Apply a patch from Aleksey Morozov to fix a bug that he identified
...
and reproduced. It is the same as Bug #331 -
"XSpice skips digital output point" except that it applies to the
instance queue, not the event queue.
2023-07-15 11:12:31 +02:00
Holger Vogt
ee7bcac256
Reduce excessive use of TREALLOC
2023-07-15 11:12:10 +02:00
Brian Taylor
50b9a55392
Simplify expression nesting depth.
2023-07-11 09:48:16 +02:00
Brian Taylor
1e58692e6d
The channel data needs to be freed for some 2D Cider devices. This shows up with some of the examples/cider/parallel circuits.
2023-07-11 09:48:10 +02:00
Holger Vogt
c6edbe44db
Move extern declaration to the top, out of any function.
...
Thus remove VC2022 compiler warnings.
2023-07-04 12:07:41 +02:00
Brian Taylor
f3b83fd4e4
Tidy up sp_shutdown with Cider.
2023-07-04 11:46:40 +02:00
Brian Taylor
b63f6e7905
When Cider models are present, a normal batch mode sp_shutdown (for example, ngspice -b cmosinv.cir) will call com_quit(NULL). This cleans up so that valgrind will find no leaks in Cider devices after sp_shutdown. To disable this feature, set the environment variable CIDER_COM_QUIT="OFF". Even though it really does not matter that Cider memory is cleared just before exit, it makes it cleaner for valgrind checks.
2023-07-04 11:46:35 +02:00
Holger Vogt
486b74f728
Prevent a crash if p==NULL (due to buggy input)
2023-07-04 11:45:27 +02:00
dwarning
4c4a9c78ec
ifft: in case input array is smaller then output array - fill in the rest with zero to prevent uninitialzed plot variables
2023-07-03 10:07:32 +02:00
dwarning
e83fae11bc
same array size for in- and output in inverse fft function from fftw3
2023-07-02 16:16:51 +02:00
Brian Taylor
40a89b16e6
Fix the Cider memory leaks from setupContacts. TWOdestroy needed to free the contact nodes.
2023-06-30 11:03:53 +02:00
Brian Taylor
92dcb76251
Add DEVmodDelete functions to reduce memoory leaks in Cider models. The model memory was not freed during remcirc or quit. In the future, some of the code duplication could be refactored. The cmosinv.cir is now down to just 1 memory leak.
2023-06-30 11:03:42 +02:00
Brian Taylor
cbda9ab7b5
The CONTACT statement does not apply to 1D devices.
2023-06-25 21:25:26 +02:00
Brian Taylor
42a8bafd10
Fix some more memory leaks in the CIDER 1D and 2D destroy functions.
2023-06-25 21:24:57 +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
Brian Taylor
0f15c1ab96
Add missing FREE to reduce some of the Cider memory leaks.
2023-06-20 22:57:34 +02:00
Giles Atkinson
22b5a859d0
Further fix for PWL bugs introduced by 9c71db3 (Fix for Bug #607 ) and
...
partially fixed by 79c69e0 and 9c75367 . This also fixes Bug #468 -
"Bugs in src/spicelib/devices/vsrc/vsrcacct.c for PWL source."
2023-06-20 20:01:51 +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
3fd7bd2183
Prevent crash when ControlledExit* is not initialized
...
in ngspice shared library.
2023-06-18 10:32:01 +02:00
Holger Vogt
8d9695d7d6
Fix bug 637
...
Prevent crash when external current source is used.
2023-06-18 10:29:43 +02:00
Holger Vogt
82796a6fa6
Prevent crash if EXTERNAL voltage source is used
...
Fixes
98763c0ad ("Note: ix: dc value used for op instead of transient time=0 value Former warning message or note only issued when dc value and value at transient time=0 differ.", 2022-09-20)
2023-06-14 15:34:45 +02:00
Holger Vogt
5761b71ecd
improve comment
2023-06-13 20:06:27 +02:00
Holger Vogt
a244e023c4
Prevent crash if *line == NULL
2023-06-13 20:05:49 +02:00
Holger Vogt
818bd19798
Revert "Prevent crash if *line == NULL"
...
This reverts commit b72f9516ac .
2023-06-13 20:02:27 +02:00
Holger Vogt
216e5cb58b
Skip title line when resorting .params, .meas, .temp
2023-06-13 19:57:19 +02:00
Holger Vogt
b72f9516ac
Prevent crash if *line == NULL
2023-06-13 19:56:07 +02:00
Giles Atkinson
2740d9a79b
Fix Bug #635 - "Starting ngspice with HOME env variable unset causes segfault".
2023-06-13 19:54:49 +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
28f641b318
Remove the error message when a simulation has been started via the .control section.
2023-06-09 16:10:37 +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
cdf66fac6b
Error message up to now was strictly for command line interactive use only.
...
Improve error message when parsing .ac lines.
2023-06-09 14:45:43 +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
1ff095321c
add comment
2023-06-04 14:36:03 +02:00
Holger Vogt
525d221325
Prevent crash if no or not enough coeffs are given.
...
r is then probably not the repeat coefficient.
2023-06-04 14:23:09 +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
7de5fd276e
CIDER: Plug some memory leak
2023-06-02 22:30:27 +02:00
Holger Vogt
27173c9622
CIDER: Plug some memory leaks by adding to TWOdestroy()
2023-06-02 19:44:34 +02:00
Holger Vogt
5ba0177f21
CIDER: Plug small memory leaks in INPparseNumMod()
2023-06-02 19:43:47 +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
37453db34d
Fix Bug #623 - "Parser warning for voltage source".
...
Do not warn when a single-element vector lacks parentheses.
2023-05-29 09:47:44 +01: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
Giles Atkinson
d55143edca
When creating a plot vector from XSPICE event history, add a
...
final point at the end of the vector, so that a plotted line
does not end at the last event, leaving an odd spike.
2023-05-29 09:47:03 +01:00
Giles Atkinson
0616965a67
Fix Bug #630 - "pwl if r=last time, simulation never ends".
...
Allowing a PWL repeat to start at the last time-point makes no sense.
2023-05-29 09:19:18 +01:00
Giles Atkinson
9c75367cfb
Fix another error in 9c71db3a72.
2023-05-29 09:19:18 +01:00
Giles Atkinson
6c420525d0
Apply a patch from Aleksey Morozov to fix a bug that he identified
...
and reproduced. It is the same as Bug #331 -
"XSpice skips digital output point" except that it applies to the
instance queue, not the event queue.
2023-05-29 09:19:18 +01:00
Holger Vogt
1cd15e382e
Reduce excessive use of TREALLOC
2023-05-27 16:44:30 +02:00
Holger Vogt
a56b8b2190
Revert "Reduce excessive use of TREALLOC"
...
This reverts commit 6c64d463c8 .
2023-05-27 16:17:23 +02:00
Holger Vogt
fd24e5af7e
re-formatting the code
2023-05-27 10:50:14 +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
b24c613ce6
Safeguard against bad arguments (no crash upon NULL)
2023-05-27 10:49:19 +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
9b3146b1fb
Correct the warning message
2023-05-27 10:48:41 +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
8c9602574e
Improve error messages
2023-05-27 10:48:15 +02:00
Holger Vogt
6ea2882c3b
Plug a memory leak
2023-05-27 10:48:00 +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
Pascal Kuthe
e5d1885e39
make accessible
2023-05-27 10:47:11 +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
Giles Atkinson
1a97e1097f
Fix error in previous fix for Bug #607 -
...
"DC Source with Pulse stops pulsing half way through simulation".
Non-periodic PWL waveforms reverted to zero on termination.
2023-05-27 10:46:16 +02:00
Holger Vogt
923f7efab0
Prevent crash (seg fault), if measure statement is incomplete
2023-05-27 10:46:01 +02:00
Holger Vogt
66a4b2226e
.libsave: don't save the command itself, improve messaging
2023-05-27 10:44:56 +02:00
Holger Vogt
006a66b055
.libsave: Print to file the expanded library read by .lib
2023-05-27 10:44:04 +02:00
Holger Vogt
b6e9ba20b9
Add another error qualifier to decribe the current policy
...
when a doubling token exists (or is created) in the netlist.
2023-05-27 10:43:40 +02:00
Holger Vogt
c6efc6bc9c
Send 'refernce value' to stdout, not to stderr
2023-05-27 10:43:16 +02:00
Giles Atkinson
ad5bb9eb8d
Fix Bug #607 -
...
"DC Source with Pulse stops pulsing half way through simulation".
Do not require breakpoints to be hit almost exactly before scheduling
the next one. That may cause the next breakpoint to be lost.
2023-05-27 10:43:01 +02:00
Holger Vogt
50a9daf24a
Line concatenation: use dstring instead of tprintf:
...
Parsing time of Skywater libs reduced by more than 35%.
2023-05-27 10:42:47 +02:00
Holger Vogt
972ff885d0
Suppress (rare) crashes during setiup
...
if device or model lists are missing.
2023-05-27 10:42:27 +02:00
Holger Vogt
6c9994ea9f
Remove linker warnings in MSVC
2023-05-27 10:42:12 +02:00
Holger Vogt
0b73d95f13
Formatting
2023-05-27 10:41:56 +02:00
Holger Vogt
962d9d2998
Avoid user induced buffer overflows.
...
Check against NULL pointer.
2023-05-27 10:41:49 +02:00
Holger Vogt
d2177bbd69
Prevent reading from NULL
2023-05-27 10:41:40 +02:00
dwarning
924dc10368
get the right place for variable declaration
2023-05-27 10:41:29 +02:00
dwarning
a4f6a777c0
few cleanings to prevent compiler warnings
2023-05-27 10:41:21 +02:00
dwarning
5c32a3fb9c
prevent unitialized variables
2023-05-27 10:41:12 +02:00
Brian Taylor
6b85bcb805
Allocate compound gate connectors where needed.
2023-05-27 10:41:04 +02:00
Brian Taylor
de34a90bb4
Create correct translations of degenerate compound gates with $d_hi/$d_lo inputs.
2023-05-27 10:40:51 +02:00
Holger Vogt
a39052cd14
Make voltage ramp smooth around 0 and around end of ramp.
2023-05-27 10:40:42 +02:00
Holger Vogt
678a6582f6
A preliminary fix to reduce the amount of missing pulses considerably.
...
Probably not yet the final solution.
2023-05-27 10:40:32 +02:00
Holger Vogt
4231ad3f5f
Prevent reading from NULL when user input is something like .ic=v
2023-05-27 10:40:24 +02:00
dwarning
02109587ee
not to forget the overlap capacitances in AC
2023-05-27 10:40:08 +02:00
dwarning
56b5041266
selfheating only with rth>0
2023-05-27 10:39:48 +02:00
dwarning
2fff3e2bc0
use true vector size for memcpy
2023-05-27 10:39:39 +02:00
dwarning
de09636d1a
general update: fix temperature update, improve performance
2023-05-27 10:39:33 +02:00
dwarning
f33e899fda
white spaces
2023-05-27 10:39:25 +02:00
dwarning
d053fbda93
vbic: correct soa-check warning for C-S branch
2023-05-27 10:39:14 +02:00
Holger Vogt
797795e7c0
Shift all compatibility handlinmg from inpcom.c into its own source files
...
inpcompat.c and inpcompat.h
2023-05-27 10:39:05 +02:00
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.
2023-05-27 10:38:40 +02:00
dwarning
b5d5cfd543
vbic: selfheating switch selft has priority, but keep compatibility
2023-05-27 10:38:25 +02:00
Holger Vogt
6c64d463c8
Reduce excessive use of TREALLOC
2023-05-26 13:31:08 +02:00
Holger Vogt
5f39fd80fb
re-formatting the code
2023-05-26 12:16:55 +02: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
edf2c625e1
Safeguard against bad arguments (no crash upon NULL)
2023-05-17 10:08:38 +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
73e3e7f952
Correct the warning message
2023-05-12 20:02:31 +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
8b8200df88
Improve error messages
2023-05-12 16:59:27 +02:00
Holger Vogt
1f58cd7618
Plug a memory leak
2023-05-08 20:18:55 +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
Pascal Kuthe
48668c7d6e
make accessible
2023-05-07 15:07:08 +02:00
Giles Atkinson
fdb8ee3806
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-02 13:13:02 +01:00
Giles Atkinson
81e07e8ece
In graf.c change local function set() to do what you might expect,
...
rather than the opposite. Also fix a debug message.
2023-05-02 12:52:45 +01:00
Giles Atkinson
79c69e0644
Fix error in previous fix for Bug #607 -
...
"DC Source with Pulse stops pulsing half way through simulation".
Non-periodic PWL waveforms reverted to zero on termination.
2023-04-26 21:38:25 +01:00
Holger Vogt
675b9e6fa2
Prevent crash (seg fault), if measure statement is incomplete
2023-04-26 17:06:39 +02:00
Holger Vogt
dfb53459dc
.libsave: don't save the command itself, improve messaging
2023-04-26 11:26:11 +02:00
Holger Vogt
ff9ff26613
.libsave: Print to file the expanded library read by .lib
2023-04-26 11:26:04 +02:00
Holger Vogt
81012de4d0
Add another error qualifier to decribe the current policy
...
when a doubling token exists (or is created) in the netlist.
2023-04-25 14:37:00 +02:00
Holger Vogt
28a3413dd2
Send 'refernce value' to stdout, not to stderr
2023-04-25 14:34:51 +02:00
Giles Atkinson
9c71db3a72
Fix Bug #607 -
...
"DC Source with Pulse stops pulsing half way through simulation".
Do not require breakpoints to be hit almost exactly before scheduling
the next one. That may cause the next breakpoint to be lost.
2023-04-22 14:56:01 +02:00
Holger Vogt
5bd0346b64
Line concatenation: use dstring instead of tprintf:
...
Parsing time of Skywater libs reduced by more than 35%.
2023-04-22 14:55:23 +02:00
Holger Vogt
f5279c0ef5
Suppress (rare) crashes during setiup
...
if device or model lists are missing.
2023-04-18 10:48:08 +02:00
Holger Vogt
ee238b1632
Remove linker warnings in MSVC
2023-04-17 15:03:53 +02:00
Holger Vogt
9bc9d94244
Formatting
2023-04-17 15:00:28 +02:00
Holger Vogt
c179b01734
Avoid user induced buffer overflows.
...
Check against NULL pointer.
2023-04-17 13:53:37 +02:00
Holger Vogt
200cff4bdc
Prevent reading from NULL
2023-04-17 11:54:25 +02:00
dwarning
7fc90a332a
get the right place for variable declaration
2023-04-15 17:42:20 +02:00
dwarning
4fed4bafa1
few cleanings to prevent compiler warnings
2023-04-15 16:57:33 +02:00
dwarning
77afc678dd
prevent unitialized variables
2023-04-15 13:50:05 +02:00
Brian Taylor
601d4bf57d
Allocate compound gate connectors where needed.
2023-04-15 11:35:39 +02:00
Brian Taylor
9f2192e711
Create correct translations of degenerate compound gates with $d_hi/$d_lo inputs.
2023-04-15 11:35:24 +02:00
Holger Vogt
4e51598562
Make voltage ramp smooth around 0 and around end of ramp.
2023-04-15 11:10:25 +02:00
Holger Vogt
c8a7f07ac1
A preliminary fix to reduce the amount of missing pulses considerably.
...
Probably not yet the final solution.
2023-04-15 10:52:59 +02:00
Holger Vogt
3d0fab9c55
Prevent reading from NULL when user input is something like .ic=v
2023-04-12 13:40:05 +02:00
dwarning
add9b1d77f
not to forget the overlap capacitances in AC
2023-04-10 11:36:20 +02:00
dwarning
af1963fc39
selfheating only with rth>0
2023-04-08 20:44:19 +02:00
dwarning
db9711daf4
use true vector size for memcpy
2023-04-08 17:29:25 +02:00
dwarning
c6a66c4c5e
general update: fix temperature update, improve performance
2023-04-08 17:10:04 +02:00
dwarning
03d5f5f1e1
white spaces
2023-04-08 17:00:02 +02:00
Holger Vogt
b9ac15acf2
Merge branch 'pre-master' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master
2023-04-08 15:25:16 +02:00
Holger Vogt
217e0577b8
Shift all compatibility handlinmg from inpcom.c into its own source files
...
inpcompat.c and inpcompat.h
2023-04-08 15:24:00 +02:00
dwarning
51802b8df2
vbic: correct soa-check warning for C-S branch
2023-04-03 11:30:16 +02:00
Brian Taylor
a531d8428c
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.
2023-04-02 23:08:52 +02:00
Holger Vogt
d4f49f1273
Merge branch 'pre-master' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master
2023-04-02 22:57:55 +02:00
dwarning
a3bc6ae744
vbic: selfheating switch selft has priority, but keep compatibility
2023-04-02 17:22:52 +02:00
Holger Vogt
d53acbed8e
Add noise capability to XSPICE code models
...
Coded according to acan., AC analysis
MIF_NOI is not yet supported by any code model, so
MIF_AC is used (code models behave like in ac mode,
they are noiseless.
2023-04-02 15:06:28 +02:00
Holger Vogt
3c41ab1190
Formatting with MSVC2022
2023-04-02 15:06:23 +02:00
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).
2023-04-01 13:56:12 +02:00
Holger Vogt
8f8f7ff8ab
Command 'listing r': No extra formatting, truncation etc.
...
of netlist lines when printing to file or console.
2023-04-01 13:50:17 +02:00
Holger Vogt
95c4c0f587
Add inertial.h to the distributable headers
2023-03-25 15:36:15 +01:00
Holger Vogt
311ddeac0d
Prepare for ngspice-40
2023-03-24 22:27:12 +01:00
Holger Vogt
062785319a
When '.probe alli' is set, disable auto bridging and set a flag
2023-03-24 22:10:18 +01:00
Holger Vogt
ce38a768b5
typo
2023-03-24 22:10:12 +01:00
Holger Vogt
c30af55491
Add operating point information to SOA check,
...
using vbefwd, vbcfwd, and vsubfwd
Operating point heck is enabled by .options warn=2
2023-03-24 22:10:07 +01:00
Holger Vogt
443567dbaf
Add SOA-check for collector-substrate diode (model parameter bvsub)
2023-03-24 22:09:55 +01:00
Holger Vogt
ff77c583d7
Add model parameter selft, to switch on self-heating, default: off (selft=0)
2023-03-24 22:09:42 +01:00
Giles Atkinson
5197200fb3
Fix crash reported by Brian Taylor. If "source" is used after
...
analysis, the circuit is both deleted and destroyed. Beware of
double frees.
2023-03-22 14:30:18 +01:00
Giles Atkinson
98333ee89a
Fix a memory leak reported by Brian Taylor that was introduced
...
by commit 4d8e17487b .
2023-03-22 14:30:11 +01:00
Holger Vogt
82de3db8ad
VBIC: Add bvbe, bvbc, and bvce as redundant SOA parameters
2023-03-22 14:30:01 +01:00
Holger Vogt
f121c433a7
Check for buggy diode instance line, avoid crash
2023-03-22 14:29:48 +01:00
Holger Vogt
2ce18ab184
Add VDMOS default junction cap IRF540 IRF9540
2023-03-22 14:29:37 +01:00
Holger Vogt
2a647f8462
Set default VDMOS model parameters to resemble IRF540, 9540
2023-03-22 14:29:22 +01:00
Giles Atkinson
e25f8bd522
Add inertial delay to missed d_xnor and tidy blank lines in d_xor.
2023-03-22 14:29:03 +01:00
Giles Atkinson
cecce5163e
Inertial delay for remaining simple gates and buffers:
...
nand or xor open_c open_e, but not tristate.
2023-03-22 14:28:51 +01:00
Giles Atkinson
db38d4ad54
Correct timing of transitions to UNKNOWN.
2023-03-22 14:28:37 +01:00
Giles Atkinson
240a2b9406
Add missed file inertial.h.
2023-03-22 14:28:23 +01:00
Giles Atkinson
4623a04615
Interim version of inertial delay for tristate buffer.
...
This does not handle three-way or mixed transitions.
2023-03-22 14:28:15 +01:00
Giles Atkinson
e3b4df6a51
First group of digital code models with improved implementation
...
of inertial delay: buffer, inverter, and, nor. Also adds
utility function cm_is_inertial(().
2023-03-22 14:27:54 +01:00
Giles Atkinson
2643e3b17f
New code-model library functions cm_schedule_output() and cm_getvar().
...
To be used in the inertial delay code for digital code models.
2023-03-22 14:27:35 +01:00
Giles Atkinson
c1659a64c3
Change output event setup in evtload.c so that, when making an event call
...
to a code model, there is no longer a reference to the value of the event
at the head of the free list. That allows all such free lists (with the
same data type) to be combined, probably improving performance.
This is in preparation for full implementation of inertial delay for
digital nodes.
2023-03-22 14:27:19 +01:00
Giles Atkinson
2d0561f386
Allow string-valued parameters to XSPICE device models with no default.
...
The code model then sees the value NULL. Needed for the "family"
parameter on logic models, used by automatic bridge insertion.
2023-03-22 14:27:06 +01:00
Brian Taylor
8c69ada5b5
The logicexp example in the PSpice ref. manual has a name with a '+' character (LCN+4). Update lexer_scan.
2023-03-22 14:26:43 +01:00
Brian Taylor
40a540a2ff
Add inertial_delay=true to .model statements generated when U* instances in PSpice library subckts are translated to Xspice. Any other Xspice A* digital instances might have different inertial_delay settings in their models, so potentially there could be a mixture of delay types. For example, if a user wishes to model a DLYLINE using a d_buffer with inertial_delay=false and equal rise/fall delays.
2023-03-22 14:26:18 +01:00
Brian Taylor
164db58404
The intent now is to rely on a variable setting in .spiceinit to control the use of inertial delay XSPICE digital models. This will apply to U* instances in subcircuits which are translated to XSPICE.
2023-03-22 14:25:51 +01:00
Holger Vogt
86951501a7
Add eprvcd to the commands which set node names to lower case,
...
but not the file names after >
Does not work for manually entered eprvcd commands, where the user
has to provide lower case node names.
2023-03-19 15:24:27 +01:00
Holger Vogt
3632a6b4ae
We need to translate from degree to rad
2023-03-18 22:32:25 +01:00
Holger Vogt
2a6052517b
Fix prvious commit: allow access to all vector elements of cc
2023-03-18 22:32:19 +01:00
Holger Vogt
68156fa62c
Complex number handling other than MSVC
2023-03-18 22:32:07 +01:00
Holger Vogt
71571a1432
Add function atanh to .control section
2023-03-18 22:31:48 +01:00
Holger Vogt
3996d27b29
Make code a little more efficient
2023-03-18 22:31:33 +01:00
Holger Vogt
7af6c4a661
Re-enable single line parameter lists, separated by commas
2023-03-18 22:31:27 +01:00
dwarning
f34ff7e63c
Revert "implement typedpnjlim as optional limiter for verilog-a models"
...
This reverts commit f73d3b20a0 .
2023-03-18 22:31:04 +01:00
Holger Vogt
63d86f5af8
Prevent a crash in strchr
...
Reported by KiCad Sentry
2023-03-18 14:37:59 +01:00
Holger Vogt
e4202ea181
The tc for R, L, C may include an expression
...
like tc={expression} or tc={expression}, 1.3u or
tc={expression}, {expression2}
2023-03-18 14:37:53 +01:00
Holger Vogt
d8505f0069
Make error message more verbose by a hint to the line (fragment).
2023-03-18 14:37:47 +01:00
R. Timothy Edwards
c12296182c
The code in src/frontend/subckt.c has a fixed-size structure called table at the top with a size set to N_GLOBAL_NODES = 1005. If the number of items passed in formal and actual exceeds 1005, then ngspice exits immediately with an error.
...
This patch lets table be reallocated on the fly as needed to accommodate the number of subcircuit arguments, instead of being a fixed value.
2023-03-18 14:37:40 +01:00
Holger Vogt
e4601c16ee
Not a warning but an error, stopping the simulation
2023-03-18 14:37:33 +01:00
Holger Vogt
f32f3ac8cd
Improve previous commit: A bad .model line leads to a breakup
...
of the simulation.
2023-03-18 14:37:26 +01:00
Holger Vogt
c61acefef7
Prevent crash when a bad .model line is given, like
...
.model
.model xxx
2023-03-18 14:37:19 +01:00
Holger Vogt
247562c096
Update copyright notice
2023-03-18 14:37:08 +01:00
Holger Vogt
bcec3cb5e3
Updating links to ngspice web pages
2023-03-18 14:37:02 +01:00
Holger Vogt
4cc63494db
Improve error message
...
Typo
2023-03-18 14:36:55 +01:00
Brian Taylor
4111aaf110
When logicexp has a ugate timing model other than d0_gate, use its delays for an inverter or buffer.
2023-03-18 14:36:45 +01:00
Brian Taylor
a6b2773c90
For a ugate timing model, when tphlXX/tplhXX is not found, set the fall/rise delay to zero (1.0e-12).
2023-03-18 14:36:35 +01:00
Brian Taylor
0e5a5a62ac
74F550 and 74F551 have only fall delays on the inverters. Use the fall delay for both rise and fall.
2023-03-18 14:36:23 +01:00
Brian Taylor
3a76a1ef52
Prepare for inertial_delay model parameter.
2023-03-18 14:36:17 +01:00
Brian Taylor
4b30113f60
Check current_subckt is set when printing TRANS_OUT.
2023-03-18 14:36:00 +01:00
Giles Atkinson
ae6375c519
Prevent a crash when "portnum" is used in a voltage source without "z0".
2023-03-18 14:35:51 +01:00
Holger Vogt
8915d42241
Prevent crash during .probe p(...) when no subcircuits are given.
2023-03-18 14:35:33 +01:00
Holger Vogt
5ee7a0ad2d
prevent crash when defect .model line is given
...
(no model name or no model type)
2023-03-18 14:35:11 +01:00
Holger Vogt
d2fb3fb16b
Prevent memory leak.
...
Remove use controls.
Safeguard against NULL.
2023-03-18 14:34:57 +01:00
Giles Atkinson
79fcb5d4bd
Fix plotting bug reported by Robert Turnbull: ngspice-devel 2023-02-10.
2023-03-18 14:34:50 +01:00
Markus Mueller
0caf1aa815
(fix) CALC_OP during transient analysis in OSDI interface
2023-03-18 14:34:37 +01:00
Holger Vogt
d4ee9af2e6
We are developing towards ngspice-40
2023-03-18 14:34:27 +01:00
Giles Atkinson
2233e2f825
Fix Bug #624 - "Destroy All Fails with an Open Plot Window" for X11.
...
Move XftDrawDestroy() call to a point where the window still exists.
2023-03-18 14:34:20 +01:00
Holger Vogt
f83c89cce7
When path is NULL, we don't need to free it.
2023-03-18 14:33:59 +01:00
Holger Vogt
75f9451702
Fix bug 624 also for MS Windows
...
by moving DestroyGraph() from WM_CLOSE to RemoveWindow()
2023-03-18 14:33:51 +01:00
Markus Mueller
bd30bd4e85
fix memory leak more rigorously
2023-03-18 14:33:44 +01:00
Markus Mueller
d495333578
fix small memory leak in OSDI interface
2023-03-18 14:33:34 +01:00
Holger Vogt
da77fad749
In the very rare case of pPivot being NULL, prevent a crsh
...
by reordering the matrix.
2023-03-18 14:33:25 +01:00
Giles Atkinson
d9b52eb3e1
Fix a bug reported by Thomas Hoffmann in ngspice-users discussion,
...
2023-02-18. Incorrect tests were used to detect a crossing in the
first two data samples.
2023-03-18 14:33:13 +01:00
Giles Atkinson
06aa693852
A new fix for Bug #331 : "XSpice skips digital output point".
...
The problem was caused by removing an output queue from the "modified"
list when it had been modified by processing one of its events.
2023-03-18 14:33:02 +01:00
Giles Atkinson
7457a2684b
Revert "Fixes bug #331"
...
This reverts commit 6d9876229c , because
it was found to break examples/xspice/various/xspice_c3.cir
(see discussion in bug report for February 2023) and an alternative
fix is available.
2023-03-18 14:32:53 +01:00
Giles Atkinson
dbb5219dc7
Fix a crash reported by Thomas Hoffmann when using the "TARG AT=xxxx"
...
variant of "measure", General Form 1.
2023-03-18 14:32:46 +01:00
Brian Taylor
8dd16feee4
Use dstrings where fixed size char buffers should not have been used.
2023-03-18 14:32:31 +01:00
Brian Taylor
3365fd4309
Remove dead code.
2023-03-18 14:32:19 +01:00
Holger Vogt
50173ac617
Enable potential calls to tprint() for debugging
2023-03-18 14:32:04 +01:00
dwarning
845dfbd830
diode recombination current emission coefficient default to 2
2023-03-18 14:31:53 +01:00
dwarning
45e6d319f3
partly revert last commit: only real input vector get special scaling for dc component
2023-03-18 14:31:31 +01:00
dwarning
bccaee4821
correct fft dc scaling bug #620
2023-03-18 14:31:24 +01:00
dwarning
7ca305804d
ret variable only used for openMP enabled
2023-03-18 14:31:17 +01:00
Holger Vogt
9c6fe3f8e4
Definitely exclude A devices from power probing (and others with less than 2 pins).
2023-03-18 14:31:05 +01:00
Holger Vogt
5924ae2dfb
bug report 619 by Hanspeter Niederstrasser
...
remove double inclusion of stdlib.h
Correction of commit 9e432838c ("Patch by Robert Turnbull: remove warning messages", 2023-02-05)
2023-03-18 14:30:56 +01:00
Holger Vogt
5cb5d218c9
Remove the obsolete RETSIGTYPE, replace by void
2023-03-18 14:30:29 +01:00
Holger Vogt
ff9c98f597
Patch 112 by Robert Turnbull
...
Remove compiler warning.
2023-03-18 14:30:15 +01:00
Holger Vogt
3ff9643f49
Add a scale factor 'a' (atto, 1e-18)
2023-03-18 14:30:03 +01:00
holger
f9ed3fd080
Patch by Robert Turnbull: remove warning messages
2023-02-05 11:25:42 +01:00
Holger Vogt
4309bad14d
Set the recounter to 0 upon every exit from function inp_get_param_level
2023-02-03 18:50:55 +01:00
dwarning
f73d3b20a0
implement typedpnjlim as optional limiter for verilog-a models
2023-02-03 12:57:53 +01:00
Pascal Kuthe
8063e56fdf
osdi: fix sigfault when using aliasparam
2023-02-03 12:07:11 +01:00
Holger Vogt
33a3557910
Safeguard against NULL pointers
2023-02-03 11:44:57 +01:00
Holger Vogt
712ed8ac77
Safeguard against stack overflow, when wrongly introduce a circular
...
parameter dependency
2023-02-03 11:33:36 +01:00
Holger Vogt
20711c1c25
Safeguard against NULL pointers
2023-02-01 22:35:01 +01:00
Brian Taylor
56d0c72924
Add port directions when logicexp or pindly are present.
2023-02-01 17:39:37 +01:00
Brian Taylor
9c9301eca8
Remove delay ifdefs.
2023-02-01 17:38:28 +01:00
Brian Taylor
f674b64264
Remove dead code from previous commit.
2023-02-01 17:37:36 +01:00
Brian Taylor
f570b04d6c
For unspecified gate delays (logic and tristate gates), which PSpice would consider as zero, set the rise and fall delays to 1.e-12s (the minimum for Xspice). For dff, jkff, dlatch, and srlatch use the Xspice default 1.0ns for rise and fall delays. If the ngspice variable (ps_port_directions & 2) is true, write the translated subckt to stdout, with TRANS_OUT prefix, for debugging purposes. The user could edit and replace the translated subckt if desired.
2023-02-01 17:36:36 +01:00
Holger Vogt
26cf1a7a57
max_align_t is used to examine the largest alignment requirement,
...
and it is expected to check the alignment value via alignof, not sizeof.
Otherwise, __attribute__((aligned)) can complain as required alignment
being invalid, e.g. on s390x.
Patch provided by Mamoru Tasaka, Fedora
2023-02-01 13:10:53 +01:00
Holger Vogt
3598a0d0c1
enable compiling of shared lib without osdi interface
2023-01-30 16:52:14 +01:00
holger
b3676bb763
enable make dist
2023-01-30 13:09:15 +01:00
Holger Vogt
2e2b74c188
In the ngspice shared library the fcn ivers is called
...
with a NULL argument. The fix safeguards against argv0
being NULL.
In this case Spice_Exec_Path is set to NULL, it is
safeguarded against NULL when being used.
2023-01-30 10:58:50 +01:00
Holger Vogt
b68f2617c7
Preliminary bug-617 fix:
...
Don't set temperature to a step beyond the sweep boundaries.
2023-01-29 17:05:56 +01:00
Holger Vogt
6ef94cb9f2
Prevent from endless loop
2023-01-28 17:01:03 +01:00
Holger Vogt
6da2659026
Remove the debug printout
2023-01-27 16:44:54 +01:00
Holger Vogt
4b8d575122
Add a user definable variable enable_noisy_r (for .spiceinit)
...
to enable noise calculation for all behavioral resistors.
May locally be switched off by instance parameter noisy=0
If enable_noisy_r is not set, noise simulation
may locally be enabled by instance parameter noisy=1.
2023-01-27 16:12:42 +01:00
Holger Vogt
167c708e69
Add searchpath for *.osdi relative to ngspice executable
2023-01-27 16:10:28 +01:00
Holger Vogt
65cd01f3c5
fix comment
2023-01-27 16:09:51 +01:00
Holger Vogt
802ab2a2c5
Do not try to load *.osdi automatically
2023-01-27 16:09:38 +01:00
Holger Vogt
be6bd990db
Error message to stderr
2023-01-27 16:09:19 +01:00
Holger Vogt
b9eef23eed
Update the example structure for OSDI/OpenVAF:
...
all compiled models into lib/ngspice
spinit updated to load the models via command 'osdi'
local calls with 'pre_osdi' commanted out.
2023-01-27 16:08:17 +01:00
Holger Vogt
71002aa42f
Prepare for ngspice-39
2023-01-24 15:49:42 +01:00
dwarning
33a2637530
correct header entry
2023-01-24 15:17:14 +01:00
dwarning
9c26206a68
bsim4 version update from 4.8.1 to 4.8.2
2023-01-24 15:16:55 +01:00
Pascal Kuthe
d0c35512ab
properly abort for invalid OSDI paramters
2023-01-23 12:04:10 +01:00
Holger Vogt
653db022ea
better comment
2023-01-20 15:08:26 +01:00
Holger Vogt
3260492987
Enhance the search path for osdi files: when not found rel. to
...
inputdir, search rel. to current working directory.
2023-01-20 15:08:14 +01:00
Holger Vogt
1280e199a3
Add boolean variables as flags when XSPICE and/or OSDI are enabled
2023-01-20 15:07:57 +01:00
Holger Vogt
49b7cb85db
Add a shunt resistor of 1e15 Ohms to any X (subcircuit call) line
...
when the node name contain 'unconnected' and .probe alli is called.
2023-01-15 13:38:15 +01:00
Holger Vogt
02789b2c42
The modulo function a % n should accept a==0.
...
The fix adds this to the control section function parser. The numparam
parser already has this feature. n==0 is rejected as usual.
2023-01-15 13:37:57 +01:00
Brian Taylor
dcfe4e7134
ERROR messages should be printed to stderr.
2023-01-15 13:37:42 +01:00
Brian Taylor
a76f8d5149
Fix some comments.
2023-01-09 16:33:25 +01:00
Francesco Lannutti
167ff74422
enable compiling without XSPICE on specific OSs
2023-01-09 16:32:54 +01:00
Francesco Lannutti
036775efa5
OSDI: fix const declaration, unused variables
2023-01-09 16:32:30 +01:00
Holger Vogt
31b0b640de
For memcpy in PREDICTOR
2023-01-09 16:32:16 +01:00