// --------------------- monitor run phase method ------------------------ //
task run_phase(uvm_phase phase);
//forever
begin
txn = rx_txn ::type_id::create("txn");
txn.array = {10,20,30,40,50}; //assigning some dummy data to my transaction class, as DUT is not yet ready!
`uvm_info("RX_MON_DATA", $sformatf("DATA sending from RX MONITOR is : [%p] \n", txn.array),UVM_LOW) // data {10,20,30,40,50} is printing
ev = ev_pool.get("mon_ev");
//uvm_event ev = ev_pool.get("mon_ev");
ev.trigger(txn);
`uvm_info("TRIGGER_DATA", $sformatf("DATA triggered in RX Monitor"),UVM_LOW) //This display is printing , after that simulation is getting blocked/hanged!!
end
endtask : run_phase
// --------------------- sequence ------------------------ //
class rx_reset_seq extends rx_base_seq;
uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
uvm_event ev;
`uvm_object_utils(rx_reset_seq)
function new(string name = "rx_reset_seq");
super.new(name);
ev=new("ev");
endfunction
task body();
req = rx_txn ::type_id::create("req");
//uvm_event ev = ev_pool.get("mon_ev");
ev = ev_pool.get("mon_ev");
start_item(req);
assert(req.randomize());
finish_item(req);
ev.wait_trigger();
$cast(req, ev.get_trigger_data());
// How to print my data here ?? ie., how can I print my sent data here ?? ie., {10,20,30,40,50}
endtask : body
endclass
Hi chr_sue,
Please see my code, and help me, if I’m doing wrong …
Do we need to create a separate class for uvm_event by extending from uvm_object ?? or not necessary ??
Anticipating a favourable reply from you at the earliest.