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
    • Assertion Debug Puzzles
      • disable iff Abort Semantics
      • Multiclock Ack Visibility
      • Vacuity Hidden by Mode Gating
      • throughout Glitch Before Completion
      • within Timeout Window Escape
      • Intersect Requirement in Dual Checks
    • SVA Assertion Puzzles: Tricky Q&A
  • Functional Coverage Puzzles25
  • Logic & Aptitude Puzzles25
  • Scenario & Debug Puzzles25
  • Interview Prep: Puzzle Rounds5
  • DV Puzzle Cheatsheet
Loading lesson

‹Assertion Debug Puzzles
  1. Topics
  2. DV Interview Puzzles
  3. SVA Assertion Puzzles
  4. Assertion Debug Puzzles
  5. Multiclock Ack Visibility

VLSI DV Interview Puzzles · All levels

Multiclock Ack Visibility

Property intent: when req_src rises in src_clk domain, ack_dst must be seen within 0 to 1 dst_clk edges. Timeline: req_src rises at S100, ack_dst pulses between D200 and D201 but is low at both sampled dst edges. Determine the verdict.

On this page

    Puzzle

    Difficulty: Hard · Puzzle 2 of 6 · Topic: Assertion Debug Puzzles

    Property intent: when req_src rises in src_clk domain, ack_dst must be seen within 0 to 1 dst_clk edges. Timeline: req_src rises at S100, ack_dst pulses between D200 and D201 but is low at both sampled dst edges. Determine the verdict.

    Code

    design.sv
    1
    2
    3
    4
    property p_multiclk_ack;
      @(posedge src_clk) $rose(req_src)
        |-> @(posedge dst_clk) ##[0:1] ack_dst;
    endproperty

    Hint

    Consequent sampling occurs only at dst clock edges declared in the consequent clocking event.

    Step-by-step solution

    Diagram
    1) Source-domain rise triggers the multiclock consequent.
    2) ack_dst is evaluated only at D200 and D201 samples.
    3) Pulse exists between edges but is not high at either sampled edge.
    4) No legal match in ##[0:1] destination window.

    Answer

    Answer: FAIL - asynchronous pulse is not captured at destination sampling edges, so acknowledgment is considered missing.

    Why candidates get it wrong

    Candidates often debug RTL first, but the real issue is sampling visibility without pulse stretching/synchronization.

    Interviewer follow-up

    Would synchronizing ack_dst into src_clk or stretching pulse width fix this checker failure?

    Related topics

    • Back to Assertion Debug Puzzles

    • SVA Assertion Puzzles section

    Previous

    124 / 210

    Next: Vacuity Hidden by Mode Gating

    Up next

    Up nextVacuity Hidden by Mode Gating

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • throughout Glitch Before Completion
    • within Timeout Window Escape
    • Intersect Requirement in Dual Checks