Jump to content

uvm_blocking_peek_imp in ubus example


Recommended Posts

Hi,

i saw "uvm_blocking_peek_imp#(ubus_transfer,ubus_slave_monitor) addr_ph_imp" in ubus_slave_monitor.sv file. but i don't know how it peeks the ubus_transfer, i cann't see any other code about addr_ph_imp except in class ubus_slave_agent like this: sequencer.addr_ph_port.connect(monitor.addr_ph_imp);

i guess that there should be some codes like this addr_ph_imp.write(ubus_transfer), then the sequencer can peek the ubus_transfer, but there isn't.

any expert to answer my question? thanks in advance.

Link to post
Share on other sites

The slave monitor having a uvm_blocking_peek_imp means it is implementing a peek member task for someone else to call through a uvm_blocking_peek_port, which in this case sits in the sequencer. A sequence can then call peek() on the sequencer port, i.e p_sequencer.addr_ph_port.peek(). The peek call will be forwarded to the peek task of the monitor since the slave agent has connected the peek port of the sequencer to the monitor peek imp. At that point, peek() of the monitor will pend on the address_phase_grabbed event and return trans_collected to the sequence in the trans output parameter when the event triggers.

Erling

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...