Clock-Domain Data Synchronization Using Reset-Timed Sampling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data synchronization in systems with multiple clock and reset domains is challenging due to metastability conditions arising from asynchronous clock and reset domain crossings, leading to potential data incoherence and system failures.

Innovation Solution

Implementing data synchronization units that utilize flip-flops and logic gates to synchronize data across clock domains by using a destination reset signal to reset data from the source domain and synchronizing sampling with the source reset signal, ensuring that the reset value arrives before a metastable value, thereby preventing metastability and maintaining data coherence.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional two flip-flop synchronizer is used for clock domain crossing, then data transfer between clock domains is enabled, but metastability conditions occur leading to data incoherence

Engineering Contradiction:
Improvedata transfer capabilityVSAvoiddata coherence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The data synchronization process is segmented into multiple independent stages: source domain sampling, destination domain sampling, and reset signal synchronization. Each stage is handled by dedicated flip-flops and logic gates, allowing metastability to be contained and managed in discrete segments rather than propagating through the entire data path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The reset signal is synchronized in advance before data sampling occurs. By pre-synchronizing the reset signal through destination domain flip-flops, the system ensures that reset operations are performed at known, stable timing points in the destination clock domain, preventing metastability during critical reset operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple flip-flop synchronizer is used to allow more settling time, then metastability settling is improved, but cycle uncertainty increases requiring additional clock cycles

Engineering Contradiction:
Improvemetastability settlingVSAvoidsynchronization delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The reset signal acts as an intermediary that coordinates the timing between source and destination domains. By using the synchronized reset signal to control when sampling occurs, the system achieves reliable metastability settling without requiring excessive clock cycles, as the reset signal provides a clear timing reference for when data is stable.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If asynchronous clock domain crossing is implemented, then system versatility is improved, but metastability conditions arise from clock and reset domain crossings

Engineering Contradiction:
Improveclock domain compatibilityVSAvoiddata stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system uses feedback from the synchronized reset signal to control the sampling timing in both source and destination domains. The reset signal provides feedback about the relative timing between clock domains, allowing the system to adjust sampling operations to avoid metastability while maintaining asynchronous clock domain compatibility.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3907886B1Apparatus for data synchronization in systems having multiple clock and reset domains
Publication Date: 2024.04.17 STMICROELECTRONICS INT NV
  • EP3907886B1 patent drawingFigure 1~2B
  • EP3907886B1 patent drawingFigure 3
  • EP3907886B1 patent drawingFigure 4

AI summary

A data synchronization unit including first flip-flops (714), operating on a first clock domain (705) and a reset of a second clock domain (707), sampling data (D_SRC) from the first clock domain (705); a second flip-flop (716), operating in the first clock domain (705), sampling a request signal (REQ) when enabled by a request pulse (REQ_PULSE); a request signal path (726) configured to delay the request signal (REQ) by a first delay and to generate an enable signal (ENP) for recirculation multiplexers (722) in accordance with the delayed request signal; a reset signal synchronization path (736) configured to delay the reset signal (RST_B) of the first clock domain (705) by a second delay, wherein the second delay is shorter than the first delay; and multiplexers (734) having first inputs for receiving outputs of the recirculation multiplexers (722), a second input for receiving a reset value (RST B) of a programmable register, the multiplexers (734) being configured to selectively output signals at inputs to outputs.