Commit Graph

9322 Commits

Author SHA1 Message Date
Giles Atkinson 990c17ae64 Add new functions for .param expressions. vec() takes a string argument
and fetches a vector value from the current plot or "const".  var() is similar
but fetches an interpreter variable.
2025-10-16 18:04:46 +01:00
Giles Atkinson 172fb6d668 Fix Bug 817 - "Global models are not visible from with subcircuits".
Remove code that can miscount the number of nodes to be renamed.
2025-10-08 18:19:17 +01:00
Holger Vogt bbceec30d0 Re-enable warning note when rusage xxx is not implemented. 2025-10-07 15:36:27 +02:00
Holger Vogt 236967a21e Improve error message: add source type 2025-10-06 17:30:38 +02:00
Holger Vogt 8585383654 Improve error messages. Towards better locating of errors:
Remove entry to avoid false file readings.
Still to do: Return correct fline numbers, when reading large PDKs.
2025-10-06 17:07:27 +02:00
Holger Vogt fafb8cc272 Improve on truncation when printing out the .model lines during debug-out 2025-10-04 19:59:19 +02:00
Holger Vogt 875aaaf530 Add info for line source 2025-10-04 19:58:22 +02:00
Holger Vogt cec426292f Improve reading the source code sequence by extra comments:
While searching for 'Parsing the circuit', the sequence of major
functions is revealed.
2025-10-03 15:45:47 +02:00
Brian Taylor 7ab6c6f4af Update and clarify the comments at the top of udevices.c, which should make it easier when someone in the future has to make changes. 2025-10-03 15:43:03 +02:00
Brian Taylor 4f5c23ba44 Add a correction to the previous change of inppas4.c, which freed devname and left instance name pointers in DEVnameHash pointing at freed memory. This commit adds the devname string to the symbol tables which are eventually cleared by INPtabEnd. Also, if a capacitor in the spice netlist has the same name (unlikely, but possible) as a shunt capacitor, then no shunt is created, and a warning is issued. 2025-10-03 15:42:58 +02:00
dwarning 931e223493 correct init state vector for qth integration 2025-09-25 17:09:33 +02:00
Holger Vogt c5dd1bd379 Typo 2025-09-23 22:57:48 +02:00
dwarning 2a5f9e3ba8 correct xoi and xom defaults to Angstrom and clarify comments 2025-09-23 17:02:42 +02:00
dwarning 1921d64163 count level=3 model poly and metal capacitance in charge calculation 2025-09-23 16:47:52 +02:00
Brian Taylor 6619b7265e Fix memory leaks in INPpas4 and get_number_terminals found using paranoia_parallel. 2025-09-21 22:44:12 +02:00
Holger Vogt daf687a680 Add short description of code model 2025-09-21 16:23:35 +02:00
Holger Vogt b8357edddc Add analog code model astate.
It reports the previous state (delayed by 1 to 3 time steps)
of the input node. Single or differential voltage or current.
2025-09-21 15:52:51 +02:00
Holger Vogt 144f1c6fc6 Improve the error message by naming the port 2025-09-21 11:55:39 +02:00
Holger Vogt adcc1de2fb Exxx n1 n2 nc1 nc2 TABLE = (x0, y0, x1, y1, x2, y2)
is now supported in addition to already existing
Exxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
2025-09-19 16:54:56 +02:00
Holger Vogt 537116424f add new function gettok_node_br which adds braces { } on its list
of ignored characters.
2025-09-19 16:53:11 +02:00
Holger Vogt 91c5fe7926 Cosmetics: Indentation 2025-09-17 14:46:18 +02:00
Holger Vogt aadd12965b Enable plain expression instead of only a number for area
in bipolr device instances.
2025-09-17 10:15:42 +02:00
dwarning 8b9047ed8a remove obsolete bracket 2025-09-16 18:44:51 +02:00
dwarning 056ca890fd remove old commented strncmp version check code 2025-09-16 18:33:55 +02:00
dwarning f314e2b41c Merge commit '683e208d87f431eb175a368d63dc10f2311a7bf7' into pre-master-46
Fixes in BSIM4 4.8.3 contributed by A. Buermen
2025-09-16 17:58:21 +02:00
Holger Vogt 2b1dc09caf Improve detection of the number of terminals for bipolar devices.
Fixes bug no. 807.
2025-09-16 15:08:34 +02:00
Árpád Bűrmen 683e208d87 BSIM4 version 4.8 is considered to be the latest, i.e. 4.8.3. 2025-09-16 13:37:50 +02:00
Árpád Bűrmen c6a6bd9edb Scaling of NQS charge deficit with mult_q. 2025-09-15 12:04:44 +02:00
Árpád Bűrmen 06b73b4056 ceqqjd, ceqqjs should be scaled with mult_q.
This fixes erratic simulation behavior when
mult_i != mult_q.
2025-09-15 10:30:18 +02:00
Árpád Bűrmen 535e22a502 Fixed a bug causing mult_* factors to get scaled at each setup(). 2025-09-15 10:23:11 +02:00
Holger Vogt 8249142506 Spelling
Found by Lintian, patches provided by C. Schoenert
2025-09-13 12:18:05 +02:00
Árpád Bűrmen 740670805e Check if toxp+dtox!=toxe with double precision tolerance. 2025-09-12 10:10:48 +02:00
Árpád Bűrmen e4aa062156 icvgs, icvds, icvbs exposed as BSIM4v8 parameters. 2025-09-12 10:04:52 +02:00
Árpád Bűrmen 5900f70438 Fast version checks in BSIM4. 2025-09-12 10:04:29 +02:00
Brian Taylor 57dd3342ef Enable CIDER with KLU for DC, OP, and TRAN analyses. Small signal AC analysis is not yet supported for CIDER complex valued device KLU matrices. The examples/cider testcases produce printed simulation result values which have slight differences between Sparse and KLU. Differences are probably expected and in a few cases are ~1-2%, sometimes a little more. This should be good enough for most CIDER analyses. Francesco did a good piece of work. Runtimes are significantly shorter with KLU. 2025-09-08 23:33:41 +02:00
Holger Vogt 0a739f6b76 Remove files that are remade anyway.
Makefile.in prescribed using aclocal 1.16. The fix removes any
dependency on the autotool version.
Fixing bug 806.
2025-09-07 18:49:22 +02:00
Holger Vogt 434863651e Updated as it is on master 2025-09-07 18:46:21 +02:00
Holger Vogt aa3ab5bc25 Fixing bug 804.
Using function get_windows_canonical_path() may neglect the
ngspice file search sequence, as an absolute path is returned also
for relative input paths. ngspice however searches a file not only
relative to the current directory, as inforced by this
function, but for example also in the directory of the previous
input file.

So restrict this function to paths longer than MAX_PATH, which would fail
otherwise.
2025-09-06 17:47:21 +02:00
Holger Vogt 4693173d37 Revert "Fix a bug in the Windows Builds:"
This reverts commit ecb288138f.
2025-09-06 17:46:50 +02:00
Holger Vogt a754cc187b free(info.errors) leads to a assertion error on the heap.
On Windows it reads:

is_block_type_valid(header->_block_use).

Memory for info.errors is allocated in the osdi device dll
during the call to

      descr->setup_instance((void *)&handle, inst, model, temp,
                            connected_terminals, sim_params, &init_info);

(in fcn OSDIsetup(), line 254 of osdisetup.c).
Therefore ngspice is not the owner of this memory and thus cannot free it.

Fixes bug no. 803.
2025-09-04 00:25:26 +02:00
Holger Vogt ecb288138f Fix a bug in the Windows Builds:
With commit
80d6e681f ("MS Windows: Get a canonical paths name: Important if path length exceeds MAX_PATH, might happen when using  PDKs", 2025-04-12)
the newly introduced function get_windows_canonical_path() does not do the
right thing when the path name is only a simple file name. Then internally
used function GetFullPathNameW() then will prepend the current directory to the
file name, which may be simply wrong.
2025-09-04 00:03:25 +02:00
Holger Vogt 0e8cc00070 We are developing towards ngspice-46 2025-09-02 17:07:07 +02:00
dwarning b19f5ca4c3 bsim4: unify error printout 2025-09-02 11:40:11 +02:00
dwarning ecac7a07a2 bsim4: reimplement mobility and binning extension 2025-09-02 11:15:38 +02:00
dwarning 82bf2169b1 reply commit e5c162f1: dc sweep fails after transient sim 2025-09-02 10:10:33 +02:00
dwarning a97dcda62b prevent warning if NOBYPASS is not defined 2025-09-02 09:50:20 +02:00
dwarning 32c50aa254 adapt instance parameter extension to new bsim4 multiplier concept 2025-09-02 09:44:16 +02:00
dwarning 86c78150b7 add KLU bindings for diode selfheating effect, bug #802 2025-08-31 15:16:05 +02:00
Holger Vogt dbb1db8b9d add tlines files to distribution 2025-08-29 23:55:36 +02:00
Holger Vogt d61a1e4090 Prepare for ngspice-45 2025-08-29 15:50:25 +02:00