Commit Graph

5432 Commits

Author SHA1 Message Date
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
Holger Vogt f31f044e30 set the search path for the code models relative to ngspice.exe
(for Windows GUI and console)
2018-10-18 21:39:33 +02:00
Holger Vogt ff2304625f allows to start ngspice WinGUI by double click on an input file, if
the file extension has been associated with ngspice.exe
2018-10-18 21:37:50 +02:00
Holger Vogt 45e269819e fix a bug 2018-10-17 19:01:59 +02:00
dwarning 5c31aec164 prevent core dump to get the baseaddress 2018-10-16 14:13:17 +02:00
dwarning 56bc8af358 calloc needs stdlib.h 2018-10-15 22:36:01 +02:00
dwarning 67b38d7885 remove empty statement 2018-10-15 16:06:57 +02:00
Holger Vogt 25cdf95262 replace deprecated sys_errlist[errno] by call to strerror(errno) 2018-10-14 12:21:02 +02:00
Holger Vogt 7787268118 Enable psa, ltpsa compatibility mode 2018-10-13 22:41:55 +02:00
Holger Vogt b0d79630a4 New variable no_auto_gnd
'set no_auto_gnd' in spinit or .spiceinit will preclude
ngspice to automatically replace 'gnd' by global '0'
2018-10-13 18:20:18 +02:00
Holger Vogt b3db3c7fd9 Don't modify 'working' address, insert new item (functions etc)
only after ther first line.
2018-10-13 18:20:13 +02:00
Holger Vogt 3930e27501 New compatibility modes (set ngbehavior=??): PS LT LTPS PSA LTA LTPSA
PS: PSPICE comp. in .include files., LT: LTSPICE comp. in .include files.
LTPS: both, PSA: PSPICE comp. in complete input deck,
LTA and LTPSA: comp. in complete input deck for LT or both.

Add functions uplim, dnlim, uplim_tanh, dnlim_tanh.

Replace
D1 A K SDMOD
.MODEL SDMOD D (Roff=1000 Ron=0.7  Rrev=0.2  Vfwd=1  Vrev=10 Revepsilon=0.2 Epsilon=0.2 Ilimit=7 Revilimit=7)
by
ad1 a k asmod
.model asmod sidiode(Roff=1000 Ron=0.7  Rrev=0.2  Vfwd=1  Vrev=10 Revepsilon=0.2 Epsilon=0.2 Ilimit=7 Revilimit=7)
2018-10-13 18:19:58 +02:00
Holger Vogt 0b7c291f37 replace Id by Idd.
Use Revilimit instead of Ilimit.
Correct for current limits.
2018-10-13 18:19:53 +02:00
Holger Vogt 0675da008b make the paramter param in @dev[param] lower case for
commands alter, altermod
2018-10-13 18:19:49 +02:00
dwarning 7bb9b866f6 fix junction capacitance calculation for bsim3 versions lower than 3.2.3 2018-10-13 18:19:43 +02:00
dwarning 2b3cfd7727 white spaces 2018-10-13 18:19:38 +02:00
Holger Vogt d636f7899b cp_enqvar() returns freshly malloced variables as well
as variables owned by somebody else, e.g. from ft_curckt->ci_vars.
The new function parameter tbfreed notifies the caller if the
variable is malloced here and may be freed safely.
2018-10-13 18:19:31 +02:00
Holger Vogt 6df684e22a Evaluate .if ... .elsif ... .else ... .endif recursivly 2018-10-13 18:19:21 +02:00
Holger Vogt a22017024b add some info to file header 2018-10-13 18:19:09 +02:00
Holger Vogt faa7ce003c Add a new code model 'sidiode' with a simple diode:
Linear reverse, off, and on regions
Smooth parabolic transition between the regions
Maximum current settings possible with tanh transistion
Current versus voltage continuously differentiable
No diode capacitance
2018-10-13 18:18:59 +02:00
dwarning 76c43ab512 using the native tan and tanh math functions for real vector calculation 2018-10-13 18:18:47 +02:00
dwarning 3dd94ba15c differentiate tan and tanh in safe way without cos and cosh 2018-10-13 18:18:37 +02:00
Holger Vogt f33c3f0751 remove memory leak, when ft_getnames ... free_pnode couple
parses a vector like v(1,2)
2018-10-13 18:18:23 +02:00
Holger Vogt ae89381bb6 Prevent a segfault if multiple circuits are freed upon 'quit'
by checking if a 'recent_deck' that is to be freed also exists
with same address in ci_mcdeck of another circuit. If yes, set
this to NULL before freeing.
2018-09-26 18:47:20 +02:00
Holger Vogt a17de08b5c free only value that have been TMALLOCed or TREALLOCed 2018-09-26 18:47:06 +02:00
Holger Vogt 2a3c88add6 Commit ad0f59657 ("fix a memory leak", 2018-08-13) made
the special device parameter notation @m1[vt0] unusable.
This fix frees only the tokens that are already overridden
in function INPinsertNofree(). The reason for using this
function instead of INPinsert() is not obvious.
2018-09-26 18:46:12 +02:00
Holger Vogt 5f0b2f344e spurious crash: MIFgettok deliveres strings that cannot be freed:
MS Windows, VS or MSYS2/MINGW/GCC, shared ngspice, single character
token at end of line, compiled with optimization, not in debug mode.
Preliminary fix: TMALLOC another byte to token.
Origin of bug still unknown: Source code error? MS library error?
Re-write of MIFgettok does not show this error (so far...).
2018-09-26 18:45:46 +02:00
Holger Vogt 92b69cbc55 prepare ngspice-29 2018-09-26 18:45:35 +02:00
Holger Vogt 40e69ceaf4 plug a memory leak after (internal) call to altermod 2018-09-02 18:05:22 +02:00
Holger Vogt 12c864fb5a destroy the tmalloced diag, if rshunt option was enabled 2018-09-02 18:05:01 +02:00
Holger Vogt 2e9c28c79a Prevent segfault, if mutual inductor coupling
specifies non-existing inductors
2018-09-02 18:04:49 +02:00
Holger Vogt b0e7962169 don't generate error message during transient analysis,
it will not be used
2018-09-02 18:04:42 +02:00
Holger Vogt fc3ffb2e3c free global string errMsg 2018-09-02 18:04:31 +02:00
Holger Vogt 0406546f7e remove a small memoryleak in (nested) goto loops 2018-09-02 18:04:25 +02:00
Holger Vogt 70439e38fa safety check if no circuit is loaded, prevent crash 2018-09-02 18:04:19 +02:00
Holger Vogt 8b02c31326 prevent reading beyond array boundaries 2018-09-02 18:04:00 +02:00
Holger Vogt a8a6e0b2ff During unsetup delete the InstanceArray (only for OpenMP) 2018-08-28 23:15:02 +02:00
Holger Vogt 800c9711f2 add a flag 'type of the union' to safely free model->param[i]->element,
if it contain a malloced string
2018-08-28 21:29:05 +02:00
Holger Vogt f6cbaea604 data[i] is no longer written beyond its allocated length 2018-08-28 18:45:19 +02:00
Holger Vogt 2867678f99 For unsetup de-allocate the memory
that has been allocated locally in the code model during INIT
2018-08-28 17:11:51 +02:00
Holger Vogt 7d12b4897c clean-up function com_quit 2018-08-28 16:24:43 +02:00
dwarning 06d0aaa827 whitespaces 2018-08-28 14:55:43 +02:00
dwarning 06fb917b82 plug a memory leak in bsim models 2018-08-28 14:42:29 +02:00
Holger Vogt fa60f7d21d avoid memory leak in X11 2018-08-27 21:20:19 +02:00
Holger Vogt c4f8a02eb0 add a callback to de-allocate the static variable p->element 2018-08-27 17:00:10 +02:00
Holger Vogt 06df6ca8e7 avoid pre-matuire exit (byemessage not called) 2018-08-27 14:28:04 +02:00
Holger Vogt 80a767f6cd add here->intgr to the de-allocated memory 2018-08-27 14:00:18 +02:00
Holger Vogt 21edfb2127 safety measure against here->conn[i]->port[j]->partial etc.
being NULL
2018-08-27 12:47:56 +02:00
Holger Vogt a5179b1637 free memory allocated in MIFsetup and by cm_analog_alloc and cm_analog_converge 2018-08-27 12:19:24 +02:00
Holger Vogt c87dd6161f mifsetup.c: use astyle to beautify the code for better readability 2018-08-27 10:54:54 +02:00
Holger Vogt e7bcc09bb0 remove memory leak: delete duplicate .param lines 2018-08-27 00:20:52 +02:00
Holger Vogt 9cd9bf345c mif_inp2.c: remove a memory leak 2018-08-26 19:02:21 +02:00
Holger Vogt 3ee1f92d2e plug a memory leak in b3temp.cir: no overwriting of size dependent
model parameters in pParam
FIXME: still to be done for other BSIM models!
2018-08-25 23:14:03 +02:00
Holger Vogt b6b66c71bd plug a small memory leak (switch-oszillators.cir) 2018-08-25 23:12:17 +02:00
Holger Vogt 9332801382 free the original wlist, made by getcommand(),
not a derived wlist that is just part of the original
2018-08-25 00:38:26 +02:00
Holger Vogt c5cea6d6c1 remove ft_curckt->ci_meas upon removing the current circuit ft_curckt 2018-08-24 22:58:02 +02:00
Holger Vogt 5f1f6ccb29 add a small comment 2018-08-24 22:41:14 +02:00
Holger Vogt 0fbe920382 plug a small memory leak in switch-oscillators.cir 2018-08-24 21:56:29 +02:00
Holger Vogt 2b50ca7271 command 'print': preserve case for filenames after redirection '>' 2018-08-24 15:41:53 +02:00
dwarning 5380c3f4da prevent a small memory leak 2018-08-23 15:44:00 +02:00
Holger Vogt 0e0b276a3e ISRC: update to trnoise source, same as in VSRC 2018-08-23 10:56:50 +02:00
Holger Vogt aedd9d92ee upon alter the trnoise or trrandom states get re-written.
so delete the old state first.
2018-08-23 10:13:17 +02:00
Holger Vogt b4c6a7d324 add function trnoise_state_free and use it
instead of its individual components
2018-08-23 10:12:24 +02:00
Holger Vogt c88578e2c5 noise value is 0 for time == zero.
Only when time changes from time == 0 to time > 0,
the 1/f noise data are generated once per voltage instance
with 1/f noise requested.
2018-08-22 22:38:34 +02:00
Holger Vogt d3b7619754 add a flag timezero to trnoise_state
falg is true as long as time = 0. Allows
to detect the change from time == 0 to time > 0
only then the 1/f data may be created anew (e.g.
due to multiple 'run' commands
2018-08-22 22:36:35 +02:00
dwarning aa95da431a adaptive format specifier for size_t printf 2018-08-22 14:19:12 +02:00
dwarning aed5ba01c0 prevent a small memory leak 2018-08-22 13:05:19 +02:00
dwarning 7d78cba9ef fix some prototype declarations 2018-08-21 13:40:13 +02:00
dwarning 561fdd805c rm unused variables 2018-08-21 13:18:24 +02:00
dwarning 598b72be37 prevent a huge memory leak by calling fftw3 in a loop 2018-08-20 16:41:43 +02:00
Holger Vogt 1f7d84b270 trivial patch to avoid memory leaks during transient noise generation.
This has to be replaced by a rewrite of the noise generating code.
2018-08-20 00:25:21 +02:00
Holger Vogt 34fcdda1e2 plug a potentially huge memory leak 2018-08-19 21:03:15 +02:00
Holger Vogt dafbf72f7f fix a small memory leak 2018-08-19 17:30:53 +02:00
Holger Vogt 8c9b18ef7e fix a small memory leak 2018-08-19 17:24:10 +02:00
Holger Vogt 7e4b68c708 update to the rusage command:
print total analysis time, total elapsed time, and
memory information (OS dependant) if rusage is given
without parameters
2018-08-19 15:00:46 +02:00
Holger Vogt f07c73b6a5 Command 'cd' now switches to the home directory also for MS Windows.
A new command 'getcwd' just prints the current working directory
without changing it.
2018-08-18 21:22:59 +02:00
Holger Vogt 9cc690c55c try to reload only when mc_deck is available
comment modified
2018-08-18 11:29:05 +02:00
Holger Vogt 2b071fec5a add loading from recent deck (mc_deck) if circuit
file has been removed by remcirc.
2018-08-18 11:28:39 +02:00
Holger Vogt 2dfdf984d6 re-number the lines during copying,
required by nupa_copy()
2018-08-18 11:28:07 +02:00
Holger Vogt f9eb75f55d skip comment lines 2018-08-18 11:28:02 +02:00
Holger Vogt ac0a70bb84 print deck after re-loading into debug-out-mc.txt,
if 'set ngdebug' is set in .spiceinit
2018-08-18 11:27:51 +02:00
Holger Vogt cebb83eec1 give preference to mc_reload when reloading the circuit 2018-08-18 11:27:44 +02:00
Holger Vogt ad0f596570 fix a memory leak 2018-08-18 11:27:31 +02:00
Holger Vogt 795f9ed6ad remove unused rparen 2018-08-18 11:27:20 +02:00
Holger Vogt b1f956f81c fix a memory leak 2018-08-18 11:27:14 +02:00
Holger Vogt 73da17e367 just keep recent_deck, when it's already equal
to current ft_curckt->ci_mcdeck, thus avoid
freeing ft_curckt->ci_mcdeck
2018-08-18 11:27:02 +02:00
Holger Vogt d1a8637a29 store deck for command mc_source for each circuit in ft_curckt->ci_mcdeck
remove this storage during remcirc

keep most recent deck in recent_deck
2018-08-18 11:26:42 +02:00
dwarning 9475daf9d2 MOS level 55-57 and 68 are available and not placeholder 2018-08-15 12:47:25 +02:00
dwarning b113041faa if bsim6 will come it would be va code and needs adms 2018-08-15 12:01:22 +02:00
Holger Vogt d8352342a8 free more data allocated during INIT 2018-08-11 11:37:19 +02:00
Holger Vogt c891c2f64f Update to callback function:
delete memory also in the eno structure
do not close a file twice
2018-08-11 00:43:54 +02:00
Holger Vogt 7e611e7b57 remove the circuits upon quit 2018-08-10 23:48:00 +02:00
Holger Vogt d26d1b96ec add callback function to delete the memory
allocated in the code model
2018-08-10 23:35:33 +02:00
Holger Vogt 9d36a2e326 remove unused i 2018-08-10 23:34:27 +02:00
Holger Vogt 2ce4c1592b a tiny memory leak 2018-08-10 22:03:02 +02:00
Holger Vogt 0bc1d8147c plug a memory leak 2018-08-10 19:56:26 +02:00
Holger Vogt a6f525f6c1 fix a memory leak 2018-08-09 23:23:18 +02:00
Holger Vogt 9db2bf3d69 fix a memory leak 2018-08-09 20:22:33 +02:00
Holger Vogt 6ed10583f2 plug small memory leaks 2018-08-08 23:31:52 +02:00
Holger Vogt dc34632421 fix memory leaks when evaluating a variable
MC example file MC_ring_ts.sp is now free of memory leaks
2018-08-07 22:46:26 +02:00
Holger Vogt 934656f6e8 fix memory leak: before killing a plot, remove its hash table entry 2018-08-07 20:42:55 +02:00
Holger Vogt cffc7d27ff beautify code with astyle 2018-08-07 19:58:52 +02:00
Holger Vogt c5b5190199 command 'setplot': add predefined 'previous' and 'next' parameters
to switch to the previous or next plot. A warning results if this
is not possible, then the currnt plot is not changed.
2018-08-07 19:58:41 +02:00
Holger Vogt 19596f0f42 add search in current directory
Patch provided by Uros Platise
https://sourceforge.net/p/ngspice/ngspice/merge-requests/4/
2018-08-07 19:58:08 +02:00
Holger Vogt 7c90004921 add Inp_Path to sourcepath variable
Patch provided by Uros Platise
https://sourceforge.net/p/ngspice/ngspice/merge-requests/4/
2018-08-07 19:57:58 +02:00
Holger Vogt e18b848f7d Allow '-' and '+' being part of the instance name.
Has already been available for B, E, F, G, and H sources
2018-08-07 19:57:38 +02:00
Holger Vogt f354f36121 replace 'magic numbers' by defines, thus setting several char arrays
safeguard these arrays against overflow
set numbers of parameters to 10000
2018-08-07 19:57:28 +02:00
dwarning 88f1fa0092 allow version model parameter in exponential format for bsim3 2018-08-07 19:57:05 +02:00
Holger Vogt 8357564fee fix missing tokens in cp_getvar 2018-07-30 00:42:46 +02:00
Holger Vogt ef5747905f fix bug no. 362, reported by Bohdan Tkhir
replace size_of by sizeof
2018-07-30 00:35:25 +02:00
Holger Vogt eab5615fb3 examples moved to examples/xspice/original-examples 2018-07-28 13:47:23 +02:00
Holger Vogt e3b2b395b9 fix an ancient bug in retrieving the data with the cursor
from a log y graph: use y-offset instead of x-offset
2018-07-26 20:55:21 +02:00
Holger Vogt 908339359a clarify start time generation
clarify time and amplitude updates
don't read comment lines
2018-07-26 20:50:36 +02:00
Holger Vogt 0c94ab948b treat ( ) , like spaces, that is ignore them during
switch parameter conversion
2018-07-26 18:21:34 +02:00
Holger Vogt d1761f8d6e read the complete input file at once during inizialization
instaed of reading the file line by line,
and instaed of re-reading from the beginning in case
of time stepping back. This saves a vast amount of
simulation time if the input file is large.
2018-07-24 22:30:40 +02:00
Holger Vogt 393c924886 improve finding tokens, considering nested parens 2018-07-22 17:33:19 +02:00
Holger Vogt f2cfb9b359 add fourth parameter to cp_getvar() 2018-07-22 15:15:10 +02:00
Holger Vogt fac5754b79 add variabale inputdir to store the last input file directory 2018-07-22 15:12:50 +02:00
Holger Vogt 2786fcb86e New .option seed=[val|random] 2018-07-22 15:11:44 +02:00
Holger Vogt 107a4a808e New .option seed=[val|random] 2018-07-22 15:09:25 +02:00
Holger Vogt 10c6c5c38b Convert .param lines containing 'agauss' and others
into .func (xxx1() 'agauss()', replace all xxx1 entries
by function xxx1().
After subcircuit expansion, replace agauss and others
in B-Line by their suitable values.
2018-07-22 15:08:44 +02:00
Holger Vogt 7ca61b3c98 New command 'setseed' with function com_sseed
to set the random number generator
2018-07-22 15:06:19 +02:00
Holger Vogt 8fbcb16a57 add fourth parameter to cp_getvar(), in functions missing so far 2018-07-22 14:58:25 +02:00
Holger Vogt af70c2e8f0 cp_getvar with CP_STRING: add size of string to function parameters 2018-07-22 14:58:06 +02:00
Holger Vogt 09c876550f prevent string overflow by adding the string length
to the cp_getvar parameters. Used only with CP_STRING
2018-07-22 14:57:49 +02:00
dwarning 60a35725f5 few optimizations for diode recombination current calculation 2018-07-22 10:18:52 +02:00
Holger Vogt 8930690cd2 plug a small memory leak 2018-07-22 09:53:14 +02:00
Holger Vogt 824ac4fbc9 make functions static or add function prototypes 2018-07-21 23:56:14 +02:00
Holger Vogt 2dd293707b initialize pn in ft_getpnames() parse.c
initialize dwLen in tesCreateSystemInfo() in com_sysinfo.c
Both were reported by MSVC Code Analysis
Crash of ngspice.dll in Eeschema is thus removed
(hopefully in general)
2018-07-21 23:55:00 +02:00
Holger Vogt b07ae3123e use only internal memory functions,
replace strdup by copy
2018-07-21 23:54:51 +02:00
Holger Vogt a98d01e5f8 Use only internal memory functions, replace
free->tfree, malloc->tmalloc, realloc->trealloc
2018-07-21 23:54:43 +02:00
dwarning 376a37a5d6 introduce recombination current component 2018-07-19 15:44:06 +02:00
dwarning 3bae0e371c fix a small inconsistency in temperature dependent charge calculation 2018-07-19 14:08:35 +02:00
Holger Vogt a2b52b588e a space is required between tokens that have got {} 2018-07-14 21:14:54 +02:00
Holger Vogt d9d47bd823 fix a bug: missing
#ifdef XSPICE
prevents compiling of ngshared
without --enable-xspice in ./configure
2018-06-30 21:19:51 +02:00
Holger Vogt 417dbfef72 undo the previous commits dealing with snprintf,
use the C99 compliant function also with MS Visual Studio
2018-05-31 11:37:51 +02:00
Holger Vogt 92dd6e48d0 make up description comment for pspice_compat() 2018-05-31 10:59:20 +02:00
Holger Vogt 7153891293 raise buffer size by 1 to retain previous resolution 2018-05-31 10:58:52 +02:00
Holger Vogt 3b4640dee4 _snprintf in Windows 7 does not automatically put a '\0'
to the end of the buffer, only if there is space available.
That will change in the future if Snprintf is used.
2018-05-31 10:24:09 +02:00
Holger Vogt 1d9ab3eb5c PSÜICE compatibility:
R n1 n2 val TC=xx1,xx2 --> R n1 n2 val TC1=xx1 TC2=xx2
2018-05-29 23:55:23 +02:00
Holger Vogt 22b7fa77b5 fix a bug with switches, when no subcircuit is involved 2018-05-28 23:59:55 +02:00
Holger Vogt e5652cd745 safeguard fclose 2018-05-27 21:37:03 +02:00
Holger Vogt 2f56feea4a do not lower-case command 'set sourcepath = XXX' 2018-05-27 07:56:40 +02:00
Holger Vogt 42a86d0ff2 patch provided by Uros Platise: timeunit selection
for printing vcd file is now based on tstep instead of tstop
2018-05-26 15:00:37 +02:00
Holger Vogt 2e0b8b3e34 plug a small memory leak 2018-05-23 23:08:44 +02:00
Holger Vogt a40ba9ec4e add a comment 2018-05-22 21:18:53 +02:00
Holger Vogt ae81481229 white spaces 2018-05-22 20:34:44 +02:00
Holger Vogt 7b6cd86a62 re-write vswitch transformation code:
first scan: check for each .model with vswitch
second scan: check for switch instances
(s lines) using the models
2018-05-22 20:19:50 +02:00
Holger Vogt f9b11cd619 update to function pspice_compat(), concerning the VSWITCH replacement
only one .model replacement even for several s instances
firstly search in subcircuit at same level, then in top level
2018-05-21 23:34:36 +02:00
Holger Vogt f4f389dabb internal help: it is only available when --enable-oldapps is given
ngnutmeg is only made when --enable-oldapps is given during ./configure
2018-05-21 01:09:21 +02:00
Holger Vogt 0cb71b21bb move ngspice_compat_mode(void) to inpcom.c and make it static 2018-05-21 01:09:13 +02:00
Holger Vogt fa3badf2bd correct typo 2018-05-21 01:09:06 +02:00
Holger Vogt d991bbc470 ngconfig.sh is no more available 2018-05-20 12:48:31 +02:00
Holger Vogt 3145716163 new --enable-oldapps: ngsconvert ngproc2mod ngmultidec ngmakeidx are made only per user request 2018-05-19 23:49:17 +02:00
Holger Vogt 8324b0f646 prepare ngspice-28 2018-05-19 22:15:41 +02:00
Holger Vogt 406f812db5 distribute only adms/admst, not the whole adms 2018-05-19 20:25:42 +02:00
Holger Vogt 697b9da074 prevent endless loop if factor finally equals 1 2018-05-19 18:24:40 +02:00
h_vogt e47ab87385 inpcom.c, multiplier 'm' in subcircuits: exclude all devices not supporting multiplier 'm' 2018-05-19 18:20:27 +02:00
h_vogt 8762f6551d main.c free argv after its use (Win GUI only) 2018-05-19 18:15:23 +02:00
h_vogt d89eab99d5 add dicoS->linecount to safely delete dynrefptr[i],
linecount may change if circuits are changed or deleted.
2018-05-19 17:49:17 +02:00
h_vogt 1066bf0a7b Store the numparam dicoS structure for each circuit in a list.
Functions to add, remove, retrive dicoS from the list
and to update dicoS, if the circuit has been changed.
Keeping dicoS is necessary because it may be used by measure.
This patch prevents (huge) memory leaks by overwriting
dicoS if multiple calls to the 'source' command are executed.
2018-05-19 17:45:45 +02:00
h_vogt 4a3f02e979 runcoms.c, add variable 'sim_status' to indicate if a simulation has been aborted 2018-05-19 17:40:03 +02:00
h_vogt 2ece845f59 inpcom.c, responding to bug report 275 by Dominique Michel: commands plot, hardcopy: no lower case letters in tokens following xlabel, ylabel, title 2018-05-19 17:38:26 +02:00
h_vogt 7198056a41 patch no. 16 by Thomy add a function cm_get_circuit to allow accessing the circuit structure ckt from within an XSPICE code model. This is a change to the interface and requires recopiling all code models! 2018-05-19 17:37:42 +02:00
Holger Vogt 7ee0b14431 better zero after deaalocation 2018-05-19 16:53:50 +02:00
Holger Vogt 8f41257d87 enable 'temper' evaluation, if circuit is reloaded 2018-05-19 16:53:38 +02:00
Holger Vogt cbe4b31d4b do not delete symbols that have not been created here 2018-05-19 16:53:04 +02:00
Holger Vogt 710e98a22c Fcn ngGet_Vec_Info(): copy the vector pointer into a static pointer
infovec only if it is derived from event data (checked by a
scale vector with name "step"). Upon next call to fcn
ngGet_Vec_Info() first free the vector pointed to by infovec.

resolve merge conflict
2018-05-19 16:52:42 +02:00
Holger Vogt 8aff70036a Put variable wantevtdata into the right place,
also available for standard executable, to be
modified in sharedspice.c only.
2018-05-19 16:52:08 +02:00
h_vogt ce9f23f7af outitf.c, restrict vector length to 1, the minimum needed 2018-05-19 16:51:57 +02:00
h_vogt a393c47ec8 outitf.c, add flag 'save none' for shared ngspice. Output data will not be stored, but are available via callback function ng_data. 2018-05-19 16:51:42 +02:00
h_vogt 11bafd70ea update to callback functions SendEvtData, SendInitEvtData 2018-05-19 16:46:16 +02:00
h_vogt 5b754cbb0e dctran.c, exclude ipc_send_data_... 2018-05-19 16:45:09 +02:00
h_vogt c890435383 clarify pointers to data structures for event nodes 2018-05-19 16:44:57 +02:00
h_vogt b5f31ec2b1 version conflict rersolved in sharedspice.c 2018-05-19 16:44:46 +02:00
h_vogt 25a324ba6e add parameter mode to EVTsharedsend_line()
last entry for the dictionary list is NULL
2018-05-19 16:44:27 +02:00
h_vogt 2a6f0658a8 EVTshareddump() modified to just sent the relevant event data 2018-05-19 16:44:14 +02:00
h_vogt 994d190de5 shared_send_dict(char* dictline) to sent the node list 2018-05-19 16:44:02 +02:00
h_vogt e36b028cdb add wantevtdata if event output should be sent to caller 2018-05-19 16:43:48 +02:00
h_vogt 3e52cdd8c1 evtdump.c, prepare data gathering for callbacks similar to sending data via the ancient ipc channel 2018-05-19 16:43:31 +02:00
h_vogt b621875abf sharedspice.h, .c, prepare adding callback functions: new ngSpice_Init_Evt() and function pointers 2018-05-19 16:43:19 +02:00
h_vogt df4136a93d evtprint.c, update to edisplay command now showing node name, node type and number of events per node 2018-05-19 16:43:09 +02:00
h_vogt 72fd154571 evtshared.c, add delete function, remove bug in creating struct 2018-05-19 16:42:29 +02:00
h_vogt fc42cef878 New functions for XSPICE event node data exported from shared ngspice: ngGet_Evt_NodeInfo(char*) and ngSpice_AllEvtNodes(void) 2018-05-19 16:42:18 +02:00
h_vogt 20f6727e29 evtshared.c, prepare node data for transfer via shared ngspice interface 2018-05-19 16:42:01 +02:00
Holger Vogt bea6fba788 prevent false reads in multi-threaded ngshared 2018-05-19 16:39:16 +02:00
Holger Vogt 74584c94ee prevent false reading after copying an empty file 2018-05-19 15:40:30 +02:00
rlar 1a39d3f59d spicelib/parser, support instance parameter defaults on .model lines 2018-05-19 15:40:20 +02:00
Holger Vogt 7363532d11 search for user's initialization files has been
optimized away because of an empty if clause.
A simple rewrite firstly asks for .spiceinit, then for spice.rc
2018-05-19 14:41:06 +02:00
Holger Vogt d311fb10cf add a new vector type "temperature" 2018-05-19 14:40:55 +02:00
Holger Vogt 5b18732af2 plug some memory leaks 2018-05-19 14:40:50 +02:00
Holger Vogt a191697bd6 safeguard opening of file for debug output:
may be not allowed if caller is not started
in admin mode.
2018-05-19 14:40:41 +02:00
Holger Vogt 57156e16f6 remove tiny memory leaks in inp_compat() 2018-05-19 14:40:33 +02:00
Holger Vogt 5f5eacc48e move skipping white spaces to fcn create_circbyline() now ' .end' is acknowledged 2018-05-19 14:40:23 +02:00
rlar 55b2a0218e noise for behavioural resistor 2018-05-19 14:40:12 +02:00
Holger Vogt 1426f66967 use global variable inp_compat_mode 2018-05-18 18:39:15 +02:00
Holger Vogt 65181ff5c3 enable token 'table' to occur at any place in e source line 2018-05-18 18:37:24 +02:00
Holger Vogt ffb3800e34 Bug fix: B source pwl lines don't get special handling,
but standard numparam handling of {} tokens
2018-05-18 18:36:26 +02:00
Holger Vogt c879294a8b add comment 2018-05-18 18:27:49 +02:00
Holger Vogt 7188605ef2 bugfix: re-enable loading deck from circarray, if intfile 2018-05-18 18:22:41 +02:00
Holger Vogt 04059e5426 enable '-' as valid character in a subcircuit name 2018-05-18 17:35:05 +02:00
h_vogt c8cd763314 gnuplot.c, add 'noretraceplot' to prevent retracing of the graph if plotting against a vector which is not the original scale vector ('plot vec1 vs vec2') 2018-05-18 17:25:48 +02:00
h_vogt d4adb027d2 avoid retrace in output graph by adding label 'noretraceplot'
to the plot command, that creates a lin plot trying to avoid retracing
2018-05-18 17:08:27 +02:00