我正在尝试使用SystemVerilog了解有关测试平台的一些内容。 但是我似乎找不到监视程序块内部DUT信号的方法
考虑以下示例。 信号'dummy'是DUT的输出并输入到程序块。 现在我需要在程序块中监视'dummy',以便在'dummy'具有特定值时引发标记'test'。
在一般模块驱动的测试平台中,我只想写@(虚拟),但程序下不允许使用块。我怎么做到这一点?
答案 0 :(得分:6)
您可以编写如下的顺序代码:
program test(input dummy);
initial begin
...
wait(dummy == <something>);
...
@(posedge dummy);
...
end
endprogram
或者您可以使用always
循环模拟forever
构造。
program test(input dummy);
initial begin
forever begin
@(posedge dummy);
if (dummy == <something>) ...
end
end
endprogram