rules:
1. event.triggered只会保持一个time_slot,在下一个time_slot将会丢失这个标记,如果不能保证在每一个time_slot都会检测到这个标志,那么将会丢失这个标志。
2. 必须保证在->event的同一个或之前的time_slot开始检测triggered.
3.virtual task wait_trigger ();如果和->event在同一个time_slot发生,那么可能丢失triggered
num_waiters++;
@m_event;
endtask
4. virtual task wait_ptrigger
();如果和->event在同一个time_slot发生,那么不会丢失triggered
if
(m_event.triggered)
return;
num_waiters++;
@m_event;
endtask
5.上诉问题的引起主要是由于->event,@event都是在reactive set区,不能保证->event在@event前发生,只有通过triggered来记录,但是triggered到下一个time_slot会丢失。