aboutsummaryrefslogtreecommitdiffstats
path: root/passes/proc
diff options
context:
space:
mode:
authorMarcelina Koƛcielnicka <mwk@0x04.net>2021-03-06 03:59:03 +0100
committerMarcelina Koƛcielnicka <mwk@0x04.net>2021-03-08 17:01:43 +0100
commit760284033d6f255790d44bfcda0d1625a0c7bc87 (patch)
treee23050e2e3c0c85fd560d0f63dca347832d8e24f /passes/proc
parentbc717abad2187b2aacaac7e9b8e152462769056a (diff)
downloadyosys-760284033d6f255790d44bfcda0d1625a0c7bc87.tar.gz
yosys-760284033d6f255790d44bfcda0d1625a0c7bc87.tar.bz2
yosys-760284033d6f255790d44bfcda0d1625a0c7bc87.zip
proc_dff: Fix emitted FF when a register is not assigned in async reset
Fixes #2619.
Diffstat (limited to 'passes/proc')
-rw-r--r--passes/proc/proc_dff.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/passes/proc/proc_dff.cc b/passes/proc/proc_dff.cc
index e320a72a6..2b6ca8449 100644
--- a/passes/proc/proc_dff.cc
+++ b/passes/proc/proc_dff.cc
@@ -328,6 +328,10 @@ void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce)
ce.assign_map.apply(sig);
if (rstval == sig) {
+ if (sync_level->type == RTLIL::SyncType::ST1)
+ insig = mod->Mux(NEW_ID, insig, sig, sync_level->signal);
+ else
+ insig = mod->Mux(NEW_ID, sig, insig, sync_level->signal);
rstval = RTLIL::SigSpec(RTLIL::State::Sz, sig.size());
sync_level = NULL;
}