Commit Graph

7920 Commits

Author SHA1 Message Date
Holger Vogt 973b6b6d49 No integration if dc sweep, but keep calculating capacitances 2026-05-31 15:57:26 +02:00
Holger Vogt e53325583b Don't check for tperiod, which is not used when the
distributed pulse is applied.
2026-05-26 16:02:36 +02:00
Holger Vogt 037b6578f8 gain cell as an example for the declarative small signal noise approach 2026-05-24 09:58:53 +02:00
Holger Vogt afac24be24 Re-format 2026-05-22 21:20:58 +02:00
Holger Vogt 7b045a99b2 improve comment 2026-05-22 21:16:16 +02:00
Holger Vogt 1ec7f8168f Make structure equal to dllitf.h
Fixes bug 840
2026-05-22 21:15:50 +02:00
Holger Vogt 8b32c743ae Update to the SEEgenerator as describes in README.SEEgenerator 2026-05-22 17:32:46 +02:00
Brian Taylor abcbcbd724 Completed and cleaned up memory leak fixes in:
inpc_probe.c outitf.c inpcom.c niiter.c
cherry-pick of this one commit should be OK.
2026-05-19 10:50:35 +02:00
Holger Vogt 6b7cde537d Reset plot list to const plot. 2026-05-11 15:10:21 +02:00
Holger Vogt 3dce275b16 reset time to 0 upon initialisation of shared ngspice 2026-05-11 15:09:32 +02:00
Holger Vogt 95cf8738da Avoid compiler warning (VS2022) 2026-05-10 16:36:35 +02:00
Holger Vogt 201ae8cac7 Allow building without soundfile libraries.
Emit error message if soundfile source is requested.
2026-05-10 16:35:28 +02:00
Giles Atkinson 7cba7ddee0 Allow building without soundfile libraries. 2026-05-10 15:31:58 +02:00
Giles Atkinson 96c81fd58c Add CPP macros to allow XSPICE macros to be used in local functions. 2026-05-10 15:31:52 +02:00
Giles Atkinson 785be3194c Fix two bugs in the "let" command:
"let plot.vec = ..." fails when creating a new vector;
 if the new vector does not exist, "let" may modify a "const" value.
It is likely that existing scripts rely on the second one,
so variable "sanelet" must be set to enable the fix.
2026-05-10 15:31:48 +02:00
Giles Atkinson 954242616d Filter duplicate entries in sourcepath. 2026-05-10 15:31:44 +02:00
Giles Atkinson 93567da529 Do not report an error when correctly indexing a length-1 vector. 2026-05-10 15:31:40 +02:00
Giles Atkinson 07ca1354eb Disable output redirection for "let" so that normal comparison
operators may be used.
2026-05-10 15:31:30 +02:00
Giles Atkinson 06afc7c1da Command "setplot new" may set name and description of the new plot. 2026-05-10 15:31:25 +02:00
Giles Atkinson 9ad729ec15 CMPP: also skip over single-quoted strings in code-model source. 2026-05-10 15:31:17 +02:00
Giles Atkinson 0f693a55d0 Fix Bug #776 -
"vlnggen fails to find verilator in MSYS2/MINGW64 on Windows 10".
Patch by Chaojun.
2026-05-10 15:31:13 +02:00
Holger Vogt 55dc72a01f Restrict time step equalising: don't do it with next breakpoit
at TSTOP, as simulations with may fail with ever decreasing time step.
2026-05-10 11:07:31 +02:00
dwarning b4ecedc616 vdmos bulk diode with smart recovery model 2026-05-09 15:55:27 +02:00
Holger Vogt 19217bf018 Fix a bug reported by Dmitriy, take 2: use 1 to length-1 2026-05-08 10:53:02 +02:00
Holger Vogt 288b2808ab Fix a bug reported by Dmitriy: use length-1 2026-05-06 16:14:10 +02:00
Holger Vogt 3f3194babf Update to meas: stdout-->stderr, remove unusable error message,
reported by Dmitriy
2026-05-04 16:54:53 +02:00
Linus Torvalds a1cd8d0565 Allow loading the entire audio file at vsjack_open() time,
get the actual oversampling, to allocate the sample space.
2026-04-30 13:06:31 +02:00
Linus Torvalds b672580181 Add some reset to -re-enable consecutive simulations 2026-04-30 13:06:31 +02:00
Linus Torvalds 6694fd882d Patch fixes bug in the original linear interpolation,
along with generating a proper "streaming" resampled output.
2026-04-30 13:06:31 +02:00
Holger Vogt 70a1c3fc6e Improve error messages.
Oversampling default is 4.
2026-04-30 13:06:30 +02:00
Holger Vogt f3a243fd1f Make types compatible, change from int to size_t 2026-04-30 13:06:30 +02:00
Holger Vogt d71146a37a Formatting
Replace tabs by spaces
2026-04-30 13:06:30 +02:00
Holger Vogt 9f2f8bd567 Oversampling default is 1 2026-04-30 13:06:30 +02:00
Holger Vogt d26c19f984 Remove source of memory errors: read and write beyond boundaries
caused segfaults.
2026-04-30 13:06:29 +02:00
Holger Vogt 5bf1e82ac3 Just a small fix 2026-04-30 13:06:29 +02:00
Holger Vogt f4c56990f8 prevent a segfault when TSTOP less than TSTART in tran command 2026-04-30 13:06:28 +02:00
Holger Vogt 17665eb843 allow other simulation types, e.g. ac
prevents crash
2026-04-30 13:06:28 +02:00
Holger Vogt 831754e71a Enable standard search paths for *.wav file search. 2026-04-30 13:06:28 +02:00
Holger Vogt 44a625e4df add dot commands .sndprint, .sndparam in inp.c 2026-04-30 13:06:28 +02:00
Holger Vogt 852c48194b Formatting: tabs to spaces 2026-04-30 13:06:27 +02:00
Holger Vogt 50c5a8e2ea Remove unused 2026-04-30 13:06:27 +02:00
Holger Vogt ab32d47860 replace exit() by controlled_exit() 2026-04-30 13:06:26 +02:00
Holger Vogt 93dbc846a3 declare functions and variables static, if so 2026-04-30 13:06:26 +02:00
Holger Vogt c1a35dbb92 reformat vsjack.c 2026-04-30 13:06:26 +02:00
Holger Vogt f6c78d8e9e Use the current method to set the coefficients 2026-04-30 13:06:26 +02:00
Holger Vogt 3d82891a87 reformat, set better error message for src_process() 2026-04-30 13:06:26 +02:00
Holger Vogt feb89e07dc add progress report when entering wav output stage 2026-04-30 13:06:26 +02:00
Holger Vogt 8c157b887e add commands sndprint, sndparam with
associated functions com_sndprint and com_sndparam
2026-04-30 13:06:25 +02:00
Holger Vogt fd254d7620 add dotcards .sndparam and .sndprint 2026-04-30 13:06:25 +02:00
Holger Vogt 80b93edfe5 ngspice.h and controlled_exit() instead of exit() 2026-04-30 13:06:25 +02:00
Holger Vogt 9fad8e3934 add sound capability to vsrc
see https://sourceforge.net/p/ngspice/patches/13/
2026-04-30 13:06:25 +02:00
Holger Vogt e1e0d08ad5 add files sndprint, vsjack 2026-04-30 13:06:25 +02:00
Holger Vogt d20315309f Do not replace GND by 0 f if GND is used inside of the subcircuit
and is referenced on the .subckt line, and ps is set.
This will allow using this subcircuit with non-zero reference
voltage.
2026-04-30 11:26:17 +02:00
Holger Vogt b8e595a0e7 cosmetics 2026-04-29 13:34:43 +02:00
Holger Vogt 2a246632bb Add instance parameters td anr to the ISRC pwl source,
like has been available with voltage source VSRC.
2026-04-29 13:34:22 +02:00
Holger Vogt 51ebf841ac Make the memory printout more portable and readable.
Avoid integers, uses doubles.
2026-04-28 20:17:01 +02:00
Holger Vogt cb1a29b8c0 If newcompat.ki is enabled, allow /gnd and /0 (local ground symbols
in KiCad and replace them by true ngspice ground 0 .
2026-04-28 16:19:12 +02:00
Holger Vogt 9ef52c10b9 newcompat.ki has already been set in sharedspice.c 2026-04-28 16:17:35 +02:00
Holger Vogt eb751c5767 Add a function get_calling_process_nameto retrieve
the name of the calling process.
Use this function to identify Eeschema as caller for
automatically setting the compatibility flag ki.
2026-04-28 14:35:09 +02:00
Holger Vogt 5333bf658c Use updated eng() to print frequency with k, M, G prefixes. 2026-04-28 11:51:55 +02:00
Holger Vogt 7cf526ce4c Update memory check:
Only for WINDOWS baile out if requested memory is larger than existing.
For other OSs issue a warning, but then move on.
2026-04-28 11:50:46 +02:00
Holger Vogt 2c461c4441 Update the eng() function.
Allow outputting bytes in multiples of 1024.
Reformatting of file.
2026-04-28 11:49:13 +02:00
Holger Vogt b00d8daf58 In case of error allow portable printing of 64bit integers 2026-04-28 11:43:27 +02:00
Holger Vogt 9007ffab23 Enable printing outputs with engineering exponents 2026-04-26 12:08:08 +02:00
Holger Vogt be9d1df1d2 Improve error message 2026-04-25 17:17:09 +02:00
Holger Vogt 2c0aabd760 Remove linker warnings (VS2022) 2026-04-25 11:46:35 +02:00
Holger Vogt 1636ca3ce1 Show that the external process 'gnuplot' is running (Windows only) 2026-04-24 23:30:00 +02:00
Holger Vogt 35b487108c Update to notes and error messages
Use stderr or stdout adequately
Reported by Dmitriy
2026-04-24 21:00:51 +02:00
Holger Vogt b0a625a496 Use controlled exit
Bug reported by Dmitriy
2026-04-24 21:00:07 +02:00
Holger Vogt c9aac14fc1 Fix a bug reported by Dmitriy, replace = by == 2026-04-24 20:59:35 +02:00
Holger Vogt e6e3d62118 Fix a bug in the SFFM current source, reported by Dmitriy.
Enable TD.
2026-04-24 19:53:45 +02:00
Holger Vogt 24240d0e9a All paths return a value 2026-04-24 19:52:22 +02:00
Holger Vogt 665a4944eb Fix a bug, reported by Dmitriy 2026-04-24 17:58:09 +02:00
Holger Vogt 597358f4a8 remove linker warning. 2026-04-24 15:58:05 +02:00
Paul Campbell 5490c3c33d ngspice crashes in eprvcd with 3 or more analog parameters.
Fixed by changing the parameter sequence and zeroing the initial array.
2026-04-24 15:28:49 +02:00
Holger Vogt 08accebcd3 Move the memory check to a place where it is called once only per plot 2026-04-24 15:21:34 +02:00
Holger Vogt 215dd0e136 Status display 'shell', if shell command takes its time. 2026-04-24 14:47:15 +02:00
Seth Hillbrand 6bb89dac01 Implement MIFnoise(), the generic noise callback for all XSPICE code
models. Two discovery modes are supported: declarative, where models
define reserved parameter names (noise_voltage, noise_current,
noise_corner, noise_exponent) and get automatic noise sources and
programmatic, where models register sources via cm_noise_add_source()
during MIF_NOI analysis calls.
2026-04-22 08:45:28 +02:00
Seth Hillbrand 5afef46b5c OTA (operational transconductance amplifier) code model as a
reference implementation that exercises the programmatic noise interface.
2026-04-22 08:45:28 +02:00
Seth Hillbrand 013408ac08 Implement MIFnoise(), the generic noise callback for all XSPICE code
models. Two discovery modes are supported: declarative, where models
define reserved parameter names (noise_voltage, noise_current,
noise_corner, noise_exponent) and get automatic noise sources and
programmatic, where models register sources via cm_noise_add_source()
during MIF_NOI analysis calls.

Also add an OTA (operational transconductance amplifier) code model as a
reference implementation that exercises the programmatic noise interface.
2026-04-22 08:45:27 +02:00
Holger Vogt 4614452f19 Info message to stdout, not stderr 2026-04-21 20:01:48 +02:00
grayfox 4cf82e6a52 Fix NULL dereference of getpwuid() result and missing tfree() 2026-04-21 20:00:46 +02:00
Holger Vogt 668329ca3e PSS updates:
Remove 1e6 factor from lines 647-653: this will re-enable convergence.
Exclude division by pred[i] if it is 0.
If predsum is 0, go out sucessfully.
Improve comments.
Add updates from dctran.
2026-04-20 17:06:53 +02:00
Holger Vogt 21b3131e12 Implement getrusage() with ru_maxrss permanently for Apple ARM. 2026-04-18 13:27:07 +02:00
Holger Vogt 7859aa0db9 Updating the 'available memory' measurement for Apple ARM 64 bit 2026-04-17 17:10:31 +02:00
Holger Vogt a2a22c0cee Improve PSS error messages 2026-04-11 14:49:32 +02:00
Holger Vogt 8351188e60 PSS: new breakpoint deletion, copied from dctran.c:
no more endless loop.
Tiny updates to comments
PSSDEBUG flag added
2026-04-11 14:23:20 +02:00
Holger Vogt b9221a07a3 Fix a bug when evaluating -0.5^3.
Use code which has been up to now only applied with LT compatibility.
2026-04-11 14:12:52 +02:00
Holger Vogt afd4eb64ed Fix a bug introduced by yesterday's commit
8abfb5aeb0/
2026-04-07 22:25:27 +02:00
Holger Vogt 8abfb5aeb0 Remove unused ft_gidb
Add debug ft_shvecsearch
Make ft_codemodelerror more verbose.
2026-04-06 14:15:42 +02:00
Keith OHara 0638aaa160 Continue Newton iteration until currents settle.
For each type of device, a *convTest function determines if the
current through that device is converged within tolerance,
and sets CKTnoncon if the current is not yet converged.

ASCRconvTest() erroneously subtracted old current from old,
rather than old from new, when evaluating convergence.

Also, since at least 3f5, the calling function NIconvTest assumed
that the worker functions indicated non-convergence through their
return value, so was ignoring the reports of current nonconvergence.
2026-04-06 00:01:12 +02:00
Holger Vogt 55189b01fe Remove obsolete adms branch 2026-04-04 15:25:06 +02:00
Holger Vogt 864ee815bc Update VSRC and ISRC pulse sources
Enable PW=0, improve 'incomplete' pulse specifications

TR negative or 0 --> TR = ckt->CKTstep
TF negative or 0 --> TF = ckt->CKTstep
if PW not given, but TR and TF --> PW = 0
PW < 0 --> PW = ckt->CKTfinalTime
PER <= 0 --> PER = ckt->CKTfinalTime
2026-04-04 15:23:01 +02:00
Holger Vogt 18cbaad36c Revert "V Pulse delivers erratic outputs, when not parameterized properly."
This reverts commit 7159d6aa4b.
2026-04-04 13:50:43 +02:00
Holger Vogt 5eb1b0a510 Revert "Move comment"
This reverts commit dd2a5fd062.
2026-04-04 13:50:36 +02:00
Giles Atkinson ae4a05158b Ugly fix for failing MacOS builds on github: move parse-binon.y to the top.
BUILT_SOURCES seems not to work.
2026-04-01 09:53:34 +01:00
Giles Atkinson 82c91abea4 Discard all XSPICE event data when using "-b -r", as there is no way
to access it.  An initial step for FR #105: "Esave + rawfile".
2026-04-01 07:35:20 +01:00
Giles Atkinson e42a9e6b5c Fix excessive forcing to lower-case in pure script files.
Add string comparisons as protected commands so they can be case-sensitive.
2026-04-01 07:35:20 +01:00
Giles Atkinson 3586cbcbea Fix crash when a "*ng_script_with_params" script is called
from a control section.
2026-04-01 07:35:20 +01:00
Holger Vogt 499c1d3dca We develop towards ngspice-47 2026-03-30 16:08:41 +02:00