Visible to Intel only — GUID: rcs1603894609524
Ixiasoft
1.2.1. Asynchronous Reset Design Strategies
The primary disadvantage of using an asynchronous reset is that the reset is asynchronous both at the assertion and de-assertion of the signal.
The signal assertion is not the problem on the actual connected flip-flop. Even if the flip-flop moves to a metastable state, the flip-flop remains unstable only for a short period of time after assertion. After reset asserts long enough, all registers eventually settle to a reset state.
The problem of the asynchronous reset involves the signal de-assertion. If an asynchronous reset releases at or near the active clock edge, the output of the flip-flop could go to a metastable state, violating the reset recovery time of the flip-flop. The flip-flop then goes to an unknown state that can cause unexpected results upon entering normal operation.
You can insert a synchronously de-asserted reset circuit to prevent this condition. Synchronization of the reset signal on a specific clock domain requires a minimum of two flops. Figure 1 shows the first flip-flop (FF1) with output Q reset to 0, and input D tied high. This flip-flop can go to a metastable state if RSTB is de-asserted near a CLK active edge. However, the second flip-flop (FF2) remains stable at 0, since the input and output are both low, preventing any output change due to the input that might occur when a reset is removed.
Using the VDD-based reset synchronizer, you can generate the main source (arstb_main) for the asynchronous reset. The reset is typically a high fan-out net. Implement a reset tree to maintain a good fan-out load to help meet the recovery and removal checks on driven registers during de-assertion. Figure 2 shows how arstb_main is distributed to drive the asynchronous resets of the registers.