Commit Graph

5234 Commits

Author SHA1 Message Date
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
Holger Vogt a98f6ac69b proper initialization of OldAn, callback only
if output has changed
2018-12-17 23:07:00 +01:00
Holger Vogt 0f552fc4f8 sharedspice.c, prevent crash, if controlswait is set
and a next bg_run before controls are ready.
2018-12-17 23:06:49 +01:00
Holger Vogt f9f28f7679 MS Windows: Use only POSIX compliant snprintf 2018-12-17 23:06:21 +01:00
Holger Vogt 98a5106015 simplify and re-enble MINGW 2018-12-17 23:05:55 +01:00
Holger Vogt 2a2a7c2d36 sharedspice.c, NS Windows, use only POSIX compliant snprintf
make OldAn a zero terminated string
2018-12-17 23:05:41 +01:00
Holger Vogt 0828a8e706 new command bg_ctrl initializing the .control executing thread
pthreads: using detached threads only
keep controls during 'reset', delete only upon 'quit'
2018-12-17 23:05:25 +01:00
Holger Vogt c2db1d5547 Bug 385 enable variable numdgt for printout 2018-12-17 23:05:15 +01:00
Holger Vogt f6b995b80e remove unused fcn declaration 2018-12-17 23:05:05 +01:00
Holger Vogt 6f79db19d1 pthreads: suspend thread 3 (controls) with a condition variable 2018-12-17 23:04:57 +01:00
Holger Vogt 9d9f415226 inp.c, add variable 'controlswait'. If set, only then controls with
shared ngspice are executed after background thread has finished.
2018-12-17 23:04:43 +01:00
Holger Vogt e4aabc82c7 shared ngspice: add a third thread to execute the .control commands
only after the background thread has been finished
2018-12-17 23:04:31 +01:00
Holger Vogt 7706889a0a 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-17 23:04:13 +01:00
Holger Vogt 16978f8bf6 inpcom.c, add alternative noise flag 'noise=1' 2018-12-17 23:03:48 +01:00
Holger Vogt 9f40c2b584 add an icon to MS Windows VC exe 2018-12-17 23:03:27 +01:00
Holger Vogt 7f3f46ebea license modified to be compatible to 3-clause BSD according to
https://github.com/freebsd/freebsd/blob/master/lib/libc/stdlib/getopt_long.c
2018-12-17 23:03:00 +01:00
Holger Vogt d2d2178407 inpcom.c, remove compiler warnings about
potentially uninitialized local variables and
assignment within conditional expression
2018-12-17 23:02:48 +01:00
Holger Vogt ee843a4c2c remove memory leak in noise selection for behavioral r 2018-12-17 23:02:27 +01:00
Holger Vogt 6335c271b2 add a syntax check for the incoming netlist.
check if an .if statement is used, then skip
deleting unused models and subcircuits (may be
required when using commercial libraries) .
2018-12-17 23:02:03 +01:00
dwarning 49a3af54de Handle leading plus sign in same kind as minus. 2018-12-17 23:01:45 +01:00
Holger Vogt 72110dc65d noise caculation in behavioral resistors is switched on
by the instance flag 'noisy=1'. Default is a noiseless resistor.
2018-12-17 23:01:15 +01:00
dwarning edb42b526d Add comment for better understanding. 2018-12-17 23:00:54 +01:00
dwarning 390d0bddd9 Dereferencing of the null pointer 'p' might take place. Remove unused variable. 2018-12-17 22:58:30 +01:00
Holger Vogt 08a9d8462b only treat B lines, .param lines have been processed already.
This is a very preliminary fix to a bug reported by Andy.
Has to be tested with various input conditions.
2018-12-17 22:58:07 +01:00
dwarning 9e663f45e4 remove some ugly warnings 2018-12-17 22:57:51 +01:00
Holger Vogt 9a1b9dc2e6 reduce the amount of reallocs by making the vector size generation
dependent on tstep and tstop for tran or pss simulation
2018-11-18 16:08:08 +01:00
Holger Vogt 9fb2aac952 inpcom.c, skip nois calculation of behavioral resistor
by adding instance parameter noisy=0
2018-11-18 16:07:58 +01:00
Holger Vogt 96f3b7b029 bug 380, fix removal of string vector after setting the model parameters 2018-11-18 16:07:26 +01:00
Holger Vogt 163f569eb2 Make the new nodes for current measurement i(xxx) unique
by adding a serial number.
2018-11-18 16:06:42 +01:00
Holger Vogt f1fdb5b2a7 fix current measurement by i(xxx) in B sources: first step,
allow spaces before 'i(' token.
Current measurement for devices in series connection
is still not possible.
2018-11-18 16:06:33 +01:00
dwarning 7c94cc2e42 setting gmbs direct to 0 2018-11-18 16:05:52 +01:00
dwarning 92efc0bd6c don't replicate model and instance temperature dependent parameter 2018-11-18 16:05:46 +01:00
Holger Vogt 34f0e98080 plug a memory leak, delete 'element', if tmalloced before 2018-11-18 16:05:32 +01:00
Holger Vogt c98b472366 enable GetProcessMemoryInfo for shared ngspice made with MSVC 2018-11-18 16:05:06 +01:00
Holger Vogt da75066302 update to resource.c:
proc/self/statm is up-scaled by page size
up and down scaling by 1024 removed
GetProcessMemoryInfo access simplified
pre-processor flags simplified
tiny format changes
2018-11-18 16:04:26 +01:00
Holger Vogt cf6722af17 Enable function GetProcessMemoryInfo() to get reliable memory usage data
for MINGW and MSVC console, WinGui and MSVC shared ngspice.
MINGW shared ngspice does not link to psapi.dll, so cannot
apply  GetProcessMemoryInfo(),  but sticks to unreliable function
GlobalMemoryStatusEx().
2018-11-18 16:03:06 +01:00
Holger Vogt df9efac808 inp2dot.c, beautify the code 2018-11-18 16:00:19 +01:00
Holger Vogt 321b1293e7 plug two small memory leaks 2018-11-18 16:00:12 +01:00
Holger Vogt 0d9d228c11 Put the copy for generating permanent next_token exactly at the places
where is is needed: INPtermInsert() and fast->conn...->neg_node_str
XSPICE memory leaks are gone!
2018-11-18 15:59:54 +01:00
Holger Vogt 2a6212f77e Add a function gc_start to reset the garbage collector 2018-11-18 15:59:44 +01:00
Holger Vogt 4e6de9626e ** A local garbage collector **
Add the list of malloced addresses alltokens.
Add a function copy_gc to copy and enter the address.
Add a function gc_end to delete all entries in alltokens.
   Beware of addresses deleted elsewhere and use anew by malloc.
Some tokens should not be deleted here, they get another copying.
2018-11-18 15:59:34 +01:00
Holger Vogt fb1970e25a add gc functions to replace MIFgettok and MIFget_token 2018-11-18 15:59:15 +01:00
Holger Vogt ccb7fa410b remove all instances of tfree.
Code is working, but full of memory leaks.
2018-11-18 15:59:05 +01:00
Holger Vogt f9c956ff6b mif_inp2.c, improve on memory leaks
Delete token before generating it anew, delete def_port_str
only if not already done before.
Still there are some tiny leaks left.
2018-11-18 15:58:26 +01:00
Holger Vogt 7b57800df6 bug 378 put tfree(def_port_type_str) to an appropriate place. 2018-11-18 15:57:35 +01:00
dwarning d7089adcaf Also in case of allocation error we have to free existing memory before return. 2018-11-18 15:56:37 +01:00
dwarning a6fa3aaa11 The 'then' statement was equivalent to the 'else' statement.
Also moredimensional poly sources need only one closing bracket for input port.
2018-11-18 15:56:26 +01:00
Holger Vogt 0a50acbb66 inp.c, .if: enable multiple .elseif sections 2018-11-18 15:56:10 +01:00
Holger Vogt 639bfc6280 no lower case after redirection sign > for command 'asciiplot' 2018-11-18 15:55:43 +01:00
Holger Vogt 7a1218cc0e fix ouput redirection for 'print' command 2018-11-18 15:55:29 +01:00
dwarning 9789956815 don't ask two times if the allocation has failed 2018-11-18 15:55:14 +01:00
dwarning f7c36d66d4 As the comment said we have bypass only without selfheating
so the expression 'here->HSMHV2_coselfheat > 0' is always false
and all derivatives to temperature are 0.
2018-11-18 15:54:58 +01:00
Holger Vogt 54d9ec93cb bug 375, select correct input line,
reported by  Bohdan Tkhir
2018-11-18 15:54:43 +01:00
dwarning 68230648c6 white spaces 2018-11-18 15:54:32 +01:00
Holger Vogt ebe4fd5332 control.c, bug 374, prevent crash if cend[stackp] is NULL
reported by  PyroPeter
2018-11-18 15:54:21 +01:00
dwarning 9289f0f773 proper initialization of b magnitude coefficient in a special case 2018-11-18 15:54:08 +01:00
Holger Vogt 2a947a933e bug 253: Do not delete the scale vector of the current plot 2018-11-18 15:53:50 +01:00
Holger Vogt 157aaee6f1 Bug #332, reported by M. Hendriks
Add a warning if statements .control ... .endc are misplaced or missing
2018-11-18 15:53:30 +01:00
Holger Vogt 530cac53c5 bug 337: keep '-' as sign of number following tc1, tc2 2018-11-18 15:52:56 +01:00
Holger Vogt 8d89202161 keep sign together with number when preparing B source pwl (and others)
Seems to be optional, B Source handles numbers with offset sign
2018-11-18 15:52:47 +01:00
Holger Vogt 113060473e bug 337: replace atof by INPevaluate to allow ngspice numbers
in tc1 or tc2 tokens.
2018-11-18 15:52:24 +01:00
dwarning ddd3a11bff variables are assigned values twice successively 2018-11-18 15:52:05 +01:00
dwarning d7ee6bee50 bug #368: x-axis description for nested dc sweeps should inline with first level sweep 2018-11-18 15:51:35 +01:00
Holger Vogt 65ee87e0a2 grid.c, windisp.c, vertical text for postscript and WINGUI
Arial as standard font for WINGUI
2018-11-18 15:51:09 +01:00
Holger Vogt 56701e3d10 add rotation angle to text output, currently used only by postscript,
ignored by all others
2018-11-18 15:50:56 +01:00
Holger Vogt 9e01d0b9f9 postsc.c, enable postscript output for extended ascii.
Currently only Western European latin-1 (ISO/IEC 8859-1) encoding
is supported.
2018-11-18 15:50:00 +01:00
h_vogt 87be5b9a41 Do not set Bit 8 in an ANSI char, when \ or ^ occured in a string. Thus the full ANSI set is now available in ngspice strings. The setting of Bit 8 was not exploitet anywhere, but did not allow using the characters from extended ANSI. 2018-11-18 15:49:31 +01:00
Holger Vogt 41fbc0bb1d inpcom.c, command gnuplot: no lower case in xlabel, ylabel, title 2018-11-18 15:49:18 +01:00
Holger Vogt 66c468087d noisean.c, beautify the code 2018-11-18 15:48:58 +01:00
h_vogt f640ef68c3 noisean.c, ensure correct user input:
number of points always > 0
single frequ measurement if 1 point given
2018-11-18 15:48:41 +01:00
h_vogt b0da1f2a0f com_measure2.c, write a fft vector (sp plot) with complex data
and real frequency to file and load it again, frequency now has become
a complex number as well. This was not recognized, thus ngspice crashed
(see https://sourceforge.net/p/ngspice/discussion/127605/thread/8cccd69c/
by Michal Janik - 2014-11-04
2018-11-18 15:48:13 +01:00
Holger Vogt 9ab153ddc2 Exclude from model search all lines beginning
with a character contained in this list: *vibefghkt
2018-11-18 15:47:24 +01:00
Holger Vogt 277842f948 update to model search function 2018-11-18 15:47:04 +01:00
Holger Vogt 78ab9c477b Update to the model name search function:
A model name is any token not being a true ngspice number,
except for tokens with some prohibited front characters
{*^@\\\' .
2018-11-18 15:46:26 +01:00
dwarning de9755b1ad backup to original state - but changing name of local struct t to tc 2018-11-18 15:45:55 +01:00
dwarning e3c1b02892 remove compiler warning about double declaration of DEVices 2018-11-18 15:45:37 +01:00
dwarning 12498623c8 no use of string 't' - but struct 't' is still used 2018-11-18 15:45:23 +01:00
dwarning cc4e4d9bad verify pointer before utilization 2018-11-18 15:45:12 +01:00
dwarning 42d29ef49f remove the entire file buffer modification which was never come in effect
Take over this task to the OS which will handle this properly.
2018-11-18 15:44:53 +01:00
dwarning f0f19f87a3 In case the file open failed we have no need to set the IO buffer size.
And this should also not be done with a NULL pointer into setvbuf.
2018-11-18 15:44:40 +01:00
dwarning 5590406acf The 'j' variable is assigned values twice successively.
Obviously the first assigment is waste because 'j' has the meaning of row count.
2018-11-18 15:44:32 +01:00
dwarning a36366be1a A call of the 'memset' function will lead to underflow of the buffer 'table'.
Table structure multiplied by N_GLOBAL_NODES will initialize the entire table with 0.
2018-11-18 15:44:25 +01:00
dwarning a2c5cb4301 It is odd that pointer to 'char' type is compared with the '\0' value.
Correct compare with *eqword follows in a correct error message.
2018-11-18 15:44:15 +01:00
Holger Vogt d504991177 new definition of cp_enqvar also in seldom used ngsconvert.c 2018-10-27 18:07:44 +02:00
Holger Vogt 19380903cc add missing evtshared.h to the distribution 2018-10-27 16:37:33 +02:00
Holger Vogt 94fa272c9d A hack to repair bug reported by Clyde R. Shappee 2018-10-27 12:28:01 +02:00
dwarning 6b99bc8f7a prevent pass null pointer into setvbuf 2018-10-27 11:33:48 +02:00
dwarning 93f35afe69 s variable was assigned values twice successively 2018-10-27 11:33:00 +02:00
dwarning 360efabf36 no null pointer to fprintf 2018-10-27 11:24:22 +02:00
dwarning ae698c208a variable was assigned to itself 2018-10-27 11:21:06 +02:00
dwarning 5459404c47 prevent fallthrough by missing return 2018-10-27 11:20:29 +02:00
dwarning 740987382b The 'then' statement was equivalent to the 'else' statement. 2018-10-27 11:19:57 +02:00
dwarning cf24081507 prevent unused warning 2018-10-27 11:12:56 +02:00
dwarning be79efbf7a Remove recurring check 2018-10-27 11:09:49 +02:00
dwarning ef61972910 Add missing break 2018-10-27 11:09:20 +02:00
dwarning 06430b7f14 rm extra text after end of preprocessing directive 2018-10-27 11:09:07 +02:00
dwarning 079b3bb7fd add some missing prototypes 2018-10-27 11:08:17 +02:00
Holger Vogt 4738edeab5 symbol visibility=hidden only in release mode
for shared library and codemodels
2018-10-27 11:06:16 +02:00
Holger Vogt 75d1e45737 consider all PSPICE containing compatibility settings
for the evaluation of the pwr function
or allowing '-' in a subcircuit name
2018-10-20 23:54:02 +02:00