Commit Graph

16069 Commits

Author SHA1 Message Date
Miodrag Milanovic 9f0904d048 Makefile: fix hardcoded -install_name for libyosys.so 2025-08-25 07:46:34 +02:00
Miodrag Milanovic c6b8f0eed7 Merge branch 'bugfix/remove-hardcoded-soname' of github.com:Jiahui17/yosys into Jiahui17-bugfix/remove-hardcoded-soname 2025-08-25 07:45:26 +02:00
Robert O'Callahan b5aa3ab9f7 hash_ops should take all parameters by reference instead of requiring copies of vectors, tuples etc 2025-08-25 03:09:04 +00:00
github-actions[bot] 6fdcdd41de Bump version 2025-08-22 00:23:32 +00:00
Emil J 65109822b4
Merge pull request #5305 from rocallahan/opt-merge-perf
Use commutative hashing in `OptMergePass` instead of allocating containers and sorting them to get canonical hashes
2025-08-21 17:58:55 +02:00
Emil J. Tywoniak 4dea774171 opt_muxtree: refactor 2025-08-21 12:52:22 +02:00
Ethan Mahintorabi d10190606c verilog: Lower required bison version to 3.6
We're currently on version 3.6 of bison at Google, and Yosys
still correctly builds with it. This should better reflect
the actual requirements rather than an overly restrictive
check. If features from 3.8 are required it seems like bumping
would be appropriate.

Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2025-08-21 08:26:33 +01:00
Ethan Mahintorabi 7f0130efce verilog: Fix missing sstream include
Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2025-08-21 08:26:20 +01:00
github-actions[bot] 4926e846f6 Bump version 2025-08-21 00:22:37 +00:00
Robert O'Callahan 8c04e5266c Use commutative hashing instead of expensive allocation and sorting
For one of our large circuits, this improves the `OptMergePass` runtime
from about 150s to about 130s. It's also simpler code.
2025-08-20 19:35:22 +00:00
Robert O'Callahan 7d0ea0d64f Refactor call to sorted_pmux_in to avoid copying the connection dictionary 2025-08-20 19:35:22 +00:00
Emil J 025d7a5641
Merge pull request #5290 from rocallahan/opt-mux-perf
Make `OptMuxtreePass` int-indexed vectors into hashtables
2025-08-20 20:00:26 +02:00
Jannis Harder c9ad7b7ad0
Merge pull request #5284 from jix/fix_5282
check: Limit detailed cell edge checking for $pmux and $bmux
2025-08-20 14:27:19 +02:00
Emil J ba8af7ad8f
Merge pull request #5302 from rocallahan/commutative-hash
Improve commutative hashing.
2025-08-20 10:43:00 +02:00
Emil J. Tywoniak 01de9fb453 hashlib: extend unit test with subset collisions, shorten runtime 2025-08-20 00:08:23 +02:00
Robert O'Callahan 3a5742ffd2 Improve commutative hashing.
The simple XOR `commutative_eat()` implementation produces a lot of collisions.
https://www.preprints.org/manuscript/201710.0192/v1/download is a useful reference on this topic.

Running the included `hashTest.cc` without the hashlib changes, I get 49,580,349 collisions.
The 49,995,000 (i,j) pairs (0 <= i < 10000, i < j < 10000) hash into only 414,651 unique hash values.
We get simple collisions like (0,1) colliding with (2,3).

With the hashlib changes, we get only 707,099 collisions and 49,287,901 unique hash values.
Much better! The `commutative_hash` implementation corresponds to `Sum(4)` in the paper
mentioned above.
2025-08-19 21:45:52 +00:00
Anhijkt e1276560cd opt_dff: add another test 2025-08-19 23:48:45 +03:00
Emil J b0d709f6cf
Merge pull request #5294 from rocallahan/precision-tests
Add tests for dynamic precision and with with an int parameter
2025-08-19 16:42:49 +02:00
Miodrag Milanović 5fd9f54482
Merge pull request #5300 from donn/wheel_fixes
wheels: bison 3.8 on almalinux + memory pressure easing
2025-08-19 11:44:12 +02:00
Krystine Sherwin 3ca2b7951f
memlib: Fix ubsan 2025-08-19 17:05:51 +12:00
github-actions[bot] bfc9a322e2 Bump version 2025-08-19 00:24:35 +00:00
Krystine Sherwin 1cdf058df4
ci: Fix iverilog version caching 2025-08-19 11:33:05 +12:00
Krystine Sherwin 94d07872e6
test-sanitizers.yml: Build in-tree
Should fix missing `../../yosys-abc`
2025-08-19 11:32:46 +12:00
Krystine Sherwin d63f43acf0
ci: iverilog before yosys 2025-08-19 11:32:42 +12:00
Krystine Sherwin b42be1df80
ci: Fix test-cells 2025-08-19 11:30:16 +12:00
Krystine Sherwin eb773ce071
Reapply "Workflow adjustments"
This reverts commit b640a16b07.
2025-08-19 11:29:53 +12:00
Mohamed Gaber 2ed7a7aac9
wheels: fix PATH variables 2025-08-19 01:28:46 +03:00
Jannis Harder 6b94376daf
Merge pull request #5299 from YosysHQ/revert-5280-krys/ci_changes
Revert "Workflow adjustments"
2025-08-18 21:50:19 +02:00
Mohamed Gaber 6cbd44daa5
wheels: bison 3.8 on almalinux + memory pressure easing
- cibw now builds and uses bison 3.8.2 explicitly on platforms with no or out-of-date bison — AlmaLinux 8 only goes up to Bison 3.0
- cibw environment now includes `OPTFLAGS=-O3` to avoid generating debug info for abc, saving space in memory during linking
- setup.py attempts to build `yosys-abc` independently first to avoid memory pressure from gigantic abc link step running in parallel with something else
2025-08-18 22:34:15 +03:00
Jannis Harder b640a16b07
Revert "Workflow adjustments" 2025-08-18 20:39:00 +02:00
Emil J. Tywoniak 7ee62c832b bitpattern: unit test 2025-08-18 19:57:45 +02:00
Emil J. Tywoniak 6a2984540b bitpattern: comments 2025-08-18 19:57:45 +02:00
Jannis Harder 7c409e2d5a
Merge pull request #5285 from jix/abstract_initstates
abstract: Add -initstates option
2025-08-18 15:39:09 +02:00
Robert O'Callahan e0e70d1158 Remove some `c_str()` calls where they're no longer needed as parameters to `stringf()`. 2025-08-18 14:20:31 +01:00
Emil J f0ccc65820
Merge pull request #5297 from rocallahan/redundant-assignmap
Remove redundant construction of `assign_map`.
2025-08-18 10:43:44 +02:00
Miodrag Milanović 1a52a714b4
Merge pull request #5280 from YosysHQ/krys/ci_changes
Workflow adjustments
2025-08-18 10:17:12 +02:00
github-actions[bot] d73cd78001 Bump version 2025-08-18 00:27:23 +00:00
Robert O'Callahan 3f2c4f6f83 Remove redundant construction of `assign_map`.
We call 'assign_map.set()' below which wipes the `SigMap` and reconstructs it.

This operation is expensive because it scans the whole module. I think it's
better to make heavyweight operations more visible so I'm removing
the less obvious operation.
2025-08-17 23:34:11 +00:00
KrystalDelusion 6d55ca204b
Merge pull request #5281 from suisseWalter/add_parameterised_cells_stat
STAT: Add parameterised cells
2025-08-18 09:21:45 +12:00
clemens 9278bed853 removed copyright notice on lib file.
Should be covered by the yosys license not  anything else.
2025-08-16 09:40:03 +02:00
clemens 4e45b5e1bb permit trailing comma 2025-08-16 09:40:03 +02:00
clemens 73d1177665 testcases
one testcase for single parameter cells.
one testcase for double parameter cells.
2025-08-16 09:40:03 +02:00
clemens 8b1f77ebd2 cleanup. printf to errors or warnings 2025-08-16 09:40:03 +02:00
clemens 50fe9dd7f2 clean parsing code 2025-08-16 09:40:03 +02:00
clemens 5fc0e77c3d add functionality to be able to use parameterised cells.
cells can have their area as a function of the input port width.
2025-08-16 09:40:03 +02:00
clemens d8fb4da437 updated testcase 2025-08-16 09:32:08 +02:00
clemens a6e0ab5ea5 Update (sequential) area to be only local without -hierarchy 2025-08-16 09:09:57 +02:00
suisseWalter f5b219f59e
Update passes/cmds/stat.cc
Co-authored-by: KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com>
2025-08-16 08:36:06 +02:00
github-actions[bot] d10fdc0ec5 Bump version 2025-08-16 00:24:02 +00:00
KrystalDelusion 7799c6e6ac
Merge pull request #5291 from YosysHQ/krys/rename_escape
rename.cc: Fixup ports after -unescape
2025-08-16 12:19:49 +12:00