UVM event


###########################################################################
############################# 方法一:uvm_event_pool #########################
###########################################################################

// 声明
uvm_event inflight_flush_rsp;
// 使用
inflight_flush_rsp = uvm_event_pool::get_global("inflight_flush_rsp");
inflight_flush_rsp.trigger();

###########################################################################

// 声明
uvm_event inflight_flush_rsp;
// 使用
inflight_flush_rsp = uvm_event_pool::get_global("inflight_flush_rsp");
inflight_flush_rsp.wait_trigger();

###########################################################################
######################## 方法二:uvm_seq_item_event_pool #####################
###########################################################################

// 声明
uvm_seq_item_event_pool evt_pool;
uvm_event #(uvm_sequence_item) l2r_miss_evt;
// 使用
evt_pool = uvm_seq_item_event_pool::get_global_pool();
l2r_miss_evt = evt_pool.get("bg_l2r_ready_evt");
l2r_miss_evt.trigger(l2r_req);

###########################################################################

// 声明
uvm_seq_item_event_pool evt_pool;
uvm_event #(uvm_sequence_item) vl1_l2rw_trreq_evt;
// 使用 evt_pool = uvm_seq_item_event_pool::get_global_pool();
vl1_l2rw_trreq_evt = evt_pool.get("bg_l2r_ready_evt"); vl1_l2rw_trreq_evt.wait_trigger_data(req); // req必须是uvm_sequence_item类型 $cast(vl1_l2rw_req_tr, req);
UVM