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
    • Crossings and Failure Modes
      • What Is a Crossing?
      • Domain Relationships
      • Failure Modes
      • Why Simulation Misses CDC
    • Identifying Domains
  • 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
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Crossings and Failure Modes
  1. Topics
  2. CDC & RDC
  3. Clock Domains and Failure Modes
  4. Crossings and Failure Modes
  5. What Is a Crossing?

Part 1 · Clock Domains and Failure Modes · All levels

What Is a Crossing?

A signal launched by one clock and captured by another, and the single definition of a domain.

On this page

    Signoff arguments go wrong when two engineers mean different things by "domain". Fix the definition once, and every later lesson can use it without hedging.

    Launch clock versus capture clock

    A crossing is a signal launched by a flop on one clock and captured by a flop on another clock. Only the two endpoint flops matter: the combinational logic between them, however deep, does not change the answer.

    Launch flop on one clock feeding a capture flop on another clock through logic.
    A crossing: the launch flop and the capture flop sit on different clocks.

    If both flops sit on the same clock net, the path is an ordinary synchronous path, however slow or fast the clock is. If the nets differ, it is a crossing, however close the frequencies are.

    The single definition of a domain

    A clock domain is the set of sequential elements driven by one clock net, plus the combinational logic between them. The clock that drives the capturing flop decides which domain a path endpoint belongs to. There is one source of truth, and it is the clock net in the netlist, not the block diagram, not the frequency, and not the designer's intent.

    Path

    Crossing?

    Flop on clk_a to flop on clk_a

    No: ordinary synchronous path

    Flop on clk_a to flop on clk_b (any frequencies)

    Yes, even at identical frequencies

    Flop on a divided clock to a flop on its source clock

    Yes: different nets

    Flop on a gated clock to a flop on the ungated source

    Yes: different nets (see the generated clocks lesson)

    Combinational output of domain A into domain B logic (no flop yet)

    The crossing is at the first flop that captures it; trace the path to that flop

    Two flops on the same net, different clock-tree branches

    No: one net, one domain (skew is a timing matter, not a crossing)

    What the checking tools look for

    A structural analysis builds the same picture: for every flop, which clock net drives it, and for every flop-to-flop path, whether the launch and capture nets differ. That pair list is the crossing list, and everything downstream (classification, synchroniser checks, waivers) hangs off it. An incomplete clock list therefore means a silently incomplete crossing list.

    Common pitfall

    "Same frequency, so same domain" is the most expensive sentence in CDC. Two 100 MHz clocks from independent oscillators drift through every phase relationship, and a divided clock is a different net from its source. Compare nets, never frequencies.

    Interview

    "What is a clock domain crossing?" Answer with the two flops: launched on one clock, captured on another. Then add the domain definition and the same-frequency trap. That is the whole answer, and it invites the follow-up about synchronisers.

    Check yourself A block diagram labels two blocks "100 MHz domain" and "100 MHz domain", fed by two oscillator pins. Is a signal between them a crossing?

    Yes, unless the two pins are the same net. Two independent oscillators give unrelated clocks at the same nominal frequency, so every flop-to-flop path between the blocks is a crossing.

    Check yourself A combinational interrupt output of domain A feeds domain B, where it fans out to three flops on clk_b. How many crossings is that?

    Three capture endpoints, hence three crossings to classify, all launched (combinationally) from A and captured on clk_b. The fix must cover every capture flop, not just one.

    Related topics

    • Next: Domain Relationships

    • Glossary

    Previous

    7 / 179

    Next: Domain Relationships

    Up next

    Up nextDomain Relationships

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Failure Modes
    • Why Simulation Misses CDC