Commit Graph

9382 Commits

Author SHA1 Message Date
Giles Atkinson 16aadef4c7 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-05-24 11:27:57 +02:00
Giles Atkinson 44b620658e 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-05-24 11:27:37 +02:00
Giles Atkinson 78924a86a1 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-05-24 11:27:28 +02:00
Giles Atkinson d528c2a693 Do not strip event value member names (like "digital_node(strength")
from the name when creating a vector from event node history.
2025-05-24 11:27:16 +02:00
Giles Atkinson 5790dc2f4d 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-05-24 11:27:03 +02:00
Holger Vogt 80d6e681f2 MS Windows: Get a canonical paths name: Important if
path length exceeds MAX_PATH, might happen when using  PDKs

Patch provided by  kreijstal
2025-05-24 11:26:31 +02:00
Holger Vogt 43c4c49e11 re-enable adding variables (path names) to list variable "sourcepath" 2025-05-24 11:26:18 +02:00
Holger Vogt a2dbedff4e Improved error message, not using internal 'circbyline' 2025-05-24 11:25:55 +02:00
Holger Vogt f1381b43a1 Debug printout of start-up command line 2025-05-24 11:25:42 +02:00
Holger Vogt cf934bca7d 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-05-24 11:24:57 +02:00
Holger Vogt de7cec1735 AC noise: Update opertating point, if variable 'hertz' is given 2025-05-24 11:24:44 +02:00
Holger Vogt 338cc42dd0 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-05-24 11:24:33 +02:00
Holger Vogt d776a229e1 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-05-24 11:24:25 +02:00
Giles Atkinson 629d1f5462 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-05-24 11:24:11 +02:00
Giles Atkinson b41b8a48c3 Tidy code in get_number_terminals(), removing unneeded copying. 2025-05-24 11:23:58 +02:00
Giles Atkinson d18479b45b 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-05-24 11:23:44 +02:00
Holger Vogt 7cc3280851 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-05-24 11:23:26 +02:00
dwarning 7aa8ed0170 Involve optional d-s shunt in ac and pz analysis 2025-05-24 11:23:18 +02:00
dwarning a271ac821a Correct matrix entries for VDMOS pz analysis 2025-05-24 11:23:05 +02:00
dwarning 8a49164aec ReleaseOMP x64 needs fftw-3.3-dll64 include directory 2025-05-24 11:22:58 +02:00
Holger Vogt 612a924ea3 Reformat spoutput.c
Replace tabs by spaces
2025-05-24 11:22:47 +02:00
Holger Vogt 46e4a67079 Some cosmetics for readability:
replace tabs by spaces
2025-05-24 11:22:37 +02:00
Holger Vogt 8d9988424b Fixes bug by patch 124 offered by kreijstal 2025-05-24 11:22:30 +02:00
Brian Taylor 08aff1ee17 Fix memory leak of parm when there is a closing ). 2025-05-24 11:22:16 +02:00
dwarning 34046a29c1 VDMOS: use Vdsat in mobility reduction formula 2025-05-24 11:22:09 +02:00
Holger Vogt 243bdff377 Formatting: tabs to spaces 2025-05-24 11:22:01 +02:00
Holger Vogt 7cf0129254 Add a descriptive comment 2025-05-24 11:21:52 +02:00
Árpád Bűrmen a8e54dfb31 Fixed MOS9 scaling. 2025-05-24 11:21:39 +02:00
Árpád Bűrmen cc8183a96c Fixed MOS3 scaling. 2025-05-24 11:21:32 +02:00
Árpád Bűrmen fcbee261ac Fixed MOS2 scaling. 2025-05-24 11:21:26 +02:00
Árpád Bűrmen 8e2859d30d Fixed MOS1 noise scaling. 2025-05-24 11:21:19 +02:00
dwarning fed39f18c9 diode: introduce few parameter aliases for compatibility to other simulators 2025-05-24 11:19:48 +02:00
Holger Vogt ef00416ebf 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-05-24 11:19:08 +02:00
Giles Atkinson f8c9da5ed5 The VPI module path should be first in the lib_args parameter. 2025-05-24 11:18:47 +02:00
Giles Atkinson 6c518d4212 Fix an infinite loop with "eprvcd -a" and a misleading comment.
The command now works without any event nodes.
2025-05-24 11:18:37 +02:00
Giles Atkinson 027fb7e9e8 Code to suppress a spurious warning of a non-existent parameter,
missed from e858ca9465.
2025-05-24 11:18:23 +02:00
dwarning ae1437cb52 VBIC: simplify nqs derivatives 2025-05-24 11:18:08 +02:00
Holger Vogt dd07008b55 Remove ADMS related code 2025-05-24 11:17:56 +02:00
Holger Vogt 216f462583 Automtically set optran step time for at least 50 iterations 2025-05-24 11:17:42 +02:00
Giles Atkinson ddd14cf84c 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-05-24 11:17:25 +02:00
Giles Atkinson 5cfd87d6ad Do not link with the libraries needed for Ngspice itself. 2025-05-24 11:14:38 +02:00
Holger Vogt f553469224 Remove adms, ingnore option
Clears bug 736
2025-05-24 11:14:12 +02:00
Holger Vogt 2862d243d7 Add two simple Skywater PDK examples, inverter and ISCAS85 C7552 2025-05-24 11:13:43 +02:00
dwarning 20334c495c VBIC: lean and mean code revision 2025-05-24 11:05:58 +02:00
dwarning 22ef170bac VBIC: fix NQS problems in transient simulation by implementing adjunct network for excess phase 2025-05-24 11:05:50 +02:00
Giles Atkinson c7c85ecadc Add co-simulation with VHDL, using the GHDL compiler and d_cosim. 2025-05-24 11:05:33 +02:00
Giles Atkinson a50562430c Add .dylib file extension and improve some messages in d_cosim.
On Macos, the command "ghdl -e -shared ..." creates .dylib files.
2025-05-24 11:05:22 +02:00
Giles Atkinson f471461035 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-05-24 11:05:13 +02:00
Giles Atkinson 9786d3b8e2 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-05-24 11:04:55 +02:00
Brian Taylor 4149edd146 Fix circuits so that gtkwave tests run on MacOS. Add encoder/decoder example. 2025-05-24 11:04:13 +02:00