diff options
author | Clifford Wolf <clifford@clifford.at> | 2016-06-06 17:15:50 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2016-06-06 17:15:50 +0200 |
commit | 2032e6d8e46c0b715e73423cb34f4a624617df6e (patch) | |
tree | b03e42e33c86a0e379ff319495e4989167805e64 /passes/proc/proc.cc | |
parent | dcf576641b4a9b476d51fbe1b0cdfb57d02a76e6 (diff) | |
download | yosys-2032e6d8e46c0b715e73423cb34f4a624617df6e.tar.gz yosys-2032e6d8e46c0b715e73423cb34f4a624617df6e.tar.bz2 yosys-2032e6d8e46c0b715e73423cb34f4a624617df6e.zip |
Added "proc_mux -ifx"
Diffstat (limited to 'passes/proc/proc.cc')
-rw-r--r-- | passes/proc/proc.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/passes/proc/proc.cc b/passes/proc/proc.cc index 6998cef7e..d5366f266 100644 --- a/passes/proc/proc.cc +++ b/passes/proc/proc.cc @@ -52,10 +52,15 @@ struct ProcPass : public Pass { log(" -global_arst [!]<netname>\n"); log(" This option is passed through to proc_arst.\n"); log("\n"); + log(" -ifx\n"); + log(" This option is passed through to proc_mux. proc_rmdead is not\n"); + log(" executed in -ifx mode.\n"); + log("\n"); } virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { std::string global_arst; + bool ifxmode = false; log_header(design, "Executing PROC pass (convert processes to netlists).\n"); log_push(); @@ -67,18 +72,23 @@ struct ProcPass : public Pass { global_arst = args[++argidx]; continue; } + if (args[argidx] == "-ifx") { + ifxmode = true; + continue; + } break; } extra_args(args, argidx, design); Pass::call(design, "proc_clean"); - Pass::call(design, "proc_rmdead"); + if (!ifxmode) + Pass::call(design, "proc_rmdead"); Pass::call(design, "proc_init"); if (global_arst.empty()) Pass::call(design, "proc_arst"); else Pass::call(design, "proc_arst -global_arst " + global_arst); - Pass::call(design, "proc_mux"); + Pass::call(design, ifxmode ? "proc_mux -ifx" : "proc_mux"); Pass::call(design, "proc_dlatch"); Pass::call(design, "proc_dff"); Pass::call(design, "proc_clean"); |