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
ASYNC FIFO CORE
wr_ptr gray <-> sync <-> rd logic
rd_ptr gray <-> sync <-> wr logic
full/empty depend on synchronized pointersWorked intuition
Classify crossing intent and direction.
Name clock/reset relationship assumptions.
Inspect primary metric: overflow/underflow risk, pointer synchronization integrity, latency throughput.
Collect structural plus dynamic evidence.
Differentiate real hazard from tool noise.
Pick smallest safe fix and define regression matrix.
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
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
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 waiversCDC/RDC deep dive
Protocol correctness is the bridge between structural clean and functional safe.
Concept diagram
PROTOCOL FLOW
intent -> transport protocol -> synchronization -> destination acceptanceMetric graph
PROTOCOL ISSUE BURNDOWN
open issues: 20 -> 11 -> 5 -> 0Reports 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.