Asynchronous resets are bad design practice. Reset your flops synchronously or not at all.https://twitter.com/iowahawkblog/status/932309842123022336 …
-
Show this thread
-
Also: If you reset asynchronously, for God's sake reset to a constant. If you reset to a runtime value you rely on glitch free synthesis. Glitch free synthesis is pretty much an open research topic, assuming your tool will just do the right thing in this case is insanity.
1 reply 0 retweets 9 likesShow this thread -
Replying to @oe1cxw
Why is resetting to a runtime value propagated from another reg worse? Is it because a constant will not cause metastability, but a runtime value could due to setup/hold issues when the reset edge arrives?
1 reply 0 retweets 0 likes -
Replying to @cr1901
Has nothing to do with metastability. FFs have S and R inputs, not reset-enable and reset-data, so there's logic combining your reset signal and reset-data signal to generate S and R inputs for the FF. This logic must then be glitch free (aka "Hazzard Free", look it up).
2 replies 0 retweets 0 likes -
Replying to @oe1cxw
Interesting (to me anyway) aside: The SiliconBlue primitives library doesn't provide FFs with _both_ S and R inputs usable at the same time. I know what glitches are, don't worry :P. Should prob play w/ yosys to see what you mean about impl, however.
2 replies 0 retweets 0 likes
Neither does Xilinx. If you code one in your HDL code, Vivado will create a circuit with two FFs, one async cleared and one async preset, a latch that remembers the last async event, and a mux that selects one of the FFs. Try it and look at the synthesis results. It's horrible.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.