❓ Common CDC Design Question
A frequently asked question in Clock Domain Crossing (CDC) design is:
“Is it necessary to register signals in the sending clock domain before passing them to the receiving clock domain?”
Many assume that since the signal will be synchronized once it reaches the receiving domain, there is no need to register it beforehand.
This assumption is incorrect — in most designs, signals should be registered in the sending clock domain before crossing the CDC boundary.
⚠️ Problem with Unregistered Signals
Consider the case shown in Figure 6, where signals are not registered in the sending domain before being transferred.
- The combinational logic output in the sending domain can exhibit transient fluctuations (known as combinational settling).
- These fluctuations occur right at the CDC boundary, effectively increasing the data-change frequency of the signal.
- As a result:
- The signal may produce small bursts of oscillating transitions.
- The receiving domain could sample the signal mid-transition, greatly increasing the chance of metastability.

🔍 Key Insight
By registering signals in the sending clock domain:
- You ensure that the CDC signal transitions only once per clock cycle.
- This minimizes unnecessary toggling at the boundary.
- Consequently, the probability of sampling unstable data in the receiving domain is significantly reduced.
✅ Design Best Practice
Always register CDC signals in the sending clock domain before they cross into a different clock domain.
This step ensures:
- Stable signal transitions,
- Reduced data-change frequency, and
- Improved overall synchronization reliability.