diff options
| -rw-r--r-- | passes/fsm/fsm.cc | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/passes/fsm/fsm.cc b/passes/fsm/fsm.cc index b4d7bc46f..1feeaf8b3 100644 --- a/passes/fsm/fsm.cc +++ b/passes/fsm/fsm.cc @@ -33,7 +33,7 @@ struct FsmPass : public Pass {  		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_detect          unless got option -nodetect\n");  		log("    fsm_extract\n");  		log("\n");  		log("    fsm_opt\n"); @@ -65,6 +65,7 @@ struct FsmPass : public Pass {  	{  		bool flag_nomap = false;  		bool flag_norecode = false; +		bool flag_nodetect = false;  		bool flag_expand = false;  		bool flag_export = false;  		std::string fm_set_fsm_file_opt; @@ -84,6 +85,10 @@ struct FsmPass : public Pass {  				encoding_opt = " -encoding " + args[++argidx];  				continue;  			} +			if (arg == "-nodetect") { +				flag_nodetect = true; +				continue; +			}  			if (arg == "-norecode") {  				flag_norecode = true;  				continue; @@ -104,7 +109,8 @@ struct FsmPass : public Pass {  		}  		extra_args(args, argidx, design); -		Pass::call(design, "fsm_detect"); +		if (!flag_nodetect) +			Pass::call(design, "fsm_detect");  		Pass::call(design, "fsm_extract");  		Pass::call(design, "fsm_opt"); | 
