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 Puzzle Bank
  • SystemVerilog Language Puzzles25
  • Difficulty Guide
  • Full Topic Map
  • Interview-Day Tips
  • OOP & Testbench Puzzles25
  • Concurrency & Timing Puzzles25
  • Randomization & Constraint Puzzles25
  • SVA Assertion Puzzles25
    • Sequence Puzzles
    • Implication Puzzles
    • Temporal Corner Puzzles
      • $past Startup History Hole
      • $rose Sampled on Clock Edge
      • $fell With Non-Overlapped Consequent
      • $stable Repeated Hold Check
      • Cross-Cycle Correlation With $past Depth
      • Vector $rose Sampling Trap
    • Assertion Debug Puzzles
    • SVA Assertion Puzzles: Tricky Q&A
  • Functional Coverage Puzzles25
  • Logic & Aptitude Puzzles25
  • Scenario & Debug Puzzles25
  • Interview Prep: Puzzle Rounds5
  • DV Puzzle Cheatsheet
Loading lesson

‹Temporal Corner Puzzles
  1. Topics
  2. DV Interview Puzzles
  3. SVA Assertion Puzzles
  4. Temporal Corner Puzzles
  5. $past Startup History Hole

VLSI DV Interview Puzzles · All levels

$past Startup History Hole

Property intent: when valid is high, data from 2 cycles ago must be 8'hA5. Timeline: reset deasserts at C0, first active check with valid=1 occurs at C1. Determine the verdict.

On this page

    Puzzle

    Difficulty: Medium · Puzzle 1 of 6 · Topic: Temporal Corner Puzzles

    Property intent: when valid is high, data from 2 cycles ago must be 8'hA5. Timeline: reset deasserts at C0, first active check with valid=1 occurs at C1. Determine the verdict.

    Code

    design.sv
    property p_past_2;
      @(posedge clk) valid |-> ($past(data, 2) == 8'hA5);
    endproperty

    Hint

    Ask whether two prior sampled cycles exist yet.

    Step-by-step solution

    Diagram
    1) valid at C1 triggers the check immediately.
    2) $past(data,2) requires sampled history reaching back to C-1 relative to C1, which is unavailable in startup.
    3) Tools typically evaluate this as unknown/invalid history and the comparison does not prove true.

    Answer

    Answer: FAIL - the first trigger occurs before a 2-cycle sampled history exists, so the $past comparison is not satisfied.

    Why candidates get it wrong

    Candidates assume $past auto-fills with reset values unless explicitly guarded.

    Interviewer follow-up

    How would you gate this property so it only starts after two valid sample edges?

    Related topics

    • Back to Temporal Corner Puzzles

    • SVA Assertion Puzzles section

    Previous

    117 / 210

    Next: $rose Sampled on Clock Edge

    Up next

    Up next$rose Sampled on Clock Edge

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • $fell With Non-Overlapped Consequent
    • $stable Repeated Hold Check
    • Cross-Cycle Correlation With $past Depth