2016-07-15 5 views
0

私はいくつかのインターフェイスのための検証IPを書いていると面白い1つの項目に直面して、私は何とかOOPの基本だと思う。
ドライバクラスの機能がオーバーライド

私のドライバでは、私は機能があります。 configMaster:DUTに固有です。また、VIPユーザーはその機能を無効にすることができます。今私はユーザーがそれを行うための仕組みを提供したいと思います。
私はVIPのドライバクラスの機能をオーバーライドする最良の方法は、

  1. ユーザーが拡張クラスのユーザーにドライバクラス
  2. は、彼が望んでいるドライバーのメソッドを再定義拡張し、以下のことになると思います。ユーザーがそれを上書きしたくないいくつかのメソッドがある場合、それは問題ありません。
  3. 使用して工場出荷時のオーバーライドメソッドのユーザーは、私は、シミュレーションを実行しているユーザーに、ここで毎回好きではない事は、工場出荷時のオーバーライド・コマンドを指定する必要があり

拡張user_driverクラスでドライバクラスを上書きします。

この正しい方法はあなたの意見を共有してください。他の方法はありますか?

おかげ
ハイク・ナハペト

答えて

1

ステップ3は常に必須ではありません。クラスをオーバーライドした後、ユーザーは自分のTBで派生クラスを直接使用できます。 TBが新たに構築されている場合、またはユーザーがこのIPを新しいコンポーネントとして既存のTBに統合している場合は、ほとんどの場合そうです。

VIPが既にTBに存在していて、新しい機能セットをユーザに提供している場合や、VIP自身が提供する基本クラスをインスタンス化して使用するようなオーバーライド機能を使用する場合は、オーバーライドメカニズムは後で、ユーザはset_type_override_by_type機能を使用することができます。

この関数は基本テストに埋め込むことができ、派生したすべてのテストは、テストケースごとにコマンドラインで明示的に指定する必要はなく、ユーザーが導出したuse vipクラスを暗黙的に使用します。 タイプオーバーライド機能には4つの味があります。 http://www.testbench.in/UT_06_UVM_FACTORY.html

機能があまりにもベースENVで使用することができ、ユーザは、クラスを有効にするオーバーライド機構のために作成される前に型オーバーライド関数が呼び出されることを保証しなければなりません。

+0

ありがとうございます! – haykp

+0

あなたは歓迎です:) –

関連する問題