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
    • CDC Tool Flow
      • The Generic CDC Flow
      • Setup: Clocks, Resets and Intent
      • Violation Classes
      • Hierarchical versus Flat Analysis
    • CDC Constraints and STA
    • CDC Waiver Policy
    • CDC Review Gate
    • CDC Signoff Dashboard
    • Formal and Simulation CDC Verification
  • RDC Signoff16
  • Debug and Case Studies11
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹CDC Tool Flow
  1. Topics
  2. CDC & RDC
  3. CDC Signoff Methodology
  4. CDC Tool Flow
  5. Violation Classes

Part 7 · CDC Signoff Methodology · Advanced

Violation Classes

The generic classes of CDC findings: what each means, how severe it is, and the typical fix.

On this page

    A structural run reports crossings, not verdicts. Classification turns that inventory into work: each finding is mapped to a generic class, the class suggests a severity, and the severity decides whether the answer is a fix or a waiver with evidence. Learn the classes once and every report reads the same way.

    The generic classes

    Finding

    Meaning

    Severity thinking

    Typical fix

    Unsynchronised crossing

    A signal crosses domains with no synchronising structure

    Defect until proven otherwise; the highest priority

    Add a synchroniser, handshake, or FIFO stage

    Logic before the synchroniser

    Combinational logic sits between the source register and the first synchroniser flop

    Defect; glitches can be captured as data

    Move the logic after the synchroniser or register the source cleanly

    Multi-bit crossing without a protocol

    Several related bits cross with independent synchronisers and no Gray, handshake, or FIFO discipline

    Defect; bits resolve independently and the value tears

    Gray coding, handshake, or FIFO depending on the data type

    Reconvergence

    Synchronised signals meet again in downstream logic without protection

    Defect unless the skew is bounded and proven safe

    Restructure the logic or add a proven bound with evidence

    Reset crossing

    A reset (or its release) crosses into another domain unsynchronised

    Defect; release races the destination clock

    Reset synchroniser in the destination domain

    Synchroniser misuse

    A synchroniser exists but is used wrongly: fed by a pulse too short to sample, fanned out from the first flop, or shared across unrelated bits

    Defect; the structure gives false confidence

    Match the structure to the signal: stretch, toggle, handshake, or one synchroniser per independent bit

    The synchroniser structures named above are taught in the RTL course: synchronisers, CDC handshakes, and async FIFOs. This section assumes them and asks only whether each crossing has the right one.

    How to triage a report

    1. Read unsynchronised crossings first: each is either a missing synchroniser or a missing setup statement, and both answers are cheap to determine.

    2. Read logic-before-synchroniser and multi-bit findings next: these are design defects with known fixes, and they cluster where designers improvised.

    3. Read reconvergence and reset crossings with the domain owners present: the fix often moves logic across a boundary, which needs agreement.

    4. Read synchroniser misuse last: it needs the surrounding protocol to judge, so it is the slowest class per finding.

    Severity is about consequence, not count. One unsynchronised reset release outranks fifty correctly classified quasi-static crossings, and the dashboard must never let volume hide that.

    Common pitfall

    Downgrading a class instead of fixing it (“treat reconvergence as information-only”) is waiving by configuration. If the class is noisy, fix the setup or the design; do not retune the classification to go green.

    Interview

    “How do you triage a 500-finding CDC report?” Answer with the order above and the reason for it: missing synchronisers first, structural defects next, protocol-judgement findings last, severity by consequence not count.

    Check yourself A finding shows a clean two-flop synchroniser, but the source is a combinational function of two registers. Which class is it, and what is the fix?

    Logic before the synchroniser. Register the source in the source domain so the crossing carries a glitch-free flop output, or move the logic after the synchroniser.

    Check yourself Why does one unsynchronised reset release outrank dozens of classified quasi-static crossings?

    Severity follows consequence: an unsynchronised release can put part of a domain into the wrong state on every power-up, while classified quasi-static crossings already carry their evidence. Counts measure work; severity measures risk.

    Related topics

    • Setup: Clocks, Resets and Intent

    • When to Waive

    • RTL: CDC Verification

    Previous

    97 / 179

    Next: Hierarchical versus Flat Analysis

    Up next

    Up nextHierarchical versus Flat Analysis

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • The Generic CDC Flow