proc: Add -nomux switch
authorPeder Bergebakken Sundt <pbsds@hotmail.com>
Thu, 20 Aug 2020 20:58:08 +0000 (22:58 +0200)
committerPeder Bergebakken Sundt <pbsds@hotmail.com>
Thu, 20 Aug 2020 20:58:08 +0000 (22:58 +0200)
running proc -nomux will ommit the proc_mux pass

passes/proc/proc.cc

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