0

私はsystemverilogとSVAを初めて使用し、prbsジェネレーターのアサーションを作成して、特定の配列(logic [6:0])を127クロックサイクル後の同じ配列と比較しようとしています。問題は、配列の比較に役立つとわかった演算子は同時実行を許可せず、同時実行を許可する演算子はビットのみで動作することです。

私がやりたかったことを例示しようとすると、次のようになります。

logic [6:0] seq
assert property (@posedge clock) (seq === #127 seq));
4

1 に答える 1

1

次のようなもの:

property DLY;
  logic MEM [6:0];
  ( 1'b1, MEM = seq ) |-> ##127 (seq_OUT == MEM);
endproperty

DLY_CHK : assert property (@(posedge clock) DLY);

トリックを行う必要があります。これは、ローカル変数( , )構文を使用して、ローカル変数 ( MEM) を割り当てます。これは、127 クロック サイクル後にチェックされます。

コンストラクトでは( , )、コンマの左辺が true の場合 (私の例では常にそうです)、コンマの右辺が実行されます。1'b1をある種の制御信号に変更したい場合があります。コンマの RHS には、次の 3 つのいずれかを配置できます。

  • ローカル変数への代入
  • ローカル変数のインクリメントまたはデクリメント
  • タスク、タスク メソッド、void 関数、void 関数メソッド、またはシステム タスクの呼び出し

IEEE 1800-2012のセクション 16.10 および 16.11 を参照してください。

于 2016-08-25T15:01:27.667 に答える