3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-03-01 19:26:55 +00:00
Commit graph

16021 commits

Author SHA1 Message Date
Krystine Sherwin
6e45ec6795
symfpu: Convert with flags 2026-02-28 17:24:31 +13:00
Krystine Sherwin
1ca73b0cea
symfpu: Add symfpu_convert
Convert one input to three outputs (int -> float, float -> int, float -> float).
No rounding mode, no flags (yet).
2026-02-28 10:47:47 +13:00
Krystine Sherwin
4e48d55995
symfpu: Test comparisons 2026-02-27 13:47:27 +13:00
Krystine Sherwin
f71544a147
symfpu: Add -compare mode
Also `min` and `max` ops.  RISC-V uses IEEE 754-2019 semantics where `min(+0,-0) == -0` and `max(+0,-0) == +0` so we do the same here.  We could make it optional, but as I understand it the newer behavior is still backwards compatible (since previously it was valid to have selected either).
2026-02-27 12:55:02 +13:00
Krystine Sherwin
341cd563bd
Add symfpu -classify
Add description text for standard `symfpu` signature.
2026-02-24 15:19:50 +13:00
Krystine Sherwin
826d1d91cd
tests/symfpu: Extra muladd tests
Switch inputs back to `anyseq`, and add coverage for muladd with constant multiplier output and varying addend (also an assertion).
Use an `ifdef` to control clocked properties (because of the assertion, it's no longer just covers that are clocked).
2026-02-23 16:58:34 +13:00
Krystine Sherwin
0b5d64f068
tests/symfpu: Testing sqrt
Coverage supports `sqrt`, including new general rounding detection instead of just inf/ebmin/zero (since they aren't possible with `sqrt`).
More `sqrt` assertions, as well as the addition of `altsqrt` verification.
Some adjustments of macros.
2026-02-21 17:11:11 +13:00
Krystine Sherwin
c2731b43a4
symfpu: Add altsqrt
No denormalization here.  That can be a problem for later (or not at all).
2026-02-21 17:08:35 +13:00
Krystine Sherwin
48cb1d10b1
symfpu: Add alt2div
`altdiv` but without denormalization, because as it turns out HardFloat unpacks subnorms in the same way, so lets just support both styles.
2026-02-20 15:49:38 +13:00
Krystine Sherwin
f39427f40a
symfpu: Add altdiv 2026-02-20 14:01:49 +13:00
Krystine Sherwin
1629c2bd3d
tests/symfpu: Add cover checks
Include mask/map for abc inputs (and switch to `anyconst` instead of `anyseq`).
Add false divide check for mantissa.
Covers aren't currently being tested by anything (and have to be removed for `sat`), but I've been using it locally with SBY to confirm that the different edge cases are able to be verified (e.g. when verifying HardFloat against symfpu while using the masked inputs to reduce solver time).
2026-02-20 13:56:17 +13:00
Krystine Sherwin
a464c2ae6a
Fix tininess when rounding to ebmin 2026-02-04 17:16:32 +13:00
Krystine Sherwin
f430908512
tests/symfpu: UF to ebmin is valid 2026-02-04 07:12:51 +13:00
Krystine Sherwin
896cca5365
Don't raise DZ when left is inf 2026-02-02 14:52:33 +13:00
Krystine Sherwin
1cd3fd5090
symfpu: Dynamic rounding mode 2026-01-28 16:34:51 +13:00
Krystine Sherwin
0c8b0f0868
symfpu: Tidying output
Also switching to cleaner library branch
2026-01-24 10:34:36 +13:00
Krystine Sherwin
88e6305849
symfpu: floatWithStatusFlags
Now with verified muladd exceptions.
2026-01-21 18:32:07 +13:00
Krystine Sherwin
5c99ff204b
symfpu: Verifying rounding modes
Works for everything but muladd.
Which I saw coming, but am still frustrated by.
2026-01-21 13:10:57 +13:00
Krystine Sherwin
9db187469d
symfpu: Configurable rounding modes
Including tests, but currently only testing rounding modes on multiply.
Also missing the ...01 case.
2026-01-20 18:18:15 +13:00
Krystine Sherwin
aa43a32551
Makefile: run-test.mk depends on .sh
Also make the run-test part explicit.
2026-01-20 17:54:56 +13:00
Krystine Sherwin
d26aa0e31d
symfpu: Add flags
Use symfpu fork.
Add tests for symfpu properties and extra edge case checking for flags.
2026-01-17 17:32:43 +13:00
Krystine Sherwin
2a76d8f7a9
symfpu: Configurable op 2026-01-14 07:48:40 +13:00
Krystine Sherwin
27823beda2
log_help: Don't reformat codeblocks 2026-01-14 07:39:45 +13:00
Krystine Sherwin
474df05e8a
symfpu: Configurable eb and sb 2026-01-12 11:09:35 +13:00
Jannis Harder
288f805da4 wip: symfpu pass 2025-12-09 15:22:35 +01:00
github-actions[bot]
89f32a415b Bump version 2025-10-09 00:22:39 +00:00
Emil J
a80462f27f
Merge pull request #5339 from rocallahan/fast-rtlil-parser
Rewrite the RTLIL parser for efficiency
2025-10-08 14:52:37 +02:00
Miodrag Milanović
b7a72811cc
Merge pull request #5408 from rocallahan/atomic-mfp
Make `mfp` const methods thread-safe.
2025-10-08 13:08:16 +02:00
Miodrag Milanović
ba1a347d59
Merge pull request #5370 from donn/pyosys_pybind11
pyosys: rewrite using pybind11
2025-10-08 13:07:59 +02:00
Miodrag Milanović
869910055f
Merge pull request #3908 from YosysHQ/ecp5_2_lattice
synth_ecp5 and synth_nexus to synth_lattice
2025-10-08 13:07:33 +02:00
Miodrag Milanović
4cdaac003f
Merge pull request #3991 from adrianparvino/alumacc-sign
alumacc: merge independent of sign
2025-10-08 13:02:10 +02:00
Miodrag Milanovic
1d2d777678 Next dev cycle 2025-10-08 09:25:33 +02:00
Miodrag Milanovic
157aabb583 Release version 0.58 2025-10-08 07:51:14 +02:00
github-actions[bot]
47ca09a016 Bump version 2025-10-08 00:22:29 +00:00
Miodrag Milanović
35bade56da
Merge pull request #5410 from jix/abc_new-fix-zbuf-churn
abc_new: Avoid bufnorm helper cell churn
2025-10-07 19:25:46 +02:00
Jannis Harder
2c94ca85d9 abc_new: Avoid bufnorm helper cell churn
We were performing the helper passes `abc9_ops -replace_zbufs` and
`abc9_ops -restore_zbufs` for every module, but those passes act on the
full design (and can't be applied entirely selectively due to entering
and leaving bufnorm).

This lead to an explosive creation of a lot of redundant bufnorm helper
cells that would have been cleaned up by `clean` but that never ran.
Instead we now run each helper pass once, one before and one after
iterating over the selected modules. This limits the number of bufnorm
helper cells.
2025-10-07 18:05:28 +02:00
github-actions[bot]
b8b0f80f79 Bump version 2025-10-07 00:23:02 +00:00
Robert O'Callahan
2f81c55389 Make mfp const methods thread-safe.
In particular, we make the parent links relaxed atomics so concurrent
`ifind()` calls are safe.

This may appear to cause a tiny performance regression but as discussed
in https://yosyshq.discourse.group/t/parallel-optmergepass-implementation/87/16
this is probably just noise.
2025-10-06 22:44:01 +00:00
Krystine Sherwin
da2e021e3b abc9.cc: Use -r for &dch
Avoids "ABC: The command has to terminate. Boxes are not in a topological order." error during `&if`.
2025-10-06 14:07:40 +01:00
github-actions[bot]
637665c9d3 Bump version 2025-10-04 00:21:39 +00:00
Miodrag Milanović
ed4eb6d331
Merge pull request #5406 from YosysHQ/verific_import_err_print_src
verific: print source location of problematic object on import error
2025-10-03 14:05:05 +02:00
N. Engelhardt
0b6adf832b verific: print source location of problematic object on import error (if available) 2025-10-03 12:57:49 +02:00
Mohamed Gaber
440e331ae0
docs: proofread pyosys.rst
Primarily address feedback from @KrystalDelusion (thanks!)
2025-10-03 11:54:44 +03:00
Mohamed Gaber
93fae3c606
docs: write small guide for using pyosys 2025-10-03 11:54:44 +03:00
Mohamed Gaber
80fcce64da
pyosys: fix ref-only classes, implicit conversions
+ cleanup
2025-10-03 11:54:44 +03:00
Mohamed Gaber
c8404bf86b
pyosys/hashlib: equivalence operators 2025-10-03 11:54:44 +03:00
Mohamed Gaber
447a6cb3f0
misc: WITH_PYTHON -> YOSYS_ENABLE_PYTHON
For consistency.

Also trying a new thing: only rebuilding objects that use the pybind11 library. The idea is these are the only objects that include the Python/pybind headers and thus the only ones that depend on the Python ABI in any capacity, so other objects can be reused across wheel builds. This has the potential to cut down build times.
2025-10-03 11:54:44 +03:00
Mohamed Gaber
dc88906c91
tests/pyosys: print log on failed test, fix make clean 2025-10-03 11:54:44 +03:00
Mohamed Gaber
54799bb8be
pyosys: globals, set operators for opaque types
There is so much templating going on that compiling wrappers.cc now takes 1m1.668s on an Apple M4…
2025-10-03 11:54:44 +03:00
Mohamed Gaber
384f7431fd
pyosys: rewrite wrapper generator
[skip ci]
2025-10-03 11:54:44 +03:00