テストベンチには、駆動する必要があるインターフェイスがあります。インターフェイスは 2 つの異なるモードで駆動でき、各モードには独自のドライバー プロトコルとトランザクション タイプがあります。
これまでのところ、両方の uvm_agents を個別に設計しました。ここで、実行中のテストケースに応じて、どちらか一方を入れ替える方法が必要です。また、UVM の哲学に最も適した方法でこれを行いたいと考えています。
私が考えつく最善の方法は、次のとおりです。私の uvm_env で、「ModeA」または「ModeB」のいずれかを示すテストから uvm_db_config パラメータを取得し、それに基づいて、エージェントの is_active を「UVM_ACTIVE」および「UVM_PASSIVE」に設定します。 「適当に。
この方法について意見をいただきたいです。
私に提案された方法は、共通の uvm_agent を保持し、構成に基づいて uvm_driver/uvm_sequencer をインスタンス化することでした。見た目が面倒なので、この方法についてはよくわかりません。