Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Path
  • CDC/RDC Glossary
  • CDC/RDC Metrics Reference
  • CDC/RDC Interview Prep
  • CDC/RDC Signoff Cheatsheet
  • Clock Domains and Failure Modes8
  • Metastability and Synchronizers16
  • CDC Protocols and Handshakes16
  • Reconvergence and Gray Coding16
  • Reset Domain Crossing16
  • Architecture and Design Rules16
  • CDC Signoff Methodology24
  • RDC Signoff16
  • Debug and Case Studies11
    • Reading a CDC Report
      • Anatomy of a Report
      • Triage Order
      • Grouping and Root Causes
      • False Clean and Noise
    • Classic Bug Anatomy
    • Case Studies
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Reading a CDC Report
  1. Topics
  2. CDC & RDC
  3. Debug and Case Studies
  4. Reading a CDC Report
  5. Anatomy of a Report

Part 9 · Debug and Case Studies · Advanced

Anatomy of a Report

The three parts of a CDC report: summary counts, per-class listings, and the crossing detail that makes each finding actionable.

On this page

    A CDC report answers three questions in order: how many problems of each kind exist, which crossings they are, and exactly what each crossing looks like. Every report organises itself around those three levels, whatever its formatting.

    The three levels

    First comes the summary: counts per rule class, such as unsynchronised crossings, combinational logic before a synchroniser, multi-bit crossings without a protocol, reconvergence, and reset-domain findings. The summary is the signoff snapshot: it tells you at a glance whether you are looking at a handful of findings or a systematic problem.

    Second come the per-class listings: every flagged crossing under its rule, usually with an identifier, the source and destination hierarchy, and the rule that fired. This is the work list. Third comes the crossing detail for each entry: the source clock and destination clock, the traced path between them, and the synchroniser or protocol the analysis detected along the path, if any.

    An illustrative excerpt

    Reports differ in wording, so read the excerpt below as an illustration of structure, not of any real report format. It is fabricated and every number is illustrative.

    Diagram
    Illustrative CDC summary (fabricated excerpt, not a real report):
    
      Rule class                              Count
      Unsynchronised single-bit crossing        12
      Combinational logic before synchroniser     5
      Multi-bit crossing without protocol         3
      Reconvergence after synchronisers           4
      Reset-domain crossing                       2
      Total                                      26
    
    Crossing detail for entry U-007 (illustrative):
      source clock : clk_a (100 MHz)
      dest clock   : clk_b (50 MHz, asynchronous to clk_a)
      path         : u_ctrl.req -> u_sync.u_q1/D
      detected     : two-flop synchroniser in clk_b, no logic between stages
      verdict      : synchronised level crossing; review quasi-static intent

    What to check in the detail

    Field

    What it tells you

    What looks wrong

    Source and destination clocks

    Whether the crossing is genuinely asynchronous.

    A missing or wrong clock, or two clocks claimed synchronous without justification.

    The traced path

    Which net actually crosses, and through what logic.

    Combinational cells between the boundary and the synchroniser input.

    Detected synchroniser or protocol

    Whether the analysis recognised the intended structure.

    Nothing detected where the design intent claims a synchroniser exists.

    The last row is the most useful mismatch in debugging: when the intent says a synchroniser is there and the analysis sees none, either the structure breaks a rule the recogniser needs, such as logic between the stages, or the intent points at the wrong instance. Both are cheap to confirm in the schematic.

    Common pitfall

    Never quote a finding identifier or a verdict phrase from one report as if it were universal. Rule names, identifiers, and verdict wording differ between setups; only the three levels and the crossing anatomy transfer.

    Check yourself A crossing entry names the source and destination clocks and the path but reports no detected synchroniser, although the designer insists one is there. Name two possible causes.

    Either the structure violates a recognition rule, for example combinational logic between the stages, or the intent points at the wrong instance and the real path has no synchroniser.

    Check yourself You open a 26-finding report. Where do you start, and why?

    With the summary counts: five classes with small counts suggest a short per-class pass, while one dominant class suggests a single systematic cause worth grouping before touching any detail.

    Related topics

    • Triage Order

    • Violation Classes

    • Glossary

    Previous

    135 / 179

    Next: Triage Order

    Up next

    Up nextTriage Order

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Grouping and Root Causes
    • False Clean and Noise