UVM Coding Practice · Senior

Backdoor & Frontdoor Peek/Poke

peek/poke vs read/write through bus.

Interview prompt

When use poke vs write for bring-up?

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
  • poke: fast init without bus — backdoor HDL path

  • write: exercises adapter + driver — frontdoor bus path

  • peek: read flop directly; read: bus read through adapter

Reference sketch (≤40 lines)

systemverilog
// frontdoor
reg.write(status, .path(UVM_FRONTDOOR));
// backdoor poke
reg.poke(.value(32'h1), .path(UVM_BACKDOOR));

Mechanism to narrate

  • Bring-up: poke registers before bus works

  • Regression: frontdoor write/read validates adapter+driver

  • peek/poke bypass bus — do not skip adapter testing forever

Smoke test (5 minutes)

  • Narrate bring-up order: poke CTRL, then frontdoor read STATUS.

  • State when you would waive frontdoor on broken bus.

Common pitfalls

  • Only poke in regression — adapter never tested.

  • peek after bus write without predict — mirror mismatch.