Commit Graph

7833 Commits

Author SHA1 Message Date
Holger Vogt 329343a31e Fix a bug. 2026-02-03 14:09:43 +01:00
Holger Vogt 89c03ca640 fix bug no 819, which has been introduced by
d5ef8a366 ("Remove all entries connected to IPC, an outdated (>30 years) method to link ngspice to a now defunct controller (ATESSE).", 2025-10-21)
2026-02-03 14:09:22 +01:00
Holger Vogt 31a8486c03 make nthreads local 2026-02-03 14:08:42 +01:00
Holger Vogt 6004d9aef9 Improve comments 2026-02-03 14:08:28 +01:00
Holger Vogt 4d24b18f35 Remove all entries connected to IPC, an outdated (>30 years)
method to link ngspice to a now defunct controller (ATESSE).
2026-02-03 14:07:59 +01:00
Holger Vogt 7fbb4450d4 Improve comments, add note to user. 2026-02-03 14:07:35 +01:00
Holger Vogt 48d28f9f4a Entries to old CLUSTER code removed. 2026-02-03 14:07:15 +01:00
Holger Vogt 4594d5fd91 Add variable deltacheck to measure the CKTdelta[0]
(most recent accepted delta time) versus simulation time.
Activated if 'set ngdebug' is given (not forget to set
'.save deltacheck' if other .save commands are given).
2026-02-03 14:07:02 +01:00
Giles Atkinson aa1242ac70 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.
2026-02-03 14:06:36 +01:00
Holger Vogt 5443385ae9 Another update on comments 2026-02-03 14:06:11 +01:00
Holger Vogt d49134df93 Small update on comments. 2026-02-03 14:05:46 +01:00
Holger Vogt 1f2a6f3665 document the goto labels. 2026-02-03 14:05:12 +01:00
Holger Vogt 58380ba1b8 Remove all entries related to CLUSTER,
an old, never finished attempt to run transient in parallel.
2026-02-03 14:04:50 +01:00
Holger Vogt 9fc4435dca Update on comments. 2026-02-03 14:04:36 +01:00
Holger Vogt 827e6ba7fb Add perror() to fopen: more info for user. 2026-02-03 14:04:15 +01:00
Holger Vogt 7fe6ab5424 Improve error messages. 2026-02-03 14:03:58 +01:00
Holger Vogt e4aacf352a Add breakpoints to achieve quadratic smoothing.
Shift 50%-detection for breakpoints into the INIT section,
to do it only once.
2026-02-03 14:03:31 +01:00
Giles Atkinson 87338b0b8a Fix Bug 817 - "Global models are not visible from with subcircuits".
Remove code that can miscount the number of nodes to be renamed.
2026-02-03 14:03:13 +01:00
Holger Vogt 68e8f43318 Re-enable warning note when rusage xxx is not implemented. 2026-02-03 14:02:52 +01:00
Holger Vogt 5fcbe3c6df Improve error message: add source type 2026-02-03 14:02:32 +01:00
Holger Vogt f84a72d1f8 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.
2026-02-03 14:02:05 +01:00
Holger Vogt c4ae3b1243 Improve on truncation when printing out the .model lines during debug-out 2026-02-03 14:00:46 +01:00
Holger Vogt 76c4be60ce Add info for line source 2026-02-03 14:00:24 +01:00
Holger Vogt e277c886ef Improve reading the source code sequence by extra comments:
While searching for 'Parsing the circuit', the sequence of major
functions is revealed.
2026-02-03 13:59:59 +01:00
Brian Taylor a99ff45eaf 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. 2026-02-03 13:59:39 +01:00
Brian Taylor 71614dba3a 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. 2026-02-03 13:59:30 +01:00
dwarning 766c8d15e2 correct init state vector for qth integration 2026-02-03 13:59:17 +01:00
Holger Vogt 7d4cf5487d Typo 2026-02-03 13:59:03 +01:00
dwarning 3286651aca correct xoi and xom defaults to Angstrom and clarify comments 2026-02-03 13:58:53 +01:00
dwarning 8e1ba4d9e2 count level=3 model poly and metal capacitance in charge calculation 2026-02-03 13:58:43 +01:00
Brian Taylor e694983536 Fix memory leaks in INPpas4 and get_number_terminals found using paranoia_parallel. 2026-02-03 13:58:32 +01:00
Holger Vogt 7ea0ee9714 Add short description of code model 2026-02-03 13:58:21 +01:00
Holger Vogt 65fc0ad8a6 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.
2026-02-03 13:57:57 +01:00
Holger Vogt 63d5e94b94 Improve the error message by naming the port 2026-02-03 13:57:46 +01:00
Holger Vogt 5e12a80fb4 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)
2026-02-03 13:57:37 +01:00
Holger Vogt e25c70b2bb add new function gettok_node_br which adds braces { } on its list
of ignored characters.
2026-02-03 13:57:23 +01:00
Holger Vogt 85a04c5693 Cosmetics: Indentation 2026-02-03 13:57:14 +01:00
Holger Vogt 3d0ab2db8e Enable plain expression instead of only a number for area
in bipolr device instances.
2026-02-03 13:57:04 +01:00
dwarning b57800d4bd remove obsolete bracket 2026-02-03 13:56:57 +01:00
dwarning f1a240e6b1 remove old commented strncmp version check code 2026-02-03 13:56:48 +01:00
Árpád Bűrmen adae811ad2 BSIM4 version 4.8 is considered to be the latest, i.e. 4.8.3. 2026-02-03 13:56:37 +01:00
Árpád Bűrmen e0694629d1 Scaling of NQS charge deficit with mult_q. 2026-02-03 13:56:23 +01:00
Árpád Bűrmen 5153d8a4c1 ceqqjd, ceqqjs should be scaled with mult_q.
This fixes erratic simulation behavior when
mult_i != mult_q.
2026-02-03 13:56:16 +01:00
Árpád Bűrmen dc58709a37 Fixed a bug causing mult_* factors to get scaled at each setup(). 2026-02-03 13:56:04 +01:00
Árpád Bűrmen 942f877290 Check if toxp+dtox!=toxe with double precision tolerance. 2026-02-03 13:55:56 +01:00
Árpád Bűrmen 58dfdcec52 icvgs, icvds, icvbs exposed as BSIM4v8 parameters. 2026-02-03 13:55:46 +01:00
Árpád Bűrmen 5a8b176378 Fast version checks in BSIM4. 2026-02-03 13:55:38 +01:00
Holger Vogt 71a980f820 Improve detection of the number of terminals for bipolar devices.
Fixes bug no. 807.
2026-02-03 13:55:31 +01:00
Holger Vogt 0648d5e844 Spelling
Found by Lintian, patches provided by C. Schoenert
2026-02-03 13:55:23 +01:00
Brian Taylor 7af862af3d 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. 2026-02-03 13:55:12 +01:00
Holger Vogt af28d2416d 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.
2026-02-03 13:53:46 +01:00
Holger Vogt 49b35ed3fc We are developing towards ngspice-46 2026-02-03 13:52:36 +01:00
dwarning ce55f05e1b bsim4: unify error printout 2026-02-03 13:46:02 +01:00
dwarning 50bfc214ab bsim4: reimplement mobility and binning extension 2026-02-03 13:45:50 +01:00
dwarning 2c9c2c20c4 reply commit e5c162f1: dc sweep fails after transient sim 2026-02-03 13:45:37 +01:00
dwarning 94b193ad91 prevent warning if NOBYPASS is not defined 2026-02-03 13:45:24 +01:00
dwarning 11ee179639 adapt instance parameter extension to new bsim4 multiplier concept 2026-02-03 13:45:11 +01:00
Holger Vogt 724dc77b91 Prepare bug-fix release ngspice-45.2. 2025-09-05 23:59:35 +02:00
Holger Vogt 82c620304b 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-05 23:59:05 +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 86ea9fee8a Prepare for ngspice-45 2025-08-29 15:01:45 +02:00
Holger Vogt a2b3d7c7d2 Enhance comment. 2025-08-28 12:39:13 +02:00
Holger Vogt 7fc68c0c07 Adding .param SWSOA=1 right after the .lib entry during reading in
the libraries.
2025-08-28 12:39:01 +02:00
Holger Vogt b1f4f32b36 Prevent a segfault if cp_variablesubst return a nullptr.
Fixes bug-801
2025-08-28 12:16:22 +02:00
Holger Vogt 2185f82a28 typo 2025-08-28 12:16:11 +02:00
Holger Vogt bebf7efd8b Command completion is not supported, removed from 'help' 2025-08-28 12:15:55 +02:00
Holger Vogt c45d1e0974 Rename t to tn to avoid t shadowing the t from the function header
void cpmslineAnalyseDispersion (double W, double h, double s,
				   double t, double er, double Zle,
...
2025-08-28 12:15:40 +02:00
Vadim Kuznetsov 94740a3d2b Fixed warnings in cpmlin and mlin 2025-08-28 12:15:25 +02:00
Holger Vogt 481e3e567b Update to filesource
Move tprev out of the loop to enable storing the previous time value.
Add some general warning message that an error might have occurred during
reading the time or data values from the data input file.
Allow empty lines in the data input file.
Guard early data values (TIME < time offset) against false reading.
Add some simple examples.
2025-08-11 18:45:21 +02:00
Brian Taylor 179c7504fb Misplaced break statement in callback. 2025-08-08 11:46:33 +02:00
Holger Vogt 21c238276a Another copyright update 2025-08-08 11:46:22 +02:00
Holger Vogt 632b55a90d Update copyright notice 2025-08-08 11:46:13 +02:00
Holger Vogt b7692fbda7 Move CALLBACK into the 'init' section,
to have it called once only.
2025-08-08 11:46:06 +02:00
dwarning 5e21393fbb prevent unused warning 2025-08-08 11:45:49 +02:00
dwarning 7ede33e7c6 git ignore temporary file 2025-08-08 11:45:32 +02:00
Holger Vogt 787a8530be Prevent doubly defined tokens. 2025-08-08 11:45:15 +02:00
Holger Vogt cbf93cf8e0 Add missing CALLBACK 2025-08-08 11:44:51 +02:00
Holger Vogt 5af5f02ad1 Remove unused variable. 2025-08-08 11:44:34 +02:00
Holger Vogt 4ab6be1b90 Keep saving nodes only once, but make an exception for node 'all'.
Fixes bug-799, at least partially (diffpair.cir is running again.).
2025-07-29 11:05:14 +02:00
Holger Vogt 805f14e50b Don't check .params as they will fall through anyway. 2025-07-29 11:05:06 +02:00
Holger Vogt 3d55c16531 Don't print a form feed if 'option nopage' is given.
Print the header really only once  if 'option nopage' is given.
2025-07-29 11:05:00 +02:00
dwarning 68c3fc1031 diode needs both current components (bottom and sidewall) for Vcrit and breakdown voltage calculation 2025-07-29 11:04:51 +02:00
dwarning 05bbb2aaa2 introduce aliases for certain diode breakdown model parameter 2025-07-29 11:04:38 +02:00
Jason Pyeron 178b541fb2 BUGFIX: #797 - gettoks did not protect against NULL pointer input 2025-07-29 11:04:05 +02:00
Brian Taylor 47d7f7aa62 Allocating arrays of double* should use sizeof double* not double, even though they may be the same. Avoid potential divide by zero. 2025-07-29 11:03:28 +02:00
Brian Taylor 416edbbb9a Fix memory leak in xspice oneshot. 2025-07-29 11:03:10 +02:00
dwarning a0c7af575d bsim4 update to version 4.8.3 2025-07-29 11:02:56 +02:00
Holger Vogt c24fc9e9d0 Remove compiler warning. 2025-07-29 11:02:39 +02:00
Holger Vogt 29d5584c56 Bug fixes:
fix function rdivide
fix a copy/paste bug in cpline
add copying of tlines
2025-07-29 11:01:57 +02:00
Holger Vogt 33efc5ed2c Add functions for VS non-C99-compatible complex data manipulation,
selected by #ifdef _MSC_VER switch.
Update tlines project file, correct buiuld sequence for
code models in vngspice.
Add tlines to spinit.
2025-07-29 11:01:30 +02:00
Holger Vogt 6d86b0ebda Visual Studio C does not support C99 complex types and functions
Add type DoubleComplex, to become 'double complex'
with gcc and _Dcomplex with Visual Studio.
Add functions rdivide and divide to divide real or complex numbers
by another complex number.
Use rdivide and VS built in function to evaluate _Z11 - _Z14.
2025-07-29 11:01:02 +02:00
Holger Vogt 89c2070a96 Add missing constants for Visual Studio C 2025-07-29 11:00:52 +02:00
Vadim Kuznetsov 741a7002d0 Fix licence header in msline_common 2025-07-29 10:56:31 +02:00
Vadim Kuznetsov dcb4202910 Added MSOPEN model 2025-07-29 10:55:51 +02:00
Vadim Kuznetsov 6914662c4d Implement rollback; fix memory management 2025-07-29 10:55:41 +02:00
Vadim Kuznetsov 4358b99183 Add license header for new files 2025-07-29 10:54:52 +02:00
Vadim Kuznetsov 047de0f201 Add XSPICE models for transmission lines 2025-07-29 10:54:23 +02:00
Holger Vogt c2f9f6d3f4 retain type=0, type=1, type=+1, or type=-1 in a .model card,
even if compatmode PS or LT are set.
2025-07-29 10:52:54 +02:00
dwarning 6aba1f302b allow showmod command for verilog-a models - feature request #100 2025-07-29 10:52:14 +02:00
Árpád Bűrmen cb944fdb7a icvgs, icvds, and icvbs should be IOP. 2025-07-29 10:51:39 +02:00
Árpád Bűrmen 56ecfa9e69 BSIM3 3.3.0 undeclared instance IC parameters. 2025-07-29 10:51:26 +02:00
Árpád Bűrmen 2c76daf2d1 MESFET m and ic parameters fixed. 2025-07-29 10:51:05 +02:00
Árpád Bűrmen 87aecbcba7 dtemp bug fixed. 2025-07-29 10:50:35 +02:00
Holger Vogt 619d6ae521 Prevent from endless loop if step evaluates to 0. 2025-07-29 10:50:23 +02:00
Holger Vogt 51d0e3d910 Add error checking when parsing the .dc or dc commands. 2025-07-29 10:50:06 +02:00
Holger Vogt dd1690521c Fix a bug: do not read in front of string s by s[-1].
Still needs more checking: we remmove and add 'params:'?
2025-07-29 10:49:49 +02:00
Holger Vogt 9c1714d2f5 typo 2025-07-29 10:49:22 +02:00
Holger Vogt 508ab3bd8c New CPPDUALS: re-enable compiling with CYGWIN 2025-07-29 10:48:46 +02:00
Holger Vogt 7f8f510e91 add missing makefile.am, copied from previous cppduals/duals 2025-07-29 10:48:31 +02:00
Holger Vogt 6af3cfac72 New cppduals from https://gitlab.com/tesch1/cppduals
downloaded may 1st, 2025
2025-07-29 10:48:21 +02:00
Holger Vogt ea5979d391 No autostart when ctrl is set.
Fix a bug when repeating the sequence.
2025-07-29 10:45:50 +02:00
Holger Vogt 07f8c3558b Add a monitoring output the the seegen instance 2025-07-29 10:45:30 +02:00
Holger Vogt b628032d7d Add a generator for SEE (single event effects) pulses as a code model.
To be used like
aseegen1 NULL [%id(xcell.n1 m1) %id(xcell.n2 m2) %id(xcell.n1 m1) %id(xcell.n2 m2)] seemod1
.model seemod1 seegen (tdelay = 11n tperiod=25n tfall='tfall' trise='trise' let='let' cdepth='d')
see README.SEEgenerator for details
2025-07-29 10:39:58 +02:00
Holger Vogt 878d7e1ff9 Add function cm_get_neg_node_name
as cm_get_node_name delivers only the pos node.
2025-07-29 10:39:47 +02:00
Giles Atkinson 5c4f151c6d Snapshot support for new statistics added by e1677a18c4.
That prevents a crash exiting examples/snapshot/adder_snload.script.
2025-07-29 10:39:00 +02:00
Giles Atkinson 95fc95771a Fix Bug #793 - "breakp.c error: compling without XSPICE failed".
Additional changes to conditional compilation are needed for
iplot without XSPICE.
2025-07-29 10:38:42 +02:00
Holger Vogt 9c4a54ffb7 Enable real (from fft)or complex (from sp) frequency vetors in plot sp 2025-07-29 10:38:17 +02:00
Holger Vogt f73873c495 Enable expressions in a meas statement within a .control section, like
meas tran yeval2 FIND v(2) WHEN v(1)= 0.9*v(2)
2025-07-29 10:37:59 +02:00
Holger Vogt 3464f4af2c Linux line endings 2025-07-29 10:37:02 +02:00
Giles Atkinson ed80400661 Fix Bug #792 - "N device instance line not parsed correct".
Code added by 83d3890490 failed with a single parameter with no speces.
2025-05-30 12:56:49 +02:00
Giles Atkinson 29ce826cf6 Improve efficiency of linked list search. (See BUG 783). 2025-05-30 12:56:41 +02:00
Holger Vogt 0713f46506 Make all new entries lower case. 2025-05-30 12:56:25 +02:00
Holger Vogt 705c0d8dc6 Prevent crash if file cannot be opened. 2025-05-30 12:56:11 +02:00
Brian Taylor 1b39cf9025 Fix some more -Wextra warnings.
Fix to inpcom.c removed by HVO
2025-05-24 11:31:05 +02:00
Holger Vogt 3ceb16024a Fixes a bug introduced by
317378085 ("Tidy code in get_number_terminals(), removing unneeded copying.", 2025-02-25)
2025-05-24 11:30:56 +02:00
Holger Vogt c2702208bd Allow command 'stop when time=val' also if the tran simulation has
already been started, e.g. while waiting for resume.
Add a breakpoint if 'val' is in the future.
2025-05-24 11:30:37 +02:00
Brian Taylor a7961f1a97 Fix some compiler warnings when -Wextra is added to CFLAGS. 2025-05-24 11:30:25 +02:00
Holger Vogt c3553396d9 beautify the code 2025-05-24 11:30:05 +02:00
Holger Vogt d8317d57bc Re-enable compilation with MS Visual Studio, as "ngspice/config.h"
is not available.
Add-on to commit
4881b2973 ("Fix Bug #772 - "ngspice + icarus verilog cosim: searches for ivlng.so                 in /usr/local/lib/ngspice ...". Use the configured library directory, NGSPICELIBDIR.", 2025-04-11)
2025-05-24 11:29:57 +02:00
Giles Atkinson 9429a27af0 Fix typo in vlnggen error message. 2025-05-24 11:29:49 +02:00
Giles Atkinson d6f3267bf6 Fix Bug #772 - "ngspice + icarus verilog cosim: searches for ivlng.so
in /usr/local/lib/ngspice ...".
Use the configured library directory, NGSPICELIBDIR.
2025-05-24 11:29:38 +02:00
Giles Atkinson 35ae1ece8c Add an error message for a .model line that includes a default value
for a read-only instance parameter.  Before that caused a fatal error
in parsing the first device to use the model.
2025-05-24 11:29:31 +02:00
Giles Atkinson 8ab446fc9c Fix Bug #750 - "VDMOS Model Naming Rules in NGSPICE Cause Confusion."
Recognise VDMOS as a special keyword only as the third token in a
.model line.  A new function, skip_token(), included in the change
allows simplification of some existing code.
2025-05-24 11:29:22 +02:00
Giles Atkinson 0029d415ee Fix for an error message seen when testing the shx shared-library
program: do not allow a negative timestep.
2025-05-24 11:28:24 +02:00
Giles Atkinson 16aadef4c7 Add two new functions to the shared library API.
ngSpice_Raw_Evt() requests a callback that returns all the
XSPICE events for a specific node that occurred during the last timestep.
ngSpice_Decode_Evt() provides numeric and string versions of
the event data.  Also fix some warnings in sharedspice.c.
2025-05-24 11:27:57 +02:00
Giles Atkinson 44b620658e Event nodes can be plotted with offset by "iplot", like the
digitop option for "plot".  Offsets may be explicit or automatic with "-o".
A variable to set the offset is shared with "plot".  In plotcurv.c
suppress some warnings that should not apply to event nodes and do
not falsely claim that some vectors have only one x-value.
2025-05-24 11:27:37 +02:00
Giles Atkinson 78924a86a1 Support use of XSPICE event nodes with iplot.
In graf.c, local function set() is renamed setflag() to avoid conflict
with a newly-visible global function with the same name.
2025-05-24 11:27:28 +02:00
Giles Atkinson d528c2a693 Do not strip event value member names (like "digital_node(strength")
from the name when creating a vector from event node history.
2025-05-24 11:27:16 +02:00
Giles Atkinson 5790dc2f4d Add two new XSPICE functions: EVTnew_value_call() and
EVTcancel_value_call().  EVTnew_value_call() specifies a function
to be called for each confirmed new value produced on an XSPICE
event node.  To be used to add event node support for iplot.
2025-05-24 11:27:03 +02:00
Holger Vogt 80d6e681f2 MS Windows: Get a canonical paths name: Important if
path length exceeds MAX_PATH, might happen when using  PDKs

Patch provided by  kreijstal
2025-05-24 11:26:31 +02:00
Holger Vogt 43c4c49e11 re-enable adding variables (path names) to list variable "sourcepath" 2025-05-24 11:26:18 +02:00
Holger Vogt a2dbedff4e Improved error message, not using internal 'circbyline' 2025-05-24 11:25:55 +02:00
Holger Vogt f1381b43a1 Debug printout of start-up command line 2025-05-24 11:25:42 +02:00
Holger Vogt cf934bca7d New command 'save nointernals' to suppress outputting and
saving of internal device nodes, espicially needed for PSP
OSDI model. Output file size reduction is e.g. from 20GB to 200MB.
2025-05-24 11:24:57 +02:00
Holger Vogt de7cec1735 AC noise: Update opertating point, if variable 'hertz' is given 2025-05-24 11:24:44 +02:00
Holger Vogt 338cc42dd0 PS compatibility: MOS level 5 and Bip level 2
will create an error. ngspice then bails out, as no
such models are available. Hint to use OpenVAF, OSDI.
2025-05-24 11:24:33 +02:00
Holger Vogt d776a229e1 Create a vector thdnm from THD calculation, e.g. thd11
New vector fournosave: if set, suppress creation of
vectors thd11 and fourier, usefull when writing a raw file.
2025-05-24 11:24:25 +02:00
Giles Atkinson 629d1f5462 Fix a bug where a node name is mis-identified as the model for
an OSDI device and remove a limit on node count.
Problem was reported by user Sam in ngspice-users.
2025-05-24 11:24:11 +02:00
Giles Atkinson b41b8a48c3 Tidy code in get_number_terminals(), removing unneeded copying. 2025-05-24 11:23:58 +02:00
Giles Atkinson d18479b45b Always check for GUI events during simulation, if any graphs exist.
Previously this check was only made if an iplot window existed.
The 100W.sp example displayed frozen windows with X11-based plotting.
2025-05-24 11:23:44 +02:00
Holger Vogt 7cc3280851 Enhance the search path for .spiceinit (spice.rc):
- in the directory from where the netlist has been loaded
- in a user provided path read from environmental variable SPICE_USERINIT_DIR,
- in the current directory,
- in the the HOME directory,
- in the USERPROFILE directory. */
In shared ngspice the first line shall read
- in the directory Infile_Path received from the caller (sent before initialization)
2025-05-24 11:23:26 +02:00
dwarning 7aa8ed0170 Involve optional d-s shunt in ac and pz analysis 2025-05-24 11:23:18 +02:00
dwarning a271ac821a Correct matrix entries for VDMOS pz analysis 2025-05-24 11:23:05 +02:00
Holger Vogt 612a924ea3 Reformat spoutput.c
Replace tabs by spaces
2025-05-24 11:22:47 +02:00
Holger Vogt 46e4a67079 Some cosmetics for readability:
replace tabs by spaces
2025-05-24 11:22:37 +02:00
Holger Vogt 8d9988424b Fixes bug by patch 124 offered by kreijstal 2025-05-24 11:22:30 +02:00
Brian Taylor 08aff1ee17 Fix memory leak of parm when there is a closing ). 2025-05-24 11:22:16 +02:00
dwarning 34046a29c1 VDMOS: use Vdsat in mobility reduction formula 2025-05-24 11:22:09 +02:00
Holger Vogt 243bdff377 Formatting: tabs to spaces 2025-05-24 11:22:01 +02:00
Holger Vogt 7cf0129254 Add a descriptive comment 2025-05-24 11:21:52 +02:00
Árpád Bűrmen a8e54dfb31 Fixed MOS9 scaling. 2025-05-24 11:21:39 +02:00
Árpád Bűrmen cc8183a96c Fixed MOS3 scaling. 2025-05-24 11:21:32 +02:00
Árpád Bűrmen fcbee261ac Fixed MOS2 scaling. 2025-05-24 11:21:26 +02:00
Árpád Bűrmen 8e2859d30d Fixed MOS1 noise scaling. 2025-05-24 11:21:19 +02:00
dwarning fed39f18c9 diode: introduce few parameter aliases for compatibility to other simulators 2025-05-24 11:19:48 +02:00
Holger Vogt ef00416ebf Add a section without source info to the debug output.
Truncate .model lines in this section, as .model lines with
several hundred parameters may mask the relevant information.
2025-05-24 11:19:08 +02:00
Giles Atkinson f8c9da5ed5 The VPI module path should be first in the lib_args parameter. 2025-05-24 11:18:47 +02:00
Giles Atkinson 6c518d4212 Fix an infinite loop with "eprvcd -a" and a misleading comment.
The command now works without any event nodes.
2025-05-24 11:18:37 +02:00
Giles Atkinson 027fb7e9e8 Code to suppress a spurious warning of a non-existent parameter,
missed from e858ca9465.
2025-05-24 11:18:23 +02:00
dwarning ae1437cb52 VBIC: simplify nqs derivatives 2025-05-24 11:18:08 +02:00
Holger Vogt dd07008b55 Remove ADMS related code 2025-05-24 11:17:56 +02:00
Holger Vogt 216f462583 Automtically set optran step time for at least 50 iterations 2025-05-24 11:17:42 +02:00
Giles Atkinson ddd14cf84c Do not include term.h and curses.h in terminal.c without checking that
they exist.  Modern ncurses does not need curses.h to compile term.h
so that header has been removed.  Also make ncurses the last choice
when looking for tputs().
2025-05-24 11:17:25 +02:00
Giles Atkinson 5cfd87d6ad Do not link with the libraries needed for Ngspice itself. 2025-05-24 11:14:38 +02:00
dwarning 20334c495c VBIC: lean and mean code revision 2025-05-24 11:05:58 +02:00
dwarning 22ef170bac VBIC: fix NQS problems in transient simulation by implementing adjunct network for excess phase 2025-05-24 11:05:50 +02:00
Giles Atkinson c7c85ecadc Add co-simulation with VHDL, using the GHDL compiler and d_cosim. 2025-05-24 11:05:33 +02:00
Giles Atkinson a50562430c Add .dylib file extension and improve some messages in d_cosim.
On Macos, the command "ghdl -e -shared ..." creates .dylib files.
2025-05-24 11:05:22 +02:00
Giles Atkinson f471461035 When parsing a XSPICE string-valued model parameter, break only
on a closing quote, string end or white space (if unquoted) and
unquoted ']' when parsing an array.  That allows generic value overrides
for GHDL models to pass through: "-gVar=value".  Previously, the string
was terminated on '='.  Also remove some dead and non-functional code.
2025-05-24 11:05:13 +02:00
Giles Atkinson 9786d3b8e2 Improve checking of XSPICE model parameters and tidy code.
Checking for null values moves from per-instance code to
per-device code, potentially removing duplicate error messages.
Limits on parameter values and sizes of array parameters that are
specified in the IFS files are now actually checked.
2025-05-24 11:04:55 +02:00
Holger Vogt 2afd3d1ea8 Prevent a crash in case of incomplete stoks[] 2025-05-24 11:03:29 +02:00
Árpád Bűrmen 91040891f9 Temperature handling inconsistency in jfetnoise.c fixed. 2025-05-24 11:03:13 +02:00
Holger Vogt 796b4fd634 Fixes wrong @bxxx[i] return values of B source, ignoring the m parameter.
Reported in bug 734 by Stefan.
2025-05-24 11:00:32 +02:00
Holger Vogt 0c2a287d3c Allow .probe I(XU1)
For device with more than 2 nodes, and alli not set, the vcurr_xxx
nodes did contain a probe_int_ section which made them to be
not saved. While o.k. for power measurement, this was not o.k. for
measuring current.
2025-05-24 11:00:11 +02:00
Holger Vogt 1abeb1290b Align title line to the numbers following 2025-05-24 10:59:47 +02:00
Holger Vogt c8dc858f9e use effective gate voltage 2025-05-24 10:59:39 +02:00
dwarning 3da74cacb6 VDMOS: use effektive Gatespannung for mobility reduction of Beta 2025-05-24 10:59:28 +02:00
Holger Vogt 26b197df33 Allow m parameter for B source with current output
Fixes bug no. 734
2025-05-24 10:59:04 +02:00
Giles Atkinson afb399a1f0 Fix Bug #733 -
"Pre-master-45 hangs forever on a circuit that works on older versions."
That was an infinite loop when parsing a line with just "*#",
introduced by commit fb63573b6b.  Also add some comments.
2025-05-24 10:58:08 +02:00
Árpád Bűrmen 1b40f0d444 initializeLimiting -> iniLim, reorder sim_params for faster OSDI device evaluation. 2025-05-24 10:57:46 +02:00
Árpád Bűrmen d659943d77 Per-device load timing support. 2025-05-24 10:56:33 +02:00
Holger Vogt 7ecb5a5d45 Add some more debug output. 2025-05-24 10:56:03 +02:00
Holger Vogt e5d4d7d63f Add to debug-out.txt an output without source file information.
Thus cluttering the view is reduced.
2025-05-24 10:55:18 +02:00
Holger Vogt 1a1d2558e8 We are developing towards ngspice-45 2025-05-24 10:50:59 +02:00
Holger Vogt 80d22fc802 Prepare the bug-fix release 44.2 2025-01-11 11:55:56 +01:00
dwarning a6d6a07f79 S to Z matrix conversion by formula instead of Y inversion
low limiting Rn and Cy to prevent division by 0, fix provided by Alessio Cacciatori

there are still problems in Z matrix conversion in specific networks
2025-01-11 09:22:15 +01:00
Holger Vogt e1bd97d8f6 If C= or Q= is omitted in the instance line of a behavioral capacitor,
select as default the C= formulation, not the Q= formula..
2025-01-10 15:17:22 +01:00
Holger Vogt e0a7d821e9 Notes go to stdout, not stderr 2025-01-09 13:21:52 +01:00
Giles Atkinson 2666460663 Using XFlush() instead of XSync() avoids a round trip to the X server
on each call to DevUpdate().  That speeds plotting when using XQuartz
on Macintosh and makes iplot useable there.
2025-01-09 13:21:31 +01:00