関数引数マップ
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>