aboutsummaryrefslogtreecommitdiffstats
path: root/passes
diff options
context:
space:
mode:
authorMarcelina Koƛcielnicka <mwk@0x04.net>2021-03-30 04:00:45 +0200
committerMarcelina Koƛcielnicka <mwk@0x04.net>2021-03-30 18:20:21 +0200
commitb7ea71e6e39dfda903e1060e1b254ce0002fcf0d (patch)
tree96c5745e1474d5652006dd5b918b6bd84907d1af /passes
parentba2ff1ea986b73d025938ab1cf102e1cf35d6773 (diff)
downloadyosys-b7ea71e6e39dfda903e1060e1b254ce0002fcf0d.tar.gz
yosys-b7ea71e6e39dfda903e1060e1b254ce0002fcf0d.tar.bz2
yosys-b7ea71e6e39dfda903e1060e1b254ce0002fcf0d.zip
equiv: Suggest running async2sync or clk2fflogic where appropriate.
See #2713.
Diffstat (limited to 'passes')
-rw-r--r--passes/equiv/equiv_induct.cc5
-rw-r--r--passes/equiv/equiv_simple.cc8
2 files changed, 10 insertions, 3 deletions
diff --git a/passes/equiv/equiv_induct.cc b/passes/equiv/equiv_induct.cc
index 37aec50cd..5f14416da 100644
--- a/passes/equiv/equiv_induct.cc
+++ b/passes/equiv/equiv_induct.cc
@@ -55,7 +55,10 @@ struct EquivInductWorker
for (auto cell : cells) {
if (!satgen.importCell(cell, step) && !cell_warn_cache.count(cell)) {
- log_warning("No SAT model available for cell %s (%s).\n", log_id(cell), log_id(cell->type));
+ if (RTLIL::builtin_ff_cell_types().count(cell->type))
+ log_warning("No SAT model available for async FF cell %s (%s). Consider running `async2sync` or `clk2fflogic` first.\n", log_id(cell), log_id(cell->type));
+ else
+ log_warning("No SAT model available for cell %s (%s).\n", log_id(cell), log_id(cell->type));
cell_warn_cache.insert(cell);
}
if (cell->type == ID($equiv)) {
diff --git a/passes/equiv/equiv_simple.cc b/passes/equiv/equiv_simple.cc
index 408c5a793..8d9e870da 100644
--- a/passes/equiv/equiv_simple.cc
+++ b/passes/equiv/equiv_simple.cc
@@ -184,8 +184,12 @@ struct EquivSimpleWorker
for (auto cell : problem_cells) {
auto key = pair<Cell*, int>(cell, step+1);
- if (!imported_cells_cache.count(key) && !satgen.importCell(cell, step+1))
- log_cmd_error("No SAT model available for cell %s (%s).\n", log_id(cell), log_id(cell->type));
+ if (!imported_cells_cache.count(key) && !satgen.importCell(cell, step+1)) {
+ if (RTLIL::builtin_ff_cell_types().count(cell->type))
+ log_cmd_error("No SAT model available for async FF cell %s (%s). Consider running `async2sync` or `clk2fflogic` first.\n", log_id(cell), log_id(cell->type));
+ else
+ log_cmd_error("No SAT model available for cell %s (%s).\n", log_id(cell), log_id(cell->type));
+ }
imported_cells_cache.insert(key);
}