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
      • How CDC Meets Timing
      • Clock Groups and False Paths
      • Bounded Delay Constraints
      • Constraint Reviews
    • 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 Constraints and STA
  1. Topics
  2. CDC & RDC
  3. CDC Signoff Methodology
  4. CDC Constraints and STA
  5. How CDC Meets Timing

Part 7 · CDC Signoff Methodology · Advanced

How CDC Meets Timing

Crossings are timing paths too: what STA does and does not check across asynchronous clocks.

On this page

    A crossing is a physical path with delay, so timing analysis has an opinion about it. Across related clocks it checks setup and hold exactly as it does inside one domain. Across asynchronous clocks there is nothing stable to check against, so the methodology replaces the ordinary check with two weaker but meaningful ones: the synchroniser structure is verified, and the short paths around it are bounded.

    What STA checks across clocks

    Clock relationship

    What STA checks

    What it cannot check

    Same clock

    Setup and hold on every path

    Nothing special; the ordinary contract holds

    Related clocks

    Setup and hold against the known phase relationship

    Crossings where the relationship is not actually guaranteed

    Asynchronous clocks

    Nothing by default once the pair is declared asynchronous

    Whether the crossing is functionally safe; that is the CDC analysis job

    Declaring a pair asynchronous therefore transfers responsibility: timing stops watching, and the CDC structural check becomes the only guard. That transfer is safe only when the structural check actually covers every path the declaration released.

    What the synchroniser itself needs

    The first synchroniser flop still has a timing requirement, even though the path into it is asynchronous. Its input must arrive with enough margin that the flop samples a settled value in the normal case, leaving the full clock period for the rare case when it does not.

    • The path from the source register to the first synchroniser flop must be bounded: short, with no logic on it, so the data is stable long before the sampling edge.

    • There must be no logic between the synchroniser flops: any gate there eats directly into the settling time the second flop relies on.

    • Only the last flop fans out to destination logic, so at most one controlled point can ever carry an unresolved value.

    These are the same hygiene rules taught with the circuit in synchronisers. Timing analysis enforces the bounded part; CDC analysis enforces the structural part; neither enforces both, which is why signoff needs both.

    What STA does not check

    • It does not check that a synchroniser exists: a declared-asynchronous path with no synchroniser passes timing silently.

    • It does not check protocols: handshakes, Gray ordering, and FIFO full/empty logic are invisible to it.

    • It does not check reconvergence: two timed paths can still disagree by a cycle at their meeting point.

    Common pitfall

    A clean timing report on a design with asynchronous clocks proves the synchronous paths meet timing. It says nothing about the crossings, which were released from checking by declaration. Never read timing closure as CDC closure.

    Check yourself A path declared asynchronous passes timing. Does that say anything about whether its synchroniser is correct?

    No. The declaration removed the path from timing checks, so timing passing is automatic. Correctness of the synchroniser is established by structural CDC analysis, not by STA.

    Check yourself Why must there be no logic between the two synchroniser flops?

    Because any gate delay between them subtracts from the settling time available before the second flop samples. The whole point of the second flop is a full period of settling, and logic in between spends it.

    Related topics

    • Clock Groups and False Paths

    • Bounded Delay Constraints

    • RTL: Setup and Hold Slack

    Previous

    99 / 179

    Next: Clock Groups and False Paths

    Up next

    Up nextClock Groups and False Paths

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Bounded Delay Constraints
    • Constraint Reviews