【发布时间】:2016-09-26 08:01:34
【问题描述】:
我有一个如下所示的块:
fork
begin
$display("before repeat");
repeat (delay_before_rsp2data) #1ps;
$display("after repeat");
$display("some information");
`ovm_do_on_with("do some stuff");
end
join_none
在几乎所有情况下它都可以正常工作,但在一种情况下(我发现),在 `ovm_do_on_with 行之后,它会跳回到重复行,并从那里继续。我知道这正在发生,因为显示的是:
before repeat
after repeat
some information
[all the displays from the `ovm_do_on_with part]
after repeat
some information
[all the displays from the `ovm_do_on_with part]
我尝试将整个 'repeat' 行放在 before end 块中,用 for 循环切换它,以及更多类似的组合,但始终是相同的行为。
知道是什么原因造成的吗?
【问题讨论】:
-
也许你应该发一个MCVE。我看不出问题,但您可能需要检查您的分号。前两个
$displays 之后应该有一个。 -
这不是真正可验证的,因为它只在特定种子进入区块的特定时间发生,我不知道我是否可以提供更多信息。
标签: repeat system-verilog fork-join