3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-06 17:44:09 +00:00

proc: Add -nomux switch

running proc -nomux will ommit the proc_mux pass
This commit is contained in:
Peder Bergebakken Sundt 2020-08-20 22:58:08 +02:00
parent 034b9ec716
commit 656ee70f8e

View file

@ -50,6 +50,9 @@ struct ProcPass : public Pass {
log("\n"); log("\n");
log("The following options are supported:\n"); log("The following options are supported:\n");
log("\n"); log("\n");
log(" -nomux\n");
log(" Will omit the proc_mux pass.\n");
log("\n");
log(" -global_arst [!]<netname>\n"); log(" -global_arst [!]<netname>\n");
log(" This option is passed through to proc_arst.\n"); log(" This option is passed through to proc_arst.\n");
log("\n"); log("\n");
@ -62,6 +65,7 @@ struct ProcPass : public Pass {
{ {
std::string global_arst; std::string global_arst;
bool ifxmode = false; bool ifxmode = false;
bool nomux = false;
log_header(design, "Executing PROC pass (convert processes to netlists).\n"); log_header(design, "Executing PROC pass (convert processes to netlists).\n");
log_push(); log_push();
@ -69,6 +73,10 @@ struct ProcPass : public Pass {
size_t argidx; size_t argidx;
for (argidx = 1; argidx < args.size(); argidx++) for (argidx = 1; argidx < args.size(); argidx++)
{ {
if (args[argidx] == "-nomux") {
nomux = true;
continue;
}
if (args[argidx] == "-global_arst" && argidx+1 < args.size()) { if (args[argidx] == "-global_arst" && argidx+1 < args.size()) {
global_arst = args[++argidx]; global_arst = args[++argidx];
continue; continue;
@ -90,7 +98,8 @@ struct ProcPass : public Pass {
Pass::call(design, "proc_arst"); Pass::call(design, "proc_arst");
else else
Pass::call(design, "proc_arst -global_arst " + global_arst); Pass::call(design, "proc_arst -global_arst " + global_arst);
Pass::call(design, ifxmode ? "proc_mux -ifx" : "proc_mux"); if (!nomux)
Pass::call(design, ifxmode ? "proc_mux -ifx" : "proc_mux");
Pass::call(design, "proc_dlatch"); Pass::call(design, "proc_dlatch");
Pass::call(design, "proc_dff"); Pass::call(design, "proc_dff");
Pass::call(design, "proc_clean"); Pass::call(design, "proc_clean");