カミは死んだ

Paper Is Dead ... osz

UVM Cookbook 眺めてみた - The Agent

はじめに

UVM Cookbookを眺めてみた、の続きです。今日はTestbenchのAgentの話です。

The Agent

  • UVMのagentはピンレベルのインタフェースを扱うuvm_componentsを集めたものだよ。
  • ピンレベルのトランザクションを生成したりモニタしたりするよ。
  • agentに関連するクラスはpackageを使って一つの名前空間で扱うよ。

  • agentは下記で構成するよ。

    • sequence_item ・・・ シーケンスアイテムを使ってピンレベルの動作を生成したりモニタで監視したりするよ。
    • driver ・・・ sequence_items をピンレベルに変換するよ。
    • monitor ・・・ ピンレベルの動作をsequence_itemsに変換してスコアボードとかに送るよ。
    • configuration object ・・・ agentのビルドや接続をどうするかを設定するコンテナオブジェクトだよ。
  • agentはdriverやmonitorがピンレベルにアクセスするvirtual interfaceのリファレンスとなるconfiguration objectを持つべきだよ。
  • configuration objectでagentのサブコンポーネントのビルド情報や、動作切り替え(エラー挿入、プロトコル変更)に対応すりょ。
  • configuration objectでdriverやmonitor、カバレッジやスコアボードのON/OFFをするよ。
  • agentが持つ他のクラスは、
    • Functional Coverage Monitor ・・・ プロトコル特有のカバレッジ情報を集めるよ
    • Scoreboard ・・・ スコアボード
    • A responder ・・・ 応答用のドライバ、というか、driverのスレーブバージョン。
    • Sequences ・・・ ユーティリティ的なSequence。というか、ドライバのAPI層。