SystemC中的增量周期和增量通知是什么?

时间:2013-09-17 12:45:41

标签: systemc

在SystemC中,有一种称为增量通知的通知,可以通过以下两种方法调用。

event.notify(SC_ZERO_TIME);

event.notify(0, SC_NS);

它定义在增量通知调用中,对事件敏感的进程将在下一个增量周期的评估阶段运行。

那么,什么是所谓的“三角周期”?它的定义是时钟周期还是某段时间?

2 个答案:

答案 0 :(得分:6)

增量周期不是时钟周期,没有时间提前。 Delta周期用于模拟从当前时间的当前执行阶段模拟的新更新和事件触发过程。

简短的模拟步骤如下,

  1. 评估阶段:执行当前运行队列中的所有计划进程
  2. 更新阶段:更新值并将新触发的可运行进程添加到等待队列或t + N队列。
  3. 如果队列(t + 0)不为空,则移动队列(t + 0)以运行队列并转到步骤1
  4. 如果等待队列(t + 0)为空,则提前到最近时间步, 并移动队列(t + X)以运行队列并转到步骤1
  5. 如果队列为空,则表示不需要模拟任何事件,然后模拟结束。
  6. 因此,如果您正在使用增量通知,则事件及其触发的进程计划在当前执行后立即运行&更新阶段。因此,当执行阶段已经完成,但仍然有其他计划进程在当前时间运行时,它再次进入评估阶段以运行这些进程,并且由于模拟仍处于相同时间戳,因此没有时间提前

    还有另一个称为立即通知的术语,它在没有任何参数的情况下调用notify()。然后,该过程将立即安排到当前的执行队列,而不是等待下一个增量循环。

答案 1 :(得分:0)

event.notify(SC_ZERO_TIME); or event.notify(0, SC_NS);

称为延迟通知。等待延迟通知(即等待事件)的进程将仅在所有等待进程都已执行后执行,或者换句话说,将在下一个增量周期(在更新阶段之后)执行。