Holger Vogt
696736b2b3
adding expressions in {} as pwl parameters
...
not complete, still requires caring about the FIXME above.
2022-04-25 21:28:52 +02:00
Holger Vogt
242a1d796a
Remove the "type" declaration from a .model line
2022-04-25 21:28:32 +02:00
Holger Vogt
36868e0b0f
Use #ifdef XSPICE to exclude findvec_alle() if
...
XSPICE is not selected.
2022-04-25 21:28:03 +02:00
Holger Vogt
ed2d48756c
exclude 'type=xxx' from model declaration
2022-04-25 21:27:53 +02: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
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
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
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
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
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
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
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
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
Carsten Schoenert
486dd587d0
spelling: Fix misspelled word Instnace
2022-01-02 13:51:44 +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
a8d8600faa
plug a memory leak
2021-12-23 14:37:57 +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
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
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
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
3f3936c728
Remove memory leaks
2021-12-13 21:34:07 +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
Holger Vogt
01ed224896
A check to avoid multiple entries for the same node into the .save list
...
Scan the data base dbs (list of saves) before a new entry is generated.
2021-10-29 16:40:51 +02:00
Holger Vogt
bde0639bc4
save within subcircuit
...
enable V(a,b) as v(a) v(b)
2021-10-29 16:40:34 +02:00
Holger Vogt
e90b3e711b
F.-request 85: save currents in subcircuits
...
Separate handling .ic/.nodeset and .save .
Add i(Vxx) to address translation.
Vxx#branch is not supported.
2021-10-29 16:40:23 +02:00
Holger Vogt
bd0113ea9a
Feature request 85: Enable .save within subcircuits
...
inp.c: Add .save to wl_first only after subcircuit expansion
subckt.c: treat .save like .ic
2021-10-29 16:40:06 +02:00
Holger Vogt
7ce476c0ad
Make optran standrad by calling com_optran during ngspice initialization.
2021-10-29 16:38:27 +02:00
Holger Vogt
d6038ea43c
Redo the transformation vswitch -> pswitch
...
Parsing takes default values into account, when
parameter is missing.
S vswitch --> pswitch code model
S_ST vswitch (with hysreresis) --> SW switch
S iswitch --> aswitch code model
S_ST iswitch (with hysreresis) --> CSW switch
Use string handling for replacements: allow parameter
equations in .model lines.
2021-10-29 16:37:19 +02:00
Holger Vogt
bbccb4b63e
Improved error message:
...
when argument out of range, name the term
2021-10-29 16:36:55 +02:00
Holger Vogt
a87b237bff
is_a_modelname() to detect a model 1N4148, if compt LT is set.
...
Rewrite is_a_modelname(), when LT is set: only check element lines
beginning with r and c for RKM notation of a number.
So don't use a RKM number (e.g. 4k7) for naming a resistor model.
2021-10-05 18:01:53 +02:00
Holger Vogt
6f6f2b8996
Remove double assigment to s[1]
...
Assignment Is either done in the loop or by *y = '\0';
2021-09-29 20:31:22 +02:00
Holger Vogt
df5e7e36f6
When checking for µ, truncated the line, when shifted.
...
Enable R470, when newcompat LT is selected.
2021-09-29 20:30:53 +02:00
Holger Vogt
3dcc36c1c3
ngspice input deck may contain special characters like µ (mu).
...
Detect mu for ANSI and UTF-8 and translate it to u.
2021-09-29 20:30:35 +02:00
Holger Vogt
93f904fb0b
Make 'speedcheck' also available in batch mode simulation.
2021-09-29 20:29:36 +02:00
Holger Vogt
5d116d1fb9
command listing: add option r (runable)
...
listing r > $inputdir/mycirc_runable.cir
will save the expanded netlist without line numbers,
ready to be sourced again and run in ngspice.
2021-09-29 20:29:26 +02:00
Holger Vogt
3cf6857cfc
Fix bug #557
...
Revise memory allocation for different analysis types
2021-09-29 20:28:43 +02:00
Holger Vogt
601287e949
Check V and I lines for dc and ac.
...
Allow ac without parameters, a default is set to ac ( 1 0 )
2021-09-29 20:28:15 +02:00
Brian Taylor
81df6ed772
Retaining the mixed case of Cider quoted string valued parameters. Limit searches for ic.file to D*, M*, and Q* device instantiation lines. Cider model (numos, numd, nbjt) detection is limited to .model lines. Continuation lines which do contain these tokens are not checked, but this should rarely happen. All of the examples/cider circuits meet these assumptions. Memory errors have been removed.
2021-09-29 20:27:29 +02:00
Holger Vogt
3599c189b6
re-enable lower-casing of tokens beginning with 'cd',
...
except for command 'cd' which is usually followed by a space.
2021-09-29 20:27:05 +02:00
Brian Taylor
abad190b38
Don't search for ic.file within comments.
2021-09-29 20:23:26 +02:00
Brian Taylor
b3a99f0c6c
Do not use non-portable strcasestr.
2021-09-29 20:23:08 +02:00
Brian Taylor
663a79dea8
Fix NAN error in numd2 area report and crashes when a doping file is missing. Update examples/cider so that the test circuits all run; add case sensitivity tests for rootfile and ic.file parameter strings enclosed in a single pair of double quotes.
2021-09-29 20:22:56 +02:00
Holger Vogt
e84c210876
'Option interp' and command 'stop' have been incompatible.
...
Allow both in a run.
Issue note (however not checked) that stop time data have to fit
the inpolated times.
2021-09-29 20:21:23 +02:00
Holger Vogt
e35e3e3b33
prevent a crash, e.g. when incompatible 'option interp'
...
is set and 'stop' is called.
2021-09-29 20:20:52 +02:00
Holger Vogt
a180eb60d5
command 'wrnodev'
...
Write current node voltages to file in format .ic=value
The file may be used to set initial conditions for another simulation,
e.g. ac at a specific time step of a transient simulation.
2021-09-29 20:20:27 +02:00
Holger Vogt
3f322e1954
Add a check for sys/sysctrl.h, which has been declared deprecated,
...
and which may not be available (in the future) on some systems.
2021-09-29 20:17:23 +02:00
Holger Vogt
f06496c912
Enable command 'optran' in spinit or .spiceinit,
...
when the circuit is not yet loaded.
Then the optran data are stored in static variables,
until optran is called again with arg NULL from inp.c,
to set the data in ft_curckt->ci_defTask.
2021-09-29 20:15:13 +02:00
Holger Vogt
a225ce2aaf
List definition needs spaces between ( and next token,
...
and between token and )
Update to comment.
2021-09-29 20:14:45 +02:00
Holger Vogt
f0cb886af1
Add command 'write_ic'
...
Write out the right hand side status of the matrix in format
.ic = V(node_xx)
This may be possible at the end of a simulation or after a 'stop'
of the simulation, which may be resumed again afterwars. This
status may be used to start another simulation with these
parameters by inluding into the netlist.
2021-09-29 20:11:45 +02:00
Holger Vogt
0e72287af7
Add command 'write_ic'
...
Write out the right hand side status of the matrix in format
.ic = V(node_xx)
This may be possible at the end of a simulation or after a 'stop'
of the simulation, which may be resumed again afterwars. This
status may be used to start another simulation with these
parameters by inluding into the netlist.
2021-09-29 20:11:13 +02:00
Holger Vogt
ab6224767b
Add command 'optran' to set 6 flags for transient op
2021-09-29 20:01:44 +02:00
Holger Vogt
9221df234c
Patch to allow (and ignore) leading or trailing commas
...
when putting {} around tokens. Tested with PWL voltage source.
Patch has been suggested by Liqian Zhang
2021-09-29 19:58:36 +02:00
Holger Vogt
605f59b417
Fix a bug with the alter statement
...
lower case for device name, when sent from shared ngspice
or from interactive mode.
2021-08-08 10:21:22 +02:00
Holger Vogt
9cc9c56cad
Don't write past '\0', fixes a bug in commit
...
1c5e0d11d ("If there is a XSPICE code model .model line with
file input, keep quotes and case for the file path.", 2021-07-15)
2021-07-18 11:19:51 +02:00
Holger Vogt
b7473a33a0
Check for double '{', replace the inner '{', '}' by '(', ')'
...
in .subckt or .model (which both may stem from external sources)
2021-07-18 10:29:16 +02:00
Holger Vogt
1c5e0d11dd
If there is a XSPICE code model .model line
...
with file input, keep quotes and case for the file path.
2021-07-16 10:52:54 +02:00
Holger Vogt
15a3ed87c0
Enable the m parameter in E, G, B, R behavioral source/devices
2021-07-16 10:52:21 +02:00
Holger Vogt
d34d1e7c7c
Get immediate response into text window,
...
when requesting information on coordinates.
2021-07-07 19:50:50 +02:00