Added "prep -nomem"

This commit is contained in:
Clifford Wolf 2016-08-30 23:57:24 +02:00
parent aa25a4cec6
commit 2ee9bf10d0

View file

@ -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");
}