Thu Oct 18 15:45:53 CEST 2018

Premature opti

I want to use abstractions, and not worry about efficiency at the same
time.  Trust compiler to do common subexpression elimination, even for
state machines.

If it is possible to duplicate functionality at state machine level,
it is OK to _actually use_ abstractions that convert between different

A good example is dual signal start+stop protocol vs. single line
enable/nrst.  If the optimizer can eliminate dual instantiations of
the same edge detector, it is no longer necessary to spend mental
cycles manually performing the factorization.  This premature
optimization is a serious hangup otherwise.

TODO: Validate if this is what happens!  Otherwise, add a pass in Seq.

EDIT: I really worry about this.  Easy enough to test: create 2 edge
detectors from the same pin to 2 different output pins, and see if it

EDIT: I don't think it eliminates delays, at least I do not see it
doing this anywhere.