Skip to question
asic.fyi
DesignVerificationSystemVerilogFirmwareArchitectureInterviews
asic.fyi/Interview questions/Reset race in a forked driver

Hardware interview practice

Reset race in a forked driver

HardVerification UtilitiesSystemVerilog

When reset wins the fork below, the code skips item_done and loops. What failure should be expected on the next request attempt?

Try it in the question bankReason first. Then compare.

Keep this exact question selected while you check your answer and review the full solution.

Practice this question →
Starting point

Question code

seq_item_port.get_next_item(req);
fork
  begin drive(req); completed = 1; end
  begin @(posedge reset); completed = 0; end
join_any
disable fork;
if (completed) seq_item_port.item_done();
Choose one

Answer choices

  1. A. The prior get_next_item remains outstanding, so the sequence can stay blocked and a later get_next_item violates the one-outstanding handshake
  2. B. disable fork implicitly calls item_done on every sequencer
  3. C. Reset converts req into a response and routes it to all sequences
  4. D. The sequencer automatically rewinds finish_item when reset is sampled
Continue practicing

Related questions

Verification UtilitiesNonblocking sequencer polling→Verification UtilitiesBackground objections and blocking gets→
asic.fyi · Learn silicon end to end.info@asic.fyi