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
    • Reset Deassertion CDC
      • Why Deassertion Is the Hazard
      • Reset Synchroniser Structure
      • Recovery and Removal
      • Deassertion Hazards
    • Reset Sequencing
    • RDC Structural Checks
    • Reset Debug Playbook
  • 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

‹Reset Deassertion CDC
  1. Topics
  2. CDC & RDC
  3. Reset Domain Crossing
  4. Reset Deassertion CDC
  5. Reset Synchroniser Structure

Part 5 · Reset Domain Crossing · All levels

Reset Synchroniser Structure

The standard two-flop reset synchroniser, one per destination domain, and what a structural check looks for.

The standard fix for an unsafe release is a short chain of flops in the destination clock domain, usually two. While the incoming reset is asserted, every flop in the chain is held low through its asynchronous clear. When the source releases, a deasserted level travels down the chain one stage per clock edge, so the domain's reset comes out aligned to its own clock.

Two-flop reset synchroniser with asynchronous clear and one domain clock.
Two flops held low by the async source; the release shifts through one stage per clock edge.

The first flop may still go metastable if the release lands in its window, exactly as the previous lesson describes. The second flop samples it a full clock period later, which gives it time to settle, the same reasoning as a two-flop data synchroniser. Designs on very fast clocks or with strict reliability targets sometimes use three stages.

The circuit is taught in full, with a runnable testbench, in Reset Architecture. This course does not repeat that construction; it covers what signoff checks about it.

What a structural check looks for

  1. One synchroniser per destination clock domain, clocked by that domain's clock. A synchroniser shared between two clocks protects neither.

  2. Nothing but the synchroniser's own flops between the asynchronous source and the domain reset net; in particular, no combinational logic on the path.

  3. No load driven directly by the raw source anywhere in the domain: every flop's reset comes from the synchronised output.

  4. The synchroniser flops themselves carry asynchronous clears from the same source, so assertion stays immediate.

Common pitfall

Sharing one synchroniser output between two asynchronous clock domains is a common shortcut and it defeats the circuit: the release is aligned to only one of the two clocks, so the other domain still gets an asynchronous release. Treat it as a defect and split the synchronisers; a skew-analysis waiver is conceivable only for synchronous, related domains.

Check yourself A design has three clock domains and one reset synchroniser whose output feeds all three. What is wrong?

The release aligns to only one clock. Each domain needs its own synchroniser on its own clock; the single shared one leaves two domains with an asynchronous release.

Check yourself Why must the synchroniser flops keep their asynchronous clears instead of using synchronous reset?

So that assertion stays immediate and works without a running clock, for example at power-up. Only the release travels through the chain; the assert path bypasses it.

Related topics

  • Recovery and removal

  • RTL: Reset Architecture

Previous

64 / 179

Next: Recovery and Removal

Up next

Up nextRecovery and Removal

Sign in to save progress

Practice this lessonReport an error

See also

  • Deassertion Hazards