UVM Coding Practice · Senior

Driver Response Handshake

req/rsp TLM between driver and sequence.

Interview prompt

Sequence needs response from driver — sketch rsp_port wiring.

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
// driver after drive
rsp = rsp_item::type_id::create("rsp");
rsp.set_id_info(req);
rsp.data = captured_data;
rsp_port.write(rsp);

// sequence
start_item(req, -1, null);
finish_item(req);
get_response(rsp);

Mechanism to narrate

  • req carries id_info linking req to rsp

  • seq_item_port for req; rsp_port for response path

  • Pipelined driver may accept multiple req before rsp

Smoke test (5 minutes)

  • Seq waits get_response — verify data matches driven beat.

  • Missing set_id_info — get_response mismatch or hang.

Common pitfalls

  • rsp without matching req id.

  • Blocking get_response in wrong phase.

  • No rsp_port connect in driver.