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
    • CDC Constraints and STA
    • CDC Waiver Policy
    • CDC Review Gate
    • CDC Signoff Dashboard
    • Formal and Simulation CDC Verification
      • Formal CDC Checks
      • Metastability Injection
      • Gate Level and ECO Checks
      • Regression Strategy
  • RDC Signoff16
  • Debug and Case Studies11
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Formal and Simulation CDC Verification
  1. Topics
  2. CDC & RDC
  3. CDC Signoff Methodology
  4. Formal and Simulation CDC Verification
  5. Formal CDC Checks

Part 7 · CDC Signoff Methodology · Advanced

Formal CDC Checks

What formal CDC protocol checking adds on top of structural analysis, the assumptions it needs, and its limits.

On this page

    Structural analysis asks “is there a synchroniser?” Formal protocol checking asks “does the logic around it behave?” — does the handshake never lose data, does the FIFO never overflow from clock drift, does the request always see a stable bus? The two methods meet at the crossing and together cover what neither covers alone.

    What formal adds

    Structural analysis shows

    Formal checking adds

    Example property

    A handshake synchroniser exists

    The handshake cannot deadlock or drop data

    Every request is eventually acknowledged exactly once

    FIFO pointers are Gray-coded

    Full and empty are never wrong in their own domains

    Empty is never asserted when data is present (read domain); full is never asserted when space remains (write domain)

    A pulse synchroniser exists

    No pulse is lost or duplicated under the spacing rule

    Every source pulse yields exactly one destination pulse

    Quasi-static qualification exists

    The qualifier really covers every sample

    The destination samples only while the qualifier is steady

    The assumptions it needs

    Formal proofs rest on environment assumptions: the clock relationship modelled, the minimum spacing between events, the stability windows the protocol relies on. Each assumption is a claim that must be reviewed like a waiver — an unreviewed assumption proves the design correct in a world that may not exist. The standard discipline is to list every assumption with the property it supports and review the list at the gate.

    Limits

    • State space bounds the size of what can be proven: block-level protocols prove well, full-chip behaviour usually does not.

    • The synchroniser itself is modelled, not proven: formal assumes the flop settles within its window and checks everything around that assumption.

    • A proven property covers the modelled conditions only; an uncovered mode (test, debug, low power) needs its own run or its own argument.

    The protocol circuits these properties target are taught in CDC handshakes and async FIFO; the verification mindset overlaps with CDC verification.

    Common pitfall

    Proving the protocol under an assumed event spacing, then letting the design violate that spacing, proves a system that does not exist. Every spacing and stability assumption needs an owner and a mechanism — a rate limiter, a qualifier, a FIFO depth argument — not just a line in the proof setup.

    Check yourself Formal proves a handshake correct assuming requests arrive at least four slow cycles apart. What must signoff still establish?

    That the four-cycle spacing actually holds: the mechanism enforcing it, its owner, and evidence it operates — otherwise the proof assumes a world the design does not provide.

    Check yourself Structural analysis already shows a Gray-coded FIFO pointer pair. What does formal add for that FIFO?

    Behavioural guarantees around the structure: that full and empty can never be wrong, that pointers cannot lap under the depth argument, and that reset brings both sides to agreement.

    Related topics

    • Metastability Injection

    • Regression Strategy

    • RTL: CDC Handshakes

    Previous

    115 / 179

    Next: Metastability Injection

    Up next

    Up nextMetastability Injection

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Gate Level and ECO Checks
    • Regression Strategy