Commit Graph

3961 Commits

Author SHA1 Message Date
Holger Vogt d13cd984f4 Special treatment while spiltting multiple .param lines, if .param is a .func 2026-03-20 10:35:32 +01:00
Holger Vogt 7474cd70d0 Ignore .hdl and .biaswarn commands. 2026-03-20 10:34:45 +01:00
Holger Vogt 84f87aeafd Improve error message by adding the sourcing netlist line 2026-03-20 10:31:34 +01:00
Holger Vogt 81d3812db0 Add a user-settable variable measureprec to set the number of digits
when printing the measure outputs.
Internally this is a global variable measure_precision.
Enable all measure commands to recognize measure_precision when
printing an output.
Default value is 5 (yielding 6 digits after .?).
2026-03-20 10:28:28 +01:00
Holger Vogt 9ac5bda207 After an ac simulation, a tran measurement causes a segfault.
A check prevents this issue.
2026-02-03 22:38:56 +01:00
Holger Vogt afb17cb6c7 New analogue and digital device models from TI contain
the token GND in their subcircuit. Up to now ngspice has
declared GND as global and replaced it by 0.

Now, if PS is selected as compat mode, GND is not
declared as global, and is not replaced inside of a subcircuit.
2026-02-03 14:25:09 +01:00
Holger Vogt b25ff08307 Moving window filtering with function 'newvec = mtimeavg(vec)'
Window of fixed time width given by 'set mtimeavgwindow=400u'
Length and scale of newvec resembles the original vetor vec.
Large vec and large mtimeavgwindow take their time.
OpenMP is used if available.
2026-02-03 14:23:32 +01:00
Holger Vogt 84ce2b4084 Exclude B voltage source, whan '.probe alli' is used.
It already gets a bxx#branch for current measurement.
2026-02-03 14:23:22 +01:00
dwarning 23eafe9978 remove redundant definition and unused variable 2026-02-03 14:22:57 +01:00
Holger Vogt cd6ca5e86a re-enable maling old app ngsconvert
ngnutmeg is still defect
2026-02-03 14:22:21 +01:00
Holger Vogt 8737839f41 Add a function m3avg(vector) for filtering of trap ringing.
Moving average with D(n) = (C(n-1)/2 + C(n) + C(n+1)/2)/2
2026-02-03 14:20:08 +01:00
Holger Vogt fe55cbe69f Enable optional voltage based truncation error correction.
This is selectable as 'option newtrunc' (--enable-Predictor is required)

Remove --enable-NEWTRUNC

Add three option parameters (default):
lteTrtol (500), lteReltol (1e-3), lteAbstol (1e-6)

Add new error function for TRAP, similar to GEAR
 (tentative, to be improved), in ckttrun.c

Enable PREDICTOR as default with Visual Studio.
2026-02-03 14:18:55 +01:00
Brian Taylor 50c4272544 Add function to verify that subckt port directions are compatible with auto bridging. Use set ps_ports_and_pins=1 to see the port directions. 2026-02-03 14:18:17 +01:00
Holger Vogt ee8bf7a948 Add a comment 2026-02-03 14:14:52 +01:00
Holger Vogt 6304f0124b Remove unused functions from the IFfrontEnd struct. 2026-02-03 14:13:54 +01:00
Holger Vogt 83bf3ae46b Remove a double entry 2026-02-03 14:13:42 +01:00
Holger Vogt 6dfaf3f11c Enable guessing the vector type or SP analysis in batch mode. 2026-02-03 14:13:26 +01:00
Holger Vogt bc7d68884e Remove variable and flag 'use_numparams'.
Not using numparam has not been a supported option for the last 20 years.
2026-02-03 14:13:04 +01:00
Holger Vogt c896fed414 Update to commit
172fb6d66 ("Fix Bug 817 - "Global models are not visible from
with subcircuits". Remove code that can miscount the number of
nodes to be renamed.", 2025-10-08)
Keep checking for x lines with nesting. This re-enables
simulating large cxircuits (e.g. SRAMs) with deeply nested
subcircuit calls.
2026-02-03 14:11:34 +01:00
Holger Vogt 1ef57ffc42 Add a variable 'debug-out-short' to enable a shortened debug-out.txt,
useful when large circuits are monitored, which otherwise may result
in GigaBit size of data.
2026-02-03 14:11:12 +01:00
Holger Vogt 329343a31e Fix a bug. 2026-02-03 14:09:43 +01:00
Holger Vogt 4d24b18f35 Remove all entries connected to IPC, an outdated (>30 years)
method to link ngspice to a now defunct controller (ATESSE).
2026-02-03 14:07:59 +01:00
Holger Vogt 4594d5fd91 Add variable deltacheck to measure the CKTdelta[0]
(most recent accepted delta time) versus simulation time.
Activated if 'set ngdebug' is given (not forget to set
'.save deltacheck' if other .save commands are given).
2026-02-03 14:07:02 +01:00
Giles Atkinson aa1242ac70 Add new functions for .param expressions. vec() takes a string argument
and fetches a vector value from the current plot or "const".  var() is similar
but fetches an interpreter variable.
2026-02-03 14:06:36 +01:00
Holger Vogt 827e6ba7fb Add perror() to fopen: more info for user. 2026-02-03 14:04:15 +01:00
Giles Atkinson 87338b0b8a Fix Bug 817 - "Global models are not visible from with subcircuits".
Remove code that can miscount the number of nodes to be renamed.
2026-02-03 14:03:13 +01:00
Holger Vogt 68e8f43318 Re-enable warning note when rusage xxx is not implemented. 2026-02-03 14:02:52 +01:00
Holger Vogt 5fcbe3c6df Improve error message: add source type 2026-02-03 14:02:32 +01:00
Holger Vogt f84a72d1f8 Improve error messages. Towards better locating of errors:
Remove entry to avoid false file readings.
Still to do: Return correct fline numbers, when reading large PDKs.
2026-02-03 14:02:05 +01:00
Holger Vogt c4ae3b1243 Improve on truncation when printing out the .model lines during debug-out 2026-02-03 14:00:46 +01:00
Holger Vogt e277c886ef Improve reading the source code sequence by extra comments:
While searching for 'Parsing the circuit', the sequence of major
functions is revealed.
2026-02-03 13:59:59 +01:00
Brian Taylor a99ff45eaf Update and clarify the comments at the top of udevices.c, which should make it easier when someone in the future has to make changes. 2026-02-03 13:59:39 +01:00
Brian Taylor e694983536 Fix memory leaks in INPpas4 and get_number_terminals found using paranoia_parallel. 2026-02-03 13:58:32 +01:00
Holger Vogt 5e12a80fb4 Exxx n1 n2 nc1 nc2 TABLE = (x0, y0, x1, y1, x2, y2)
is now supported in addition to already existing
Exxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
2026-02-03 13:57:37 +01:00
Holger Vogt 3d0ab2db8e Enable plain expression instead of only a number for area
in bipolr device instances.
2026-02-03 13:57:04 +01:00
Holger Vogt 71a980f820 Improve detection of the number of terminals for bipolar devices.
Fixes bug no. 807.
2026-02-03 13:55:31 +01:00
Holger Vogt 0648d5e844 Spelling
Found by Lintian, patches provided by C. Schoenert
2026-02-03 13:55:23 +01:00
Holger Vogt 82c620304b Fixing bug 804.
Using function get_windows_canonical_path() may neglect the
ngspice file search sequence, as an absolute path is returned also
for relative input paths. ngspice however searches a file not only
relative to the current directory, as inforced by this
function, but for example also in the directory of the previous
input file.

So restrict this function to paths longer than MAX_PATH, which would fail
otherwise.
2025-09-05 23:59:05 +02:00
Holger Vogt a2b3d7c7d2 Enhance comment. 2025-08-28 12:39:13 +02:00
Holger Vogt 7fc68c0c07 Adding .param SWSOA=1 right after the .lib entry during reading in
the libraries.
2025-08-28 12:39:01 +02:00
Holger Vogt b1f4f32b36 Prevent a segfault if cp_variablesubst return a nullptr.
Fixes bug-801
2025-08-28 12:16:22 +02:00
Holger Vogt 21c238276a Another copyright update 2025-08-08 11:46:22 +02:00
Holger Vogt 632b55a90d Update copyright notice 2025-08-08 11:46:13 +02:00
Holger Vogt 4ab6be1b90 Keep saving nodes only once, but make an exception for node 'all'.
Fixes bug-799, at least partially (diffpair.cir is running again.).
2025-07-29 11:05:14 +02:00
Holger Vogt 3d55c16531 Don't print a form feed if 'option nopage' is given.
Print the header really only once  if 'option nopage' is given.
2025-07-29 11:05:00 +02:00
Jason Pyeron 178b541fb2 BUGFIX: #797 - gettoks did not protect against NULL pointer input 2025-07-29 11:04:05 +02:00
Holger Vogt c2f9f6d3f4 retain type=0, type=1, type=+1, or type=-1 in a .model card,
even if compatmode PS or LT are set.
2025-07-29 10:52:54 +02:00
Holger Vogt dd1690521c Fix a bug: do not read in front of string s by s[-1].
Still needs more checking: we remmove and add 'params:'?
2025-07-29 10:49:49 +02:00
Holger Vogt 9c1714d2f5 typo 2025-07-29 10:49:22 +02:00
Giles Atkinson 5c4f151c6d Snapshot support for new statistics added by e1677a18c4.
That prevents a crash exiting examples/snapshot/adder_snload.script.
2025-07-29 10:39:00 +02:00