Commit Graph

7438 Commits

Author SHA1 Message Date
Francesco Lannutti 419e821a09 Fixed KLU conversion to complex for SP Analysis 2024-11-02 22:38:03 +01:00
Holger Vogt 287280c3db Make error messages more verbose:
add line number and source file name.
2024-11-02 22:37:47 +01:00
Holger Vogt bce621680b Add line number and source file to some error messages 2024-11-02 22:37:31 +01:00
Holger Vogt 8e8716abc7 Fix warning message 2024-11-02 22:37:12 +01:00
Holger Vogt c2c35b56a4 More on verbose error and warning messages 2024-11-02 22:36:46 +01:00
Holger Vogt 4e6af5a55f Allow KiCad special token V(/xyz) by quoting 2024-11-02 22:36:26 +01:00
Holger Vogt c33fd66a21 Make error messages more verbose:
add line number and source file name.
2024-11-02 22:36:11 +01:00
Brian Taylor 3528156d14 Fix bug #680. Check that src/dest memcpy arguments are non-NULL. 2024-11-02 22:35:57 +01:00
Matthias Schweikardt 8fbd357fdd extend bsim4 operating point info list 2024-11-02 22:35:10 +01:00
Holger Vogt 123ed0aada Add simulator version info to raw file ('write' commad)
using an extra line 'Command: ...').
The old sequence (adding commands manually to raw file) is
still available.
The 'Command: anycommand' will not be executed if loading
an ngspice-generated raw file. Raw files from other simulators may
generate a warning that the command is not available.
2024-11-02 22:34:59 +01:00
Holger Vogt 1087c6a0c2 Add simulator version info to raw file in batch mode,
using the line 'Command:...'
2024-11-02 22:34:41 +01:00
Giles Atkinson 14844af175 Fix #686: "XSpice Verilog Vector Input Bug".
Bug report and fix by Aodhan Murray.
2024-11-02 22:34:23 +01:00
Holger Vogt 5f059abdca Improve debugging using shared ngspice:
print out each command received.
2024-11-02 22:34:05 +01:00
Holger Vogt f495431509 Add a comment 2024-11-02 22:33:52 +01:00
dwarning 4cffcd96ce add missing klu bindings 2024-11-02 22:32:33 +01:00
Vogt 606c6d0df7 Notes go to stdout. 2024-11-02 22:32:14 +01:00
Vogt 232101af10 Don't dereference a NULL pointer. 2024-11-02 22:32:03 +01:00
Vogt 501a64470f Error and warning messages to stderr 2024-11-02 22:31:47 +01:00
Vogt 34549c4524 Note directed to stdout 2024-11-02 22:31:27 +01:00
Holger Vogt 4a1698c22d enable compiling with CYGWIN 2024-11-02 22:31:13 +01:00
Giles Atkinson f4c7202130 Fix gcc warnings. 2024-11-02 22:30:45 +01:00
Giles Atkinson 64a9a0bfbc Add a utility function to the d_cosim code model to open dynamic
libraries. It automatically tries adding standard file extensions,
so that model lines for d_cosim can be the same for all OSs.
2024-11-02 22:30:15 +01:00
Giles Atkinson ce1ecca15e Add support for including Verilog simulation within an instance
of the d_cosim codemodel, using libvvp, the simulation runtime of
Icarus Verilog.  This complements the existing method using Verilator.
The new source code is built into two binary shared libraries,
ivlng.so (or .DLL) and ivlng.vpi that are loaded during simulation.
2024-11-02 22:30:07 +01:00
Giles Atkinson 693a9df09f Add support for Verilator's --timing option, allowing use of delays
in Verilog source code.  Also add two parameters to d_cosim:
sim_args is used to pass string arguments to a Verilator simulation;
and lib_args is for future use.  In vlnggen, also check for two causes
of failure: a verilator error may lead to creation of interfering header
files; and misleading instances of verilated_shim.cpp can cause an obscure
failure (reported by Diarmuid Collins).
Use a generic name for the generated DLL in MSVC.CMD.
2024-11-02 22:29:54 +01:00
Giles Atkinson 4173d0e220 Allow trailing null connections to be omitted from XSPICE device
lines.  Also tidy some code,
2024-11-02 22:29:34 +01:00
Giles Atkinson 98076281c6 Changes to d_cosim to work with initial support for Icarus Verilog.
Fully resolve symbols on loading and tolerate attempts to set
output in the past.
2024-11-02 22:29:19 +01:00
dwarning 9c5507d1c8 vbic: have to load Vrxf/Itxf with value 2024-11-02 22:29:07 +01:00
dwarning 14402ea911 vbic: correct op reporting for excess phase model 2024-11-02 22:28:53 +01:00
dwarning 8c6fb7c5e0 format: rm misleading indentation 2024-11-02 22:28:39 +01:00
Holger Vogt 295be20859 Remove sourceinfo upon shared ngspice reset.
Remove memory leaks.
2024-11-02 22:28:21 +01:00
Holger Vogt a2ca4616b9 Memcpy only when p_word is not NULL
enable -fsanitize=address
2024-11-02 22:27:59 +01:00
Holger Vogt 28c501bfef Add #define RESMIN 1e-6 as a minimum resistor value 2024-11-02 22:27:44 +01:00
Holger Vogt a6240eed87 Stop the worker thread when running
Delete mutexes only after all other resets and delets.
2024-11-02 22:27:26 +01:00
Holger Vogt 250e9afd92 Set pl_lookup_table to NULL after freeing: allow another initialization 2024-11-02 22:27:08 +01:00
Holger Vogt fd72c3ce3e Bail out when state file is not found. 2024-11-02 22:26:53 +01:00
Holger Vogt d0ae65accf Add function ngSpice_Reset(void) to completely reset shared ngspice,
so that it may be restartet again by ngSpice_Init
2024-11-02 22:26:35 +01:00
Holger Vogt 4f8cfbf9f9 Update copyright 2024-11-02 22:26:20 +01:00
Mamoru TASAKA 099c0e65c2 misc/string.c: fix one byte ahead access in dup_string
In dup_string in misc/string.c , even if the destination
buffer is allocated with n_char bytes,
the source buffer `str` can be accessed up to only n_char bytes.
2024-11-02 22:22:06 +01:00
Holger Vogt a8c1104cfb 43+ developing towards ngspice-44 2024-11-02 22:21:51 +01:00
Holger Vogt 2af390f0b1 Update copyright info 2024-07-13 10:14:02 +02:00
dwarning 08d834841f diode: init of potential uninitialized variable 2024-07-12 14:26:53 +02:00
dwarning 4ad7d10aef init of potential uninitialized variables 2024-07-12 14:26:44 +02:00
dwarning bbfb3953ed repair missing parenthesis 2024-07-12 14:26:33 +02:00
dwarning aae53f3641 complete vbic nqs effect implementation 2024-07-12 14:26:18 +02:00
dwarning 065b1c817c more complete vbic dc/tran nqs effect 2024-07-12 14:25:04 +02:00
dwarning 6e6e2fb203 first attempt to include NQS effect 2024-07-12 14:24:50 +02:00
Holger Vogt 1fef3835c9 Fix common typo: unkown -> unknown 2024-07-09 14:50:21 +02:00
Holger Vogt 3c7012a826 Repair the link to the xhtml manual
Thanks to Geoffrey Coram for the hint.
2024-07-05 23:59:37 +02:00
Holger Vogt 83e8cb3715 Remove VS compiler warning 2024-07-05 13:53:04 +02:00
dwarning 62677575fa vbic: init of thermal capacitances 2024-07-05 13:52:56 +02:00
dwarning 113275d3be vbic: save Vrth into state vector 2024-07-05 13:52:45 +02:00
dwarning 1b56bbe297 vbic: complete reactive part into acload 2024-07-05 13:52:33 +02:00
dwarning 8a88442004 vbic: more adding reactive part into acload 2024-07-05 13:52:22 +02:00
dwarning 32c4f24bfe vbic: first add reactive part into acload 2024-07-05 13:52:11 +02:00
dwarning c90da3ee38 vbic: add resistive part into acload 2024-07-05 13:52:03 +02:00
Holger Vogt acdd93f157 If compiling shared ngspice, don't set up a terminal. 2024-07-01 09:42:58 +02:00
Holger Vogt 28d8301b5f Prevent crash upon buggy user input 2024-07-01 09:42:45 +02:00
Holger Vogt 442d8554f0 Enable single terminal n devices (Verilog-A modules) 2024-07-01 09:42:28 +02:00
Holger Vogt 727a920032 Authorship for HICUM 2024-06-24 17:21:50 +02:00
Holger Vogt 33939d3f50 Prepare ngspice-43 2024-06-22 17:06:45 +02:00
Holger Vogt 14bb63490c Plug a memory leak 2024-06-22 16:33:53 +02:00
Brian Taylor d01868b725 Cleanup gcc compiler warnings. 2024-06-22 14:23:50 +02:00
Holger Vogt b1795dbcf2 add path or filepath (without file name) to variable sourcepath,
when calling command 'source'
2024-06-22 14:23:41 +02:00
Holger Vogt fb6820de30 Send warning message to stderr, not to stdout. 2024-06-22 14:23:29 +02:00
dwarning 11a3711d86 revert commit ea4c438 and db85dead by removing VJ and M limiting 2024-06-22 14:23:13 +02:00
Holger Vogt dd6089c4fc Improved warning message: hint to line causing the warning. 2024-06-22 14:22:59 +02:00
Holger Vogt f15a92d997 Revise commit
75c2a3c621/
If the frquency difference is less than a decade, use the old
frequency calculation.
If start and stop frequencies are equal, use a single point only.
2024-06-22 14:22:38 +02:00
Holger Vogt d61a728688 Add function check_for_nodes to
check if there are enough tokens in an instance line.
2024-06-22 14:22:06 +02:00
Holger Vogt 0362953cd4 Bail out when the instance line is not complete.
Moving on does typically not make any sense.
2024-06-22 14:21:56 +02:00
Holger Vogt e5195c10a3 Enable monotonic negative growth of abscissa values. 2024-06-22 14:21:42 +02:00
Holger Vogt 32901f9d0c Error messages to stderr only.
For MS Windows: Make code model path absolute.
Call LoadLibrary only when *.cm file exists. Until now
spurious return from LoadLibrary prevented error message,
when *.cm was not found, followed by a crash upon 'quit'.
2024-06-22 14:21:28 +02:00
Holger Vogt fa5ac4a0cd When reading code models, allow only a single model pere command
(as was implicitely assumed anyway).
2024-06-22 14:21:15 +02:00
Holger Vogt 344beaad24 Add ft_spiniterror, to be set during spinit processing,as
ft_stricterror will be set only later, when .spiceinit is
executed.
2024-06-22 14:21:01 +02:00
Holger Vogt 36e7835afd Remove Valgrind "potentially undefined" message. 2024-06-22 14:20:44 +02:00
Holger Vogt 74fc096bfd Enable coupling of more than 2 inductots in a single line:
K1 L1 L2 L3 L4 L5 0.99
2024-06-22 14:20:33 +02:00
Holger Vogt a5bf93d04d 'No OP' is the more important news, update note to the user. 2024-06-22 14:20:15 +02:00
Holger Vogt ee39d678b7 Improve comment 2024-06-22 14:20:01 +02:00
Holger Vogt ace47103e7 Search path for .lib and .include has been enhanced to read complete
or partial paths from environmental variables. The env variable
names have to start with '$' as the first character after the .inc
or .lib token. Two consecutive env variables are possible. They are
read each until directory separator '/' or '\\', or if none is found,
until the end of the line. In this case the filename has to be included
in the env variable. A .lib line may look like
.lib "$ENVS1\$ENVS2/libraries\sky130_fd_pr\latest\models\sky130.lib.spice" tt

If an env variable is read successfully, a ngspice variable with
the same name (without leading '$') and contents is defined for
use in a .control section.
2024-06-22 14:19:48 +02:00
Holger Vogt 252ca65f56 Add '.save nosub' to suppress storing the node vectors from inside
of subcircuits.

Saves a lot of memeory if using devices with subcircuit models,
and one is not interested in the inner workings of the device model.
2024-06-22 14:18:25 +02:00
dwarning 02a5cd5ea6 mos1...3: set channel thermal noise to 0 in subthreshold range for nlev=3 2024-06-22 14:17:45 +02:00
dwarning f44a0ede08 mos1...3: logical error-prevent garbage for nlev=3 2024-06-22 14:17:36 +02:00
dwarning ac5470568c diode: no need for vte recalculation, rhs not changed 2024-06-22 14:17:28 +02:00
Holger Vogt 621918f289 Transform nested braces {{}} into {()} also in .param statements
(See TI PSPICE model for LMR33630).
2024-06-22 14:17:16 +02:00
Holger Vogt 2f5b869979 Issue this warning only when 'set ngdebug' is given. 2024-05-14 16:32:45 +02:00
Holger Vogt 29c4a2a151 Improve error message if malloc or realloc fails. 2024-05-14 16:32:38 +02:00
Holger Vogt b660e75504 Save path to .include file, add it to the search paths
for loading the next .include file.

If input directory dir_name is not set when loading .include files,
set it to the first .include found.

Both instruction add to the search paths for file to be inluded
and are valuable when the netlist is sent by circbyline without
input file involved.
2024-05-14 16:32:27 +02:00
dwarning 63a6234c92 diode: add saturation current temperature model tlev=2 2024-05-14 16:32:17 +02:00
Holger Vogt 0e465068b0 Identifier 'card' may not be available or not useful when
netlist is loaded via circbyline().
2024-05-14 16:32:06 +02:00
Holger Vogt 3f2673a2be Clear the variable before checking anew if it is to be set. 2024-05-14 16:31:57 +02:00
Holger Vogt 4cc5966b6a Don't delete sourceinfo as it may lead to a crash upon 'quit'.
Needs further investigation.
2024-05-14 16:31:23 +02:00
Holger Vogt 893cd42064 Reload sourceinfo when changing the current circuit. 2024-05-14 16:31:15 +02:00
Holger Vogt 36bc67ecbb Save the wordlist sourceinfo to the current circuit.
Remove sourceinfo only upon 'quit'.
2024-05-14 16:30:59 +02:00
Holger Vogt fc7ba6ee8f Add a fcn wl_delete to free the wordlist, but not its wl_word contents. 2024-05-14 16:30:49 +02:00
Holger Vogt 97d9f38421 Add (enhanced) patch by Giles Atkinson
Add controlled_exit() to errors when parsing functions.
Add verbose error messages, including line number and
name of the source file.

.lib file handlinmg with its recursive structure probably needs
testing and improvements.

More error messages may need this update.
2024-05-14 16:30:36 +02:00
Holger Vogt 862aa27713 Add linum_orig and linesource to commented out *include line 2024-05-14 16:30:27 +02:00
Holger Vogt eaae4d2212 Add linenum_orig and linesource info to newly generated
U device lines.
2024-05-14 16:30:15 +02:00
Holger Vogt c796171638 Add char *lineinfo to parameters of fcn insert_new_line 2024-05-14 16:30:04 +02:00
Holger Vogt 63d496b564 New parameter char *linesource for fcn insert_new_line
Make Fcn inp_read in inpcom.c static
2024-05-14 16:29:51 +02:00
Holger Vogt c4cbc40a3b Add file_name to fcn inp_read
Add wordlist sourceinfo to store input sources
path/file, internal, etc.)
debug_out.txt adds line info (var. sourcelineinfo)
Add sourcelineinfo to wordlist sourceinfo and to each new line.
When adding lines due to compatibility handling, use existing
linenum_orig and linesource.
2024-05-14 16:29:34 +02:00
Holger Vogt 03ba8397cc Add the original line source information to the new line. 2024-05-14 16:29:24 +02:00