3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-20 23:56:38 +00:00
Commit graph

15029 commits

Author SHA1 Message Date
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
KrystalDelusion bf386feba7
Merge pull request #4994 from marzoul/adrien-mux-x
Fix mux mapping for xilinx techno when all inputs are x
2025-04-08 11:50:46 +12:00
KrystalDelusion e08aeae1d0
Merge pull request #4989 from YosysHQ/krys/fix_4590
opt_expr: Fix #4590
2025-04-08 08:30:18 +12:00
Emil J cc8fd3efc3
Merge pull request #4986 from jix/faster-liberty-caching
Liberty file caching with new `libcache` command
2025-04-07 15:15:41 +02:00
Miodrag Milanović 1a820e259c
Merge pull request #4998 from YosysHQ/revert-4768-krys/refactor_selections
Revert "Refactor full_selection"
2025-04-07 15:12:59 +02:00
Miodrag Milanović d49364d96f
Revert "Refactor full_selection" 2025-04-07 12:11:55 +02:00
Adrien Prost-Boucle 3911a627a8 Clearer diff for the all-x corner case 2025-04-07 07:55:30 +02:00
Akash Levy 5a6b7e1e91 Add NamedObject to py_wrap_generator 2025-04-06 22:54:14 -07:00
Adrien Prost-Boucle 7a1729e609 Fix mux xilinx mapping when all inputs are x 2025-04-06 11:43:17 +02:00
KrystalDelusion 98d4355b82
Merge pull request #4768 from YosysHQ/krys/refactor_selections
Refactor full_selection
2025-04-05 14:15:27 +13:00
github-actions[bot] 331952f78d Bump version 2025-04-05 00:22:08 +00:00
KrystalDelusion 40c5694650
Merge pull request #4901 from akashlevy/pyosys_copy_abc
Copy `abc` stuff for pyosys to enable use of the `abc` pass
2025-04-05 10:57:02 +13:00
Krystine Sherwin d8a9ad6860
Add Selection::clear() method
Use method in `select.cc` to reduce code duplication.
2025-04-05 10:56:01 +13:00
Krystine Sherwin dab67f84da
rtlil.h: Document selections 2025-04-05 10:46:09 +13:00
Akash Levy 9c0da98531 Updates 2025-04-03 17:47:48 -07:00
Krystine Sherwin 406b400458
opt_expr: Fix #4590
If all the (non-select) inputs of a `$_MUX{4,8,16}_` are undefined, replace it, just like we do for `$mux` and `$_MUX_`.
Add `tests/opt/opt_expr_mux_undef.ys` to verify this.

This doesn't do any const folding on the wide muxes, or shrinking to less wide muxes.  It only handles the case where all inputs are 'x and the mux can be completely removed.
2025-04-04 12:25:31 +13:00
Sean Luchen 307db1ec50 Add tests for #4976. 2025-04-03 10:01:34 -07:00
Sean Luchen bdcbbf2db6 Fix existing tests/liberty tests, and add them to Makefile. 2025-04-03 09:56:24 -07:00
George Rennie 63b3ce0c77
Merge pull request #4971 from Anhijkt/pow-optimization
opt_expr: optimize pow of 2 cells
2025-04-03 14:34:36 +02:00
Jannis Harder 0f13b55173 Liberty file caching with new libcache command
This adds optional in-memory caching of parsed liberty files to speed up
flows that repeatedly parse the same liberty files. To avoid increasing
the memory overhead by default, the caching is disabled by default. The
caching can be controlled globally or on a per path basis using the new
`libcache` command, which also allows purging cached data.
2025-04-03 13:39:35 +02:00
Jannis Harder 26a4b9b0c6
Merge pull request #4981 from jix/faster-liberty-lexing
Improve lexer performance for read_liberty
2025-04-03 13:32:33 +02:00
KrystalDelusion 1cfe1e2813
Merge pull request #4974 from YosysHQ/micko/config_exitcode
yosys-config: Propagate exit code for help command
2025-04-03 09:56:13 +13:00
github-actions[bot] f03b44959b Bump version 2025-04-02 00:23:07 +00:00
Sean Luchen 4610889d27 Fix two parsing bugs that were causing private regression tests to fail.
These were introduced by 0a6d9f4.
1) While in a paren "(", don't error on newline.
2) Don't parse an extra token when parsing vector ranges. Let the caller parse the next token as necessary.
2025-04-01 13:01:00 -07:00
Anhijkt c57cbfa8f9 opt_expr: add test 2025-04-01 21:54:46 +03:00
Anhijkt 6b5507139e opt_expr: requsted changes 2025-04-01 20:37:22 +03:00
Miodrag Milanović 402af3ece7
Merge pull request #4982 from YosysHQ/micko/verific_fix_restore
verific: fix restoring msg state after blackbox import
2025-04-01 18:32:08 +02:00
Miodrag Milanovic 72f2185a94 verific: fix restoring msg state after blackbox import 2025-04-01 17:35:59 +02:00
Jannis Harder bc01468c75 read_liberty: Faster std::string construction in the liberty lexer
This extends the `LibertyInputStream` added in the previous commit to
allow arbitrary lookahead. Then this uses the lookahead to find the
total length of the token within the input buffer, instead of consuming
the token byte by byte while appending to a std::string. Constructing
the std::string with the total length is known avoids any reallocations
from growing std::string's buffer.
2025-04-01 14:12:12 +02:00
Jannis Harder 119e998f12 read_liberty: Faster input handling for the liberty lexer
The lexer for liberty files was using istream's `get` and `unget` which
are notorious for bad performance and that showed up during profiling.

This replaces the direct `istream` use with a custom LibertyInputStream
that does its own buffering to provide `get` and `unget` that behave the
same way but are implemented with a fast path that is easy to inline and
optimize.
2025-04-01 14:12:12 +02:00
Miodrag Milanovic 66d7ffb2c5 yosys-config: redirect to stderr/stdout depending of exit code 2025-04-01 08:39:11 +02:00
github-actions[bot] c08f72b806 Bump version 2025-04-01 00:26:08 +00:00
Emil J 3a1255546a
Merge pull request #4975 from YosysHQ/emil/opt_expr-cover-with-tests
opt_expr: expand test coverage
2025-03-31 20:13:16 +02:00
Sean Luchen 23f59e0196 Support array ranges for identifiers in the Liberty parser.
This change only handles the case `id : id[range] ;`.
2025-03-31 10:54:00 -07:00
Sean Luchen ac1033ecd5 Factor parse_vector_range out into its own function.
This also fixes the parsing a bit. It was consuming 1 fewer token than
required.
2025-03-31 10:46:18 -07:00
Sean Luchen 0a6d9f4dc9 Factor report_unexpected_token out into its own function. 2025-03-31 10:44:23 -07:00
Emil J. Tywoniak 6194eb939d opt_expr: expand test coverage 2025-03-31 19:31:53 +02:00
Miodrag Milanovic 58a515d57f yosys-config: Propagate exit code for help command 2025-03-31 16:19:45 +02:00