In reply to chr_sue:
Thank you chr_sue.
I was exploring uvm_events and came across a post with your reply(in this forum):
class driver1 extends uvm_driver #(my_tx);
uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
//...
task run_phase(uvm_phase phase);
uvm_event ev = ev_pool.get("driver1_ev");
ev.trigger(req);
endtask
//...
endclass
class driver2 extends uvm_driver #(my_tx);
uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
//...
task run_phase(uvm_phase phase);
uvm_event ev = ev_pool.get("driver1_ev");
ev.wait_trigger();
$cast(req, ev.get_trigger_data());
//...
endtask
//...
endclass
In driver1, I see:
ev.trigger(req);
But i dont see #type mentioned while declaring uvm_event ev. Isn’t it required? It takes any data type?
On driver2, I see:
$cast(req, ev.get_trigger_data());
req will hold the data from driver1, right?
And one more thing, with event_pool, we can access the events in any component including sequence, right?