M_AXI チャンネルは、単一の AXI インターフェイスにマップされたポインター引数ごとに別々のチャンネルをインプリメントしており、別々のアダプターを必要としません。
図 1. m_axi アダプター
これには、次のような利点があります。
- カーネルが使用する M_AXI アダプターの数は少なく、ハードウェア リソースの消費も少なくなります。
- データフロー領域内では、1 つの AXI インターフェイスにマップされた複数のポインター引数を使用できます。
- 各ポインター引数に一意の AXI ID を使用すると、バースト インターリーブが可能となり、AXI バス帯域幅の使用率を高めることができます。
デザインでこの機能をイネーブルにするには、次の 2 つの方法があります。
-
インターフェイス コンフィギュレーション で説明するように、
syn.interface.m_axi_auto_id_channel=true
コンフィギュレーション コマンドを使用してm_axi
インターフェイスでグローバルにイネーブルにします。これがイネーブルの場合、HLS ツールは自動的にm_axi
アダプターにチャンネルを追加します。 -
syn.directive.interface で説明したように、INTERFACE プラグマまたは指示子の
channel
オプションを使用して、特定のm_axi
インタフェースでイネーブルにします。