CDC / RDC · All levels

Async FIFO CDC: Theory Deep Dive

Theory Deep Dive for Async FIFO CDC.

Foundational theory

Async FIFO CDC anchors CDC Protocols & Handshakes. Async FIFOs decouple domains with gray-coded pointers and synchronized status logic; correctness depends on pointer math, full/empty rules, and reset behavior. Senior signoff discussions tie every warning to mechanism class, operational mode, and risk containment evidence.

Core concepts explained

  • Async FIFOs decouple domains with gray-coded pointers and synchronized status logic; correctness depends on pointer math, full/empty rules, and reset behavior.

  • Primary metric: overflow/underflow risk, pointer synchronization integrity, latency throughput

  • Primary artifact: FIFO architecture diagram, pointer proof checks, formal safety properties

  • Owners: RTL owner, CDC owner, formal owner

  • Distinguish structural cleanliness from functional correctness.

  • Tie every waiver to silicon-risk framing and expiry.

Why this matters at signoff

At tapeout, unresolved CDC/RDC issues become latent reliability bugs. Protocols, not flops alone, guarantee coherent transfer across domains.

Mental model

diagram
ASYNC FIFO CORE
wr_ptr gray <-> sync <-> rd logic
rd_ptr gray <-> sync <-> wr logic
full/empty depend on synchronized pointers

Worked intuition

  1. Classify crossing intent and direction.

  2. Name clock/reset relationship assumptions.

  3. Inspect primary metric: overflow/underflow risk, pointer synchronization integrity, latency throughput.

  4. Collect structural plus dynamic evidence.

  5. Differentiate real hazard from tool noise.

  6. Pick smallest safe fix and define regression matrix.

  7. Document signoff rationale or waiver ownership.

Common misconceptions

  • CDC clean report means protocol is proven.

  • All resets are equivalent if assertion works.

  • Gray code alone guarantees FIFO correctness.

  • Waivers are harmless schedule shortcuts.

Visual reinforcement

Async FIFO core

diagram
write clk domain                       read clk domain
wr_ptr(bin->gray) ---sync---> rd domain compare
rd_ptr(bin->gray) <---sync--- wr domain compare

full/empty must be computed with synchronized gray pointers.

Layer responsibilities

diagram
CDC/RDC OWNERSHIP LAYERS — Async FIFO CDC

layer                 owns                            common failure
------------------    -----------------------------   -----------------------------
design intent         crossing architecture           wrong topology selected
protocol semantics    req/ack, fifo, ordering        liveness/deadlock bugs
reset behavior        assert/deassert sequencing      boot instability
analysis setup        tool rules + waivers            false confidence
signoff governance    risk acceptance + dashboard     stale critical waivers

CDC/RDC deep dive

Protocol correctness is the bridge between structural clean and functional safe.

Concept diagram

diagram
PROTOCOL FLOW

intent -> transport protocol -> synchronization -> destination acceptance

Metric graph

diagram
PROTOCOL ISSUE BURNDOWN

open issues: 20 -> 11 -> 5 -> 0

Reports and artifacts

  • FIFO pointer proofs

  • req/ack liveness

  • pulse miss checks

  • protocol assertions

Mini case study

Async FIFO empty/full logic looked correct until gray decode mismatch appeared during reset overlap.

Debug branches

  • Pointer sync audit

  • formal liveness checks

  • reset interaction review

Senior review question

Ask: what evidence proves this risk is closed for silicon, not just tool-clean?

Key takeaways

  • State crossing class, assumptions, and owner with every issue.

  • Run structural and dynamic regressions after each fix.

Common pitfalls

  • Treating all warnings as equivalent risk.

  • Waiving issues without containment evidence.

  • Skipping reset and reconvergence stress after CDC fixes.

Theory reinforcement

Protocols, not flops alone, guarantee coherent transfer across domains.