1

テストベンチの変数は、ほとんどの場合、bitではなくとしてインスタンス化されますreg。しかし、bit2 つの状態変数 (0 と 1) だけで、reg4 つの状態変数 (0,1,x と z) です。なぜ人々bitはテストベンチ変数として使用したのですか? 古いプロジェクトを引き継ぎましたが、すべてのテストベンチ変数はbit. したがって、チェッカーが次のようなチェックを実行するとき

if (data_rtl === data_expected) // reg[63:0] data_rtl, bit[63:0] data_expected

data_expected 側で X チェックを実行できませんでした。確かに を使用するのが一般的bitですが、なぜ人々はこれを行っているのでしょうか? systemverilogでのbitoverの利点は何ですか?reg

4

3 に答える 3

3

通常、テストベンチのスティミュラス生成および予測コンポーネントに 4 ステート タイプは必要ありません。2 ステート シミュレーションにはメモリ オーバーヘッドが少ないという利点があり、データ キャッシュのサイズが事実上 2 倍になります。基本的には、テストベンチと DUT の間のインターフェイスで適切なタイミングで X をチェックする必要があるだけです。設計における X の生成と伝播は、それ自体が幅広いトピックです。ほとんどのシミュレーションは、設計のさまざまな領域の X に関しては、楽観的すぎるか悲観的すぎるため、非常に不正確です。このような状況では、静的分析 (タイミングまたはフォーマル) ツールを使用する方が良い場合があります。

于 2016-04-25T21:37:39.307 に答える
1

ある程度、あなたはあなた自身の質問に答えました。bit は 2 状態変数です。多くの検証テストベンチ アプリケーションでは、x と z の値は必要ありません。余分な 2 つの状態の計算/メモリ オーバーヘッド、および変数が z または x に設定される可能性に関する追加の懸念は必要ないため、使用されません。

于 2016-04-25T12:50:20.227 に答える
0

ビットとレジスタにはいくつかの重要な違いがあります

  • reg4 つの状態変数 (1 または 0 または X または Z、デフォルトは X) ですbitが、2 つの状態変数 (0 または 1、デフォルトは 0) です。

さて、それは私たちに何をもたらしますか。

  • 4 状態変数はハードウェアに必要です。ハードウェアでは、ワイヤの電圧レベルとドライバに応じて、ワイヤは論理値 1 または 0 または X または Z を持つことができます。したがって、ハードウェアの観点からreg使用する必要があります。

  • しかし、刺激の観点から言えば、X または Z 状態を必要としないことがよくあります。これは、未知 (X) またはドライバー (Z) なしでワイヤを駆動することは決してないためです。したがって、その場合、bit2 つの状態のみを含むビットを使用できます。

あなたが違いを得たことを願っています

于 2016-05-01T15:28:14.603 に答える