3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-24 01:25:33 +00:00
Commit graph

15042 commits

Author SHA1 Message Date
Krystine Sherwin
3b1b09baf6
Can clean boxed modules
If a selection contains a boxed module, but does not select boxes, it should be removed from the selection.
2025-03-14 14:05:40 +13:00
Krystine Sherwin
2f907e8be4
Unify Design::selected_modules variants
Now uses two enums, one to control whether or not to include partially selected
modules (and what to do if they are encountered), and one to control whether or
not to include boxed modules (and what to do if they are encountered).

Mark Design::selected{modules, whole_modules}() deprecated and make them
provide warnings on boxes. There are a lot of places that use them and I can't
always tell which ones support boxed modules and which don't.
2025-03-14 14:05:40 +13:00
Krystine Sherwin
061c234559
tests/select: Add tests for selections with boxes 2025-03-14 14:05:40 +13:00
Krystine Sherwin
398afd102e
Refactor full_selection
The `Design::selected_*()` methods no longer unconditionally skip boxed modules.  Instead, selections are now box and design aware.
The selection constructor now optionally takes a design pointer, and has a new `selects_boxes` flag.  If the selection has an assigned design, then `Selection::selected_*()` will only return true for boxed modules if the selects_boxes flag is set.  A warning is raised if a selection is checked and no design is set.  Selections can change design via the `Selection::optimize()` method.
Most places that iterate over `Design::modules()` and check `Selection::selected_module()` should instead use `Design::selected_modules()`.
Since boxed modules should only ever be selected explicitly, and `full_selection` (now) refers to all non-boxed modules, `Selection::optimize()` will clear the `full_selection` flag if the `selects_boxes` flag is enabled, and instead explicitly selects all modules (including boxed modules).  This also means that `full_selection` will only get automatically applied to a design without any boxed modules.

These changes necessitated a number of changes to `select.cc` in order to support this functionality when operating on selections, in particular when combining selections (e.g. by union or difference).
To minimize redundancy, a number of places that previously iterated over `design->modules()` now push the current selection to the design, use `design->selected_modules()`, and then pop the selection when done.

Introduce `RTLIL::NamedObject`, to allow for iterating over all members of a module with a single iterator instead of needing to iterate over wires, cells, memories, and processes separately.
Also implement `Module::selected_{memories, processes, members}()` to match wires and cells methods.  The `selected_members()` method combines each of the other `selected_*()` methods into a single list.
2025-03-14 14:05:39 +13:00
github-actions[bot]
e44d1d404a Bump version 2025-03-13 00:22:18 +00:00
Martin Povišer
6da543a61a
Merge pull request #4818 from povik/macc_v2
Add `$macc_v2`
2025-03-12 22:55:40 +01:00
KrystalDelusion
65748b8387
Merge pull request #4898 from Anhijkt/fix-xaiger-segfault
write_xaiger: Detect and error on combinatorial loops
2025-03-13 10:49:48 +13:00
KrystalDelusion
bf96ed322d
Merge pull request #4827 from aerkiaga/main
Update ALU MULT mode in gowin to match nextpnr
2025-03-13 10:49:37 +13:00
Miodrag Milanovic
1b07d204bb Next dev cycle 2025-03-12 09:11:41 +01:00
Miodrag Milanovic
c4b5190229 Release version 0.51 2025-03-12 08:31:37 +01:00
Miodrag Milanovic
81639073a3 Update ABC to fix mingw build issue 2025-03-12 07:34:33 +01:00
github-actions[bot]
d1222c57af Bump version 2025-03-12 00:21:49 +00:00
Jason Xu
a5f34d04f8 Address comments 2025-03-11 18:50:44 -04:00
Martin Povišer
a7267f4f7b
Merge pull request #4933 from povik/bump-abc2
Bump ABC
2025-03-11 22:37:15 +01:00
Martin Povišer
1ed0719a0a Revert CaDiCaL addition 2025-03-11 20:19:03 +01:00
Martin Povišer
f82a26e7e8 Bump ABC 2025-03-11 19:31:38 +01:00
Emil J. Tywoniak
6c9857403c share: use share.pattern_limit from scratchpad 2025-03-11 14:57:00 +01:00
github-actions[bot]
6462cd2167 Bump version 2025-03-11 00:22:03 +00:00
Anhijkt
be3dfdc5ad splitcells: add tests 2025-03-10 19:41:22 +02:00
Emil J. Tywoniak
ca9176cd0f share: bail better on too many patterns 2025-03-10 17:55:04 +01:00
Emil J
7677a76fed
Merge pull request #4757 from YosysHQ/emil/yosys-config-version
Makefile: add YOSYS_VER and friends to CXXFLAGS for plugin compat che…
2025-03-10 17:43:55 +01:00
N. Engelhardt
c74df780b7
Merge pull request #4884 from YosysHQ/docs-preview-functional_tutorial
Docs: More on FunctionalIR
2025-03-10 15:05:55 +00:00
Emil J. Tywoniak
ecd8e4303d Makefile: add YOSYS_VER and friends to CXXFLAGS for plugin compat check fallback 2025-03-10 15:15:34 +01:00
Martin Povišer
d8a4991289
Merge pull request #4931 from povik/buf-clean
opt_clean, simplemap: Add `$buf` handling
2025-03-10 15:10:17 +01:00
Emil J. Tywoniak
1d773b50a4 opt_merge: fix dangling pointers in known_cells when keep attribute is used 2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
33bfc9d19c opt_merge: test more kinds of cells 2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
ae7a97cc2d opt_merge: test some unary cells 2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
176faae7c9 opt_merge: fix trivial binary regression 2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
8903740147 opt_merge: switch to unordered_set 2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
ffc057a89c opt_merge: fix the many collisions case 2025-03-10 13:14:06 +01:00
Emil J. Tywoniak
cbb776c626 opt_merge: avoid hashing strings 2025-03-10 13:14:06 +01:00
Emil J
8bb24badf2
Merge pull request #4895 from YosysHQ/emil/fix-share-portbit-infinite-loop
share: fix infinite loop in find_terminal_bits on $mux loop
2025-03-08 13:14:11 +01:00
Jason Xu
98eefc5d1a Add file list support to read pass 2025-03-07 20:44:21 -05:00
Jason Xu
bf1eab565b Fix compile on WASI platform 2025-03-07 20:20:27 -05:00
Jason Xu
ac31bad656 Address all comments 2025-03-07 20:16:28 -05:00
Jason Xu
8ec96ec806 Address most comments 2025-03-07 20:16:28 -05:00
Jason Xu
0678c4dec9 Coding style update 2025-03-07 20:16:28 -05:00
Jason Xu
8f46f53f18 Add clangd cache to gitignore file 2025-03-07 20:16:28 -05:00
Jason Xu
f62a9be153 Initial file list support 2025-03-07 20:16:28 -05:00
Martin Povišer
9f7cdd4bd4
Merge pull request #4262 from RoaLogic/master
MAX10 updates
2025-03-07 19:59:55 +01:00
Martin Povišer
557047fe1e opt_clean, simplemap: Add $buf handling 2025-03-07 16:08:38 +01:00
Krystine Sherwin
c9785584da
docs/rosette: Fix tenses 2025-03-07 08:39:21 +13:00
KrystalDelusion
176131b50e
Merge pull request #4855 from YosysHQ/contributing_md
Initial version of CONTRIBUTING.md
2025-03-04 15:57:33 +13:00
Emil J
39aacc95df
Merge pull request #4907 from YosysHQ/emil/fix-clear-preset-latch
liberty: fix clear and preset latches
2025-03-03 18:53:12 +01:00
Emil J
912c93ca0b
share: help message formatting
Co-authored-by: KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com>
2025-03-03 18:52:05 +01:00
N. Engelhardt
0dfd9e9395
Merge pull request #4868 from david-sawatzke/improve_tcl_output_docs
tcl: Update help message to clarify usage of `result.string`
2025-03-03 15:16:42 +00:00
N. Engelhardt
268a034b21
Merge pull request #4866 from YosysHQ/ql_ioff
add IOFF inference for qlf_k6n10f
2025-03-03 14:12:09 +00:00
Krystine Sherwin
b56e3ec6e4
docs/functional: Minimal backend paragraphs
I was thinking about compiling the dummy example and including a simple example usage, but it turns out functional.h isn't (currently) available for extensions.
2025-03-01 16:15:54 +13:00
KrystalDelusion
9106d6b3bd
Merge pull request #4881 from YosysHQ/pmgen-pass-restructure
Move passes out of the passes/pmgen folder
2025-03-01 10:22:54 +13:00
Anhijkt
de032d2e2a splitcells: change for-loop condition 2025-02-28 23:16:04 +02:00