Verilog仿真事件队列

1.分层的事件队列

2.执行事件的队列

3.仿真时间的计算

4.同一层事件,无先后顺序

这个点:觉得Verilog与systemVerilog比较,Verilog比较笼统,systemVerilog则比较细分。

在Verilog眼中无论testbench、dut还是assertion都是code。

所以先把code吃进来,然后有一个时间轴参数,仅仅处理set t = 0时刻的code.这个code有阻塞语句、$display、assignment....0时刻还有#0语句、在处理非阻塞的LHS、最后monitor语句。

无论语句在TB中还是DUT中都是按照这个逻辑顺序执行下去,在同一个timeslot中。就是先执行没有延迟的再执行有延迟的,对于非阻塞赋值有点像用寄存器隔离的阻塞赋值。

systemVerilog事件队列就比较模块层次化,细分到位。从TB到assertion到dut再到interface、monitor。然后再细分。显得,真个执行流程很清晰。

一句话:Verilog事件队列直接面向了底层code了。systemVerilog先模块层次化了,再看每一个模块code执行顺序。

原文地址:https://www.cnblogs.com/chip/p/4780067.html