Emil J. Tywoniak
bf1f236998
dfflibmap: add back tab and quote filters for good vibes
2025-07-11 23:12:58 +02:00
Emil J. Tywoniak
c6e1d461fa
libparse: support space ANDs
2025-07-11 23:09:30 +02:00
Emil J. Tywoniak
4b1a8a3b66
libparse: add LibertyExpression::str for testing
2025-07-11 18:27:19 +02:00
Emil J
14aad097f0
Merge pull request #5190 from YosysHQ/emil/dfflibmap-fix-negated-next_state
...
dfflibmap: propagate negated next_state to output correctly
2025-07-10 19:50:02 +02:00
N. Engelhardt
02323295b0
Merge pull request #5179 from YosysHQ/krys/assert2cover
2025-07-10 14:53:22 +02:00
Emil J. Tywoniak
ad80e2bd39
libparse: install headers for use in plugins
2025-07-08 13:39:03 +02:00
Emil J
66035f706e
Merge pull request #5177 from YosysHQ/emil/rename-unescape
...
rename: add -unescape
2025-07-08 10:45:11 +02:00
Emil J. Tywoniak
658c7dd424
rename: fix help
2025-07-07 16:16:57 +02:00
Martin Povišer
22a44e4333
Start `opt_hier`
2025-07-05 16:45:52 +02:00
Miodrag Milanović
54013c6da7
Merge pull request #5162 from YosysHQ/micko/attrmap
...
Make attrmap able to alter memory attributes as well
2025-06-30 15:24:04 +02:00
N. Engelhardt
ef3f541501
add linecoverage command to generate lcov report from selection
2025-06-26 13:21:53 +02:00
Emil J. Tywoniak
2b659626a3
rename: add -unescape
2025-06-24 12:33:33 +02:00
Emil J. Tywoniak
778079b058
dfflibmap: propagate negated next_state to output correctly
2025-06-24 12:01:12 +02:00
George Rennie
170933ecb0
Merge pull request #5165 from georgerennie/george/opt_dff_uaf
...
opt_dff: don't remove cells until all have been visited to prevent UAF
2025-06-20 23:33:26 +01:00
Krystine Sherwin
beaca05b40
Include boxes in attrmap
...
Rename `selected_members` iterator to memb.
Add comment on `selected_processes` loop for clarity.
2025-06-21 09:49:56 +12:00
Emil J. Tywoniak
41107e5473
log: add -expect types prefix-log, prefix-warning, prefix-error
2025-06-16 21:26:08 +02:00
Krystine Sherwin
45131f4425
chformal: Add -assert2cover option
...
Also add to chformal tests.
2025-06-14 10:54:23 +12:00
Emil J
c0f52c6ead
Merge pull request #5167 from YosysHQ/emil/fix-splitnets-single-bit-vector
...
splitnets: handle single-bit vectors consistently
2025-06-11 22:47:48 +02:00
N. Engelhardt
0b19f628e9
Merge pull request #5172 from YosysHQ/nak/reduce_warning_spam
2025-06-08 06:50:56 +00:00
George Rennie
8c38e2081d
opt_dff: don't emit cells until all have been visited to prevent UAF
2025-06-06 23:46:07 +01:00
N. Engelhardt
f1dea78603
don't warn for every blackbox from verific
2025-06-06 15:37:42 +02:00
Emil J. Tywoniak
239c265093
splitnets: handle single-bit vectors consistently
2025-06-05 10:58:06 +02:00
George Rennie
19cdbc5a0c
opt_dff: don't remove cells until all have been visited to prevent UAF
2025-06-04 21:02:21 +01:00
Miodrag Milanovic
784de0f6e3
Make attrmap able to alter memory attributes as well
2025-06-04 08:01:21 +02:00
Krystine Sherwin
785cabcb0f
abc9_ops: Skip opt_expr in proc
2025-05-31 12:16:37 +12:00
Krystine Sherwin
ab0e3cc05f
Proc: Use selections consistently
...
All `proc_*` passes now use the same module and process for loops, using `design->all_selected_modules()` and `mod->selected_processes()` respectively.
This simplifies the code, and makes the couple `proc_*` passes that were ignoring boxed modules stop doing that (which seems to have been erroneous rather than intentional).
2025-05-31 12:04:42 +12:00
Lofty
e4ab6acb46
Add genlib support to abc_new
2025-05-27 09:47:29 +01:00
Emil J
18abf2d4f7
Merge pull request #5138 from YosysHQ/emil/libcache-verbose
...
libcache: add -quiet and -verbose
2025-05-24 00:05:46 +02:00
George Rennie
e05b21cfae
Merge pull request #5140 from garytwong/typo-fix
...
Fix typo ("exist" -> "exit").
2025-05-23 13:01:57 +01:00
Gary Wong
4f0cbf2ee6
Fix typo ("exist" -> "exit").
2025-05-22 18:52:33 -06:00
George Rennie
6331f92d00
Merge pull request #5101 from georgerennie/george/opt_expr_shift_ovfl
...
opt_expr: fix shift optimization with overflowing shift amount
2025-05-22 15:16:19 +01:00
KrystalDelusion
4c72b0ecd8
Merge pull request #5116 from YosysHQ/krys/update_fst
...
Update fstlib
2025-05-16 09:22:52 +12:00
KrystalDelusion
3a5ce2df64
Merge pull request #5112 from YosysHQ/krys/on_shutdown
...
design.cc: Use on_shutdown method
2025-05-16 09:22:39 +12:00
KrystalDelusion
f7888c607b
Merge pull request #5089 from YosysHQ/krys/cutpoint_whole
...
cutpoint: Re-add whole module optimization
2025-05-16 09:22:28 +12:00
Emil J
3823157c25
Merge pull request #5080 from akashlevy/muldiv_c
...
Add `muldiv_c` peepopt
2025-05-15 11:03:25 +02:00
George Rennie
748600c167
small whitespace cleanup ( #5119 )
2025-05-14 15:18:57 +02:00
Krystine Sherwin
d0b9a0cb98
sim.cc: Move cycle check
...
Calling `throw dst_end_of_data_exception()` when the desired number of cycles has been reached means that the fst reader can't tidy up after itself and leads to memory leaks.
This doesn't happen when the `-stop` flag is used because the `Yosys::FstData` struct tracks the end time and skips the outer callback if the simulation has gone past the desired end time.
Move cycle checking into the inner callback along with the time checking means that the outer callback no longer needs to throw an exception in order to stop checking further values, while still allowing the fst reader to finish reading and deallocate memory.
2025-05-12 12:48:01 +12:00
Krystine Sherwin
cc402ee065
libs/fst: Update upstream
...
libfst is no longer included in gtkwave and instead has its own repo. There has also been some refactoring, so the patches need to update to match, as does sim.cc.
2025-05-12 10:21:06 +12:00
Krystine Sherwin
af75dce660
Fix Crashes with GCC 15 #5088
...
When building `WITH_PYTHON`, where a global list of modules is maintained, deleting a module also erases the entry in said global list. This can lead to memory corruption if the global list is destructed before the module.
Using `on_shutdown()` instead means the module destructor is explicitly called before the global list can be destructed, preventing the issue.
Also add a comment to `Pass::~Pass()` to suggest the same for future passes that might try to use that (and see this commit in the blame if they need a reason why).
2025-05-10 09:59:13 +12:00
Emil J. Tywoniak
2ca2ecaa1c
libcache: fix help
2025-05-09 12:40:45 +02:00
Emil J. Tywoniak
0d621ecc11
libcache: add -quiet and -verbose
2025-05-09 11:36:39 +02:00
George Rennie
0dcd94b6ad
opt_expr: saturate shift amount instead of overflowing for large shifts
2025-05-07 14:41:13 +02:00
Emil J. Tywoniak
90a2c92370
driver: allow --no-version still write things like Generated by Yosys
2025-05-07 11:34:23 +02:00
Krystine Sherwin
7c89355b70
cutpoint: Re-add whole module optimization
...
Also add a test script for it.
2025-05-06 09:57:34 +12:00
Emil J. Tywoniak
d7affb8821
driver: add --no-version to suppress writing Yosys version in command outputs
2025-05-05 13:12:08 +02:00
KrystalDelusion
22c72a5af4
Merge pull request #4619 from malmeloo/fix/tee-path-whitespace
...
Allow whitespace in `tee` command paths
2025-05-01 09:33:47 +12:00
Emil J
11f2348246
Merge pull request #5073 from YosysHQ/emil/fix-uncompressed-missing-file-error
...
gzip: refactor file open failure errors
2025-04-30 19:29:13 +02:00
Akash Levy
4bd91fbb11
Add `muldiv_c` peepopt pass
2025-04-30 08:06:59 -07:00
Emil J. Tywoniak
adb1986dc1
gzip: refactor file open failure errors
2025-04-29 10:37:35 +02:00
KrystalDelusion
bfe05965f9
Merge pull request #5066 from YosysHQ/george/opt_expr_shr_sign
...
opt_expr: fix sign extension for shifts
2025-04-29 09:29:10 +12:00
N. Engelhardt
84c49e1f33
Merge pull request #5041 from jix/declockgate-v2
2025-04-28 13:31:11 +00:00
George Rennie
c952ab417f
opt_expr: only sign extend shift arguments for arithmetic right shift
2025-04-26 12:40:04 +02:00
Mike Inouye
b7d7b377fd
Detect FF functions that use parentheses.
...
Signed-off-by: Mike Inouye <mikeinouye@google.com>
2025-04-22 23:26:55 +00:00
Emily Schmidt
4b4cdf75b8
timeest: gcc refuses to parse "struct ::Yosys:..."
2025-04-22 16:49:56 +01:00
Emily Schmidt
9c9a0e3e45
add some comments to timeest
2025-04-22 16:49:56 +01:00
Martin Povišer
28c7f202ca
timeest: Add `-select`
2025-04-22 16:49:56 +01:00
Martin Povišer
e8196b1dda
timeest: Update help
2025-04-22 16:49:56 +01:00
Martin Povišer
c5e154e941
timeest: Fix templating
2025-04-22 16:49:56 +01:00
Martin Povišer
4323d56b9e
timeest: Fill missing header
2025-04-22 16:49:56 +01:00
Martin Povišer
386b33d192
timeest: Add command for critical path estimation
2025-04-22 16:49:56 +01:00
N. Engelhardt
f27fb1a25b
Merge pull request #5037 from YosysHQ/flatten_nocleanup
2025-04-22 15:48:45 +00:00
KrystalDelusion
7f8d0e31f6
Fix #5046
...
`clean_zerowidth` had skipped $macc, but not $macc_v2
2025-04-22 17:42:52 +12:00
Emil J
6a2f2f1818
Merge pull request #5031 from suisseWalter/fix_sequential_area
...
stat: fix sequential area not being included in addition/multiplication
2025-04-21 11:02:40 +02:00
Jannis Harder
31d6d0ac17
formalff: Fix -declockgate test and missing emit for memories
2025-04-18 18:57:59 +02:00
Jannis Harder
b982da9f6a
formalff: Document -declockgate option
2025-04-18 17:44:39 +02:00
Jannis Harder
bd154a7188
formalff: Add -declockgate option
2025-04-18 17:44:34 +02:00
N. Engelhardt
5db1765bee
add flatten -nocleanup option
2025-04-17 18:17:42 +02:00
Jannis Harder
7f7ad87b7b
Merge pull request #5033 from jix/liberty-fixes
...
liberty: More robust parsing
2025-04-17 09:24:42 +02:00
KrystalDelusion
026d161f91
Merge pull request #4923 from KelvinChung2000/const-wrap
...
feat: Allow full constant wrapping for hilomap
2025-04-17 10:16:59 +12:00
Jannis Harder
ce74404890
liberty: Error on unclosed curly braces
...
This is an indication that the liberty file was truncated, which
shouldn't be silently ignored.
2025-04-16 19:12:01 +02:00
Jannis Harder
418e795235
liberty: Error when a read liberty file has no nodes
2025-04-16 19:03:05 +02:00
Jannis Harder
5101b9fcba
liberty: Fix handling of non-ascii characters
...
Use an `unsigned char` buffer to ensure characters cast to an `int` are
in the range 0 <= c <= 255.
2025-04-16 18:52:49 +02:00
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
clemens
21b93ee1fb
fix sequential area not being included in addition/multiplication
...
Fixes a bug where the sequential area isn't part of the Stat_numeric_members that are used to automatically add/mul the statdata_t members.
2025-04-15 09:38:04 +02: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 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
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
Kelvin Chung
81f3369f24
Add check at constmap and merge test
2025-04-14 11:44:52 +01: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
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
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
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
Kelvin Chung
414dc85573
Correct and more test
2025-04-10 00:01:50 +01: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
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ć
d49364d96f
Revert "Refactor full_selection"
2025-04-07 12:11:55 +02:00
KrystalDelusion
98d4355b82
Merge pull request #4768 from YosysHQ/krys/refactor_selections
...
Refactor full_selection
2025-04-05 14:15:27 +13:00