J
Jeff Cunningham
Guest
Here's another reason to NEVER NEVER NEVER feed asynchronous signals to
a state machine: Sometimes the back end tools in the default settings
will replicate flip flops to make routing easier. For instance if there
is a gray code counter bit that goes to many places, the router could
split it into two equivalent bits that go to half as many places each.
I have been burned by this before on input deglitching flip flops, where
the tool replaced it with two parallel deglitching flip flops, which is
obviously not much of a deglitcher.
There are tool directives to prevent this from happening, but I like to
do the two deglitchers in series trick so that the first deglitcher will
only have one load, so it can't be split.
-Jeff
a state machine: Sometimes the back end tools in the default settings
will replicate flip flops to make routing easier. For instance if there
is a gray code counter bit that goes to many places, the router could
split it into two equivalent bits that go to half as many places each.
I have been burned by this before on input deglitching flip flops, where
the tool replaced it with two parallel deglitching flip flops, which is
obviously not much of a deglitcher.
There are tool directives to prevent this from happening, but I like to
do the two deglitchers in series trick so that the first deglitcher will
only have one load, so it can't be split.
-Jeff