問題タブ [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.
verilog - `define マクロのスコープ
この質問は、システム Verilog マクロに関するものです。
トップモジュール、サブモジュール、サブサブモジュールがあります。トップモジュールでインスタンス化されたサブモジュールでインスタンス化されたサブサブモジュール。
サブモジュールでマクロを定義する`define abc
と、内部`ifndef abc
に記述されたコードはトップモジュール/サブサブモジュールでコンパイルされますか?
system-verilog - 同様のシーケンスを持つシステム Verilog 機能カバレッジ ビンに問題はありますか?
- zzzz は、入力に応じて 0 から 3、4、9、17、18 または 19 までカウントするカウンター レジスタです。
この機能範囲をコーディングする際のアイデアは、特定の一連の遷移が発生した場合にビンのいずれか 1 つだけにヒットすることです。
たとえば、sequence_2 のように遷移が 0 から 4 になる場合、sequence_1 にも 0 から 3 のシーケンスが存在するため、sequence_1 にもヒットします。
ありがとう
arrays - 整数の配列が特定の範囲内になるように制約する
全て、
byte my_array [0:8]
たとえば、配列内のすべての要素をループして、値を 1 から 9 の範囲内に制限する SystemVerilog 制約を考え出そうとしています。次のようなものです。
上記はパーサーによって受け入れられません。助けてください!ループ内で 9 つの制約を生成できますが、もっと洗練されたものにしたいと考えています。したがって、以下は現在の回避策です。
ありがとう!
system-verilog - シーケンスが発生すると、System-Verilog アサーションでその中にサブシーケンスが発生します。
私が言いたいのは、「シーケンスA
が発生する場合、シーケンスはB
そのシーケンス内で発生する」ということです。これどうやってするの?
私はアサーションを使用できると思っていたでしょう:
しかし、これは私の例ではうまくいかないようです。
私はそれを読んだ:
線形シーケンスは、最初のブール式が最初のクロック ティックで true と評価され、2 番目のブール式が 2 番目のクロック ティックで true と評価されるという条件で、連続するクロック ティックの有限間隔に沿って一致すると言われます。最後のクロック ティックで true と評価される最後のブール式。
|->
しかし、最初にしたいときに、クロックティックが最後のクロックティックの反対側に渡されたと思われます。
私の特定の例は、十分な数の正の数を追加するとオーバーフローすることが予想されるアキュムレータA = (input == 1)[*MAX_SIZE]
です。B = (output == 0)
B
私はsystem-verilogに非常に慣れていないので、コードの他の部分が間違っている可能性がありますが、この例がどこでも行われたことはありません。
system-verilog - システム Verilog アサーション (SVA) に情報を表示するために、シーケンス ブロック内で $display ステートメントを使用するにはどうすればよいですか?
シーケンスブロックが実行されている間、いくつかの情報を表示したい。
例えば:
このコードを試しましたが、次のエラーが発生しました。
タスク $display は、機能が期待される場所で呼び出されます。タスク呼び出しを修正して再コンパイルしてください。
どうすればこれを克服できますか?