3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-15 19:55:41 +00:00
Commit graph

4756 commits

Author SHA1 Message Date
Akash Levy
e241c9d513
Merge branch 'YosysHQ:main' into main 2025-04-10 14:28:10 -07:00
N. Engelhardt
3410e10ed5
Merge pull request #5000 from YosysHQ/krys/re_refactor_selections 2025-04-10 16:06:36 +00:00
Akash Levy
e391707d0a Merge remote-tracking branch 'upstream/main' 2025-04-10 00:19:00 -07: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
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
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
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
Akash Levy
c0a6985adb
Merge branch 'YosysHQ:main' into main 2025-04-07 14:48:16 -07:00
KrystalDelusion
e08aeae1d0
Merge pull request #4989 from YosysHQ/krys/fix_4590
opt_expr: Fix #4590
2025-04-08 08:30:18 +12:00
Akash Levy
de375d6542 Accommodate reversion and fix wreduce naming 2025-04-07 07:35:39 -07:00
Akash Levy
06c614a010
Merge branch 'YosysHQ:main' into main 2025-04-07 07:28:06 -07: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ć
d49364d96f
Revert "Refactor full_selection" 2025-04-07 12:11:55 +02:00
Akash Levy
0dab4308a3 Actual merge here 2025-04-06 18:53:43 -07:00
KrystalDelusion
98d4355b82
Merge pull request #4768 from YosysHQ/krys/refactor_selections
Refactor full_selection
2025-04-05 14:15:27 +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
Akash Levy
276800c39b wreduce shifter signedness fix 2025-04-04 14:27:38 -07:00
Akash Levy
f218b5ba58 Revert "Represent memory size with size_t"
This reverts commit bb5f8415af.
2025-04-04 03:20:07 -07:00
Akash Levy
bb5f8415af Represent memory size with size_t 2025-04-04 02:04:34 -07:00
Akash Levy
507308d34e Add muxpacker draft 2025-04-03 21:38:16 -07:00
Akash Levy
d4119e1ad3 lut2bmux fix 2025-04-03 21:37:27 -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
Akash Levy
809a38a597
Merge pull request #78 from williamzhu17/extract_reduce-tests
extract_reduce tests and removed XNOR functionality from extract_reduce
2025-04-03 15:23:09 -07:00
Akash Levy
439d859bba
Merge branch 'YosysHQ:main' into main 2025-04-03 10:48:42 -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
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
6b5507139e opt_expr: requsted changes 2025-04-01 20:37:22 +03:00
williamzhu17
bbd132f6ba updated extract_reduce to not consider xnors 2025-04-01 10:10:06 -07: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
Akash Levy
d743a18ea3 Fix extract_reduce infinite loop 2025-03-31 12:36:43 -07: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
Akash Levy
f488b0e74c Add lut2bmux, annotate_unqcoef, and seed tests 2025-03-31 05:55:54 -07:00
Akash Levy
3f00e57076 Improve the naming for opt_reduce 2025-03-31 01:22:42 -07:00
Akash Levy
f72d27fae0 Robustness fixes 2025-03-30 22:23:21 -07:00
Akash Levy
984c6357ba Add -word mode to lut2mux and improve the naming 2025-03-30 17:54:35 -07:00
Akash Levy
161ff0fa3f Add muxmode pass and tests 2025-03-30 17:54:18 -07:00
Anhijkt
83b095ab6c opt_expr: optimize pow of 2 cells 2025-03-30 15:43:41 +03:00
Akash Levy
dacd882383 Remove selectconst 2025-03-28 17:40:40 -07:00
Akash Levy
1a5415b5a2
Merge branch 'YosysHQ:main' into main 2025-03-28 14:56:36 -07:00
Emil J
ec8b745929
Merge pull request #4733 from antmicro/fix-setundef-pass-for-params
Fix setting bits of parameters in setundef pass
2025-03-28 13:06:04 +01:00
Akash Levy
3d13f7aae2 Bump to latest 2025-03-26 14:56:10 -07:00
Emil J
b9131853ff
Merge pull request #4954 from YosysHQ/krys/abstract_default_val
Fixes for abstract.cc
2025-03-26 10:40:37 +01:00
Emil J
ea74ad33a5
Merge pull request #4961 from YosysHQ/emil/cutpoint-typo
cutpoint: fix typo
2025-03-25 21:30:29 +01:00
Emil J. Tywoniak
4991ed9d4b cutpoint: fix typo 2025-03-25 18:10:47 +01:00
KrystalDelusion
a647731812
Merge pull request #4677 from YosysHQ/emil/opt_merge-hashing
opt_merge: hashing performance and correctness
2025-03-25 10:36:02 +13:00