Commit Graph

206 Commits

Author SHA1 Message Date
Giles Atkinson ddd14cf84c Do not include term.h and curses.h in terminal.c without checking that
they exist.  Modern ncurses does not need curses.h to compile term.h
so that header has been removed.  Also make ncurses the last choice
when looking for tputs().
2025-05-24 11:17:25 +02:00
Giles Atkinson c7c85ecadc Add co-simulation with VHDL, using the GHDL compiler and d_cosim. 2025-05-24 11:05:33 +02:00
Giles Atkinson 933b5a4826 Use shell tests instead of AC_CHECK_HEADERS to find readline headers
on MacOS and silence complaints about non-literal header paths.
2025-05-24 10:58:30 +02:00
Giles Atkinson 47d2f4eb96 Fix warnings from autoconf by running the autoupdate tool and
adding an argument to AC_PROG_LEX.  The minimum required autoconf
version is set to 2.70 as that was the introduction of the
AC_PROG_LEX argument.
2025-05-24 10:58:18 +02:00
Holger Vogt 7e27bddc34 Remove unused code. 2025-05-24 10:55:43 +02:00
Holger Vogt 1a1d2558e8 We are developing towards ngspice-45 2025-05-24 10:50:59 +02:00
Holger Vogt 80d22fc802 Prepare the bug-fix release 44.2 2025-01-11 11:55:56 +01:00
Holger Vogt 8eea1f0b41 Prepare ngspice-44 2024-12-26 15:01:10 +01:00
dwarning 3faed1647a Reorder and renovate timer functions taking into account ngspice multiprocessor capabilities
by using available high performance functions first.
Deprecated ftime() still acts as a backup function.
Solution is portable for today's operating systems and compilers.
2024-12-06 22:35:02 +01:00
Giles Atkinson ce1ecca15e Add support for including Verilog simulation within an instance
of the d_cosim codemodel, using libvvp, the simulation runtime of
Icarus Verilog.  This complements the existing method using Verilator.
The new source code is built into two binary shared libraries,
ivlng.so (or .DLL) and ivlng.vpi that are loaded during simulation.
2024-11-02 22:30:07 +01:00
Holger Vogt a8c1104cfb 43+ developing towards ngspice-44 2024-11-02 22:21:51 +01:00
Holger Vogt 16513beb42 Don't enable functions 'time' or 'getrusage' when OpenMP is selected 2024-07-11 10:57:00 +02:00
Holger Vogt 6b3c085037 Don't check for readline, if shared lib or Windows GUI is selected 2024-07-10 17:21:38 +02:00
Holger Vogt 33939d3f50 Prepare ngspice-43 2024-06-22 17:06:45 +02:00
Holger Vogt 69922c7d8f Now standard while compiling (no need to be added to ./configure):
non-debug, osdi, xspice, readline, klu, openmp
Still needs to be enabled explicitely:
cider (by --enable-cider)
./compile_linux-new.sh tested with Ubuntu 24.04LTS

More testing is needed (switch off the now standard options)!
2024-05-14 16:31:37 +02:00
Holger Vogt bfb2a5fd9c As preliminary, better not change CURRENT 2024-02-13 14:59:49 +01:00
Holger Vogt b9c1f68ee0 Preliminary fix to bug report 660
Final setting will be decided before next release.
2024-02-13 14:04:58 +01:00
Holger Vogt a4ae81ec06 We are developing towards ngspice-43 2024-01-06 23:14:26 +01:00
Holger Vogt ace235da04 Remove ADMS from build process 2023-12-29 16:53:39 +01:00
Holger Vogt ce8f6c5017 prepare ngspice-42 2023-12-12 17:08:58 +01:00
Holger Vogt d5ceced24d We are developing towards ngspice-42 2023-08-19 23:54:36 +02:00
Francesco Lannutti ce18d6846f KLU Integration from scratch #4, changed files 2023-08-16 11:14:10 +02:00
Holger Vogt 6600bf18b4 Prepare ngspice-41 2023-08-11 14:12:50 +02:00
Holger Vogt 4a95de5cd7 We are developing towards ngspice-41 2023-04-01 17:31:59 +02:00
Holger Vogt 311ddeac0d Prepare for ngspice-40 2023-03-24 22:27:12 +01:00
Holger Vogt d4ee9af2e6 We are developing towards ngspice-40 2023-03-18 14:34:27 +01:00
Holger Vogt aafcb68522 Remove obsolete macros, replace other by newer versions 2023-03-18 14:30:38 +01:00
Holger Vogt 5cb5d218c9 Remove the obsolete RETSIGTYPE, replace by void 2023-03-18 14:30:29 +01:00
Holger Vogt 8ee3e3fb41 new revision for shared ngspice 2023-01-31 11:20:19 +01:00
Holger Vogt 71002aa42f Prepare for ngspice-39 2023-01-24 15:49:42 +01:00
Pascal Kuthe 477ce85e29 compile with -std=gnu11 instead of -std=c11 2022-12-27 14:10:48 +01:00
Pascal Kuthe acfaf023b3 prototype for Verilog-A integration using OSDI and OpenVAF
This initial prototype is capable of performing DC, transient and AC
analysis. Not all features of OSDI are supported yet and there are still
some open questions regarding ngspice integration. However many usecase
already work very well and a large amount of CMC models are supported.
The biggest missing feature right now is noise analysis.

test: test case for diode DC working with SH

test: add transient analysis to osdi_diode test

test: added docu text to osdi_diode test

test: added test case directories

fix: bug in osdi_load

test: small change to netlist

fix: implement DEVunsetup

fix: correct behaviour for MODEINITSMSIG

test: osdi diode enable all analysis modes

removed netlist

ignoring test results

added the build of the diode shared object to the python test script

deleting old stuff and always rebuilding the shared object

added diode_va.c to the repo

preparing CI

Create .gitlab-ci.yml file

(testing) add res, cap and multiple devices test

feat: use osdi command to load files

Previously OSDI shared object files were loaded from fixed directories.
This was unreliable, inconvenient and caused conflicts with XSPICE.

This commit remove the old loading mechanism and instead introduces the
`osdi` command that can load (a list of) osdi object files (like the
codemodel command for XSPICE). A typical usecase will use this as a
precommand in the netlist:

.control
pre_osdi foo.osdi
.endc

If the specified file is a relative path it is first resolved relative
to the parent directory of the netlist. If the osdi command is invoked
from the interactive prompt the file is resolved relative to the current
working directory instead.

This commit also moves osdi from the devices folder to the root src
folder like xspice. This better reflects the role of the code as users
may otherthwise (mistakenly) assume that osdi is just another
handwritten model.

test: update tests to new command

fix: do not ignore first parameter

feat: implement log message callback

fix: don't generate ddt matrix/rhs in DC sweep

fix: missing linker script

update to osdi 0.3

(testing) simplify test cases, fix bug

(testing) multiple devices test improvement

(testig) node collapsing bugfix

test: increase tolerance in tests

feat: update to newest OSDI header

fix: temperature update dt behaviour

fix: ignored models

fix: compilation script

fix: allow hicum/l2 to compile with older c++ compilers

fix: set required compiler flags for osdi

fix: disable x by default

fix: add missing SPICE functions

fix: update diode to latest ngspice version

feat: implement python CMC test runner

doc: Add README_OSDI.md

fix: make testing script work with python version before 3.9

fix: free of undefined local variable

fix: do not calculate time derivative during tran op

update osdi version

fixes for compilation on windows
2022-12-27 13:51:57 +01:00
Holger Vogt f1165052ad We are developing towards ngspice-39 2022-11-06 11:23:17 +01:00
Holger Vogt c8ac00e87a New Age: Function ngCM_Input_Path added to the shared ngspice
interface, backward compatible.
2022-10-28 17:04:17 +02:00
Holger Vogt 5bc1660773 prepare ngspice-38 2022-10-16 16:59:34 +02:00
Holger Vogt 3d1e560828 Add configure flag --enable-shortcheck to enable a shortened make check
Only BSIM3 and BSIM4 are tested, when selected.
2022-10-07 13:00:30 +02:00
Holger Vogt 0faf386d45 We developing towards ngspice-38
The intermediate stage is named 37+
2022-06-23 08:33:01 +02:00
Holger Vogt 303cf0c92b Prepare ngspice-37 2022-05-11 13:48:33 +02:00
Holger Vogt 088be81cf3 Make SP (S-parameter) standrad during compile.
The configure flad --disable-sp will remove SP
2022-04-26 10:33:49 +02:00
Holger Vogt 648ba396ff Add missing makefile.am in src/math/dense
and add src/math/dense to AC_CONFIG_FILES
in configure.ac
2022-02-17 15:48:25 +01:00
Holger Vogt 3b0eb41c74 Enable compiling with --enable-sp for RF SPICE
Set preprocessor flag RFSPICE
Add new files and directory 'dense' ('dense' is still buggy)
2022-02-17 15:48:19 +01:00
Holger Vogt 4b48c4c6ba We are now developing ngspice-36+ 2022-01-01 15:33:14 +01:00
Holger Vogt b164f5d2c6 Prepare for ngspice-36 2021-12-18 13:45:53 +01:00
Holger Vogt 3f322e1954 Add a check for sys/sysctrl.h, which has been declared deprecated,
and which may not be available (in the future) on some systems.
2021-09-29 20:17:23 +02:00
Holger Vogt bdd8991d84 We are now developing ngspice-35+ 2021-09-29 19:55:52 +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 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 4feb43e067 Prepare ngspice-35 2021-07-22 20:38:08 +02:00
Holger Vogt 1d7e54d741 Enable including 'readline' from a non standard location.
--with-readline=<location> may be given instead of --with-readline=yes
This is required when on macOS readline is installed from Homebrew.
Standard Xcode readline in macOS is not compatible with ngspice.
If --with-readline=yes is given, there is no change of behaviour
compared with previous releases.
2021-07-05 14:30:52 +02:00