Improved $adff simplification
authorClifford Wolf <clifford@clifford.at>
Fri, 24 Jul 2015 12:12:50 +0000 (14:12 +0200)
committerClifford Wolf <clifford@clifford.at>
Fri, 24 Jul 2015 12:12:50 +0000 (14:12 +0200)
passes/opt/opt_rmdff.cc

index d2695b16791d4929f1c221e6563e54992de3885e..24c2d3fa33652c22540d0cb1d041a533b73cdfcf 100644 (file)
@@ -147,7 +147,7 @@ bool handle_dff(RTLIL::Module *mod, RTLIL::Cell *dff)
                goto delete_dff;
        }
 
-       if (sig_d.is_fully_const() && !sig_r.size() && (!has_init || val_init == sig_d.as_const())) {
+       if (sig_d.is_fully_const() && (!sig_r.size() || val_rv == sig_d.as_const()) && (!has_init || val_init == sig_d.as_const())) {
                RTLIL::SigSig conn(sig_q, sig_d);
                mod->connect(conn);
                goto delete_dff;