HomeCDCDay 13 Enhanced

CDC Design Patterns

Industry-proven CDC design patterns and best practices. FIFO transfers, handshakes, and production design wisdom.

By EcrioniX · Published June 13, 2026 · ~4300 words · 13 min read

1. Pattern 1: FIFO-Based Data Transfer

Use case: Transferring blocks of data (packets, bursts) between domains.

Implementation: Dual-clock FIFO with Gray code pointers.

Advantages:

Disadvantages:

When to use: Bulk data (USB packets, Ethernet frames, memory bursts)

2. Pattern 2: Handshake Protocol

Use case: Request-acknowledge communication between domains.

Implementation:

Advantages:

Disadvantages:

When to use: Control signals, power management requests

3. Pattern 3: Level Synchronization with Edge Detection

Use case: Transfer status signals that can change at any time.

Implementation: Dual-FF on status signal, edge detector optional.

Advantages:

Disadvantages:

When to use: Status bits (FIFO full, device ready)

4. Pattern 4: One-Hot Encoding for Multi-Bit Control

Use case: Send encoded command across domains.

Implementation: Instead of binary encoding, use one-hot (only one bit set).

Advantage: Only one bit changes per command transition (like Gray code). Synchronize each bit independently with 2FF.

When to use: Multi-bit control with small number of values (3-8 commands)

5. Pattern 5: Resynchronization at Intermediate Stages

Use case: Data passes through multiple intermediate stages with different clocks.

Implementation: Resync at each clock domain boundary.

Example: Clock A → Clock B (via Gray FIFO) → Clock C (via Gray FIFO)

Disadvantage: Cascading latency (4-6 cycles per stage).

Mitigations: Plan for total latency, use deeper FIFOs.

6. Best Practice 1: Minimize CDC Crossing Points

Principle: The fewer signals crossing domains, the fewer bugs.

Techniques:

7. Best Practice 2: Use Vendor IP When Available

Principle: Don't reinvent the wheel. Xilinx/Intel synchronizer IP is tested.

Benefits:

8. Best Practice 3: Document CDC Thoroughly

Required documentation:

9. Best Practice 4: Formal Verification for Critical Paths

Principle: Not all CDC needs formal, but critical paths do.

Critical paths:

10. Common Anti-Patterns to Avoid

11. Decision Tree: Choose Your Synchronizer

Question 1: Is signal asynchronous?

Question 2: How many bits?

Question 3 (1-bit): Is it a pulse or level?

Question 4 (Multi-bit): Is it monotonic (counter)?

12. Checklist: Design Patterns

Next (Day 14): Debugging CDC issues and root cause analysis.