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