Success! Subscription added.
Success! Subscription removed.
Sorry, you must verify to complete this action. Please click the verification link in your email. You may re-send via your profile.
Synchronizing asynchronous resets.
In many FPGA/CPLD designs, there is not much thought put into resets, and a simple asynchronous reset from the board is brought into the FPGA and simply resets all of the registers. This may work in many applications, but if there are circuits in your design that start running immediately upon release of the reset, your circuit may behave incorrecltly. This type of failure is very hard to catch in the lab as the relationship of the clock and the reset have to align such that the problem is exhibited.
Below is one way to synchronize a reset such that the reset is asserted asynchronously (your circuit will go into reset without a clock), but the reset is removed synchronous to the clock (the circuit comes out of reset synchronously on a clock edge). Quartus' Timequest timing analyzer tool will analyze this path with recovery/removal analysis. For more information on Timequest, check out the TimeQuest User Guide and the Altera Timequest resource page http://www.altera.com/support/software/timequest/sof-qts-timequest.html
Webex recoding showing what can happen with a pure asynchronous reset, and how to synchronize the reset:
Asynchronous reset- Asynch_reset.JPG (Click here for image)
Synchronizing the asynchronous reset- Synchronized_reset.JPG (Click here for image)
Timing Diagram of the synchronized reset- Timing_diagram.JPG (Click here for image)
Community support is provided Monday to Friday. Other contact methods are available here.
Intel does not verify all solutions, including but not limited to any file transfers that may appear in this community. Accordingly, Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
For more complete information about compiler optimizations, see our Optimization Notice.