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
  • Debug and Case Studies11
    • Reading a CDC Report
    • Classic Bug Anatomy
    • Case Studies
      • Case: Intermittent Bring-Up Hang
      • Case: FIFO Data Corruption
      • Case: Reset Glitch After ECO
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Case Studies
  1. Topics
  2. CDC & RDC
  3. Debug and Case Studies
  4. Case Studies
  5. Case: Reset Glitch After ECO

Part 9 · Debug and Case Studies · Advanced

Case: Reset Glitch After ECO

A signed-off block fails after a minor layout fix: the ECO that touched the release path, and the re-sign rule that was missing.

On this page

    Context, kept generic: a control block fully signed off for CDC and RDC, then given a small engineering change to fix an unrelated timing path. Days later, first-silicon-style vectors in gate-level simulation show the block waking into a half-reset state on some seeds: a few flops out of reset a cycle early, the rest on time. Nothing in the RTL changed near the reset logic, and the RTL testbench still passes.

    Symptoms

    The failure appears only in gate-level simulation with delays, never at RTL, and only when the release edge lands near a destination clock edge. Partial reset states follow: configuration flops awake while their enable flops still sleep, so the first transaction programs a default instead of the intended value. The randomness across seeds is the signature of a release edge drifting through a recovery window as delays shift.

    Hypotheses tried

    Hypothesis

    Evidence sought

    Verdict

    The ECO changed the reset RTL behaviour.

    Diff the RTL reset logic before and after.

    Killed: the RTL is untouched near reset.

    The new delays expose a pre-existing marginal release.

    Check whether the release path was ever glitch-free by construction.

    Survives in part: the path was clean, but fragile.

    The ECO reroute altered the release path itself.

    Compare the release net before and after layout.

    Survives: see evidence below.

    Evidence

    The layout diff shows the ECO moved the reset synchroniser flops apart and rerouted the release net through a spare cell used as a buffer alongside unrelated glue, adding combinational depth and skew between the release branches. The no-logic-between-flops structure the signoff relied on no longer exists in silicon geometry: one branch now arrives earlier, and when the release edge lands near the clock, that branch's flops exit reset a cycle ahead. The RTL testbench cannot see it because it models the release as ideal; only the delayed gate-level run shows the split.

    Root cause and fix

    Root cause: the ECO broke the structural precondition of the reset synchroniser, combinational logic and skew inside the release path, converting a synchronised release into a skewed one. The fix restores the structure: the synchroniser flops placed together, the release net routed as a clean branch with no glue, and the change re-verified in gate-level simulation with the release edge swept across the clock. The glitchy-release lesson of the reset debug topic shows the same failure shape from the symptom side.

    What signoff should have caught, and what changed

    Signoff was correct for the design it analysed; the ECO created a new design that nobody re-signed. The methodology topic already requires structural re-checks after ECOs, but the project treated a layout-only change as exempt. The process change removes the exemption: any ECO touching a synchroniser, a release net, or their placement triggers the structural re-run and a gate-level release sweep before the gate re-opens, with the layout diff attached to the signoff record so the next ECO starts from evidence, not memory.

    Common pitfall

    “Layout-only” never means “CDC-clean”. Placement and routing are where synchroniser preconditions live: moving flops apart or buffering a release net through glue edits the synchroniser as surely as editing the RTL.

    Check yourself RTL still passes and gate-level fails after a layout-only ECO. Why is that consistent rather than contradictory?

    RTL models the release as ideal, so a skew introduced by placement and routing is invisible there by construction. The delayed gate-level run is the first model in the flow that can show it.

    Check yourself What single artefact would have forced the re-sign before tape-out?

    A rule requiring the layout diff attached to the signoff record with any ECO near synchronisers or release nets triggering the structural re-run: the diff existed, but nobody was obliged to read it.

    Related topics

    • Reset Release Bug

    • Gate Level and ECO Checks

    • Glitchy Reset Release

    Previous

    145 / 179

    Next: CDC and RDC Interview Prep

    Up next

    Up nextCDC and RDC Interview Prep

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Case: Intermittent Bring-Up Hang