Commit Graph

6613 Commits

Author SHA1 Message Date
Holger Vogt 33ec8dfc25 Write out the current in the old fashion
1	v1#branch	current
when keep#branch is set in .spiceinit.
To make the raw file compatible with ICCAP.
2022-06-22 15:32:40 +02:00
Holger Vogt 7d2ea36fdf Add a warning when Lundin's correction factor is not
calculated because the geometries are too small (< 1um).
2022-06-22 15:31:17 +02:00
Holger Vogt 8d2a6c2405 Add coil diameter dia to the inductor parameters.
dia (diameter) takes preference over csect (cross section)
2022-06-22 13:26:57 +02:00
Holger Vogt 10d4b34ec5 Add Lundin's geometry correction to the
inductance formula
2022-06-22 12:59:37 +02:00
Holger Vogt 5f0035ca91 Fix a bug in the inductance formula. 2022-06-20 14:22:55 +02:00
Holger Vogt 6818b52a87 Exit when executing the input fails,
if -o option (log file) is set and not in interactive mode.
Enables running the paranoia suite without hanging if
something goes wrong.
2022-06-19 17:29:05 +02:00
Holger Vogt d02f2feee4 If the 'source' command fails, fall back to the input
only if in interactive mode. Otherwise exit.
2022-06-19 17:25:32 +02:00
Holger Vogt 1da6cc249e Limit the number of messages 'Warning singular matrix: ...' to 6,
if not 'set ngdebug'
2022-06-18 19:56:12 +02:00
Holger Vogt 89fcc20570 Make error message more verbose:
State explicitely when transient op has failed.
2022-06-18 17:05:05 +02:00
Holger Vogt f78adce641 Prevent a crash when line is empty 2022-06-18 17:04:20 +02:00
Holger Vogt eaf8977ba2 Allow 'nulltype', which returns NULL pointer.
Thus prevent a crash in cieq.
2022-06-18 01:06:42 +02:00
Holger Vogt dea9de72dc Rename the internal circuit nodes generated by .probe
to probe_int_xxx to make it probe specific.
Don't save these nodes.
2022-06-18 00:29:48 +02:00
Holger Vogt facbf3b524 Don't save the internal device node collCX, added
for a new quasi-saturation model of bjt
2022-06-18 00:26:33 +02:00
Holger Vogt 1dda42c1a2 When plotting the phase, standard now is "Radiant".
Only with 'set units=degrees" we plot with unit Degree.
2022-06-14 23:14:39 +02:00
Holger Vogt 53e25b735a This is a fix to bug report 589 by Bohdan Tkhir:
Remove only mfg=something, icrating=, vceo=, type=,
not any combination of text like net_type=... .
Restrict this removal to compatibility modes ps or lt.
2022-06-10 15:35:21 +02:00
Holger Vogt f0789ce3e4 not only de-allocate the vector, but also remove it from the list.
This is to prevent a crash when after simulating with a buggy input like:
save all @q1[nonesense] (non-existing parameter) a command 'print all'
is given.
2022-06-10 15:31:52 +02:00
Giles Atkinson 935ed58ce6 Fix bugs found while investigating Bug #585 (convergence failure only
on Linux).  In dctran.c make it impossible for a transient simulation
to run far past its end time and fix an infinite loop attempting to remove
the automatically-inserted ending breakpoint.  In outitf.c fix memory
corruption if the simulation does over-run (change suggested by Holger Vogt).
2022-06-08 16:33:43 +02:00
Holger Vogt 519cb8392c dc sweep fails after transient sim:
keep MODEDCTRANCURVE as provided by commit
7d8236766 ("b3ld.c, b4ld.c, b3v32ld.c: enable capacitance calculation during dc sweep", 2012-10-03)
Instead exclude current integration when MODEDCTRANCURVE is selected.
Unify setting ChargeComputationNeeded in b4vdld.c,
make it as in other b4xxld.c.
2022-06-06 16:27:06 +02:00
Holger Vogt 78728d19ad Add multiplier flag 'm' to behavioral capacitor and inductor 2022-06-01 16:54:12 +02:00
Holger Vogt f16f24d6e8 Prevent crash by checking that the scale vector frequency in ac mode
is a complex vector.
2022-05-29 00:03:36 +02:00
Holger Vogt 75a6392b43 VIN 3 0 PULSE (-1 1 2NS 2NS 2NS 50 NS 100 NS) is now standard
(missing dc value).
So revert the warning message:
VIN 3 0 dc 0 PULSE (-1 1 2NS 2NS 2NS 50 NS 100 NS) yields
a note message (not a warning)
2022-05-19 12:04:44 +02:00
Holger Vogt fa7ca4ad33 Update copyright info to 2022 2022-05-16 16:30:44 +02:00
holger 72d3f12ab5 add new header spardefs.h to noinst_HEADERS 2022-05-16 16:30:26 +02:00
holger 6b06b8ca0d add *.h to the source files
to allow 'make dist' distributing them
2022-05-16 16:30:17 +02:00
Holger Vogt 1140af3e8b Prepare ngspice-37 2022-05-16 16:30:09 +02:00
Holger Vogt 8f4e712a11 Preliminary fix to enable the core model with hysteresis.
Make error message more verbose.
2022-05-16 16:29:08 +02:00
Giles Atkinson fbebfb708c Two memory leaks found interactively with valgrind with safe fixes. 2022-05-10 08:29:54 +01:00
Giles Atkinson 4fd0a68fb2 Fix memory leak found by valgrind/paranoia. 2022-05-10 08:25:28 +01:00
Giles Atkinson 55e8975124 Suppress warning from gcc 10.2.1. 2022-05-09 10:51:18 +02:00
Giles Atkinson 11d6c41a7d Fix memory leaks found by valgrind in the paranoia script. 2022-05-08 17:59:20 +02:00
Giles Atkinson b26be81444 Fix XSPICE memory leaks found by valgrind. 2022-05-08 17:59:11 +02:00
Giles Atkinson 44c68183e8 Further change for #578 "Crash while plotting single complex vector".
Move the check on vector lengths to ensure all cases are covered.
2022-05-03 17:00:11 +02:00
Holger Vogt 074a2a6f11 Fix bug 581, reported by Adam Denton 2022-05-02 20:32:21 +02:00
Holger Vogt 60d349589d Merge branch 'pre-master' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master 2022-05-02 11:27:01 +02:00
Holger Vogt aeef25efaf Enable compiling the shared ngspice library with S-parameters enabled 2022-05-02 11:26:32 +02:00
dwarning 4a6f61ad5a more logical setup for absurd parameter input 2022-05-02 09:19:08 +02:00
dwarning d692669bb9 prevent crash for absurd parameter input 2022-05-01 17:55:56 +02:00
Holger Vogt 6328f7ac13 Don't use bitwise operators, but logic operators 2022-04-30 23:39:24 +02:00
Holger Vogt c094f2e979 Avoid circular redundant function declaration.
Include vsrcext.h only via vsrcdefs.h, so VSRCinstance is defined.
2022-04-30 23:17:46 +02:00
Holger Vogt 78ffba59d4 Remove unused (preliminary) 2022-04-30 16:58:24 +02:00
Holger Vogt 1576783017 add some missing prototypes 2022-04-30 16:58:01 +02:00
Giles Atkinson e6bbbefa10 Suppress warnings from function pointer casts seen with gcc 10.2.1. 2022-04-30 15:26:57 +02:00
Holger Vogt 01266e48ea Merge branch 'pre-master' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master 2022-04-29 23:33:42 +02:00
Holger Vogt cf62c69aef remove numerous unsigned int vs. int warnings
by setting all variables to type int.
Remove redundant function declarations by remmoving some includes
in span.c and vsrcdefs.h
In tmalloc convert int to size_t
2022-04-29 23:22:05 +02:00
dwarning bc0f1a7a02 simplification of hicum2 model switches selfheat and nqs 2022-04-29 20:43:33 +02:00
dwarning 6dd5c5ad25 #bug 580: prevent crash in case of hicum2 default parameter set 2022-04-29 18:40:19 +02:00
dwarning 43e7c1eb17 #bug 580: prevent crash in case of hicum2 default parameter set 2022-04-29 18:33:48 +02:00
Holger Vogt ea0cdbd6d7 Set {} to remove compiler warning (VS) 2022-04-29 14:32:11 +02:00
dwarning 8361cd8915 correct pnp type bipolar transistor current convention 2022-04-29 11:07:56 +02:00
Holger Vogt 1edc6b8a51 Fix a bug: remove excess ')' 2022-04-29 09:43:16 +02:00
Holger Vogt 86b22083f4 If XSPICE is not selected, still send CKTspDump(ckt, freq, spPlot),
but without ipc (spPlot instead of undefined acPlot)
2022-04-29 07:21:39 +02:00
Holger Vogt 52d0e69710 Add a note that wrs2p currently is limited to two ports only. 2022-04-28 14:14:13 +02:00
Holger Vogt 1d8dacedaa S-parameters: Replace S11 by S_1_1 etc. to avoid ambiguity
when more than 10 ports are measured.
Update to S-parameter script and command wr2sp
2022-04-28 11:58:21 +02:00
Holger Vogt dcf9c1027a Add new flags to command devhelp:
-type (show parameter types)
-flags (show parameter flags)
Patches provided by Mikolaj Wielgus
2022-04-27 08:46:26 +02:00
Giles Atkinson ce81dd7fd9 Rename a variable so that it does not clash with one in outer scope. 2022-04-25 21:12:57 +02:00
Holger Vogt f12f31bed6 Searching for params: as plain identifier 2022-04-25 16:26:30 +02:00
Holger Vogt 7924af7f22 Remove the special handling of X... device names.
Subcircuit devices are saved with leading X in their names.
2022-04-25 15:18:25 +02:00
Giles Atkinson dd7ec4470d Fix Bug #577 "Zooming iplot drops vectors" and three crashes when
the iplot window is closed during simulation.
2022-04-25 13:53:41 +02:00
Holger Vogt 28a39a51d6 Search for "off" token in device instance lines not with
C standard fcn strstr, but with search_plain_identifier().
Thus allow model names that contain "off" (like offset)
2022-04-25 13:38:37 +02:00
Holger Vogt 7703c2d370 Add a function itoa10 and use it
instead of non-standard itoa.
2022-04-25 13:35:23 +02:00
Holger Vogt 4aa5d784ec When calculating power, we need to exclude thermal nodes
of devices like diodes (d) and MOS (m)
2022-04-25 11:35:29 +02:00
Holger Vogt 458b6cf776 Add flag 'power' to fcn setallvsources()
Add code to calculate the power dissipation in a device
(top level instances, including X (subcircuit) invocations).
2022-04-23 20:07:52 +02:00
Holger Vogt 761da8ad0e revert polarity of current mesurements:
current positive when flowing into device, e.g.
Ic, Ib of a positively biased npn.

Add current measurement for all nodes of a device,
e.g. .probe i(Q1) will measure Ic, Ib, Ie (and Is)
2022-04-22 17:46:55 +02:00
Giles Atkinson 2b1433e968 Fix numerous gcc warnings of duplicate declarations. 2022-04-21 15:48:58 +02:00
Giles Atkinson 724cf4e638 Fix Bug #402 "Crash related to aliases". Do not return freed pointer. 2022-04-21 15:48:50 +02:00
Holger Vogt 2aa950fe9c Remove a conflict between the text variable substitution like
set text = "mytext"
set newtext = new.{$text}
echo $newtext
and the command circbyline, which may have to process strings
containing braces {...} without any change to the string.

Do not call cp_doglob() when command circbyline is executed.
2022-04-19 23:26:26 +02:00
Holger Vogt 7985b05aec make comment more verbose 2022-04-19 23:22:17 +02:00
Holger Vogt ae221a70c2 Remove a typo: runable --> runnable 2022-04-15 10:52:56 +02:00
Holger Vogt cd01f4949e Make error message more verbose 2022-04-11 12:05:54 +02:00
Holger Vogt 9deb9f51d8 In case of resistor valuues r150 (r + integer number),
return 150
R2 n1 n2 r150

In case of r23mod return error = 1 and val = 0, so
r23mod may be read as a model, not an instance parameter
R3 n3 n4 r23mod
2022-04-06 16:01:45 +02:00
Giles Atkinson bf7efb18f9 Fix two crashes caused by trying to plot after circuit parsing failed. 2022-04-06 10:24:23 +02:00
Giles Atkinson e16564edf7 Make "nogrid" plotting option work. The deleted code was in the original
commit, so the reason for it can not be traced.
2022-04-06 10:24:16 +02:00
Holger Vogt df9859a5d0 function deriv: This is just a preliminary fix: prevent a crash
when base > 0.

But when is base supposed to be > 0 ? More invetigation is needed.
2022-04-06 10:13:52 +02:00
Holger Vogt 744eaece69 Patch to avoid false reads and writes due to inconsitent
structs SPAN and NOISEAN.
Prevent using non-initialized variables.
2022-04-04 17:41:28 +02:00
Holger Vogt e33ebe5636 Compile only when RFSPICE is selected in config.h 2022-03-30 15:54:35 +02:00
Holger Vogt d903eb45cd Linking failed on openSUSE Linux gcc:
make the inline functions static to allow linking
2022-03-29 17:50:00 +02:00
Holger Vogt 95e1eaf396 Provide access to the necessary structs like cplx 2022-03-29 16:22:49 +02:00
Holger Vogt 39f43a1b1d add missing noisesp.c 2022-03-29 16:00:10 +02:00
Holger Vogt 8bdcc94b95 Patch suggested by Alessio Cacchiatori at
https://sourceforge.net/p/ngspice/discussion/127605/thread/7a2655c86f/
2022-03-29 15:30:39 +02:00
Alessio Cacciatori abd5b5ea04 S-parameters in ngspice
With this commit the patch provided by Alessio Cacchiatori the S-parameter is completed:
Noise simulation added with C matrix output
Y and Z matrix output enabled

To allow compiling with gcc, the dense.h inline functions have been put into denseinlines.h
2022-03-29 09:06:10 +02:00
Holger Vogt 86132f445d We start not at 0, but use the mean value (given in PARAM2) as
start value
2022-03-28 18:00:14 +02:00
Vadim Kuznetsov e52ea6109a Patch allowing call to S parameter simulation also from .control section by using command 'sp' 2022-03-27 10:40:12 +02:00
Holger Vogt ae3d171d91 Prevent a segfault when the parameter to command 'repeat' is given,
but cannot be evaluetd to a number.
2022-03-21 16:53:37 +01:00
Holger Vogt 714aae3d2f .probe: replace (all) by alli (we only measure all currents) 2022-03-14 10:56:16 +01:00
Holger Vogt dd2eb6c652 Make function search_plain_identifier non-static
Declare info on the compatibility mode as a 'Note'.
2022-03-14 10:54:47 +01:00
Holger Vogt dec3fd0fd9 adding expressions in {} as pwl parameters
not complete, still requires caring about the FIXME above.
2022-03-13 11:39:06 +01:00
Holger Vogt 509c2347cc Remove the "type" declaration from a .model line 2022-03-13 11:24:33 +01:00
Holger Vogt 8dc34b31a2 If XSPICE is not selected, still send CKTspDump(ckt, freq, spPlot),
but without ipc (spPlot instead of undefined acPlot)
2022-03-11 23:34:14 +01:00
Holger Vogt d14ea924b3 Use #ifdef XSPICE to exclude findvec_alle() if
XSPICE is not selected.
2022-03-11 23:32:25 +01:00
Holger Vogt b0a54137a9 exclude 'type=xxx' from model declaration 2022-03-11 23:31:26 +01:00
dwarning e3b6deaf56 remove duplicate pointer allocation 2022-03-06 23:12:34 +01:00
Holger Vogt 31a0f3eaf6 d_pwm: Add a hybrid oscillator (analg control in, digital out) with PWM
(pulse width modulation) capability, oscillation frequency is a parameter.

The model has been derived from the d_osc example.
2022-03-04 11:43:18 +01:00
Holger Vogt f21255ef1b Fix regression bug #579
Accept numbers to ac statement in voltage (current) sources
also given as parameters.
2022-02-22 20:39:20 +01:00
Holger Vogt 20d5919e59 Terminal setting to X11 fails in macOS, and is not required
on Linux.
Setting terminal here is redundant, so remove this setting.
2022-02-22 15:22:21 +01:00
Holger Vogt 12a93c9fe6 Update to plotting of event nodes:
Distance is now 1.5, scaling and cutouts are possible
(with some lack of precision).

Still missing: y axis labeling (no numbers, but node names).
2022-02-21 20:19:56 +01:00
Holger Vogt 342a16d6e1 Add a flag 'alle' (all event nodes) to the plot command (and maybe others).
All event nodes with length greater than 1 are translated to vectors
with a common scale (named step) and are assembled in a new plot
named 'digital'. They may be plotted or otherwise used in a
.control section.
2022-02-21 20:16:20 +01:00
Holger Vogt 0557bc60bf Prevent crash if nsp is evaluated to 0 2022-02-21 16:56:16 +01:00
dwarning 20abe9ca38 white spaces 2022-02-20 14:55:10 +01:00
Holger Vogt 917dab9da7 new flag 'digitop' for the 'plot' command:
Plot digital (event nodes) vertically, separated by 0.1
The grid is adapted acordingly.
set xbrushwidth=3 will yield good results.
2022-02-19 17:25:57 +01:00
Holger Vogt 7130097710 Prevent crash when no simulation has been run and
asking for plotting an event node
2022-02-19 17:23:36 +01:00
Holger Vogt 954cc86e59 Add new or upgraded functions as of 01-09-22.
Add a function prototype for cmod.
Rename function conj to conju because conj
is already defined differently in complex.h
2022-02-17 15:49:53 +01:00
Holger Vogt 94a73ffef2 Add changes from 01-09-22, but without the extra extern calls,
which have led to a bunch of warnings when compiling with gcc.
2022-02-17 15:49:33 +01:00
Holger Vogt e99638c89f Remove int <--> unsigned int warning 2022-02-17 15:49:20 +01:00
Holger Vogt 4e1ae255f6 Inlude code into #ifdef RFSPICE ... #endif
to allow compiling without pre-processor flag RFSPICE.
2022-02-17 15:49:09 +01:00
Holger Vogt de572d2cdf Remove in <--> unsigned int mismatch 2022-02-17 15:48:52 +01:00
Holger Vogt c2d279a1ef Remove trailing spaces. 2022-02-17 15:48:31 +01:00
Holger Vogt 648ba396ff Add missing makefile.am in src/math/dense
and add src/math/dense to AC_CONFIG_FILES
in configure.ac
2022-02-17 15:48:25 +01:00
Holger Vogt 3b0eb41c74 Enable compiling with --enable-sp for RF SPICE
Set preprocessor flag RFSPICE
Add new files and directory 'dense' ('dense' is still buggy)
2022-02-17 15:48:19 +01:00
Holger Vogt 5b8ed0a84e Remove redundant declarations 2022-02-17 15:48:10 +01:00
Alessio Cacciatori 2c10c4aebd S parameter simulation
Command '.sp'
arbitrary number of ports
ports made with modified VSRC

Patch provided by Alessio Cacciatori
https://sourceforge.net/p/ngspice/discussion/127605/thread/7a2655c86f/
2022-02-17 15:48:00 +01:00
Brian Taylor b774d03162 Change the y-axis direction for a 2d Cider gnuplot. The device surface is at the top and downwards is into the material, which is the normal presentation. Note that the x/y mesh commands in a Cider model also affect the orientation. 2022-02-17 15:45:28 +01:00
Holger Vogt 62f326b9d0 Fix a bug from previous commit: min -> MIN 2022-02-07 22:39:27 +01:00
Holger Vogt 0eb272243f Enable RKM notation also for inductors (e.g. 1u2 for 1.2u) 2022-02-07 16:00:29 +01:00
Holger Vogt 640fa7e17b bug 578 crash when scale is too short
Warning message if scale and vector length do not match.
Restrict number of points plotted to the smaller of both.
2022-02-07 15:59:43 +01:00
Holger Vogt 4f82a24df2 Add parameter 'isgrid' to plotting of arcs.
Smithgrid and polar plots could not discern between xgridwidth and
xbrushwidth. This is now available, similar to straight line plotting.
Tested also for PS and SVG.
2022-02-01 12:23:29 +01:00
Giles Atkinson 16f586b65e Respect the "tstart" parameter when saving event node data (XSPICE).
Fixes Support Request #47: "XSpice memory usage (TRAN TSTART effect)".
2022-01-28 12:25:36 +01:00
Giles Atkinson 6494befb2f Request backing store for X11 plot windows. When supported by the X server
windows are redrawn vey quickly without replotting.
2022-01-28 12:24:58 +01:00
Giles Atkinson f4285384e7 Add code in graf.c to merge connected lines with the same slope before
plotting.  This speeds output and reduces file size when the vector
length is much larger than the number of pixels.  It should help with
Feature Request #58:
  "Graph plotting under windows redraw very slow and hard to work with",
but is not a full fix.
2022-01-28 12:24:51 +01:00
Holger Vogt ce9bc9fc64 The re-painting due to mouse-click under MS Windows is caused by line 561
of windisp.c. Upon left mouse button up the plot recangle is invalidated,
and a WM_PAINT message is generated (same on line 614 for right mouse
button up). If not re-pained, artifacts may be left on the canvas after
collecting coordinate data.

Shifting the command InvalidateRect to a place where it becomes active
only after the mouse has been moved, does the trick. Simple clicking
(right or left) will not cause a re-paint any more.
2022-01-28 12:11:39 +01:00
Kevin Zheng 857fbec985 Improve iteration limit options display 2022-01-17 12:06:35 +01:00
roman 74787f0c33 Fix EXTERNAL type in isrc 2022-01-17 11:32:01 +01:00
Holger Vogt ced2128f58 .measure results from batch mode may be saved in a file
(in addition to the printout)
Add command
set measoutfile=<path/filename>
to .spiceinit or to a .control section in the netlist
2022-01-15 23:28:06 +01:00
dwarning 0c34ac019f use total current for diffcap calculation 2022-01-15 16:22:42 +01:00
Holger Vogt 4ee0586cee Enable output redirection for meas command
replace printf("... by fprintf(mout, "...
mout is routinely set to cp_out, which then allows redirection by > and >>
2022-01-15 16:02:20 +01:00
Holger Vogt 018713cc43 Bug 572 Error message 'function 'xyz' currently not supported' was buggy.
xyz had not been set.
Copy function name to the heap and free accordingly.
2022-01-15 14:43:44 +01:00
Holger Vogt 46696a6aaa If function is not found, bail out if strict_errorhandling is set. 2022-01-15 14:09:50 +01:00
Holger Vogt 632f8c033d Make numoparam error messages more user friendly.
Add line number of netlist to the message.

Original line number added to new lines in inpcom.c.
Internal error messages only when 'ngdebug' is set
2022-01-15 13:43:26 +01:00
Brian Taylor 08bc3ccdd6 Remove compiler warnings (writ_ifs.c ipcsockets.c). 2022-01-13 14:54:16 +01:00
Holger Vogt 1558c5abcb Add a suitable error message and fallback to default temperature
if an error in the temperature entry is found.
2022-01-13 14:48:35 +01:00
Holger Vogt 5a065c1657 Originally only '.temp 125' had been accepted.
There has not been any error message if '=' was used,
the temperature just had been set to 0°C.
Now also '.temp=125' or .temp='param' are accepted.
2022-01-13 10:06:27 +01:00
Giles Atkinson 23e9df0181 Fix for ticket #570: Interactive prompting is always active.
Control prompting with variable "interactive" and stop setting it by default.
Add code in main.c to set it for an interactve session.
2022-01-12 15:22:19 +01:00
Holger Vogt c4e94cd59b safeguard against a crash when the s line is buggy 2022-01-12 15:16:06 +01:00
Holger Vogt 64dba93b93 We are now developing ngspice-36+ 2022-01-09 11:57:05 +01:00
Holger Vogt f0e9a35eb6 Add 'esave' command to save only specific event nodes.
Add a prompt for esave/eprint/eprvcd.
2022-01-09 10:58:38 +01:00
Holger Vogt 9308c6b077 Reuse memory for queued events.
Patch #109 - 2 provided by Giles Atkinson
2022-01-03 22:11:03 +01:00
Holger Vogt 0c59a77fc4 During op evaluation we might use source stepping.
Independent V and I sources are stepped, the B source however is not.

Add source stepping to B source.
2022-01-02 13:53:38 +01:00
Carsten Schoenert 486dd587d0 spelling: Fix misspelled word Instnace 2022-01-02 13:51:44 +01:00
Holger Vogt 8263e2a4da The AD and DA hybrid XSPICE bridges consume a lot of
memory (one state per time step added). Memory of
previous time steps is not recovered.

Patch #109 by Giles Atkinson reduces memory consumption
dramatically (> factor of 10).
2022-01-01 16:14:48 +01:00
Holger Vogt 1a6a9e6bb6 Add com_wr_ic.h to their makefile.am
to have them as part of make dist.
2021-12-30 15:23:22 +01:00
Holger Vogt 43f2182e56 Add com_optran.h and cplhash.h to their makefile.am
to have them as part of make dist.
2021-12-30 15:08:15 +01:00
Holger Vogt c7bc84943a plug a memory leak 2021-12-23 14:38:09 +01:00
Holger Vogt a8d8600faa plug a memory leak 2021-12-23 14:37:57 +01:00
Holger Vogt cb0d8f18dc Prepare for ngspice-36 2021-12-18 13:47:43 +01:00
Holger Vogt 4f73c27d86 Memory access error: don't free GENinst->GENname.
Use memcpy to overwrite old name by a (shorter) new name.
Compiler warnings are thus removed.
2021-12-16 08:04:54 +01:00
Holger Vogt 9be9f46f96 Remove unused function Evt_Data_destroy() 2021-12-16 08:04:44 +01:00
Holger Vogt 6ba484e5d2 Remove redundant redeclaration of ‘ft_getpnames_quotes’ 2021-12-16 08:04:34 +01:00
Holger Vogt 5adbfc1c86 Remove compiler warnings associated with snprintf()
Use memory allocated on the heap instead.
2021-12-16 08:04:20 +01:00
Holger Vogt b5b462506f add a function prototype for com_wric() 2021-12-16 08:03:59 +01:00
Holger Vogt 3bac1ffabe Allow adequate size for copying.
Add the missing character string to fprintf.
2021-12-13 22:31:19 +01:00
Holger Vogt b636017359 add function prototype
for insert_new_line()
2021-12-13 22:09:17 +01:00
Brian Taylor 8e75cad453 Fix missing initializer warning. 2021-12-13 21:50:30 +01:00
Holger Vogt 11117912f9 typos 2021-12-13 21:50:20 +01:00
Holger Vogt 1605d293d0 Add function integ to control language
Trapezoidal rule for integrating a vector.
2021-12-13 21:49:45 +01:00
dwarning 2eaf35f633 fix a double application of device multiplier for certain diode parameter 2021-12-13 21:49:33 +01:00
Holger Vogt 422719200e re-enable parameters in agauss function
fixes bug #564 reported by Stefan Schippers

If nested braces {..{  }...} have been created,
replace the inner { } by ( )
2021-12-13 21:49:18 +01:00
Holger Vogt a68cfefb28 hcopywidth and hcopyheight failed with SVG plot
cp_getvar read CP_NUM, not CP_STRING
Patch #108 contributed by Giles Atkinson

Add hcopywidth and hcopyheight to example nmos_out_BSIM330_svg.sp
2021-12-13 21:49:01 +01:00
Holger Vogt b749e62e31 Make error message more verbose 2021-12-13 21:48:29 +01:00
Holger Vogt aaf586ae83 .probe: Add more safeguards to prevent crashes
in case of wrong user input
due to obtain empty lines in shared ngspice
2021-12-13 21:48:21 +01:00
Holger Vogt bb9f1669f6 Enable math characters also in tokens like i(z/z) by
temporarily putting " around the token.

Improve error message on missing vector
2021-12-13 21:47:54 +01:00
Holger Vogt b59d2aabd1 .probe: Add function call to modprobenames()
Function resides in inpc_probe.c.
The function renames all current measurement instances
vcurr_instance:node#branch to instance:node#branch by
modifying the global instance table (tab).
2021-12-13 21:47:37 +01:00
Holger Vogt 9dff15507d .probe: Add call to function inp_probe() which resides
in inpc_probe.c.

Make function insert_new_line() non-static

Enable detecting the number of nodes in x-lines
(calls to subciruits) in function get_number_terminals()
2021-12-13 21:47:27 +01:00
Holger Vogt 7f1a3bea20 .probe: Add the new file inpc_probe.c to the VS project files
and makefile.am in ngspice/src/frontend
2021-12-13 21:47:11 +01:00
Holger Vogt 951be0ddb0 New dot command .probe:
Code to enable current measurements at all top level
device pins and to enable differential voltage measurements
between two (arbitrary, top level) device nodes.

Adds 0 V voltage sources for current measurements to selected or all
device nodes at top level (including X lines)

Adds an E source excited by two arbitrary nodes for differential
potential (aka voltage) measurements between these nodes

Function inp_probe() is called from inpcom.c
2021-12-13 21:46:57 +01:00
Holger Vogt 7f75b2a7b8 Update to previous commit: safeguard against no circuit loaded 2021-12-13 21:46:29 +01:00
Holger Vogt 54eb12de39 Fix a bug: Crash when 'settype @d1[id]' is given,
but simulation is not yet run.

Add a better check for having at least one simulation run
2021-12-13 21:46:15 +01:00
Holger Vogt 1ce0066d3b Update to previous commit: corrected and enhanced warning messages 2021-12-13 21:46:03 +01:00
Holger Vogt 16fd8749cf Fix a bug: Crash when 'settype @d1[id]' is given,
but simulation is not yet run.

Ask for the job before acknowledging settype on
a vector starting with @
2021-12-13 21:44:30 +01:00
Holger Vogt 2f98a5b305 evtprint: prevent a crash when eprint has been called
but there is no simulation run.
2021-12-13 21:44:02 +01:00
Holger Vogt bff90f1498 Put the gmin reversal into the comment 2021-12-13 21:43:50 +01:00
Holger Vogt 5424fd0d43 Reverse the sequence of dynamic-gmin and new-gmin.
The old method dynamic-gmin now comes first,
new-gmin will follow when the former has failed to converge.
2021-12-13 21:43:30 +01:00
Holger Vogt 79c71a4ec3 Enable math characters in vector (node) names for command fft
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:42:36 +01:00
Holger Vogt ccd9a217c3 Enable math characters in vector (node) names for logic comparison
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:42:25 +01:00
Holger Vogt 8895a6e633 Enable math characters in vector (node) names for command alter
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:42:12 +01:00
Holger Vogt ee2f3a72f4 Enable math characters in vector (node) names for command fourier
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:41:58 +01:00
Holger Vogt 98b7074287 Enable math characters in vector (node) names for command spectrum
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:41:48 +01:00
Holger Vogt c09839b209 Enable math characters in vector (node) names for commands
write and print
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:41:37 +01:00
Holger Vogt 57f6d41e69 Enable math characters in vector (node) names for plotting
Replace ft_getpnames() by ft_getpnames_quotes().
2021-12-13 21:41:28 +01:00
Holger Vogt e93a19e3e8 Allow math characters in node names
Add a function ft_getpnames_quotes()
It puts quotes " around tokens xxx, when these are enclosed as
V(xxx) and contain arithmetic characters. V(R*C) becomes
V("R*C"). After settig up the parse tree, the quotes are removed again.
Thus these math character remain part of the node name and are not
parsed as parts of an equation.
2021-12-13 21:41:16 +01:00
Holger Vogt d5dc757288 correct assignment of a variable value to a 1-bit-field
only by a logic comparison.
2021-12-13 21:40:57 +01:00
Holger Vogt 90377dcff9 struct TSKtask: group all single bit fields together 2021-12-13 21:40:38 +01:00
dwarning 26979079d4 prevent few compiler warnings 2021-12-13 21:40:15 +01:00
Holger Vogt 3f3936c728 Remove memory leaks 2021-12-13 21:34:07 +01:00
Holger Vogt 89eaf7739c Remove unused variables 2021-12-13 21:33:09 +01:00
Holger Vogt a420f58ef5 Plug a (potential) memory leak
Add missing memsaved
2021-12-13 21:32:46 +01:00
Holger Vogt 6b41ad433a Remove memory leak
Free some tokens generated by CNVget_token
Initialize reset and clk

Still missing: free 'states'
2021-12-13 21:32:15 +01:00
Holger Vogt 36fa47a8a0 Remove memory leak
Add callback function free_local_data
Free some tokens generated by CNVget_token
2021-12-13 21:31:49 +01:00
dwarning 8f9bf94a38 Aware of sscanf return value 2021-12-13 21:30:55 +01:00
dwarning ba6d8c871c white spaces 2021-12-13 21:30:32 +01:00
dwarning ba9f5be52c Prevent arithmetic overflow and reduce operations 2021-12-13 21:29:37 +01:00
Brian Taylor 38848259e4 With the ngspice gnuplot command, enable x/y contour plots for 2d Cider save file data. Usage: gnuplot <file> xycontour <expr>. xycontour is a new flag which is ignored if the plot data is not from 2d Cider. For contours, only a single plotarg <expr> is allowed. With <expr1> vs <expr2>, only <expr1> is plotted and <expr2> is ignored. 2021-10-30 13:21:32 +02:00
dwarning 550e9f1a81 correct some scaling rules 2021-10-30 11:03:26 +02:00
dwarning f638a63fba save few calculation effort in diode load routine 2021-10-30 11:03:05 +02:00
dwarning 62242a5538 save few calculation effort in bjt load routine 2021-10-30 11:02:54 +02:00
dwarning 133f9c46e7 prevent unwanted fallthrough 2021-10-30 11:02:25 +02:00
dwarning ae49043fe3 correct scaling for IBC parameter 2021-10-30 11:02:13 +02:00
dwarning b15c7d29f1 correct temp update for IBE and IBC parameter 2021-10-30 11:01:51 +02:00
dwarning 01fb0ac18b introduce IBE and IBC model parameter for more accurate current calculation 2021-10-30 11:01:36 +02:00
dwarning 231e6218a5 remove comment regarding ancient leakage current defaults 2021-10-30 11:01:24 +02:00
dwarning 5ff04ee85b c2 and c4 are now aliases for B-E and B-C leakage saturation currents 2021-10-30 11:01:09 +02:00
Holger Vogt fb98f7873b remove some compiler warnings 2021-10-30 10:46:39 +02:00