我要寫以下併發斷言在我的顯示器:我在哪裏可以在監視器中寫入併發斷言?
assert property (vif.cos == 1 |-> vif_out.y == vif.xi/sqrt(2));
我試圖把它的run_phase,但我得到了以下錯誤: 併發斷言不會在任務/類方法允許的。
我應該把它放在哪裏?
我要寫以下併發斷言在我的顯示器:我在哪裏可以在監視器中寫入併發斷言?
assert property (vif.cos == 1 |-> vif_out.y == vif.xi/sqrt(2));
我試圖把它的run_phase,但我得到了以下錯誤: 併發斷言不會在任務/類方法允許的。
我應該把它放在哪裏?
併發斷言在任務/類方法中是不允許的。你必須把它們放在一個模塊或類似的(接口/程序/檢查器)中。
請參閱IEEE Std 1800-2012,第14.16節(併發斷言)。
A concurrent assertion statement may be specified in any of the following:
- An always procedure or initial procedure as a statement, wherever these procedures may appear
- A module
- An interface
- A program
- A generate block
- A checker
就我個人而言,我只是將這段代碼移動到接口文件中。
您可以在模塊,接口,程序,時鐘塊或程序包內聲明併發斷言。請糾正我,如果有任何其他範圍,你可以聲明併發斷言。 –