如何迭代SystemVerilog中的邮箱而不删除其元素?

时间:2017-08-01 16:36:22

标签: iteration system-verilog

我有一个类型为ethernet数据包的邮箱。我随机将数据放入邮箱。现在我想打印邮箱的每个元素而不删除元素。 我尝试了 try_peek ,但它始终指向第一个元素,因此它始终打印第一个元素。 get()方法删除元素,因此在for循环结束时邮箱为空。 有没有办法可以在SystemVerilog中迭代邮箱而不删除它的元素?

for (int i=0; i<=9; i++)
                begin
                    mbox_pkt.try_peek(pkt1);
                    $display("mbox_pkt=%p", pkt1);
                end

mbox_pkt是以太网数据包类型的邮箱。

1 个答案:

答案 0 :(得分:1)

如果不使用get或try_get删除下一个元素,则无法访问邮箱的元素。