Holger Vogt
1849a8d220
Add functions ngSpice_LockRealloc and ngSpice_UnlockRealloc
...
to lock reallocing output vectors, e.g. during reading the
vecs for plotting.
2023-11-19 12:05:18 +01:00
Holger Vogt
e87651e27f
Update to comments, restrict mutex definitions to shared ngspice
2023-11-19 12:05:10 +01:00
Holger Vogt
3619041e26
Add new lock for realloc of vectors
2023-11-19 12:05:01 +01:00
Holger Vogt
1db8eff25c
Write message only once.
2023-11-19 10:46:19 +01:00
Holger Vogt
ecf4f819dc
typo
2023-11-19 10:44:42 +01:00
Holger Vogt
86e991515e
Enable compiling with MINGW under MS Windows
2023-11-18 20:09:49 +01:00
Holger Vogt
4d4f226a83
Prevent crash, when vector is defined, but still empty.
2023-11-18 17:17:04 +01:00
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.
2023-11-18 17:16:19 +01:00
Holger Vogt
b62bb20e6f
Increase the allowable node name length from 24 to 256.
...
Enable safe copying, no user induced buffer overflow.
2023-11-18 10:55:19 +01:00
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.
2023-11-18 09:58:30 +01:00
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)
2023-11-17 23:50:59 +01:00
Holger Vogt
70e366021b
Generate seed numbers from a microseconds clock, not a seconds clock
2023-11-17 18:35:21 +01:00
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.
2023-11-17 17:02:06 +01:00
Holger Vogt
2bbadc6085
Use a hash table glonodes to prevent double or multiple entries
...
in global node table global_nodes
2023-11-17 13:58:57 +01:00
Holger Vogt
d060cb82af
typo
2023-11-17 13:57:39 +01:00
Holger Vogt
0735b8d0a5
fix previous commit on repeating error messages
2023-11-15 22:54:53 +01:00
Holger Vogt
22a10c0e44
typo
2023-11-15 22:54:06 +01:00
Holger Vogt
55ba927973
If nan occurs during op calculation, issue the warning
...
no more than 10 times.
2023-11-14 16:57:14 +01:00
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.
2023-11-14 16:56:31 +01:00
Holger Vogt
29bfe94318
Exclude some code under a unified #undef REM_USED
2023-11-13 12:32:15 +01:00
dwarning
2cf2693706
few code cleanings
2023-11-12 17:04:36 +01:00
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'.
2023-11-12 16:32:40 +01:00
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 )
2023-11-11 10:39:51 +01:00
Giles Atkinson
359e3d4609
Fix Bug #467 - ".OPTION INTERP has accuracy issue".
2023-11-09 12:09:05 +00:00
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.
2023-11-09 12:08:02 +00:00
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.
2023-11-09 12:07:31 +00:00
Giles Atkinson
4228ba6e8a
Ignore end-of-line comments in quoted strings.
2023-11-09 12:06:34 +00:00
Holger Vogt
0a087809d6
If both node names are the same, just print them once in the error message.
2023-11-08 13:12:06 +01:00
Brian Taylor
0555c5d9c7
Make previous KLU support check more transparent.
2023-11-08 11:49:28 +01:00
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).
2023-11-08 11:49:22 +01:00
dwarning
35d338f256
partly revert commit 423f9a9db - don't remove xspice/icm .c files
2023-11-08 07:59:36 +01:00
Holger Vogt
d27b888f13
Noise simulation is buggy when using the KLU solver. Thus for now it is disabled.
...
Use 'option sparse' instead.
2023-11-06 15:03:09 +01:00
dwarning
4e1452cdb7
rm compiler warnings
2023-11-04 19:36:31 +01:00
Pascal Kuthe
5223f4b27d
fix(hicuml2): ensure flicker noise power is always stored in state vec
2023-11-04 19:36:30 +01:00
Pascal Kuthe
c21f87051a
always compute osdi noise powers
...
ngspice will reuse operating points for noise analysis so we can not trust
the mode flags
2023-11-04 19:36:30 +01:00
Pascal Kuthe
f66e0bf2ac
implement osdi noise support
2023-11-04 19:36:30 +01:00
Brian Taylor
04c68d5f30
Cleanup child processes on Windows VisualC and Mingw. On Linux those processes quit when ngspice quits.
2023-10-28 19:45:24 +02:00
Brian Taylor
4219efb5d5
Make it explicit that null output ports are not allowed. The output port vector bounds are always >= 1.
2023-10-28 19:43:46 +02:00
Brian Taylor
c83d11c9c0
Call cm_cexit() to prevent the simulator running when d_process initialization errors occur.
2023-10-28 19:43:23 +02:00
Holger Vogt
21761207bc
Change license to 3-clause BSD (see
...
https://sourceforge.net/p/ngspice/ngspice/merge-requests/6/?limit=25#fd4f/73e6 )
2023-10-28 14:55:13 +02:00
Brian Taylor
09f070f582
Error handling improvements in cfunc.mod. Ensure that d_process.h wiil always respond to version and interface checks sent from sendheader. This is needed so that the pipe reads in sendheader do not cause Windows to hang when the interface version and in/out counts do not match. This hang was the cause of errors not being reported and the Windows gui hanging. Startup and header checks are now detected in cm_d_process, and the simulator will run but with runtime errors since a d_process model cannot be completely instantiated after initial errors. It would be good to find a means of gracefully halting the simulation run.
2023-10-28 11:00:33 +02:00
Brian Taylor
8c72a76844
Another attempt at clean up of error handling and reporting. It's OK on limux and cygwin, but Windows VisualC is being stubborn. I would prefer not to have to call exit(1) just for Windows, since then nothing is reported and the gui disappears in a puff of smoke. Even without the exit calls nothing gets reported with the Windows gui which will hang when there are errors detected by d_process.
2023-10-28 11:00:28 +02:00
Brian Taylor
4eae039779
Add modifications note.
2023-10-28 11:00:23 +02:00
Brian Taylor
4530cde8e2
Use Xspice cm_message_send to report errors rathen than printing to stderr and calling exit. When a d_process model has errors found in start(), sendheader(), and dprocess_exchangedata() these are reported, but if the model is run a SIGINT is raised. There must be a better way of stopping the simulator.
2023-10-28 11:00:18 +02:00
Brian Taylor
df28fabc42
Restore the deleted unused params to be backword compatible. Handle the case where the d_process instance has a null in vector, so that N_din is zero. This allows the model to be just a pattern generator. Add include to cmproto.h to avoid a forward ref. to an enum type.
2023-10-28 11:00:03 +02:00
Brian Taylor
307ba1985b
Remove unused reset_state param; do not allow null in and out, so there is at least 1 input and 1 output.
2023-10-28 10:59:52 +02:00
Brian Taylor
7820940be3
Remove the unused reset_delay param.
2023-10-28 10:59:42 +02:00
Brian Taylor
e762047fc2
Add array bounds check, fix typos.
2023-10-28 10:59:34 +02:00
Brian Taylor
022a340ddb
Fix VisualC and Mingw compiler warnings.
2023-10-28 10:59:11 +02:00
Brian Taylor
cccb4a1559
Add callback to free process memory.
2023-10-28 10:58:39 +02:00
Brian Taylor
33780055ee
Add MODIFICATIONS note, cleanup white space.
2023-10-28 10:58:28 +02:00
Brian Taylor
5c4352d02f
Add __MINGW64__ defines for builds on mingw with msys.
2023-10-28 10:58:15 +02:00
Brian Taylor
3bb6e86015
Add Windows Visual Studio support for the Isotel d_process xspice digital model. The Isotel mixedsim-master/examples/embedded/motorforce C code needs to have minor changes for _MSC_VER defines, and are not included with this commit. The changes relate to using #pragma pack(push, 1)...#pragma pack(pop) around some structs, and setting stdin/stdout in binary mode. It is doubtful that the cfunc.mod will compile on mingw or cygwin since I don't know if they support pipe/fork/exec/spawn calls. The code builds and runs on Windows, Linux, and MacOS. In the future, Giles Atkinson is looking at allowing Xspice models to load shared libraries (.dll, .so) which will avoid creating and communicating with an external program.
2023-10-28 10:58:06 +02:00
Holger Vogt
efdf332061
Prevent a crash if hash model table was not generated,
...
e.g. due to missing valid models.
2023-10-27 23:13:41 +02:00
Holger Vogt
10d7297798
Add cm_cecit(). If the input file could not be opened, stop ngspice.
2023-10-21 15:52:10 +02:00
Holger Vogt
19ebfb1887
Add a code model function cm_exit(const int exitcode).
...
This function calls controlled_exit(exitcode) to shut
down gracefully.
2023-10-18 22:46:27 +02:00
Holger Vogt
f26dda8616
Formatting
2023-10-18 17:44:56 +02:00
Holger Vogt
39443fafdd
Removing unused models takes much more time than keeping them
...
for large circuits.
Probably a hash table may help here (t.b.d.).
2023-10-18 14:36:08 +02:00
Holger Vogt
8ef0aece58
During setup of the models thre have been search scans in the
...
linked model list modtab. The time used here grows approx.
quadratically with the number of models. If the numbers get large,
e.g. with the IHP Open PDK, setup time make simulation impractical.
Therefore the linked list modtab has been enhanced by a hash table
modtabhash, which allows linear search time and makes simulation
of a 200k transistor circuit with IHP PDK possible. Already
the setup time for 15k transistor circuits has been reduced.
2023-10-18 14:34:16 +02:00
Holger Vogt
9702557f81
Evaluate function gauss() in B sources. This is required when
...
in .model files the tokens 'temper' and gauss() coexist, because
then the B Source function parser is applied.
2023-10-16 17:53:58 +02:00
Holger Vogt
eb36084700
re-formatting (indentation, tabs removed)
2023-10-11 00:08:55 +02:00
Holger Vogt
9edf34495e
Don't say 'issue in line no. 0', as this 'info' does not tell
...
where the line with position 0 really is in the input deck.
2023-10-09 23:19:30 +02:00
Holger Vogt
7c3cb8169c
This is a re-write of the PWM generator.
...
It is modelled according to the new d_OSC by Giles Atkinson.
Here frequency is fixed and duty cycle is controlled by an
analog input.
2023-10-07 17:13:55 +02:00
Holger Vogt
ecb416b800
This patch fixes a bug when shared library uses XSPICE:
...
Don't subtract delta twice, when breakpoint is active
and step is rejected.
https://sourceforge.net/p/ngspice/patches/106/
Thanks to Vyacheslav Shevchuk
2023-10-07 17:10:31 +02:00
Holger Vogt
9944a4869f
typo
2023-10-07 13:36:56 +02:00
Holger Vogt
53315ed764
Prevent crash when no input file given.
2023-10-05 00:19:51 +02:00
Holger Vogt
4f79105b06
Add comment
2023-10-02 10:07:52 +02:00
Holger Vogt
233f9daba4
Remove unused instance parameter ic (initial condition of controlling source).
2023-10-01 10:51:31 +02:00
Holger Vogt
28b495318d
Update to command 'wrnodev':
...
Prevent crash if tran is not (yet) run.
Open output file only when data are available.
Enhanced comment and warning message.
2023-09-28 10:05:31 +02:00
Holger Vogt
e449c894ce
Prepend title line by '*' if printed by 'listing r'.
...
This allows skipping all pre-processing.
2023-09-27 15:51:16 +02:00
Holger Vogt
76f837b0b7
skip all pre-processing for expanded input files created by 'listing r'
2023-09-27 15:49:37 +02:00
Giles Atkinson
2790fd68bb
Make the special "noglob" variable work. To preserve previous behaviour
...
change the default value from true to undefined (meaning false).
Also fix a misleading comment in glob.c.
2023-09-25 10:54:13 +02:00
Giles Atkinson
a70e708114
Make special interpreter variable "noglob" behave as documented:
...
globbing is off by default. An incompatible change, but previous
behaviour can be restored by "unset noglob" in .spiceinit.
2023-09-23 17:03:34 +02:00
Giles Atkinson
41c61604c5
Handle SIGTTIN and SIGTTOU on Unix-like OSs with X11 graphics.
...
That makes it possible to push ngspice into the background while
plot windows are open: the windows remain responsive.
Discussion on ngspice-users, starting 2023-09-01,
title: "`quit` in Interactive Mode."
Also restore terminal state when forcing exit with SIGINT (control-C).
2023-09-23 17:03:24 +02:00
Giles Atkinson
588116af48
Fix a bug in the "help" command. Some commands have no action function,
...
so the function pointer should not be used to detect the end of the table.
Use the command name instead.
2023-09-23 17:03:19 +02:00
Giles Atkinson
423f9a9db2
Fix a build bug for XSPICE: files generated for code models are
...
not removed when doing 'make clean' from release/src/xspice or above.
2023-09-23 17:03:09 +02:00
Holger Vogt
f3eb46e76d
Fix bug in fprintf
2023-09-23 16:45:35 +02:00
Holger Vogt
b034332e84
Improve warning message during evaluating .probe
2023-09-19 14:57:22 +02:00
Giles Atkinson
62471ecede
Fix two bugs in cmpp: an unmatched right bracket in cfunc.mod
...
causes an infinite parsing loop (mod_yacc.y) and XSPICE macros
are replaced in string literals (mod_lex.l).
2023-09-16 00:19:36 +02:00
Holger Vogt
dbc5042263
Prevent a crash if port cntrl is set to NULL
2023-09-15 23:42:08 +02:00
Holger Vogt
01bdd44ef9
Modify the previous commit a616a0abe:
...
no spaces in the first column
2023-09-15 23:41:12 +02:00
Vogt
a616a0abe3
Add variable wr_onspace to allow printing the vetor name with
...
one space delimiter
2023-09-14 15:22:14 +02:00
Holger Vogt
daa58f4125
Fix previous commit [acb7f2]
...
Allow frequency 0 Hz (make check will do agian).
2023-09-11 22:48:50 +02:00
Holger Vogt
acb7f2cd97
Make .ac error messages more verbose, prevent some crash,
...
enable default values.
2023-09-11 17:42:38 +02:00
dwarning
4368790c5d
remove compiler warning wrt. prototypes
2023-09-11 14:50:27 +02:00
Holger Vogt
b7993bb530
Formatting cktpzstr.c
2023-09-11 14:28:49 +02:00
Holger Vogt
dfeb0bdb4e
Improve error message on obsolete dot command
2023-09-11 14:28:20 +02:00
Holger Vogt
64c29e667e
Improve error message on unimplemented dot command
2023-09-11 12:02:59 +02:00
Holger Vogt
a6d5ce8ea6
Some KLU warnings are useless for the normal user, as she or he
...
does not have any means to further analyze or repair the issue:
Warning: KLU ReFactor failed. Factoring again...
Warning (ReFactor Complex): KLU Matrix is SINGULAR
Numerical Rank: %d\n
Singular Node: %d\n
So print these messages only in debug mode.
2023-09-10 14:41:16 +02:00
Holger Vogt
64307ba907
Add a title line to 'listing r', so the resulting output may be
...
re-loaded by the 'source' command.
2023-09-10 13:44:18 +02:00
Holger Vogt
9d84138216
Remove memory leak by not mallocing unused node_ids.
...
Remove some compiler warnings.
2023-09-09 23:35:54 +02:00
Holger Vogt
3b89410b8f
Slight cosmetics in comment.
2023-09-09 23:34:49 +02:00
Brian Taylor
492bb64d92
By default, use the shortest typical delay estimate. This makes the digi_74LS90_74LS42.cir testcase for bug641 behave almost the same as MicroCap 12. In ngspice and MicroCap, the only signal with a glitch is not_y8. The other not_* signals look the same. Setting ps_use_mntymx in .spiceinit will change the delay estimates. See the function set_u_devices_info in src/frontend/udevices.c for the various settings of ps_use_mntymx.
2023-09-09 23:22:06 +02:00
Holger Vogt
7a646c0a12
If 'strict_errorhandling' is set, bail out if operating point is not found
2023-09-09 18:38:09 +02:00
Holger Vogt
ad23146544
Don't check continuously for autostop, only when option flag is set
...
This speeds up simulations with simple device evaluation, but many
time stepps.
2023-09-09 18:37:13 +02:00
Holger Vogt
0f14c690d5
Stat. functions: safeguard against divide by zero, return nominal value
2023-08-26 10:15:08 +02:00
Holger Vogt
8837132f29
Fix d0fc344bf
...
("Shorten the ngspice message when performing operating point evaluation.
The average user often complained about useless 'info'.
The old output is now available when 'set ngdebug' in .spiceinit.",
2023-08-19)
Return with 0 if optran has been successful.
2023-08-20 00:11:39 +02:00
Holger Vogt
d5ceced24d
We are developing towards ngspice-42
2023-08-19 23:54:36 +02:00
Holger Vogt
d0fc344bf9
Shorten the ngspice message when performing operating point evaluation.
...
The average user often complained about useless 'info'. The old output
is now available when 'set ngdebug' in .spiceinit.
2023-08-19 23:42:34 +02:00
Holger Vogt
c0d73dcd6f
Fix bug 642 by replacing strstr() by search_plain_identifier()
2023-08-19 23:14:26 +02:00
Holger Vogt
750d92c493
Fix a bug, not finding any instance parameters for PSP or R2_CMC
...
If already aligned, return input value, not 0.
2023-08-16 11:14:26 +02:00
Holger Vogt
adc645d8e9
Fix intro comment: NDEV is no longer supported in ngspice
2023-08-16 11:14:26 +02:00
Holger Vogt
c11613d1f7
Fix some memory leaks (Patch provided by Brian Taylor)
2023-08-16 11:14:25 +02:00
Holger Vogt
4864f0a118
Remove crash in CIDER example meclgate.cir
2023-08-16 11:14:25 +02:00
Pascal Kuthe
499634df47
integrate OSDI with KLU
2023-08-16 11:14:25 +02:00
Francesco Lannutti
05aa9f0927
Better fix for previous commit
2023-08-16 11:14:24 +02:00
Francesco Lannutti
13e74751cc
Fixed a MLK for XSPICE and commented out an unused array
2023-08-16 11:14:24 +02:00
Francesco Lannutti
cab5e8cd37
Added the case of VSRCport to VSRC model for KLU
2023-08-16 11:14:24 +02:00
Holger Vogt
d658e0427c
Enable compilation with MSVC (alignof seems to be available only for C++)
2023-08-16 11:14:24 +02:00
Francesco Lannutti
b08eb2266a
Added initial KLU support for node collapsing
2023-08-16 11:14:24 +02:00
Francesco Lannutti
470cd4a514
Fixed KLU SINGULAR matrix handling and messaging
2023-08-16 11:14:24 +02:00
Francesco Lannutti
d68e83be78
Fixed VBIC model for KLU
...
Fixed SMPfindElt messages
2023-08-16 11:14:23 +02:00
Francesco Lannutti
8123fde6f7
Handled properly KLU messages when XSPICE is purely digital
2023-08-16 11:14:23 +02:00
Francesco Lannutti
4200362f42
Fixed Empty Matrix handling in KLU
2023-08-16 11:14:23 +02:00
Francesco Lannutti
937325e2ce
Handled an empty circuit with KLU
2023-08-16 11:14:23 +02:00
Francesco Lannutti
4427a1f6dd
Rebased upon pre-master branch
2023-08-16 11:14:23 +02:00
Francesco Lannutti
ae83b7c807
Added KLU support to HICUM model
2023-08-16 11:14:22 +02:00
Holger Vogt
6b6e9bb7cb
Enable log output (warning and error messages) on the Windows GUI
2023-08-16 11:14:22 +02:00
Holger Vogt
d6aeb6cd94
Set up the matrix according to branch KLU-6+11-rebase-master-28_10_2020
...
All cpl example files from ngspice\examples\TransmissionLines are o.k.
2023-08-16 11:14:22 +02:00
Francesco Lannutti
02e7c1c5b0
KLU branch rebased upon master @ 3 Feb 2022
...
Some merge conflicts have not been solved yet
Please look for >>>> HEAD if you want to solve them
2023-08-16 11:14:22 +02:00
Francesco Lannutti
b900527341
Fixed KLU binding for VDMOS
2023-08-16 11:14:21 +02:00
Francesco Lannutti
2bfd22c8f9
Fixed KLU binding for BJT
2023-08-16 11:14:21 +02:00
Francesco Lannutti
caf1ee7c47
Fixed a crash when SPARSE is used
2023-08-16 11:14:21 +02:00
Francesco Lannutti
3c15993fe5
Fixed the case when DiagGmin has to not be loaded again and the case when refactoring returns 1
2023-08-16 11:14:21 +02:00
Francesco Lannutti
1ee798ec9d
Fixed CKTsetup for KLU when XSPICE is used
2023-08-16 11:14:21 +02:00
Francesco Lannutti
6ccaacaf1d
Added the support for KLU to VBIC Self Heating
2023-08-16 11:14:21 +02:00
Francesco Lannutti
12288f7be6
Fixed KLU memory leak during SMPdestroy
2023-08-16 11:14:20 +02:00
Francesco Lannutti
7048a24b74
Added the KLU support to Noise Analysis
2023-08-16 11:14:20 +02:00
Francesco Lannutti
4639e936a3
Fixed the dimension of the COO Trash Can
2023-08-16 11:14:20 +02:00
Francesco Lannutti
73626c62f8
Add KLU support to VDMOS
2023-08-16 11:14:20 +02:00
Holger Vogt
3bb643c8f5
re-enable CIDER with option sparse by setting CKTkluMODE
...
in new matrix to CKTkluMODE from current circuit.
2023-08-16 11:14:20 +02:00
Holger Vogt
98dd7da1c4
fix a memory leak in ASRC
2023-08-16 11:14:20 +02:00
Francesco Lannutti
613ae18db9
Fixed a memory leak
2023-08-16 11:14:20 +02:00
Holger Vogt
33eec95855
plug a memory leak
2023-08-16 11:14:20 +02:00
Holger Vogt
d5434a2df2
fix a memory leak
...
ckt->CKTmatrix is now malloced, so has to bee freed as well
2023-08-16 11:14:19 +02:00
Francesco Lannutti
967ee13940
Added a comment in NIiter
2023-08-16 11:14:19 +02:00
Francesco Lannutti
1110019ff2
Changed the PivTol in SMPreorder with PivRel
2023-08-16 11:14:19 +02:00
Francesco Lannutti
0b7dc09fc1
Fixed the accounting statistics for SPICE and CIDER about number of elements in KLU
2023-08-16 11:14:19 +02:00
Francesco Lannutti
3b1f5e6122
Changed the Error message in klusmp.c to Information
2023-08-16 11:14:19 +02:00
Francesco Lannutti
88074a23c9
Fixed 2 files due to rebasing KLU branch on the master branch - 8/7/2020
2023-08-16 11:14:19 +02:00
Francesco Lannutti
fe89da2b2c
Getting rid of SPARSE for Initial Circuit Matrix creation. Now KLU is totally independent from SPARSE. This opens up the interface for other solvers as well
...
SPARSE can still used through '.options sparse', but it isn't possible to switch from KLU to SPARSE and viceversa at run-time
2023-08-16 11:14:18 +02:00
Francesco Lannutti
4d00b67b4d
Used IF_REAL instead of IF_FLAG
2023-08-16 11:14:18 +02:00
Francesco Lannutti
49f6444957
Added "klu_memgrow_factor" option to control the KLU memory grow factor
2023-08-16 11:14:18 +02:00
Francesco Lannutti
5513f6e5f6
Handled the SINGULAR matrix case in a more clever way!
2023-08-16 11:14:18 +02:00
Francesco Lannutti
658f449c9b
Fixed the VSRCbindCSC routine
2023-08-16 11:14:18 +02:00
Francesco Lannutti
f487720b10
Fixed BJTbindCSC routine
2023-08-16 11:14:17 +02:00
Francesco Lannutti
fbd8d94cdf
Fixed again the NIiter loop for KLU
2023-08-16 11:14:17 +02:00
Francesco Lannutti
710341bbfd
Fixed KLU returns values so that NIiter can Factor again, if the matrix is numerically singular from the refactorization
...
Fixed the NIiter code to perform a factorization without reloading the matrix
2023-08-16 11:14:17 +02:00
Francesco Lannutti
72d78a2053
Added the KLU support to ADMS models
2023-08-16 11:14:17 +02:00
Francesco Lannutti
77fa5c06a9
Fixed the KLU returns values for Factorization and ReFactorization.
...
If the matrix is Numerically Singular, continue the factorization till the end
2023-08-16 11:14:17 +02:00
Francesco Lannutti
8a8adfe451
First KLU support of CIDER TWOD simulations
2023-08-16 11:14:17 +02:00
Francesco Lannutti
fdd815183a
Fix SMPfindElement for KLU
2023-08-16 11:14:17 +02:00
Francesco Lannutti
11fb209ee6
First KLU support of CIDER ONED simulations
2023-08-16 11:14:16 +02:00
Francesco Lannutti
4c351f51bd
Moved the KLU binding structures to be property of the XSPICE connections, instead of XSPICE instances
2023-08-16 11:14:16 +02:00
Francesco Lannutti
534394c0bb
First attempt of KLU support for XSPICE
2023-08-16 11:14:16 +02:00
Francesco Lannutti
6b6642fbcf
Updating CKTsetup in preparation of XSPICE support
2023-08-16 11:14:16 +02:00
Francesco Lannutti
f3127234aa
Maintain the KLU related changes under '#ifdef KLU'
2023-08-16 11:14:16 +02:00
Francesco Lannutti
a5885f0e95
Compacted the flag for KLU matrix being Real or Complex to one single bit
2023-08-16 11:14:15 +02:00
Francesco Lannutti
43f7bede8f
Added the support for .ic statement in KLU mode
2023-08-16 11:14:15 +02:00
Francesco Lannutti
f66e06b702
Fixed the KLU binding for BJT
2023-08-16 11:14:15 +02:00
Francesco Lannutti
759fc38647
Commented out some debug printings
2023-08-16 11:14:14 +02:00
Francesco Lannutti
330de64b19
Fixed the two routines for SPARSE (thx to Marcel Hendrix)
2023-08-16 11:14:14 +02:00
rlar
e31867ead9
(int) casts, applied to a double which just has been limited to INT_MAX
2023-08-16 11:14:14 +02:00
rlar
f690a2d5e9
casting, use (int) sizeof(), to swallow some warnings
2023-08-16 11:14:14 +02:00
rlar
eda8b57eb4
use TMALLOC
2023-08-16 11:14:14 +02:00
Francesco Lannutti
b87c539435
Handling the general case for an empty CSC matrix during the conversion to CSR format
2023-08-16 11:14:14 +02:00
Francesco Lannutti
8b302dfdab
Ordered the COO format also along the columns to have a correct CSR format
2023-08-16 11:14:14 +02:00
Francesco Lannutti
7b0d1ef2ac
Fixed the AC part of the Sensitivity Analysis
2023-08-16 11:14:13 +02:00
Francesco Lannutti
7f85b35260
Fixed the CSC to CSR conversion for KLU matrix-vector multiplication
2023-08-16 11:14:13 +02:00
Francesco Lannutti
463e2db25a
Fixed Sensibility Analysis for KLU - First Trial
2023-08-16 11:14:13 +02:00
Francesco Lannutti
1099b5452e
Avoid crashing during the Sensitivity Analysis in KLU, stating that it isn't supported
2023-08-16 11:14:13 +02:00
Francesco Lannutti
0429238df5
Fixed Sensitivity Analysis integration for KLU
2023-08-16 11:14:13 +02:00
Francesco Lannutti
0823ed4e16
Fixed the sign inversion calculation for the determinant of KLU
2023-08-16 11:14:13 +02:00
Francesco Lannutti
e77879ae50
Implement klu_z_print()
2023-08-16 11:14:13 +02:00
Francesco Lannutti
0afda7f89c
Implement spMatrix_CSC_dump()
2023-08-16 11:14:13 +02:00
rlar
d2562ba82f
fix vsrc for pz analysis
2023-08-16 11:14:12 +02:00
Francesco Lannutti
634156844b
Use spDeterminant_KLU
2023-08-16 11:14:12 +02:00
Francesco Lannutti
4d37c32a14
Implemented spDeterminant_KLU
2023-08-16 11:14:12 +02:00
Francesco Lannutti
4a32cfe362
Fixed SMPcZeroCol
2023-08-16 11:14:12 +02:00
Francesco Lannutti
4489f2b0b2
klu_extract_Udiag, Fixed the PZ Analysis for KLU - Added a missing KLU node in VSRC which exists only in case of PZ Analysis - Other fixes
2023-08-16 11:14:12 +02:00
Francesco Lannutti
0146a6667c
other fixes
2023-08-16 11:14:12 +02:00
Francesco Lannutti
f25b22e56a
Fixed a bug in SMPpreOrder and let KLU digest an empty matrix
2023-08-16 11:14:12 +02:00
Francesco Lannutti
dddaab6637
Implemented the Solve Transpose for KLU
2023-08-16 11:14:11 +02:00
Francesco Lannutti
6aece7faf7
Fixed the SMPcSolve routine for KLU
2023-08-16 11:14:11 +02:00
Francesco Lannutti
4a7dd29867
Enhanced KLU to avoid loosing computation cycles. The speedup is quite low, though: ~1%
2023-08-16 11:14:11 +02:00
Francesco Lannutti
15e732dbb4
fix the list of supported devices
2023-08-16 11:14:11 +02:00
rlar
e73dae237e
Added CPL Model to KLU
2023-08-16 11:14:11 +02:00
Francesco Lannutti
716fa64765
Added HISIMHV2 Model to KLU
2023-08-16 11:14:11 +02:00
Francesco Lannutti
14378755f5
Added ASRC Model to KLU
2023-08-16 11:14:11 +02:00
Francesco Lannutti
a47ed5dba4
KLU Integration from scratch #7 , devices, bsim4/ (which is bsim4v8)
2023-08-16 11:14:11 +02:00
rlar
717a99b07a
KLU Integration from scratch #6 , devices, bsim4v7/
2023-08-16 11:14:10 +02:00
Francesco Lannutti
405f206ba6
Fixed the KLU package to let it correctly compile in libngspice.so
2023-08-16 11:14:10 +02:00
Francesco Lannutti
2dcc83510b
KLU Integration from scratch #5 , devices
2023-08-16 11:14:10 +02:00
Francesco Lannutti
ce18d6846f
KLU Integration from scratch #4 , changed files
2023-08-16 11:14:10 +02:00
Francesco Lannutti
cf5991ae81
KLU Integration from scratch #1 , new files
2023-08-16 11:14:10 +02:00
Francesco Lannutti
60b4c3cda7
move include files to src/include/ngspice/
2023-08-16 11:14:10 +02:00
Francesco Lannutti
23da61873d
fix include file directories (will be in src/include/ngspice/)
2023-08-16 11:14:09 +02:00
rlar
71e403652f
delete-trailing-whitespace
2023-08-16 11:14:09 +02:00
Francesco Lannutti
9dad1ae0b7
incorporate KLU source files from SuiteSparse-3.7.0.tar.gz
2023-08-16 11:14:09 +02:00
rlar
e5c40de9e7
SuiteSparse.org, recipe for incorporation of SuiteSparse-3.7.0.tar.gz
2023-08-16 11:14:09 +02:00
Holger Vogt
2275fb85da
add a comment
2023-08-14 23:40:48 +02:00
Holger Vogt
313a0cdf66
Do not set a breakpoint at current time,
...
as this may lead to trigger a "breakpoint in the past"
message and stop the simulation, depending on double
precision details during comparison.
2023-08-14 15:56:59 +02:00
holger
57c880b6a3
Prepare ngspice-41
2023-08-13 14:03:34 +02:00
Holger Vogt
cb0e794907
Prevent buffer overflow, remove unused
2023-08-13 11:31:01 +02:00
Holger Vogt
6eb7e0ec82
Remove unused variable
2023-08-13 11:04:34 +02:00
Holger Vogt
e1e2d8a88a
Replace | by ||,
...
bug detected by code analysis
2023-08-13 11:04:19 +02:00
Holger Vogt
d90c9dd3b5
Initialize to remove VS2022 linker warnings
2023-08-13 10:01:12 +02:00
Holger Vogt
de98e49956
Set brackets to remove gcc compiler warning
2023-08-12 23:59:56 +02:00
Giles Atkinson
ad02a7c47a
Remove duplicate definition of variable idp, as compiler may warn.
2023-08-12 22:46:16 +02:00
Holger Vogt
b893e32d75
Reemove needless code, check for '}0',
...
don't do anything here if not true m=something
2023-08-12 15:11:41 +02:00
Holger Vogt
0e0c8de5ee
Remove gcc compiler warning: remove needless code
2023-08-12 15:11:32 +02:00
Holger Vogt
9c2a87a469
Remove buggy if clause, add safeguards against buggy input
2023-08-12 15:11:21 +02:00
Holger Vogt
62f803dfa5
Remove gcc compiler warnings
2023-08-12 15:11:04 +02:00
Holger Vogt
d173deea64
Activate callback, remove memory leak
2023-08-12 15:10:49 +02:00
Giles Atkinson
738881a014
Complete version of intertial delay for d_tristate. The State and
...
Strength members are treated independently and combined in the output.
2023-08-11 11:40:02 +02:00
Giles Atkinson
502f15522e
Fix an infinite loop bug that may be seen with "stop whan a>b" or
...
"stop when a<>b".
2023-08-11 11:39:17 +02:00
Brian Taylor
f16c0556af
Add support for PSpice DLYLINE.
2023-08-11 11:39:06 +02:00
Giles Atkinson
ee7250e11f
Fix a crash when trying to auto-bridge a real-valued event node
...
and improve an error message.
2023-08-11 11:38:45 +02:00
dwarning
53af7d179b
decrease iteration count for low base biasing
2023-08-11 11:38:24 +02:00
Holger Vogt
2065dee82c
Fix comment on old-style .lib
2023-08-11 11:37:49 +02:00
Brian Taylor
e235fda42b
For d0_eff, d0_gff timing models specify the 1.0e-12 minimum Xspice delay valuesrather than defaulting to 1ns.
2023-08-11 11:37:19 +02:00
Holger Vogt
d4c54123d4
Revert "Add code in ivars.c to look for a SPICE_ROOT environment variable"
...
This reverts commit 6b0ab44f1e .
2023-08-06 16:27:33 +02:00
Holger Vogt
75ce3c95e3
eprvcd [-a] [-t timescale] node node ...
...
timescale is now given by minimum 1fs, maximum 1s.
2023-07-31 14:30:53 +02:00
Holger Vogt
7c0bbcd9b2
Remove vs2022 linker warning (ctx potentially uninitialized)
2023-07-31 14:30:29 +02:00
Holger Vogt
da3dda3269
replace exp10() by pow(10, ...),
...
exp10 not available in VS2022
2023-07-31 14:30:21 +02:00
Holger Vogt
dc5291fa91
fopen_with_path enable path search (directory of recent inputs or
...
NGSPICE_INPUT_DIR)
2023-07-31 14:30:13 +02:00
Giles Atkinson
4df2e69009
Fix Bug #629 - "XSPICE d_osc failures". The old code has been completely
...
replaced by a new design that is faster, more reliable and does not
usually insert analog breakpoints.
2023-07-31 14:29:36 +02:00
Giles Atkinson
6b0ab44f1e
Add code in ivars.c to look for a SPICE_ROOT environment variable
...
that gives the location of the ngspice installation. That allows
binaries to be installed in a different directory to the one
compiled in. The spinit startup file is made location-independent
by passing a variable giving the location of loadable modules,
so this fixes Bug #615 -
"spinit contains arch dependent paths, but is installed as noarch DATA".
2023-07-31 14:29:23 +02:00
Giles Atkinson
4cc0ac846d
Add an option for parameters to the xfer code model to be provided
...
in a Touchstone-format file instead of as a model parameter.
The change to mif_inp2.c allows the "table" parameter to be omitted.
2023-07-31 14:28:40 +02:00
Giles Atkinson
84821a4cf5
Add support for including analog node changes in VCD file output,
...
and an option to explicitly set the VCD timestep. Correct the
output value for high-impedance nodes.
2023-07-31 14:28:29 +02:00
Holger Vogt
3adfa89cfc
Prevent crash when number of parameter dependencies increases beyond
...
limit. Raise the limit from 100 to 200.
2023-07-31 14:27:49 +02:00
Holger Vogt
18911b06b6
re-enable rcheck debug output with WINGUI
2023-07-31 14:27:35 +02:00
Holger Vogt
aa10f9344e
Add variable "csnumprec" to allow setting the precision of vectors
...
and variables as arguments to functions listet in manual chapter 17.5.
Default is 6, as has been standard up to now.
2023-07-31 14:27:23 +02:00
Holger Vogt
6c48657896
Make status report (MS Windows only) a little smarter.
2023-07-31 14:27:13 +02:00
Holger Vogt
fe3222a118
Add an option nginfo to enable a status report during simulation
...
(currently available only with MS Windows GUI version).
2023-07-31 14:26:40 +02:00
Holger Vogt
c66f9faaab
Remove compiler warnings (VS2022)
2023-07-31 14:26:23 +02:00
Brian Taylor
b79eca646b
Prevent crashes in udevices.c when malformed U* instances are present. This would happen with incorrectly written U* gates, ff, latches which do not conform to the PSpice specs. Instead, ERROR messages are output which, hopefully, will help a user to debug their subckt.
2023-07-31 14:26:01 +02:00
Giles Atkinson
480e269102
Allow netlist lines to grow during parameter substitution,
...
removing a 25-character limit on the size of string parameters.
2023-07-31 14:25:51 +02:00
Giles Atkinson
576f218945
Fix the NAND and NOR variants of XSPICE code model multi_input_pwl
...
and add an example of its use with the E-source NAND variant.
2023-07-31 14:25:40 +02:00
Giles Atkinson
3a260fd4d9
Fix Bug 584 - "XSPICE dac_bridge model shows incorrect output timing."
...
Remove reliance on exact breakpoint timing and tidy code.
2023-07-31 14:25:31 +02:00
Holger Vogt
bc41e48126
Change message from Circuit2 to Parse
2023-07-31 14:25:23 +02:00
Brian Taylor
4d8b105b86
Simplify expression nesting depth.
2023-07-15 11:34:09 +02:00
Brian Taylor
251f1e1984
The channel data needs to be freed for some 2D Cider devices. This shows up with some of the examples/cider/parallel circuits.
2023-07-15 11:33:52 +02:00
Holger Vogt
d74e43f0f0
Move extern declaration to the top, out of any function.
...
Thus remove VC2022 compiler warnings.
2023-07-15 11:33:11 +02:00
Brian Taylor
159e185bfe
Tidy up sp_shutdown with Cider.
2023-07-15 11:32:52 +02:00
Brian Taylor
51b361bbf0
When Cider models are present, a normal batch mode sp_shutdown (for example, ngspice -b cmosinv.cir) will call com_quit(NULL). This cleans up so that valgrind will find no leaks in Cider devices after sp_shutdown. To disable this feature, set the environment variable CIDER_COM_QUIT="OFF". Even though it really does not matter that Cider memory is cleared just before exit, it makes it cleaner for valgrind checks.
2023-07-15 11:32:37 +02:00
Holger Vogt
ba2842b55a
Prevent a crash if p==NULL (due to buggy input)
2023-07-15 11:32:26 +02:00
dwarning
794a37339a
ifft: in case input array is smaller then output array - fill in the rest with zero to prevent uninitialzed plot variables
2023-07-15 11:32:11 +02:00
dwarning
42b803e5c2
same array size for in- and output in inverse fft function from fftw3
2023-07-15 11:31:59 +02:00
Brian Taylor
25c1c971e5
Fix the Cider memory leaks from setupContacts. TWOdestroy needed to free the contact nodes.
2023-07-15 11:31:48 +02:00
Brian Taylor
f39f89ea9b
Add DEVmodDelete functions to reduce memoory leaks in Cider models. The model memory was not freed during remcirc or quit. In the future, some of the code duplication could be refactored. The cmosinv.cir is now down to just 1 memory leak.
2023-07-15 11:31:38 +02:00
Brian Taylor
db8ac72199
The CONTACT statement does not apply to 1D devices.
2023-07-15 11:31:24 +02:00
Brian Taylor
844ea11a63
Fix some more memory leaks in the CIDER 1D and 2D destroy functions.
2023-07-15 11:31:14 +02:00
Giles Atkinson
a60b7f5630
Fix sluggish output of the "Reference value" progress indicator on Linux
...
after it switched from stderr to stdout (28a3413 ). Add fflush().
2023-07-15 11:31:03 +02:00
Giles Atkinson
ac6487932b
Make the returned status of the "shell" command available as interpreter
...
variable "shellstatus". Also change the default shell to /bin/sh
as csh is now rare.
2023-07-15 11:30:48 +02:00
Giles Atkinson
1c1a53bac8
Set default colours for the button box in the X11 plot window that
...
match the default dark background of the plot.
2023-07-15 11:30:29 +02:00
Brian Taylor
80e44a32d6
Add missing FREE to reduce some of the Cider memory leaks.
2023-07-15 11:30:02 +02:00
Giles Atkinson
5f6a6a27d8
Further fix for PWL bugs introduced by 9c71db3 (Fix for Bug #607 ) and
...
partially fixed by 79c69e0 and 9c75367 . This also fixes Bug #468 -
"Bugs in src/spicelib/devices/vsrc/vsrcacct.c for PWL source."
2023-07-15 11:29:51 +02:00
Giles Atkinson
5114d6c2f4
Add an option to the iplot command: -d sets the number of simulation
...
steps before the window is shown. The value can be chosen to
limit rapid resizing when starting and that is used in the PLL examples.
2023-07-15 11:29:32 +02:00
Giles Atkinson
e5a931e537
Improve commands for vector scales. "setscale" can now change
...
or clear the scale of an individual vector and "compose" can
explicitly create a vector from XSPICE event node history.
2023-07-15 11:28:48 +02:00
Holger Vogt
d3dccc68b2
Error print output consistenly only to stderr.
...
Replace out_printf by fprint(stderr, ...
2023-07-15 11:28:25 +02:00
Holger Vogt
87f0db6f50
Prevent crash when ControlledExit* is not initialized
...
in ngspice shared library.
2023-07-15 11:28:07 +02:00
Holger Vogt
b0f2ab8764
Fix bug 637
...
Prevent crash when external current source is used.
2023-07-15 11:27:43 +02:00
Holger Vogt
90d8f7f34f
Prevent crash if EXTERNAL voltage source is used
...
Fixes
98763c0ad ("Note: ix: dc value used for op instead of transient time=0 value Former warning message or note only issued when dc value and value at transient time=0 differ.", 2022-09-20)
2023-07-15 11:27:32 +02:00
Holger Vogt
4421d95379
improve comment
2023-07-15 11:27:14 +02:00
Holger Vogt
a28784d6d7
Prevent crash if *line == NULL
2023-07-15 11:26:52 +02:00
Holger Vogt
53b72a7693
Skip title line when resorting .params, .meas, .temp
2023-07-15 11:25:27 +02:00
Giles Atkinson
762b131bb3
Fix Bug #635 - "Starting ngspice with HOME env variable unset causes segfault".
2023-07-15 11:22:13 +02:00
Holger Vogt
eda9cadbed
The 'plot' command is not available in batch mode.
...
Issue a warning and ignore it.
2023-07-15 11:22:00 +02:00
Holger Vogt
0e6b785728
Remove the error message when a simulation has been started via the .control section.
2023-07-15 11:21:40 +02:00
Holger Vogt
f5091bdc2d
Make the error message a little more reasonable.
...
Unfortunately the current setup does not easily allow naming
the offending command.
2023-07-15 11:21:11 +02:00
Holger Vogt
c7ebb7aabb
Error message up to now was strictly for command line interactive use only.
...
Improve error message when parsing .ac lines.
2023-07-15 11:20:41 +02:00
Holger Vogt
d46cd894cc
Prevent crash if s == NULL
2023-07-15 11:20:09 +02:00
Holger Vogt
7f8e1cecab
Allow ';' also at the beginning of a line.
2023-07-15 11:19:57 +02:00
Holger Vogt
c1db561373
No syntax check for title line
2023-07-15 11:19:31 +02:00
Holger Vogt
0c1f114dea
add comment
2023-07-15 11:19:03 +02:00
Holger Vogt
cb9cc7140d
Prevent crash if no or not enough coeffs are given.
...
r is then probably not the repeat coefficient.
2023-07-15 11:18:36 +02:00
Holger Vogt
3420e66705
During syntax check: v,i sources need two nodes,
...
and prevent crash upon buggy ac input.
2023-07-15 11:18:09 +02:00
Holger Vogt
29c51c0d30
Bail out if {...} or '...' are missing around RHS of the equation.
...
(...) may be possible, elsewhere additional {} are put around,
so we have {(...)}.
2023-07-15 11:17:34 +02:00
Holger Vogt
0ee5e3f32a
Add a control language function cvector, to create a complex vector.
...
Let vec1 = cvector(50)
will generate a complex vector, with the real part values
increasing from 0 to 49, the imaginary values are set to 0.
Useful in ac loops to store result data.
2023-07-15 11:17:10 +02:00
Holger Vogt
01e8b4da84
Prevent crash upon buggy user input (missing ] or >)
2023-07-15 11:16:57 +02:00
Holger Vogt
1340002c05
Improve error message
2023-07-15 11:16:43 +02:00
Holger Vogt
fc169fe23f
CIDER: Plug some memory leak
2023-07-15 11:16:22 +02:00
Holger Vogt
67b2ddbad5
CIDER: Plug some memory leaks by adding to TWOdestroy()
2023-07-15 11:16:13 +02:00
Holger Vogt
3bb9cd738f
CIDER: Plug small memory leaks in INPparseNumMod()
2023-07-15 11:16:01 +02:00
Holger Vogt
695c1e1bd6
Add an extra model stitching for CIDER only.
...
This one fills in actualLine, which is use by
parsing the CIDER model parameters in INPparseNumMod()
from inpgmod.c
2023-07-15 11:15:50 +02:00
Giles Atkinson
d31568bd83
Add parsing and translation of the FREQ form of E-source devices,
...
integrated with the existing parsing of AND/NAND/OR/NOR forms (inpcom.c).
For the implementation, add a new analog XSPICE code model, xfer.
Add an example to examples/sp.
2023-07-15 11:15:08 +02:00
Giles Atkinson
1fdf7dac51
Fix Bug #623 - "Parser warning for voltage source".
...
Do not warn when a single-element vector lacks parentheses.
2023-07-15 11:14:57 +02:00
Giles Atkinson
422a205409
Always propgate any individual scale for a vector that appears
...
in an expression, resolving conflicts by matching length and warning
only when making an arbitary choice. One effect of this is that it
is now possible to mix analog nodes with offset digital nodes
(an expression like dvalue+6) without a warning and get a correct plot.
2023-07-15 11:14:35 +02:00
Giles Atkinson
eeb912228a
When creating a plot vector from XSPICE event history, add a
...
final point at the end of the vector, so that a plotted line
does not end at the last event, leaving an odd spike.
2023-07-15 11:13:19 +02:00
Giles Atkinson
2db6b529f2
Fix Bug #630 - "pwl if r=last time, simulation never ends".
...
Allowing a PWL repeat to start at the last time-point makes no sense.
2023-07-15 11:13:05 +02:00
Giles Atkinson
f4f2f41940
Fix another error in 9c71db3a72.
2023-07-15 11:12:52 +02:00
Giles Atkinson
9099a922fd
Apply a patch from Aleksey Morozov to fix a bug that he identified
...
and reproduced. It is the same as Bug #331 -
"XSpice skips digital output point" except that it applies to the
instance queue, not the event queue.
2023-07-15 11:12:31 +02:00
Holger Vogt
ee7bcac256
Reduce excessive use of TREALLOC
2023-07-15 11:12:10 +02:00
Holger Vogt
fd24e5af7e
re-formatting the code
2023-05-27 10:50:14 +02:00
Holger Vogt
d295fe3ac6
Slightly improve error handling and warning message
2023-05-27 10:50:02 +02:00
Holger Vogt
823465ceb8
.csparam: Add some safeguarding against wrong input and crash,
...
allow multiple parameters in a .csparam row (like .param).
2023-05-27 10:49:53 +02:00
Holger Vogt
b24c613ce6
Safeguard against bad arguments (no crash upon NULL)
2023-05-27 10:49:19 +02:00
Holger Vogt
ba7ad783a8
safeguard against crash upon buggy input
2023-05-27 10:49:07 +02:00
Holger Vogt
c723e124d9
Make error message more verbose and useful
2023-05-27 10:48:57 +02:00
Holger Vogt
9b3146b1fb
Correct the warning message
2023-05-27 10:48:41 +02:00
Holger Vogt
e834c89313
Prevent a crash when number of nodes differs in subckt and X call.
2023-05-27 10:48:30 +02:00
Holger Vogt
8c9602574e
Improve error messages
2023-05-27 10:48:15 +02:00
Holger Vogt
6ea2882c3b
Plug a memory leak
2023-05-27 10:48:00 +02:00
Holger Vogt
96bebafac5
Enable history substitution of interactive commands only when variable 'histsubst' is set.
...
This feature is in conflict with ! (logic inversion)
in .control language logic expressions.
2023-05-27 10:47:27 +02:00
Pascal Kuthe
e5d1885e39
make accessible
2023-05-27 10:47:11 +02:00
Giles Atkinson
45015f974d
Add a "-w" option to the iplot command. It sets a width for the
...
window (in the current scale units) so that it does not re-scale
on overflow, but instead plots recently-generated data on a fixed scale.
2023-05-27 10:46:45 +02:00
Giles Atkinson
7a5514a1ff
In graf.c change local function set() to do what you might expect,
...
rather than the opposite. Also fix a debug message.
2023-05-27 10:46:24 +02:00
Giles Atkinson
1a97e1097f
Fix error in previous fix for Bug #607 -
...
"DC Source with Pulse stops pulsing half way through simulation".
Non-periodic PWL waveforms reverted to zero on termination.
2023-05-27 10:46:16 +02:00
Holger Vogt
923f7efab0
Prevent crash (seg fault), if measure statement is incomplete
2023-05-27 10:46:01 +02:00
Holger Vogt
66a4b2226e
.libsave: don't save the command itself, improve messaging
2023-05-27 10:44:56 +02:00
Holger Vogt
006a66b055
.libsave: Print to file the expanded library read by .lib
2023-05-27 10:44:04 +02:00
Holger Vogt
b6e9ba20b9
Add another error qualifier to decribe the current policy
...
when a doubling token exists (or is created) in the netlist.
2023-05-27 10:43:40 +02:00
Holger Vogt
c6efc6bc9c
Send 'refernce value' to stdout, not to stderr
2023-05-27 10:43:16 +02:00
Giles Atkinson
ad5bb9eb8d
Fix Bug #607 -
...
"DC Source with Pulse stops pulsing half way through simulation".
Do not require breakpoints to be hit almost exactly before scheduling
the next one. That may cause the next breakpoint to be lost.
2023-05-27 10:43:01 +02:00
Holger Vogt
50a9daf24a
Line concatenation: use dstring instead of tprintf:
...
Parsing time of Skywater libs reduced by more than 35%.
2023-05-27 10:42:47 +02:00
Holger Vogt
972ff885d0
Suppress (rare) crashes during setiup
...
if device or model lists are missing.
2023-05-27 10:42:27 +02:00
Holger Vogt
6c9994ea9f
Remove linker warnings in MSVC
2023-05-27 10:42:12 +02:00
Holger Vogt
0b73d95f13
Formatting
2023-05-27 10:41:56 +02:00
Holger Vogt
962d9d2998
Avoid user induced buffer overflows.
...
Check against NULL pointer.
2023-05-27 10:41:49 +02:00
Holger Vogt
d2177bbd69
Prevent reading from NULL
2023-05-27 10:41:40 +02:00
dwarning
924dc10368
get the right place for variable declaration
2023-05-27 10:41:29 +02:00
dwarning
a4f6a777c0
few cleanings to prevent compiler warnings
2023-05-27 10:41:21 +02:00
dwarning
5c32a3fb9c
prevent unitialized variables
2023-05-27 10:41:12 +02:00
Brian Taylor
6b85bcb805
Allocate compound gate connectors where needed.
2023-05-27 10:41:04 +02:00
Brian Taylor
de34a90bb4
Create correct translations of degenerate compound gates with $d_hi/$d_lo inputs.
2023-05-27 10:40:51 +02:00
Holger Vogt
a39052cd14
Make voltage ramp smooth around 0 and around end of ramp.
2023-05-27 10:40:42 +02:00
Holger Vogt
678a6582f6
A preliminary fix to reduce the amount of missing pulses considerably.
...
Probably not yet the final solution.
2023-05-27 10:40:32 +02:00
Holger Vogt
4231ad3f5f
Prevent reading from NULL when user input is something like .ic=v
2023-05-27 10:40:24 +02:00
dwarning
02109587ee
not to forget the overlap capacitances in AC
2023-05-27 10:40:08 +02:00
dwarning
56b5041266
selfheating only with rth>0
2023-05-27 10:39:48 +02:00
dwarning
2fff3e2bc0
use true vector size for memcpy
2023-05-27 10:39:39 +02:00
dwarning
de09636d1a
general update: fix temperature update, improve performance
2023-05-27 10:39:33 +02:00
dwarning
f33e899fda
white spaces
2023-05-27 10:39:25 +02:00
dwarning
d053fbda93
vbic: correct soa-check warning for C-S branch
2023-05-27 10:39:14 +02:00
Holger Vogt
797795e7c0
Shift all compatibility handlinmg from inpcom.c into its own source files
...
inpcompat.c and inpcompat.h
2023-05-27 10:39:05 +02:00
Brian Taylor
14a403e193
Use ~ on the input of a tristate buffer for INV3, and avoid creating an extra inverter. For ff/latch use ~ on set/reset and jkff clock inputs to avoid creating extra inverters.
2023-05-27 10:38:40 +02:00
dwarning
b5d5cfd543
vbic: selfheating switch selft has priority, but keep compatibility
2023-05-27 10:38:25 +02:00
Holger Vogt
d53acbed8e
Add noise capability to XSPICE code models
...
Coded according to acan., AC analysis
MIF_NOI is not yet supported by any code model, so
MIF_AC is used (code models behave like in ac mode,
they are noiseless.
2023-04-02 15:06:28 +02:00
Holger Vogt
3c41ab1190
Formatting with MSVC2022
2023-04-02 15:06:23 +02:00
Giles Atkinson
5aa48cab0b
Do not generate netlist lines that use non-existent libraries.
...
To support that, give global scope to function inp_pathresolve()
in inpcom.c. Update internal documentation (long comment).
2023-04-01 13:56:12 +02:00
Holger Vogt
8f8f7ff8ab
Command 'listing r': No extra formatting, truncation etc.
...
of netlist lines when printing to file or console.
2023-04-01 13:50:17 +02:00
Holger Vogt
95c4c0f587
Add inertial.h to the distributable headers
2023-03-25 15:36:15 +01:00
Holger Vogt
311ddeac0d
Prepare for ngspice-40
2023-03-24 22:27:12 +01:00
Holger Vogt
062785319a
When '.probe alli' is set, disable auto bridging and set a flag
2023-03-24 22:10:18 +01:00
Holger Vogt
ce38a768b5
typo
2023-03-24 22:10:12 +01:00
Holger Vogt
c30af55491
Add operating point information to SOA check,
...
using vbefwd, vbcfwd, and vsubfwd
Operating point heck is enabled by .options warn=2
2023-03-24 22:10:07 +01:00
Holger Vogt
443567dbaf
Add SOA-check for collector-substrate diode (model parameter bvsub)
2023-03-24 22:09:55 +01:00
Holger Vogt
ff77c583d7
Add model parameter selft, to switch on self-heating, default: off (selft=0)
2023-03-24 22:09:42 +01:00
Giles Atkinson
5197200fb3
Fix crash reported by Brian Taylor. If "source" is used after
...
analysis, the circuit is both deleted and destroyed. Beware of
double frees.
2023-03-22 14:30:18 +01:00