Commit Graph

6867 Commits

Author SHA1 Message Date
Holger Vogt a0389bb547 In PS compatibility mode:
In subcircuit .subckt and X lines with 'params:' statement
replace comma separator by space. Do nothing if comma is inside of {}.
2020-08-20 15:49:32 +02:00
Holger Vogt 26a4a32b8b avoid some compiler warnings 'referencing a NULL pointer' 2020-08-20 15:49:05 +02:00
Holger Vogt 458411b2e1 more precise freeing the wordlist, depending on exit point 2020-08-20 15:48:45 +02:00
Holger Vogt e3aad7849c remove vceo= and icrating= from bjt model cards 2020-08-20 15:47:49 +02:00
Holger Vogt c69a4d6633 fix typo
Reported by Ferdy in bug report #506
2020-08-20 15:47:17 +02:00
Kevin Zheng efde6902a0 indentation 2020-08-20 15:46:44 +02:00
Holger Vogt 54d8c990c5 src/spicelib/analysis/dcpss.c
line endings Windows --> Linux
2020-08-20 15:44:04 +02:00
Holger Vogt 23ceaabf83 fix a memory leak
Reported in bug report 504 by Ferdy
2020-08-20 15:41:39 +02:00
Holger Vogt a04c909a23 Don't add copied scale vector as new vector, but as new scale vector,
thus preventing crash after pushing X11 'Hardcopy' twice or
pushing 'quit' after 'Hardcopy'.
Scale vector was deleted two times, then crashimg ngsoice.
2020-08-20 15:41:15 +02:00
Holger Vogt f9f8174cb8 enable debug output, taking into account that there may be two threads
accessing fcn SetAnalyse()
2020-08-20 15:40:16 +02:00
Holger Vogt c68940712d prevent writing beyond end of buffer 2020-08-20 15:39:55 +02:00
Holger Vogt ebb1e953fe Streamline the compatibility flag generation 2020-08-20 15:39:19 +02:00
Holger Vogt f03a32287f If 'set ngbehavior=ki' in .spiceinit or flag 'kicad' on the plot line:
Add " around vector names containing character /
Numerical ivision in plot line then requires spaces around /
2020-08-20 15:39:00 +02:00
Holger Vogt c112279555 new compatibility handling with struct compat newcompat:
simplify the compatibility handling, better readability
make it easily extendable
add new flag 'ki' for KiCad compatibility
2020-08-20 15:38:43 +02:00
Holger Vogt 9defcae963 Do not compile in fcn main() when shared ngspice is made 2020-08-20 15:38:29 +02:00
Holger Vogt 0caeaccdd3 fix typo 2020-08-20 15:38:18 +02:00
Kevin Zheng 068a1fee55 Fix indentation 2020-08-20 15:30:08 +02:00
caand 6907d17985 add missing get_sysmem() when no info available 2020-08-20 15:29:49 +02:00
Holger Vogt a406af26d6 bug fix 'extern int sh_vecinit()', not void
See patch #96, thanks to Balazs Kovacs
2020-08-20 15:29:42 +02:00
Holger Vogt ce69e8d70c Don't send the empty line to create_circbyline(),
it is not used anymore and may cause a crash
2020-08-20 15:29:21 +02:00
Holger Vogt c8c58b9f5b Print out the netlist sent to ngspice by caller via 'circbyline'
or ngSpice_Circ
2020-08-20 15:29:12 +02:00
Holger Vogt 71e65b75b0 Syntax check: If the first character in a netlist
or .control line is one of =[]?()&%$§\"!:, then ngspice
replaces it by '*' and issues a warning.
'set strict_errorhandling' will force ngspice existing.
2020-08-20 15:28:59 +02:00
Holger Vogt fe28feae4e Cut out part of each vector of the current tran plot,
from times cut-tstart to cut-tstop and copy these
into a new tran plot. A new scale vector 'time' will be
generated as well. Vectors that are shorter than the
new scale vector will not be copied.
2020-08-20 15:28:48 +02:00
Holger Vogt 71338c3271 replace 'noiseless' only if it is an unconnected token 2020-08-20 15:28:32 +02:00
Vogt 3fe4de5b7f enable special characters for cpl model names and parameters 2020-08-20 15:28:07 +02:00
Holger Vogt ba1945d685 enable flags xdelta, ydelta for gnuplot command 2020-08-20 15:27:46 +02:00
Holger Vogt a429e3fee8 Make the pwl parameter r adjustable by .param
if r == -1, no repetition done.
if r == 0, repeat forever.
if r == xx, repeat from time xx to last time point given.
If r is omitted, like r == -1 no rpetition done.
2020-08-20 15:27:01 +02:00
Holger Vogt 2c0729e8de Print also the bool value 'off'.
Do not abort ngspice when vector LIST cannot be printed,
just skip printing and continue.
2020-08-20 15:26:38 +02:00
Holger Vogt 8f4e512826 ust tmpstr instead of second strstr() 2020-08-20 15:26:30 +02:00
Holger Vogt e6fdf5f7e2 Make PPerror message more verbose:
give hint to buggy line segment
2020-08-20 15:26:10 +02:00
Holger Vogt 064bd39a2f Unify batch mode and control mode raw file output:
Voltage is always named as v(nodename)
2020-08-20 15:25:50 +02:00
Holger Vogt 527abee022 Do not print "Units" on a graph, if unknown type
or settype notype is given.
2020-08-20 15:25:00 +02:00
Holger Vogt e2f98b71ed enable node names with special characters like '/' 2020-08-20 15:24:39 +02:00
Kevin Zheng 797f08893a When NGSPICE performs a transient simulation with initial conditions, it
prints out an "Initial Transient Solution" and plots the first timestep.

This is despite the fact that the first timestep is not meaningful when
initial conditions are applied. The first "real" output is available
only after the second transient timestep.

This patch suppresses "Initial Transient Solution" output and
plotting for the first timestep.
2020-08-20 15:24:28 +02:00
Holger Vogt da71726765 Do not print tansient initial conditions, if uic is selected.
This output at time 0 is 0 as well. Only the next time step
would be valid.
Do not save the time 0 values because they are 0.
2020-08-20 15:23:54 +02:00
Holger Vogt a459d37548 remove unused 2020-08-20 15:23:31 +02:00
Holger Vogt 6b0104849e Add statistics: load, subckt expansion, and parse times 2020-08-20 15:23:19 +02:00
Carsten Schoenert 5a0ed18907 Small fixup for misspelled words 2020-08-20 15:22:48 +02:00
holger 569bc228fd If code completetion is deselected, don't add keywords or key commands.
To prevent a crash in shared ngspice
2020-08-20 15:22:36 +02:00
holger 061e48253b definitely exclude command completion in shared ngspice 2020-08-20 15:22:26 +02:00
Holger Vogt 8c4394839d remove unused code that is now in CKTncDump() 2020-08-20 15:22:17 +02:00
Holger Vogt 18c532e74b improve comments 2020-08-20 15:22:07 +02:00
Holger Vogt 0cf6b89eb3 during removing the plot 'const', also delete the hash table 2020-08-20 15:21:49 +02:00
Holger Vogt f83bbb0d0f delete 'myvec' upon 'quit' 2020-08-20 15:21:29 +02:00
Holger Vogt 8be33bb361 clear all variables upon 'quit' 2020-08-20 15:21:12 +02:00
Holger Vogt 05f3d21c3e reset control structures (commands saved) upon 'quit' 2020-08-20 15:20:39 +02:00
Holger Vogt ce72667fcd shared lib version 32 2020-08-20 15:20:19 +02:00
Holger Vogt c522360a26 re-enable compiling with --enable-nobypass 2020-08-20 15:20:06 +02:00
Holger Vogt 8051a3c351 remove calling MIFdestroy() that is empty 2020-08-20 15:19:49 +02:00
Holger Vogt 75d14b73f4 add the icon also for the console build 2020-08-20 15:19:34 +02:00
Holger Vogt db28c65455 adding the ngspice icon to the MINGW executable 2020-08-20 15:19:21 +02:00
Holger Vogt ba7be26b95 If a g table source contains %, [, nor ] in its name,
replace it by _ in the a instance generated during parsing.
2020-08-20 15:18:40 +02:00
Holger Vogt 02fdcaff2d try first storing the temporary file in user directory,
only then in current directory
2020-05-13 22:14:52 +02:00
Holger Vogt 80ad645b49 prevent crash if Col==-1 2020-05-13 22:06:05 +02:00
Holger Vogt 8143fb67c2 comment, missing \n 2020-05-13 22:05:31 +02:00
Holger Vogt 6f03ac77af add missing library info 2020-05-08 00:00:12 +02:00
Holger Vogt 8d64983659 const parameter added 2020-05-06 11:12:54 +02:00
Holger Vogt 05bf86caaa safeguard against empty lines which may be sent to shared ngspice 2020-05-06 11:12:21 +02:00
Mamoru TASAKA fe207966d7 Fix compilation with gcc10 wrt multiple definitions issue
gcc10 now defaults to -fno-common (ref: https://gcc.gnu.org/gcc-10/changes.html ). Now with compiled with gcc10, multiple definitions are found which causes linker error as:

*  --with-tcl:
```
/usr/bin/ld: table/table3D/cfunc.o:/builddir/build/BUILD/ngspice-32/ngspice/tclspice/src/xspice/icm/../../../src/include/../xspice/icm/dlmain.h:8: multiple definition of `coreitf'; table/dlmain.o:/builddir/build/BUILD/ngspice-32/ngspice/tclspice/src/xspice/icm/dlmain.c:45: first defined here
```

*  --enable-oldapps
```
/bin/ld: frontend/com_history.o:(.data+0x4): multiple definition of `cp_maxhistlength'; ngsconvert.o:(.bss+0xa4): first defined here
collect2: error: ld returned 1 exit status
```

This commit fixes these issues.
2020-05-06 01:15:53 +09:00
Holger Vogt bbe81ca8f8 shared ngspice may transmit netlists with empty lines,
guard against crashing
2020-05-05 12:00:19 +02:00
Holger Vogt db91e19e36 enable making ngnutmeg, when --enable-oldapps is set 2020-05-05 11:59:23 +02:00
Holger Vogt 2b4394e34b add wincolornames.h 2020-05-03 23:06:17 +02:00
Holger Vogt dd5d1f1868 new copyright notice added 2020-05-03 11:47:22 +02:00
Holger Vogt 70be7508ce Prevent 'unused variable' compiler message 2020-05-03 00:49:53 +02:00
Holger Vogt 913635d252 remove unused function 2020-05-03 00:47:45 +02:00
Holger Vogt 13c23fd71b Prevent buf2 buffer overflow by limiting the the amount of bytes printed 2020-05-03 00:19:48 +02:00
Holger Vogt e0f5181bee Correct comment 2020-05-02 20:16:48 +02:00
Holger Vogt 8a1eff8e88 Add function 'remzerovec' to remove vectors of length 0
from current plot. Maybe of interest if you have option
savecurrents, write xx all, and ac generates length 0 vectors
2020-05-02 20:06:58 +02:00
Holger Vogt 3a00520071 Improve error message 2020-05-02 14:59:31 +02:00
Holger Vogt cbab726d69 use memcpy instead of strncpy to copy an exact amount of characters
remove unused function header
2020-05-01 18:49:45 +02:00
Holger Vogt 5e37955dc5 prevent buffer overrun by using snprintf 2020-05-01 18:48:18 +02:00
Holger Vogt 3c8a2d914d enable MINGW compilation by adding path information for config.h 2020-05-01 18:47:32 +02:00
Holger Vogt a32da32885 set parentheses for initializing struct 2020-05-01 18:46:44 +02:00
Holger Vogt 4bcc118406 exclude unused variable 2020-05-01 18:41:22 +02:00
Holger Vogt e2ddc5c06b exclude unused function 2020-05-01 18:40:56 +02:00
Holger Vogt 3c2bece87f prevent MINGW compiler warnings 2020-05-01 18:38:45 +02:00
Holger Vogt b0f99b900e Prevent crash if not enough nodes for standard MOS device 2020-04-28 18:59:18 +02:00
Holger Vogt 8ea51cc2f3 If command 'source' fails, don't move on with the script
(and od nonsens simulations), but stop ngspice and await
detaching (shared ngspice), or wait for user input.
2020-04-28 17:23:07 +02:00
Holger Vogt 2d4549ad96 There will be no default model paramaters without
the minimum model line:
J1 a b c JM1
.model JM1 njf
2020-04-28 17:18:57 +02:00
Holger Vogt 1a3738ccef Prevent warning by the macOS compiler 2020-04-27 10:58:06 +02:00
Holger Vogt a40f06de52 add #include <stdint.h> for SIZE_MAX 2020-04-27 10:27:20 +02:00
Holger Vogt e1a69e3fc5 controlled_exit only for WinGUI and shared ngspice 2020-04-27 10:27:00 +02:00
Jim Monte 0a8f700311 typo 2020-04-27 10:26:36 +02:00
Jim Monte 01574b91b5 remove unused 2020-04-27 10:26:22 +02:00
Jim Monte 7ead3fe552 rewrite load_opus(), add code model access to ngspice facilities,
add error message
2020-04-27 10:25:53 +02:00
Jim Monte 004b27bd92 remove path error, fix file extension 2020-04-27 10:25:35 +02:00
Jim Monte 654c9767d6 add fcn product_overflow() 2020-04-27 10:25:19 +02:00
Jim Monte a2b5d009db type cast 2020-04-27 10:25:00 +02:00
Jim Monte 9d714fe1bf #includes modified 2020-04-27 10:24:45 +02:00
Jim Monte 18d825e9c1 #includes modified 2020-04-27 10:24:22 +02:00
Jim Monte 381d4ec43d #includes modified 2020-04-27 10:23:59 +02:00
Jim Monte bd84e4be6c error messages 2020-04-27 10:23:33 +02:00
Jim Monte 7f82a4e036 FALLTHROUGH 2020-04-27 10:22:58 +02:00
Jim Monte 1d62ae2d97 type casts 2020-04-27 10:22:40 +02:00
Jim Monte ed8221afde Initialize pointer 2020-04-27 10:22:24 +02:00
Jim Monte 8d16e3e034 FALLTHROUGH 2020-04-27 10:21:59 +02:00
Jim Monte 41819a7226 FALLTHROUGH 2020-04-27 10:21:32 +02:00
Jim Monte 68e34f5a94 error messages, callback function moved 2020-04-27 10:21:14 +02:00
Jim Monte 2cac192814 initialize variables, add 'default:' 2020-04-27 10:20:48 +02:00
Holger Vogt f2e749e821 var redifinition removed 2020-04-27 10:20:10 +02:00
Jim Monte a10be03c75 FALLTHROUGH added 2020-04-27 10:19:32 +02:00
Jim Monte 6d3ab5945e variable redefinition removed 2020-04-27 10:19:13 +02:00
Jim Monte 82f832351b FALLTHROUGH added 2020-04-27 10:18:38 +02:00
Jim Monte ca2be5dd41 More efficient utf-8 to tchar conversion
remove 'graph' from SetColor
2020-04-27 10:18:10 +02:00
Jim Monte 3b0b944128 #include sequence, error message 2020-04-27 10:17:49 +02:00
Jim Monte b5ce669de5 fgets error 2020-04-27 10:17:22 +02:00
Jim Monte d96ea2490a EXITPOINT, memory leaks upon failure 2020-04-27 10:16:55 +02:00
Jim Monte b518d90509 EXITPOINT to delete malloced var in case of check failure 2020-04-27 10:16:37 +02:00
Jim Monte 9a83e6705c #include resource.h added, fcn parameter void 2020-04-27 10:16:19 +02:00
Jim Monte 3a72b8e562 const qualifier, graph removed from SetColor, 2020-04-27 10:16:02 +02:00
Jim Monte a3a8bc702d type modifier, parameter graph removed from SetColor() 2020-04-27 10:15:32 +02:00
Holger Vogt 5b98b1e723 typüe modifier 2020-04-27 10:15:01 +02:00
Jim Monte c8bf3a776c error message 2020-04-27 10:14:13 +02:00
Jim Monte 19318929c1 modifier const, error message if 'system' fails 2020-04-27 10:13:50 +02:00
Holger Vogt 9af5e20eaf formatting 2020-04-27 10:13:11 +02:00
Jim Monte 1e938f91b1 Error message if printing fails 2020-04-27 10:12:36 +02:00
Holger Vogt e3441044dd formatting 2020-04-27 10:12:19 +02:00
Holger Vogt 3ad93a50e8 Add EXITPOINTs, if reading inputs etc. fails 2020-04-27 10:09:30 +02:00
Holger Vogt d761ed9c79 comment on parse tree evaluation 2020-04-25 10:30:21 +02:00
Holger Vogt c520a9a4b9 if lt(a) comp mode is set, replace 'noiseless' by 'noisy=0' in resistors 2020-04-25 10:30:05 +02:00
Holger Vogt 74dbb1e843 Commit [88653f] Fixed assorted compiler warnings, memory leaks, etc.
branch beta_jdm by Jim Monte
2020-04-25 10:29:16 +02:00
Holger Vogt ca05aa318b Commit [88653f] Fixed assorted compiler warnings, memory leaks, etc.
branch beta_jdm by Jim Monte
2020-04-25 10:29:00 +02:00
Holger Vogt 779bd0e6e2 Commit [88653f] Fixed assorted compiler warnings, memory leaks, etc.
branch beta_jdm by Jim Monte
2020-04-25 10:28:49 +02:00
Holger Vogt a084f4f2b5 avoid type conversion warning size_t -> int 2020-04-25 10:28:34 +02:00
Holger Vogt d3866a6315 Spice_Notice is never NULL 2020-04-25 10:28:07 +02:00
Holger Vogt 0cd33d3fbb correct zeroing of allplots array 2020-04-25 10:27:49 +02:00
Holger Vogt fdbcdb5b7d apply const qualifier appropriately 2020-04-25 10:27:28 +02:00
Holger Vogt 814cadf36c remove const declaration to make ASRCsetup compatible with .DEVsetup 2020-04-25 10:25:42 +02:00
Holger Vogt 050cea146e correct zeroing of allnodes array 2020-04-25 10:24:25 +02:00
Holger Vogt 833751ab3f fix typo 2020-04-25 10:24:02 +02:00
Holger Vogt b3fdff7bc0 Spice_Build_Date is never NULL 2020-04-23 13:30:55 +02:00
Holger Vogt 1f8b179ef9 typo 2020-04-21 20:02:31 +02:00
Holger Vogt 572daed2ec Remove '.backanno' if LT campatibility mode is set 2020-04-21 20:02:18 +02:00
Holger Vogt b701a6347d cktislinear(): coupling of inductors is also linear 2020-04-21 20:02:05 +02:00
Holger Vogt bad2a4e467 Guard XSPICE plot switching against circuit being removed already 2020-04-21 20:01:49 +02:00
Holger Vogt ae2d207344 don't forget to free jobs->statistics[i] 2020-04-21 20:01:06 +02:00
Holger Vogt 3b5c272096 free mor data in jobs struct. Avoid memory leak upon 'quit' command. 2020-04-21 20:00:49 +02:00
Holger Vogt bc0cef9371 remove all data enlisted in the jobs structure 2020-04-21 20:00:35 +02:00
Holger Vogt bbb0007466 add function EVTswitch_plot() to switch the event data
according tothe (analog) plot. Called from plot_setcur()
in vetors.c, when command 'setplot xxx' is given.
2020-04-21 20:00:17 +02:00
Holger Vogt d72b4c415f get the plot name into the event job 2020-04-21 19:59:58 +02:00
Holger Vogt b356b00014 Fixes bugs 476, 486: Reset code model init flag,
required when any run is called a second time.
2020-04-21 19:59:43 +02:00
Holger Vogt c7e9c3884e pow(a,b) function derivative: special case also for a=const
with enhnaced efficiency
introduce TRACE and TRACE1 for debugging
2020-04-21 19:59:29 +02:00
Holger Vogt f5ebea5e9f use internally predefined pow() function 2020-04-21 19:59:11 +02:00
Holger Vogt a1a37d84a7 define is no longer needed with recent VS 2019 2020-04-21 19:58:55 +02:00
Holger Vogt d8085ed594 guard against ft_curckt->ci_ckt == NULL 2020-04-21 19:58:36 +02:00
Holger Vogt 11b22c8f46 showmod will no longer crash ngspice if run after some error 2020-04-21 19:58:07 +02:00
Holger Vogt 6ab1f8b2d6 add mfg to the .model tokens to be ignored during altermod 2020-04-21 19:57:47 +02:00
Holger Vogt 93a76d8e21 add a limit exp(arg) to the exp function. If arg is larger
than 14 (arbitrarily selected), continue with linear response.
2020-04-21 19:57:19 +02:00
Holger Vogt 87101cd26d no double parens 2020-04-21 19:56:55 +02:00
Holger Vogt 55f3776fc1 add a warning if file with modified parameters has not been found.
Then ignore the altermod command.
2020-04-21 19:56:27 +02:00
Holger Vogt 4c80a1ab7d fix a bug, use ciprefix instaed of cieq, cieq led to
always FALSE if statement
2020-04-21 19:55:42 +02:00
Holger Vogt a7e664a5c2 fix bug no. 484, correct TREALLOC usage 2020-04-21 19:55:04 +02:00
Holger Vogt 1c2dd967da During setup, ASRC (aka B source) uses ckt->CKTrhsOld[node->number]
for initial evaluation. .nodeset or .ic have never set CKTrhsOld,
so initalization for B source failed.
We still have to check why .nodeset and .ic are set two times,
first in CKTic(), then in CKTload()!
2020-04-21 19:54:41 +02:00
dwarning d735c60183 no size_t cast for GlobalMemoryStatusEx result 2020-04-21 19:52:05 +02:00
Holger Vogt 7889b5d540 re-add the icon to the top header of the ngspice GUI 2020-04-05 10:22:13 +02:00
Holger Vogt c4e23989f3 Don't us atexit(), but delete memory during 'quit' 2020-04-04 14:22:04 +02:00
Holger Vogt c2513af3e8 remove code that leads to crash if tran simulation is
interrupted and reset is sent (KiCAD)
2020-04-04 14:21:49 +02:00
Holger Vogt 1a9c1b8c24 remove unused code snippet 2020-04-04 14:21:33 +02:00
Holger Vogt e28cae42f1 enable both new gmin and dyngmin 2020-04-04 14:21:15 +02:00
Holger Vogt 673a14afdb more conservative op calculation:
start with new gmin, if this fails, fall back to dynamic gmin,
then source stepping
2020-04-04 14:20:45 +02:00
Holger Vogt 2f31bd5c2a avoid compiler warning 2020-04-04 14:20:16 +02:00
Holger Vogt 9edc436ef7 remove SIGINT handling which was not functional
add SIGSEGV handler which may be excluded by
set nosighandling
2020-04-04 14:19:55 +02:00
dwarning 8ca33bc8f5 VDMOS correct thermal diode contribution in reverse operation 2020-04-04 14:19:38 +02:00
dwarning b75791c87d VDMOS include body diode into power calculation 2020-04-04 14:19:21 +02:00
dwarning 897165d026 VDMOS change default value for Rthca 2020-04-04 14:19:03 +02:00
dwarning f19da3bd79 case correction for library name 2020-04-04 14:18:38 +02:00
Holger Vogt c076c932b4 enable MINGW linking to -lShlwapi,
which failed during making 32 bit shared lib
2020-04-04 14:17:54 +02:00
dwarning 3999dcc700 w and l must be exact altermod parameter for MOS binning 2020-04-04 14:16:47 +02:00
dwarning d3da0d5ebf VDMOS consider body diode thermal contribution for self-heatine effect 2020-04-04 14:16:19 +02:00
Holger Vogt c86cd740d6 fix a bug: re-enable reading vecs with length 1
Bug reported by LM
2020-04-04 14:15:55 +02:00
Holger Vogt ded0092ad6 If ngSpice_Command(NULL) is sent to shared ngspice,
the internal control structure memory is freed.
2020-04-04 14:15:38 +02:00
Holger Vogt d3fcf2f43f restrict removal of arg only to comma operator,
otherwise functions with a single variable may fail
2020-04-04 14:13:35 +02:00
Holger Vogt 4a3b193154 remove memory leak in function parser (bug. no 478),
second case
2020-04-04 14:13:01 +02:00
Holger Vogt 96976ee49d prevent non-English characters (e.g. Umlaute),
which gtkwave does not understand
2020-04-04 14:12:05 +02:00
Holger Vogt 3a6a445241 rcheck -> rcheckn in cmath1.c
delete alloced memory in case of check failure
2020-04-04 14:11:32 +02:00
Holger Vogt ba81e21197 rcheckn: rcheck plus freeing allocated memory 2020-04-04 14:11:07 +02:00
Holger Vogt 84ff135e5b syntax check for vdmos instances with 'thermal' flag 2020-04-04 14:10:07 +02:00
Holger Vogt 9e8e50cb57 Fix a bug raised by Sambeet in
[Ngspice-users] Problems with xspice limiter block:
Don't treat .model limit_comp limit(gain... as a function
if PSPICE compatibility is set.
2020-04-04 14:09:25 +02:00
dwarning edc5b5a4d4 VDMOS prevent fault if thermal switch is given but thermal nodes are not 2020-04-04 14:08:48 +02:00
dwarning 8c2bdd2f7a VDMOS include thermal components into convtest 2020-03-15 11:03:56 +01:00
dwarning 7b77a13d3d VDMOS return if NIintegrate fails 2020-03-15 11:03:36 +01:00
dwarning a850b2a070 VDMOS diode current op information 2020-03-15 11:00:34 +01:00
dwarning 793c82d384 VDMOS rise minimal diode resistance for better convergence 2020-03-15 11:00:23 +01:00
dwarning 5c5f43d122 VDMOS safe Temp init 2020-03-15 11:00:15 +01:00
dwarning 034f415621 VDMOS separate dc and thermal parts 2020-03-15 11:00:07 +01:00
dwarning 659ade6cf2 VDMOS few variable name changes 2020-03-15 10:59:59 +01:00
dwarning ce66266965 VDMOS remove drain resistance temperature derivation 2020-03-15 10:59:54 +01:00
dwarning ee7599b33f VDMOS few variable name changes 2020-03-15 10:59:49 +01:00
Holger Vogt 020c5578a1 remove unused code snippet 2020-03-15 10:59:27 +01:00
Holger Vogt 0490bc090b Allow 3-terminal MOS devices (e.g. VDMOS),
prevent crash upon user error
2020-03-15 10:59:05 +01:00
Holger Vogt 11cf6e709b third trial: get the token i(vss) as a whole in the lexer,
this prevents the parser from generating the spurious vector vss.
No need to do an extra translation i(vss) -> vss#branch.
2020-03-15 10:58:56 +01:00
Holger Vogt fbd17bc25a Imrove an error message: End-of-line delimiter $ is
not allowed when PSPICE compatibility is set. $ is
a standard character in PSPICE.
2020-03-15 10:58:30 +01:00
Holger Vogt 02cf88c119 correct the return values 2020-03-15 08:51:18 +01:00
dwarning ff07a21608 omit wanted fallthrough warnings with gcc 2020-03-15 08:51:18 +01:00
Holger Vogt d967e18632 compatibility to old vsnprintf() in MINGW is no longer needed.
Compiling with -D__USE_MINGW_ANSI_STDIO=1 enables C99 compatibility.
2020-03-15 08:51:18 +01:00
Holger Vogt 258c01d9bb Replace swprintf by MultiByteToWideChar to correctly
translate from utf-8 to wchar_t
2020-03-15 08:51:18 +01:00
Holger Vogt b81953fafd enable true gmin stepping
The old behavior, stepping diagmin, is re-obtained by adding flag
set 'dyngmin'
to .spiceinit or spinit
This flag may also be set within a .control section (e.g. to
compare results)
2020-03-15 08:51:18 +01:00
Holger Vogt 4bcb38abb5 clean up winmain.c 2020-03-15 08:51:18 +01:00
Holger Vogt 8d9d40d621 enable compiling wide char with MINGW 2020-03-15 08:51:18 +01:00
Holger Vogt 7a7f717574 make flag 'nolegend' localfor each plot 2020-03-15 08:51:17 +01:00
Holger Vogt 1398ee7aa0 set the proper preprocessor flag __MINGW32__ 2020-03-15 08:51:17 +01:00
Holger Vogt 249304a06f Instantiations of string and dstring functions as inline
This will remove the redundant-decls warning
2020-03-15 08:51:17 +01:00
Holger Vogt 0e4b736a5d remove outdated function GlobalMemoryStatus(&ms) 2020-03-15 08:51:17 +01:00
Holger Vogt 08a2f04e8d make code compile with MINGW (preliminary) 2020-03-15 08:51:17 +01:00
Holger Vogt bcfdc806a5 work around a bug in MINGW
Reported in
https://github.com/msys2/MINGW-packages/issues/6254
2020-03-15 08:51:17 +01:00
Holger Vogt 09d3fbe3ad remove false bracket in EXT_ASC 2020-03-15 08:51:17 +01:00
Holger Vogt 027b342a9c prevent crash if premature exit (without ckt) 2020-03-15 08:51:17 +01:00
Holger Vogt ded6bbbe34 make declaration inline 2020-03-15 08:51:16 +01:00
Holger Vogt cab9cbdddf re-enable making old apps with --enable-oldapps 2020-03-15 08:51:16 +01:00
Holger Vogt 2ff0e3b1b7 ngsconvert.c: add const to cp_enqvar 2020-03-15 08:51:16 +01:00
Holger Vogt 10c312856e re-enable making nutmeg 2020-03-15 08:51:16 +01:00
Holger Vogt 06239e567f plug a memory leak (in case of failing op for tran calculation) 2020-03-15 08:51:16 +01:00
Holger Vogt 2f23c58585 plug a memory leak (pll-xspice.cir) 2020-03-15 08:51:16 +01:00
Holger Vogt 14c0828a65 plug a memory leak (IXTH80N20L-IXTH48P20P-quasisat.sp) 2020-03-15 08:51:16 +01:00
dwarning 15b8e0ba7f add aliases for temp coeffs 2020-03-15 08:51:15 +01:00
dwarning 5e4c7a255e update .gitignore and make clean 2020-03-15 08:51:15 +01:00
dwarning e9abecc8c7 change vdmos flag to thermal, not to confuse with b4soi 2020-03-15 08:51:15 +01:00
dwarning 3686dbfb78 filter only mos instances with thermal switch 2020-03-15 08:51:15 +01:00
Holger Vogt f24ed96cbd plug some memory leaks 2020-03-15 08:51:15 +01:00
dwarning 791f18053f change vdmos flag to thermal, not to confuse with b4soi 2020-03-15 08:51:15 +01:00
Jim Monte b9d45349d5 Added featurest to com_let to allow default low and high indices and to allow the last dimension to default to its full range 2020-03-15 08:51:15 +01:00
dwarning 59bb80f3d3 free errMsg only if available 2020-03-15 08:51:14 +01:00
dwarning f632f79056 use errMsg under ngdebug condition and prevent memory leak 2020-03-15 08:51:14 +01:00
Holger Vogt eab10ee065 prevent double closing of file (Linux does not NULL fp during fclose) 2020-03-15 08:51:14 +01:00
Holger Vogt e53632c368 When plotting arrays of curves, plot lines only in the direction
of (in absolute terms) growing x values.
Example: MOS output characteristics.
In the rare case of plotting versus varying x directions
(e.g. example memristor.sp), one has to add the flag
'retraceplot' to the plot command.
2020-03-15 08:51:14 +01:00
Holger Vogt 14b154f5f3 Copy the scale vector as well and attach it to the data vector.
Remove it again when the graph is destroyed.
2020-03-15 08:51:14 +01:00
Holger Vogt f518766c66 add a slight offset between y axis labels and grid 2020-03-15 08:51:14 +01:00
Holger Vogt 1919cf5c94 replace variable 'gridwidth' by 'xgridwidth' 2020-03-15 08:51:13 +01:00
Holger Vogt c2cf4d7eda required for reliable re-plotting, however still has the
return line bug no #472
2020-03-15 08:51:13 +01:00
Holger Vogt 57e647c704 enable "null allowed" for reset input 2020-03-15 08:51:13 +01:00
Holger Vogt acbec3ae81 Preliminary 'fix' to a plotting bug (visible return line in an array of curves):
Partially undo code added in commit 10415875f4/
This will need further discussion or updates
2020-03-15 08:51:13 +01:00
Holger Vogt 71ad2903ff plug a memory leak in inpcom.c vdmos code 2020-03-15 08:51:13 +01:00
Holger Vogt 4ddcff55e7 add const declaration to newfopen 2020-03-15 08:51:13 +01:00
Holger Vogt c4045d371d single space indent in analysis window 2020-03-15 08:51:13 +01:00
Holger Vogt 8ff4c7cd3b just another remains of quote 2020-03-15 08:51:12 +01:00
Holger Vogt 7f085144a9 remove all the remains of quote() and strip() that had been
used to modify the eigths bit of a character or string.
The functions had been switched off some time ago.
We now need all bits of a char for extended ascii or utf8
2020-03-15 08:51:12 +01:00
Holger Vogt 8d986e50cc remove the remains of the old xgraph program
that has not been supported for many years
2020-03-15 08:51:12 +01:00
Holger Vogt 32722ecc57 some missing brackets, typos 2020-03-15 08:51:12 +01:00
Holger Vogt 93a408598a switch to colorarray in graph to string all color data,
one set per each graph.
If we are zooming or selecting a cutout, copy the
source graph's colors to the new graph. Transfer the
old graphs id to the new graph via graph->graphid.
2020-03-15 08:51:12 +01:00
Vogt 728ddae41e Set the color tables and linewidths personal for each graph,
added to strucht graph
Use only these data for plotting.
If zooming a plot windows, set as an extra parameter the graph id
of the 'mother graph'. Copy its color and line data to the new graph.
This is done by an extra parameter sgraphid to the internal plot
command that is issued in fcn PlotWindowProc().
Thus zooming will keep the background, text/line and graph colors.
Function setcolor() will always look into the colorarray of the
current graph.
2020-03-15 08:51:12 +01:00
Holger Vogt a7aaac854f enable color and font selection for X11:
Add graphics context gridgc for plotting the grids.
Enable rgbd:, input of color by RGB 0 ... 255
If no color1 (text/grid) is given,
    select black or white according to backgrund color.
Error message, but no crash if font cannot be selected.
Enable separate linewidth selection for grid and graph.
2020-03-15 08:51:11 +01:00
Holger Vogt 800cd05f3d new variable nolegend: with 'set nolegend' plotting of
the legend is suppressed.
2020-03-15 08:51:11 +01:00
Holger Vogt fed7ef378f add variable ticchar, allow an arbitrary character as ticmark 2020-03-15 08:51:11 +01:00
Holger Vogt 8639144093 cp_getvar: force a limit to a string entered
Issue a warning, truncate the string
2020-03-15 08:51:11 +01:00
Holger Vogt 1fda03382e color input for text/grids (color1), background (color0)
and graphs (color2-22) on Windows via
set color2=red
set color2=rgb:ff/0/0
set color2=rgbd:255,0,0
several examples given in the example files
2020-03-15 08:51:11 +01:00
Holger Vogt 86917e3d36 enclose in WinGUI #ifdef 2020-03-15 08:51:11 +01:00
Holger Vogt 6094769fda Restore original 'green', slight update on
auto color selection vs. background
2020-03-15 08:51:11 +01:00
Holger Vogt cb38e7a367 enable using setting colors by colornn with 0<=nn<=22
The name list of colors is given by
https://www.codeproject.com/Articles/1276/Naming-Common-Colors
2020-03-15 08:51:10 +01:00
Holger Vogt 54778527c4 list of colors used 2020-03-15 08:51:10 +01:00
Holger Vogt 167bd9b433 enable color selection, if compiled with MINGW 2020-03-15 08:51:10 +01:00
Holger Vogt 3701ca0364 add color selection to WinGui plots 2020-03-15 08:51:10 +01:00
Holger Vogt ef95ff7edc generate variable oscompiled
test for variable
2020-03-15 08:51:10 +01:00
Holger Vogt 38bb89663d replace old_x11 by HAVE_LIBXFT defined in configure 2020-03-15 08:51:09 +01:00
Holger Vogt 921058cb39 fix remaining bugs when EXT_ASC is defined 2020-03-15 08:51:09 +01:00
Holger Vogt 6e0b631492 Regain static behaviour, keep removing compiler warning 2020-03-15 08:51:09 +01:00
Holger Vogt 3a8e3d130c update and unify font handling 2020-03-15 08:51:08 +01:00
Holger Vogt bef9c70e71 Prepare font selection and rotation only once per graph
in func X11_DefineXft().
Only 0 and 90 degree are supported.
2020-03-15 08:51:08 +01:00
Holger Vogt 8312a8ade2 Select suitable default text color 2020-03-15 08:51:08 +01:00
Holger Vogt 3eb04b2fdc improve on memory leaks
(not yet completely satisfying)
2020-03-15 08:51:08 +01:00
Holger Vogt 8f42eae6ab add empty line after error message 2020-03-15 08:51:08 +01:00
Holger Vogt a23748cf8c Don't call DestroyGraph if graf id is 0 2020-03-15 08:51:08 +01:00
Holger Vogt 673069f442 add to the source window after 'source' command 2020-03-15 08:51:08 +01:00
Holger Vogt fd96983099 Reset DevSwitch before returning 2020-03-15 08:51:08 +01:00
Holger Vogt e7022f7fae utf-8 string length determined by strlen 2020-03-15 08:51:08 +01:00
Holger Vogt ac1c8c4a96 return NULL upon NULL input 2020-03-15 08:51:07 +01:00
Holger Vogt 93be5bab0c increase buffer size, send text to string window,
retrieve the correct number of byte after utf-8 conversion.

Answering to a promt (e.g. after command 'hardcopy') does not
yet do.
2020-03-15 08:51:07 +01:00
Holger Vogt 510b1865b4 Re-sort wide char variable definitions.
add utf-8 ... utf-16 conversion.
Strings in history buffer shall remain utf-8.
History buffering is not yet working.
2020-03-15 08:51:07 +01:00
Holger Vogt 7a41921035 prevent crash if 'hardcopy' is given without parameters 2020-03-15 08:51:07 +01:00
Holger Vogt 6edb0eea41 re-organize PS color selection
Improve settings for PS image
Improve error messages
2020-03-15 08:51:07 +01:00
Holger Vogt 18f1e896f8 allow independent linewidth and gridwidth settings from within the .control section 2020-03-15 08:51:07 +01:00
Holger Vogt 7c0b72c387 prevent compiler warnings
enable short GUI interaction from within spfactor.c
2020-03-15 08:51:06 +01:00
Holger Vogt bd7b35541d Lengthy op calculations make the Win GUI unresposive.
A macro adds a short travel to the GUI fro0m within
the matrix ordering and factoring. Time overhead
during op is less than 0.5%.
2020-03-15 08:51:06 +01:00
Holger Vogt 3d009fef22 Variables xbrushwidth and gridwidth (to be set e.g. in
.spiceinit) allow setting separately the linewidths of the
graph (xbrushwidth) and the grid (gridwidth).
2020-03-15 08:51:06 +01:00
Holger Vogt c9edc6fcb3 Add function returning the true string length in pixels.
May be called from outside of x11.c.
2020-03-15 08:51:06 +01:00
Holger Vogt 10f0eea93e add gridwidth, xbrushwidth to postscript output 2020-03-15 08:51:06 +01:00
Holger Vogt ca7c77315a add missing üarameter to DevDrawLine for X11 and HPGL 2020-03-15 08:51:06 +01:00
Holger Vogt 8751092812 Enable separate linewidths for grids and graphs.
New variable gridwidth overrides xbrushwidth for graphs.
Fcn DevDrawLine() with boolean flag if grid is plotted.
Postscript, Gnuplot and X11 not (yet) supported.
2020-03-15 08:51:05 +01:00
Holger Vogt 7690b64571 add missing declaration of old_x11 2020-03-15 08:51:05 +01:00
h_vogt 7c3a305d43 add wide char for string i/o under Windows
add utf-8 systax check
2020-03-15 08:51:05 +01:00
h_vogt 22f4e8f82d return extended ascii as alpha 2020-03-15 08:51:05 +01:00
Holger Vogt 85142709fc For UNICODE use char in comparison to ' '
only as unsigned char
2020-03-15 08:51:05 +01:00
h_vogt 531c229b0e Add library xft for allowing text rotation.
Setting variabe 'old_x11' will retain previous behaviour.
2020-03-15 08:51:05 +01:00
h_vogt 0cdea87cb5 Add and ignore angle in fcn for text out 2020-03-15 08:51:05 +01:00
Holger Vogt 0dfe8a22ad add angle to allow text rotation 2020-03-15 08:51:04 +01:00
h_vogt 697facdc30 #define fopen newfopen
and header for MINGW and MS VS
2020-03-15 08:51:04 +01:00
h_vogt 9f272ea8f6 function newfopen to replace fopen
by reading wide char strings
2020-03-15 08:51:04 +01:00
Holger Vogt 59adfc1d68 add extended ascii and its selection
converter UTF-8 to ISO-8859-1/ISO-8859-15
2020-03-15 08:51:04 +01:00
Holger Vogt c4f641dad6 remove bracket left over from recent manual merge conflict resolution 2020-03-15 08:51:04 +01:00
h_vogt dbd0a5743a Enable utf-8 and UNICODE for string handling.
preprocessor flag EXT_ASC resets handling to old behaviour.
Add utf-16 wide char to all Windows string i/o.
Add translation between utf-8 and utf-16.
Add angle to fcn DevDrawText.
2020-03-15 08:51:04 +01:00
Holger Vogt 28c0fbf397 Zero fp, this fixes bug no #475 2020-03-15 08:51:04 +01:00
Jim Monte 93233fde2c Made descriptions of invalid interpolation cases more descriptive and fixed a memory leak 2020-03-15 08:51:04 +01:00
dwarning 740df722c7 partially revert commit b4bbcb149 for spec analysis functionality 2020-03-15 08:51:04 +01:00
dwarning 86d7963f32 more meaningful warning if vector can't interpolate 2020-03-15 08:51:03 +01:00
Holger Vogt 0ad7acadec remove unreachable code warning, add const 2020-03-15 08:51:03 +01:00
Holger Vogt c77da1870d Fixed compiler warnings related to const, unreachable code, and an empty translation unit. 2020-03-15 08:51:03 +01:00
Jim Monte 7084274344 Fixed incorrect type of variable ch_cur. It was from const char * but should have been const char. 2020-03-15 08:51:03 +01:00
Holger Vogt 5bd45c0451 make path to dstring.c independent from build directory 2020-03-15 08:51:03 +01:00
Holger Vogt 5bc9a320eb Revert "correct the path to dstring.c"
This reverts commit 28002be150.
2020-03-15 08:51:03 +01:00
Holger Vogt 89ea46e39a prevent false freeing of vector 2020-03-15 08:51:03 +01:00
dwarning 129b219ed2 correct the path to dstring.c 2020-03-15 08:51:03 +01:00
dwarning 4f75d56011 no wrapper cp_globmatch needed 2020-03-15 08:51:03 +01:00
Vogt e628fd8977 just use strcmp instead of wrapper function 2020-03-15 08:51:02 +01:00
Holger Vogt 5e76758e57 update to cmpp by J. Monte 2020-03-15 08:51:02 +01:00
Jim Monte 955dda749d Jim Monte's update to cmpp 2020-03-15 08:51:02 +01:00
Holger Vogt 375a92d788 Fix of buffer overrun in interpolation at endpoint of interval.
Made cfunc.mod for tables more modular.
Prevented buffer overrun when building file name.
Added error checking for allocation failures in many locations.
Made binary search for interpolation more efficient.
2020-03-15 08:51:02 +01:00
Jim Monte 92065ea41b fixed singluar/plural agreement in an error message generated by the let command 2020-03-15 08:51:02 +01:00
Jim Monte a53cd3a3e9 fixed path created by ngdirname in Windows. Also added const to parameters whose arguments do not change and fixed some potential buffer overruns. 2020-03-15 08:51:02 +01:00
Jim Monte 2d9110bf65 Add const to some parameters, made function static 2020-03-15 08:51:02 +01:00
Jim Monte 1867f5b727 Fix of buffer overrun in interpolation at endpoint of interval. Made cfunc.mod for tables more modular. Prevented buffer overrun when building file name. Added error checking for allocation failures in many locations. Made binary search for interpolation more efficient. 2020-03-15 08:51:02 +01:00
Jim Monte b4757f934b Added support for DSTRING in code modules with makefile builds 2020-03-15 08:51:02 +01:00
Jim Monte 190c7fb75c Clarified error message 2020-03-15 08:51:01 +01:00
Jim Monte ac49ccaf58 Fixed compile warning about signed/unsigned comparison. 2020-03-15 08:51:01 +01:00
Jim Monte d254b6c97e Gave structure defining Mif_Complex_t a name so that it could be forward referenced. 2020-03-15 08:51:01 +01:00
Jim Monte bfe660e57b Formatting and added comments 2020-03-15 08:51:01 +01:00
Jim Monte 082f36e794 Formatting 2020-03-15 08:51:01 +01:00
Jim Monte 2f8b7ab062 Minor fix to end-of-index processing of let command 2020-03-15 08:51:01 +01:00
Jim Monte b967caaabb File path built more efficiently and now allows an arbitrary length. Prevented strdup() of NULL if path too long. Similarly prevented fopen with a NULL file name. Added function to determine Windows absolute paths properly. Fixed numerous issues that were caused by including Windows system header due to conflicting names. Generally a CMPP_ prefix was added as a "namespace". Also used the standard C bool type instead of defining one. 2020-03-15 08:51:01 +01:00
Jim Monte 0c741bbde2 Rework of let command. Added support for slices as described in feature #69 and fixed several crashes and issues described in bugs #443, #444, #446, #447, and #448. 2020-03-15 08:51:01 +01:00
Jim Monte 7990a82f02 Formatting and comments added 2020-03-15 08:51:01 +01:00
Jim Monte 3a2a05f7b0 Removed unnecessary comparisons when lowercasing a string. 2020-03-15 08:51:01 +01:00
Jim Monte b767df3a7e Modified calculation to determine when memory is nearly exhausted. Also changed prototypes of memory reporting functions to match their definitions. 2020-03-15 08:51:00 +01:00
dwarning 93317c87a9 simplify beta derivation 2020-03-15 08:51:00 +01:00
dwarning e966ce5054 alternative temperature model for extrinsic resistances and subthreshold range 2020-03-15 08:51:00 +01:00
Holger Vogt ec1d655289 In VDMOS device, if instance parameter tnodeout is set,
check for exactly five nodes
2020-03-15 08:51:00 +01:00
Holger Vogt 643b0edc26 enable local or global statistical values for B source
pre_set statlocal
(or set statlocal in spinit or .spiceinit) will be setting a
different random number for evaluating the value of fcn agauss
etc. in each B line, e.g. if this line appears in a subcircuit,
all expanded B lines will have different values. If not set,
each B line will use the same random number for agauss evaluation.
2020-03-15 08:51:00 +01:00
Holger Vogt 1353a5de77 allow again single letter vector names 2020-03-15 08:51:00 +01:00
dwarning 0fb1c6a000 prevent program crash by misusing thermal model 2020-03-15 08:50:59 +01:00
dwarning 7d17b8f082 vdmos have no Cgb 2020-03-15 08:50:59 +01:00
dwarning 0362d63094 update vdmos with self-heating network and tj and tcase terminal 2020-03-15 08:50:59 +01:00
Holger Vogt f585807085 re-enable V source with parameter EXTERNAL
Fix bug #463
2020-03-15 08:50:59 +01:00
Holger Vogt b699c7fad8 add the PSPICE vswitch S_ST variant,
which resolves to the classical ngspice sw switch
2020-03-15 08:50:59 +01:00
Holger Vogt 9d53780992 allow vec_get to verify vectors if their names are quoted by "" 2020-03-15 08:50:59 +01:00
Holger Vogt 987cc0aa86 another preliminary patch for macOS 2020-03-15 08:50:58 +01:00
Holger Vogt 7680be7312 stub to enable compilation on macOS,
memory info for macOS is currently not available.
2020-03-15 08:50:58 +01:00
dwarning fa8a77343b format line with LF 2020-03-15 08:50:58 +01:00
Holger Vogt b7012065ae remove compiler warning by setting variables to 0 2020-03-15 08:50:58 +01:00
Holger Vogt a9f83f3445 remove two small memory leaks 2020-03-15 08:50:58 +01:00
Holger Vogt 58901fe898 remove spurious error message 2020-03-15 08:50:58 +01:00
Holger Vogt 7ae76f0f51 update to the .measure and meas error messages:
remove crash uipon buggy inputs
add buggy example input file
unify fcn returns: 0 is OK, 1 is bad
Improve on error message for bad syntax
2020-03-15 08:50:58 +01:00
Holger Vogt e9603dcdeb enable inp_dodeck() to return an error state,
if error, inp_spsource() will return error as well
2020-03-15 08:50:57 +01:00
Holger Vogt 651ba72344 return immediately if ckt is NULL 2020-03-15 08:50:57 +01:00
Holger Vogt 51f80abe00 if inp_spsource() returns with an error code, emit a message 2020-03-15 08:50:57 +01:00
Holger Vogt f9307d0beb enable returning inp_spsource() with an error code 2020-03-15 08:50:57 +01:00
Holger Vogt 0c74820821 enable PSPICE compatible ~(~v(9)&v(8)) 2020-03-15 08:50:57 +01:00
Holger Vogt 46adeb5eaa plug memory leaks for the 'plot' command 2020-03-15 08:50:57 +01:00
Holger Vogt 573b270b6d Give a better, modern name for this type of display 2020-03-15 08:50:57 +01:00
Holger Vogt b1be546939 User expects an empty input line, not a text that has to be deleted befopre writing 2020-03-15 08:50:57 +01:00
Holger Vogt 966b69090d use only TMALLOC and TREALLOC for memory allocation 2020-03-15 08:50:56 +01:00
Holger Vogt 53613f4e69 deprecated gets() -> fgets() 2020-03-15 08:50:56 +01:00
Holger Vogt 85e0a08cff error message even if pNAME is not defined 2020-03-15 08:50:56 +01:00
Holger Vogt 39ce1f77d2 patch provided by Vito (see
https://sourceforge.net/p/ngspice/discussion/133842/thread/31aa24261e/ )
2020-03-15 08:50:56 +01:00
Holger Vogt 09f829b863 Further improvement of error message im 'meas' 2020-03-15 08:50:56 +01:00
Holger Vogt 94d5ad312e Improve error messages for the 'meas' command. 2020-03-15 08:50:56 +01:00
Jim Monte d4088c896a Restored command arguments accidentally deleted. 2020-03-15 08:50:56 +01:00
Jim Monte 4b145ddf5e Added #include <stdio.h> to define FILE. 2020-03-15 08:50:55 +01:00
Jim Monte 06ebf80983 Modified search for init file so that it searches both <HOME> and <USERPROFILE> if both are defined. 2020-03-15 08:50:55 +01:00
Jim Monte 2068c4fffb Added -D/--define option to define a variable from the command line. 2020-03-15 08:50:55 +01:00
Jim Monte 372fe2a5e7 Opened binary files for writing using "wb" in all cases 2020-03-15 08:50:55 +01:00
Jim Monte 21f3eb74b8 Added basic help messages in addtion to reference to web pages 2020-03-15 08:50:55 +01:00
Jim Monte de4788cfe5 Added conjugate function conj(). 2020-03-15 08:50:55 +01:00
Jim Monte a7946474fa Additional freeing of device-dependent information for bug #419 and related bugs. 2020-03-15 08:50:55 +01:00
Jim Monte d3343b1791 Removed redundant macro 2020-03-15 08:50:55 +01:00
Jim Monte 0cf53a34b2 Fixed resolution of ~ to home directory. (Bug #405) Also fixed potential buffer overruns in glob expansion 2020-03-15 08:50:54 +01:00
Jim Monte ce5410d33f Fixed checking for redirection tokens 2020-03-15 08:50:54 +01:00
Jim Monte cec6a8edd3 Fixed access of freed memory when reporting an error. 2020-03-15 08:50:54 +01:00
Jim Monte 8141a634d7 Fixed several issues related to plotting and vector lifetimes and made ownership of vectors clearer. The issues in bugs 419, 423, 425, and 426 were related and were addressed here. 2020-03-15 08:50:54 +01:00
Jim Monte 57ffe1769f Fixed "phantom vector" issue with plots and crash when plots are resized. See bugs #419 and #423 for details. Also several parameters were changed from char * to const char * in the plotting functions. 2020-03-15 08:50:54 +01:00
Jim Monte 9d2c105942 Fixed bug with 255 card deck entered using circbyline 2020-03-15 08:50:54 +01:00
Jim Monte e1ec2a21dd Added error recovery when invalid foreach statement found 2020-03-15 08:50:54 +01:00
Jim Monte 690b7730fe Fixed memory leak when empty word found. 2020-03-15 08:50:54 +01:00
Jim Monte b120e7bd21 Fixed reporting of system information in Windows. 2020-03-15 08:50:53 +01:00
Jim Monte 271afc87cf Made UI more consistent when comments are entered. 2020-03-15 08:50:53 +01:00
Jim Monte 2df00ad8c9 Cleaned up defintions of macro constants 2020-03-15 08:50:53 +01:00
Jim Monte 2f3b9d0f2d Used Win32 function PathIsRelativeA() to identify an absolute path instead of checking the string since the system function may handle more cases (network shares, etc.). Also reviewed formatting that was done on inpcom.c by a code beautifier in an earlier commit. Nearly all of it was an improvement, but a few cases were reverted back to closer to the original form. One particular instance was comments where a list of steps was given one per line. 2020-03-15 08:50:53 +01:00
Jim Monte 70600258bb Made checking for single-character words faster. The testing now also uses less memory and works for 8-bit characters, which would have previously caused buffer overruns. It is also more modular and has additional documentation. 2020-03-15 08:50:53 +01:00
Jim Monte 92725594f3 Used the new capabilities of ft_numparse() to allow the creation of variables and list items of type CP_NUM 2020-03-15 08:50:53 +01:00
Jim Monte ad970ae4e7 Made cp_enqvar() mode modular by adding a separate function to handle the case of a vector. Lists are more efficiently handled by moving common comparisons out of the loop over elements. The first argument of cp_enqvar() is changed from char * to const char * since the name of the variable being found is not altered by the function. 2020-03-15 08:50:53 +01:00
Jim Monte 72801b1ab1 Fixed buffer resizing, made string utilities more modular, and added several new utilities, some which do not require a null termination, potentially avoiding the need to copy a string. Also some substring utilities using the Rabin-Karp algorithm were added. 2020-03-15 08:50:52 +01:00
Jim Monte f7951af50b Fixed locating vectors like V(node) 2020-03-15 08:50:52 +01:00
Jim Monte 81fa829b7d Fixed potential infinite loop (until memory is exhausted) and added several utility functions for processing strings. 2020-03-15 08:50:52 +01:00
Jim Monte 068df274bf Made ft_numparse() thread-safe (no internal static variables) and prepared to support ngspice variable type CP_NUM. 2020-03-15 08:50:52 +01:00
Holger Vogt 89411e2fe4 Fixed merge conflict. Also made readifile() static and removed an unnecessary string duplication there. 2020-03-15 08:50:52 +01:00
Jim Monte 873e4a8db0 Added no_histsubst option and related fixes 2020-03-15 08:50:52 +01:00
Jim Monte 4bd4a6e9be Fixed usage of new dstring functions. Also added const to some parameters that did not change. 2020-03-15 08:50:52 +01:00
Jim Monte 75d233c40d If the prompt variable was set to a value that is not a string, memory that has been freed would be used when displaying the command prompt. This could lead to strange prompts and possible access violations, although it may appear to work OK if the freed memory has not been modified. This issue is fixed. Some useless duplications of strings when defining variables are also removed. 2020-03-15 08:50:51 +01:00
Jim Monte b677ae1611 The check for the scale vector was not comparing the name in a case-insensitive manner, so unlet Yes would delete the default yes scale vector, for example. That issue was corrected. The code was also made more modular and descriptive regarding the check for the scale vector. Also, the warning now prints the scale vector as it is stored to make clear that vector names are not case sensitive. 2020-03-15 08:50:51 +01:00
Jim Monte b7d8c61cd9 Cleaned up code to locate a vector in a plot by name. The code was made more modular, and special names like allv are handled more efficiently 2020-03-15 08:50:51 +01:00
Jim Monte c7b95587de Fixed compiler warnings regarding type of argument passed 2020-03-15 08:50:51 +01:00
Jim Monte c368f32039 Added a macro R_MIN to define the minimum resistance value aS 0.01 and replaced the numeric value with the macro in the sourc code. 2020-03-15 08:50:51 +01:00
Jim Monte 89efe5aeae Dynamic string (dstring) rework 2020-03-15 08:50:51 +01:00
Holger Vogt 9452121954 Remove memory leaks in cmpp.
Two small ones (a few bytes) are still there, difficult to assess.
2020-03-15 08:50:51 +01:00
Holger Vogt 29b2799c22 plug a memory leak by CALLBACK,
deleting locally malloced memory
2020-03-15 08:50:51 +01:00
Holger Vogt e89a92f944 prevent referencing a NULL pointer
free the loc pointer and NULL its origin STATIC_VAR (locdata)
(that translates to mif_private->inst_var[0]->element[0].pvalue)
2020-03-15 08:50:51 +01:00
Holger Vogt 707936efe3 enable setting a variable from an input file
using the existing i/o redirection
2020-03-15 08:50:50 +01:00
Holger Vogt 05f02f3662 On Linux: allow calling gnuplot without invoking a terminal.
Reported by Terry Pilling
2020-03-15 08:50:50 +01:00
Holger Vogt 9238c0f9d4 prevent crash if 0 length vector is assessed 2019-11-30 11:43:29 +01:00
Holger Vogt ac65968595 allow 'dc TEMP 10 20 1' as well as 'dc temp 10 20 1' 2019-11-30 11:43:12 +01:00
Holger Vogt ee5f4cfc29 Replace B source pwl by XSPICE PWL Controlled Source
that has smooth rounded and differentiable corners.
This is used in the replacem,ent operation evaluating
Exxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
2019-11-30 11:42:00 +01:00
Holger Vogt b76fbf99fe Replace B source pwl by XSPICE PWL Controlled Source
that has smooth rounded and differentiable corners.
Microchip or On-Semi OpAmps that needed gmin and source
stepping for operating point calculation  now converge
without, others like MCP6001 that generally refused
to converge are o.k. now. Reason is the heavily used
Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
from the OpAmp models.
2019-11-30 11:39:09 +01:00
Holger Vogt 917ea99758 enable system info for Windows 10,
exclude function not existing in older SDKs
2019-11-30 11:38:53 +01:00
Holger Vogt 6598225ec0 Replace deprecated GetVersionExA by version helper functions
Add new macro _MSC_PLATFORM_TOOLSET to check for toolset
2019-11-30 11:38:25 +01:00
Holger Vogt de9dfad0c9 remove VS 'assignment within conditional expression' warning 2019-11-30 11:38:11 +01:00
Holger Vogt 13a6e042f6 remove 'unreachable code' warning 2019-11-30 11:37:49 +01:00
Holger Vogt dc1ee5f11f remove 'potentially uninitialized' warning 2019-11-30 11:37:02 +01:00
Holger Vogt ceea40e012 Revert "enable compiling with readline for macOS"
This reverts commit 11df2b7719.
2019-11-30 11:36:09 +01:00
Holger Vogt 71917744a8 remove superfluous double parentheses 2019-11-30 11:35:56 +01:00
Holger Vogt 7983b0d16a macOS: Do not use deprecated finite, but isfinite 2019-11-30 11:35:44 +01:00
Holger Vogt fa58223204 update for Linux 2019-11-30 11:35:24 +01:00
Holger Vogt 5542729694 fix for macOS 2019-11-30 11:35:12 +01:00
Holger Vogt 67f6fda216 Complete redesign of memory monitoring in resource.c.
Acquiring memory size is done by four functions
getMemorySize, getAvailableMemorySize, getPeakRSS,
and getCurrentRSS.
Time data are still obtained without code modifications.
2019-11-30 11:34:58 +01:00
Holger Vogt 22b111d9c0 tabs to spaces 2019-11-30 11:34:48 +01:00
Holger Vogt 6cd2e245c4 Add resource info on memory used and available for macOS 2019-11-30 11:34:35 +01:00
Holger Vogt 42e99ec66c safeguard against crash if instance lines are incomplete 2019-11-30 11:33:04 +01:00
Holger Vogt 33985ae1e5 Make DEVNUM robust against double initialization. 2019-10-05 13:17:38 +02:00
Holger Vogt 2f396187fa Better indentation of message 2019-10-05 13:17:30 +02:00
Holger Vogt 0575481206 Better info in case of error
Initited by a patch from Bohdan Tkhir
2019-10-05 13:17:22 +02:00
Holger Vogt eb667118cf If there are no controls, just skip creating the controls thread. 2019-10-05 13:17:11 +02:00
Holger Vogt a4402f1da7 prevent potential false reads if 'controlswait' is set. 2019-10-05 13:16:40 +02:00
Holger Vogt 03c5870034 in ps compatibility mode: translate t_measured to tnom 2019-10-05 13:16:25 +02:00
Holger Vogt 552d587deb readability 2019-09-28 16:21:44 +02:00
Holger Vogt 976c949c86 avoid false warnings of model not found 2019-09-28 16:21:36 +02:00
Holger Vogt 8276ef7b58 correct typos found by linthian 2019-09-28 12:24:09 +02:00
Holger Vogt 840d00c4ca no actions if controls thread tid2 is not set 2019-09-28 12:01:09 +02:00
Mamoru TASAKA fa0fc7f131 tclspice: avoid get_plot function type conflict
re-name get_plot as get_plot_by_index
2019-09-28 12:01:04 +02:00
Holger Vogt 9e427a1a1e Better thread handling
Embed thread tid2 into tid1
Avoid spurious thread collisions
2019-09-28 12:00:57 +02:00
Holger Vogt 1085512be5 Do not start a spurious thread with empty controls 2019-09-28 12:00:48 +02:00
Holger Vogt 712014b6db Does crash with recent Linux openSUSE Tumbleweed
Not required by shared ngspice
2019-09-28 12:00:31 +02:00
Holger Vogt cf752bf730 Revert "encapsulate fcn calls to cp_evloop into a mutex"
This reverts commit 2426a037db.
2019-09-28 12:00:23 +02:00
Holger Vogt 92b237da3b Missing files in distribution
Correction to commit
Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
2019-09-28 12:00:16 +02:00
Kevin Zheng 6f20ec9929 patch to simplify compile for FreeBSD 2019-09-28 12:00:05 +02:00
Holger Vogt 11df2b7719 enable compiling with readline for macOS
which has a very simple readline header only
2019-09-20 20:43:36 +02:00
Holger Vogt acd0c7156c return immediately if empty commands are sent 2019-09-20 19:22:47 +02:00
Holger Vogt 2426a037db encapsulate fcn calls to cp_evloop into a mutex
thus preventing thread collisions
2019-09-20 19:21:56 +02:00
Holger Vogt 191ad0a574 avoid warning about potentially undefined variable 2019-09-14 12:43:48 +02:00
Holger Vogt ec6d676920 Make CopyGraph safe against NULL argument.
Otherwise memcpy will fail.
2019-09-14 12:38:57 +02:00
Holger Vogt aa726c9864 Make ...search_identifier safe against NULL arguments
Otherwise strstr will fail
2019-09-14 11:30:20 +02:00
Holger Vogt 0071ad8569 If a subcircuit is defined more than once,
only read the first one, rename the others und thus discard them.
2019-09-14 11:28:32 +02:00
Holger Vogt 972785095f Avoid crash, and send error message when r,l,c
instance lines does not have enough tokens.
2019-09-14 11:28:07 +02:00
Holger Vogt f9deefe326 Skip '\r' when reading lines from a file 2019-09-14 11:27:23 +02:00
Holger Vogt 8fc1b70e93 Bug #424 now lower-casing whenh following the redirection token >
Re-order the code for defining exceptions for not lower casing
2019-09-14 11:27:13 +02:00
Holger Vogt cdc8d3d054 new_title may contain a \r, remove it 2019-09-14 11:26:52 +02:00
dwarning 134e92b78f vbic model implementation including self-heating effect 2019-09-14 11:26:10 +02:00
Holger Vogt 1c8992bf15 Enable the file input as search path for .include files
also for non-Wondows OSs
2019-09-14 11:25:34 +02:00
Holger Vogt 9543a5644c Improve handling of non-printable characters (esp. for Linux)
If there is an isolated non-printable character leading the line,
convert it to *.
In fact there are some, e.g. in device lib TL072.301 from TI.
2019-09-14 11:25:07 +02:00
Holger Vogt 88008af088 remove memory leaks 2019-09-14 11:24:34 +02:00
Holger Vogt afdd0fe85e comments added
White spaces according to clang format
2019-09-14 11:24:05 +02:00
Holger Vogt 4cf2b5e5ce remove commenting out unused .model lines
from comment_out_unused_subckt_models().
This now handled by inp_rem_unused_models()
taking appropriate scoping into account.
2019-09-14 11:23:40 +02:00
Holger Vogt 6669cbc17c add function inp_rem_unused_models().
checking for unused models now also removes models
that are out of scope.
2019-09-14 11:23:24 +02:00
rlar 9e729bc8ee bug fix, avoid segfault when instantiating a unknown subcircuit 2019-09-14 11:22:52 +02:00
rlar e2b3dffcff drop bogus_find_subckt, use a proper scoped search 2019-09-14 11:22:39 +02:00
rlar 96bb0dd941 inpcom.c, introduce inp_add_levels(), add scope to decks 2019-09-14 11:22:24 +02:00
Holger Vogt d901665517 enable 'res' as valid resistor model identifier 2019-09-14 11:21:53 +02:00
Holger Vogt 1adc3e559c inp_get_elem_ident(): enable VDMOS devices as identifier m 2019-09-14 11:21:16 +02:00
Holger Vogt 7f95e9d40c inp_get_elem_ident
model type as input, element identifier as output
2019-09-14 11:20:48 +02:00
Holger Vogt b0e750c3d2 Remove printing an empty line to stderr 2019-08-18 10:53:25 +02:00
Holger Vogt bc9a22e5f7 Make interface responsive during plotting,
prevent endless loop, probably because of full internal buffers
2019-08-18 10:52:46 +02:00
Holger Vogt 3ab2c6468c raise time for immediate output, to catch some more information 2019-08-18 10:52:36 +02:00
Holger Vogt 5a45fdbebb Skip name and node if searching for 'tc' in an
R, L, or C line. Thus a node name 'tc' would be allowed.
2019-08-18 10:52:21 +02:00
Holger Vogt 6a1b6ced18 Enable tc conversion also for L and C
Even is PSPICE manual does not mention this,
device model makers are using this option.
2019-08-18 10:51:57 +02:00
Holger Vogt 63b4cf05de Do not bail out if 'load file' command has unavailable file,
just post error message and continue
A fix to https://sourceforge.net/p/ngspice/discussion/127605/thread/986c04f22b/
by Clyde
2019-08-13 23:35:48 +02:00
Jim Monte 0fbff063b8 bug #408: prevent invalid data or crash by not reading beyond end of string 2019-08-13 23:35:17 +02:00
Holger Vogt 30565e45c4 Improve commant 2019-08-13 23:35:03 +02:00
AsamMich 9b28a951d2 Patch #83
Improve and complete command 'compose'
2019-08-13 23:34:48 +02:00
Holger Vogt ca5997b705 Change variable 'stepsizelimit', added in commit
c86f6265d ("relieve the step size limitation..." 2019-02-02)
to 'nostepsizelimit', thus keeping the limit, if not set.
Maximum step size is limited to tstep given by .tran tstep tstop <tstart <tmax>>.
May be overridden by giving 'set nostepsizelimit' to (tstop - tstart)/50.
Both may be overriden by setting tmax.
2019-08-13 23:34:40 +02:00
Holger Vogt fac46c0bfd Speed up the text output in Windows GUI:
The stream is pushed to the display only every 30 milliseconds.
For the first 200ms the stream is still pushed for every line.
2019-08-13 23:34:16 +02:00
Holger Vogt 6ac67c2285 make GUI more responsive. Prevent output freezing
if large data volumes are sent to the display
2019-08-13 23:33:59 +02:00
Holger Vogt 1b96b5a087 fix typos 2019-08-13 23:33:44 +02:00
Holger Vogt f1cf4103c0 If the comaptibility mode is PS, LTPS or LTPSA, '$' is treated as a valid
character, not a s end-of-line comment delimiter, except for that it is
located at the beginning of a line.
2019-08-13 23:33:37 +02:00
Holger Vogt 0b92a15ae8 safeguard against vectors with 0 length 2019-08-13 23:33:28 +02:00
Holger Vogt b27d0e701c allow very short version information with new options -v and -d 2019-08-13 23:33:15 +02:00
Holger Vogt 45e2155e57 Instead of the reverted commit
5542f2ec1 ("dio/diotemp.c, drop DIOgradingCoeff limit", 2017-07-18)
allow setting a new limit for the diode grading coefficient by
set DIOgradingCoeffMax=0.85
Default is 0.9
2019-08-13 23:32:55 +02:00
Holger Vogt db85dead58 Revert "dio/diotemp.c, drop DIOgradingCoeff limit"
This reverts commit 5542f2ec10.
2019-08-13 23:32:37 +02:00
Holger Vogt aad247621e raise warning only when params are on the .subckt line 2019-08-13 23:32:26 +02:00
Holger Vogt 01742eefef The PSPICE area token for a device instance may be not only a number,
but also a parametrized token like {tok}
2019-08-13 23:32:16 +02:00
Jim Monte 8ed7080227 [PATCH #70] Made parameter const and reduced excess allocation. 2019-08-13 23:32:01 +02:00
Jim Monte 3def275be4 [PATCH #76] Fixed access violation when iplot called without a circuit
loaded.
2019-08-13 23:31:54 +02:00
Jim Monte 978429018b [PATCH #73] Fixed crash when attempting to set a breakpoint without a
circuit loaded.
2019-08-13 23:31:46 +02:00
Jim Monte e208aab4cd [PATCH #69] Changed vector type from to the enum assigned to it. 2019-08-13 23:31:37 +02:00
Jim Monte 73379f4146 [PATCH #66] Removed definition of macro MAXWORDS since it is unused. 2019-08-13 23:31:28 +02:00
Jim Monte 4a26ea9847 [PATCH #64] Made shell command with no arguments functional for Windows. 2019-08-13 23:31:22 +02:00
Holger Vogt 9a904cb952 prevent crash upon wrong user input 2019-08-13 23:31:14 +02:00
Holger Vogt c50dfa2be8 prevent crash if function is called with NULL argument 2019-08-13 23:31:01 +02:00
Jim Monte 060c51d68a missing part of patch #56 2019-08-13 23:30:39 +02:00
Jim Monte e92e2c7362 [PATCH #62] Fixed buffer overrun. Reworked to not use dstring for more
efficient parsing.
2019-08-13 23:30:31 +02:00
Jim Monte 24a13736bd [PATCH #63] Fixed infinite loop when setscale is given as a command. 2019-08-13 23:30:20 +02:00
Jim Monte 031b722640 [PATCH #56-2] Added hist_info source and header files for new history API
and system DLL Shlwapi.dll to resolve PathIsRelative()
2019-08-13 23:30:12 +02:00
Jim Monte 3874916948 [PATCH #56] New history buffering 2019-08-13 23:30:05 +02:00
Jim Monte f086fd3bef [PATCH #61] Removed unnecessary check for null pointer. There would have
been several access violations before the check if it were invalid.
2019-08-13 23:29:55 +02:00
Jim Monte 1665b53b84 [PATCH #59] Made INP*Cat() functions more modular and efficient. Also
eliminated the possibility of a buffer overrun in INPstrCat() due to an error
 in the calling funciton.
2019-08-13 23:29:41 +02:00
Jim Monte 9e5b0e8f82 [PATCH #58] Made annotations of WinMain() agree with its prototype 2019-08-13 23:29:34 +02:00
Jim Monte 8f2677438b [PATCH #57] Fixed several issues with win_x_fread() 2019-08-13 23:29:27 +02:00
Holger Vogt f9a4800d86 [PATCH #55-2] Prevent reading from a NULL pointer 2019-08-13 23:29:20 +02:00
Jim Monte ea81da2b01 [PATCH #55-1] Fixed some compiler warnings added by Visual Studio 2019 2019-08-13 23:29:13 +02:00
Jim Monte ba60c4e8a9 [PATCH #54] Fixed bug with processing of user input when the user input
size equals or exceeds the allowed amount. A 1-byte buffer overrun resulted
 in incorrect processing of the buffer returned from the window supplying user
 input which lead to an infinite loop.
2019-08-13 23:29:06 +02:00
Jim Monte 74857e2527 [PATCH #53] Removed useless zeroing of a copy of a variable (twice) when
the original variable should be zeroed. Made cp_free_control static because
 it was only used in control.c and it was not defined in any header file.
 Added comments
2019-08-13 23:28:58 +02:00
Jim Monte 1c5176282b [PATCH #52] General cleanup of word list processing, such as adding
comments and const. Also added a new function wl_from_string() to convert a
 single word into a word list. This function can be useful when calling a
 function taking a single-word word list.
2019-08-13 23:28:49 +02:00
Jim Monte 10474a06a8 [PATCH #50] Ensured no buffer overrun for long namess and improved
efficiency of compare. Also made more modular.
2019-08-13 23:28:41 +02:00
Jim Monte c71d66a3bb [PATCH #49] Ensured no buffer overrun for long script strings and
improved efficiency of building string
2019-08-13 23:28:34 +02:00
Jim Monte 051b5e602d [PATCH #48] Fixed infinite loop and variation from documented behavior of
atodims()
2019-08-13 23:28:25 +02:00
Jim Monte 0fd5b0fd80 [PATCH #51] Added scrolling to input window 2019-08-13 23:28:16 +02:00
Holger Vogt 9a9b7c68d0 unify the numerical constants 2019-08-13 23:28:05 +02:00
Holger Vogt b9901a2569 [PATCH 47] Refactored ft_getnames() and used the new function in
com_let().
2019-08-13 23:27:49 +02:00
Holger Vogt afdf3ff710 Partially undo commit 016c558d7, 2019-05-01
If sacles for plotting differ, issue a warning.
Skip this plot command only, when strict_errorhandling is set.
2019-08-13 23:27:15 +02:00
Holger Vogt 8af1663bba Try to detect, if one wants to plot vectors with
different scale vectors into the same graph.
Issue a warning and skip the plot command.
2019-08-13 23:26:58 +02:00
Holger Vogt eb33388707 Update to patch #33, stdlib.h required on Linux for size_t 2019-08-13 23:20:48 +02:00
Jim Monte 451a88a2b0 [PATCH #46] Fixed uninitialized buffer in case of 0 dim for dimstring()
and prevented the compilation of unused functions. Also a comment was
 corrected.
2019-08-13 23:20:39 +02:00
Jim Monte 23703a32c0 [PATCH #45] Fixed uninitialized buffer in case of 0 dim and improved
efficiency in other cases.
2019-08-13 23:20:29 +02:00
Jim Monte b66412f517 [PATCH] Changed prototypes of some functions having parameters that
should not be changed to const and added assorted comments. Also two very
 minor efficiency improvements.
2019-08-13 23:20:21 +02:00
Jim Monte 0183964d6f [PATCH #41] Made constants agree across ngspice simulator. File const.h
is the source of the values with all other files referencing it.
2019-08-13 23:20:00 +02:00
Jim Monte 55b7626fa9 [PATCH #40] Fixed memory leaks under 3 different conditions when the
deftype command is used. Added more argument validation. Enhanced error
 reporting. Implemented facility to free allocations associated with
 user-defined types
2019-08-13 23:19:51 +02:00
Jim Monte 7dacfe5bda [PATCH #38] Fixed crash when composing a complex vector from a mix of
real and complex values. Also eliminated unnecessary test for element being
 real when composed vector is real.
2019-08-13 23:19:41 +02:00
Jim Monte f28709f410 [PATCH #37] Fixed crash when composing a complex scalar 2019-08-13 23:19:31 +02:00
Holger Vogt 7598bbe83b [PATCH 35] Fixed values of physical constants such as the speed of light 2019-08-13 23:19:13 +02:00
Jim Monte 86ed788025 [PATCH 6/6] Fixed Visual Studio C4456 compiler warnings related to
variable name hiding another variable and reduced scopes of arg and sarg
 variables in the process
2019-08-13 23:18:34 +02:00
Jim Monte 34c2df11bb [PATCH 5/6] Fixed formatting for consistent nesting level indentation 2019-08-13 23:18:24 +02:00
Jim Monte 93ae8b41ac [PATCH 4/6] Fixed Visual Studio C4456 compiler warning related to
variable name hiding another variable
2019-08-13 23:18:16 +02:00
Jim Monte d0f8c6896d [PATCH 3/6] Fixed Visual Studio C4389 compiler warnings related to
signed/unsigned mismatch
2019-08-13 23:18:07 +02:00
Jim Monte 3dea14e223 Fixed Visual Studio C4334 compiler warnings related to
32-bit vs 64-bit shifts
2019-08-13 23:17:55 +02:00
dwarning cf394a03d1 update to hicum version 2.40 2019-08-13 23:17:41 +02:00
Holger Vogt e6a05bda7d remove the token mfg=nfgname from each .model statement 2019-08-13 23:17:31 +02:00
Holger Vogt 61039c2736 add a new function gettok_model to consider {...} expressions
in VDMOS .model statements
2019-08-13 23:17:14 +02:00
Holger Vogt ad5ad8270f correct the temperature replacement in ps
TEMPER is in degrees °C
2019-08-13 23:17:02 +02:00
Kevin Zheng b4ee4e28d6 Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
by dropping the rules to run bison and use automake's built-in rules instead
2019-08-13 23:16:49 +02:00
Holger Vogt bfe9e29580 If a in command set name="value" value is encapsulated in double quotes, it is always treated as a string variable. 2019-08-13 23:16:37 +02:00
Jim Monte 6bce493d25 Remove memory leak: If the check of the data fails, the data itself is leaked.
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:16:02 +02:00
Jim Monte 4afc5ed5b5 One of the links provided when the help command is executed returned a 404 not found error. This patch replaces that link with an HTML version of the ngspice manual.
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:15:27 +02:00
dwarning 657d4994b9 no fall-through by asking m value 2019-08-13 23:15:03 +02:00
Jim Monte 7e0dd64ce5 [PATCH 33 1/6] Fixed Visual Studio C4028 compiler warnings related to
mismatches between prototypes and function definitions

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

add command 'alterparam subcktname pname=vpval'
  to change a parameter inside of a subcircuit
2018-05-15 22:46:06 +02:00
h_vogt 5c3a6a3829 new command 'mc_source' to internally reload circuit
We store a copy of the whole deck in 'mc_deck'.
'mc_source' can be used to re-read this copy.
2018-05-15 22:45:29 +02:00
h_vogt 464f855d1d subckt.c, introduce new function inp_deckcopy_oc()
copy a deck
  without li_actual,
  without comment lines
  without .control section
2018-05-15 22:45:10 +02:00
rlar dc604c75d5 inpcom.c, whitespace 2018-05-15 22:43:43 +02:00
rlar 0f1b75a95b inpcom.c, abstraction, introduce bogus_find_subckt()
extracted from inp_fix_inst_calls_for_numparam().
This code is and was evil, as it does not respect scoping rules.
2018-05-15 22:43:23 +02:00
Holger Vogt 73db0477c0 vdmosdist.c, white spaces 2018-05-04 20:35:16 +02:00
Holger Vogt 68fbc49216 vdmos.c, sort parameters 2018-05-04 20:35:14 +02:00
Holger Vogt 285de59446 enable alternative weak inversion model if parameter subslope is given 2018-05-04 20:35:11 +02:00
Holger Vogt 93e34540b8 introduce parameter ksubthres, compatible to LTSPICE 2018-05-04 20:35:10 +02:00
Holger Vogt a0867ff1a3 bugfix: collapse the correct nodes if RB is zero or not given 2018-05-04 20:35:09 +02:00
Holger Vogt 2474c28a54 Alternative simple weak inversion model
according to https://www.anasoft.co.uk/MOS1Model.htm.
Fits existing LTSPICE models by adapting the slope parameter.
2018-05-04 20:35:08 +02:00
Holger Vogt 0ece0d0c1c make breakdown voltage internally always positive 2018-05-04 20:35:07 +02:00
Holger Vogt 63be243f72 Add a simple quasi saturation model according to V. d'Alessandro e.a., 2001 2018-05-04 20:35:07 +02:00
Holger Vogt 72e03e7eab replace parameter name subthres by subslope 2018-05-04 20:35:06 +02:00
Holger Vogt 5ba25a8716 change parameter to scalef when calculating n empirical compromise between smooth curve and reduction of Id slightly above threshold 2018-05-04 20:35:05 +02:00
Holger Vogt 3ee3ab39a9 Choose better interpolation and default parameters 2018-05-04 20:35:04 +02:00
Holger Vogt 729eac4e84 cweakinv, add model parameter model->VDMOSsubshift 2018-05-04 20:35:03 +02:00
Holger Vogt f0d131fb8a cweakinv, introduce sine scaling fucntion scalef() 2018-05-04 20:35:02 +02:00
Holger Vogt 284f68765d frontend/vectors.c, readability of warning message 2018-05-04 20:35:01 +02:00
Holger Vogt 68125ea3cf allow reading LTSPICE ascii raw files with 'load' command
by discarding 'Offset:'
2018-05-04 20:35:00 +02:00
Holger Vogt 43a6339071 rename VDMOS_CGS, VDMOS_CGD, VDMOS_CDS to VDMOS_CAPGS, VDMOS_CAPGD, VDMOS_CAPDS C: current, CAP: capacitance, V: voltage, G: conductance, Q: charge 2018-05-04 20:34:59 +02:00
Holger Vogt b4b6e3ebf8 Add the bulk diode to the ac calculation 2018-05-04 20:34:58 +02:00
Holger Vogt 87e8b366ad Add gate resistor to AC calculation 2
Add matrix entries for gate resistor
2018-05-04 20:34:56 +02:00
Holger Vogt 5d6e3348c9 Add gate resistor to AC calculation 1
Replace g (gate) by gp (gate prime) in existing matrix loading
2018-05-04 20:34:54 +02:00
Holger Vogt 570aacbf02 Remove VDMOS_CBS, VDMOS_CBD, VDMOS_CB 2018-05-04 20:34:52 +02:00
Holger Vogt 2b444a3423 remove unused parameters VDMOS_VBS/VBD and VDMOS_CAPBD/BS/GS/GD/GB 2018-05-04 20:34:51 +02:00
Holger Vogt 33a68b7321 return only half of the capacitance cgs and cgd 2018-05-04 20:34:50 +02:00
Holger Vogt 62297b2450 add weak inversion current capability
calibration of parameter subthres with LTSPICE is still missing.
2018-05-04 20:34:47 +02:00
rlar ce2e704f56 up, where to ? fixme, there are more ... 2018-05-04 20:34:45 +02:00
rlar ede0fb1caa cleanup 2018-05-04 20:34:44 +02:00
Holger Vogt 4a3c707036 add parallel resistor rds (between outer drain and source nodes, parallel to bulk diode) 2018-05-04 20:34:42 +02:00
Holger Vogt b7c6145f5e rename the device multiplier m to mu, not to mix it up with the Body diode grading coefficient m 2018-05-04 20:34:41 +02:00
Holger Vogt c5f47d3c1b Error message and exit if a vdmos device instance
has different source and bulk node (have to be the same).
2018-05-04 20:34:40 +02:00
Holger Vogt b13675ea44 remove unused code to calculate bulk-source and bulk-drain capacitors has been replaced already by capacitor from parallel bulk diode 2018-05-04 20:34:39 +02:00
Holger Vogt f9b66af074 add the mtriode parameter scale the triode region independently from saturation current 2018-05-04 20:34:36 +02:00
Holger Vogt 40fe11db07 Body diode grading coefficient is m, not mj 2018-05-04 20:34:34 +02:00
Holger Vogt 2f719f7401 function 'inp_vdmos_model' to process vdmos model lines towards ngspice compatibility 2018-05-04 20:34:32 +02:00
Holger Vogt f3478d7f13 re-format code 2018-05-04 20:34:31 +02:00
Holger Vogt 9d00a9e28d re-format code (whitespace only) 2018-05-04 20:34:31 +02:00
Holger Vogt 45f52c859b enable breakdown capability of parallel bulk diode 2018-05-04 20:34:30 +02:00
Holger Vogt 2bf70fa259 add matrix entries for bulk diode 2018-05-04 20:34:29 +02:00
Holger Vogt bfec119e5b Use better name for some parameters, cosmetics 2018-05-04 20:34:27 +02:00
Holger Vogt 4ac7a641ec diode model for bulk diode added code taken from dio.c etc. capacitance calculation for vdmos bulk cap removed, is now completely with the diode. An internal node added for series diode resistance RB
matrix entries not yet done!
2018-05-04 20:34:26 +02:00
Holger Vogt 1ce7fef519 missing model parameters added 2018-05-04 20:34:25 +02:00
Holger Vogt a4dc84ae35 missing model parameters added 2018-05-04 20:34:24 +02:00
Holger Vogt 0dc0aa06c4 re-introdeuce parameter phi Resulting temperature dependency of vto still not available 2018-05-04 20:34:24 +02:00
Holger Vogt 5b8c8072f3 mobility and substrate related parameters and equations removed 2018-05-04 20:34:22 +02:00
Holger Vogt 9df45731e9 depl cap calculation removed 2018-05-04 20:34:21 +02:00
Holger Vogt 0a213bea1a more on removing the sidewall capacitance 2018-05-04 20:34:20 +02:00
Holger Vogt ef547eb8ff sidewall capacitance calculation removed 2018-05-04 20:34:19 +02:00
Holger Vogt 7df59a750e useful parameter declarations moved to stay 2018-05-04 20:34:18 +02:00
Holger Vogt 0ebb7348ca remove drain and source resistance contributions 2018-05-04 20:34:18 +02:00
Holger Vogt 84005efe8b lateral diffusion and overlap capacitance removed 2018-05-04 20:34:17 +02:00
Holger Vogt e0ddc38519 default transconductance parameter kp set to 1 2018-05-04 20:34:16 +02:00
Holger Vogt e9e621de07 remove effective channel length, replace by l 2018-05-04 20:34:15 +02:00
Holger Vogt 47ef2bfaff remove unused parameters VDMOS_MOD_VTO 2018-05-04 20:34:14 +02:00
Holger Vogt d1497d8270 rename parameter "pb" --> "vj" 2018-05-04 20:34:13 +02:00
Holger Vogt 9c1b403f79 remove Gate.*OverlapCap 2018-05-04 20:34:12 +02:00
Holger Vogt dee9dc370f default m, W, L = 1 2018-05-04 20:34:11 +02:00
Holger Vogt 1aa3196ed9 another re-formatting for better readability (whitespace only) 2018-05-04 20:34:10 +02:00
Holger Vogt d63123a269 gate resistance und gate conductance added, prime gate node added, not yet o.k. when rg is set, probably wrong signedness 2018-05-04 20:34:09 +02:00
Holger Vogt 40b9b18b01 gate conductance added 2018-05-04 20:34:09 +02:00
Holger Vogt e0734a3ade re-format for better readability 2018-05-04 20:34:08 +02:00
Holger Vogt 5abe8a759b re-format for better readability, (whitespace only) 2018-05-04 20:34:07 +02:00
Holger Vogt c0c3470dff add the simple vdmos capacitance model instead of Meyer's model 2018-05-04 20:34:06 +02:00
Holger Vogt 389c888948 capacitance parameters cgdmin, cgdmax, a, cgs completely installed 2018-05-04 20:34:05 +02:00
Holger Vogt eb1df52743 remove unused VDMOS_CAPZEROBIASBD/BDSW/BS/BSSW aka VDMOSCbd/bdsw/bs/bssw 2018-05-04 20:34:04 +02:00
Holger Vogt f7b66ded9d comment 2018-05-04 20:34:03 +02:00
Holger Vogt f4853e85ca add vdmos to the parameter list and search 2018-05-04 20:34:02 +02:00
rlar b07661786f move arround 2018-05-04 20:34:01 +02:00
Holger Vogt 8473c8e03c remove empty VMOSdelete() function 2018-05-04 20:34:00 +02:00
Holger Vogt b87f5c0563 remove never used sensitivity analysis code 2018-05-04 20:33:59 +02:00
Holger Vogt b6a8613427 remove unused old sensitivity functions 2018-05-04 20:33:58 +02:00
Holger Vogt 1c4cb49478 CAPBYPASS removed 2018-05-04 20:33:57 +02:00
rlar 306e46359d whitespace 2018-05-04 20:33:56 +02:00
rlar 5008d495ce untabify 2018-05-04 20:33:55 +02:00
Holger Vogt 3e6a46826b add src/spicelib/devices/vdmos to ngspice 2018-05-04 20:33:54 +02:00
Holger Vogt d9bc4a5b41 add src/spicelib/devices/vdmos to ngspice 2018-05-04 20:33:53 +02:00
rlar 572bf10ebd execute vdmos-1.el 2018-05-04 20:33:46 +02:00
rlar 45a70b3a53 rewrite, use enum instead of #define sequences
see branch "rewrite-defines2enum"
2018-04-30 19:23:18 +02:00
Francesco Lannutti 3a7e9411c3 drop #ifdef MUTUAL 2018-04-22 22:10:43 +02:00
rlar bcf00ade06 cpl/cplsetup.c, cleanup VECTOR_ALLOC and MATRIX_ALLOC
swap first two arguments for readability
2018-04-22 22:04:45 +02:00
rlar 04dc62ef13 devices/*, move kind of `enum' defines out of struct definition 2018-04-15 15:05:02 +02:00
rlar 3b0e8cb8f1 vsrc/isrc, use an explicit #ifdef "PULSE_FUN_TYPES" guard
to avoid duplicate definition
2018-04-15 15:05:02 +02:00
rlar a729c2860c sensitivity, drop redundant #defines SENS_LIN/OCT/DEC/DEFPERT
use SENS_LINEAR/OCTAVE/DECADE/DEFPERTUB instead
2018-04-15 15:05:02 +02:00
rlar a9439dc7dd sensitivity, use numStates and numSenStates instead of hardcoded literals 2018-04-15 15:04:57 +02:00
rlar d3f13edd4a devices/vbic/vbicsetup.c, bug fix, incorrect states allocation
VBICnumSenStates is 10 not 8
2018-04-15 08:42:02 +02:00
rlar d981fb331b spicelib/devices/*, drop empty destroy functions 2018-04-15 07:13:06 +02:00
rlar e725d728fc res/restemp.c, avoid temporary NaN value, (simplify debugging)
RESupdate_conduct() may be called several times before all
  parameters have been set via RESparam() invocations,
  or finally being set to default values in RESsetup()

Especially RESscale might still be 0.0 as well as RESm
  thus temporarily creating a NaN in RESupdate_conduct.
This would unnecessarily complicate debugging with enabled
  floating point exceptions.
2018-03-17 18:36:12 +01:00
rlar ead6dc4816 spicelib/devices/{sw,csw}, unify CKTstates[] access
do it the same way as the other devices do

access CKTstates[][slot] via device specific descriptive macros
access CKTstates[] via CKTstate0 CKTstate1 macros

this patch has been checked for object file in-variance with gcc
2018-03-08 19:40:53 +01:00
rlar bcecc19e8b spicelib/devices/{sw,csw}, cleanup for readability
This change is functional invariant, and has been checked
 with gcc for object file in-variance.
For the details see the "rewrite-sw" branch
2018-03-08 18:24:49 +01:00
h_vogt 3dd2115291 frontend/subckt.c, do not put model names into numparam hash table
nobody seems to make use of these entries.
see nupa_type which shrinks to four enum's
2018-03-01 18:13:01 +01:00
rlar b803b294b4 frontend/parser/lexical.c, cp_lexer(), allow # and * comment
Both, whether interactive or not.
Especially for command scripts.
2018-02-26 19:41:04 +01:00
rlar 6903584e99 asrc/asrcacld.c, bug fix, reciproc tc coefficient 2018-02-25 21:59:15 +01:00
Holger Vogt b1aa6cfc87 xspice/enh/enhtrans.c, two2three_translate(), plug a memory leak 2018-02-25 20:05:15 +01:00
rlar 878c9645c7 frontend/outitf.c, drop /* ARGSUSED */ comments 2018-02-22 21:56:05 +01:00
Holger Vogt edc690e26f frontend/outitf.c, plug a memory leak when `.option interp' 2018-02-22 21:55:23 +01:00
rlar cd1bbf2003 rewrite, use designated initializer for SPICEdev initialisation 2018-02-21 20:02:00 +01:00
rlar 95ef5e79d9 numparam/*, use `pscopy()' 2018-02-20 21:34:06 +01:00
rlar 9ad63cc2c0 numparam/*, plug memory leaks 2018-02-20 21:33:55 +01:00
rlar ea1b83698f numparam/*, drop case conversions
inpcom.c is supposed to convert everything to lower case.
Thus we can work case sensitive in numparam,
  which is easier compared to a whole set of local case conversions.
2018-02-20 21:33:32 +01:00
rlar 0200d5c7e9 numparam/*, drop "old style" '&' syntax
Probably an artefact of the external preprocessor implementation
  of numparam.
This syntax seems to have been a non spice macro expansion facility.
2018-02-20 21:30:52 +01:00
rlar 8022aa09a6 spicenum.c, cleanup dicoS usage 2018-02-20 21:30:41 +01:00
rlar aa0dbd20ad spicenum.c, drop putlogfile() 2018-02-20 21:30:15 +01:00
rlar 15c00a9d42 spicenum.c, drop dologfileS, logfileS and nblogS
which are never set
2018-02-20 21:29:50 +01:00
rlar 112f35cc96 nupa_copy(), use skip_back_ws() 2018-02-20 21:29:29 +01:00
rlar 9218b76583 nupa_copy(), cleanup 2018-02-20 21:28:56 +01:00
rlar ec24c1ded7 nupa_copy(), fix lvalue 2018-02-20 21:28:03 +01:00
rlar 06708f1ed1 nupa_copy(), ls ==> s_end - (const) s 2018-02-20 21:27:38 +01:00
rlar 751d377d3e pscopy(), pscopy_up(), use `char *stop' argument
instead of `int length' argument
2018-02-20 21:13:16 +01:00
rlar e21d48a267 pscopy(), pscopy_up(), use _spice_dstring_setlength() return value
instead of invoking spice_dstring_value()
2018-02-20 21:13:05 +01:00
rlar 2ce91b0821 pscopy(), pscopy_up(), expand spice_dstring_reinit() macro
and inline the resulting spice_dstring_setlength() invocation
2018-02-20 21:12:56 +01:00
rlar 2cb579cd9f pscopy(), pscopy_up(), drop `start' argument
which is always zero
2018-02-20 21:12:44 +01:00
rlar 3bd9c1c858 scopyd(), return void 2018-02-20 20:51:30 +01:00
rlar 5164c16a1b numparam/mystring.c, drop unused nadd(), cins(), sins() and spos_() 2018-02-17 19:15:55 +01:00
rlar 468f7580ad nupa_subcktcall(), cleanup using skip_ws() 2018-02-17 19:15:55 +01:00
rlar a38b19bc0e nupa_subcktcall(), reintroduce search for last occurence of the subckt name 2018-02-17 19:15:55 +01:00
rlar c2f519c191 nupa_subcktcall(), drop `p_subname' 2018-02-17 19:15:55 +01:00
rlar 3f5ea23c71 nupa_subcktcall(), drop `ls_ptr'
valid because
neither `jp' nor `gp' will ever be incremented beyond end of string
2018-02-17 19:15:55 +01:00
rlar 437f92385a nupa_subcktcall(), avoid `jp' pointing beyond end of string
The skip whitespace loop in the following line shall
  safely swallow the delimiting space instead
2018-02-17 19:15:55 +01:00
rlar bb9689139b nupa_subcktcall(), drop `parsebuf' and `buf' 2018-02-17 19:15:55 +01:00
rlar 8b1e4fc32c nupa_subcktcall(), introduce search_isolated_identifier()
the functionality is a bit different though,
  because the previous code searched for the *last* occurence of the identifier
  yet the new code searches for the first occurence.
2018-02-17 19:15:55 +01:00
rlar 6a57023ced nupa_subcktcall(), drop `hp' 2018-02-17 19:15:55 +01:00
rlar b16a61fb7c nupa_subcktcall(), use skip_non_ws() 2018-02-17 19:15:55 +01:00
rlar 71ac5bccc2 nupa_subcktcall(), swap `hp' and `kp'
neither `hp' nor `kp' will be used any more behind this body
2018-02-17 19:15:55 +01:00
rlar 07112d62fb nupa_subcktcall(), simplify 2018-02-17 19:15:55 +01:00
rlar e4a2106cfe nupa_subcktcall(), simplify 2018-02-17 19:15:55 +01:00
rlar 1298eacdb2 nupa_subcktcall(), simplify 2018-02-17 19:15:55 +01:00
rlar 1157142dfd nupa_subcktcall(), simplify 2018-02-17 19:15:55 +01:00
rlar 6ca336af85 nupa_subcktcall(), pscopy transform 2018-02-17 19:15:55 +01:00
rlar 7d40920bd6 nupa_subcktcall(), cleanup 2018-02-17 19:15:55 +01:00
rlar 70cec5e9e3 nupa_subcktcall(), fix lvalue 2018-02-17 19:15:55 +01:00
rlar ec9636e078 nupa_subcktcall(), ls ==> ls_ptr - (const) t_p 2018-02-17 19:15:55 +01:00
rlar 701dcad9a4 nupa_subcktcall(), fix lvalue 2018-02-17 19:15:55 +01:00
rlar a773601b84 nupa_subcktcall(), g ==> gp - (const) t_p 2018-02-17 19:15:55 +01:00
rlar 3267bf8d63 nupa_subcktcall(), fix lvalue 2018-02-17 19:15:55 +01:00
rlar 0a149819a5 nupa_subcktcall(), h ==> hp - (const) t_p 2018-02-17 19:15:55 +01:00
rlar 47f1e7b1fa nupa_subcktcall(), fix lvalue 2018-02-17 19:15:55 +01:00
rlar cc932725ac nupa_subcktcall(), k ==> kp - (const) t_p 2018-02-17 19:15:55 +01:00
rlar d991296b82 nupa_subcktcall(), split personality of `k' 2018-02-17 19:15:55 +01:00
rlar b9750ee59f nupa_subcktcall(), fix lvalue 2018-02-17 19:15:55 +01:00
rlar 84c22e656a nupa_subcktcall(), j ==> jp - (const) t_p 2018-02-17 19:15:55 +01:00
rlar 0f53656412 nupa_subcktcall(), split personality of `j' 2018-02-17 19:15:55 +01:00
rlar 80701652fc nupa_subcktcall(), cleanup getexpress() usage
# Conflicts:
#	src/frontend/numparam/xpressn.c
2018-02-17 19:15:55 +01:00
rlar 742f34f596 nupa_subcktcall(), spice_dstring_value(&tstr) ==> t_p
t_p is const and tstr hasn't been modified either,
thus still the same value.
2018-02-17 19:15:55 +01:00
rlar cb4dfa13d8 nupa_subcktcall(), reduce scope of some locals 2018-02-17 19:15:55 +01:00
rlar 9670af0d4e nupa_subcktcall(), drop `i', use a pointer instead 2018-02-17 19:15:55 +01:00
rlar 6e5ef92fd2 nupa_subcktcall(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later) 2018-02-17 19:15:55 +01:00
rlar 53adeee1d3 nupa_subcktcall(), drop j1 and t_p1, use a pointer instead 2018-02-17 19:15:55 +01:00
rlar c133f21ef7 nupa_subcktcall(), split personality of `t_p' 2018-02-17 19:15:55 +01:00
rlar f17521fa4c nupa_subcktcall(), split personality of `ls' 2018-02-17 19:15:55 +01:00
rlar 81e02154be nupa_subcktcall(), split personality of `j' 2018-02-17 19:15:55 +01:00
rlar 13d9ecd517 nupa_subcktcall(), some constness 2018-02-17 19:15:55 +01:00
rlar 06b71fe2d2 nupa_subcktcall(), use skip_non_ws() 2018-02-17 19:15:55 +01:00
rlar fa1c710f68 nupa_subcktcall(), move code down to a better place 2018-02-17 19:15:55 +01:00
rlar 1987559e89 nupa_subcktcall(), drop redundant initialisation for `narg'
and delay its incrementation a bit
2018-02-17 19:15:55 +01:00
rlar b8f4b3e27e nupa_subcktcall(), fix excess length in pscopy argument 2018-02-17 19:15:55 +01:00
rlar 8190ba3fca nupa_subcktcall(), fix, honour end of string 2018-02-17 19:15:55 +01:00
rlar 4859f7d8df findsubname(), cleanup and use isspace_c() 2018-02-17 19:15:55 +01:00
rlar 784ad14d60 findsubname(), drop `ls_ptr' 2018-02-17 19:15:55 +01:00
rlar d647a84e66 findsubname(), just truncate it 2018-02-17 19:15:55 +01:00
rlar 5e6fe75db6 findsubname(), collect decrement operations 2018-02-17 19:15:55 +01:00
rlar 31ad5ca970 findsubname(), decrement later 2018-02-17 19:15:55 +01:00
rlar 01eb593ca4 findsubname(), explicit break out of the loop 2018-02-17 19:15:55 +01:00
rlar cbd38fdc9c findsubname(), use skip_back_ws() 2018-02-17 19:15:55 +01:00
rlar 270e0b6154 findsubname(), cleanup 2018-02-17 19:15:55 +01:00
rlar a5c743d48c findsubname(), fix lvalues 2018-02-17 19:15:55 +01:00
rlar 21d3f04659 findsubname(), h ==> p_end - (const) s 2018-02-17 19:15:55 +01:00
rlar 8881aead44 findsubname(), cleanup 2018-02-17 19:15:55 +01:00
rlar c8340f2b4c findsubname(), fix lvalues 2018-02-17 19:15:55 +01:00
rlar 90bb7cc289 findsubname(), j ==> t - (const) s 2018-02-17 19:15:55 +01:00
rlar 1778b608d8 findsubname(), cleanup 2018-02-17 19:15:55 +01:00
rlar 8df5717017 findsubname(), fix lvalues 2018-02-17 19:15:55 +01:00
rlar a7c2253c8a findsubname(), k ==> p - (const) s - 1 2018-02-17 19:15:55 +01:00
rlar 623436c9f9 findsubname(), fix lvalues 2018-02-17 19:15:55 +01:00
rlar 521fee88a6 findsubname(), ls ==> ls_ptr - (const) s 2018-02-17 19:15:55 +01:00
rlar 4ca87d6b0b findsubname(), reorder and add some constness 2018-02-17 19:15:55 +01:00
rlar ab152c99fc findsubname(), local scope for `nest' `j' and `h' 2018-02-17 19:15:55 +01:00
rlar 45f3749bb1 findsubname(), drop `found', which is constantly 0
because of the previous commit
2018-02-17 19:15:55 +01:00
rlar f0cead24b8 findsubname(), duplicate function epilogue and return early 2018-02-17 19:15:55 +01:00
rlar 4986df1baf findsubname(), signature, drop unused return value 2018-02-17 19:15:55 +01:00
rlar af78917b98 stripbraces(), whitespace 2018-02-17 19:15:55 +01:00
rlar 11e024753a stripbraces(), cleanup 2018-02-17 19:15:55 +01:00
rlar 13be771308 stripbraces(), s + i ==> p 2018-02-17 19:15:55 +01:00
rlar ab15f0b7bb stripbraces(), group `s + i' 2018-02-17 19:15:55 +01:00
rlar 0101db946b stripbraces(), s0 ==> s 2018-02-17 19:15:55 +01:00
rlar e4e408d656 stripbraces(), unuse local `s'
`s0' does not change in the area of interest and has the same value
2018-02-17 19:15:55 +01:00
rlar cb859060e0 stripbraces(), drop `i_ptr' 2018-02-17 19:15:55 +01:00
rlar 951517250b stripbraces(), fix lvalue and cleanup 2018-02-17 19:15:55 +01:00
rlar d4dad0f10c stripbraces(), i ==> i_ptr - (const) s 2018-02-17 19:15:55 +01:00
rlar 186352b7e5 stripbraces(), fix lvalue and cleanup 2018-02-17 19:15:55 +01:00
rlar 686329dcaf stripbraces(), j ==> j_ptr - (const) s 2018-02-17 19:15:55 +01:00
rlar fc45b3addf stripbraces(), make `s' constant in the region of interest 2018-02-17 19:15:55 +01:00
rlar 170aa84f47 stripbraces(), drop `ls' 2018-02-17 19:15:55 +01:00
rlar e2c2140a52 stripbraces(), drop `t_p', which points to a copy of `s' 2018-02-17 19:15:55 +01:00
rlar 8d0df0d024 stripbraces(), fix split personality of `i' 2018-02-17 19:15:55 +01:00
rlar 98ec9c2fa3 stripbraces(), use `strchr()' 2018-02-17 19:15:55 +01:00
rlar 26ff93abd9 stripbraces(), simplify 2018-02-17 19:15:55 +01:00
rlar 1721407359 transform(), use `strstr()' instead of `spos_()' 2018-02-17 19:15:55 +01:00
rlar e28169d62c transform(), reduce scope of `tstr' 2018-02-17 19:15:55 +01:00
rlar f776a24ea7 transform(), ci_prefix() is case insensitive
thus can use `s' instead of `t'
and ci_prefix() does return a boolean
2018-02-17 19:15:55 +01:00
rlar 6500aeb132 transform(), drop local `n' 2018-02-17 19:15:55 +01:00
rlar 7cf4338981 transform(), drop unused argument `u_p' 2018-02-17 19:15:55 +01:00
rlar ea6290f666 nupa_substitute(), cleanup and a fixme
the '&' sequences, which are hopefully nowhere announced and advertised,
might increment char pointers beyond the terminating '\0' causing havoc.
2018-02-17 19:15:55 +01:00
rlar abb16c288b nupa_substitute(), cleanup 2018-02-17 19:15:55 +01:00
rlar 0d3c0dfd78 nupa_substitute(), rename r_ --> r 2018-02-17 19:15:55 +01:00
rlar a34703f748 nupa_substitute(), verify `r' beeing unused now 2018-02-17 19:15:55 +01:00
rlar b0e5fc267c nupa_substitute(), cleanup 2018-02-17 19:15:55 +01:00
rlar cc02b9ae2d nupa_substitute(), fix lvalue and cleanup 2018-02-17 19:15:55 +01:00
rlar ac59410602 nupa_substitute(), ir ==> r_ - (const) r 2018-02-17 19:15:55 +01:00
rlar 0fd1e2323c nupa_substitute(), express some constness 2018-02-17 19:15:55 +01:00
rlar 6c1d3ba34a nupa_substitute(), whitespace 2018-02-17 19:15:55 +01:00
rlar 6b5606edc1 nupa_substitute(), cleanup return on error 2018-02-17 19:15:55 +01:00
rlar cba740f88d nupa_substitute(), postpone `s' incrementation 2018-02-17 19:15:55 +01:00
rlar ad1eeeb410 nupa_substitute(), postpone `s' incrementation 2018-02-17 19:15:55 +01:00
rlar 39b544aba1 nupa_substitute(), cleanup 2018-02-17 19:15:55 +01:00
rlar 6a003e52d1 nupa_substitute(), cleanup for loops 2018-02-17 19:15:55 +01:00
rlar ad603be96f nupa_substitute(), cleanup for loops 2018-02-17 19:15:55 +01:00
rlar c06dddc4db nupa_substitute(), break sooner 2018-02-17 19:15:55 +01:00
rlar baf76512b3 nupa_substitute(), reduce scope of d 2018-02-17 19:15:55 +01:00
rlar 55e7fa269a nupa_substitute(), at the end of the loop d === *kptr 2018-02-17 19:15:55 +01:00
rlar 571909b8b6 nupa_substitute(), postpone kptr incrementation 2018-02-17 19:15:55 +01:00
rlar d38804d7c0 nupa_substitute(), move final kptr incrementation out of the loop 2018-02-17 19:15:55 +01:00
rlar f5448025a8 nupa_substitute(), postpone kptr incrementation 2018-02-17 19:15:55 +01:00
rlar 0aff4dfaa6 nupa_substitute(), transform while loop 2018-02-17 19:15:55 +01:00
rlar ef1d896cee nupa_substitute(), reduce scope of local variabes 2018-02-17 19:15:55 +01:00
rlar bd335cb5be nupa_substitute(), delay kptr assignment 2018-02-17 19:15:55 +01:00
rlar ca84d10d0a stripsomespace(), drop `ls' 2018-02-17 19:15:55 +01:00
rlar cc05c0c05b formula(), postpone kptr incrementation 2018-02-17 19:15:55 +01:00
rlar abe572237f formula(), postpone arg2 and arg3 incrementation 2018-02-17 19:15:55 +01:00
rlar a35a2fd3db formula(), cleanup for(;;) loop 2018-02-17 19:15:55 +01:00
rlar 3136f45229 formula(), move final kptr incrementation out of the loop 2018-02-17 19:15:55 +01:00
rlar 2010e6b4fb formula(), kptr++ to the for loop epilogue 2018-02-17 19:15:55 +01:00
rlar c761b4432a formula(), transform while loop 2018-02-17 19:15:55 +01:00
rlar 11adf9f62c findsubckt(), cleanup 2018-02-17 19:15:55 +01:00
rlar 6a9248f111 findsubckt(), use skip_back_ws() 2018-02-17 19:15:55 +01:00
rlar 9bccda5450 findsubckt(), cleanup 2018-02-17 19:15:55 +01:00
rlar 9e1a6b85ff findsubckt(), swap name_b and name_e in the prolog 2018-02-17 19:15:55 +01:00
rlar 61f3ecffd6 findsubckt(), rename k_ptr --> name_b 2018-02-17 19:15:55 +01:00
rlar 23b741868b findsubckt(), cleanup 2018-02-17 19:15:55 +01:00
rlar 51405f8ee7 findsubckt(), fix lvalue 2018-02-17 19:15:55 +01:00