問題タブ [system-verilog-assertions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
555 参照

system-verilog - システム Verilog アサーション: 反復演算子での reg 値の使用

私はこのようなことをしようとしています:

cこれは「定数」ではなく、レジスタのいくつかのビットからの値です。例:reg[4:0]一度だけ書かれています。チェックはb、a が "c" サイクル数ハイの場合にのみアサートされるかどうかを確認することです。

ただし、SVA は次のような変数を受け入れません[*reg[4:0]]。何か案は??

0 投票する
3 に答える
637 参照

system-verilog - リセットを長時間保持するためのアサーション

アサーションは常にクロックの n サイクル数に関連していることがわかります。タイムスケールで期間を確認する方法はありますか? 意味

リセットが 100ns 以下保持されているかどうかを確認したいとしましょう。このための assert ステートメントをどのように記述すればよいでしょうか?

0 投票する
1 に答える
652 参照

system-verilog - システム Verilog アサーションでプロパティを書き込む方法は?

動作を正式に検証するために、SVA にプロパティを記述したいと考えています。

これが私がしたいことです:

sig1 が落ちた後、残りの評価サイクル中に LOW のままになるように、上記のプロパティを書き換えるにはどうすればよいですか?

注: sig1 をディセーブル iff (sig1) として配置したくありません。

0 投票する
0 に答える
674 参照

functional-programming - VHDL 関数呼び出し: 外部参照が未解決のままです

アーキテクチャ内で次のように機能します。

この関数が期待どおりに動作することを確認したいと思います。だから私は私のSVAファイルに同様の(正確ではない)関数を書きました。

しかし、エラーが発生します:「外部参照関数は未解決のままです」

アサーション ファイルに外部参照を追加するにはどうすればよいですか?

0 投票する
2 に答える
401 参照

system-verilog - 正式な検証のためのプロパティの書き方は?

iff sig1=1'b1最初のクロック サイクルの後にプロパティを無効にしたい。

ハイからローへの移行sig1が私のトリガー条件です。私が行うと、disable iff(sig1)トリガー条件が満たされなくなります。

またthroughout、正式な検証者の有効化シーケンスと満足シーケンスの両方で使用することはできません。

どうすればできますか?ありがとう!

0 投票する
1 に答える
188 参照

verilog - 単純な波形の SVA プロパティ

波形:-

波形

私はプロパティを次のようにしました:

しかし、この特性はこの波形ではうまく機能しません。"c" の前に 3 つ以上の "b" があり、最初の "b" の後の "c" では機能しません。

「a」信号の後に2つの「b」だけを通過させ、「2つのc」を通過させて、その間に任意の量のギャップがあるプロパティが必要です。

手伝ってくれてありがとう。

0 投票する
1 に答える
620 参照

system-verilog - システム Verilog アサーション ビット ベクトル

現在のサイクルの信号 'a' が "0110" (バイナリ) に等しい場合、次のサイクルの信号 'b' は 31 より大きくない (0 と 31 の間である必要があります。その幅は 32) 誰も私がアサーションを書くのを手伝ってくれる?! 下手な英語ですみません。

0 投票する
1 に答える
13654 参照

system-verilog - System Verilog アサーションでの $past の使用

変数の現在の値が「1」であるかどうかを確認したい場合、変数の前の値は「0」である必要があります。System Verilog アサーションで $past を使用しています。ここでは、cal_frame_mode=1 かどうかを確認しています。これは、前の値の cal_frame_mode=0 です。私のコードは以下です。ただし、アサーションの失敗が見られます。波形をチェックインすると、正しく動作しています。アサーションは、最初のチェックの 2 クロック後にフラグを立てます。1 クロック サイクルだけチェックした後、このアサーションを停止するにはどうすればよいですか?

0 投票する
4 に答える
2887 参照

system-verilog - 連続データ入力のための SVA 仮定/表明

私はアサーション ベースの検証の初心者であり、それが適切に行われる方法を学ぼうとしています。systemverilog + assertions に関する構造と技術的な詳細に関する多くの情報を見つけましたが、現実の世界で物事が実際にどのように行われるかについてのある種の「クックブック」資料をまだ見つけていません。

質問と制約:

  • デザインには、 data、valid、およびid入力を含むデータ入力バスがあります。
  • 1データ「パッケージ」は3サンプル
  • チャネルnの後には、チャネルn+1からのデータが常に存在します。
    • チャネル ID は、最大の ID が送信された後にラップされます
  • データ バイト間に任意の数の clk ティックを含めることができます
  • 以下は、チャネル ID を使用した単純でうまくいけば正しいタイミング図です。

    ここに画像の説明を入力

では、最小限のコードでこれを行うにはどうすればよいでしょうか。素敵できれい。以前は、データを駆動するダミーの Verilog モジュールを作成しました。しかし、仮定プロパティを使用してチャネル ID を制約することはできますが、それ以外の場合は、正式なツールが私の設計にブレーキをかけようとする自由な手は残しておいてください。

スターター向けのシンプルなテンプレートは次のとおりです。

問題は、上記のような仮定/アサーションがすべてのデータサンプルでトリガーされ、時間的に重複する並列スレッドを作成する傾向があることだと思います。