Add synth -keepdc option

This commit is contained in:
Eddie Hung 2019-07-08 19:14:54 -07:00
parent b5072256f2
commit dd9771cbcd
1 changed files with 13 additions and 2 deletions

View File

@ -78,6 +78,9 @@ struct SynthPass : public ScriptPass
log(" -abc9\n"); log(" -abc9\n");
log(" use new ABC9 flow (EXPERIMENTAL)\n"); log(" use new ABC9 flow (EXPERIMENTAL)\n");
log("\n"); log("\n");
log(" -keepdc\n");
log(" do not optimize explicit don't-care values on $mux cells.\n");
log("\n");
log("\n"); log("\n");
log("The following commands are executed by this synthesis command:\n"); log("The following commands are executed by this synthesis command:\n");
help_script(); help_script();
@ -85,7 +88,7 @@ struct SynthPass : public ScriptPass
} }
string top_module, fsm_opts, memory_opts, abc; string top_module, fsm_opts, memory_opts, abc;
bool autotop, flatten, noalumacc, nofsm, noabc, noshare; bool autotop, flatten, noalumacc, nofsm, noabc, noshare, keepdc;
int lut; int lut;
void clear_flags() YS_OVERRIDE void clear_flags() YS_OVERRIDE
@ -102,6 +105,7 @@ struct SynthPass : public ScriptPass
noabc = false; noabc = false;
noshare = false; noshare = false;
abc = "abc"; abc = "abc";
keepdc = false;
} }
void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE
@ -167,6 +171,10 @@ struct SynthPass : public ScriptPass
abc = "abc9"; abc = "abc9";
continue; continue;
} }
if (args[argidx] == "-keepdc") {
keepdc = true;
continue;
}
break; break;
} }
extra_args(args, argidx, design); extra_args(args, argidx, design);
@ -211,7 +219,10 @@ struct SynthPass : public ScriptPass
run("opt_clean"); run("opt_clean");
run("check"); run("check");
run("opt"); run("opt");
run("wreduce"); if (help_mode)
run("wreduce [-keepdc]");
else
run("wreduce" + std::string(keepdc ? " -keepdc" : ""));
run("peepopt"); run("peepopt");
run("opt_clean"); run("opt_clean");
if (help_mode) if (help_mode)