Commit Graph

6388 Commits

Author SHA1 Message Date
Holger Vogt b07a54b8e1 test of supply ramping 2021-09-29 20:07:42 +02:00
Holger Vogt 7de526237e upon finishing 'optran', restore old CKTstep
remove unused
2021-09-29 20:06:35 +02:00
Holger Vogt 0eafec254e safeguard command 'optran' against circuit no being loaded 2021-09-29 20:05:56 +02:00
Holger Vogt cf61e1e564 add missing header 2021-09-29 20:05:28 +02:00
Holger Vogt 83e223fafc header for optran 2021-09-29 20:05:08 +02:00
Holger Vogt a20afc54a5 When we sre ready, reset CKTmaxstep to its previous value 2021-09-29 20:04:26 +02:00
Holger Vogt 3956095484 set maxstepsize to stepsize 2021-09-29 20:04:08 +02:00
Holger Vogt ecdb3b9eb4 set the task values, not the ckt values,
because task is called only afterwards when
the simulation command is given.
2021-09-29 20:03:31 +02:00
Holger Vogt fd36eb552f set stepsize 2021-09-29 20:02:11 +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 df0792818f Transient op calculation added to the standard operating point code.
When standard iteration, gmin stepping and source stepping fail,
try a transient simulation (like tran with uic option) to
determine the op. Implemented for AC and Tran simulation.
2021-09-29 20:00:29 +02:00
Holger Vogt a08e6a0676 Add new SOA parameters (safe operating area) for BJT.
We now scan for max of Ic, Ib, power, taking into
account the max allowed temperature, using the thermal
resistance rth0 model parameter between juntion and ambient.

Two user options are there: If rth0 is given, we calculate
a derating of the max power allowed.
Without a constant max power according to model param pow_max
is assumed.

The new model parameters for the bipolar model are:
pow_max, ic_max, ib_max, te_max, and rth0, in addition
to the already existing vbe_max, vbc_max, adn vce_max.
2021-09-29 19:59:58 +02:00
Holger Vogt 1084b4205c Allow global .temp in addition to instance parameter 'temp'.
Update to comments.
2021-09-29 19:59:28 +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 33571877dc Some update to SOA for a diode:
Limit output to four digits
Add power and temperature limits.
Derating with self-heating, or with fixed temperature,
or no derating at all, selectable by setting model parameters.
Example file: SOA plotted as frame, with diode current.
2021-09-29 19:58:11 +02:00
Holger Vogt 759f4f5f84 Make the output a little more verbose:
add terminal voltage to Id, Te, and Pd outputs.
Compare SOA data to terminal voltage, not (unknown) junction voltage.
2021-09-29 19:57:54 +02:00
Holger Vogt 9c8380a031 Enhance the SOA (safe operating area) operations
Parameters id_max, pd_max and te_max have been added
for current, power, and temperature to the already existing
fv_max and bv_max (max forward and backward volteges).
2021-09-29 19:57:34 +02:00
Holger Vogt e5fdb4c742 Patch sorts 1 byte vars in sequence,
to save some memory.
Patch #107 provided by Florian Ballenegger
2021-09-29 19:57:08 +02:00
Carsten Schoenert 2c2e21a80c Smal typo fixup s/currntly/currently 2021-08-08 11:56:30 +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 9a2d968577 When transferring boolean data over the ABI, keep them as boolean types, not integer
Replace the type of all boolean variables around the ABI by NG_BOOL.
NG_BOOL is typedefed to _Bool, when compiling shared ngspice. When
sharedspice.h is use externally NG_BOOL is typdefed to bool
2021-08-03 15:57:58 +02:00
Carsten Schoenert 61b5c0563b src/Makefile.am: Adopt used variables for lib versioning
A small adjustment so the configured ABI version from configure.ac will
get used for creating the libngspice library.
2021-08-03 15:56:02 +02:00
Holger Vogt 4258fe94b5 Add library versioning according to
https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html#Libtool-versioning
Add package versioning with m4 macros
2021-08-03 15:55:16 +02:00
Holger Vogt 6aac403ab0 XSPICE delay: add some more safeguards 2021-08-03 15:53:42 +02:00
Holger Vogt 4feb43e067 Prepare ngspice-35 2021-07-22 20:38:08 +02:00
Holger Vogt 4dbd8b7f9a Preliminary fix for the 'interpolate' function.
Interpolation of 1D vectors is o.k. now,
multi-dimensional vectors are not (yet) supported.
2021-07-22 20:37:57 +02:00
Holger Vogt 1977128380 Prevent crash when CIDER diode models are used.
There is no third node in NUMD or NUMD2, so don't set
GENnode(fast)[i]. This patch fixes a bug introduced in
4895a4b5a ("Diode model with selfheating option", 2021-04-11)
2021-07-20 14:24:43 +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 85b07e35bf Fixes bug 483
prevent crash when surface mobility (surfmob) has been
selected in 2D simulation.
The patch is provided by Brian Taylor (see
https://sourceforge.net/p/ngspice/mailman/ngspice-devel/thread/e6e921a3-677c-f513-7410-df8568c4bdad%40comcast.net/#msg37318450
)
2021-07-16 10:53:07 +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 973a60b898 re-enable making the old help system for Linux/Cygwin
by --enable-help --enable-oldapps
2021-07-08 15:34:41 +02:00
Holger Vogt d34d1e7c7c Get immediate response into text window,
when requesting information on coordinates.
2021-07-07 19:50:50 +02:00
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 54cbfb4138 Nodedamping: Make difference independent of the sign
of the difference
2021-07-05 14:32:57 +02:00
Holger Vogt c74321e0f5 JFET2: Add a link to literature 2021-07-05 14:32:47 +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
dwarning 0ece04cdc8 Add channel type determination belong nmos/pmos model parameter 2021-07-05 14:32:14 +02:00
Holger Vogt fe158341ba Don't show message for every iteration 2021-07-05 14:31:47 +02:00
Holger Vogt c38b8e3615 Fix a bug in the 'dc' progress report 2021-07-05 14:31:32 +02:00
Holger Vogt 8eeb924460 CIDER: Enable printing either binary or ascii data output to file.
Patch provided by Brian Taylor, see
(https://sourceforge.net/p/ngspice/mailman/message/37309841/)
2021-07-05 14:31:21 +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 c061747f19 Add evaluating and using temp and dtemp
as ASRC instance parameters.
2021-07-05 14:29:10 +02:00
Holger Vogt ddcc6f6097 add a comment: we should use TNOM, but not a fixed 300.15.
TNOM still has to be added to the ASRC parameters.
2021-07-05 14:28:51 +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 945786fba7 Make PTcheck more verbose:
Send error message containing failed expression
2021-07-05 14:28:19 +02:00
Holger Vogt 7e01b800f0 add the parameter name to error message of missing or bad parameter 2021-07-05 14:28:07 +02:00
Holger Vogt 7eb791fe00 No parse tree submitted to IFeval:
Prevent segfault and emit error message
2021-07-05 14:27:46 +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 028dd0ab88 Remove unused
Add a delay of half a time step to reduce error
2021-07-05 14:24:46 +02:00
Holger Vogt abc6eb56f3 Plausibility checking
Enforce out=in when delay == 0
2021-07-05 14:24:29 +02:00
Holger Vogt fbab9a0fe2 Add an analog delay source for transient simulation
Internal circular memory of size tstop/tstep or user defined.
(aprox.) every tstep a value is stored.
Delay time in multiples of tstep, by control voltage or user defined.
Dc or ac sim will simply connect input to output.
2021-07-05 14:24:06 +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 a6079781ea Fix previous commit, enable name upgrade for Linux and other non-Win OSs 2021-07-05 14:22:10 +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 0f4d953950 Open mrdump file not in append, but in write mode 2021-07-05 14:20:55 +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 93f6a50553 New author 2021-07-05 14:20:14 +02:00
Holger Vogt 22a516bc4d New author 2021-07-05 14:19:56 +02:00
Holger Vogt d36fcaf34c Neew pswitch with patch 0001-pswitch-fix.patch from Jube 3rd, 21 at
https://sourceforge.net/p/ngspice/discussion/127605/thread/d55d2322f2/#c966/b802/4764/2540/3b3f/04a4/bc51/3a68

Input resistance, numerically computed derivatives with auto-partial, reasonable limits.
2021-07-05 14:19:43 +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 e0d5d98b33 Just a reminder that truncation is currently diabled for CSW 2021-07-05 14:18:40 +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 f12592871a Set derivative d out/d contrl to 0 if outside of switching range.
Disable auto derivatives.
Enable algorithmic derivatives.
2021-07-05 14:18:08 +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 1266225cdb For C and R device enable value tokens like 4k7 or 1u2
in addition to 4.7k and 1.2u.

Valid for
R1 1 0 47k
C2 3 6 1u2
only. Does not interfere with other value tokens in params etc.
2021-07-05 14:17:31 +02:00
Holger Vogt 14402ffc96 Update to
6034c2bcd ("Internal global variable Infile_Path
is a file search path made available for the code models.
It is set when command 'source' is used.", 2021-04-17)
Correct path to variable.h
2021-07-05 14:17:01 +02:00
Holger Vogt 6d9876229c Fixes bug #331
Bug detected and analysed by Arsen Liash
Patch provided by Yurii Demchyna
2021-07-05 14:16:35 +02:00
Holger Vogt c75e4129f4 Plug another memory leak in LTRA transmission line 2021-07-05 14:16:17 +02:00
Holger Vogt 5d39ff2d8c Plug memory leaks in transmission line LTRA 2021-07-05 14:15:20 +02:00
Holger Vogt d2ac525f52 Plug some more memory leak in TXL transmission line. 2021-07-05 14:14:38 +02:00
Markus Mueller 74ba5c1f96 found non-initialized value! 2021-07-05 14:14:15 +02:00
Markus Mueller 5c71349bad remove dead assign statements, yet just commented them out for the time
being
2021-07-05 14:14:00 +02:00
Holger Vogt c0bd7ca6e2 Plug a memory leak in TXL transmissiom line (y device) 2021-07-05 14:13:44 +02:00
Holger Vogt b5054cc9f1 Plug a memory leak
Add function HICUMdelete() to remove model->HICUMversion
2021-07-05 14:12:46 +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 11d3188e19 fix typo 2021-07-05 14:10:20 +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
dwarning 6bafdf70d5 sub-coll junction calculation only if ISS given 2021-07-05 14:09:35 +02:00
Holger Vogt 3a908c76ef Prevent crash, refName may be NULL 2021-07-05 14:08:41 +02:00
Holger Vogt 98f8a4fcb2 Improve error message, if occuring during op 2021-07-05 14:08:25 +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
dwarning 1f95e12142 Value stored to vsub is never read 2021-07-05 14:07:26 +02:00
dwarning 52f4244345 fix Vcrit calculation for coll-subs junction and correct tlev=3 temperature model 2021-07-05 14:07:14 +02:00
dwarning b00fa921ac rm depreciated storage class 2021-07-05 14:06:52 +02:00
dwarning e14dc3aaa3 few style cleanings 2021-07-05 14:06:28 +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
dwarning 45e397727b rm dead assignments 2021-07-05 14:03:38 +02:00
Holger Vogt d2f6ad239f If the input file path contains ANSI-encoded special characters,
utf-8 conversion and thus file opening will fail.

This patch then in addition tries opening the file with standard fopen.
2021-07-05 14:03:21 +02:00
Holger Vogt ba262eaa5f Internal global variable Infile_Path is a file search path made
available for the code models. It is set when command 'source' is used.

This patch makes the first entry in var 'sourcepath' available to
the code models as well by setting Infile_Path, when 'sourcepath'
is set in .spiceinit.
2021-07-05 14:02:51 +02:00
dwarning a08f120518 TEMPFORMAT has already leading / in defines.h 2021-07-05 14:02:21 +02:00
dwarning 64c407332d rm dead assignemnts 2021-07-05 14:02:04 +02:00
dwarning 9b2f3cfd5e iter value never read - prevent compiler warning 2021-07-05 14:01:26 +02:00
dwarning 4e86cfa352 diode cbv only needed for tracing - prevent compiler warning 2021-07-05 14:01:09 +02:00
dwarning 2b2e40793e correct indentation 2021-07-05 14:00:44 +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 45c171635a Remove compile error which may occur with specific settings 2021-07-02 11:55:28 +02:00
Holger Vogt 19ddeb8fe6 formatting (not complete) 2021-07-02 11:54:59 +02:00
Holger Vogt 545d2f9177 Report an error when trying to define ports
'v', 'vd', 'i', and 'id' as 'inout'
Parch 105 provided by  Giles Atkinson
2021-07-02 11:54:34 +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 911b50fa8f Adding capacitors, one per voltage node 2021-07-02 11:52:45 +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 e2cf397b6d Restrict the limit for exp function (linear growth when exponent
is larger than 14, commit [93a76d]) to the PSPICE compatibility
mode.
2021-07-02 11:50:42 +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
dwarning 8a04d049ab Correct scaling for area and pj geometry scaled diode (level=3) 2021-07-02 11:49:35 +02:00
dwarning a7cf70e615 Introduce element parameter handling for geometry scaled diode (level=3) 2021-07-02 11:49:21 +02:00
dwarning 56c8a24dd7 Correct parameter handling for geometry scaled diode (level=3) 2021-07-02 11:48:53 +02:00
dwarning 2a55f50192 First attempt for geometry scaled diode (level=3) 2021-07-02 11:48:04 +02:00
Holger Vogt 4bee26b8b9 Remove unused prototype 2021-07-02 11:45:11 +02:00
Holger Vogt 7064df7f3b Define a preprocessor flag HAS_NG_BOOL 2021-05-05 21:59:25 +02:00
Holger Vogt f6ba097b9c Replace BOOL by NG_BOOL
Avoid clashes in environments where BOOL my be used differently.
NG_BOOL is typedefed to int, as ngspice uses int for boolean variables.
2021-05-05 10:52:13 +02:00
Holger Vogt ded0f79c01 Avoid type 'bool', as ist is a built-in type in C++, not
equaling  'int' which ngspice is using.

Change bool to BOOL and ad a
typedef int BOOL;
2021-03-28 18:20:47 +02:00
Holger Vogt 5abd8057e6 remove deprecated storage class 2021-03-28 13:30:39 +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 6443135892 libtool versioning added for Linux shared ngspice.
And commented out immediately, because not compatible
to KiCad, which is linking to libngsice.so.0.0.0
2021-03-14 15:33:25 +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 736d42a5b0 remove unused 2021-03-14 15:32:39 +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 d7feec20fe enable parameter 'gain'
patch provided by  Bohdan Tkhir
2021-02-21 16:48:28 +01:00
Holger Vogt 8abd8069a8 Re-enable compiling ngsconvert again
Capability to compile ngsconvert is extremely sensitive to changes in
associated files as found in makefile.am and may esily be
broken again next time. Requires manual tweaking.
2021-02-21 16:48:21 +01:00
Holger Vogt 462534a0fb Rename the ngspice version information offered in sharedspice.h 2021-02-21 16:47:44 +01:00
Holger Vogt 99a7bfd8fe Move version info from sharedspice.c to sharedspice.h 2021-02-21 16:47:19 +01:00
Holger Vogt 0ae9aeec41 remove config.h from dist and install 2021-02-21 16:47:02 +01:00
Holger Vogt 4f385b604b remove obsolete command 2021-02-21 16:46:52 +01:00
Holger Vogt 65a47d3276 Remove compiler warnings: CIDER debug flags are used as int
FIXME: Why arer they defined as BOOLEAN in main.c
without generating a warning?
2021-01-29 10:46:10 +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 ffef8e1d16 Remeove "redefinition" warning 2021-01-26 18:18:59 +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 55359e36e0 if SHARED_MODULE, exclude some unused function from build.
Finally complete main.c should be removed in shared ngspice.
2021-01-24 17:40:18 +01:00
Holger Vogt 06eddf1adc We need config.h.in, when compiling with ./configure,
that is without resorting to autoconf, automake etc.
So partially undo the previous commit.
2021-01-24 12:55:51 +01:00
Holger Vogt c14680c951 Do not distribute config.h.in 2021-01-24 11:29:48 +01:00
Holger Vogt ebff1fe79f makefile.am for cppduals 2021-01-23 12:54:23 +01:00
Holger Vogt 71bc5feacb We need to include cppduals into the distribution process. 2021-01-23 12:45:49 +01:00
Holger Vogt 7dc6c47df5 config.h should not be distributed or installed
somewhere, because it is generated locally during
the build process.
2021-01-23 12:45:12 +01:00
Holger Vogt d45e95aa4c We no longer want to install cmpp or other XSPICE files.
The manual describes making code models from inside
the ngspice build process, and that's what we support
right now.
2021-01-23 12:43:51 +01:00
Holger Vogt a5eac333bb Revert "When installing ngspice, do not install the headers"
This reverts commit 5a0d213fec.
2021-01-22 16:05:14 +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 65cb50a243 redo the reading for ngate parameter
if larger than 1.000001e24, assume m3 instead of cm3
2021-01-20 16:47:11 +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
dwarning a81a84c208 allow strobe and finish commands 2021-01-05 21:57:48 +01:00
Holger Vogt 4a8065c3ee replace strncpy by memcpy to prevent valgrind error message
on uninitialized string.
2021-01-05 17:21:23 +01:00
dwarning aedf9d0eb5 correct choice for both r model types 2021-01-05 11:18:07 +01:00
dwarning 08700f8147 include verilog-a r2_cmc resistor model 2021-01-05 11:12:09 +01:00
dwarning b654296230 rm independent terms from ddx() operator 2021-01-05 11:07:29 +01:00
dwarning 43e9a8f594 activate command 2021-01-05 11:07:24 +01:00
Holger Vogt 8a21f6f2c0 enable OP information for hicum0 and mextram 2021-01-05 11:07:05 +01:00
Holger Vogt 176023f470 Remove compiler warnings 2021-01-03 14:28:22 +01:00
Holger Vogt eedb5b9027 Update for ngspice-34 2021-01-03 08:47:47 +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 e2650a2897 Patially undo commit [f9d9b6]:
macOS gcc/llvm complauns about non-existing -Wunused-but-set-variable
2021-01-02 23:00:19 +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 89f0fb6d74 sharedspice: make reading .spiceinit as robust as in
the standard executable.
2021-01-02 19:11:51 +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
dwarning a5cb4f2d20 hicum0 prevent crash in self heating mode 2021-01-02 19:10:42 +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
dwarning 0e9d1c50a4 add latest available psp103 version to adms 2021-01-02 19:07:55 +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 2e9a51f2f7 Each model is checked only once
(not the same model check for every instance).
Add model comparison warning to file.
2021-01-02 19:06:37 +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
Markus Mueller f9d9b6deba fix "unused but set variable" warnings 2021-01-02 19:05:18 +01:00
Holger Vogt b1daabbe95 update the model checking 2021-01-02 19:05:01 +01:00
Holger Vogt 03a68683ca Update on error checking for bsim4.6 model 2021-01-02 19:04:24 +01:00
dwarning fdf7a6a868 More effective check for BSIM3 model parameter 2021-01-02 19:04:07 +01:00
Holger Vogt 49890fe302 Fix the error message when fatal model parameter fail occurs 2021-01-02 19:03:53 +01:00
Holger Vogt 2e34b9d9a3 Improved visibility of model check error 2021-01-02 19:03:42 +01:00
dwarning 420d47cc75 fix max terminal count for vbic and hicum2 adms enabled 2021-01-02 19:03:20 +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
dwarning aaec6be4c6 only one .va file for psp model 2021-01-02 19:01:44 +01:00
dwarning b44f1ad595 only one .va file for psp model 2021-01-02 19:01:31 +01:00
dwarning 336bb3480b psp102 update to latest available version 102.5.0 2021-01-02 19:01:05 +01:00