diff options
Diffstat (limited to 'techlibs/common')
| -rw-r--r-- | techlibs/common/synth.cc | 18 | 
1 files changed, 13 insertions, 5 deletions
| diff --git a/techlibs/common/synth.cc b/techlibs/common/synth.cc index e41c0fe97..ee2e86de9 100644 --- a/techlibs/common/synth.cc +++ b/techlibs/common/synth.cc @@ -75,13 +75,16 @@ struct SynthPass : public ScriptPass  		log("        from label is synonymous to 'begin', and empty to label is\n");  		log("        synonymous to the end of the command list.\n");  		log("\n"); +		log("    -abc9\n"); +		log("        use abc9 instead of abc\n"); +		log("\n");  		log("\n");  		log("The following commands are executed by this synthesis command:\n");  		help_script();  		log("\n");  	} -	string top_module, fsm_opts, memory_opts; +	string top_module, fsm_opts, memory_opts, abc;  	bool autotop, flatten, noalumacc, nofsm, noabc, noshare;  	int lut; @@ -98,6 +101,7 @@ struct SynthPass : public ScriptPass  		nofsm = false;  		noabc = false;  		noshare = false; +		abc = "abc";  	}  	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE @@ -159,6 +163,10 @@ struct SynthPass : public ScriptPass  				noshare = true;  				continue;  			} +			if (args[argidx] == "-abc9") { +				abc = "abc9"; +				continue; +			}  			break;  		}  		extra_args(args, argidx, design); @@ -241,15 +249,15 @@ struct SynthPass : public ScriptPass  		#ifdef YOSYS_ENABLE_ABC  				if (help_mode)  				{ -					run("abc -fast", "       (unless -noabc, unless -lut)"); -					run("abc -fast -lut k", "(unless -noabc, if -lut)"); +					run(abc + " -fast", "       (unless -noabc, unless -lut)"); +					run(abc + " -fast -lut k", "(unless -noabc, if -lut)");  				}  				else  				{  					if (lut) -						run(stringf("abc -fast -lut %d", lut)); +						run(stringf("%s -fast -lut %d", abc.c_str(), lut));  					else -						run("abc -fast"); +						run(abc + " -fast");  				}  				run("opt -fast", "       (unless -noabc)");  		#endif | 
