AN 584: Timing Closure Methodology for Advanced FPGA Designs

ID 683145
Date 10/08/2021
Public
Document Table of Contents

1.6.5.1. Recovery and Removal Issues

The Timing Analyzer performs recovery and removal analysis in addition to setup and hold analysis. Providing an appropriate reset structure for your design helps the Fitter to place logic to meet recovery and removal timing requirements.

Recovery time is analogous to setup time, and removal time is analogous to hold time. The difference between these sets of timing parameters is that recovery and removal analysis occurs for asynchronous signals (such as reset) with respect to the clock. Recovery and removal analysis helps you to ensure that your synchronous logic behaves correctly when you assert and deassert an asynchronous control signal.

A problem that can occur with a reset signal that spans across the device, is that the signal may not arrive at the same time relative to the clock edge for all the device registers.

When such a reset signal is deasserted, all of the registers should exit reset. However, if the reset signal does not meet the recovery time for some registers in the design, those registers may not exit reset until after the next clock edge.

If such registers do not all come out of reset in the same clock cycle, and if there are state machines with important transitions after this clock cycle, these state machines may not behave as you expect. This condition can cause a design failure. Similarly, a removal error can occur if you remove the reset too early, relative to the clock, and some registers exit reset one cycle earlier.

Using a VDD-based reset synchronizer, and adding another register at the end for duplication to drive different block resets, helps the Fitter to manage the placements to meet these timing requirements.

For more information on resets, refer to AN 917: Reset Design Techniques for Intel Hyperflex Architecture FPGAs.