From a338d1a082726d84210912318a9ac49977dc380c Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 1 Mar 2013 12:35:12 +0100 Subject: Added help messages for fsm_* passes --- passes/fsm/fsm_recode.cc | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'passes/fsm/fsm_recode.cc') diff --git a/passes/fsm/fsm_recode.cc b/passes/fsm/fsm_recode.cc index 5e258f26..acb5944a 100644 --- a/passes/fsm/fsm_recode.cc +++ b/passes/fsm/fsm_recode.cc @@ -83,7 +83,21 @@ static void fsm_recode(RTLIL::Cell *cell, RTLIL::Module *module, FILE *fm_set_fs } struct FsmRecodePass : public Pass { - FsmRecodePass() : Pass("fsm_recode") { } + FsmRecodePass() : Pass("fsm_recode", "recoding finite state machines") { } + virtual void help() + { + // |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---| + log("\n"); + log(" fsm_recode [-fm_set_fsm_file file] [selection]\n"); + log("\n"); + log("This pass reassign the state encodings for FSM cells. At the moment only\n"); + log("one-hot encoding is supported.\n"); + log("\n"); + log("The option -fm_set_fsm_file can be used to generate a file containing the\n"); + log("mapping from old to new FSM encoding in form of Synopsys Formality set_fsm_*\n"); + log("commands.\n"); + log("\n"); + } virtual void execute(std::vector args, RTLIL::Design *design) { FILE *fm_set_fsm_file = NULL; @@ -103,9 +117,10 @@ struct FsmRecodePass : public Pass { extra_args(args, argidx, design); for (auto &mod_it : design->modules) - for (auto &cell_it : mod_it.second->cells) - if (cell_it.second->type == "$fsm") - fsm_recode(cell_it.second, mod_it.second, fm_set_fsm_file); + if (design->selected(mod_it.second)) + for (auto &cell_it : mod_it.second->cells) + if (cell_it.second->type == "$fsm" && design->selected(mod_it.second, cell_it.second)) + fsm_recode(cell_it.second, mod_it.second, fm_set_fsm_file); if (fm_set_fsm_file != NULL) fclose(fm_set_fsm_file); -- cgit v1.2.3