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
  • RDC Signoff16
    • RDC Methodology
    • Reset-aware Simulation
      • Why Reset-aware Simulation
      • Reset Sequences and Random Resets
      • Reset Checks and Assertions
      • Reset Coverage
    • Chip-level RDC Closure
    • RDC Signoff Dashboard
  • Debug and Case Studies11
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Reset-aware Simulation
  1. Topics
  2. CDC & RDC
  3. RDC Signoff
  4. Reset-aware Simulation
  5. Why Reset-aware Simulation

Part 8 · RDC Signoff · All levels

Why Reset-aware Simulation

What ordinary tests miss: resets asserted mid-operation, partial resets, and release ordering.

On this page

    A typical functional testbench asserts reset at time zero, releases it, and never touches it again. The design under test therefore never experiences the reset events that happen in silicon: a watchdog firing mid-transfer, one domain resetting while its neighbour keeps running, or two resets releasing in the wrong order after a warm reboot.

    What ordinary tests miss

    Scenario

    What happens in silicon

    What a reset-once testbench sees

    Reset asserted mid-operation

    In-flight transactions are cut off; buffers, arbiters, and link partners must recover.

    Nothing: reset never moves after time zero.

    Partial reset

    One domain resets while another keeps running; handshakes stall on one side.

    Nothing: all resets move together or not at all.

    Release ordering

    Domains come out in sequence; a domain released early samples garbage from one still in reset.

    Only one order is ever exercised, usually the easy one.

    Back-to-back resets

    A second reset lands before recovery from the first has finished.

    Never happens with a single initial reset.

    Reset during low-power entry or exit

    Isolation and retention interact with the reset sequence.

    Power modes are rarely combined with reset tests.

    Why these escape to silicon

    Each scenario corrupts state only when the reset lands in a narrow window: a buffer holding data, a handshake mid-cycle, a neighbour running. A testbench that never puts the design in those states while reset moves will pass on broken RTL every time, and the failure then appears as an intermittent field issue that depends on reset timing.

    What the checks and the review look for

    The review asks for each reset when it last moved during simulation, not just whether reset was used. A test plan where every reset moves only at time zero is incomplete by inspection. Reset-aware simulation means at least one directed sequence per scenario in the table above, plus randomised reset timing around real traffic, with checkers that verify recovery rather than just absence of a crash.

    Common pitfall

    Releasing all resets at once in every test hides ordering bugs and then the one test that staggers them fails mysteriously. Stagger releases deliberately from the start so ordering is a tested feature, not an accident.

    Interview

    Expect: what does a normal testbench miss about reset? Answer with the table: mid-operation assertion, partial resets, release ordering, and back-to-back resets, and explain why each needs the design to be busy while reset moves.

    Check yourself A block passes all functional tests and all resets are released together 100 ns after time zero. What reset behaviour is still unproven?

    Everything except a single simultaneous release: mid-operation assertion, partial resets, any other release order, and back-to-back resets are all untested.

    Check yourself Why do reset bugs escape to silicon as intermittent failures?

    Because corruption needs reset to land in a narrow busy window. Tests that never create that overlap always pass, while silicon hits the window on some sequences and misses it on others.

    Related topics

    • Reset sequences and random resets

    • Reset checks and assertions

    • RTL: CDC verification

    Previous

    123 / 179

    Next: Reset Sequences and Random Resets

    Up next

    Up nextReset Sequences and Random Resets

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Reset Checks and Assertions
    • Reset Coverage