3

SystemVerilogを使用してテストベンチについていくつかのことを学ぼうとしています。しかし、プログラムブロック内のDUT信号を監視する方法を見つけることができなかったようです

次の例を検討してください。信号「ダミー」はDUTの出力であり、プログラムブロックに入力されます。次に、プログラムブロックの「ダミー」を監視して、「ダミー」に特定の値がある場合に「テスト」フラグを立てる必要があります。

一般的なモジュール駆動のテストベンチでは、常に@(dummy)と書くだけですが、プログラムでは常にブロックは許可されていません。どうすればこれを達成できますか?

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 に答える