From: Marcelina Koƛcielnicka Date: Tue, 27 Jul 2021 13:43:36 +0000 (+0200) Subject: proc: Run opt_expr at the end X-Git-Tag: yosys-0.10~85 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a0e912ba9996536f5eab9989e7119d91b20545f4;p=yosys.git proc: Run opt_expr at the end --- diff --git a/passes/proc/proc.cc b/passes/proc/proc.cc index 2dfc30e87..d7aac57b6 100644 --- a/passes/proc/proc.cc +++ b/passes/proc/proc.cc @@ -45,6 +45,7 @@ struct ProcPass : public Pass { log(" proc_dff\n"); log(" proc_memwr\n"); log(" proc_clean\n"); + log(" opt_expr -keepdc\n"); log("\n"); log("This replaces the processes in the design with multiplexers,\n"); log("flip-flops and latches.\n"); @@ -61,12 +62,16 @@ struct ProcPass : public Pass { log(" This option is passed through to proc_mux. proc_rmdead is not\n"); log(" executed in -ifx mode.\n"); log("\n"); + log(" -noopt\n"); + log(" Will omit the opt_expr pass.\n"); + log("\n"); } void execute(std::vector args, RTLIL::Design *design) override { std::string global_arst; bool ifxmode = false; bool nomux = false; + bool noopt = false; log_header(design, "Executing PROC pass (convert processes to netlists).\n"); log_push(); @@ -86,6 +91,10 @@ struct ProcPass : public Pass { ifxmode = true; continue; } + if (args[argidx] == "-noopt") { + noopt = true; + continue; + } break; } extra_args(args, argidx, design); @@ -105,6 +114,8 @@ struct ProcPass : public Pass { Pass::call(design, "proc_dff"); Pass::call(design, "proc_memwr"); Pass::call(design, "proc_clean"); + if (!noopt) + Pass::call(design, "opt_expr -keepdc"); log_pop(); }