問題タブ [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.
system-verilog - エラー: (vlog-13069) cad_property.sv(5): 「ケース」の近く: 構文エラー、予期しないケース
** エラー: (vlog-13069) cad_property.sv(5): 「ケース」付近: 構文エラー、予期しないケース。
disable_iff なし ** エラー: (vlog-13069) cad_property.sv(3): "case" の近く: 構文エラー、予期しないケース、無効化が必要です。
system-verilog - SVA アサーションにおける連鎖単項演算子の優先順位
ツールについては、SystemVerilog アサーションを正しく解析しようとしていますが、特定の式の正しい優先順位について混乱しています。SystemVerilog 標準には、優先順位としてnot
> until
>と記載されている優れた表がありますalways
。しかし、これが単項演算子の代替でどのように機能するかはよくわかりません。
たとえば、not
は よりも優先順位が高いためuntil
、明らかに次のようにする必要があります。
until
は よりも優先順位が高いため、always
明らかに次のようにする必要があります。
しかし、以下を解釈する適切な方法は何ですか?
2 つの解釈が正しいと想像できます。
not always (r1 until r2)
、until
よりも強く結合するためalways
、または(not always r1) until r2
not
よりも強く結合するためuntil
NCVerilog 15.10-p001 は最初の解釈を使用しているようです。私が見逃したかもしれないこれが正しいかどうかを議論する標準のどこかにありますか? NCVerilog の優先順位規則を適切な文法にエンコードするのは難しいようです...
system-verilog - 同時アサーション - UVM テストの依存関係
UVM テストベンチから DUT に対して何らかのレジスタ書き込みが実行された後に開始される同時アサーションを書き込みたいと考えています。
uvm_test_topは実行時に作成され、アサーション入力はコンパイル時に設定されるため、これによりクロス モジュール参照のコンパイル エラーが発生します。
そのため、このためのいくつかの回避策を見つけました。
次のように、グローバル空間でいくつかの一時変数とフラグ変数を宣言します。
ここでは、2 つのグローバル空間変数が使用されています。これは避けた方がよいでしょう。
いずれにせよ、これらの変数を一番上に取り、テストで $root によってそれらにアクセスできます。ただし、再利用性とパッケージの問題のために $root を使用することは好みません (最上位の名前が変更された場合、またはアサーション用の別のモジュールが作成された場合、テストでエラーが発生します)。
これを達成するための他の良い方法はありますか?アサーションの実行を遅らせることができるように。1timestamp 遅らせても、uvm_test_top に評価されます (クレイジーに聞こえます..!!)。
また、インターフェイス信号を使用したくありません。DUT はプロトコルに依存しないため、「ifdefs. (実はこれも別の回避策です!!)
どんな助けでも大歓迎です。
assert - active_clk が High のときにクロックが供給されていることを確認する SystemVerilog アサーション
私が DUT を検証している設計仕様では、active_clk 信号が High のときにワード クロックとビット クロックが生成されるという要件があります。私は SVA の使用経験がほとんどないので、もう少し経験のある人が正しい方向に向けてくれるか、解決策を提供してくれることを期待していました。
verilog - 時間 0fs での SystemVerilog 即時アサーション エラー
2 つのレジスタが常に同じ値にプログラムされていないことをテストするために、即時アサーションを追加しました。すべての値が初期化されておらず、「x」であるため、時間 0fs でエラーが発生します。
このアサーションを最初だけきれいに無効にする方法はありますか? 「x」も比較する比較を使用できますreg !== 1'b1
が、0fs の後の「x」状態をすべてキャッチしたいと考えています。