Holger Vogt
182a4d3f5f
WinGUI: Push any remaining error message into text window
...
before emitting interactive error message window and exit.
2021-07-07 19:50:37 +02:00
Holger Vogt
ae72677cc2
Remove a false read when curr_line has
...
already been invalidated.
2021-07-05 19:43:25 +02:00
Holger Vogt
0f25c25c7e
Remove a memory leak
...
Make inp_rem_levels non-static
and use it to remove 'root' after it has been used.
2021-07-05 19:42:14 +02:00
Holger Vogt
93ddc7a3eb
Enhancement for E source with table, convert to B source with pwl:
...
Add G source
Allow 'table' also being part of a parameter name like 'table_something'
2021-07-05 14:32:34 +02:00
Holger Vogt
9bb401d9cd
Add a 'qsort' dummy according to current compiler standards.
...
Detected during the very rare condition of not finding a 'qsort'
during the ./configure step.
2021-07-05 14:31:08 +02:00
Holger Vogt
76eac5aa0f
Make error message more verbode
2021-07-05 14:30:35 +02:00
Holger Vogt
a4be66b9b0
Prevent crash if there is bad syntax in h, g, e, or f line
2021-07-05 14:30:26 +02:00
Holger Vogt
31fbf910af
Crash when trying to delete root and netlist:
...
Revert the order of deletion: Firstly the root, then the netlist.
2021-07-05 14:30:08 +02:00
Holger Vogt
858689d206
Make syntax check for nesting of .subckt ... .ends more verbose:
...
Try to find out where .subckt/.ends may be doubled, or missing.
2021-07-05 14:29:50 +02:00
Holger Vogt
52b5e218c7
Add '\f' to characters to be replace by '+'
...
during the syntax check of an netlist input file.
2021-07-05 14:29:35 +02:00
Holger Vogt
dcde7b590e
Don't put brackets around dtemp and temp, when they denote
...
instance parameters and thus are on the left hand side of '='
2021-07-05 14:28:39 +02:00
Holger Vogt
19abc83312
Make the choice of last commit mor obvious
2021-07-05 14:27:23 +02:00
Holger Vogt
87a9d87f7d
Replace identifier by func not only after '=', but also '{'
...
Extension to commit
61e48f984 ("Start replacing identifiers by func only after the first '='", 2021-06-18)
2021-07-05 14:26:57 +02:00
Holger Vogt
68e51848a4
logic condition to check only 'x' lines had not been given
2021-07-05 14:26:46 +02:00
Holger Vogt
d0ca6a4773
Start replacing identifiers by func only after the first '='
2021-07-05 14:26:21 +02:00
Holger Vogt
36069467fb
Clarify that 'scale set to ...'
...
is not a query, but a statement
by 'scale is set to ...'..
2021-07-05 14:25:49 +02:00
Holger Vogt
5d1dfdf34e
Fix a comment
2021-07-05 14:25:26 +02:00
Holger Vogt
06136d2d02
Set the default line width for grid and graph to 1.
...
0 is possible but seems to be too thin for reasonable plots.
2021-07-05 14:25:13 +02:00
Holger Vogt
0d2d034eb2
Add devices s and w to previous commit.
...
R and C are not yet covered here, due to the many
varieties available.
2021-07-05 14:23:52 +02:00
Holger Vogt
c033298db9
Don't replace a device model name by a parameter, if both
...
have the same names.
This is an extension to commit
7706889a0 ("inpcom.c, fix bug no 384 do not quote fourth
token in f, h lines otherwise if dev name equals param
name parsing fails", 2018-12-08)
Fixes bug 327 reported by T. Edwards at
https://github.com/google/skywater-pdk/issues/327
2021-07-05 14:23:23 +02:00
Holger Vogt
03517ae86c
Define the function DevFinalize as used in the previous commit.
2021-07-05 14:22:55 +02:00
Holger Vogt
5e8ae680db
Don't do gr_redraw twice (for non-X11 is already
...
done in gr_resize)
Add a function DevFinalize() to add the closings in SVG or PS
files ("/> or "stroke"), when files are generated by the
plot window in MS Windows.
2021-07-05 14:22:33 +02:00
Holger Vogt
1176bdb0b0
Bug: Plot window switching did not change the plot content.
...
Enable plotting the current graph to svg or ps by selecting
the graph from the current plot window.
2021-07-05 14:21:47 +02:00
Holger Vogt
604c4624d1
Within a single run, allow multiple plots with different names:
...
Add an increasing number to the id file name.
2021-07-05 14:21:16 +02:00
Holger Vogt
273b773280
New pswitch is not compatible to iswitch
...
Keep the old aswitch until a modified pswitch is available.
2021-07-05 14:20:31 +02:00
Holger Vogt
5cc5e351f1
prepare for the new pswitch with g, gd input
2021-07-05 14:19:28 +02:00
Holger Vogt
9abb61d6ac
Bug fix for %i(node1) in an A instance.
...
Don't do i() replacement in an A instance as shown above.
2021-07-05 14:19:12 +02:00
Holger Vogt
c46676d06e
If compatmode PS is set, translate vswitch and iswitch to pswitch.
...
This reverts commit 025a9fe59 ("Partially undo commit [ab778d] : revert to aswitch as vswitch replacement", 2020-11-22)
Successful OpAmp tests vote for pswitch.
Enable iswitch.
2021-07-05 14:18:30 +02:00
Holger Vogt
db5395032f
Avoid model warning for C if compat flag lt is set.
2021-07-05 14:17:49 +02:00
Holger Vogt
7dd96c241c
PSPICE MC parameters are not (yet) supported, so remove them
...
from .model (lot, dev) and netlist (.distribution)
Triggered by Patch #104 by Giles Atkinson
2021-07-05 14:12:09 +02:00
Holger Vogt
58bdf9e0e6
Remove 'goto end' and 'end:' statements.
2021-07-05 14:11:48 +02:00
Holger Vogt
c2d11728c4
enable usage of parameters in .options lines.
2021-07-05 14:11:26 +02:00
Holger Vogt
78eee72b36
.temp could not apply params like
...
.ttemp {tmpparam}:
move evaluation of .temp to a later stage
2021-07-05 14:11:03 +02:00
Holger Vogt
d0da4bebd3
make variable 'dir' local
2021-07-05 14:10:44 +02:00
Holger Vogt
4fd7de9e34
Partially re-introduce and improve code that has been
...
inadvertently deleted in commit
83592c456 ("unify the evaluation of '.options scale=xx'
.option in a netlist will override 'options' from spinit,
.spiceinit or a script '.options scalm=xx' yields a warning,
it is not supported.", 2021-04-05)
The code transforms the option statements and adds them
to the current circuit.
2021-07-05 14:09:56 +02:00
Holger Vogt
3a908c76ef
Prevent crash, refName may be NULL
2021-07-05 14:08:41 +02:00
dwarning
4ca4b43801
simplify while loop for subckt diode and bjt models
2021-07-05 14:08:02 +02:00
Holger Vogt
c8db059144
Use 'm' and 'multi' correctly in PDKs
...
If there is alraedy m=xx in a subcircuit instance line,
replace it by m='m*xx' to aknowledge the additional m.
Tested with an (old) TSMC PDK and with Skywater PDK.
2021-07-05 14:07:46 +02:00
Holger Vogt
109e33f127
Improve font selection for Win GUI plot window
...
Font Names from
https://docs.microsoft.com/en-us/typography/fonts/windows_10_font_list
without option or with Bold or Italic are supported, e.g.
setcs wfont="Cambria Bold Italic".
2021-07-05 14:06:06 +02:00
Holger Vogt
80e5f67466
Reduce wchar_t string length to minimum required
...
(to be NULL-terminated for CreateWindowW)
2021-07-05 14:05:33 +02:00
Holger Vogt
c9a19c7569
Fix for bug 547
...
Reduce length of wchar_t strings to the minimum required
for conversion
Check if Bold or Italic is given in the font name, set
corresponding variable
2021-07-05 14:04:09 +02:00
Holger Vogt
741cab390f
Prevent a crash when the number of models exceeds MODNUMBERS
...
Raise MODNUMBERS to 2048
https://github.com/kicad-spice-library/KiCad-Spice-Library/issues/16
2021-07-05 13:59:53 +02:00
Holger Vogt
66cbac3f4e
Fixes a bug introduced by commit [4895a4]
...
Re-enables R with .model like
.model R_NOISELESS RES (TCE=0 T_ABS=-273.15)
R77 1 0 R_NOISELESS 100
2021-07-05 13:59:24 +02:00
dwarning
b1bf7ea0ad
Diode model with selfheating option
2021-07-05 13:58:51 +02:00
Holger Vogt
48acb10929
Remove compiler warnings
2021-07-02 11:58:30 +02:00
Holger Vogt
e91ec306ba
Remove some compiler warnings
2021-07-02 11:58:10 +02:00
Holger Vogt
2536b78acb
Allow tailing '\0'
...
Remove potentially user induced buffer overflow by replacing
sprintf by snprintf.
2021-07-02 11:57:30 +02:00
Holger Vogt
053e8c5a04
remove compiler warning
2021-07-02 11:56:29 +02:00
Holger Vogt
d5fd9c8625
correct function prototype
2021-07-02 11:56:14 +02:00
Holger Vogt
bc74caca2f
Don't create cat2strings if on VS2019
2021-07-02 11:54:06 +02:00
Holger Vogt
d19c8e7f41
Efficiency: Remove setting the random seed to behind the options selection
...
Evaluate '.options cshunt=xx' earlier to allow the following:
Set the option by calling INPpas4() during parsing the circuit,
before .ic is set.
Ckt and Task cshunt are still set, but their values are available
only too late for INPpas4(), but may be used by command 'option'
(w/o parameters) for assessing the options and their values.
2021-07-02 11:53:42 +02:00
Holger Vogt
f8357dad88
Prepare Cshunt: add a cpacitor to each voltage node
...
Function inppas4() will add the extra caps, to be done.
2021-07-02 11:52:15 +02:00
Holger Vogt
db5c6cd0ec
Add some comments for inppas1,2,3
2021-07-02 11:51:57 +02:00
Holger Vogt
d07fab904c
Speed enhancement while reading large PDKs:
...
Line concatenation used tprintf, which uses vsnprintf,
which is very inefficient in Linux, MINGW, but efficient
using MSVC. Thus for the others a function cat2strings() is
introduced, which uses memccpy().
2021-07-02 11:51:18 +02:00
Holger Vogt
8da2f3c16d
unify the evaluation of '.options scale=xx'
...
.option in a netlist will override 'options'
from spinit, .spiceinit or a script
'.options scalm=xx' yields a warning, it is not supported.
2021-07-02 11:50:17 +02:00
Holger Vogt
9311674499
re-enable PostScript/SVG to file by pushbutton
...
on the ngspice plot window, avoid crash due to double freeing.
2021-03-19 15:07:33 +01:00
Holger Vogt
e1ae8c7495
remove memory leak
2021-03-19 15:07:23 +01:00
Holger Vogt
9f6d550837
Remove memory leaks in the SVG code
2021-03-19 15:06:59 +01:00
Holger Vogt
74a615d5af
Free tmalloced Cfg.strings[i]
2021-03-19 15:06:49 +01:00
Holger Vogt
02b4f06f2d
variables like color1 may override thie svg_intopts and svg_stropts.
...
Unsetting the variables will reset to the default.
Malloced colors and cfg.strings will be freed again.
Examples do show more of the options.
2021-03-19 15:06:35 +01:00
Holger Vogt
4303534f91
Shift colorID evaluation to a place after svg_stropts is read.
...
Remove unused.
2021-03-16 11:01:54 +01:00
Holger Vogt
1ba168ff30
clarify call to gnuplot on Linux/Cygwin
2021-03-14 15:33:17 +01:00
Holger Vogt
7b9d1fb74a
enable variable 'nolegend' for gnuplot
2021-03-14 15:33:10 +01:00
Holger Vogt
f61ea3aa96
if 'set nounits' is given, plotting of the units is suppressed
...
(they may be added manually to the y and x labels for SI conformity).
2021-03-14 15:32:49 +01:00
Holger Vogt
43f3fceb75
enable svg also for console app on Windows
2021-03-14 15:32:31 +01:00
Holger Vogt
f31ae08f0b
remove unused args
2021-03-14 15:32:15 +01:00
Holger Vogt
1607b3a21f
X11: Add a button for writing an SVG file to the plot window.
...
Update button texts.
Add a function hardcopySVG to write the SVG file, called by
clicking the SVG button.
2021-03-14 15:32:03 +01:00
Holger Vogt
43c44a8ca9
correct description
2021-03-14 15:31:57 +01:00
Holger Vogt
1f54a6add3
WinGUI: Make the text output from com_hardcopy available immediately
...
by call to function UpdateMainText.
Enable color for postscript output.
2021-03-14 15:31:45 +01:00
Holger Vogt
683ef77955
Separate color and b&w
...
b&w in the plot window is not(yet) supported.
2021-03-14 15:31:07 +01:00
Holger Vogt
6d388e1679
Select black&white, if appropriate
...
Return colorID to previous values after hardcopying.
2021-03-14 15:30:59 +01:00
Holger Vogt
391822b558
use colorN as for normal plots
...
color0 is background
svg_intops and svg_stropts may set all parameters
2021-03-14 15:30:33 +01:00
Holger Vogt
bc678baaca
modified from Giles Atkinson's patch:
...
use hardcopy entries to set variables
maybe overridden by stropts and intopts list variables
2021-03-14 15:30:24 +01:00
Holger Vogt
6b4d2a9241
separate svg and postscript handling
2021-03-14 15:30:13 +01:00
Holger Vogt
dacd727d87
separate svg and postscript
...
suitable text placement for svg
2021-03-14 15:30:06 +01:00
Holger Vogt
87b59d22a5
add generation of svg graphics file
...
based on patch no. 97 by Giles Atkinson
2021-03-14 15:29:53 +01:00
Holger Vogt
b86c85f85b
Safeguard against usage of --with-readline or --with-editline
...
Some package maintainers have erroneously used the above ./configure
flags during compiling libngspice-0.so. This has led to an unresolved
symbol history_file with ngspice-34.
2021-02-21 16:49:00 +01:00
Holger Vogt
8076e2b4cf
Check for double '{{ }}', replace the inner '{', '}' by '(', ')'
...
in .model lines, if compat mode ps is set. Enables use of some On-Semi
power transistor models.
2021-02-21 16:48:53 +01:00
Holger Vogt
a77b529928
set the locale to "C" locally, if shared ngspice
2021-01-29 10:44:28 +01:00
Holger Vogt
5747982ae8
Re-enable devices like E2 1 0 (2,3) 1
...
Add a new function nexttok_noparens(const char *s) which
skips tokens. Characters , ( and ) are treated like spaces.
2021-01-28 17:06:02 +01:00
Holger Vogt
433a76a1f2
Guard against vector "time" not being available
2021-01-28 17:01:30 +01:00
Holger Vogt
c8a7b69190
re-enable setting options when 'set ngbehavior=hs' is set.
2021-01-27 16:29:15 +01:00
Holger Vogt
ca26364a7a
Remove "incompatible pointer" warning
2021-01-26 18:18:28 +01:00
Holger Vogt
8de513e8e9
ngspice.exe and .dll (.so): seperate the main files:
...
main.c now belongs to exe, sharedspice.c to dll (so)
2021-01-26 18:17:59 +01:00
Holger Vogt
fb8e974ac4
i-sweep sall become a current vector (SV_CURRENT)
2021-01-20 16:49:14 +01:00
Holger Vogt
939410874a
Info "No circuit loaded!" is added.
2021-01-20 16:49:05 +01:00
Holger Vogt
d239a523e0
remove memory leak
2021-01-20 16:48:46 +01:00
Holger Vogt
ed15d6f975
replace controlles_exit by error return,
...
delete netlist cc when returning upon error.
2021-01-20 16:48:27 +01:00
Holger Vogt
058f474f90
Prevent crash if netlist input is something like
...
H n1
2021-01-20 16:48:08 +01:00
Holger Vogt
a86a500b07
checkspeed: use startclock instead of lastclock to ensure
...
Linux compatibility.
2021-01-20 16:47:48 +01:00
Holger Vogt
2a2a488f7d
If 'set ngdebug', and if transient simulation,
...
create a vector speedcheck in the tran plot
which contains the real time versus simulated time,
to check for obstacles during the course of the
transient simulation. If command 'save' is given,
one has to add speedcheck to obtain this vector.
2021-01-20 16:47:27 +01:00
Holger Vogt
c891bf846c
reduce precision to avoid false rounding
2021-01-20 16:46:59 +01:00
Holger Vogt
c9eeb0ceea
Modify get_number_terminals() and make it non-static.
...
Use modified function to replace fixed node number.
2021-01-20 16:46:37 +01:00
Holger Vogt
b640e57c39
re-enable getting correct node numbers for bipolar
...
using TSMC cv018bcd
2021-01-20 16:46:27 +01:00
Holger Vogt
273b0fb4a3
fix a plotting bug with xlog axis and ylabels
2021-01-20 16:45:54 +01:00
Holger Vogt
822a63974f
Unused binning models are removed.
...
Flag 'nf', when given on the x lines, is
recognized.
Tested with TSMC, Skywater, and X-Fab model
files.
2021-01-20 16:44:57 +01:00
Holger Vogt
e601325149
Avoid any buffer overflow if user provides a large TABLE:
...
Replace fixed length strings and fcn 'cat' by dstrings.
2021-01-20 16:44:19 +01:00
Holger Vogt
059e869754
free the wordlist wle to avoid memory leaks
2021-01-20 16:42:33 +01:00
Holger Vogt
02630c0af2
fix a bug in printing the compatibility status
2021-01-20 16:41:53 +01:00
Holger Vogt
5af7f0ff78
sort instance list entries: RHS numbers (like nf=2) come first,
...
expression then follow.
2021-01-20 16:41:25 +01:00
Holger Vogt
4a6fff05b6
typo
2021-01-05 23:11:50 +01:00
Holger Vogt
0d4685f459
preliminarily turn off fcn nlist_model_find()
...
to avoid compiler warning
2021-01-02 23:29:35 +01:00
Holger Vogt
94eac89749
Remove 'comment out any unused models' for now, it
...
has been working, but led to spurious error messages.
Has to be checked more thoroughly.
Add a ngbehaviour setting 'mc', needed for running
'make check'. It will unset all other compatibility modes
and suppress the note on compatibility settings which
led to a 'make check' failure just due to its printout.
2021-01-02 19:12:26 +01:00
Holger Vogt
1234c3bdf8
Update to the compatibility mode:
...
Rename new_compat_mode() to set_compat_mode().
Add fcn print_compat_mode() to print out
the selected compatibility mode.
2021-01-02 19:11:44 +01:00
Holger Vogt
164d3dd20c
Enable models with parens by using gettok_parens() like
...
.model NP NPN(BF=125 Cje=.5p Cjc=.5p Rb=500)
2021-01-02 19:11:29 +01:00
Holger Vogt
9485a51928
Re-enable the 'hardcopy' command
...
Fixes support-requests #53 by Paolo M.
2021-01-02 19:10:30 +01:00
Holger Vogt
70d1647cfa
Update to ps .model selection for MOS,
...
add support for bipolar (Mextram, lateral pnp),
enable 'level = nn' (with spaces).
2021-01-02 19:07:16 +01:00
Holger Vogt
3c354092ff
Line endings from \r\n to \n
2021-01-02 19:06:58 +01:00
Holger Vogt
8602915942
level for ekv2.6 is 44
2021-01-02 19:06:17 +01:00
Holger Vogt
50ec89e284
PS compatibility: select appropriate level for MOS models
2021-01-02 19:05:41 +01:00
Holger Vogt
a147a3b190
If we encounter tc1= or tc2= (temp coeffs.) or m= (multiplier),
...
the expression is done, thus keeping the brackets as is.
Enables tcx={} or m={} with their own expressions, dealt with
by numparam.
2021-01-02 19:02:44 +01:00
Holger Vogt
98eb5bf475
bug #537 : remove memcopy with overlapping strings
...
Bug reported by Ronan BARZIC
2021-01-02 19:02:29 +01:00
Holger Vogt
86f5a9b819
Only print the devices that are really used in the circuit
...
(don't print the 0 occurencies).
2021-01-02 19:02:07 +01:00
Holger Vogt
e8aea4967c
Remove some compiler warnings
2021-01-02 19:00:48 +01:00
Holger Vogt
2359f28812
Remove compiler warning
...
cast between incompatible function types from
‘void (*)(int, int)’ to ‘void (*)(int)’
2021-01-02 19:00:29 +01:00
Holger Vogt
7bd12a60a6
Enable multiplier 'm' for behavioral resistor
...
(R using a B source).
2020-12-22 17:56:19 +01:00
Holger Vogt
014dfe1b7b
The old inp_deckcopy() is a safer way of copying, while retaining
...
the correct line numbers for parameter substitution.
2020-12-22 17:56:19 +01:00
Holger Vogt
b1d062668c
When there is no model found, and we have an m devices,
...
set the number of nodes to 4. This has to be fixed (find
a way to detect the number of nodes automatically).
2020-12-22 17:56:19 +01:00
Holger Vogt
b0a2ab5729
A FIXME: The number of nodes is fixed to 4!
...
Better make this flexible, but how to detect this number safely?
2020-12-22 17:56:19 +01:00
Holger Vogt
5366f946eb
Remove more compiler warnings
2020-12-22 17:56:19 +01:00
Holger Vogt
238f8d393a
Suppress some compiler warnings
2020-12-22 17:56:19 +01:00
Holger Vogt
3c2f6585e0
Add some comment.
2020-12-22 17:56:19 +01:00
Holger Vogt
e1eb851ec4
Add function rem_unused_mos_models()
...
Netlist is flat at this stage, all numbers expanded,
but not yet parsed into the circuit structure.
So again try to remove unused MOS models.
All binning models are still here when w or l have been
determined by an expression from within the PDK.
2020-12-22 17:56:18 +01:00
Holger Vogt
19fb3ec38f
make some functions non-ststic to support function
...
rem_unused_mos_models() in inps.c
2020-12-22 17:56:18 +01:00
Holger Vogt
5ee6a98e4b
Add a comment
2020-12-22 17:56:18 +01:00
Holger Vogt
043634b60e
Jump over the HSPICE-specific key words
2020-12-22 17:56:18 +01:00
Holger Vogt
8c253524af
With the new inp_deckcopy_ln treat the first line
...
in the deck equal to all other lines.
2020-12-22 17:56:18 +01:00
Holger Vogt
8b376b4581
Remove dot lines somewhat later.
2020-12-22 17:56:18 +01:00
Holger Vogt
777cfcf477
Reduce the memory requirements if there is a PDK with
...
a lot of binning models.
This is a hack and needs testing!
inpcom.c: If an x line, add w and l to the netlist card,
if available.
subckt.c: select a suitable model bin, discard the rest
for each subcircuit, depending on w and l from above.
inpgmod.c: less restrictive equal for real numbers,
allow both min and max boundaries (problem of equating
real numbers), when the selected device has w or l on
the boundary between two model bins.
2020-12-22 17:56:18 +01:00
Holger Vogt
79d6f27d74
fix a typo
2020-12-22 17:56:18 +01:00
Holger Vogt
9072f40b9a
bug 535: re-enale tc1, tc2 even if tokens tc1 or tc2
...
may be part of other tokens as well.
2020-12-22 17:56:18 +01:00
Holger Vogt
aee35e6ef3
No brackets around instance parameters dtemp, temp
2020-12-22 17:56:18 +01:00
Holger Vogt
fe24a4135c
spice2g6 poly(19 compat:
...
When counting token, count an expression {...} for the
gain as a single token, even if it contains spaces.
2020-12-22 17:56:18 +01:00
Holger Vogt
c43c6f6ca4
improve comment
2020-12-22 17:56:18 +01:00
Holger Vogt
d24aa7134c
E_constant Vconst 0 TABLE {Max(V(DP)-V(GN),0)}=((20,120))
...
Allow such strange construct, where a single pair x,y will
simplay return a constant y (120 in the above example).
This is used in external devices models and aknowledged
by other simulators.
2020-12-22 17:56:18 +01:00
Holger Vogt
025a9fe599
Partially undo commit [ab778d] :
...
revert to aswitch as vswitch replacement
2020-12-22 17:56:18 +01:00
Holger Vogt
87751ad073
Make the ngSpice_Circ(char** circa) more robust:
...
Error message when .end card is missing
Reset if .end card is missing, to allow loading
a netlist again.
NULL as last element is no longer required, but .end card
(this has been implicitedly assumed).
Remove a bug that skippoed the last line (the .end card).
2020-12-22 17:56:18 +01:00
Holger Vogt
2d34cbddf8
re-write and simplify the tc1, tc2 code for behavioral
...
R, L, C lines invoking the B source.
Enable parameterization of the TCs.
Create a tc string in an extra function, add this string
to the new R, L, C line.
2020-12-22 17:56:18 +01:00
Holger Vogt
1ef4115578
In a command 'meas tran teval when v(2)=1' the rhs
...
should be treated as a number '1', not as a vector v(1)
2020-12-22 17:56:18 +01:00
Holger Vogt
6055fda73d
spaces
2020-12-22 17:56:18 +01:00
Holger Vogt
5c4af54be1
Windows.h -> windows.h
2020-12-22 17:56:18 +01:00
Holger Vogt
44b8498d63
prevent a crash when e,g,f,h sources do not have enough paramaters.
2020-12-22 17:56:18 +01:00
Holger Vogt
d0a8e6ac51
update to the limit function for ps compatibility.
...
The output will stay between the two limits given.
Tere is no prescription which of the two is upper
or lower.
This function will not solve all PS-Spice
compatible model convergence issues. We better look
for a built-in function with smooth, steadily
differentiable corners.
2020-12-22 17:56:18 +01:00
Vogt
bb8cdb2e2d
enable the use of either single or double quotes
...
for file path names (was mixed up, becaus isquote()
aknowledges both types).
2020-12-22 17:56:18 +01:00
dwarning
03cd512e7f
separate and correct capacitor charge formula transformation
2020-12-22 17:56:18 +01:00
Holger Vogt
95754d29c1
Introduce variacle 'plainlet' which allow simple copying
...
of vectors, even if the right hand side vector name
contain forbidden characters (like math characters).
set plainlet
let newvec = v(/out)
unset plainlet
2020-12-22 17:56:18 +01:00
dwarning
450ec47a3e
rm unused quote.h in vngspice_fftw
2020-12-22 17:56:18 +01:00
Holger Vogt
aa0d0abe34
Fix a bug in the limit() function (PSPICE compat mode)
2020-12-22 11:11:59 +01:00
Holger Vogt
9276f9fb0e
Use the pwl LIMIT=TRUE flag when replacing
...
G1 2 3 TABLE ... or E2 4 5 TABLE ... by code model pwl
2020-12-22 11:11:23 +01:00
Holger Vogt
d06ff2abab
New variable 'plainwrite' added. Allows 'write' with node names
...
containing characters like + - /. Function are the disabled.
This replaces the automatic selection of this mode by compat flags,
which is not transparent enough to the user.
2020-12-22 11:09:40 +01:00
Holger Vogt
36e2a9af4d
Add variable 'plainplot' to allow plotting without
...
function support, but with node names incl chatacters like + - /.
Flag to command 'plot' is renamed to plainplot.
Error message added if vector not found.
Example file added.
2020-12-22 11:09:27 +01:00
Holger Vogt
b76ac6be1c
Add writing all vectors if compat mode eg or ki is selected.
2020-12-22 11:09:09 +01:00
Holger Vogt
f0090508b0
If new parameter 'plain' is added to the 'plot' command,
...
all expression handling is skipped, vectors are plotting as is.
This allows nodes names with vectors like v(+vs) or /out
to be plotted without need resorting to double quotes.
2020-12-22 11:08:57 +01:00
Holger Vogt
84d3d8c143
Don't add v(...) around output vector if compat mode 'eg' is set.
2020-12-22 11:08:22 +01:00
Holger Vogt
c90230b43f
If the compatibility flags ki or eg are set, the 'write' command
...
will not use function parsing and evaluation, but simply plot
the listed vectors. vec1 vs vec2 is also not supported.
This option is useful if node names vs+ or /mynode are used and
have to be written into a raw file, as may be used by KiCad or EAGLE.
2020-12-22 11:08:03 +01:00
Holger Vogt
19a688513c
add compatibility mode eg for EAGLE
...
clarify mode a for 'whole netlist' and ll for 'all'
2020-12-22 11:07:31 +01:00
Holger Vogt
dd86bdee46
Enlarge the buffer size for command 'listing' from 512 to 4096 bytes.
2020-12-22 11:07:14 +01:00
Holger Vogt
3e98cecd56
enable paths with spaces for finding 'spinit'
2020-12-22 11:07:02 +01:00
Holger Vogt
c67da190ef
If function 'db' is evaluated, set
...
v_type to SV_DB.
2020-12-22 11:05:33 +01:00
Holger Vogt
97db844944
Prevent raw file entries (by the 'write' command) like
...
6 i(i(v_vsupply2)) current
2020-12-22 11:05:21 +01:00
Holger Vogt
f49922c1f1
If a new vector is created by the functions cph or ph,
...
its type should be 'phase', not voltage. Thus prevent
raw file entries (created by the 'write' command like
4 v(cph(vout2)) voltage
2020-12-22 11:05:10 +01:00
dwarning
f12dfc6e7b
prevent garbage output of X11 plotting function
2020-12-22 11:04:24 +01:00
Holger Vogt
7360d8aa66
Fix a typo
2020-12-22 11:03:44 +01:00
Holger Vogt
4796face12
Make message more verbose by printing the scale value
2020-12-22 11:03:22 +01:00
Holger Vogt
28861739f8
allow writing character '%'
2020-10-16 18:12:31 +02:00
Holger Vogt
af99beb6a2
Allow simple copying from start time to end time
2020-10-15 17:45:08 +02:00
Holger Vogt
013c74918f
Command 'cutout': Don't add the scale vector to nv->v_scale.
...
So the new plot with its vectors copied resembles the old plot.
2020-10-15 17:44:30 +02:00
Holger Vogt
a836f81d62
This is a quick fix to the Windows printing function.
...
Tested with pdf and a color laser printer.
Still some bugs: the grid needs to be fixed.
2020-10-15 17:41:58 +02:00
Holger Vogt
51df9aaa55
remove non ascii character §, which leads to compiler warnings
2020-10-11 21:12:29 +02:00
Holger Vogt
fdc143ce16
Add a limit capability to the code model aswitch
...
Example switch-oscillators_inc.cir showed currents up to 3GA
2020-10-10 13:53:36 +02:00
Holger Vogt
4bcacb310d
enable XSPICE %vnam in subcircuits.
...
The token following after %vnam has to be
tranlated as an instance during subcircuit expansion.
2020-10-10 13:53:10 +02:00
Holger Vogt
14ef4e74ec
Add PSPICE compatible ISWITCH
...
Translates iswitch either to csw or to aswitch models
2020-10-10 13:53:02 +02:00
Holger Vogt
2f1d3df8c7
add a Spectre compatibility mode
2020-10-10 12:19:49 +02:00
Holger Vogt
990d87bf1c
replace gettok by gettok_node to ignore parentheses when reading
...
a .model line in the altermod ... file ... command.
2020-10-10 12:19:32 +02:00
Holger Vogt
b0a790a463
proper size_t to int conversion
2020-10-10 12:12:59 +02:00
Holger Vogt
8ea8ddcc03
simplify the previous commit, single step warp if multibyte utf-8 character
2020-10-10 12:12:37 +02:00
Holger Vogt
f911758e4b
X11: re-enable writing text to a graph if libxft is used
2020-10-10 12:12:21 +02:00
Holger Vogt
445c6f2d32
fix a bug that occurs when xspice is not selected
...
missing function parameter has been introduced in previous commit
2020-10-10 12:11:41 +02:00
Holger Vogt
602baf68e6
spice2g6 allows to omit the poly(n) statement, if the
...
polynomial is one-dimensional (n==1).
For compatibility with the XSPIXE code, we have to add
poly(1) appropriately.
2020-10-10 12:11:14 +02:00
Holger Vogt
60dfe836f4
If ps is enabled, .dc TEMP -15 75 5 will have been
...
modified to .dc (TEMPER) -15 75 5.
So we repair it here with a preliminary fix.
2020-10-10 12:10:43 +02:00
Holger Vogt
ca27319213
no forcing lower-case letters for command 'cd'
2020-10-10 12:09:25 +02:00
Holger Vogt
a0389bb547
In PS compatibility mode:
...
In subcircuit .subckt and X lines with 'params:' statement
replace comma separator by space. Do nothing if comma is inside of {}.
2020-08-20 15:49:32 +02:00
Holger Vogt
26a4a32b8b
avoid some compiler warnings 'referencing a NULL pointer'
2020-08-20 15:49:05 +02:00
Holger Vogt
458411b2e1
more precise freeing the wordlist, depending on exit point
2020-08-20 15:48:45 +02:00
Holger Vogt
e3aad7849c
remove vceo= and icrating= from bjt model cards
2020-08-20 15:47:49 +02:00
Holger Vogt
23ceaabf83
fix a memory leak
...
Reported in bug report 504 by Ferdy
2020-08-20 15:41:39 +02:00
Holger Vogt
a04c909a23
Don't add copied scale vector as new vector, but as new scale vector,
...
thus preventing crash after pushing X11 'Hardcopy' twice or
pushing 'quit' after 'Hardcopy'.
Scale vector was deleted two times, then crashimg ngsoice.
2020-08-20 15:41:15 +02:00
Holger Vogt
c68940712d
prevent writing beyond end of buffer
2020-08-20 15:39:55 +02:00
Holger Vogt
ebb1e953fe
Streamline the compatibility flag generation
2020-08-20 15:39:19 +02:00
Holger Vogt
f03a32287f
If 'set ngbehavior=ki' in .spiceinit or flag 'kicad' on the plot line:
...
Add " around vector names containing character /
Numerical ivision in plot line then requires spaces around /
2020-08-20 15:39:00 +02:00
Holger Vogt
c112279555
new compatibility handling with struct compat newcompat:
...
simplify the compatibility handling, better readability
make it easily extendable
add new flag 'ki' for KiCad compatibility
2020-08-20 15:38:43 +02:00
Holger Vogt
0caeaccdd3
fix typo
2020-08-20 15:38:18 +02:00
caand
6907d17985
add missing get_sysmem() when no info available
2020-08-20 15:29:49 +02:00
Holger Vogt
a406af26d6
bug fix 'extern int sh_vecinit()', not void
...
See patch #96 , thanks to Balazs Kovacs
2020-08-20 15:29:42 +02:00
Holger Vogt
c8c58b9f5b
Print out the netlist sent to ngspice by caller via 'circbyline'
...
or ngSpice_Circ
2020-08-20 15:29:12 +02:00
Holger Vogt
71e65b75b0
Syntax check: If the first character in a netlist
...
or .control line is one of =[]?()&%$§\"!:, then ngspice
replaces it by '*' and issues a warning.
'set strict_errorhandling' will force ngspice existing.
2020-08-20 15:28:59 +02:00
Holger Vogt
fe28feae4e
Cut out part of each vector of the current tran plot,
...
from times cut-tstart to cut-tstop and copy these
into a new tran plot. A new scale vector 'time' will be
generated as well. Vectors that are shorter than the
new scale vector will not be copied.
2020-08-20 15:28:48 +02:00
Holger Vogt
71338c3271
replace 'noiseless' only if it is an unconnected token
2020-08-20 15:28:32 +02:00
Holger Vogt
ba1945d685
enable flags xdelta, ydelta for gnuplot command
2020-08-20 15:27:46 +02:00
Holger Vogt
2c0729e8de
Print also the bool value 'off'.
...
Do not abort ngspice when vector LIST cannot be printed,
just skip printing and continue.
2020-08-20 15:26:38 +02:00