Skip to Content
CDC & RDC Verification

CDC & RDC Structural Verification

Multi-clock designs fail silently in simulation when signals or asynchronous resets cross clock boundaries without proper synchronization. SiliFlow embeds a structural Clock Domain Crossing (CDC) and Reset Domain Crossing (RDC) explorer powered by Yosys RTLIL netlist extraction.


1. Opening the CDC & RDC Explorer

  • Click the CDC / RDC tab in the bottom panel.
  • Or select Run → Quick Open Panels → Structural CDC & RDC Explorer / View → Bottom Panels → CDC / RDC.
  • Try it immediately on the built-in Dual-Clock CDC & RDC Lab example (cdc_demo.v).

2. Automated Clock Domain Graph

SiliFlow parses elaborated Yosys netlists to detect every clock network (ClockDomainInfo with flip-flop counts and derived/parent clock relationships) and builds an interactive Source Clock × Destination Clock Matrix Heatmap. Clicking any matrix cell filters crossings strictly to that clock pair.


3. Five Built-In Structural Rule Checks

Rule IDCondition CheckedSeverity
MISSING_SYNCHRONIZERSignal crossing between unrelated clock domains without synchronizationCritical
MULTI_BIT_BUS_CDCMulti-bit bus crossing domains without Gray coding, FIFO, or handshakeCritical / Warning
COMBO_BEFORE_SYNCCombinational logic placed between launch flop and synchronizer chainCritical
ASYNC_RESET_CROSSINGReset Domain Crossing (RDC) asynchronous reset hazard across domainsCritical / Warning
SAFE_2FF_SYNCVerified multi-stage synchronizer chain detectedSafe

4. Root-Cause Guidance, Cross-Probing & Persistent Waivers

  • Code Cross-Probing: Click any crossing row to view the full launch-to-capture path, structural explanation, RTL fix guidance, and jump straight to the source or destination flop line in Monaco.
  • Persistent Project Waivers: Waive known static configuration signals or approved clock pairs cleanly (siliflow:cdcWaivers:<scope>), persisted per project across restarts.
Last updated on