uvm_enent的方法有wait_on、wait_off、wait_trigger、wait_ptrigger、get_num_waiters、
1.wait_on:等待事件第一次被觸發;
2.wait_off:如果事件已經被觸發且保持on的狀態,這個任務等待通過調用reset關閉;
3.wait_trigger:等待事件被觸發;
4.wait_ptrgiger:等待事件的持久觸發;
5.get_trigger_time:返回事件最后一次被觸發的時間;
6.is_on:表明reset以后事件是否被觸發;
7.is_off:表明事件是否被觸發或reset;
8.reset:reset事件到off狀態;
9.cancel:減少事件上等待者的數量;
10.get_num_waiters:返回等待事件的進程數;
11.wait_trigger_data:此方法調用<uvm_event_base::wait_trigger>然后調用<get_trigger_data>;
12.wait_ptrigger_data:此方法調用<uvm_event_base::wait_ptrigger>然后調用<get_trigger_data>;
13.trigger:觸發事件,恢復所有等待的進程;
14.get_trigger_data:通過最后一次調用trigger得到的數據;
15.add_callback:用這個事件注冊一個回調對象;
16.delete_callback:從這個事件注銷指定的callback對象。
wait_on的用法:等待事件第一次被激活
1.如果事件已經被激活,則立即返回;
2.如果設置了delta,返回之前必須等待一個delta #0;這將防止調用者在先前等待的進程有機會恢復之前返回;
3.一旦事件被觸發,將一直保持on,直到被事件被重新reset。
virtual task wait_on (bit delta = 0);
if (on) begin
if (delta)
#0;
return;
end
num_waiters++;
@on;
endtask
wait_off的用法:如果事件已經被激活且保持on的狀態,這個任務等待通過調用reset關閉。
1.如果事件沒有被激活,任務立即返回;
2.如果設置了delta,返回之前必須等待一個delta #0;這將防止調用者在先前等待的進程有機會恢復之前返回;
virtual task wait_off (bit delta = 0);
if (!on) begin
if (delta)
#0;
return;
end
num_waiters++;
@on;
endtask