CDC / RDC · All levels
Async FIFO CDC: Step-by-Step Walkthrough
Step-by-Step Walkthrough for Async FIFO CDC.
Step-by-step analysis walkthrough
Use this sequence when owning Async FIFO CDC in a signoff review.
Inspect warning class and severity.
Trace crossing endpoints and domains.
Check protocol/reset assumptions against spec.
Review synchronizer or FIFO implementation detail.
Run focused assertion or formal check.
Draft fix options with risk and schedule impact.
Execute regression and publish closure memo.
Artifacts to collect
FIFO architecture diagram, pointer proof checks, formal safety properties
crossing inventory
waiver board notes
regression report
Decision memo template
CDC/RDC DECISION MEMO — Async FIFO CDC
risk class:
mechanism:
evidence:
fix/waiver:
owners: RTL owner, CDC owner, formal ownerReference visuals
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.CDC/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.
Principal CDC/RDC review addendum
Async FIFOs decouple domains with gray-coded pointers and synchronized status logic; correctness depends on pointer math, full/empty rules, and reset behavior.
Metric: overflow/underflow risk, pointer synchronization integrity, latency throughput