summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-06-19 12:29:29 +0200
committerClifford Wolf <clifford@clifford.at>2014-06-19 12:29:29 +0200
commit1c85584fe5843a43590de3927fe9bde74a04e72e (patch)
tree71704e83df84935200b659a13cf52bea8823e4bf
parentdf76da8fd710394e7ea999e90994483da223f545 (diff)
Do not create $dffsr cells with no-op resets in proc_dff
-rw-r--r--passes/proc/proc_dff.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/passes/proc/proc_dff.cc b/passes/proc/proc_dff.cc
index 2ec498fb..c1844651 100644
--- a/passes/proc/proc_dff.cc
+++ b/passes/proc/proc_dff.cc
@@ -356,6 +356,11 @@ static void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce)
rstval.optimize();
sig.optimize();
+ if (rstval == sig) {
+ rstval = RTLIL::SigSpec(RTLIL::State::Sz, sig.width);
+ sync_level = NULL;
+ }
+
if (sync_always) {
if (sync_edge || sync_level || many_async_rules.size() > 0)
log_error("Mixed always event with edge and/or level sensitive events!\n");