UVM Coding Practice · Senior

Driver get_next_item Loop

Forever loop, drive, item_done.

Interview prompt

Whiteboard active driver run_phase for req/ack bus.

diagram
WHITEBOARD CHAIN

1. DECLARE    interfaces / types / ports you need
2. SKELETON   class extends + utils macro + key methods
3. MECHANISM  fill one critical method while narrating
4. PITFALL    name one bug juniors make on this pattern
5. TEST       how you would smoke-test the component

Reference sketch (≤40 lines)

systemverilog
task run_phase(uvm_phase phase);
  forever begin
    seq_item_port.get_next_item(req);
    drive_req(req);
    seq_item_port.item_done();
  end
endtask

Buggy snippet — critique verbally

systemverilog
get_next_item(req);
drive_req(req);
// forgot item_done

Code lab drill

After reading, try Code lab exercise uvm-l8-int-driver-loop — topic reference: /topics/uvm/coding-practice/monitor-driver/driver-get-next-item-loop

Common pitfalls

  • No item_done.

  • Drive before reset done.

  • Blocking forever without phase kill.