Commit Graph

6867 Commits

Author SHA1 Message Date
dwarning 924dc10368 get the right place for variable declaration 2023-05-27 10:41:29 +02:00
dwarning a4f6a777c0 few cleanings to prevent compiler warnings 2023-05-27 10:41:21 +02:00
dwarning 5c32a3fb9c prevent unitialized variables 2023-05-27 10:41:12 +02:00
Brian Taylor 6b85bcb805 Allocate compound gate connectors where needed. 2023-05-27 10:41:04 +02:00
Brian Taylor de34a90bb4 Create correct translations of degenerate compound gates with $d_hi/$d_lo inputs. 2023-05-27 10:40:51 +02:00
Holger Vogt a39052cd14 Make voltage ramp smooth around 0 and around end of ramp. 2023-05-27 10:40:42 +02:00
Holger Vogt 678a6582f6 A preliminary fix to reduce the amount of missing pulses considerably.
Probably not yet the final solution.
2023-05-27 10:40:32 +02:00
Holger Vogt 4231ad3f5f Prevent reading from NULL when user input is something like .ic=v 2023-05-27 10:40:24 +02:00
dwarning 02109587ee not to forget the overlap capacitances in AC 2023-05-27 10:40:08 +02:00
dwarning 56b5041266 selfheating only with rth>0 2023-05-27 10:39:48 +02:00
dwarning 2fff3e2bc0 use true vector size for memcpy 2023-05-27 10:39:39 +02:00
dwarning de09636d1a general update: fix temperature update, improve performance 2023-05-27 10:39:33 +02:00
dwarning f33e899fda white spaces 2023-05-27 10:39:25 +02:00
dwarning d053fbda93 vbic: correct soa-check warning for C-S branch 2023-05-27 10:39:14 +02:00
Holger Vogt 797795e7c0 Shift all compatibility handlinmg from inpcom.c into its own source files
inpcompat.c and inpcompat.h
2023-05-27 10:39:05 +02:00
Brian Taylor 14a403e193 Use ~ on the input of a tristate buffer for INV3, and avoid creating an extra inverter. For ff/latch use ~ on set/reset and jkff clock inputs to avoid creating extra inverters. 2023-05-27 10:38:40 +02:00
dwarning b5d5cfd543 vbic: selfheating switch selft has priority, but keep compatibility 2023-05-27 10:38:25 +02:00
Holger Vogt d53acbed8e Add noise capability to XSPICE code models
Coded according to acan., AC analysis

MIF_NOI is not yet supported by any code model, so
MIF_AC is used (code models behave like in ac mode,
they are noiseless.
2023-04-02 15:06:28 +02:00
Holger Vogt 3c41ab1190 Formatting with MSVC2022 2023-04-02 15:06:23 +02:00
Giles Atkinson 5aa48cab0b Do not generate netlist lines that use non-existent libraries.
To support that, give global scope to  function inp_pathresolve()
in inpcom.c.  Update internal documentation (long comment).
2023-04-01 13:56:12 +02:00
Holger Vogt 8f8f7ff8ab Command 'listing r': No extra formatting, truncation etc.
of netlist lines when printing to file or console.
2023-04-01 13:50:17 +02:00
Holger Vogt 95c4c0f587 Add inertial.h to the distributable headers 2023-03-25 15:36:15 +01:00
Holger Vogt 311ddeac0d Prepare for ngspice-40 2023-03-24 22:27:12 +01:00
Holger Vogt 062785319a When '.probe alli' is set, disable auto bridging and set a flag 2023-03-24 22:10:18 +01:00
Holger Vogt ce38a768b5 typo 2023-03-24 22:10:12 +01:00
Holger Vogt c30af55491 Add operating point information to SOA check,
using vbefwd, vbcfwd, and vsubfwd
Operating point heck is enabled by .options warn=2
2023-03-24 22:10:07 +01:00
Holger Vogt 443567dbaf Add SOA-check for collector-substrate diode (model parameter bvsub) 2023-03-24 22:09:55 +01:00
Holger Vogt ff77c583d7 Add model parameter selft, to switch on self-heating, default: off (selft=0) 2023-03-24 22:09:42 +01:00
Giles Atkinson 5197200fb3 Fix crash reported by Brian Taylor. If "source" is used after
analysis, the circuit is both deleted and destroyed. Beware of
double frees.
2023-03-22 14:30:18 +01:00
Giles Atkinson 98333ee89a Fix a memory leak reported by Brian Taylor that was introduced
by commit 4d8e17487b.
2023-03-22 14:30:11 +01:00
Holger Vogt 82de3db8ad VBIC: Add bvbe, bvbc, and bvce as redundant SOA parameters 2023-03-22 14:30:01 +01:00
Holger Vogt f121c433a7 Check for buggy diode instance line, avoid crash 2023-03-22 14:29:48 +01:00
Holger Vogt 2ce18ab184 Add VDMOS default junction cap IRF540 IRF9540 2023-03-22 14:29:37 +01:00
Holger Vogt 2a647f8462 Set default VDMOS model parameters to resemble IRF540, 9540 2023-03-22 14:29:22 +01:00
Giles Atkinson e25f8bd522 Add inertial delay to missed d_xnor and tidy blank lines in d_xor. 2023-03-22 14:29:03 +01:00
Giles Atkinson cecce5163e Inertial delay for remaining simple gates and buffers:
nand or xor open_c open_e, but not tristate.
2023-03-22 14:28:51 +01:00
Giles Atkinson db38d4ad54 Correct timing of transitions to UNKNOWN. 2023-03-22 14:28:37 +01:00
Giles Atkinson 240a2b9406 Add missed file inertial.h. 2023-03-22 14:28:23 +01:00
Giles Atkinson 4623a04615 Interim version of inertial delay for tristate buffer.
This does not handle three-way or mixed transitions.
2023-03-22 14:28:15 +01:00
Giles Atkinson e3b4df6a51 First group of digital code models with improved implementation
of inertial delay: buffer, inverter, and, nor.  Also adds
utility function cm_is_inertial(().
2023-03-22 14:27:54 +01:00
Giles Atkinson 2643e3b17f New code-model library functions cm_schedule_output() and cm_getvar().
To be used in the inertial delay code for digital code models.
2023-03-22 14:27:35 +01:00
Giles Atkinson c1659a64c3 Change output event setup in evtload.c so that, when making an event call
to a code model, there is no longer a reference to the value of the event
at the head of the free list.  That allows all such free lists (with the
same data type) to be combined, probably improving performance.
This is in preparation for full implementation of inertial delay for
digital nodes.
2023-03-22 14:27:19 +01:00
Giles Atkinson 2d0561f386 Allow string-valued parameters to XSPICE device models with no default.
The code model then sees the value NULL.  Needed for the "family"
parameter on logic models, used by automatic bridge insertion.
2023-03-22 14:27:06 +01:00
Brian Taylor 8c69ada5b5 The logicexp example in the PSpice ref. manual has a name with a '+' character (LCN+4). Update lexer_scan. 2023-03-22 14:26:43 +01:00
Brian Taylor 40a540a2ff Add inertial_delay=true to .model statements generated when U* instances in PSpice library subckts are translated to Xspice. Any other Xspice A* digital instances might have different inertial_delay settings in their models, so potentially there could be a mixture of delay types. For example, if a user wishes to model a DLYLINE using a d_buffer with inertial_delay=false and equal rise/fall delays. 2023-03-22 14:26:18 +01:00
Brian Taylor 164db58404 The intent now is to rely on a variable setting in .spiceinit to control the use of inertial delay XSPICE digital models. This will apply to U* instances in subcircuits which are translated to XSPICE. 2023-03-22 14:25:51 +01:00
Holger Vogt 86951501a7 Add eprvcd to the commands which set node names to lower case,
but not the file names after >
Does not work for manually entered eprvcd commands, where the user
has to provide lower case node names.
2023-03-19 15:24:27 +01:00
Holger Vogt 3632a6b4ae We need to translate from degree to rad 2023-03-18 22:32:25 +01:00
Holger Vogt 2a6052517b Fix prvious commit: allow access to all vector elements of cc 2023-03-18 22:32:19 +01:00
Holger Vogt 68156fa62c Complex number handling other than MSVC 2023-03-18 22:32:07 +01:00
Holger Vogt 71571a1432 Add function atanh to .control section 2023-03-18 22:31:48 +01:00
Holger Vogt 3996d27b29 Make code a little more efficient 2023-03-18 22:31:33 +01:00
Holger Vogt 7af6c4a661 Re-enable single line parameter lists, separated by commas 2023-03-18 22:31:27 +01:00
dwarning f34ff7e63c Revert "implement typedpnjlim as optional limiter for verilog-a models"
This reverts commit f73d3b20a0.
2023-03-18 22:31:04 +01:00
Holger Vogt 63d86f5af8 Prevent a crash in strchr
Reported by KiCad Sentry
2023-03-18 14:37:59 +01:00
Holger Vogt e4202ea181 The tc for R, L, C may include an expression
like tc={expression} or tc={expression}, 1.3u or
tc={expression}, {expression2}
2023-03-18 14:37:53 +01:00
Holger Vogt d8505f0069 Make error message more verbose by a hint to the line (fragment). 2023-03-18 14:37:47 +01:00
R. Timothy Edwards c12296182c The code in src/frontend/subckt.c has a fixed-size structure called table at the top with a size set to N_GLOBAL_NODES = 1005. If the number of items passed in formal and actual exceeds 1005, then ngspice exits immediately with an error.
This patch lets table be reallocated on the fly as needed to accommodate the number of subcircuit arguments, instead of being a fixed value.
2023-03-18 14:37:40 +01:00
Holger Vogt e4601c16ee Not a warning but an error, stopping the simulation 2023-03-18 14:37:33 +01:00
Holger Vogt f32f3ac8cd Improve previous commit: A bad .model line leads to a breakup
of the simulation.
2023-03-18 14:37:26 +01:00
Holger Vogt c61acefef7 Prevent crash when a bad .model line is given, like
.model
.model xxx
2023-03-18 14:37:19 +01:00
Holger Vogt 247562c096 Update copyright notice 2023-03-18 14:37:08 +01:00
Holger Vogt bcec3cb5e3 Updating links to ngspice web pages 2023-03-18 14:37:02 +01:00
Holger Vogt 4cc63494db Improve error message
Typo
2023-03-18 14:36:55 +01:00
Brian Taylor 4111aaf110 When logicexp has a ugate timing model other than d0_gate, use its delays for an inverter or buffer. 2023-03-18 14:36:45 +01:00
Brian Taylor a6b2773c90 For a ugate timing model, when tphlXX/tplhXX is not found, set the fall/rise delay to zero (1.0e-12). 2023-03-18 14:36:35 +01:00
Brian Taylor 0e5a5a62ac 74F550 and 74F551 have only fall delays on the inverters. Use the fall delay for both rise and fall. 2023-03-18 14:36:23 +01:00
Brian Taylor 3a76a1ef52 Prepare for inertial_delay model parameter. 2023-03-18 14:36:17 +01:00
Brian Taylor 4b30113f60 Check current_subckt is set when printing TRANS_OUT. 2023-03-18 14:36:00 +01:00
Giles Atkinson ae6375c519 Prevent a crash when "portnum" is used in a voltage source without "z0". 2023-03-18 14:35:51 +01:00
Holger Vogt 8915d42241 Prevent crash during .probe p(...) when no subcircuits are given. 2023-03-18 14:35:33 +01:00
Holger Vogt 5ee7a0ad2d prevent crash when defect .model line is given
(no model name or no model type)
2023-03-18 14:35:11 +01:00
Holger Vogt d2fb3fb16b Prevent memory leak.
Remove use controls.
Safeguard against NULL.
2023-03-18 14:34:57 +01:00
Giles Atkinson 79fcb5d4bd Fix plotting bug reported by Robert Turnbull: ngspice-devel 2023-02-10. 2023-03-18 14:34:50 +01:00
Markus Mueller 0caf1aa815 (fix) CALC_OP during transient analysis in OSDI interface 2023-03-18 14:34:37 +01:00
Holger Vogt d4ee9af2e6 We are developing towards ngspice-40 2023-03-18 14:34:27 +01:00
Giles Atkinson 2233e2f825 Fix Bug #624 - "Destroy All Fails with an Open Plot Window" for X11.
Move XftDrawDestroy() call to a point where the window still exists.
2023-03-18 14:34:20 +01:00
Holger Vogt f83c89cce7 When path is NULL, we don't need to free it. 2023-03-18 14:33:59 +01:00
Holger Vogt 75f9451702 Fix bug 624 also for MS Windows
by moving DestroyGraph() from WM_CLOSE to RemoveWindow()
2023-03-18 14:33:51 +01:00
Markus Mueller bd30bd4e85 fix memory leak more rigorously 2023-03-18 14:33:44 +01:00
Markus Mueller d495333578 fix small memory leak in OSDI interface 2023-03-18 14:33:34 +01:00
Holger Vogt da77fad749 In the very rare case of pPivot being NULL, prevent a crsh
by reordering the matrix.
2023-03-18 14:33:25 +01:00
Giles Atkinson d9b52eb3e1 Fix a bug reported by Thomas Hoffmann in ngspice-users discussion,
2023-02-18.  Incorrect tests were used to detect a crossing in the
first two data samples.
2023-03-18 14:33:13 +01:00
Giles Atkinson 06aa693852 A new fix for Bug #331: "XSpice skips digital output point".
The problem was caused by removing an output queue from the "modified"
list when it had been modified by processing one of its events.
2023-03-18 14:33:02 +01:00
Giles Atkinson 7457a2684b Revert "Fixes bug #331"
This reverts commit 6d9876229c, because
it was found to break examples/xspice/various/xspice_c3.cir
(see discussion in bug report for February 2023) and an alternative
fix is available.
2023-03-18 14:32:53 +01:00
Giles Atkinson dbb5219dc7 Fix a crash reported by Thomas Hoffmann when using the "TARG AT=xxxx"
variant of "measure", General Form 1.
2023-03-18 14:32:46 +01:00
Brian Taylor 8dd16feee4 Use dstrings where fixed size char buffers should not have been used. 2023-03-18 14:32:31 +01:00
Brian Taylor 3365fd4309 Remove dead code. 2023-03-18 14:32:19 +01:00
Holger Vogt 50173ac617 Enable potential calls to tprint() for debugging 2023-03-18 14:32:04 +01:00
dwarning 845dfbd830 diode recombination current emission coefficient default to 2 2023-03-18 14:31:53 +01:00
dwarning 45e6d319f3 partly revert last commit: only real input vector get special scaling for dc component 2023-03-18 14:31:31 +01:00
dwarning bccaee4821 correct fft dc scaling bug #620 2023-03-18 14:31:24 +01:00
dwarning 7ca305804d ret variable only used for openMP enabled 2023-03-18 14:31:17 +01:00
Holger Vogt 9c6fe3f8e4 Definitely exclude A devices from power probing (and others with less than 2 pins). 2023-03-18 14:31:05 +01:00
Holger Vogt 5924ae2dfb bug report 619 by Hanspeter Niederstrasser
remove double inclusion of stdlib.h
Correction of commit 9e432838c ("Patch by Robert Turnbull: remove warning messages", 2023-02-05)
2023-03-18 14:30:56 +01:00
Holger Vogt 5cb5d218c9 Remove the obsolete RETSIGTYPE, replace by void 2023-03-18 14:30:29 +01:00
Holger Vogt ff9c98f597 Patch 112 by Robert Turnbull
Remove compiler warning.
2023-03-18 14:30:15 +01:00
Holger Vogt 3ff9643f49 Add a scale factor 'a' (atto, 1e-18) 2023-03-18 14:30:03 +01:00
holger f9ed3fd080 Patch by Robert Turnbull: remove warning messages 2023-02-05 11:25:42 +01:00
Holger Vogt 4309bad14d Set the recounter to 0 upon every exit from function inp_get_param_level 2023-02-03 18:50:55 +01:00