From: Clifford Wolf Date: Fri, 6 Dec 2013 11:53:20 +0000 (+0100) Subject: Fixes in fsm detect/extract for better detection of non-fsm circuits X-Git-Tag: yosys-0.2.0~253 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=06d96e8fcf651a3fd16f5c64cbb01570471c7c0e;p=yosys.git Fixes in fsm detect/extract for better detection of non-fsm circuits --- diff --git a/passes/fsm/fsm_detect.cc b/passes/fsm/fsm_detect.cc index 6cd428a87..a8ec19126 100644 --- a/passes/fsm/fsm_detect.cc +++ b/passes/fsm/fsm_detect.cc @@ -161,7 +161,7 @@ struct FsmDetectPass : public Pass { sig_at_port.clear(); for (auto &cell_it : module->cells) for (auto &conn_it : cell_it.second->connections) { - if (ct.cell_output(cell_it.second->type, conn_it.first)) { + if (ct.cell_output(cell_it.second->type, conn_it.first) || !ct.cell_known(cell_it.second->type)) { RTLIL::SigSpec sig = conn_it.second; assign_map.apply(sig); sig2driver.insert(sig, sig2driver_entry_t(cell_it.second, conn_it.first)); diff --git a/passes/fsm/fsm_extract.cc b/passes/fsm/fsm_extract.cc index dc3a9ec09..9cba904a7 100644 --- a/passes/fsm/fsm_extract.cc +++ b/passes/fsm/fsm_extract.cc @@ -144,8 +144,8 @@ static void find_transitions(ConstEval &ce, ConstEval &ce_nostop, FsmData &fsm_d return; } - assert(undef.width > 0); - assert(ce.stop_signals.check_all(undef)); + log_assert(undef.width > 0); + log_assert(ce.stop_signals.check_all(undef)); undef = undef.extract(0, 1); constval = undef; @@ -361,7 +361,7 @@ struct FsmExtractPass : public Pass { sig2trigger.clear(); for (auto &cell_it : module->cells) for (auto &conn_it : cell_it.second->connections) { - if (ct.cell_output(cell_it.second->type, conn_it.first)) { + if (ct.cell_output(cell_it.second->type, conn_it.first) || !ct.cell_known(cell_it.second->type)) { RTLIL::SigSpec sig = conn_it.second; assign_map.apply(sig); sig2driver.insert(sig, sig2driver_entry_t(cell_it.first, conn_it.first));