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