Why is synth_ecp5 flag `-dff` not enabled by default?

My design appears to much easily meet timing when I use the synth_ecp5 flag -dff, which run abc9 with -dff option.

Is there a reason why it is not enabled by default ?

Does it have drawbacks ?

  • It’s very inconsistent in its behaviour; generally the quality-of-result is slightly worse with -dff than without in my own experience.
  • The idea of -dff in ABC9 was to permit retiming, but ABC9 still does not support retiming, so it’s of limited use in practice. We can detect and remove duplicate flops with &scorr, but that’s about all.
  • Because flops get removed, we have to use sequential equivalence checking &verify -s which is significantly slower than combinational equivalence checking &verify.
1 Like