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. False Clean and Noise

Part 9 · Debug and Case Studies · Advanced

False Clean and Noise

A report with zero findings can be the most dangerous page in signoff, and a report with hundreds can be healthy. Learn to tell which is which.

On this page

    Finding counts are meaningless without the setup behind them. A clean report on a wrong setup proves nothing, and a noisy report on missing intent hides its few real findings in busywork. Both failure modes are common, and both are cheap to detect once you know the signatures.

    Suspiciously clean

    Zero findings across asynchronous clocks should alarm, not reassure. The usual causes are setup holes: a clock never defined so its crossings were never analysed, a wrong grouping that excuses genuinely asynchronous paths, a black-boxed block whose boundary crossings were skipped, or intent that waives whole classes without evidence. The test is the inventory cross-check: the domain inventory lists every clock pair with crossings, and each pair should produce either findings or a documented reason for none. A clock pair with neither is unanalysed, not clean.

    Noisy

    Hundreds of findings on signals that never change during operation usually mean missing intent, not a broken design: quasi-static configuration and status flagged as unsynchronised, or a reset asserted only at power-on treated as a live crossing. Noise is dangerous because engineers stop reading, and the one real finding sits on page nine. The cure is intent plus grouping, not fixing every listing: qualify the quasi-static signals with evidence, re-run, and read what remains.

    Signal

    False clean looks like

    Noise looks like

    The check

    Finding count

    Zero across async clocks.

    Hundreds in one class.

    Compare against the inventory, not against zero.

    Clock pairs

    A known async pair with no entries at all.

    Every pair flagged including static ones.

    Each pair needs findings or a documented reason.

    After a setup fix

    Counts stay zero: still suspicious.

    Counts collapse: it was intent, not design.

    Re-run and re-group; read the residue.

    Warning

    Never sign on a zero-finding report you have not cross-checked against the clock inventory. An unanalysed pair and a clean pair look identical in the summary; only the inventory tells them apart.

    Check yourself The report shows zero findings and the design has two asynchronous clocks with a control interface between them. What is the first check?

    Whether that clock pair appears in the analysis scope at all: defined clocks, correct grouping, no black-box boundary swallowing the interface. Silence without scope is not cleanliness.

    Check yourself Four hundred findings appear, all on configuration bits set once at boot. Design bug or intent gap?

    Almost certainly an intent gap: quasi-static signals flagged as live crossings. Qualify them with stability evidence and re-run before touching any RTL.

    Related topics

    • Anatomy of a Report

    • Setup: Clocks, Resets and Intent

    • Qualification and Stability

    Previous

    138 / 179

    Next: Classic Bug Anatomy

    Up next

    Up nextClassic Bug Anatomy

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Anatomy of a Report
    • Triage Order