system-verilog-assertions

    1

    2答えて

    この質問はシステムのVerilogマクロに関するものです。 私はトップモジュール、サブモジュール、サブサブモジュールを持っています。サブモジュールでインスタンス化されたサブサブモジュールは、トップモジュールでインスタンス化されます。 私はサブモジュールにマクロ`define abcを定義する場合は、あなたのコンパイルコマンドで+define+...、defineマクロ意志を使用している場合を除き、

    0

    1答えて

    1ビットの変数/定義/列挙型の連結配列を生成する複数の関数があります。連結が起こるたびに、最終サイズが32ビット幅であることを確認したい。それが32ビットよりも小さいかまたはそれより大きい場合、エラーにフラグを立てる。 私は$ bits、$ sizeを試しましたが、変数を求めて、連結幅ではなく可変幅を提供しているようです。その目的を破る。 何か助けていただければ幸いです。 ありがとうございます!

    -1

    2答えて

    ###として記述された遅延を持つSystemVerilogコードを合成したいが、シンセサイザは遅延が合成不可能であるためシンタックスエラーを返す。私は合成される遅れを与えることができる方法はあるのか知りたいですか? たとえば、これは遅延のあるコードのSystemVerilogアサーションです アサーションプロパティ(req1 == 0)## 1(req1 == 1)## 1!(req2 == 1)

    1

    1答えて

    遅延付きSystemVerilogアサーションを正式な検証プログラムのinvarspecに変換したいと考えています。シンセサイザは、下のコード行で## 1の構文エラーを示します。 assert property ((req1 == 0) ##1(req1 == 1) ##1 !(req2 == 1) || (gnt1 == 0)); 検証され遅延が発生するプロパティがいくつかあります。私は現在

    0

    1答えて

    イベントが発生した場合、過去の "num_ticks"で何らかの信号がアサートされているはずであることを確認したいと思います。 例として、私が書いたプロパティは次のとおりです。 property test_past; @(posedge clk) $rose(gnt) |-> $past(req, num_ticks); endproperty ここでの問題はnum_ti

    0

    1答えて

    covergroup xxxx ; yyyy : coverpoint (zzzz) { bins sequence_1 = {0=>1=>2=>3}; bins sequence_2 = {0=>1=>2=>3=>4}; bins sequence_3 = {0=>1=>2=>3=>4=>5=>6=>7=>8=>9}; bins sequence_4 = {0=>1=>2=>3=>4

    2

    1答えて

    シーケンスのtriggeredプロパティを使用するアサーションがいくつかあります。これは、「Xが起きたとき、Yがいつか過去に起こったことがある」というフォームのプロパティをチェックするのに便利です。 簡単な例を見てみましょう:aは3サイクル前に高く、bは2サイクル前に高いものであった場合は三つの信号、a、bとc、cを考えると が高いだけ行くことを許されています。これは満たし、このプロパティをトレー

    0

    1答えて

    すべて、 私はSystemVerilogの制約を思いついています。 1から9のようなものに範囲内にあると、それらの値を制限するために、アレイ内のすべての要素を介してbyte my_array [0:8]ループ: restrict: assume property ( foreach(my_array[i]) my_array[i] inside {[1:9]} ); は、上記パーサに

    1

    1答えて

    でサブシーケンスが発生します。 "シーケンスAが発生した場合、そのシーケンス内でシーケンスBが発生します"。これどうやってするの? 私が主張使うことができると思っているだろう: assert property (@(posedge clk) (A |-> (B within A)); をが、これは私の例のために動作するようには思えません。 私がいることを読んだ:リニアシーケンスは、連続するクロ

    1

    2答えて

    シーケンスブロックが実行中に何らかの情報を表示したい。 例えば: sequence A; a; $display ("Signal A asserted here"); endsequence 私はこのコードを試してみましたが、次のエラーが発生しました:機能が期待されるところ タスク$表示が呼び出されます。 タスクコールを修正して再コンパイルしてください。 これをどのように克服できますか