Write a sequence that sends 10 randomized pkt items on a sequencer.
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 componentclass pkt_seq extends uvm_sequence #(pkt);
`uvm_object_utils(pkt_seq)
virtual task body();
repeat (10) begin
pkt req = pkt::type_id::create("req");
start_item(req);
assert(req.randomize());
finish_item(req);
end
endtask
endclassstart_item(req);
req.addr = 5; // forgot randomize
finish_item(req);After reading, try Code lab exercise uvm-l8-int-basic-seq — topic reference: /topics/uvm/coding-practice/sequences/basic-sequence-body
Run seq — 10 items on bus.
UVM transaction log count = 10.
No randomize.
Objection leak if test waits forever.
finish_item before drive completes if rsp required.