timeslot概念(还是不太懂呀!!)

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会丢失。

posted @ 2015-09-17 14:51  CHIPER  阅读(2805)  评论(0编辑  收藏  举报