3

我正在尝试使用 SystemVerilog 学习一些关于测试平台的知识。但是我似乎找不到在程序块内监视 DUT 信号的方法

考虑以下示例。信号“虚拟”是 DUT 的输出并输入到程序块。现在我需要监视程序块中的“dummy”以在“dummy”具有特定值时引发标志“test”。

在一般的模块驱动测试平台中,我会简单地写总是@(虚拟),但程序下不允许总是块。我将如何实现这一目标?

4

1 回答 1

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
于 2012-07-31T19:37:35.783 回答