インテルのみ表示可能 — GUID: zdh1617668008694
Ixiasoft
インテルのみ表示可能 — GUID: zdh1617668008694
Ixiasoft
7.4. ルートポートBFM
基本的なルートポートBFMは、PCI Expressリンクで発行するトランザクションを要求するためのVerilog HDLタスクベースのインターフェイスを提供します。 ルートポートBFMは、PCI Expressリンクから受信した要求も処理します。 次の図は、ルートポートBFMの最も重要なモジュールを示しています。
これらのモジュールは、次の機能を実装します。
- BFMログ・インターフェイス (altpcietb_g3bfm_log.v): BFMログ機能は、一般的にフォーマットされたメッセージをシミュレーター標準出力およびオプションでログファイルに書き込むためのルーチンを提供します。エラー時にシミュレーションを停止するコントロールも提供します。このプロシージャーの詳細については、BFMログおよびメッセージ・プロシージャーを参照してください。
- BFM読み出し/書き込み要求関数、 altpcietb_bfm_rp_gen3_x8.sv:これらの関数は、PCI Expressの読み出しおよび書き込み要求に対する基本的なBFM呼び出しを提供します。
- BFMコンフィグレーション関数、altpcietb_g3bfm_configure.v:これらの関数は、PCI Expressリンクおよびエンドポイント・コンフィグレーション・スペースレジスターのコンフィグレーションを要求するためのBFM呼び出しを提供します。 これらの手順と機能の詳細については、BFM構成手順を参照してください。
- BFM共有メモリー、altpcietb_bfm_shmem.v: このメモリーは、次の機能を実装します。
- TX書き込み動作のデータを提供します。
- RX読み出し動作のデータを提供します。
- RX書き込み動作のデータを受信します。
- 受信したコンプリーションのデータを受信します。
- BFM要求インターフェイス、altpcietb_g3bfm_req_intf.v:このインターフェースは、altpcietb_g3bfm_rdwrおよびaltpcietb_g3bfm_configureプロシージャーまたは関数と、ルートポートRTLモデルとの間の低レベルのインターフェースを提供します。 このインターフェイスは、エンドポイントのBARレジスタにプログラムされたサイズと値を含む書き込み保護されたデータ構造を格納します。 また、内部BFM管理に使用されるその他の重要なデータも保存されます。
- altpcietb_g3bfm_rdwr.v:このモジュールには、低レベルの読み出しおよび書き込みタスクが含まれています。
- Avalon‑STインターフェイス、altpcietb_g3bfm_vc_intf_ast_common.v:これらのインターフェイスモジュールは、ルートポートインターフェイスモデルを処理します。 BFM要求インターフェイスから要求を受け取り、必要なPCIExpressトランザクションを生成します。 PCI Expressリンクから受信した完了を処理し、要求が完了するとBFM要求インターフェイスに通知します。 さらに、PCI Expressリンクから受信したすべての要求を処理し、必要な補完を生成する前に共有メモリからデータを保存またはフェッチします。
PIOのデザイン例では、 apps_type_hwtcl パラメーターは3に設定されています。このパラメーター値で実行されるテストは、次のように定義されています。 ebfm_cfg_rp_ep_rootport、 find_mem_bar と ダウンストリームループ。
- ルートポートのメモリー割り当て
- ルート・ポート・コンフィグレーション・スペース(ベース制限、バス番号など)
- エンドポイントコンフィグレーション(BAR、バスマスターの有効化、maxpayloadサイズなど)
altpcietb_bfm_rp_gen3_x8.svでのfind_mem_barおよびdownstream_loopの関数は、実装されたBARを返し、それぞれBARへのメモリー書き込みおよび読み取りアクセスを実行します。機能find_mem_bar と ダウンストリームループ の altpcietb_bfm_rp_gen3_x8.sv 実装されたBARを返し、BARへのメモリー書き込みアクセスと読み出しアクセスをそれぞれ実行します。