aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2016-08-30 23:57:24 +0200
committerClifford Wolf <clifford@clifford.at>2016-08-30 23:57:24 +0200
commit2ee9bf10d029396ba03b1d3023f15ff585e26bcb (patch)
tree67a86adf882e8228135317a8895aec35636d55f0 /techlibs
parentaa25a4cec66bfde84f9142b21679e82ba90ee910 (diff)
downloadyosys-2ee9bf10d029396ba03b1d3023f15ff585e26bcb.tar.gz
yosys-2ee9bf10d029396ba03b1d3023f15ff585e26bcb.tar.bz2
yosys-2ee9bf10d029396ba03b1d3023f15ff585e26bcb.zip
Added "prep -nomem"
Diffstat (limited to 'techlibs')
-rw-r--r--techlibs/common/prep.cc22
1 files changed, 16 insertions, 6 deletions
diff --git a/techlibs/common/prep.cc b/techlibs/common/prep.cc
index f797f5db7..fac6c4bac 100644
--- a/techlibs/common/prep.cc
+++ b/techlibs/common/prep.cc
@@ -57,6 +57,9 @@ struct PrepPass : public ScriptPass
log(" simulate verilog simulation behavior for out-of-bounds memory accesses\n");
log(" using the 'memory_memx' pass. This option implies -nordff.\n");
log("\n");
+ log(" -nomem\n");
+ log(" do not run any of the memory_* passes\n");
+ log("\n");
log(" -nordff\n");
log(" passed to 'memory_dff'. prohibits merging of FFs into memory read ports\n");
log("\n");
@@ -72,7 +75,7 @@ struct PrepPass : public ScriptPass
}
string top_module, fsm_opts, memory_opts;
- bool autotop, flatten, ifxmode, memxmode;
+ bool autotop, flatten, ifxmode, memxmode, nomemmode;
virtual void clear_flags() YS_OVERRIDE
{
@@ -83,6 +86,7 @@ struct PrepPass : public ScriptPass
flatten = false;
ifxmode = false;
memxmode = false;
+ nomemmode = false;
}
virtual void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE
@@ -124,6 +128,10 @@ struct PrepPass : public ScriptPass
memory_opts += " -nordff";
continue;
}
+ if (args[argidx] == "-nomem") {
+ nomemmode = true;
+ continue;
+ }
if (args[argidx] == "-nordff") {
memory_opts += " -nordff";
continue;
@@ -179,11 +187,13 @@ struct PrepPass : public ScriptPass
else
run(memxmode ? "wreduce -memx" : "wreduce");
}
- run("memory_dff" + (help_mode ? " [-nordff]" : memory_opts));
- if (help_mode || memxmode)
- run("memory_memx", "(if -memx)");
- run("opt_clean");
- run("memory_collect");
+ if (!nomemmode) {
+ run("memory_dff" + (help_mode ? " [-nordff]" : memory_opts));
+ if (help_mode || memxmode)
+ run("memory_memx", "(if -memx)");
+ run("opt_clean");
+ run("memory_collect");
+ }
run("opt -keepdc -fast");
}