NIは、特定のハードウェアターゲットに限り、Xilinx IP用のプロトコルであるAXI (Advanced eXtensible Interface) を提供します。AXIプロトコルとは、高パフォーマンス、高周波数のアプリケーションでIPの機能ブロックを相互接続する業界標準のバスインタフェースです。AXIプロトコルには、AXI4、AXI4-Lite、およびAXI4-Streamの3つのタイプがあります。

メモ LabVIEW FPGAモジュールにおけるAXIプロトコルのサポートはターゲットシリーズによって異なります。Xilinx IP関数パレットは、使用するFPGAデバイスがサポートするIPのみを表示します。インタフェースおよびFPGAデバイスのサポートに関する情報は、IPのデータシートを参照してください。

AXIと4線式IPをFPGA VIでインタフェース接続する

AXIプロトコルは、信号接続方法の点においてLabVIEW4線式ハンドシェイクプロトコルに似ています。AXIプロトコルとLabVIEW4線式ハンドシェイクプロトコルの主な違いは、シングルサイクルタイミングループでIPを相互接続する際の信号の命名規約と配置です。

Xilinx IPのAXI信号は、出入力端子に一般的な命名規則、m/s + プロトコル + 信号名 + tdata/tvalid/tready を使用します。ここで m はマスタブロック、または値を生成するノードを表し、s はスレーブブロック、または値を使用するノードを表します。たとえば、m_axis_signal_tvalid という信号名では、m はマスタ、axis はAXI Stream、signal は信号名、tvalid は有効をそれぞれ示します。

NIで作成したIPのAXI信号は、Xilinx IPとよく似た命名規則を使用しますが、「axis」部分がなく、m/s + 信号名 + tdata/tvalid/tready となります。

AXI/AXI相互接続

以下の図は、2つのAXI4-Stream IPブロックの相互接続の概念的構成を示しています。

右へ流れる信号は、4線式ハンドシェイクプロトコルの信号とよく似た役割を果たします。この信号は、先に実行するブロックからのデータの有効性を後続のブロックに通知します。たとえば、入力信号xと出力信号yを持つ2つの簡単なブロックを想定した場合、 m_y_tdata出力に有効なyデータが含まれている場合はいつも、IPブロック1m_y_tvalid出力はTRUEになります。

LabVIEW4線式ハンドシェイクプロトコルとAXI Streamプロトコルの主な違いは、処理チェーンに先行するワイヤで表されるフィードバック信号の意味にあります。AXI信号は現在のサイクルの準備状態を先に実行するブロックに通知し、4線式信号は次のサイクルの準備状態を先に実行するブロックに通知します。AXIインタフェースでは、ブロックがtready信号をアサート解除して、先行のブロックに自身が現在のクロックサイクルでデータを受け取れないことを伝えます以下のタイミング図で、このシナリオの最初の数回のサイクルを示します。tdataの値が、tready信号が再アサートされるまで、保持されることに注意してください。

上のタイミング図には、その後のサイクルでtvalid信号をアサート解除して、マスタがどのように転送を中断できるかも示されています。

LabVIEWのシングルサイクルタイミングループでAXI IPを相互接続した場合、IPブロック1 (AXI) の出力信号は、順方向経路でのレジスタとして動作するフィードバックノードを介し、後続のIPブロック2 (AXI) に接続します。フィードバックノードは、s_x_tready信号がアサート解除されたときに、スレーブブロックで新しいデータを受け入れる準備ができるまで、移動中のデータを一時的に保管します。

AXI4-Streamでは、スレーブブロックの準備が完了するまで待機してから有効なデータを生成することはできません。AXIプロトコルに準拠するブロックを実装する場合、関連したtready信号のアサート解除が保持されている限り、ブロックでは繰り返し同じ出力を (有効であれば) 生成する必要があります。さらに、以下の図に示すように、ハンドシェイクプロセスを準備するために、ORゲートも必要になります。

4線式/AXI相互接続

4線式/AXI相互接続は、レジスタの使用においてAXI/AXI相互接続に似ています。4線式IPブロックの1つの信号をAXI IPブロックに接続する方法を以下の図に示します。

AXI/4線式相互接続

AXI-4線式相互接続は、レジスタ使用における4線式-4線式相互接続に似ていますが、以下の図に示すとおり、後続ブロックの入力準備が完了した場合にのみ、ANDゲートが提供される有効データの4線式プロトコルの要件に従っている必要があります。