Commit Graph

7624 Commits

Author SHA1 Message Date
Holger Vogt b09778d479 Make all new entries lower case. 2025-05-27 21:13:26 +02:00
Holger Vogt b05d9eb150 Prevent crash if file cannot be opened. 2025-05-27 21:13:09 +02:00
Holger Vogt 7a6a258465 Revert "Improve error messages when reading (and discarding) binned models,"
This reverts commit 33f18b485a.
2025-05-23 14:23:48 +02:00
Brian Taylor 72df67271c Fix some more -Wextra warnings.
Fix to inpcom.c removed by HVO
2025-05-14 16:21:14 +02:00
Holger Vogt fbb88d6e8d Fixes a bug introduced by
317378085 ("Tidy code in get_number_terminals(), removing unneeded copying.", 2025-02-25)
2025-05-14 16:00:54 +02:00
Holger Vogt 4853303995 Allow command 'stop when time=val' also if the tran simulation has
already been started, e.g. while waiting for resume.
Add a breakpoint if 'val' is in the future.
2025-05-13 11:52:45 +02:00
Brian Taylor 1750873dea Fix some compiler warnings when -Wextra is added to CFLAGS. 2025-05-13 11:38:31 +02:00
Holger Vogt 4b3de8e3bb Enable a pulse width (widths of its top) of 0
to obtain true triangular waveforms
2025-05-05 15:11:05 +02:00
Holger Vogt 8b778c56f0 beautify the code 2025-04-29 20:29:14 +02:00
Holger Vogt 5d4bb23e3c Re-enable compilation with MS Visual Studio, as "ngspice/config.h"
is not available.
Add-on to commit
4881b2973 ("Fix Bug #772 - "ngspice + icarus verilog cosim: searches for ivlng.so                 in /usr/local/lib/ngspice ...". Use the configured library directory, NGSPICELIBDIR.", 2025-04-11)
2025-04-29 11:50:09 +02:00
Giles Atkinson 0a224fa704 Fix typo in vlnggen error message. 2025-04-29 11:37:48 +02:00
Giles Atkinson 4881b29730 Fix Bug #772 - "ngspice + icarus verilog cosim: searches for ivlng.so
in /usr/local/lib/ngspice ...".
Use the configured library directory, NGSPICELIBDIR.
2025-04-29 11:37:34 +02:00
Giles Atkinson 78908b8543 Add an error message for a .model line that includes a default value
for a read-only instance parameter.  Before that caused a fatal error
in parsing the first device to use the model.
2025-04-29 11:37:28 +02:00
Giles Atkinson db92688f54 Fix Bug #750 - "VDMOS Model Naming Rules in NGSPICE Cause Confusion."
Recognise VDMOS as a special keyword only as the third token in a
.model line.  A new function, skip_token(), included in the change
allows simplification of some existing code.
2025-04-29 11:37:20 +02:00
Holger Vogt ad6635210a Merge branch 'pre-master-45' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master-45 2025-04-29 11:33:48 +02:00
Holger Vogt 33f18b485a Improve error messages when reading (and discarding) binned models,
e.g. for Skywater PDK with up to 160 bins per model parameter set.
2025-04-29 11:32:46 +02:00
Árpád Bűrmen ee62f4feb3 dtemp bug fixed. 2025-04-25 16:15:15 +02:00
b'Dietmar Warning bb90e83f3d Merge /u/arpadbuermen/ngspice/ branch vadng-pre-45 into pre-master-45
https://sourceforge.net/p/ngspice/ngspice/merge-requests/31/
2025-04-23 12:51:11 +00:00
Árpád Bűrmen 8da323b502 Fixed MOS9 scaling. 2025-04-23 14:04:06 +02:00
Árpád Bűrmen 86467457ed Fixed MOS3 scaling. 2025-04-18 13:22:06 +02:00
Árpád Bűrmen 1a175dde2f Fixed MOS2 scaling. 2025-04-18 12:46:33 +02:00
Giles Atkinson 46c5a8d375 Fix for an error message seen when testing the shx shared-library
program: do not allow a negative timestep.
2025-04-12 18:20:20 +02:00
Giles Atkinson 31e0c8e6cf Add two new functions to the shared library API.
ngSpice_Raw_Evt() requests a callback that returns all the
XSPICE events for a specific node that occurred during the last timestep.
ngSpice_Decode_Evt() provides numeric and string versions of
the event data.  Also fix some warnings in sharedspice.c.
2025-04-12 18:20:19 +02:00
Giles Atkinson cd6784a079 Event nodes can be plotted with offset by "iplot", like the
digitop option for "plot".  Offsets may be explicit or automatic with "-o".
A variable to set the offset is shared with "plot".  In plotcurv.c
suppress some warnings that should not apply to event nodes and do
not falsely claim that some vectors have only one x-value.
2025-04-12 18:20:19 +02:00
Giles Atkinson 1d435daed7 Support use of XSPICE event nodes with iplot.
In graf.c, local function set() is renamed setflag() to avoid conflict
with a newly-visible global function with the same name.
2025-04-12 18:20:19 +02:00
Giles Atkinson db39671ae2 Do not strip event value member names (like "digital_node(strength")
from the name when creating a vector from event node history.
2025-04-12 18:20:19 +02:00
Giles Atkinson 33f206b916 Add two new XSPICE functions: EVTnew_value_call() and
EVTcancel_value_call().  EVTnew_value_call() specifies a function
to be called for each confirmed new value produced on an XSPICE
event node.  To be used to add event node support for iplot.
2025-04-12 18:20:19 +02:00
Holger Vogt f4963b1ada MS Windows: Get a canonical paths name: Important if
path length exceeds MAX_PATH, might happen when using  PDKs

Patch provided by  kreijstal
2025-04-12 18:12:54 +02:00
Holger Vogt c264b71e22 re-enable adding variables (path names) to list variable "sourcepath" 2025-04-10 23:59:22 +02:00
Holger Vogt 3bf94321e6 Improved error message, not using internal 'circbyline' 2025-04-10 23:51:34 +02:00
Holger Vogt 13bbe47020 Debug printout of start-up command line 2025-04-04 15:33:43 +02:00
Árpád Bűrmen 7b1ecb261b Fixed MOS1 noise scaling. 2025-04-02 07:54:21 +02:00
Holger Vogt 1445a51a2e New command 'save nointernals' to suppress outputting and
saving of internal device nodes, espicially needed for PSP
OSDI model. Output file size reduction is e.g. from 20GB to 200MB.
2025-03-28 14:20:32 +01:00
Holger Vogt cac885401c AC noise: Update opertating point, if variable 'hertz' is given 2025-03-10 12:56:41 +01:00
Holger Vogt c0775705e5 PS compatibility: MOS level 5 and Bip level 2
will create an error. ngspice then bails out, as no
such models are available. Hint to use OpenVAF, OSDI.
2025-03-10 12:55:29 +01:00
Holger Vogt 16fbe0fb8b Create a vector thdnm from THD calculation, e.g. thd11
New vector fournosave: if set, suppress creation of
vectors thd11 and fourier, usefull when writing a raw file.
2025-03-10 12:53:40 +01:00
Giles Atkinson 83d3890490 Fix a bug where a node name is mis-identified as the model for
an OSDI device and remove a limit on node count.
Problem was reported by user Sam in ngspice-users.
2025-03-01 13:45:01 +01:00
Giles Atkinson 317378085b Tidy code in get_number_terminals(), removing unneeded copying. 2025-03-01 13:44:50 +01:00
Giles Atkinson fc76d4d63b Always check for GUI events during simulation, if any graphs exist.
Previously this check was only made if an iplot window existed.
The 100W.sp example displayed frozen windows with X11-based plotting.
2025-03-01 13:44:43 +01:00
Holger Vogt 312ef68614 Enhance the search path for .spiceinit (spice.rc):
- in the directory from where the netlist has been loaded
- in a user provided path read from environmental variable SPICE_USERINIT_DIR,
- in the current directory,
- in the the HOME directory,
- in the USERPROFILE directory. */
In shared ngspice the first line shall read
- in the directory Infile_Path received from the caller (sent before initialization)
2025-03-01 13:42:01 +01:00
dwarning 2988b2e279 Involve optional d-s shunt in ac and pz analysis 2025-02-28 16:52:00 +01:00
dwarning 2ae162d779 Correct matrix entries for VDMOS pz analysis 2025-02-28 16:41:46 +01:00
Holger Vogt 8694ce2649 Reformat spoutput.c
Replace tabs by spaces
2025-02-24 17:00:44 +01:00
Holger Vogt 77131a2a33 Some cosmetics for readability:
replace tabs by spaces
2025-02-21 10:23:09 +01:00
Holger Vogt 7fc4c6b5bd Fixes bug by patch 124 offered by kreijstal 2025-02-20 23:40:55 +01:00
Brian Taylor 4bc4f7a0d0 Fix memory leak of parm when there is a closing ). 2025-02-20 23:33:39 +01:00
dwarning 82fc5e3806 VDMOS: use Vdsat in mobility reduction formula 2025-02-20 19:25:00 +01:00
Holger Vogt dd916b1d0e Formatting: tabs to spaces 2025-02-18 13:38:26 +01:00
Holger Vogt 0e032f30b1 Add a descriptive comment 2025-02-17 10:28:12 +01:00
dwarning ad6d3efa13 diode: introduce few parameter aliases for compatibility to other simulators 2025-02-12 11:56:24 +01:00
Holger Vogt d7cb5c92ba Add a section without source info to the debug output.
Truncate .model lines in this section, as .model lines with
several hundred parameters may mask the relevant information.
2025-02-09 19:54:08 +01:00
Giles Atkinson 61206e3aa7 The VPI module path should be first in the lib_args parameter. 2025-02-08 18:09:37 +00:00
Giles Atkinson 44cfd67a95 Fix an infinite loop with "eprvcd -a" and a misleading comment.
The command now works without any event nodes.
2025-02-08 18:05:03 +00:00
Giles Atkinson af9b2bd539 Code to suppress a spurious warning of a non-existent parameter,
missed from e858ca9465.
2025-02-08 15:28:20 +00:00
dwarning 73f5dc65fb VBIC: simplify nqs derivatives 2025-02-07 22:43:30 +01:00
Holger Vogt 5db715296d Remove ADMS related code 2025-02-07 14:03:51 +01:00
Holger Vogt 656511a6f9 Revert "Exclude terminal code from MINGW compiling,"
This reverts commit 0c4347bf19.
2025-02-07 13:04:51 +01:00
Holger Vogt c4742d82b4 Automtically set optran step time for at least 50 iterations 2025-02-07 13:03:13 +01:00
Giles Atkinson 1d8bec8909 Do not include term.h and curses.h in terminal.c without checking that
they exist.  Modern ncurses does not need curses.h to compile term.h
so that header has been removed.  Also make ncurses the last choice
when looking for tputs().
2025-02-07 13:01:14 +01:00
Giles Atkinson 8ad585a8e0 Do not link with the libraries needed for Ngspice itself. 2025-02-07 13:01:03 +01:00
Holger Vogt 0c4347bf19 Exclude terminal code from MINGW compiling,
as locations of curses.h has changed and linking
to libncurses.a is not possible.
2025-02-04 09:38:15 +01:00
Holger Vogt bd2a2144dc Merge branch 'pre-master-45' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master-45 2025-02-04 08:46:43 +01:00
dwarning a9cc2f3540 Merge branch 'vbic_nqs_adjunct' into pre-master-45 2025-02-02 14:11:04 +01:00
dwarning fdecb84ff9 VBIC: lean and mean code revision 2025-02-02 14:05:45 +01:00
Giles Atkinson 63eb332436 Add co-simulation with VHDL, using the GHDL compiler and d_cosim. 2025-01-30 09:45:35 +00:00
Giles Atkinson da8e237e11 Add .dylib file extension and improve some messages in d_cosim.
On Macos, the command "ghdl -e -shared ..." creates .dylib files.
2025-01-29 10:18:41 +00:00
dwarning 0b61e6b38e VBIC: fix NQS problems in transient simulation by implementing adjunct network for excess phase 2025-01-28 17:54:11 +01:00
Giles Atkinson e858ca9465 When parsing a XSPICE string-valued model parameter, break only
on a closing quote, string end or white space (if unquoted) and
unquoted ']' when parsing an array.  That allows generic value overrides
for GHDL models to pass through: "-gVar=value".  Previously, the string
was terminated on '='.  Also remove some dead and non-functional code.
2025-01-27 07:28:52 +00:00
Giles Atkinson 350147a231 Improve checking of XSPICE model parameters and tidy code.
Checking for null values moves from per-instance code to
per-device code, potentially removing duplicate error messages.
Limits on parameter values and sizes of array parameters that are
specified in the IFS files are now actually checked.
2025-01-27 07:28:52 +00:00
Holger Vogt d71794bdbe Prevent a crash in case of incomplete stoks[] 2025-01-26 17:05:04 +01:00
b'Dietmar Warning 666e0dfcee Merge /u/arpadbuermen/ngspice/ branch vadng-pre-45 into pre-master-45
https://sourceforge.net/p/ngspice/ngspice/merge-requests/29/
2025-01-25 08:43:38 +00:00
Árpád Bűrmen 4b41ed4054 Temperature handling inconsistency in jfetnoise.c fixed. 2025-01-24 11:16:23 +01:00
Holger Vogt 4bddc0ce2e Fixes wrong @bxxx[i] return values of B source, ignoring the m parameter.
Reported in bug 734 by Stefan.
2025-01-21 16:03:09 +01:00
Holger Vogt 51f5767666 Allow .probe I(XU1)
For device with more than 2 nodes, and alli not set, the vcurr_xxx
nodes did contain a probe_int_ section which made them to be
not saved. While o.k. for power measurement, this was not o.k. for
measuring current.
2025-01-19 16:53:37 +01:00
Holger Vogt 7353a2c81c Align title line to the numbers following 2025-01-18 23:56:33 +01:00
Holger Vogt c1f1516ba6 use effective gate voltage 2025-01-18 10:20:09 +01:00
dwarning e1ec5db5ba VDMOS: use effektive Gatespannung for mobility reduction of Beta 2025-01-18 10:02:48 +01:00
Holger Vogt b3460a7d23 Allow m parameter for B source with current output
Fixes bug no. 734
2025-01-17 14:08:17 +01:00
Giles Atkinson 8d28b17ef8 Fix Bug #733 -
"Pre-master-45 hangs forever on a circuit that works on older versions."
That was an infinite loop when parsing a line with just "*#",
introduced by commit fb63573b6b.  Also add some comments.
2025-01-16 17:55:02 +00:00
b'Holger Vogt 0f3e45fb08 Merge /u/arpadbuermen/ngspice/ branch vadng-pre-45 into pre-master-45
https://sourceforge.net/p/ngspice/ngspice/merge-requests/27/
2025-01-14 10:48:24 +00:00
Holger Vogt 3c10d749e7 Add some more debug output. 2025-01-13 17:33:05 +01:00
Holger Vogt 212660c7e9 Add to debug-out.txt an output without source file information.
Thus cluttering the view is reduced.
2025-01-10 15:15:58 +01:00
Holger Vogt 539ade0f38 If C= or Q= is omitted in the instance line of a behavioral capacitor,
select as default the C= formulation, not the Q= formula..
2025-01-10 10:59:56 +01:00
Árpád Bűrmen 9693e304ea initializeLimiting -> iniLim, reorder sim_params for faster OSDI device evaluation. 2025-01-10 08:16:39 +01:00
Árpád Bűrmen e1677a18c4 Per-device load timing support. 2025-01-10 08:16:12 +01:00
Holger Vogt 758b8cc853 Notes go to stdout, not stderr 2025-01-08 23:45:00 +01:00
Giles Atkinson 8a9fd1eff2 Using XFlush() instead of XSync() avoids a round trip to the X server
on each call to DevUpdate().  That speeds plotting when using XQuartz
on Macintosh and makes iplot useable there.
2025-01-08 19:54:52 +01:00
Giles Atkinson 24425315f8 Allow out-of-tree builds. Problem reported by Carsten Schönert. 2025-01-08 19:54:52 +01:00
dwarning ea33459ba9 S to Z matrix conversion by formula instead of Y inversion
low limiting Rn and Cy to prevent division by 0, fix provided by Alessio Cacciatori

there are still problems in Z matrix conversion in specific networks
2025-01-03 18:21:46 +01:00
Holger Vogt caa0a7f4a8 Fix a crash due to buggy user input.
Improve error message.
Reported in
https://gitlab.com/kicad/code/kicad/-/issues/19439#note_2277932762
2025-01-01 15:05:14 +01:00
Holger Vogt 0f5852afdb Revert "iplot on macOS is totally slow, thus unusable, due to problems with"
This reverts commit c79eb348a2.
2024-12-30 16:27:00 +01:00
Holger Vogt c79eb348a2 iplot on macOS is totally slow, thus unusable, due to problems with
repeated calls to XSync. Skipping them still allows iplotting.
2024-12-30 13:47:01 +01:00
Holger Vogt 81431af644 We are developing towrds ngspice-45 2024-12-30 13:25:16 +01:00
Holger Vogt ce8480c690 Enable improved error message with nested .include. 2024-12-28 14:43:01 +01:00
Holger Vogt c7ee676e3d Improve the error message by hinting to the source of the error. 2024-12-28 14:42:49 +01:00
Holger 114bda2941 Add missing backslash 2024-12-27 17:31:01 +01:00
Holger Vogt 6730474067 Make verilog/libvvp.def verilog/MSVC.CMD verilog/README.txt distributable 2024-12-27 17:11:12 +01:00
Holger 3fa09bd3cf Add missing header files to enable their distribution 2024-12-27 16:20:08 +01:00
Holger Vogt a4e443fcce precautionary prevent passing instances which internally have got
upper case lettering. Removes a crash reported in
https://gitlab.com/kicad/code/kicad/-/issues/18648.
2024-12-27 11:18:00 +01:00
Holger Vogt ffde17441b Don't quote the subcircuit name in an X line 2024-12-27 11:15:09 +01:00