2017-09-04 11 views
0

UVMでは、テストベンチはDUTの内部レジスタへの可視性がありません。それでは、なぜUVMテストベンチ・アーキテクチャでのレジスタ・モデルのミラーリングと作成が行われていますか?それは何の目的ですか?UVMのレジスタモデルの目的は何ですか?

テストベンチでは、ステータスビットなどが更新されたかどうかは、入力出力ポートのみにアクセスできるため、DUT内で更新されるかどうかはわかりません。

+0

アクセシビリティについて間違った前提があります。テストベンチからDUTのレジスタまたはネットにアクセスできます。 – Serge

+0

テストベンチでレジスタモデルを使用しないとどのような影響がありますか? DUTレジスタのリファレンスモデルを持っているだけですか、それとも他の目的がありますか? –

+0

@Sergeしたがって、DUTの入力出力ポートから、内部レジスタのすべての書き込みおよび読み出し値にアクセスできますか? –

答えて

1

DUTは、ポート経由で内部レジスタに直接アクセスすることはできませんが、一部のレジスタはインターフェイスプロトコル経由でアクセスできます。レジスタモデルは主にこれらのレジスタを対象としています。しかし、バックドアを介してデザイン内のレジスタにアクセスすることができます(セットアップとメンテナンスのためにはもっと多くの作業が必要です)。

ミラーは、テストベンチと思う値をDUTのレジスタ値として保存します。 .mirror()を実行すると、レジスタモデルはレジスタ値(実際)とミラー(予想)を比較します。

ステータスビットは、しばしば予測するのが複雑です。物事を簡素化するために、フィールド(またはレジスタ)の比較を.set_compare(UVM_NO_CHECK)でオフにすることができます。フィールドレベルでチェックを無効にすると、同じレジスタ内の他のフィールドは引き続き比較されます。

あなたのクラブメッドの場合は、その後、あなたは、このようなレジスタのコールバックとしてや.predict.mirrorメソッドを上書きするuvm_reguvm_reg_fieldクラスを拡張するオプションを持っているか、より複雑な予測/ステータス・ビットにミラーの比較をしたいです。

+0

この場合、テストベンチから見えるレジスタはなく、UVMレジスタモデルを使用していますか? –

+0

登録モデルは常にバックドアアクセスを使用しますか?私はこの投稿から見ることができますhttps://stackoverflow.com/q/32454818/6641380 –

+0

フロントドアとバックドアの両方がサポートされています。デフォルトは通常フロントドアです。 https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1d/html/files/reg/uvm_reg-svh.html#uvm_reg.mirror – Greg

1

UVM RALそれは、デザインのレジスタを読み書きするための高レベルの抽象化を提供し、いくつかの利点

  1. を提供します。これは、レジスタのRTLが別の記述からコンパイルされている場合に特に便利です。すべてのアドレスとビットフィールドは、人間が判読可能な名前に置き換えることができます。
  2. あなたのテストは、物理バスインタフェースから独立して記述することができます。読み書きメソッドを呼び出すだけです。
  3. ミラーリングされたレジスタを使用すると、独自のミラー変数のセットを追加することなく、または余分な読み取り操作を実行しなくても、DUTの状態/構成を簡単に知ることができます。
+0

これらの点に言及したとき、彼らは正面玄関またはバックドアアクセスを指していましたか? –

+0

また、私は、テストベンチDUT間のあらゆる相互作用が物理的なインターフェースレベルで起こるという考えを持っていました。その理由は、私がどのようにRALが絵にあるのかを知りたかったからです。しかし今、私の前提は部分的に間違っていたようです。 –

+0

これらの利点には、フロント/バックドアアクセスがあります。 UVMテストベンチを抽象化するレベルをトランザクションに引き上げようとしています。ほとんどの信号が特定のクロックに結びついているため、テストベンチからのタイミングに大きな変化はありません。 –

関連する問題