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. Vector $rose Sampling Trap

VLSI DV Interview Puzzles · All levels

Vector $rose Sampling Trap

Property intent: on $rose(state[3:0]), enter must assert. Timeline: state changes from 4'b0010 at C100 to 4'b0100 at C101, enter=0 at C101. Determine the verdict.

On this page

    Puzzle

    Difficulty: Hard · Puzzle 6 of 6 · Topic: Temporal Corner Puzzles

    Property intent: on $rose(state[3:0]), enter must assert. Timeline: state changes from 4'b0010 at C100 to 4'b0100 at C101, enter=0 at C101. Determine the verdict.

    Code

    design.sv
    property p_vector_rose;
      @(posedge clk) $rose(state[3:0]) |-> enter;
    endproperty

    Hint

    In SVA, $rose on a vector expression is based on the least significant bit transition.

    Step-by-step solution

    Diagram
    1) LSB of state is 0 at C100 and 0 at C101.
    2) $rose(state[3:0]) is therefore false at C101, despite upper-bit toggles.
    3) Antecedent does not trigger; consequent is not checked.

    Answer

    Answer: VACUOUS-PASS - no antecedent trigger occurs because the vector LSB did not rise, so implication passes vacuously.

    Why candidates get it wrong

    Interviewers use this to catch assumptions that $rose(vector) means any-bit rise.

    Interviewer follow-up

    How would you rewrite the trigger to detect a rise on any bit of state?

    Related topics

    • Back to Temporal Corner Puzzles

    • SVA Assertion Puzzles section

    Previous

    122 / 210

    Next: Assertion Debug Puzzles

    Up next

    Up nextAssertion Debug Puzzles

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • $past Startup History Hole
    • $rose Sampled on Clock Edge
    • $fell With Non-Overlapped Consequent