Commit Graph

8065 Commits

Author SHA1 Message Date
Pascal Kuthe ccdb8de644
add predictor to compile_min 2022-11-17 14:42:21 +01:00
Holger Vogt dcb5283e32
No longer needed, replaced by vngspice.vcxproj 2022-11-17 14:42:20 +01:00
Holger Vogt add76d2a32
Linear area transfer curves 2022-11-17 14:42:18 +01:00
Holger Vogt a1e41f3d48
Replace A dvice by N device 2022-11-17 14:42:13 +01:00
Holger Vogt 3e70f4680c
BSIMCMG preliminary test cases 2022-11-17 14:42:13 +01:00
Holger Vogt 580b4cbbe7
Update to device lib: device name starts with N 2022-11-17 14:42:11 +01:00
Holger Vogt 5c5d34d45b
Remove preprocessor flag XSPICE from MS project file, add it to config.h
instead.
Add OSDI-specific files to project.
2022-11-17 14:42:10 +01:00
Holger Vogt fcc9a4d832
Revert "remove unused"
This reverts commit cc2707cfdb.
2022-11-17 14:42:09 +01:00
Holger Vogt ebe426cec2
Suppress model type warning when device is of type N. 2022-11-17 14:42:08 +01:00
Holger Vogt 792cc717cf
device name now starts with N (instead of A). 2022-11-17 14:42:07 +01:00
Holger Vogt e501a31907
Prevent double definition error when both OSDI and XSPICE are enabled. 2022-11-17 14:42:06 +01:00
Holger Vogt 544fd6c64c
Replace 'a' by 'n' for OSDI device 2022-11-17 14:42:05 +01:00
Holger Vogt c048eb6ff3
Move reference designator from A to N
replace inp2n by a copy of inp2a
OSDI is now called in case N: in inppas2
2022-11-17 14:42:05 +01:00
Holger Vogt 1403f055a5
Move XSPICE preprocessor flag from vcxproj file to config.h 2022-11-17 14:42:04 +01:00
Holger Vogt de7814e585
enable OSDI 2022-11-17 14:42:03 +01:00
Holger Vogt 9866bc500c
(non-working) PSP102 examples 2022-11-17 14:42:02 +01:00
Holger Vogt 40aa8e8825
New and updated test cases 2022-11-17 14:42:01 +01:00
Holger Vogt 5341e200bc
Do not add to monitored files 2022-11-17 14:42:01 +01:00
Holger Vogt 46a006ea2a
Revert previous commit: now treat a devices like ordinary devices. 2022-11-17 14:42:00 +01:00
Holger Vogt 3d587979c4
Preliminary fix to get_number_terminals:
check for tokens with '=' to stop and get number of nodes by
stepping back.
2022-11-17 14:41:59 +01:00
Holger Vogt 89eecd005b
Visual Studio 2022 project files,
replacing the original project files.
2022-11-17 14:41:58 +01:00
Holger Vogt d2bbbb3e14
Exclude XSPICE specific error message.
Don't call fcn get_adevice_model_name().

Return a fixed value (5) for number of nodes:
This is wrong. It has to be replaced by a safe
method to figure out the number of terminals for
varying Verilog-A device models.
2022-11-17 14:41:58 +01:00
Holger Vogt 1a240ff2f3
Add case 'a' to fcn translate.
This is a hack, to be removed/altered when switching to
reference designator N instead of A.
2022-11-17 14:41:57 +01:00
Holger Vogt 5d736f31c8
Initialze sim_param_vals 2022-11-17 14:41:56 +01:00
Holger Vogt 9a8e0d8c79
remove __attribute__, replace by __declspec 2022-11-17 14:41:55 +01:00
Holger Vogt a4a3958253
Add include file shlwapi.h 2022-11-17 14:41:54 +01:00
Holger Vogt 0cd6718afc
undefine XSPICE, define OSDI 2022-11-17 14:41:54 +01:00
Holger Vogt 37389a4e25
remove unused 2022-11-17 14:41:53 +01:00
Pascal Kuthe f760c936bf
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-11-17 14:41:49 +01:00
Holger Vogt 8e5c76d8b3 Add error messages when controlled_exit is called:
No exit without message.
2022-11-16 11:37:35 +01:00
Pascal Kuthe ffe920117c calculate log frequency sweep such that start frequency and stop frequency are always exactly included 2022-11-14 11:34:49 +01:00
Pascal Kuthe c4247c4353 fix: allow hicum/l2 to compile with older c++ compilers 2022-11-14 10:25:03 +01:00
Holger Vogt fcc3191732 rename example file 2022-11-12 14:52:22 +01:00
Holger Vogt 0ea6dd8322 Examples moved to folder /various 2022-11-12 14:49:01 +01:00
Holger Vogt 7cf6b1f12b Examples for d_pwm and d_osc 2022-11-12 14:47:57 +01:00
Holger Vogt 743f20d04b Add new functions for operators x**y or x^y
compatmode hs: x>0 pow(x, y), x<0 pow(x, round(y)), X=0 0
compatmode lt: x>0 pow(x, y), x<0 pow(x, y) if y is close to integer, else 0
2022-11-12 14:35:26 +01:00
Holger Vogt eff183f51e Add new functions for operators x**y or x^y
compatmode hs: x>0 pow(x, y), x<0 pow(x, round(y)), X=0 0
compatmode lt: x>0 pow(x, y), x<0 pow(x, y) if y is close to integer, else 0
2022-11-12 14:35:01 +01:00
Brian Taylor b147aa0c3a Add safety braces. 2022-11-11 14:13:36 +01:00
Brian Taylor e770d96151 Tidy up debug tracing code. 2022-11-11 14:13:28 +01:00
Brian Taylor cd72c7960b Fix memory leaks. 2022-11-11 14:13:22 +01:00
Brian Taylor b0e9874de8 Add more vectors to behavioral 283 circuit. Add tristate buffer circuit which shows glitches until inertial delays are implemented. 2022-11-11 14:13:03 +01:00
Brian Taylor a922f797d3 When the gen_tab has only one entry, do not call optimize_gen_tab, it is not necessary. 2022-11-11 14:12:54 +01:00
Brian Taylor 574737b7b6 Check that the bparse gen_tab optimization loop finishes when no more improvements occur. 2022-11-11 14:12:47 +01:00
Holger Vogt 539176bf15 remove unused 2022-11-11 13:41:10 +01:00
Holger Vogt d6650e66f0 To find the nearest integer, use nearbyint(). trunc() has delivered
only one-sided answers.
2022-11-11 13:21:21 +01:00
Holger Vogt 5adef0cf36 AlmostEqualUlps setting has been too strict: it failed in MINGW gcc.
3 --> 10
2022-11-11 11:50:53 +01:00
Holger Vogt 0d86539638 Trim trailing spaces 2022-11-09 15:11:13 +01:00
Holger Vogt f9039ea238 Don't allocate memory for control array at every time step
Use loc instead, setting it up once during INIT
2022-11-09 15:09:52 +01:00
Holger Vogt 94a0030fde Add logicexp.c to fftw and shared project files 2022-11-07 17:50:21 +01:00
Brian Taylor 104afe77cb Remove asserts, replace fixed size lexer_buf. 2022-11-07 14:47:57 +01:00