関数引数マップ

SDSoC システム コンパイラには、ライブラリの関数プロトタイプから、関数をインプリメントする IP ブロックで定義されているハードウェア インターフェイスへのマップが必要です。この情報は、関数マップ XML ファイルに含まれます。XML 属性リテラル、たとえば配列サイズは定数である必要があり、マクロにはできません (SDSoC 環境では XML ファイルのリテラルを解決するのにヘッダー ファイルでマクロが使用されません)。

次の情報が含まれます。
  • XML 名前空間: xmlns:xd="http://www.xilinx.com/xd" と定義する必要あり
  • 関数名: コンポーネントにマップされる関数の名前
  • コンポーネント リファレンス: IP-XACT VNLV (Vendor-Name-Library-Version) ID からの IP タイプの名前
    • 関数がプラットフォームに関連付けられている場合は、コンポーネント リファレンスはプラットフォーム名です。詳細は、概要 を参照してください。
  • C 引数名: 関数引数のアドレス表現 (例: x (スカラーを値で渡す) または *p (ポインターで渡す))
    注記: 関数マップの引数名は関数定義の引数と一致しており、同じ順序である必要があります。
  • 関数引数の方向: in (関数への入力引数) または out (関数への出力引数)。SDSoC 環境では現在のところ inout 関数引数はサポートされません。
  • バス インターフェイス: 関数引数に対応する IP ポートの名前。プラットフォーム コンポーネントでは、この名前はプラットフォーム インターフェイス xd:name であり、対応するプラットフォーム IP の実際のポート名ではありません。
  • ポート インターフェイス タイプ: 対応する IP ポート インターフェイス タイプ。 現在のところ、aximm (スレーブのみ) または axis である必要があります。
  • アドレス オフセット: aximm スレーブ ポートにマップされる引数に必要な 16 進数アドレス (0x40 など) で、定数である必要があります。
  • データ幅: データごとのビット数で、定数である必要があります。
  • 配列のサイズ: 配列引数のエレメント数で、定数である必要があります。

次に、samples/fir_lib/build からの Vivado FIR Filter Compiler IP コンフィギュレーション用の関数マップを示します。

<!—- FILE: fir.fcnmap.xml -->
<?xml version="1.0" encoding="UTF-8"?> 
<xd:repository xmlns:xd="http://www.xilinx.com/xd"> 
    <xd:fcnMap xd:fcnName="fir" xd:componentRef="fir_compiler"> 
        <xd:arg xd:name="X" 
            xd:direction="in" 
            xd:portInterfaceType="axis" 
            xd:dataWidth="8" 
            xd:busInterfaceRef="S_AXIS_DATA" 
            xd:arraySize="32"/> 
        <xd:arg xd:name="Y" 
            xd:direction="out" 
            xd:portInterfaceType="axis" 
            xd:dataWidth="16" 
            xd:busInterfaceRef="M_AXIS_DATA" 
            xd:arraySize="32"/> 
        <xd:latencyEstimates xd:worst-case="20" xd:average-case="20" xd:best-case="20"/> 
        <xd:resourceEstimates xd:BRAM="0" xd:DSP="1 xd:FF="200" xd:LUT="200"/> 
    </xd:fcnMap> 
</xd:repository>