--- Quote Start ---
Removal and recovery are asynchronous equivalents of setup and hold. The same rules apply as there, recovery and removal errors can be caused by high fan outs and long nets. I assume your global async reset is a synchronised version of some asynchronous reset signal (like a button). You would apply the reset asynchronously and remove it synchronously.
Once you've done this, and still get recovery and removal violations:
1. Duplicate the synchronisation registers in the reset path and have different parts of the chip reset from different nets.
2. Use a Global Clk net to get the reset around the chip quickly
3. Set a max delay on the reset
--- Quote End ---
In fact, I am processing a frame from a cmos sensor and doing conditioning on it. At the end of each frame processed, I apply an asyncronous reset (driven by an internal fpga signal) to ensure that the system always start a new frame in the same condtion.
1 - About creating syncronizer for metastability, I am not sure to understand how to do this. I have written in vhdl design a cascade of register, I have assigned each register "Syncronizer Identification"= "Forced" but I still have same result in Timequest Analysis... Do I miss something ?
2 - I have assign "Global signal"="Global Clock" to reset register but still no different result in Timequest, is it normal ?