Commit Graph

7848 Commits

Author SHA1 Message Date
Justin Fisher 8fd86075c1 Reviewer: Please look at openva_location.txt and justins_osdi_modification.txt 2026-07-06 17:52:16 +02:00
Justin Fisher 39a5ea338b parser: 5-node count for bsimbulk/bsimcmg_va in model_numnodes
Without this entry, OSDI BSIM-BULK / BSIM-CMG models fall through
to model_numnodes()'s default 'return 4'.  The two consumers in
INP2M() (the 'too many nodes' check and the node-binding loop)
then set up only 4 GENnode slots on the instance.  The OSDI
runtime's node_mapping[] reads its 5-port descriptor and picks
up a stale/wrong node index for port 5 — effectively rewiring
the body (or temperature) terminal to a random node.

Symptom: PMOS body diode forward-biased through the supply.
A simple CMOS inverter draws amperes in steady state and fails
to switch rail-to-rail.  This branch demonstrates the bug
(without this commit) and the fix (with it).

Also add bsimcmg_va to the model-type allowlist in INP2M() for
consistency with bsimbulk (which was added in the previous
commit).
2026-06-01 14:39:52 +02:00
Justin Fisher 4db43d9612 parser: fix BSIM-BULK (level 77) model type lookup for OSDI MOSFETs
inpdomod.c: Add case 77 to the MOS level switch so that .model lines
with level=77 resolve to the bsimbulk OSDI device type instead of
leaving INPmodType=-1.  Without this, BSIM-BULK model cards are
registered with an invalid type and instances later fail to load.

inp2m.c: Add bsimbulk to the model-type allowlist in INP2M() so that
MOSFET instances using an OSDI BSIM-BULK model (M-prefix) are accepted
instead of rejected with 'incorrect model type'.

This is the minimum subset needed for a single-model BSIM-BULK test
case to parse.  The multi-bin handling change to inpgmod.c that
accompanied the original fix is omitted here — it is unrelated to the
PMOS-polarity wiring demonstration this branch is for.
2026-06-01 14:38:40 +02:00
Justin Fisher fe6476f9f6 Add pre_osdi alias and set sourcepath case preservation
- commands.c: register pre_osdi as alias for osdi command so existing
  scripts using pre_osdi continue to work
- inpcom.c: add set sourcepath to the preprocessor case-preservation
  exception list; the lowercasing pass was corrupting uppercase letters
  in paths (e.g. VA_test -> va_test), causing source to fail on
  case-sensitive filesystems
2026-05-27 09:23:12 +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