Commit Graph

6688 Commits

Author SHA1 Message Date
Brian Taylor a6b4f779fb Fix some comments. 2023-01-08 09:19:44 +01:00
Francesco Lannutti 0e30430506 enable compiling without XSPICE on specific OSs 2023-01-06 18:01:48 +01:00
Francesco Lannutti 4407614094 OSDI: fix const declaration, unused variables 2023-01-06 18:00:48 +01:00
Holger Vogt 864e722f4a For memcpy in PREDICTOR 2023-01-06 17:28:39 +01:00
Holger Vogt b1a806c35d A preliminary fix to bug report 612
Don't set series voltage sources when flag probe_alli_nox
is set in .spiceinit
2023-01-06 11:50:45 +01:00
Holger Vogt e8eae7aa85 Update to fcn tprint:
allow multiple printouts in a single simulation run,
without overwriting the previous printout.
2023-01-04 22:44:16 +01:00
Holger Vogt 1a50ca33cd enable 'off', 'print', 'save' being part of a node name.
Only plain 'off' (case of bipolar), or 'print', 'save'
(in case of CIDER) will not be allowed.
2023-01-04 15:35:21 +01:00
Brian Taylor 0d74a07316 Ensure that amatch output is not binary data. 2022-12-31 15:03:35 +01:00
Brian Taylor 9acee01604 Add variable ps_udevice_exit. If set non-zero, ngspice will exit if there is an error processing f_logicexp or f_pindly. 2022-12-31 15:03:31 +01:00
Brian Taylor de1c835edd Return errors from f_logicexp and f_pindly without calling exit. 2022-12-31 15:03:26 +01:00
Brian Taylor 3ca9f037bd Add more error checks for f_logicexp and f_pindly. 2022-12-31 15:03:18 +01:00
holger aacd4350c3 Prevent memory leak while "PREDICTOR" is selected 2022-12-27 18:02:04 +01:00
Brian Taylor dacbf453ab Remove the old inverter code. 2022-12-22 22:26:09 +01:00
Brian Taylor 6cb94f26a4 Refactor new_gen_output_models. 2022-12-22 22:26:03 +01:00
dwarning 96ba61ae1e add instance parameter mulu0 for mobility reduction bsim4.5 and 4.6 2022-12-22 14:19:50 +01:00
Holger Vogt 4335ca299b For OSDI n devices: Enable model translation,
if model has been inside subcircuit.
2022-12-21 22:07:11 +01:00
Giles Atkinson b576716caa Add limited support for string-valued parameters in .param lines.
The right-hand side of an assignment may be a string expression
made up from quoted strings, and identifiers for other string parameters,
optionally in braces.  There may be no un-quoted spaces.
Example: .param str4=str1"String 4"str2{str3}

Subcircuits may have default and actual string parameters, but the values
must be single identifiers, not quoted strings or string expressions.
2022-12-19 14:02:35 +01:00
Pascal Kuthe e8cca6900b slightly optimize predictor 2022-12-16 21:55:21 +01:00
Pascal Kuthe aa504f0eea ensure config.h is always included in cktdefs.h to ensure correct
type signature
2022-12-16 21:55:21 +01:00
Pascal Kuthe bca48b5e78 ensure compilation succedes without OSDI 2022-12-16 21:55:21 +01:00
Pascal Kuthe c90f791a5f removed unneded changes 2022-12-16 21:55:21 +01:00
Pascal Kuthe c1f37e61c0 fix opvar readout 2022-12-16 21:55:21 +01:00
Pascal Kuthe 29f3108fab fix typos 2022-12-16 21:55:21 +01:00
Pascal Kuthe 23e9d417a4 add openmp support for osdi 2022-12-16 21:55:20 +01:00
Holger Vogt 1cfda7c374 Suppress model type warning when device is of type N. 2022-12-16 21:55:19 +01:00
Holger Vogt 27f50ade31 Prevent double definition error when both OSDI and XSPICE are enabled. 2022-12-16 21:55:19 +01:00
Holger Vogt dee718108b Replace 'a' by 'n' for OSDI device 2022-12-16 21:55:19 +01:00
Holger Vogt 5034cf5923 Move reference designator from A to N
replace inp2n by a copy of inp2a
OSDI is now called in case N: in inppas2
2022-12-16 21:55:19 +01:00
Holger Vogt a2285e5a70 Revert previous commit: now treat a devices like ordinary devices. 2022-12-16 21:55:18 +01:00
Holger Vogt c2395a5b5a Preliminary fix to get_number_terminals:
check for tokens with '=' to stop and get number of nodes by
stepping back.
2022-12-16 21:55:18 +01:00
Holger Vogt cdc0e6f22a 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-12-16 21:55:18 +01:00
Holger Vogt ed438b43bc Add case 'a' to fcn translate.
This is a hack, to be removed/altered when switching to
reference designator N instead of A.
2022-12-16 21:55:18 +01:00
Holger Vogt e9fc1de05a Initialze sim_param_vals 2022-12-16 21:55:17 +01:00
Holger Vogt 337b59016d remove __attribute__, replace by __declspec 2022-12-16 21:55:17 +01:00
Holger Vogt e5a7992db2 Add include file shlwapi.h 2022-12-16 21:55:17 +01:00
Pascal Kuthe b28708cf82 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-16 21:55:17 +01:00
Brian Taylor daca402291 Distinguish between set/reset delays when possible. 2022-12-11 16:08:40 +01:00
Brian Taylor be2fe6d128 Make it optional to use zl/zh/lz/hz delays for utgate. 2022-12-11 16:08:31 +01:00
Brian Taylor f6250183c6 Avoid unnecessary calculations for utgate. 2022-12-11 16:08:23 +01:00
Brian Taylor bf14ec6d10 For utgate timing models, if hl/lh are not present use zl/zh/lz/hz to give a more accurate tristate delay. 2022-12-11 16:08:19 +01:00
Brian Taylor c7b7d14dd6 More conservative delay estimates for timing model type ugff. 2022-12-11 16:08:02 +01:00
Brian Taylor 2dc44d8079 For dff/jkff, obtain more conservative estimates for clk_delay, set_delay and reset_delay. 2022-12-11 16:07:33 +01:00
Holger Vogt d2833ac133 re-enable making old app nutmeg 2022-12-08 09:26:15 +01:00
Holger Vogt 23f72dd75c Repair the broken --enable-oldapps option 2022-12-07 14:35:11 +01:00
Holger Vogt 1b121307c8 Remove unused variable debarr.
Add another example.
2022-12-04 10:41:22 +01:00
Holger Vogt c8ba722117 Add a function ddt (derivative versus time) to the B-source funtion parser. 2022-12-04 10:41:06 +01:00
Brian Taylor 5238d6f18a Rewrite extract_model_param. 2022-12-04 10:39:47 +01:00
Brian Taylor a317639d23 Modify the delay calculation for non-conforming timing model in .subckt CD4572UB. 2022-12-04 10:39:40 +01:00
Holger Vogt ec0807bafd For monotonic plotting find out the majority of increasing or decreasing
x-axis values, add a warning to add 'retraceplot' to plot all if more than
10% of the values deviate from the majority.
2022-12-04 10:35:44 +01:00
Holger Vogt 012ec72b0d Prevent seg fault after strange input like
*no circuit
.save all
.probe alli
.op
.end
2022-12-01 23:17:11 +01:00