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