aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--passes/fsm/fsm.cc9
-rw-r--r--passes/fsm/fsm_detect.cc9
2 files changed, 18 insertions, 0 deletions
diff --git a/passes/fsm/fsm.cc b/passes/fsm/fsm.cc
index 0c5e624dc..8e7e09d4c 100644
--- a/passes/fsm/fsm.cc
+++ b/passes/fsm/fsm.cc
@@ -67,6 +67,15 @@ struct FsmPass : public Pass {
log(" -encfile file\n");
log(" passed through to fsm_recode pass\n");
log("\n");
+ log("This pass uses a subset of FF types to detect FSMs. Run 'opt -nosdff -nodffe'\n");
+ log("before this pass to prepare the design.\n");
+ log("\n");
+#ifdef YOSYS_ENABLE_VERIFIC
+ log("The Verific frontend may merge multiplexers in a way that interferes with FSM\n");
+ log("detection. Run 'verific -cfg db_infer_wide_muxes_post_elaboration 0' before\n");
+ log("reading the source, and 'bmuxmap' after 'proc' for best results.\n");
+ log("\n");
+#endif
}
void execute(std::vector<std::string> args, RTLIL::Design *design) override
{
diff --git a/passes/fsm/fsm_detect.cc b/passes/fsm/fsm_detect.cc
index f829714c4..5378ec89e 100644
--- a/passes/fsm/fsm_detect.cc
+++ b/passes/fsm/fsm_detect.cc
@@ -272,6 +272,15 @@ struct FsmDetectPass : public Pass {
log("Signals can be protected from being detected by this pass by setting the\n");
log("'fsm_encoding' attribute to \"none\".\n");
log("\n");
+ log("This pass uses a subset of FF types to detect FSMs. Run 'opt -nosdff -nodffe'\n");
+ log("before this pass to prepare the design for fsm_detect.\n");
+ log("\n");
+#ifdef YOSYS_ENABLE_VERIFIC
+ log("The Verific frontend may merge multiplexers in a way that interferes with FSM\n");
+ log("detection. Run 'verific -cfg db_infer_wide_muxes_post_elaboration 0' before\n");
+ log("reading the source, and 'bmuxmap' after 'proc' for best results.\n");
+ log("\n");
+#endif
}
void execute(std::vector<std::string> args, RTLIL::Design *design) override
{