3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-09-30 21:19:30 +00:00
Commit graph

2188 commits

Author SHA1 Message Date
Jannis Harder
47639f8a98
Merge pull request #5388 from jix/bufnorm-followup
Refactor and fixes to incremental bufNormalize + related changes
2025-09-29 15:15:29 +02:00
Jannis Harder
6a7372626a
Merge pull request #5389 from jix/sva_continue
verific: New `-sva-continue-on-error` import option
2025-09-29 15:07:54 +02:00
Martin Povišer
ffe2f7a16d opt_hier: Fix two optimizations conflicting
Fix a conflict between the following two:

 * propagation of tied-together inputs in
 * propagation of unused inputs out
2025-09-29 12:27:27 +02:00
Jannis Harder
86fb2f16f7 bufnorm: Refactor and fix incremental bufNormalize
This fixes some edge cases the previous version didn't handle properly
by simplifying the logic of determining directly driven wires and
representatives to use as buffer inputs.
2025-09-29 08:21:28 +02:00
Jannis Harder
4bb4b6c662 verific: Extend -sva-continue-on-err to handle FSM explosion
This also rolls back any added cells and wires, since we might have
added a lot of helper logic by the point we detect this.
2025-09-27 21:13:02 +02:00
KrystalDelusion
7ebd972165
Merge pull request #5277 from YosysHQ/krys/fix_4983_alt
autoname: Avoid integer overflow
2025-09-26 14:11:20 +12:00
Krystine Sherwin
941ba3b745
autoname.ys: Extra check for rename order
Disabling comparison with best score will cause this check to fail.  Preferred names will not be possible if $name2 has not yet been renamed.
2025-09-26 11:36:23 +12:00
Krystine Sherwin
fef6bdae6c
autoname.cc: Return number of renames
Was previously the number of proposed renames, but since renames can be skipped this causes the final count to differ from the number of actually renamed objects.
Check counts in `tests/various/autoname.ys`.
2025-09-26 11:05:50 +12:00
Jannis Harder
83dd99efb7 verific: New -sva-continue-on-error import option
This option allows you to process a design that includes unsupported
SVA. Unsupported SVA gets imported as formal cells using 'x inputs and
with the `unsupported_sva` attribute set. This allows you to get a
complete list of defined properties or to check only a supported subset
of properties. To ensure no properties are unintentionally skipped for
actual verification, even in cases where `-sva-continue-on-error` is
used by default to read and inspect a design, `hierarchy -simcheck` and
`hierarchy -smtcheck` (run by SBY) now ensure that no `unsupported_sva`
property cells remain in the design.
2025-09-24 18:58:54 +02:00
Emil J
5f6819fd76
Merge pull request #5361 from YosysHQ/emil/simplemap-transfer-src
simplemap: fix src attribute transfer
2025-09-23 20:40:57 +02:00
Emil Jiří Tywoniak
6527cc2134 gowin: fix test 2025-09-23 20:03:50 +02:00
KrystalDelusion
d4071b63f7
Merge pull request #5268 from YosysHQ/krys/cutpoint_inout
Track wire drivers in cutpoint
2025-09-24 04:14:19 +12:00
Miodrag Milanović
fcc3d7132d
Fix building and running unit tests (#5374)
* Fix building and running unit tests

* Enable unit tests

* Add gtest always

* test-sanitizers.yml: Use makefile.conf

* proper test setup

* make it run on macOS

* Run libyosys build only for unit tests after testing is done

* Disable LTO on public CI

---------

Co-authored-by: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com>
2025-09-23 17:10:18 +02:00
Emil J
a78eb9e151
Merge pull request #5315 from YosysHQ/emil/write_rtlil-no-sort
write_rtlil: don't sort
2025-09-22 11:14:39 +02:00
Emil J. Tywoniak
0d8c21129f rtlil: remove textual RTLIL reference tests for ease of maintenance 2025-09-19 16:23:26 +02:00
Jannis Harder
d88d6fce87 kernel: Rewrite bufNormalize
This is a complete rewrite of the RTLIL-kernel-side bufnorm code. This
is done to support inout ports and undirected connections as well as to
allow removal of cells while in bufnorm mode.

This doesn't yet update the (experimental) `bufnorm` pass, so to
manually test the new kernel functionality, it is important to only use
`bufnorm -update` and `bufnorm -reset` which rely entirely on the kernel
functionality. Other modes of the `bufnorm` pass may still fail in the
presence of inout ports or undirected connections.
2025-09-17 13:56:46 +02:00
Emil J. Tywoniak
85bcdee232 rtlil: fix roundtrip test on macOS due to sed non-POSIX non-sense 2025-09-16 15:47:38 +02:00
Emil J. Tywoniak
7e6126f753 rtlil: fix roundtrip test by eliminating absolute paths from src attributes with -relativeshare 2025-09-16 15:47:38 +02:00
Emil J. Tywoniak
73747f6928 read_verilog: add -relativeshare for synthesis reproducibility testing 2025-09-16 15:47:35 +02:00
Emil J. Tywoniak
175e024033 functional: in test, rely less on wreduce doing a perfect job 2025-09-16 15:47:16 +02:00
Emil J. Tywoniak
70e681ba7d rtlil: move test temporary files to temp directory 2025-09-16 15:47:16 +02:00
Emil J. Tywoniak
fdbdd193c1 rtlil: add roundtrip test for design -stash and design -save, fix #5321 2025-09-16 15:47:16 +02:00
Emil J. Tywoniak
4215f3c134 rtlil: add textual roundtrip test 2025-09-16 15:47:16 +02:00
Emil J. Tywoniak
118c1890b1 raise_error: don't rely on module ordering in test 2025-09-16 15:47:16 +02:00
rhanqtl
11b829ba70 fix(parse): #5234 adjust width of rhs according to lhs 2025-09-16 15:24:23 +02:00
Robert O'Callahan
29810f1e7c Make Const::is_*() functions work on packed bits without decaying to vector<State> 2025-09-16 03:17:24 +00:00
Robert O'Callahan
caaf9a4400 Const::decode_string() doesn't need to call bitvectorize 2025-09-16 03:17:24 +00:00
Robert O'Callahan
cb1186aac5 Make Const::as_string work without reducing packed bits to vector<State> 2025-09-16 03:17:24 +00:00
Robert O'Callahan
67a274ed1f Optimize Const::hash_into to hash packed bits efficiently 2025-09-16 03:17:24 +00:00
Robert O'Callahan
9ad83cc67b Fast path for Const::operator== 2025-09-16 03:17:24 +00:00
Robert O'Callahan
b597ad777e Make Const::as_bool and Const::as_int work with packed bits without decaying to vector<State> 2025-09-16 03:17:24 +00:00
Robert O'Callahan
b06085ab6c Make Const::Const(long long) constructor use packed bits internally if possible 2025-09-16 03:17:24 +00:00
Robert O'Callahan
9493292690 Update tests to avoid bits() 2025-09-16 03:17:23 +00:00
Robert O'Callahan
662a3df987 Update Const API with alternatives to direct use of bits()
In particular, `Const::resize()`, `Const::set()`, and `Const::iterator`.
2025-09-16 03:17:22 +00:00
Robert O'Callahan
03127173c6 Fix const_iterator postincrement behavior 2025-09-16 03:17:22 +00:00
Emil J. Tywoniak
bc24947a84 tests: replace CC and gcc with CXX and g++ 2025-09-11 16:50:23 +02:00
Emil J
5278b9cfe1
Merge pull request #5332 from YosysHQ/parse_specify-rebased
Add state_dependent_path_declaration so that `ifnone` can be parsed (rebased)
2025-09-09 21:53:04 +02:00
Michael Kupfer
75316e8c49 Add state_dependent_path_declaration so that ifnone can be parsed 2025-09-09 13:04:52 +02:00
Jannis Harder
985b9164da Disable flaky arch/anlogic/mux test 2025-09-09 10:04:08 +12:00
Jannis Harder
c468ee7add
Merge pull request #5304 from rocallahan/idstring-stringf
Support `IdString` parameters in `stringf()` and remove `.c_str()` in a lot of places
2025-09-08 20:29:20 +02:00
George Rennie
8fb3f88842 tests: remove -seq 1 from sat with -tempinduct where possible
* When used with -tempinduct mode, -seq <N> causes assertions to be
  ignored in the first N steps. While this has uses for reset modelling,
  for these test cases it is unnecessary and could lead to failures
  slipping through uncaught
2025-09-08 18:04:32 +02:00
Emil J. Tywoniak
62120bda06 verilog: test cases that look like SVA labels #862 2025-09-05 12:34:38 +02:00
Krystine Sherwin
bc77b6213b autoname: Fix selection arg 2025-09-05 00:15:26 +02:00
Krystine Sherwin
f45255f5a2 tests: More autoname tests 2025-09-05 00:15:26 +02:00
Robert O'Callahan
c41ba912d8 Support IdString parameters in stringf 2025-09-01 23:34:42 +00:00
Emil J
5aa71505fc
Merge pull request #5287 from Anhijkt/opt_dff-fix-5279
opt_dff: fix timeout issue
2025-09-01 11:20:35 +02:00
Emil J. Tywoniak
8333a83cef opt_dff: more explicit testing, typo 2025-08-27 11:29:57 +02:00
Emil J
a67a3ca49c
Merge pull request #4497 from YosysHQ/emil/bitpattern-comments
bitpattern: comments
2025-08-25 15:25:37 +02:00
Emil J. Tywoniak
01de9fb453 hashlib: extend unit test with subset collisions, shorten runtime 2025-08-20 00:08:23 +02:00
Robert O'Callahan
3a5742ffd2 Improve commutative hashing.
The simple XOR `commutative_eat()` implementation produces a lot of collisions.
https://www.preprints.org/manuscript/201710.0192/v1/download is a useful reference on this topic.

Running the included `hashTest.cc` without the hashlib changes, I get 49,580,349 collisions.
The 49,995,000 (i,j) pairs (0 <= i < 10000, i < j < 10000) hash into only 414,651 unique hash values.
We get simple collisions like (0,1) colliding with (2,3).

With the hashlib changes, we get only 707,099 collisions and 49,287,901 unique hash values.
Much better! The `commutative_hash` implementation corresponds to `Sum(4)` in the paper
mentioned above.
2025-08-19 21:45:52 +00:00