Giles Atkinson
c18447f9f5
Add the support files for co-simulation with Verilog code
compiled by Verilator. Also add script files to Visual Studio builds
that are already installed by the Makefile builds.
2 years ago
Giles Atkinson
a92c569b72
Prevent some strings being mis-recognised by strstr(), including
one that causes a false error message from the vlnggen script.
2 years ago
Giles Atkinson
597268cc26
Treat input files names passed a start-up the same as those entered
as commands or called as scripts: search for them using $sourcepath.
2 years ago
Giles Atkinson
07ce9c788e
Recognise *ng_script_with_params" in the first line of the first
program input file to mean that the file is a pure interpreter
script that receives any remaining command arguments.
In winmain.c ensure that the argv array is NULL-terminated
and tidy some code.
2 years ago
Giles Atkinson
89851872ed
When substituting interpreter variables, allow '$' to be part of
the variable expresstion only within '[]' or '()'. That lets
forms like "$a$b" to be treated as two substitutions, not one.
2 years ago
Giles Atkinson
3ba314d4bc
New interpreter commands strstr, strslice, fopen, fread and fclose.
3 years ago
Giles Atkinson
566e2938f4
Add XSPICE code model d_cosim, a generic adaptor for digital cosimulation.
2 years ago
Giles Atkinson
12fe7b90c4
Add new code model function cm_irreversible(). This may only be
called from an XSPICE code model's INIT call and has three effects:
the instance is treated as "hybrid" even when it does not use both
port types; its position in the hybrids array is adusted; and it
is explicitly notifed when called just befoore the end of an
analog time-step.
2 years ago
Giles Atkinson
34e6c4abea
Convert XSPICE's hybrid_index array to instance pointers.
That simplifies code and will be needed for irreversible code model support.
2 years ago
Giles Atkinson
508fad0f55
In dctran.c, call EVTcall_hybrids() (which then calls a subset of
code model instances) only when the current timestep was successful.
That is efficient and means that code models may rely on such calls,
for example a co-simulator may safely advance to the end of the timestep.
The function cm_irreversible() that is mentioned in a comment will be
added in a later commit.
2 years ago
Holger Vogt
3d1cbf93ee
Add a predifined variable 'skywaterpdk' to speed up circuit
loading and parsing.
If set, it removes quoting tokens for params. This requires
that Skywater PDK does adequately stick to the ngspice syntax
to put params in between braces. As far as tests go, it does.
It also set the number of nodes for MSO devices to 4, so no lengthy
search is required.
2 years ago
Holger Vogt
dd58b07949
Initialize the new mutex vecreallocMutex
2 years ago
Holger Vogt
1849a8d220
Add functions ngSpice_LockRealloc and ngSpice_UnlockRealloc
to lock reallocing output vectors, e.g. during reading the
vecs for plotting.
2 years ago
Holger Vogt
e87651e27f
Update to comments, restrict mutex definitions to shared ngspice
2 years ago
Holger Vogt
3619041e26
Add new lock for realloc of vectors
2 years ago
Holger Vogt
1db8eff25c
Write message only once.
2 years ago
Holger Vogt
ecf4f819dc
typo
2 years ago
Holger Vogt
40a783408c
Remove adms, enable klu
2 years ago
Holger Vogt
86e991515e
Enable compiling with MINGW under MS Windows
2 years ago
Holger Vogt
4d4f226a83
Prevent crash, when vector is defined, but still empty.
2 years ago
Holger Vogt
e376c0e5c6
Eanble op or ac op (operating point), when selfheat is on.
op for tran has been o.k.
Fixme: preliminary fix or hack.
2 years ago
Holger Vogt
b62bb20e6f
Increase the allowable node name length from 24 to 256.
Enable safe copying, no user induced buffer overflow.
2 years ago
Holger Vogt
10756111bf
Fix a bug when deleting the memory. With the first call
to mem_delete() all the hash table is deleted, a second
call to mem_delete() does not have any further effect, so
has to be avoided.
2 years ago
Holger Vogt
e57979d15d
Plug two memory leaks introduced by
2bbadc608 ("Use a hash table glonodes to prevent
double or multiple entries in global node table
global_nodes", 2023-11-17)
2 years ago
Holger Vogt
70e366021b
Generate seed numbers from a microseconds clock, not a seconds clock
2 years ago
Holger Vogt
81bb886c71
Replace array global_nodes by hash table glonodes:
Save each global node only once
Search for global nodes hash table (much faster than scanning the list repeatedly).
Remove limit for amount of global nodes.
2 years ago
Holger Vogt
2bbadc6085
Use a hash table glonodes to prevent double or multiple entries
in global node table global_nodes
2 years ago
Holger Vogt
d060cb82af
typo
2 years ago
Holger Vogt
0735b8d0a5
fix previous commit on repeating error messages
2 years ago
Holger Vogt
22a10c0e44
typo
2 years ago
Holger Vogt
55ba927973
If nan occurs during op calculation, issue the warning
no more than 10 times.
2 years ago
Holger Vogt
4da3dc51fd
If compatmode ps or lt: add a series resistance (100µOhms) to
diodes, when RS is not given or 0:
Improves convergence in behavioural models for op evaluation.
2 years ago
Holger Vogt
29bfe94318
Exclude some code under a unified #undef REM_USED
2 years ago
dwarning
2cf2693706
few code cleanings
2 years ago
Holger Vogt
2a005292db
Sparse 1.3 is the matrix solver if no option (sparse or klu) is given.
KLU is selected by 'option klu'
If both 'option klu' and 'option sparse' are given,
the last one executed determines the solver.
'option sparse=0' de-selects spares, i.e. selects klu.
'option klu=0' de-selects klu, selects sparse.
'option klu=1' has the same meaning as 'option klu'.
'option sparse=1' has the same meaning as 'option sparse'.
2 years ago
Holger Vogt
5645968510
compiling with klu is now standard
2 years ago
Holger Vogt
c87df54f24
Remove unused global variable cp_dol.
This also prevents a gcc 13 bug, as cp_dol has been set to '\0'
by -O2 optimization (see
https://stackoverflow.com/questions/77407156/s-0-being-optimized-out-possible-gcc-13-bug-or-some-undefined-behaviour )
2 years ago
Holger Vogt
02aa2c03f9
klu is now compiled-in as standard
2 years ago
Giles Atkinson
359e3d4609
Fix Bug #467 - ".OPTION INTERP has accuracy issue".
2 years ago
Giles Atkinson
10386ee3e3
Commit [35d338]ngspice partly reverted commit 423f9a9db to fix deletion
of source files if make was accidentally used in the source tree.
That caused the original bug to return. Fix the problem by deleting
the generated source files by name (no such files exist in source.
Also make the generated files depend on cmpp, making 'make clean'
unnecessary after a chenge to cmpp.
2 years ago
Giles Atkinson
f6f7319792
Add null-pointer checks to some code that crashed when trying
to .print results from a non-existent analysis. Also remove the
troublesome .plot and .print lines from two examples.
2 years ago
Giles Atkinson
4228ba6e8a
Ignore end-of-line comments in quoted strings.
2 years ago
Holger Vogt
0a087809d6
If both node names are the same, just print them once in the error message.
2 years ago
Brian Taylor
0555c5d9c7
Make previous KLU support check more transparent.
2 years ago
Brian Taylor
295f212de8
When CIDER is detected, until KLU works with CIDER, print Error: CIDER simulation is not (yet) supported with 'option klu'. Use 'option sparse' instead. and then call controlled exit(1).
2 years ago
dwarning
35d338f256
partly revert commit 423f9a9db - don't remove xspice/icm .c files
2 years ago
Holger Vogt
d27b888f13
Noise simulation is buggy when using the KLU solver. Thus for now it is disabled.
Use 'option sparse' instead.
2 years ago
dwarning
4e1452cdb7
rm compiler warnings
2 years ago
dwarning
42f882e4e4
add osdinoise.c
2 years ago
dwarning
e67a6a1297
add osdinoise
2 years ago