3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-23 17:15:33 +00:00
Commit graph

15013 commits

Author SHA1 Message Date
Jannis Harder
4b273a4ae9 share: Cleanup and additional testing
Fixes a typo and adds another test case that triggers the fallback
behavior as the existing tests all trigger the new optimization.
2025-04-15 12:34:46 +02:00
Jannis Harder
7593b5b224 share: Only print optimized activation patterns when different
This removes redundant information from the log and makes it easier to
spot where the new optimization had an effect.
2025-04-15 12:34:46 +02:00
Jannis Harder
27ed77ea24 share: Keep filtered activation patterns for the supercell
The previous commit introduced code that optimizes the activation
patterns to be able to generate smaller activation logic. The resulting
supercell was then enqueued as shareable using those optimized
activation patterns. The condition represented by the optimized patterns
is an over-approximation of the actual activiation condition. This means
using it as activiation for the supercell loses precision and pessimises
sharing of the supercell with further cells, breaking the sat/share
test.

This commit fixes that by using the optimized activiation patterns only
for the generation of activation logic and using the original patterns
for enqueuing the supercell.
2025-04-15 12:34:46 +02:00
Jannis Harder
6dff9e7787 share: Restrict activation patterns to potentially relevant signals
In case the two sets of activation patterns are mutually exclusive
without considering the logic feeding into the activation signals, an
activation condition can only be relevant if present in both sets with
opposite polarity.

This detects pattern-only mutual exclusion by running an additional SAT
query before importing the input cone logic. If that is already UNSAT,
we remove all non-relevant condition and re-simplify the remaining
patterns.

In cases of pattern-only mutual exclusion, this will often produce much
smaller selection logic and avoid the more costly SAT query that
includes the input cones.
2025-04-15 12:34:46 +02:00
Emily Schmidt
19845be85c reflow dft docs to 80 cols 2025-04-15 09:57:14 +01:00
Emily Schmidt
bfed96ad88 some fixes and rewordings of the dft docs 2025-04-15 09:57:14 +01:00
Emily Schmidt
ea6e5b3c48 add changes to dft docs suggested by Krystine 2025-04-15 09:57:14 +01:00
Emily Schmidt
30486079f9 add dft_tag documentation 2025-04-15 09:57:14 +01:00
github-actions[bot]
ea2c1e7ac7 Bump version 2025-04-15 00:23:32 +00:00
KrystalDelusion
0644724c9e
Merge pull request #4995 from akashlevy/pyosys_namedobject
Add `NamedObject` to `py_wrap_generator.py`
2025-04-15 11:11:59 +12:00
KrystalDelusion
33dfc2ec6a
Merge pull request #5021 from YosysHQ/emil/memory_libmap-fix-allocation
memory_libmap: fix MapWorker memory allocation
2025-04-15 11:02:42 +12:00
Miodrag Milanovic
c79379db02 Run wheels each Sunday at 10AM 2025-04-14 15:22:38 +02:00
Miodrag Milanović
9f25f972dc
Merge pull request #5008 from donn/wheel_builds_fix
wheels: fix builds, add linux aarch64 to ci
2025-04-14 15:10:37 +02:00
Donn
b7062143e1 hotfix: fix CHECK_BOOST_PYTHON missing libpython 2025-04-14 14:54:38 +02:00
Donn
c18f1310a5 Revert #4901
Partially reverts commit 9c5bffcf93.

The reasoning behind this is that setup.py is intended to strictly consume the Makefile and not be consumed by it. The attempt at using them recursively has caused a number of issues and has rendered Pyosys unusable to some users: See https://github.com/YosysHQ/yosys/issues/5012

Additionally, unlike the previous pyosys installation target, the wheel installation does not respect PREFIX=, only venvs.

For installation inside a venv, the intended method should remain a user manually executing `pip3 install .` instead of relying on the Makefile.
2025-04-14 14:45:41 +02:00
Emil J. Tywoniak
872a197e94 memory_libmap: fix MapWorker memory allocation 2025-04-14 12:41:14 +02:00
Martin Povišer
38beae1e06
Merge pull request #4946 from povik/cost-cc-enhance
cost: Add `$mem_v2`, `$macc_v2` estimates
2025-04-14 11:08:59 +02:00
github-actions[bot]
9d3d0a4336 Bump version 2025-04-12 00:22:23 +00:00
KrystalDelusion
a2e1d0165f
Merge pull request #5016 from YosysHQ/krys/zizmor
CI: Fixes from zizmor
2025-04-12 09:02:59 +12:00
KrystalDelusion
75d07ed307
Merge pull request #4854 from YosysHQ/krys/cutpoint_blackbox
Add -blackbox option to cutpoint pass
2025-04-11 20:22:45 +12:00
Krystine Sherwin
87d3b09988
cutpoint.cc: Fold -instances into -blackbox
Replace `cutpoint -blackbox` behaviour with `cutpoint -blackbox -instances` behaviour.
Drop `-instances` flag.
Add `-noscopeinfo` flag.
Use `RTLIL::Selection::boxed_module()` helper to shortcut blackbox check.
Update `cutpoint_blackbox.ys` tests to match.
2025-04-11 04:12:35 +12:00
Krystine Sherwin
779a1fddf6
Testing cutpoint with boxed selections 2025-04-11 04:12:34 +12:00
Krystine Sherwin
8b1cc6e05e
cutpoint: Use new selection helpers 2025-04-11 04:12:34 +12:00
Krystine Sherwin
44545653ef
hierarchy: Ignore width mismatch from verific
But only if it's also a blackbox module with parameters (i.e. it *could* be parametrizable width).
2025-04-11 04:12:34 +12:00
Krystine Sherwin
b705c546ea
cutpoint: Add -blackbox -instances
Replace module instances instead of module contents.

This fixes parametrisable width mismatch with read_verilog frontend, but not verific frontend.
2025-04-11 04:12:34 +12:00
Krystine Sherwin
cf44a9124f
cutpoint: Test -blackbox with parameter
Modify `cutpoint_blackbox.ys` to check that parameters on blackbox modules are maintained after the cutpoint.
Also adjusts the test to check that each instance gets the `$anyseq` cell.
2025-04-11 04:12:34 +12:00
Krystine Sherwin
ca57df8927
cutpoint: Add $scopeinfo cell
Also adds "blackbox" as a valid TYPE.
2025-04-11 04:12:34 +12:00
Krystine Sherwin
583771ef5b
cutpoint: Add -blackbox option
Replace the contents of all blackboxes in the design with a formal cut point.
Includes test script.
2025-04-11 04:12:34 +12:00
N. Engelhardt
3410e10ed5
Merge pull request #5000 from YosysHQ/krys/re_refactor_selections 2025-04-10 16:06:36 +00:00
github-actions[bot]
33c57937cd Bump version 2025-04-10 00:22:42 +00:00
Emil J
a5e8f52ce5
Merge pull request #4976 from Logikable/main
Support array ranges for identifiers in the Liberty parser.
2025-04-09 22:49:52 +02:00
Emily Schmidt
32ec5a9ccd Revert "add dft_tag documentation"
This reverts commit 2443facc46.
2025-04-09 10:34:11 +01:00
Emily Schmidt
2443facc46 add dft_tag documentation 2025-04-09 10:18:25 +01:00
Donn
2bc2105d82 wheels: fix builds, add linux aarch64 to ci
Essentially, something is attempting to build the Yosys EXE when you build libyosys.so now. With `ENABLE_PYTHON_CONFIG_EMBED=0`, the Yosys EXE will always fail to build.

Furthermore, because `ENABLE_PYOSYS` now attempts to build a wheel, building a wheel has become recursive.

This commit uses a supplementary set of libs for the EXE (EXE_LIBS) so it and libyosys.so can be built simultaneously, as well as a new Makefile flag, `ENABLE_WHEEL`, to prevent the aforementioned recursion.

I also enabled aarch64 Linux in the CI because it's publicly available now.
2025-04-09 10:42:40 +02:00
Miodrag Milanovic
a2c0847667 Next dev cycle 2025-04-09 08:21:08 +02:00
Miodrag Milanovic
fee39a3284 Release version 0.52 2025-04-09 07:38:42 +02:00
github-actions[bot]
f602248a2e Bump version 2025-04-09 00:22:49 +00:00
Miodrag Milanović
c261da4e79
Merge pull request #5001 from YosysHQ/micko/abc
Update to latest ABC
2025-04-08 18:20:41 +02:00
Miodrag Milanovic
a9656455b1 Update to latest ABC 2025-04-08 17:39:41 +02:00
Miodrag Milanovic
406ee4c8d3 read_verilog_file_list: change short help message to start with lower case 2025-04-08 13:20:16 +02:00
Krystine Sherwin
078602d711
tests/arch/xilinx: Fix for warnings on boxes
The two test scripts affected use boxed modules directly; under normal usage the warning shouldn't appear.
2025-04-08 16:58:59 +12:00
Krystine Sherwin
237e454131
design.cc: Fix selections when copying
Use `Design::selected_modules()` directly, popping at the end instead of copying the selection.
Also default to a complete selection so that boxes work as before.
Simplify to using `RTLIL::SELECT_WHOLE_CMDERR` instead of doing it manually.
Also add tests for importing selections with boxes.
2025-04-08 16:35:12 +12:00
Krystine Sherwin
911a3ae759
setattr.cc: Use new selection helpers
Also test they work as expected.
2025-04-08 15:34:48 +12:00
github-actions[bot]
857baf2031 Bump version 2025-04-08 00:22:31 +00:00
Krystine Sherwin
dbc2611dd6
test_select: Add and exercise test_select pass
Developer facing, intended to check internal selection semantics work as expected.  i.e. it would have revealed the bug in the now reverted PR.
2025-04-08 11:59:45 +12:00
Krystine Sherwin
f042c36898
rtlil.h: Extra comment on helper enums
i.e. making explicit the ones that aren't intended for direct use.
2025-04-08 11:59:42 +12:00
Krystine Sherwin
f410f98d89
clean ignores boxes 2025-04-08 11:59:40 +12:00
Krystine Sherwin
1ef9908a85
rtlil.cc: Fix box checks in selected_modules 2025-04-08 11:59:36 +12:00
Krystine Sherwin
7d7ee5d9bf
rtlil.h: Fix selection ctor ordering 2025-04-08 11:59:32 +12:00
Krystine Sherwin
cd3b914132
Reinstate #4768
Revert the reversion so that we can fix the bugs that the PR missed.
2025-04-08 11:58:05 +12:00