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:表明事件是否被触...
uvm_event 在 sequence中使用的踩坑2个不同的sequence中使用 uvm_event。 其中在主 top sequence中使用 wait_ptrigger在 sub_sequence 中用了trigger。不生效。 尝试发现如果是用wait_on是可以的。后续检查发现在t…
注1: uvm_event主要有三类function:trigger函数(如trigger(), get_trigger_data(), get_trigger_time()等),状态函数(is_on(),is_off(),reset(), get_num_waiters()等),callback函数(add_callback(), delete_callback()等); 3.1 wait_on (1) 等待事件处于activated状态,如果事件已经被触发,这个task会...
首先,uvm_event引入了trigger状态标识功能。该标识在事件被首次触发时被设置为1,触发后复位为0,便于追踪事件触发的次数。其次,uvm_event提供了wait_on和wait_off函数,允许直接检查事件当前状态,若状态满足条件,函数立即返回,否则等待至状态满足后返回。is_on和is_off函数进一步用于获取事件当前状态。...
首先,需要先看看uvm_event_base这个类,其实本质就是个object,只不过包含了几个变量,on、num_waiters代表wait_trigger的数量,m_event就是sv的event数据类型啦,此外还有callback函数的队列。 virtual class uv…
#40;$display($time," Triggering The Event");ev_1.trigger;end//process-2, wait for the event to triggerbegin$display($time," Waiting for the Event to trigger");ev_1.wait_on;$display($time," Event is on");#100;$display($time," Event is on");end ...
virtualtaskwait_on (bitdelta=0); if(on)begin if(delta) #0; return; end num_waiters++; @on; endtask // Task: wait_off virtualtaskwait_off (bitdelta=0); if(!on)begin if(delta) #0; return; end num_waiters++; @on; endtask ...