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

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Puzzle Bank
  • SystemVerilog Language Puzzles25
  • Difficulty Guide
  • Full Topic Map
  • Interview-Day Tips
  • Study Route: One Week Before the Interview
  • Study Route: Two Weeks
  • Study Route: Four Weeks (Full Course)4
  • OOP & Testbench Puzzles25
  • Concurrency & Timing Puzzles25
  • Randomization & Constraint Puzzles25
  • SVA Assertion Puzzles25
  • Functional Coverage Puzzles25
  • Logic & Aptitude Puzzles25
  • Scenario & Debug Puzzles25
  • UVM Testbench Puzzles25
  • Clock, Reset & CDC Puzzles25
  • Bus and Interface Protocol Puzzles25
  • Interview Prep: Puzzle Rounds7
    • Framework for Any Unseen Puzzle
    • Scenario: Testbench Hang
    • Scenario: Constraint No-Solution
    • Scenario: Vacuous Assertion Pass
    • Scenario: Coverage Not Closing
    • Scenario: Race That Only Shows on Silicon-Like Gate-Level Timing
    • Scenario: Coverage Closed at 100 Percent but a Bug Escaped
  • DV Puzzle Cheatsheet
Loading lesson

←Interview Prep: Puzzle Rounds
  1. Topics
  2. DV Interview Puzzles
  3. Interview Prep: Puzzle Rounds
  4. Scenario: Race That Only Shows on Silicon-Like Gate-Level Timing
On this page

    VLSI DV Interview PuzzlesAll levels

    Scenario: Race That Only Shows on Silicon-Like Gate-Level Timing

    RTL regressions have been clean for months. A gate-level run with real cell delays shows one register capturing the wrong value on a path between two flops, and the same test passes at RTL. The team asks whether this is a testbench bug, a design bug, or noise.

    The setup

    RTL regressions have been clean for months. A gate-level run with real cell delays shows one register capturing the wrong value on a path between two flops, and the same test passes at RTL. The team asks whether this is a testbench bug, a design bug, or noise.

    The signal you would look at: A mismatch that appears only in the timed gate-level run and moves with the clock arrival times, not with the random seed.

    What the interviewer is measuring

    • Whether you can explain why zero-delay RTL hides a race that real delays expose.

    • Whether you reason with launch clock arrival, clock-to-q delay, path delay and capture clock arrival, not with the waveform alone.

    • Whether you decide who owns the fix: timing closure, the design, or how the testbench drives signals at the clock edge.

    Structure of a strong answer

    Follow these steps in order. The order matters: each step narrows the search so that the next one is cheap.

    1. Confirm the failure is stable: same flop, same time, independent of the seed. A seed-independent failure points at timing, not stimulus.

    2. Look at the capturing flop at its clock edge: did its data input change before the edge, or just after it? This tells you whether new data arrived too early (a hold-type race) or too late.

    3. Compare the clock arrival at the launching flop and at the capturing flop. If the capture clock arrives later than launch clock plus clock-to-q plus path delay, new data shoots through.

    4. Check whether the testbench drives or samples at the clock edge with zero delay. A direct drive on the edge is a race of its own, and a clocking block with skew removes it.

    5. Check for unknowns: a reset or an X that RTL treats optimistically may behave differently in gates.

    6. Assign the fix: timing closure for a real hold violation, a design change for a bad clock structure, a testbench change for edge-aligned driving. Then widen the RTL environment to vary clock ratios and offsets so this class of issue is seen earlier.

    Model answer: the conversation

    A model transcript of the first part of the round. Do not memorise the words; copy the order of the moves.

    Diagram
    Interviewer: RTL passes, the gate-level run fails on one flop. How do you decide whether it is the testbench or the design?
    
    Candidate: First: does it depend on the seed? If the same flop fails the same way for every seed, it is a timing effect, not stimulus.
    
    Interviewer: Same flop, same time, every seed.
    
    Candidate: Then I open the capture flop and look at when its data input changes relative to its own clock edge. If the data changes just after the edge, the old value should have been captured, so something is arriving early or the capture clock is late.
    
    Interviewer: The capture clock arrives about three nanoseconds after the launch clock.
    
    Candidate: In RTL, clock-to-q is zero and both flops see the edge in the same time step, so the nonblocking assignment keeps the old value. With real delays, if launch clock plus clock-to-q plus path delay is smaller than the capture clock skew, the new data shoots through.
    
    Interviewer: Is that a bug in the design?
    
    Candidate: It is a timing problem on that path, usually a hold violation or a clock-tree issue, so it belongs to timing closure first. I would still check that the testbench does not drive that input at the clock edge with zero delay, because that adds a race of its own.
    
    Interviewer: How would you catch this earlier?
    
    Candidate: Vary clock ratios and start offsets in the RTL environment, since a fixed ratio can hide phase bugs, and keep a short timed gate-level smoke test in the regression.

    Traps

    • Blaming the testbench seed when the failure is identical for every seed.

    • Assuming that a clean zero-delay RTL run proves the capture order is safe once real delays exist.

    • Fixing the symptom by delaying the testbench instead of asking who owns the path timing.

    • Reading the waveform at one scale and missing that the data change is a few hundred picoseconds after the clock edge.

    Puzzles that rehearse the same skills

    Work these cold, with the timer, before you rehearse the conversation.

    • crc-ver-05: Gate-Level Skew Shoots Data Through (H)

    • crc-ver-02: Clock Ratios That Hide Phase Bugs (M)

    • crc-rst-06: Reset Released With a Blocking Assignment (H)

    • crc-clk-06: Does the Gated Flop See the Old Data? (M)

    • race-condition-puzzles-2: Blocking Writer vs NBA Writer Same Signal (M)

    Related topics

    • Back to Interview Prep

    • Framework for any unseen puzzle

    • Interview-day tips

    Previous

    291 / 293

    Next: Scenario: Coverage Closed at 100 Percent but a Bug Escaped

    Up next

    Up nextScenario: Coverage Closed at 100 Percent but a Bug Escaped

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Framework for Any Unseen Puzzle
    • Scenario: Testbench Hang
    • Scenario: Constraint No-Solution