Commit Graph

5432 Commits

Author SHA1 Message Date
Holger Vogt aa726c9864 Make ...search_identifier safe against NULL arguments
Otherwise strstr will fail
2019-09-14 11:30:20 +02:00
Holger Vogt 0071ad8569 If a subcircuit is defined more than once,
only read the first one, rename the others und thus discard them.
2019-09-14 11:28:32 +02:00
Holger Vogt 972785095f Avoid crash, and send error message when r,l,c
instance lines does not have enough tokens.
2019-09-14 11:28:07 +02:00
Holger Vogt f9deefe326 Skip '\r' when reading lines from a file 2019-09-14 11:27:23 +02:00
Holger Vogt 8fc1b70e93 Bug #424 now lower-casing whenh following the redirection token >
Re-order the code for defining exceptions for not lower casing
2019-09-14 11:27:13 +02:00
Holger Vogt cdc8d3d054 new_title may contain a \r, remove it 2019-09-14 11:26:52 +02:00
dwarning 134e92b78f vbic model implementation including self-heating effect 2019-09-14 11:26:10 +02:00
Holger Vogt 1c8992bf15 Enable the file input as search path for .include files
also for non-Wondows OSs
2019-09-14 11:25:34 +02:00
Holger Vogt 9543a5644c Improve handling of non-printable characters (esp. for Linux)
If there is an isolated non-printable character leading the line,
convert it to *.
In fact there are some, e.g. in device lib TL072.301 from TI.
2019-09-14 11:25:07 +02:00
Holger Vogt 88008af088 remove memory leaks 2019-09-14 11:24:34 +02:00
Holger Vogt afdd0fe85e comments added
White spaces according to clang format
2019-09-14 11:24:05 +02:00
Holger Vogt 4cf2b5e5ce remove commenting out unused .model lines
from comment_out_unused_subckt_models().
This now handled by inp_rem_unused_models()
taking appropriate scoping into account.
2019-09-14 11:23:40 +02:00
Holger Vogt 6669cbc17c add function inp_rem_unused_models().
checking for unused models now also removes models
that are out of scope.
2019-09-14 11:23:24 +02:00
rlar 9e729bc8ee bug fix, avoid segfault when instantiating a unknown subcircuit 2019-09-14 11:22:52 +02:00
rlar e2b3dffcff drop bogus_find_subckt, use a proper scoped search 2019-09-14 11:22:39 +02:00
rlar 96bb0dd941 inpcom.c, introduce inp_add_levels(), add scope to decks 2019-09-14 11:22:24 +02:00
Holger Vogt d901665517 enable 'res' as valid resistor model identifier 2019-09-14 11:21:53 +02:00
Holger Vogt 1adc3e559c inp_get_elem_ident(): enable VDMOS devices as identifier m 2019-09-14 11:21:16 +02:00
Holger Vogt 7f95e9d40c inp_get_elem_ident
model type as input, element identifier as output
2019-09-14 11:20:48 +02:00
Holger Vogt b0e750c3d2 Remove printing an empty line to stderr 2019-08-18 10:53:25 +02:00
Holger Vogt bc9a22e5f7 Make interface responsive during plotting,
prevent endless loop, probably because of full internal buffers
2019-08-18 10:52:46 +02:00
Holger Vogt 3ab2c6468c raise time for immediate output, to catch some more information 2019-08-18 10:52:36 +02:00
Holger Vogt 5a45fdbebb Skip name and node if searching for 'tc' in an
R, L, or C line. Thus a node name 'tc' would be allowed.
2019-08-18 10:52:21 +02:00
Holger Vogt 6a1b6ced18 Enable tc conversion also for L and C
Even is PSPICE manual does not mention this,
device model makers are using this option.
2019-08-18 10:51:57 +02:00
Holger Vogt 63b4cf05de Do not bail out if 'load file' command has unavailable file,
just post error message and continue
A fix to https://sourceforge.net/p/ngspice/discussion/127605/thread/986c04f22b/
by Clyde
2019-08-13 23:35:48 +02:00
Jim Monte 0fbff063b8 bug #408: prevent invalid data or crash by not reading beyond end of string 2019-08-13 23:35:17 +02:00
Holger Vogt 30565e45c4 Improve commant 2019-08-13 23:35:03 +02:00
AsamMich 9b28a951d2 Patch #83
Improve and complete command 'compose'
2019-08-13 23:34:48 +02:00
Holger Vogt ca5997b705 Change variable 'stepsizelimit', added in commit
c86f6265d ("relieve the step size limitation..." 2019-02-02)
to 'nostepsizelimit', thus keeping the limit, if not set.
Maximum step size is limited to tstep given by .tran tstep tstop <tstart <tmax>>.
May be overridden by giving 'set nostepsizelimit' to (tstop - tstart)/50.
Both may be overriden by setting tmax.
2019-08-13 23:34:40 +02:00
Holger Vogt fac46c0bfd Speed up the text output in Windows GUI:
The stream is pushed to the display only every 30 milliseconds.
For the first 200ms the stream is still pushed for every line.
2019-08-13 23:34:16 +02:00
Holger Vogt 6ac67c2285 make GUI more responsive. Prevent output freezing
if large data volumes are sent to the display
2019-08-13 23:33:59 +02:00
Holger Vogt 1b96b5a087 fix typos 2019-08-13 23:33:44 +02:00
Holger Vogt f1cf4103c0 If the comaptibility mode is PS, LTPS or LTPSA, '$' is treated as a valid
character, not a s end-of-line comment delimiter, except for that it is
located at the beginning of a line.
2019-08-13 23:33:37 +02:00
Holger Vogt 0b92a15ae8 safeguard against vectors with 0 length 2019-08-13 23:33:28 +02:00
Holger Vogt b27d0e701c allow very short version information with new options -v and -d 2019-08-13 23:33:15 +02:00
Holger Vogt 45e2155e57 Instead of the reverted commit
5542f2ec1 ("dio/diotemp.c, drop DIOgradingCoeff limit", 2017-07-18)
allow setting a new limit for the diode grading coefficient by
set DIOgradingCoeffMax=0.85
Default is 0.9
2019-08-13 23:32:55 +02:00
Holger Vogt db85dead58 Revert "dio/diotemp.c, drop DIOgradingCoeff limit"
This reverts commit 5542f2ec10.
2019-08-13 23:32:37 +02:00
Holger Vogt aad247621e raise warning only when params are on the .subckt line 2019-08-13 23:32:26 +02:00
Holger Vogt 01742eefef The PSPICE area token for a device instance may be not only a number,
but also a parametrized token like {tok}
2019-08-13 23:32:16 +02:00
Jim Monte 8ed7080227 [PATCH #70] Made parameter const and reduced excess allocation. 2019-08-13 23:32:01 +02:00
Jim Monte 3def275be4 [PATCH #76] Fixed access violation when iplot called without a circuit
loaded.
2019-08-13 23:31:54 +02:00
Jim Monte 978429018b [PATCH #73] Fixed crash when attempting to set a breakpoint without a
circuit loaded.
2019-08-13 23:31:46 +02:00
Jim Monte e208aab4cd [PATCH #69] Changed vector type from to the enum assigned to it. 2019-08-13 23:31:37 +02:00
Jim Monte 73379f4146 [PATCH #66] Removed definition of macro MAXWORDS since it is unused. 2019-08-13 23:31:28 +02:00
Jim Monte 4a26ea9847 [PATCH #64] Made shell command with no arguments functional for Windows. 2019-08-13 23:31:22 +02:00
Holger Vogt 9a904cb952 prevent crash upon wrong user input 2019-08-13 23:31:14 +02:00
Holger Vogt c50dfa2be8 prevent crash if function is called with NULL argument 2019-08-13 23:31:01 +02:00
Jim Monte 060c51d68a missing part of patch #56 2019-08-13 23:30:39 +02:00
Jim Monte e92e2c7362 [PATCH #62] Fixed buffer overrun. Reworked to not use dstring for more
efficient parsing.
2019-08-13 23:30:31 +02:00
Jim Monte 24a13736bd [PATCH #63] Fixed infinite loop when setscale is given as a command. 2019-08-13 23:30:20 +02:00
Jim Monte 031b722640 [PATCH #56-2] Added hist_info source and header files for new history API
and system DLL Shlwapi.dll to resolve PathIsRelative()
2019-08-13 23:30:12 +02:00
Jim Monte 3874916948 [PATCH #56] New history buffering 2019-08-13 23:30:05 +02:00
Jim Monte f086fd3bef [PATCH #61] Removed unnecessary check for null pointer. There would have
been several access violations before the check if it were invalid.
2019-08-13 23:29:55 +02:00
Jim Monte 1665b53b84 [PATCH #59] Made INP*Cat() functions more modular and efficient. Also
eliminated the possibility of a buffer overrun in INPstrCat() due to an error
 in the calling funciton.
2019-08-13 23:29:41 +02:00
Jim Monte 9e5b0e8f82 [PATCH #58] Made annotations of WinMain() agree with its prototype 2019-08-13 23:29:34 +02:00
Jim Monte 8f2677438b [PATCH #57] Fixed several issues with win_x_fread() 2019-08-13 23:29:27 +02:00
Holger Vogt f9a4800d86 [PATCH #55-2] Prevent reading from a NULL pointer 2019-08-13 23:29:20 +02:00
Jim Monte ea81da2b01 [PATCH #55-1] Fixed some compiler warnings added by Visual Studio 2019 2019-08-13 23:29:13 +02:00
Jim Monte ba60c4e8a9 [PATCH #54] Fixed bug with processing of user input when the user input
size equals or exceeds the allowed amount. A 1-byte buffer overrun resulted
 in incorrect processing of the buffer returned from the window supplying user
 input which lead to an infinite loop.
2019-08-13 23:29:06 +02:00
Jim Monte 74857e2527 [PATCH #53] Removed useless zeroing of a copy of a variable (twice) when
the original variable should be zeroed. Made cp_free_control static because
 it was only used in control.c and it was not defined in any header file.
 Added comments
2019-08-13 23:28:58 +02:00
Jim Monte 1c5176282b [PATCH #52] General cleanup of word list processing, such as adding
comments and const. Also added a new function wl_from_string() to convert a
 single word into a word list. This function can be useful when calling a
 function taking a single-word word list.
2019-08-13 23:28:49 +02:00
Jim Monte 10474a06a8 [PATCH #50] Ensured no buffer overrun for long namess and improved
efficiency of compare. Also made more modular.
2019-08-13 23:28:41 +02:00
Jim Monte c71d66a3bb [PATCH #49] Ensured no buffer overrun for long script strings and
improved efficiency of building string
2019-08-13 23:28:34 +02:00
Jim Monte 051b5e602d [PATCH #48] Fixed infinite loop and variation from documented behavior of
atodims()
2019-08-13 23:28:25 +02:00
Jim Monte 0fd5b0fd80 [PATCH #51] Added scrolling to input window 2019-08-13 23:28:16 +02:00
Holger Vogt 9a9b7c68d0 unify the numerical constants 2019-08-13 23:28:05 +02:00
Holger Vogt b9901a2569 [PATCH 47] Refactored ft_getnames() and used the new function in
com_let().
2019-08-13 23:27:49 +02:00
Holger Vogt afdf3ff710 Partially undo commit 016c558d7, 2019-05-01
If sacles for plotting differ, issue a warning.
Skip this plot command only, when strict_errorhandling is set.
2019-08-13 23:27:15 +02:00
Holger Vogt 8af1663bba Try to detect, if one wants to plot vectors with
different scale vectors into the same graph.
Issue a warning and skip the plot command.
2019-08-13 23:26:58 +02:00
Holger Vogt eb33388707 Update to patch #33, stdlib.h required on Linux for size_t 2019-08-13 23:20:48 +02:00
Jim Monte 451a88a2b0 [PATCH #46] Fixed uninitialized buffer in case of 0 dim for dimstring()
and prevented the compilation of unused functions. Also a comment was
 corrected.
2019-08-13 23:20:39 +02:00
Jim Monte 23703a32c0 [PATCH #45] Fixed uninitialized buffer in case of 0 dim and improved
efficiency in other cases.
2019-08-13 23:20:29 +02:00
Jim Monte b66412f517 [PATCH] Changed prototypes of some functions having parameters that
should not be changed to const and added assorted comments. Also two very
 minor efficiency improvements.
2019-08-13 23:20:21 +02:00
Jim Monte 0183964d6f [PATCH #41] Made constants agree across ngspice simulator. File const.h
is the source of the values with all other files referencing it.
2019-08-13 23:20:00 +02:00
Jim Monte 55b7626fa9 [PATCH #40] Fixed memory leaks under 3 different conditions when the
deftype command is used. Added more argument validation. Enhanced error
 reporting. Implemented facility to free allocations associated with
 user-defined types
2019-08-13 23:19:51 +02:00
Jim Monte 7dacfe5bda [PATCH #38] Fixed crash when composing a complex vector from a mix of
real and complex values. Also eliminated unnecessary test for element being
 real when composed vector is real.
2019-08-13 23:19:41 +02:00
Jim Monte f28709f410 [PATCH #37] Fixed crash when composing a complex scalar 2019-08-13 23:19:31 +02:00
Holger Vogt 7598bbe83b [PATCH 35] Fixed values of physical constants such as the speed of light 2019-08-13 23:19:13 +02:00
Jim Monte 86ed788025 [PATCH 6/6] Fixed Visual Studio C4456 compiler warnings related to
variable name hiding another variable and reduced scopes of arg and sarg
 variables in the process
2019-08-13 23:18:34 +02:00
Jim Monte 34c2df11bb [PATCH 5/6] Fixed formatting for consistent nesting level indentation 2019-08-13 23:18:24 +02:00
Jim Monte 93ae8b41ac [PATCH 4/6] Fixed Visual Studio C4456 compiler warning related to
variable name hiding another variable
2019-08-13 23:18:16 +02:00
Jim Monte d0f8c6896d [PATCH 3/6] Fixed Visual Studio C4389 compiler warnings related to
signed/unsigned mismatch
2019-08-13 23:18:07 +02:00
Jim Monte 3dea14e223 Fixed Visual Studio C4334 compiler warnings related to
32-bit vs 64-bit shifts
2019-08-13 23:17:55 +02:00
dwarning cf394a03d1 update to hicum version 2.40 2019-08-13 23:17:41 +02:00
Holger Vogt e6a05bda7d remove the token mfg=nfgname from each .model statement 2019-08-13 23:17:31 +02:00
Holger Vogt 61039c2736 add a new function gettok_model to consider {...} expressions
in VDMOS .model statements
2019-08-13 23:17:14 +02:00
Holger Vogt ad5ad8270f correct the temperature replacement in ps
TEMPER is in degrees °C
2019-08-13 23:17:02 +02:00
Kevin Zheng b4ee4e28d6 Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
by dropping the rules to run bison and use automake's built-in rules instead
2019-08-13 23:16:49 +02:00
Holger Vogt bfe9e29580 If a in command set name="value" value is encapsulated in double quotes, it is always treated as a string variable. 2019-08-13 23:16:37 +02:00
Jim Monte 6bce493d25 Remove memory leak: If the check of the data fails, the data itself is leaked.
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:16:02 +02:00
Jim Monte 4afc5ed5b5 One of the links provided when the help command is executed returned a 404 not found error. This patch replaces that link with an HTML version of the ngspice manual.
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:15:27 +02:00
dwarning 657d4994b9 no fall-through by asking m value 2019-08-13 23:15:03 +02:00
Jim Monte 7e0dd64ce5 [PATCH 33 1/6] Fixed Visual Studio C4028 compiler warnings related to
mismatches between prototypes and function definitions

Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:14:49 +02:00
Jim Monte 0ddd4a8456 Fixed excess buffer allocation and converted wordlist to string more efficiently
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:14:27 +02:00
dwarning ef79942782 Tnom is not a instance parameter 2019-08-13 22:57:02 +02:00
dwarning 6bcf3ac41c Tnom default inline with model specification 2019-08-13 22:56:50 +02:00
dwarning 033a290783 use a better place for model parameter defaulting 2019-08-13 22:56:38 +02:00
dwarning 360a3985e8 remove unused conductance variables 2019-08-13 22:56:29 +02:00
dwarning f42c513381 correct current contribution by gmin 2019-08-13 22:56:19 +02:00
dwarning 293f0afc2f remove unused variables 2019-08-13 22:55:34 +02:00
dwarning f90295f46a remove last remainder of unused sensitivity analysis 2019-08-13 22:55:25 +02:00
dwarning 2b60d56606 remove ancient, unused and untested sensitivity code 2019-08-13 22:55:12 +02:00
dwarning 7966aa36ae correct init for convergence test 2019-08-13 22:54:51 +02:00
Holger Vogt 3494e6b390 prevent crash
bug-395 reported by Bohdan Tkhir
2019-08-13 22:54:30 +02:00
Holger Vogt 7bb8049d2a fix bug no. 394, reported by Yurii Demchyna 2019-08-13 22:54:10 +02:00
dwarning a549776972 high current devices need lower limit of resistances - set to 10mOhm 2019-08-13 22:53:52 +02:00
Holger Vogt 31db4228f5 fix a typo, correct writing to files under Linux 2019-08-13 22:53:41 +02:00
Holger Vogt 52584312c3 delete the plt and data files after writing eps or png
(only if gnuplot_terminal is set to eps/quit of png/quit)
2019-08-13 22:53:32 +02:00
Holger Vogt 8efa08602a no plotting, only saving to file
if gnuplot_terminal is eps/quit or png/quit
2019-08-13 22:53:24 +02:00
Holger Vogt 601dfbd781 sprintf -> snprintf: prevent buffer overflow 2019-08-13 22:53:13 +02:00
Holger Vogt ec4625eda6 redo gnuplot_terminal: Do not save eps/png automatically
none      1: do not print an eps or png file (default)
png       2: print png file, keep command window open
png/quit  3: print png file, quit command window
eps       4: print eps file, keep command window open
eps/quit  5: print eps file, quit command window
2019-08-13 22:53:00 +02:00
Holger Vogt 2344e3d012 patch no. 30 by astx:
don't show command window if gnuplot_terminal is set to png/quit
2019-08-13 22:52:49 +02:00
Holger Vogt e937adc372 remove bug 388: enable plot unit W for plotting @q1[p] 2019-08-13 22:52:41 +02:00
Holger Vogt 4f8fd19309 Allow " around netnames for .plot and .print commands.
This enables characters like - / + in netnames, e.g.
.print tran v("/jk-flip-flop-1/q")
2019-08-13 22:52:08 +02:00
Holger Vogt 5b21caae98 correct the command name to 'setcs' 2019-08-13 22:51:48 +02:00
h_vogt a0d87048e6 command.c, inpcom.c, add command 'setcs': like command 'set',
but case sensitive, and thus keeping upper or lower case
of subsequently following variable name and other letters.
2019-08-13 22:51:36 +02:00
dwarning d03df9d326 correct entry for vdmos bulk diode in acload 2019-08-13 22:49:39 +02:00
Holger Vogt 198fea0db4 -rm -> rm, re-enable 'make uninstall' 2019-03-21 20:24:18 +01:00
Holger Vogt d4c3d9ceb2 relieve the step size limitation (formerly set to TSTEP in tran simulation).
However not all examples will do without, thus the variable 'stepsizelimit'
is set in spinit. Unset it in .spiceinit to get the new behavior.
Of course then you might add the limit by setting TMAX in the tran command.
2019-03-21 20:22:42 +01:00
Holger Vogt b4559327de do not use the current plot, but try to get the plot set in arg... 2019-03-21 20:20:56 +01:00
Holger Vogt 9ee359b1e9 beautify code with astyle 2019-03-21 20:20:37 +01:00
Holger Vogt 1fb2a04f79 use fcn plot_get 2019-03-21 20:20:28 +01:00
Holger Vogt c1b54a5978 return vector located in plot type given by 'name',
not just from the current plot
2019-03-21 20:20:00 +01:00
Holger Vogt 40411197e0 add function get_plot(name) to return address of named plot 2019-03-21 20:17:21 +01:00
Holger Vogt a89e5db571 creating a linearized cutout of the original vector
by defining the vectors lin-tstart, lin-tstop, and lin-tstep
before issuing the 'linearize' command
2019-03-21 20:13:27 +01:00
Holger Vogt 2d8b30aebe enable node names containing '-' in .ic and .nodeset statements 2019-03-21 16:13:43 +01:00
Holger Vogt 0bd3bbd333 clarify estmation of memeory size for output vectors 2019-03-21 16:13:24 +01:00
Holger Vogt b771ee9c60 don't print status output in dcpss.c, if norefvalue is set 2019-03-21 16:12:47 +01:00
Holger Vogt 9dd47e3029 Remove memory warning message in shared lib
False warning on some OSs, especially on Linux when loaded during runtime.
The caller then has to take care of memory available
2019-03-21 16:12:36 +01:00
Holger Vogt be6eca1dbb add 'option norefvalue' to suppress printing the reference value. 2019-03-21 16:07:12 +01:00
Holger Vogt 5cd23fae72 move adding 1 to meminit to the right place (needed only once) 2019-03-21 15:52:23 +01:00
Holger Vogt 764542e5b1 Set up all memory in a single step for vector list in a plot.
This is to avoid multiple calls to time consuming TREALLOC
2019-03-21 15:51:19 +01:00
Holger Vogt 4062d51f9b prevent crash, instead issue an error message
if first coefficient cannot be parsed, e.g. of a line
V1 1 0 DC 0 trnoise(NoiseVoltage fs 0 0 0 0 0 )
(with missing {}).
Code truncates evaluating further coefficients,
if an error is detected. This now results in a warning
message, if ngdebug is set. The warning may be a
false positive though.
2019-03-21 15:50:05 +01:00
Holger Vogt d6f5a32c93 Add a comment to the editline #ifdef 2018-12-31 12:03:19 +01:00
Holger Vogt a3f2c38eb6 upstream editline development at
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libedit/readline/readline.h?sortby=date#rev1.42.2.1
have added two lines to readline.h:
typedef int	  rl_hook_func_t(void);
extern rl_hook_func_t	*rl_event_hook;
ngspice rl_event_hook had originally been defined of type void. The patch
redefines the return type to be int.
2018-12-31 12:02:52 +01:00
dwarning d2f9da64bc bring current summation inline with rhs 2018-12-24 09:34:06 +01:00
dwarning d9247cc322 white spaces 2018-12-24 09:30:55 +01:00
Holger Vogt c35879d3cf prepare ngspice-30 2018-12-23 13:55:45 +01:00
dwarning 25b13d9dde Fix VDMOSmode dependency. 2018-12-22 22:43:37 +01:00
dwarning 3d72931125 spice like derivative style - more compact 2018-12-22 22:43:17 +01:00
dwarning 71524f6060 Implementing mobility mudulation (theta).Analytical derivatives for weak-inversion branch. 2018-12-22 22:43:05 +01:00
dwarning 8b424dd3d3 Introducing mobility reduction over Vgs. Model parameter: theta 2018-12-22 22:42:54 +01:00
dwarning 96a5ea0353 Allow 3 terminal vdmos in subckt. 2018-12-22 22:42:46 +01:00
dwarning 1363b7a6b2 Reduce vdmos to a native 3 terminal version. 2018-12-22 22:42:31 +01:00
Holger Vogt f021424041 dev.c, add model size for XSPICE models, preventing heap corruption.
Ocurred with dll under Windows 10 only.
Detected with crtdbg.h, and _CrtSetDbgFlag(_CrtSetDbgFlag(0) || _CRTDBG_CHECK_ALWAYS_DF)
in ngSpiceInit() and {char *test = TMALLOC(char, 1);} as test vehicle.
2018-12-22 18:08:58 +01:00
Holger Vogt 2c7860361d Prevent segfault if SendStat is NULL and HAVE_FTIME is undefined.
Patch no. 28 offered by Liang Chang
2018-12-17 23:07:41 +01:00
Holger Vogt db13f66519 typo 2018-12-17 23:07:34 +01:00
Holger Vogt ebc39c941e fix typos
reported by Carsten Schoenert
2018-12-17 23:07:27 +01:00
Holger Vogt 3f816d7f1b add comment 2018-12-17 23:07:19 +01:00
Holger Vogt feaebe6bd9 spelling
reported by Carsten Schoenert
2018-12-17 23:07:10 +01:00