Clock Domain Crossing (CDC) is the transfer of a digital signal or multi-bit data bus from a source register driven by one clock to a destination register driven by a second, asynchronous clock. Because the phase and frequency relationship between the two clocks is unknown, the destination register's setup-and-hold timing can be violated, forcing its output into an indeterminate, metastable state that can propagate invalid logic levels through the system.
Glossary
Clock Domain Crossing

What is Clock Domain Crossing?
A foundational challenge in digital circuit design where a signal traverses between two independent clock domains, requiring specialized synchronization to prevent catastrophic metastability.
To safely bridge asynchronous domains, designers implement synchronization techniques such as multi-flop synchronizers for single-bit control signals or asynchronous FIFOs using Gray-coded pointers for multi-bit data buses. Without these circuits, metastability can cause intermittent, non-deterministic failures that are impossible to replicate in simulation, making rigorous CDC analysis and verification a critical step in FPGA and ASIC development.
Core CDC Synchronization Techniques
The foundational digital design strategies used to safely transfer signals between asynchronous clock domains, preventing metastable states that cause non-deterministic logic errors.
Two Flip-Flop Synchronizer
The most fundamental single-bit synchronization circuit. A signal from the source domain is passed through a chain of two back-to-back flip-flops clocked by the destination domain. The first stage may enter a metastable state (oscillating or undefined voltage), but the second stage provides a full clock cycle for the signal to resolve to a valid logic level before it propagates further.
- Mean Time Between Failures (MTBF) increases exponentially with added stages.
- Suitable for slow, non-critical control signals.
- Does not guarantee data coherency for multi-bit buses.
Gray Code Encoding
A binary numeral system where successive values differ by only a single bit. Used for passing multi-bit values (like FIFO pointers) across clock domains. Since only one bit changes per transition, a synchronizer capturing a stale or new value will never sample an intermediate, wildly incorrect state.
- Eliminates the need for data path synchronization on the bus.
- Essential for asynchronous FIFO pointer handshakes.
- Converts to/from binary using simple XOR logic.
Asynchronous FIFO
A First-In, First-Out memory buffer with independent read and write clocks. Data is written into the buffer using the source clock and read out using the destination clock. Gray-coded pointers are synchronized across the domain to generate empty/full flags without stalling the pipeline.
- Standard solution for high-throughput streaming data.
- Depth calculation depends on burst size and clock frequency ratios.
- Requires careful handling of pointer wrap-around logic.
Handshake Synchronization
A closed-loop request-acknowledge protocol for transferring data without a shared clock. The source asserts a REQ signal and holds data stable. The destination synchronizes REQ, captures the data, and asserts an ACK signal back to the source.
- Guarantees safe transfer regardless of clock phase/frequency.
- Low throughput due to round-trip latency.
- Ideal for register configuration or control state transfers.
MUX Recirculation Technique
A synchronization method for multi-bit data buses that avoids Gray code conversion. A control pulse is generated in the source domain, synchronized to the destination using a standard flip-flop chain, and used to enable a register that captures the stable data bus.
- The data bus must be held stable for the duration of the synchronization.
- Relies on setup and hold timing relative to the synchronized pulse.
- Simpler than FIFO for infrequent, bursty data transfers.
Metastability Hardened Flip-Flops
Specialized standard-cell flip-flops designed with higher gain-bandwidth product and optimized feedback loops to resolve metastable conditions faster than standard registers. They drastically improve MTBF in high-reliability applications.
- Reduces the required number of synchronizer stages.
- Critical for aerospace, automotive, and medical ASICs.
- Often characterized by specific tau (τ) and Tw resolution time constants.
Synchronizer Comparison
Comparison of common synchronizer circuits used to safely transfer signals between asynchronous clock domains, ranked by metastability resolution, latency, and application suitability.
| Feature | 2-FF Synchronizer | MUX Recirculation | Async FIFO | Handshake |
|---|---|---|---|---|
Metastability MTBF | High (single-bit) | High | Very High | Very High |
Data bus support | ||||
Throughput | 1 bit/cycle | Low | High (burst) | Low |
Latency | 2-3 dst cycles | Variable | 3-5 dst cycles | Variable |
Area (LUTs/FFs) | ~4 FFs | ~20-30 FFs | ~100-200 LUTs | ~30-50 FFs |
Backpressure support | ||||
Clock ratio independence | ||||
Typical application | Control signals | Configuration regs | Streaming data | Register access |
Frequently Asked Questions
Essential questions and answers about the transfer of signals between asynchronous clock domains in digital circuits, covering metastability, synchronization techniques, and verification strategies.
Clock Domain Crossing (CDC) is the transfer of a digital signal or multi-bit data bus from a flip-flop driven by one clock to a flip-flop driven by another, asynchronous clock. It is a critical design challenge because the receiving flip-flop can violate its setup-and-hold timing requirements, entering a metastable state where its output oscillates or settles to an indeterminate logic level. This physical phenomenon cannot be eliminated, only mitigated. In wideband signal processing systems—such as those using JESD204C interfaces for high-speed ADCs—multiple asynchronous clock domains are inevitable, making robust CDC design essential to prevent silent data corruption that simulation often fails to detect.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Mastering Clock Domain Crossing requires understanding the fundamental synchronization structures and timing analysis techniques that prevent metastability in multi-clock FPGA and ASIC designs.
Metastability
The fundamental physical phenomenon that makes CDC necessary. When a flip-flop's input changes too close to the active clock edge, its output can enter an indeterminate voltage state that oscillates before settling to a valid logic level. This settling time is unbounded and can cause downstream logic to interpret different values, leading to non-deterministic system failure. Synchronizers are designed to give the signal time to resolve.
Two-Flop Synchronizer
The most basic and widely used CDC structure. A signal from the source clock domain passes through two cascaded flip-flops clocked by the destination domain. This provides one full destination clock cycle for the first flop's potential metastable output to resolve before being captured by the second flop. Critical parameters include:
- MTBF (Mean Time Between Failures): Calculated based on clock frequency, toggle rate, and flop characteristics
- Only suitable for single-bit control signals, never for multi-bit data buses
Gray Code FIFO Pointers
The standard technique for safely passing multi-bit counter values across clock domains in an asynchronous FIFO. The binary read and write pointers are converted to Gray code before crossing, ensuring only a single bit changes per increment. This guarantees that a metastable sample on the destination side will be at most one count old, preventing catastrophic FIFO overflow or underflow. The Gray-to-binary conversion occurs after synchronization.
Static Timing Analysis (CDC-Specific)
Standard STA tools assume all paths are synchronous and timed to a single clock. CDC paths are intentionally asynchronous and must be excluded from normal timing constraints using set_false_path or set_clock_groups -asynchronous. However, this creates a verification gap. Specialized CDC tools perform structural analysis to:
- Verify the presence and correctness of synchronizer structures
- Check for reconvergence of signals that crossed domains separately
- Ensure data bus stability during sampling windows
Data Bus Synchronization (Handshake & MUX)
Multi-bit data buses cannot use simple two-flop synchronizers due to bit-skew where individual bits settle at different times. Two common solutions exist:
- Full Handshake: Uses request and acknowledge signals synchronized with two-flop chains to guarantee data stability before sampling
- MUX Recirculation: A control signal synchronized via two-flops enables a multiplexer to hold stable data, often used with FIFOs Both methods rely on the destination domain sampling only after the source confirms data is stable.
MTBF Calculation
Mean Time Between Failures quantifies the reliability of a synchronizer chain. The formula incorporates:
- τ (tau): The resolution time constant of the destination flip-flop, a process-specific parameter
- T<sub>w</sub>: The metastability window, the time interval around the clock edge where a data change triggers metastability
- f<sub>c</sub> and f<sub>d</sub>: Clock and data toggle frequencies A properly designed two-flop synchronizer in modern silicon typically yields an MTBF exceeding the age of the universe.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us