diff --git a/passes/opt/opt_rmdff.cc b/passes/opt/opt_rmdff.cc index c7e92ddc1..5f52bb8d8 100644 --- a/passes/opt/opt_rmdff.cc +++ b/passes/opt/opt_rmdff.cc @@ -83,7 +83,7 @@ bool handle_dff(RTLIL::Module *mod, RTLIL::Cell *dff) val_init.bits.push_back(bit.wire == NULL ? bit.data : RTLIL::State::Sx); } - if (dff->type == "$dff" && mux_drivers.has(sig_d)) { + if (dff->type == "$dff" && mux_drivers.has(sig_d) && !has_init) { std::set muxes; mux_drivers.find(sig_d, muxes); for (auto mux : muxes) {