PCI Express*向け F タイル Avalon® ストリーミングのインテル® FPGA IPユーザーガイド

ID 683140
日付 12/17/2021
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

7.4. ルートポートBFM

基本的なルートポートBFMは、PCI Expressリンクで発行するトランザクションを要求するためのVerilog HDLタスクベースのインターフェイスを提供します。 ルートポートBFMは、PCI Expressリンクから受信した要求も処理します。 次の図は、ルートポートBFMの最も重要なモジュールを示しています。

図 67. ルートポート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_rootportfind_mem_barダウンストリームループ

関数ebfm_cfg_rp_ep_rootportaltpcietb_g3bfm_configure.vで説明されています 。この機能は、リンク上のルートポートとエンドポイントを設定するために必要な手順を実行します。含まれるもの:
  • ルートポートのメモリー割り当て
  • ルート・ポート・コンフィグレーション・スペース(ベース制限、バス番号など)
  • エンドポイントコンフィグレーション(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へのメモリー書き込みアクセスと読み出しアクセスをそれぞれ実行します。