Hi UVM forum,
I am trying to understand the difference between TLM get and peek.
the UVM_class_reference writes "The get interfaces are used to retrieve transactions from other components. The peek
interfaces are used for the same purpose, except the retrieved transaction is not consumed"
I am trying to write a code that demonstrates this.
class A extends uvm_component;
uvm_blocking_get_imp #(pkt,A) get_imp;
task get(output pkt t)
endclass : A
class B extends uvm_component;
uvm_blocking_get_port #(pkt) get_port;
endclass : B
I was expected that the second t.print() in class A would fail because B already consumed the transaction.
but in the simulator I do see t printed again.
I guess I don't understand the "is not consumed" part