proc_dff: fix early return bug

* early return caused proc_dff to stop considering rules after seeing
  one async rule - this is because continue should have been used to
  continue to procecssing the next rule instead of returning from the
  function
This commit is contained in:
George Rennie 2024-11-07 00:06:03 +01:00
parent 2de9f00368
commit 626dbbe1e0
1 changed files with 2 additions and 2 deletions

View File

@ -262,7 +262,7 @@ void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce)
{ {
log_warning("Complex async reset for dff `%s'.\n", log_signal(sig)); log_warning("Complex async reset for dff `%s'.\n", log_signal(sig));
gen_dffsr_complex(mod, insig, sig, sync_edge->signal, sync_edge->type == RTLIL::SyncType::STp, async_rules, proc); gen_dffsr_complex(mod, insig, sig, sync_edge->signal, sync_edge->type == RTLIL::SyncType::STp, async_rules, proc);
return; continue;
} }
// If there is a reset condition in the async rules, use it // If there is a reset condition in the async rules, use it
@ -277,7 +277,7 @@ void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce)
sync_edge->type == RTLIL::SyncType::STp, sync_edge->type == RTLIL::SyncType::STp,
sync_level && sync_level->type == RTLIL::SyncType::ST1, sync_level && sync_level->type == RTLIL::SyncType::ST1,
sync_edge->signal, sync_level->signal, proc); sync_edge->signal, sync_level->signal, proc);
return; continue;
} }
gen_dff(mod, insig, rstval.as_const(), sig_q, gen_dff(mod, insig, rstval.as_const(), sig_q,