【IEEE_Verilog-11.3】层次事件队列
11.3 The stratified event queue
Verilog事件队列在逻辑上被分割成五个不同的区域。事件被添加到这五个区域中的任何一个,但只从活动区域active region中删除。
a)活动事件active events发生在当前模拟时间,可以按任何顺序处理。
b)非活动事件inactive events发生在当前模拟时间,待所有活动事件处理完毕后再进行处理。
c)非阻塞赋值更新事件已经在之前的一些模拟时间中被评估,但是应该在这个模拟时间在所有活动和非活动事件处理后被赋值
d)监视事件应在处理完所有活动的、非活动的和非阻塞的分配更新事件之后进行处理。
e)未来事件发生在未来的某个模拟时间。未来事件分为未来非活动事件和未来非阻塞赋值更新事件。
对所有活动事件的处理称为模拟循环。
在Verilog HDL中,选择任何活动事件进行即时处理的自由是不确定性的基本来源。
显式的零延迟(#0)要求将流程挂起并作为当前时间的非活动事件添加,以便在当前时间的下一个模拟周期中恢复流程。
一个非阻塞赋值(参见9.2.2)创建一个非阻塞赋值更新事件,调度到当前或以后的模拟时间。
\(monitor和\)strobe系统任务(见17.1)为它们的参数创建监视器事件。这些事件在每个连续的时间步骤中不断地被重新启用。监视器事件是唯一的,因为它们不能创建任何其他事件。
使用vpi_register_cb(cbReadWriteSynch)等PLI例程调度的回调过程(参见27.33)应被视为非活动事件。

浙公网安备 33010602011771号