Commit Graph

7476 Commits

Author SHA1 Message Date
Holger Vogt 1084b4205c Allow global .temp in addition to instance parameter 'temp'.
Update to comments.
2021-09-29 19:59:28 +02:00
Holger Vogt cbb63215c4 Remove the old SOA examples 2021-09-29 19:59:03 +02:00
Holger Vogt e9274d4b9c New folder with SOA (safe operating area) examples
in the ngspice examples section
2021-09-29 19:58:50 +02:00
Holger Vogt 9221df234c Patch to allow (and ignore) leading or trailing commas
when putting {} around tokens. Tested with PWL voltage source.

Patch has been suggested by Liqian Zhang
2021-09-29 19:58:36 +02:00
Holger Vogt 33571877dc Some update to SOA for a diode:
Limit output to four digits
Add power and temperature limits.
Derating with self-heating, or with fixed temperature,
or no derating at all, selectable by setting model parameters.
Example file: SOA plotted as frame, with diode current.
2021-09-29 19:58:11 +02:00
Holger Vogt 759f4f5f84 Make the output a little more verbose:
add terminal voltage to Id, Te, and Pd outputs.
Compare SOA data to terminal voltage, not (unknown) junction voltage.
2021-09-29 19:57:54 +02:00
Holger Vogt 9c8380a031 Enhance the SOA (safe operating area) operations
Parameters id_max, pd_max and te_max have been added
for current, power, and temperature to the already existing
fv_max and bv_max (max forward and backward volteges).
2021-09-29 19:57:34 +02:00
Holger Vogt e5fdb4c742 Patch sorts 1 byte vars in sequence,
to save some memory.
Patch #107 provided by Florian Ballenegger
2021-09-29 19:57:08 +02:00
Holger Vogt 7ebe17f32f hicum plot has non-monotonic x values.
We thus need parametr 'retraceplot'.
Command 'run' not required.
2021-09-29 19:56:50 +02:00
Holger Vogt bdd8991d84 We are now developing ngspice-35+ 2021-09-29 19:55:52 +02:00
Holger Vogt 51cc21de16 Update: Libtool version info 2021-08-08 20:20:29 +02:00
Holger Vogt ab88d5b58a Add readme.utf8 to the distributed files 2021-08-08 12:05:40 +02:00
Holger Vogt 01b253c423 add compile_linux_shared.sh to the distributed files 2021-08-08 11:58:55 +02:00
Carsten Schoenert 2c2e21a80c Smal typo fixup s/currntly/currently 2021-08-08 11:56:30 +02:00
Holger Vogt d9a140c213 Update for the caller to invoke shared ngspice
path to shared ngspice also via command line parameter
add some alter statement after bg_halt
some smaller fixes to outputs, messages upon exit etc.
2021-08-08 10:21:40 +02:00
Holger Vogt 605f59b417 Fix a bug with the alter statement
lower case for device name, when sent from shared ngspice
or from interactive mode.
2021-08-08 10:21:22 +02:00
Holger Vogt 896f7cbc6d Adding spinit with path (to be edited by the user) to code models 2021-08-06 12:31:16 +02:00
Holger Vogt 9a2d968577 When transferring boolean data over the ABI, keep them as boolean types, not integer
Replace the type of all boolean variables around the ABI by NG_BOOL.
NG_BOOL is typedefed to _Bool, when compiling shared ngspice. When
sharedspice.h is use externally NG_BOOL is typdefed to bool
2021-08-03 15:57:58 +02:00
Holger Vogt 8f62dfbcf5 notice to enforce compiling and installing the code models 2021-08-03 15:57:33 +02:00
Holger Vogt ef5f3dbf2b Add a small chapter on ngspice as shared library. 2021-08-03 15:57:09 +02:00
Holger Vogt 26bbbbe75d compile script for shared ngspice library 2021-08-03 15:56:50 +02:00
Carsten Schoenert 48f2c2b875 configure.ac: Adding version string for LIB_NGSPICE_API
This isn't currently used but can be used in various places to
automatically provide the internal API version that is used.
Normally developers doesn't want to break the API by introducing a
version bump as this means the new library isn't backward compatible
any more.

E.g. the API version can be used to enhance the name of the library,
quite often libraries with an API version 0 don't add this version to
library name (like ngspice is doing this too right now).
2021-08-03 15:56:18 +02:00
Carsten Schoenert 61b5c0563b src/Makefile.am: Adopt used variables for lib versioning
A small adjustment so the configured ABI version from configure.ac will
get used for creating the libngspice library.
2021-08-03 15:56:02 +02:00
Carsten Schoenert fec1a9a9c8 libtool: Adding helping content for API versioning
Doing the libtool versioning right can be a bit tedious. Especially the
correct handling of the various versions for the libtool .so naming is
difficult to understand if this part isn't done often.

To improve the API versioning adding some helping text what the various
version number are intended for and how to handle these within the
life cycle and development of the Ngspice project.

Basically libtool uses 'current', 'revision' and 'age' to version a
library.
Here a short outline how to do the libtool versioning:

 Only bug fixing did happen, no new symbols were added, the new library
 provide the exact amount and behaviour of the existing symbols.

 --> Increase the 'revision' by 1 (c:r+1:a)

 New symbols were added, the behaviour of the existing symbols doesn't
 have changed.

 --> Increase the 'age' by 1, set 'revision' to 0 (c:r=0,a+1)

 Existing symbols behave now different or existing symbols were removed.

 --> Increase 'current' by 1, set 'revison' to 0, set 'age' to 0 (c+1,r=0,a=0)
 !!!Note!!!
 The ABI version is also affected by this (needs a bump too, the library
 isn't backward compatible any more.
2021-08-03 15:55:38 +02:00
Holger Vogt 4258fe94b5 Add library versioning according to
https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html#Libtool-versioning
Add package versioning with m4 macros
2021-08-03 15:55:16 +02:00
Holger Vogt 6aac403ab0 XSPICE delay: add some more safeguards 2021-08-03 15:53:42 +02:00
Holger Vogt 05624bedd3 move examples file to prpoer xspice folder 2021-08-03 15:53:11 +02:00
Holger Vogt 5603c8cae7 Write some output to file with raw file or table format. 2021-07-23 14:54:25 +02:00
Holger Vogt ce1ddd8623 Circuit (ring oscillator) with various current and voltage measurements
inside and outside of subcircuits
2021-07-23 14:43:20 +02:00
Holger Vogt 9ae6a76a05 Prepare ngspice-35 2021-07-22 20:38:24 +02:00
Holger Vogt 4feb43e067 Prepare ngspice-35 2021-07-22 20:38:08 +02:00
Holger Vogt 4dbd8b7f9a Preliminary fix for the 'interpolate' function.
Interpolation of 1D vectors is o.k. now,
multi-dimensional vectors are not (yet) supported.
2021-07-22 20:37:57 +02:00
Holger Vogt 1977128380 Prevent crash when CIDER diode models are used.
There is no third node in NUMD or NUMD2, so don't set
GENnode(fast)[i]. This patch fixes a bug introduced in
4895a4b5a ("Diode model with selfheating option", 2021-04-11)
2021-07-20 14:24:43 +02:00
Holger Vogt 1a9ea82b97 new file name (transfer characteristics inside) 2021-07-18 12:03:37 +02:00
Holger Vogt c7cd07e2e0 Update to psp model files and examples
NMOS, PMOS, inverter, ring oscillator
2021-07-18 11:57:51 +02:00
Holger Vogt 9cc9c56cad Don't write past '\0', fixes a bug in commit
1c5e0d11d ("If there is a XSPICE code model .model line with
file input, keep quotes and case for the file path.", 2021-07-15)
2021-07-18 11:19:51 +02:00
Holger Vogt b7473a33a0 Check for double '{', replace the inner '{', '}' by '(', ')'
in .subckt or .model (which both may stem from external sources)
2021-07-18 10:29:16 +02:00
Holger Vogt 85b07e35bf Fixes bug 483
prevent crash when surface mobility (surfmob) has been
selected in 2D simulation.
The patch is provided by Brian Taylor (see
https://sourceforge.net/p/ngspice/mailman/ngspice-devel/thread/e6e921a3-677c-f513-7410-df8568c4bdad%40comcast.net/#msg37318450
)
2021-07-16 10:53:07 +02:00
Holger Vogt 1c5e0d11dd If there is a XSPICE code model .model line
with file input, keep quotes and case for the file path.
2021-07-16 10:52:54 +02:00
Holger Vogt 15a3ed87c0 Enable the m parameter in E, G, B, R behavioral source/devices 2021-07-16 10:52:21 +02:00
Holger Vogt 973a60b898 re-enable making the old help system for Linux/Cygwin
by --enable-help --enable-oldapps
2021-07-08 15:34:41 +02:00
Holger Vogt d34d1e7c7c Get immediate response into text window,
when requesting information on coordinates.
2021-07-07 19:50:50 +02:00
Holger Vogt 182a4d3f5f WinGUI: Push any remaining error message into text window
before emitting interactive error message window and exit.
2021-07-07 19:50:37 +02:00
Holger Vogt ae72677cc2 Remove a false read when curr_line has
already been invalidated.
2021-07-05 19:43:25 +02:00
Holger Vogt 0f25c25c7e Remove a memory leak
Make inp_rem_levels non-static
and use it to remove 'root' after it has been used.
2021-07-05 19:42:14 +02:00
Holger Vogt 54cbfb4138 Nodedamping: Make difference independent of the sign
of the difference
2021-07-05 14:32:57 +02:00
Holger Vogt c74321e0f5 JFET2: Add a link to literature 2021-07-05 14:32:47 +02:00
Holger Vogt 93ddc7a3eb Enhancement for E source with table, convert to B source with pwl:
Add G source
Allow 'table' also being part of a parameter name like 'table_something'
2021-07-05 14:32:34 +02:00
dwarning 0ece04cdc8 Add channel type determination belong nmos/pmos model parameter 2021-07-05 14:32:14 +02:00
Holger Vogt ba9834b1dc Standard clang compiler does not support OpenMP
Homebrew clang needs to investigted further
2021-07-05 14:31:58 +02:00