nella
c3c577f333
Fix test cases.
2026-04-13 12:48:05 +02:00
nella
135812ab02
Further CSA cleanup.
2026-04-13 12:48:05 +02:00
nella
847a8941e9
Clang-Format CSA tree.
2026-04-13 12:48:05 +02:00
nella
a02c238874
Consolidate Wallace from booth and CSA.
2026-04-13 12:48:05 +02:00
nella
4bbffecf98
Invert.
2026-04-13 12:48:05 +02:00
nella
42c309347b
Clarify.
2026-04-13 12:48:05 +02:00
Emil J. Tywoniak
b6d656e932
csa_tree: move to techmap
2026-04-13 12:48:05 +02:00
Emil J. Tywoniak
41b69df2cb
abc_new: stable TopoSort
2026-04-06 15:09:52 +02:00
Emil J
b44188110b
Merge pull request #5764 from YosysHQ/emil/constmap-error
...
constmap: error if no -cell set
2026-03-23 15:15:04 +00:00
Lofty
f560cba952
Merge pull request #5757 from YosysHQ/lofty/abc9-refactor-3
...
abc9: remove -fast [sc-269]
2026-03-19 08:41:45 +00:00
Lofty
27210627e5
abc9: remove -fast
2026-03-19 07:30:23 +00:00
Lofty
8d1d5a25e5
Merge pull request #5760 from YosysHQ/lofty/abc-refactor-2
...
abc: remove -S [sc-269]
2026-03-19 07:26:54 +00:00
Lofty
05de1c4ae2
Merge pull request #5759 from YosysHQ/lofty/abc9-refactor-4
...
abc9: remove abc9.if.C [sc-269]
2026-03-19 07:26:37 +00:00
Emil J. Tywoniak
7aaa0621d3
constmap: error if no -cell set
2026-03-19 00:01:14 +01:00
Lofty
f9d930ba5a
Revert "abc: remove -fast [sc-269]"
2026-03-18 17:55:17 +00:00
Lofty
e05ed6b850
Merge pull request #5758 from YosysHQ/lofty/abc-refactor-1
...
abc: remove -fast [sc-269]
2026-03-18 15:09:36 +00:00
Lofty
0b3f103745
abc: remove -S
2026-03-18 14:40:23 +00:00
Lofty
93c762c7c1
abc9: remove abc9.if.C
2026-03-18 14:27:27 +00:00
Lofty
926814f1e4
abc9: cleanup commented code
2026-03-18 14:16:31 +00:00
Lofty
0ea739b7d9
abc: remove -fast
2026-03-18 14:15:42 +00:00
Lofty
e78690fc47
abc9_exe: fix typo
2026-03-18 11:44:13 +00:00
Emil J
0d7a875675
Merge pull request #5512 from YosysHQ/emil/turbo-celltypes
...
celltypes: compile-time lookup tables for internal cells
2026-03-04 14:47:57 +00:00
Emil J. Tywoniak
ecb8b20f62
yosys: use newcelltypes for yosys_celltypes users
2026-03-04 12:39:44 +01:00
Emil J. Tywoniak
4ab22cbb97
abc: use newcelltypes
2026-03-04 12:22:14 +01:00
Tianji Liu
750d536bba
abc: new option to pass ABC read_lib args
2026-03-04 11:24:24 +08:00
Andrew Pullin
5970be33fb
abc9: preserve topological-loop asserts with targeted SCC fallback
...
A real-world ABC9 flow hit residual combinational loops after SCC breaking, tripping the prep_xaiger loop assertion.
Keep the existing topological assertions in place (prep_xaiger and reintegrate still assert no_loops).
To handle residual non-box loops, add a targeted fallback in prep_xaiger: when loops remain after normal SCC breaking, insert additional $__ABC9_SCC_BREAKER cuts on non-box loop cells, rebuild toposort, and then re-check the existing assertion.
Also keep pre-ABC9 SCC tagging on all cell types (scc -all_cell_types) and add a regression test (tests/techmap/abc9-nonbox-loop-with-box.ys).
2026-02-26 22:30:32 -08:00
Miodrag Milanović
0ed7c5ad53
Merge pull request #5620 from YosysHQ/lofty/abc9-verify
...
abc9: verify post-mapping equivalence by default
2026-02-20 13:41:11 +01:00
Emil J
fba29ea8f1
Merge pull request #5679 from YosysHQ/emil/abc9-remove-liberty
...
abc9: remove -liberty
2026-02-11 12:36:29 +01:00
Emil J. Tywoniak
915912cc76
abc9: remove -dont_use
2026-02-11 11:39:09 +01:00
Emil J. Tywoniak
c4094e457b
abc9: remove -genlib, -constr
2026-02-11 11:34:54 +01:00
Emil J. Tywoniak
5a46106a46
abc9: remove -liberty
2026-02-11 01:04:50 +01:00
Robert O'Callahan
34f8582725
Sanitize ABC global and per-run temporary directory names in logs
2026-02-07 12:12:13 +13:00
Robert O'Callahan
7326bb7d66
Only reuse ABC processes if we're using yosys-abc and it was built with ENABLE_READLINE
...
(cherry picked from commit 5054fd17d7b70f2df97360bb0f0cc1c92a6ffe72)
2026-02-04 17:19:10 +13:00
Robert O'Callahan
9c56c93632
Add missing newlines to some 'log_error's
2026-01-30 01:52:19 +00:00
Robert O'Callahan
6af1b5b19c
Don't treat ABC 'Error:' output as indicating a fatal error, since these messages aren't necessarily fatal
2026-01-30 01:52:19 +00:00
Gus Smith
09ceadfde7
Merge pull request #4269 from povik/icells_not_derived
...
Avoid `module_not_derived` on internal cells in techmap result
2026-01-26 14:48:40 -08:00
Emil J
f5ea73eb97
Merge pull request #5557 from nataliakokoromyti/lut2mux-word
...
lut2mux: add -word option
2026-01-23 17:24:41 +01:00
KrystalDelusion
125609105d
Merge pull request #5593 from RCoeurjoly/RCoeurjoly/5574_fix
...
abc: handle ABC script errors instead of hanging
2026-01-23 07:16:48 +13:00
Lofty
5a9d73369a
abc9: verify post-mapping equivalence by default
2026-01-20 09:58:35 +00:00
Martin Povišer
90673cb0a2
techmap: Use `-icells` mode of frontend instead of type fixup
2026-01-19 16:49:49 -08:00
Robert O'Callahan
28c199fbbd
Fix warning about unused variable in `dffunmap`.
2026-01-19 03:25:09 +00:00
nataliakokoromyti
8a596f330a
Update lut2mux.cc
2026-01-13 15:02:17 -08:00
nataliakokoromyti
40f9e235de
Update lut2mux.cc
2026-01-13 14:45:46 -08:00
nataliakokoromyti
6a93a94d9f
fix line
2026-01-13 14:44:51 -08:00
nataliakokoromyti
c305c426eb
restore extra_args
2026-01-13 14:43:52 -08:00
Emil J. Tywoniak
8e2038c419
Use digit separators for large decimal integers
2026-01-13 16:38:12 +01:00
Miodrag Milanović
51b210c93c
Merge pull request #5600 from YosysHQ/fix_musllinux
...
musllinux fix so wheels build can work
2026-01-13 07:08:04 +01:00
Emil J
cc25ccfcd7
Merge pull request #5559 from nataliakokoromyti/upstream-lut2bmux
...
add lut2bmux
2026-01-12 16:09:13 +01:00
Miodrag Milanovic
b3b71df07c
musllinux fix so wheels build can work
2026-01-12 15:38:45 +01:00
Miodrag Milanovic
2b12b74121
musllinux fix so wheels build can work
2026-01-11 15:23:38 +01:00
Roland Coeurjoly
f1fc704c84
abc: handle ABC script errors instead of hanging
2026-01-07 23:46:33 +01:00
Natalia
11b0e7ad92
add lut2bmux
2026-01-06 14:48:16 +01:00
Natalia
721b504479
lut2mux: add -word option and test
2025-12-23 05:57:40 -08:00
Miodrag Milanović
09f9e0e8d1
Merge pull request #5568 from rocallahan/abc-spawn-errno
...
Print `errno` to help diagnose failure to spawn ABC
2025-12-23 08:09:14 +01:00
Robert O'Callahan
0e61f57458
Print errno to help diagnose failure to spawn ABC
2025-12-22 21:58:15 +00:00
Robert O'Callahan
46cb05c471
Pass IdString by value instead of by const reference.
...
When IdString refcounting was expensive, it made sense to pass it by const reference
instead of by value, to avoid refcount churn. Now that IdString is not refcounted,
it's slightly more efficient to pass it by value.
2025-12-22 01:52:59 +00:00
Krystine Sherwin
9d3d8bf502
Switch posix_spawn to posix_spawnp
2025-12-15 09:40:04 +13:00
Emil J
9871e9b17e
Merge pull request #5496 from YosysHQ/emil/liberty-flop-loops
...
read_liberty: support loopy retention cells
2025-12-01 22:50:20 +01:00
Emil J. Tywoniak
e8cbc92462
abc_new: sorted -> is_sorted
2025-11-24 11:46:09 +01:00
Mike Inouye
615e338acd
Fix abc_new pass when not in NDEBUG
2025-11-21 14:10:05 -08:00
Robert O'Callahan
e33ca17388
Force a newline to appear before YOSYS_ABC_DONE
2025-11-21 03:50:07 +00:00
Emil J. Tywoniak
b3112bf025
filterlib: prefer using precedence over unsynthesizable verilog
2025-11-21 00:43:54 +01:00
Robert O'Callahan
8c2984dc5f
Fix AbcModuleState::remap_name() to avoid calling IdString::c_str()
2025-11-12 11:52:04 +01:00
Emil J. Tywoniak
967e91aa73
libparse: fix parsing and memory safety of quoted values
2025-11-11 13:44:50 +01:00
Emil J
365c6753c4
Merge pull request #5453 from rocallahan/sigspec-onechunk
...
Make `SigSpec` const methods multithreading-compatible
2025-11-10 17:48:42 +01:00
Robert O'Callahan
3f7af10eda
Make SigSpec::chunks() return an object that can be iterated over without packing the SigSpec
2025-11-07 15:54:54 +00:00
Emil J
a16fc9b4f3
Merge pull request #5467 from YosysHQ/emil/liberty-unquoted-expressions
...
libparse: support unquoted expressions
2025-11-06 19:45:17 +01:00
Emil J. Tywoniak
fdcc4c1507
libparse: remove leftover comments
2025-11-06 13:30:09 +01:00
Robert O'Callahan
0f770285f3
Move global ABC configuration variables into AbcConfig and initialize them properly
2025-11-05 13:56:04 +00:00
Emil J. Tywoniak
90553267b0
libparse: fix quoting and negedge in filterlib -verilogsim
2025-11-05 14:13:58 +01:00
Emil J. Tywoniak
504b668ea6
libparse: fix verilogsim negedge
2025-11-05 13:49:05 +01:00
Emil J. Tywoniak
bf29f6dc11
libparse: tolerate closing quotes in expression parsing
2025-11-05 13:06:09 +01:00
Emil J. Tywoniak
4fac7a1b20
libparse: fix space before closing paren in expressions
2025-11-05 13:05:56 +01:00
Emil J. Tywoniak
547e254a9b
libparse: parse expressions in filterlib
2025-11-05 13:05:56 +01:00
Emil J. Tywoniak
66d8fc5c28
libparse: quirk-compatibility for unquoted boolean expression strings
2025-11-05 11:00:25 +01:00
Emil J. Tywoniak
b2fe335b2d
dfflibmap: fix next_state inversion propagation for DFF flops by inverting reset value polarity
2025-10-28 13:56:28 +01:00
Emil J
9a12d92551
Merge pull request #5386 from YosysHQ/emil/liberty-glob-all
...
Expand wildcards in Liberty file consumers
2025-10-09 20:21:48 +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
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
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
Martin Povišer
29e0144ebc
Merge pull request #5381 from povik/abc9-multilib
...
Support multiple lib files in abc9_exe
2025-09-25 09:45:09 +02:00
Jannis Harder
71882debe7
simplemap: Remove leftover debug output
2025-09-24 13:20:27 +02:00
Jannis Harder
904d49c6d8
abc9_ops: Remove temporary debug log message
...
I missed this when adding the -replace_zbufs option.
2025-09-24 13:20:27 +02:00
Emil Jiří Tywoniak
4508676e67
libcache: support liberty filename globbing
2025-09-24 11:41:51 +02:00
Emil Jiří Tywoniak
856a387aad
dfflibmap: support liberty filename globbing
2025-09-24 11:41:51 +02:00
Emil Jiří Tywoniak
a28c0c632b
clockgate: support liberty filename globbing
2025-09-24 11:41:51 +02:00
Jannis Harder
7a69dbb63d
Merge pull request #5372 from rocallahan/abc-done
...
Make ABC_DONE tracking more robust
2025-09-24 08:40:26 +02:00
Emil J
5f6819fd76
Merge pull request #5361 from YosysHQ/emil/simplemap-transfer-src
...
simplemap: fix src attribute transfer
2025-09-23 20:40:57 +02:00
Martin Povišer
3f4b6dc5d3
Support multiple lib files in abc9_exe
2025-09-23 20:34:08 +02:00
Robert O'Callahan
1e5f920dbd
Remove .c_str() from parameters to log_debug()
2025-09-23 19:10:33 +12:00
Jannis Harder
13a2481da7
Merge pull request #5365 from rocallahan/deterministic-abc
...
Extract ABC results in the order of `assigned_cells`
2025-09-22 23:21:11 +02:00
Emil J
a78eb9e151
Merge pull request #5315 from YosysHQ/emil/write_rtlil-no-sort
...
write_rtlil: don't sort
2025-09-22 11:14:39 +02:00
Robert O'Callahan
7f6fae1f66
Extract ABC results in the order of `assigned_cells`.
...
Currently the order of extraction can vary based on which ABC runs finish first. That's
nondeterministic, therefore bad. Instead, force the processing to happen in the same order
as `assigned_cells`, i.e. the same order we use when not using parallelism. This should
make everything deterministic.
Note that we still allow ABC runs to complete out of order. Out-of-order results are
just not extracted until all the previous runs have completed and their results
extracted.
2025-09-22 05:07:03 +00:00
Robert O'Callahan
4fc782ef2b
Make ABC_DONE detection more robust.
...
1) Change token from ABC_DONE to YOSYS_ABC_DONE to be a bit more robust against false matches.
2) Emit the token from the sourced script so that we don't have to worry about it showing up in the echoing
of the command as it executes. It will only appear in ABC stdout when it executes, i.e. when
our script has completed.
3) `set abcout` doesn't actually switch ABC to line buffering on stdout, since HAVE_SETVBUF is not actually
set in ABC builds in general. So stop using that. ABC does the necessary flushing when
`source` has finished.
2025-09-22 05:01:51 +00:00
Robert O'Callahan
2de641d051
Don't redirect spawned ABCs' stderr to our pipe.
...
popen() doesn't do this and we should emulate the behavior of popen() as much as possible.
2025-09-22 05:01:51 +00:00
Emil J. Tywoniak
96f87aa2d4
simplemap: fix src attribute transfer
2025-09-18 12:59:12 +02:00
Jannis Harder
4f239b536b
abc_new: Hide buffered 'z drivers from read/write_xaiger2
...
With the updated bufnorm code, buffered 'z drivers are used as anchor
points for undirected connections. These are currently not supported by
read/write_xaiger2, so we temporarily replace those by roughly
equivalent $tribuf cells which will be handled as blackboxes that
properly roundtrip through the xaiger2 front and backend.
2025-09-17 13:56:46 +02:00
Jannis Harder
5f79a6e868
Clean up $buf with 'z inputs, $input_port and $connect cells
...
This ensures that entering and leaving bufnorm followed by `opt_clean`
is equivalent to just running `opt_clean`.
Also make sure that 'z-$buf cells get techmapped in a compatible way.
2025-09-17 13:56:46 +02:00
Emil J
73e47ac3fe
Merge pull request #5357 from rocallahan/builtin-ff
...
Instead of using `builtin_ff_cell_types()` directly, go through a method `Cell::is_builtin_ff()`
2025-09-17 11:37:16 +02:00
Robert O'Callahan
d24488d3a5
Instead of using builtin_ff_cell_types() directly, go through a method Cell::is_builtin_ff()
2025-09-17 03:24:19 +00:00