Commit Graph

7935 Commits

Author SHA1 Message Date
Giles Atkinson 0f0f80f34f Add new capabilities to the adc/dac_bridge XSPICE code models.
If either bridge has a single analog connection and two or more digital
connections it will act as a conventional multi-bit ADC or DAC.
When the low threshold is higher than the high threshold, adc_bridge
acts as a Schmitt trigger.
2026-07-08 22:45:21 +02:00
Giles Atkinson 37b6fda497 Simplify adc_bridge, also removing excess white space. 2026-07-08 22:44:59 +02:00
Holger Vogt 62f0b2d8cc New behavioral capacitor model:
- Replace E source by G source with parallel resistor to improve
  convergence.
- Add parallel resistor to avoid floating nodes
- Reduce refecrence C to 1u (and thus the max. current).
2026-07-08 22:44:49 +02:00
Holger Vogt c961118650 Add error message if scale and data vector lengths do not match 2026-07-08 22:44:28 +02:00
Holger Vogt 8c68d55067 Update the copyright notice 2026-07-08 22:44:21 +02:00
Holger Vogt d7db4192a8 Replace lengthy call to CKTcircuit by new TSTOP and TSTEP macros 2026-07-08 22:44:10 +02:00
Holger Vogt 28df521b11 Set TSTEP and TSTOP also when MIF_DC, as this is needed
when initialising a code model during op before a tran sim.
2026-07-08 22:43:56 +02:00
Holger Vogt e2f397f9b5 Add two macros TSTEP and TSTOP to XSPICE 2026-07-08 22:43:50 +02:00
Holger Vogt 1caee7903e Improve the error messages when reading a state file.
Bail out when the read has not been successfull.
2026-07-08 22:43:42 +02:00
Holger Vogt 9a79af8a3e Add MODEDCTRANCURVE to enable returning capacitance upon dc sweep.
Exclude integration if MODEDCTRANCURVE is active (forward,
self-heat and reverse diode)..
2026-07-08 22:43:26 +02:00
Holger Vogt e073718c0e Add MODEDCTRANCURVE to enable returning capacitance upon dc sweep.
Exclude integration if MODEDCTRANCURVE is active.
2026-07-08 22:43:19 +02:00
Holger Vogt 95414ec09b No integration, if dc sweep is to return cpacitances 2026-07-08 22:43:08 +02:00
Holger Vogt 08f2541d34 Reset ckt->CKTag[0] and ckt->CKTag[1] upon successful return
from transient simulation.
2026-07-08 22:43:02 +02:00
Holger Vogt 72620328a1 Excluded integration during self-heating as well. 2026-06-01 19:48:50 +02:00
Holger Vogt d029ed02db Diode: No integration if dc sweep, but keep calculating capacitances 2026-06-01 11:02:45 +02:00
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