Commit Graph

13343 Commits

Author SHA1 Message Date
Martin Povišer e1e77a7fa9 check: Extend testing 2024-03-11 10:45:17 +01:00
Martin Povišer b6112b3551 check: Consider read ports in loop detection 2024-03-11 10:45:17 +01:00
Martin Povišer 3a1ef44564 celledges: Describe asynchronous read ports 2024-03-11 10:45:17 +01:00
Martin Povišer 3eef6450f1 check: Add coarse-grain false positive test 2024-03-11 10:43:49 +01:00
Martin Povišer fa74d0bd1a check: Use cell edges data in detecting combinational loops 2024-03-11 10:43:49 +01:00
Martin Povišer c5ae74af34 check: Improve found loop logging
Print the detected loop in-order, and include source location for each
node, if available.
2024-03-11 10:43:49 +01:00
Martin Povišer 6e5f40e364 utils: Save detected loops with their nodes in-order 2024-03-11 10:43:49 +01:00
github-actions[bot] 078b876f50 Bump version 2024-03-09 00:14:37 +00:00
Krystine Sherwin 344ca18239
Makefile: Move CXX print to echo-cxx 2024-03-09 10:25:41 +13:00
Krystine Sherwin 56f66596b0
Change default CONFIG to none
- Use default value of `CXX` instead of forcing override to `clang++`.
- Add base `CXXFLAGS` and `ABCMKARGS` in else condition of `ifeq ($(CONFIG),..)`
  block and output the value of `CXX`.
- Change readme to mention `CXX` envvar and that using `make config-clang` etc
  will ignore `CXX`.
2024-03-09 10:25:41 +13:00
Miodrag Milanović 6d528ef808
Merge pull request #4271 from YosysHQ/macos-fix
ci: Fix mac builds
2024-03-08 14:17:32 +01:00
N. Engelhardt d70113a909
Merge pull request #3972 from nakengelhardt/celledges_shift_ops
celledges: support shift ops
2024-03-08 09:35:47 +01:00
Krystine Sherwin b4da6b80f8
ci: Fix mac builds 2024-03-08 11:56:01 +13:00
Martin Povišer 570a8f12b5
synth: Fix out-of-sync help message
Co-authored-by: N. Engelhardt <nakengelhardt@gmail.com>
2024-03-06 14:55:43 +01:00
github-actions[bot] e9cd6ca9e8 Bump version 2024-03-06 00:16:02 +00:00
Catherine f60b77a7f0 cxxrtl: add ability to record/replay diagnostics.
Note that this functionality is only used by diagnostics emitted by
the C++ testbench; diagnostics emitted by the RTL in `eval()` do not
need to be recorded since they will be emitted again during replay.
2024-03-05 17:00:02 +00:00
Jannis Harder 04ecabdd1f
Merge pull request #4222 from jix/pdr-X
write_aiger: Include `$assert` and `$assume` cells in -ywmap output
2024-03-05 15:13:51 +01:00
Jannis Harder 0db76c6ec4 tests/sva: Skip sva tests that use SBY until SBY is compatible again
This commit is part of a PR that requires corresponding changes in SBY.
To prevent CI failures, detect whether those changes already landed and
skip the SBY using tests until then.
2024-03-05 14:37:33 +01:00
github-actions[bot] 1e42b4f0f9 Bump version 2024-03-05 00:15:21 +00:00
Krystine Sherwin 3635f911dc
Docs: Updates from @povik comments 2024-03-05 05:57:27 +13:00
Krystine Sherwin 1455941ab9
Merge branch 'master' into krys/docs 2024-03-05 05:48:46 +13:00
Krystine Sherwin 3596025283
docs: Remove TODOs from output
Remove highlighting of wreduce/opt_clean bug.
2024-03-05 05:44:40 +13:00
Jannis Harder ff6c29ab1e Update abc revision 2024-03-04 16:53:03 +01:00
Jannis Harder 97db1cb745 smtbmc: Cache hierarchy for loading multiple yw files
This will be used by sby/tools/cexenum via the incremental interface.
2024-03-04 16:53:03 +01:00
Jannis Harder d03c5e2a00 smtbmc: Break dependency recursion during unrolling
Previously `unroll_stmt` would recurse over the smtlib expressions as
well as recursively follow not-yet-emitted definitions the current
expression depends on. While the depth of smtlib expressions generated
by yosys seems to be reasonably bounded, the dependency chain of
not-yet-emitted definitions can grow linearly with the size of the
design and linearly in the BMC depth.

This makes `unroll_stmt` use a `list` as stack, using python generators
and `recursion_helper` function to keep the overall code structure of
the previous recursive implementation.
2024-03-04 16:53:03 +01:00
Jannis Harder d8cdc213a6 rename -witness: Bug fix and rename formal cells
Rename formal cells in addition to witness signals. This is required to
reliably track individual property states for the non-smtbmc flows.

Also removes a misplced `break` which resulted in only partial witness
renaming.
2024-03-04 16:53:03 +01:00
Jannis Harder 6469d90293 write_aiger: Include `$assert` and `$assume` cells in -ywmap output 2024-03-04 16:53:03 +01:00
Jannis Harder 16f6386613
Merge pull request #4224 from povik/equiv_simple-fix
equiv_simple: Take FFs into account for driver map
2024-03-04 15:53:34 +01:00
Martin Povišer 8d004661dc
Merge pull request #4254 from thorpej/dev/pkgsrc-patch-NetBSD-1
Add NetBSD support
2024-03-04 11:22:34 +01:00
Martin Povišer 7a83a27fff
Merge pull request #4255 from YosysHQ/emcc_fix
Fix emcc build
2024-03-04 11:21:18 +01:00
Krystine Sherwin 9b47f3204e
Makefile: Fix emcc build
Remove deprecated (and unnecessary?) `--memory-init-file 0` from `EMCC_LINKFLAGS`.
2024-03-04 12:28:41 +13:00
Jason Thorpe a02d4e7853 Tweak the FreeBSD version of proc_self_dirname() to work on NetBSD use it. 2024-03-03 07:54:39 -08:00
Martin Povišer d2a7ce04ea synth: Rename `-inject` to `-extra-map` 2024-03-01 10:54:51 +01:00
github-actions[bot] 91fbd58980 Bump version 2024-02-27 00:15:58 +00:00
Catherine da2e9386f0 cxxrtl: install `cxxrtl_time.h` and `cxxrtl_replay.h`. 2024-02-26 17:55:56 +00:00
Martin Povišer 1fb71656b4
Merge pull request #4229 from povik/cut-notice
Cut down startup banner
2024-02-26 16:26:31 +01:00
Martin Povišer dd11a5a37c Shrink further 2024-02-26 16:25:46 +01:00
N. Engelhardt 6dc5da3ed9
Merge pull request #4232 from povik/mem-ui-fixes
opt_mem, memory_*: Refuse to operate in presence of processes
2024-02-26 16:09:27 +01:00
Catherine 639a8d83e4
Merge pull request #4234 from RCoeurjoly/master
´Use g++ and clang++ instead of gcc and clang as C++ compilers
2024-02-26 12:47:20 +00:00
Catherine 1a44645aef cxxrtl: expose scope information in the C++ API.
This commit adds a `debug_scopes` container, which can collect metadata
about scopes in a design. Currently the only scope is that of a module.
A module scope can be represented either by a module and cell pair, or
a `$scopeinfo` cell in a flattened netlist. The metadata produced by
the C++ API is identical between these two cases, so flattening remains
transparent to a netlist with CXXRTL.

The existing `debug_items` method is deprecated. This isn't strictly
necessary, but the user experience is better if the path is provided
as e.g. `"top "` (as some VCD viewers make it awkward to select topmost
anonymous scope), and the upgrade flow encourages that, which should
reduce frustration later.

While the new `debug_items` method could still be broken in the future
as the C++ API permits, this seems unlikely since the debug information
can now capture all common netlist aspects and includes several
extension points (via `debug_item`, `debug_scope` types).

Also, naming of scope paths was normalized to `path` or `top_path`,
as applicable.
2024-02-26 12:42:48 +00:00
Catherine d903f47d41 write_cxxrtl: don't assert on `-noflatten` with `-g4`. 2024-02-26 12:42:48 +00:00
Catherine 569a6d7fea cxxrtl: make blackbox `commit()` possible to override.
This fixes a regression introduced when commit observers were added.
2024-02-26 10:29:19 +00:00
Roland Coeurjoly 5fa609b6bf Fix help of yosys-config.in and provide backward compatibility 2024-02-25 18:48:21 +01:00
Roland Coeurjoly cf7b6c66f0 Changes in misc/yosys-config.in. LDLIBS -> LIBS. LDFLAGS -> LINKFLAGS. 2024-02-25 18:35:43 +01:00
Roland Coeurjoly 4a2fb18718 Changes in libs, passes and tests Makefiles. LDLIBS -> LIBS. LDFLAGS -> LINKFLAGS. CXX is clang++ or g++, not clang and gcc 2024-02-25 17:23:56 +01:00
Roland Coeurjoly dea4aeae56 LDLIBS -> LIBS. LDFLAGS -> LINKFLAGS 2024-02-25 17:02:35 +01:00
Roland Coeurjoly 033fa10307 We use CXX instead of LD for linking yosys-filterlib 2024-02-25 16:49:28 +01:00
Roland Coeurjoly a69a89f2e5 LD is removed, we use CXX instead 2024-02-25 16:43:55 +01:00
Roland Coeurjoly fe34abab3a ´Use g++ and clang++ instead of gcc and clang as C++ compilers 2024-02-23 14:03:12 +01:00
Martin Povišer 030d639201 opt_mem, memory_*: Refuse to operate in presence of processes
Processes can contain `MemWriteAction` entries which are invisible to
most passes operating on memories but which will be lowered to write
ports later on by `proc_memwr`. For that reason we can get corrupted
RTLIL if we sequence the memory passes before `proc`. Address that by
making the affected memory passes ignore modules with processes.
2024-02-23 12:27:53 +01:00