Quartus® Prime Pro Edition User Guide: Timing Analyzer

ID 683243
Date 11/26/2024
Public
Document Table of Contents

3.2.1. RDC Timing Overview

In digital design, a reset domain crossing (RDC) occurs when a reset signal originates in one clock domain, and then resets registers or logic in a different clock domain. Similar to clock domain crossings, RDCs require careful handling because the reset signal is asynchronous to the clock of the destination domain. This condition can lead to any of the following issues if you do not manage the RDC properly.
  • Metastability—similar to CDC, if you do not properly synchronize a reset signal, the flipflops can enter a metastable state. This state occurs if the reset signal deasserts near the clock edge of the destination domain, leading to uncertainty in the flipflop output.
  • Partial reset—without proper synchronization, only some portions of the circuit may exit reset, leading to a partial reset condition. This condition can cause inconsistent states within the system and unpredictable behavior.
  • Glitches—asynchronous reset signals can cause glitches during the assertion or deassertion of the reset. These glitches can propagate through the system and cause logic to reset unexpectedly, leading to errors and instability. To prevent glitches, drive asynchronous reset signals with a single flipflop (that is, no combinational logic). A reset synchronizer does not prevent asynchronous reset glitching. Only adherence to the no combinational logic in between guideline can prevent glitching.

For a topology with an asynchronous reset signal originating from an external source or a different clock domain, you must synchronize the reset to avoid metastability. Similar to signals that cross domain crossings, the reset synchronizer typically requires a series of flipflops clocked by the destination clock domain. These flipflops sequentially capture and stabilize the asynchronous reset signal, filtering out potential metastability. You then use the output of the synchronizer to reset the sequential logic elements within the destination clock domain. This approach ensures all the elements within the same clock domain are correctly reset, maintaining the integrity of the system's behavior.

The following section describes how to identify and resolve a common RDC error that Design Assistant reports.