mirror of https://github.com/YosysHQ/yosys.git
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:
parent
2de9f00368
commit
626dbbe1e0
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue