summaryrefslogtreecommitdiff
path: root/passes/fsm/fsm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'passes/fsm/fsm.cc')
-rw-r--r--passes/fsm/fsm.cc38
1 files changed, 37 insertions, 1 deletions
diff --git a/passes/fsm/fsm.cc b/passes/fsm/fsm.cc
index 61322fbd..c0c42de9 100644
--- a/passes/fsm/fsm.cc
+++ b/passes/fsm/fsm.cc
@@ -23,7 +23,43 @@
#include <stdio.h>
struct FsmPass : public Pass {
- FsmPass() : Pass("fsm") { }
+ FsmPass() : Pass("fsm", "extract and optimize finite state machines") { }
+ virtual void help()
+ {
+ // |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
+ log("\n");
+ log(" fsm [options] [selection]\n");
+ log("\n");
+ log("This pass calls all the other fsm_* passes in a useful order. This performs\n");
+ log("FSM extraction and optimiziation. It also calls opt_rmunused as needed:\n");
+ log("\n");
+ log(" fsm_detect\n");
+ log(" fsm_extract\n");
+ log("\n");
+ log(" fsm_opt\n");
+ log(" opt_rmunused\n");
+ log(" fsm_opt\n");
+ log("\n");
+ log(" fsm_expand if got option -expand\n");
+ log(" opt_rmunused if got option -expand\n");
+ log(" fsm_opt if got option -expand\n");
+ log("\n");
+ log(" fsm_recode unless got option -norecode\n");
+ log("\n");
+ log(" fsm_info\n");
+ log("\n");
+ log(" fsm_export if got option -export\n");
+ log(" fsm_map unless got option -nomap\n");
+ log("\n");
+ log("Options:\n");
+ log("\n");
+ log(" -expand, -norecode, -export, -nomap\n");
+ log(" enable or disable passes as indicated above\n");
+ log("\n");
+ log(" -fm_set_fsm_file file\n");
+ log(" passed through to fsm_recode pass\n");
+ log("\n");
+ }
virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
{
bool flag_nomap = false;