sdx_pack ユーティリティ

SDSoC™ ツールには、C 呼び出し可能な IP ライブラリを作成したり、sds++ システム コンパイラを使用して RTL IP を SDSoC アプリケーションにリンクするための sdx_pack コマンド ライン ユーティリティが含まれます。

使用法

sdx_pack -header <header.h/pp> -ip <component.xml> [-param <name>="value"] [configuration options]

設定オプション

表 1. 設定オプション
オプション 有効な値 説明
-add-ip-repo ファイル システムのリポジトリへの有効パス。 ライブラリに IP リポジトリを追加します。
-header <header.h/.hpp> 関数宣言を含むヘッダー ファイル。使用できる最上位ヘッダー ファイルは 1 つだけ。 必須です。関数プロトタイプを含むヘッダー ファイル
-ip <component.xml> 該当なし 必須です。Vivado® IP インテグレーター でパックされた IP
-param <name>="value" 該当なし IP パラメーター値
-func <function_name> 該当なし 必須です。関数名
-control <protocol>[=<port>[:offset]] 該当なし 必須です。IP 制御プロトコル オプション:
  • AP_CTRL
  • AXI
  • none
-lib <libname> ライブラリ名を指定。 指定したライブラリ名を使用。指定しない場合は、デフォルトで lib<header>.a を作成。
-map <sw_name>=<hw_name>:direction[:<offset>[<aximm_name>:<direction>]] 該当なし 必須です。IP ポート マッピングに対するソフトウェア関数引数: <SW_Name>=<HW_Name>:direction[:offset[<aximm_name>:direction]
-target-cpu <cpu_type> 該当なし ターゲット CPU の指定:
  • cortex-a9
  • cortex-a53
  • cortex-r5
  • microblaze
-target-family <board_family> 該当なし zynq またはzynquplus などのターゲット ボード ファミリを指定します。
-target-os<name> 該当なし 次のようにターゲット オペレーティング システムを指定します。
  • linux (デフォルト)
  • standalone (ベアメタル)
-verbose 該当なし STDOUT に詳細出力を表示します。
-version 該当なし STDOUTsdx_pack のバージョン情報を表示します。
--help 該当なし このコマンドに関する情報を表示します。
sdx_pack --help

例:

sdx_pack -header count.hpp -ip ../ip/component.xml -func count \
-control AXI=S_AXI:0 -target-cpu cortex-a9 -map start_value=S_AXI:in:0x8 -
map return=S_AXI:out:4 -target-os standalone

説明:

  • count.hpp は、count 関数の関数プロトコルを定義するヘッダー ファイルを指定します。
  • IP の component.xml sdx_pack -header count.hpp -ip ../ip/comp では、SDx 用にパッケージされた Vivado IP が生成されます。
  • -control では、IP 制御プロトコルを指定します。
  • –map では、ソフトウェア関数から Vivado IP のポートへの引数のマッピングを指定します。上記の例では、start_value および return 引数を IP ポートにマップするために、このオプションが 2 回使用されています。
  • –target-cpu オプションでは、ターゲット オペレーティング システムを指定します。
sdx_pack ユーティリティでは、次が自動的に生成されます。
  • <function_name>.o: 指定した関数用にコンパイルされたオブジェクト コード。このファイルは、.Xil/sdx フォルダーに生成されます。
  • <function_name>.fcnmap.xml: IP ポートの関数引数へのマップ。このファイルは、.Xil/rtl フォルダーに生成されます。
  • <function_name>.params.xml: IP パラメーター。このファイルは、.Xil/rtl フォルダーに生成されます。
  • <function_name>.cpp: エントリ ポイントを含んだ C++ ファイル。このファイルは、.Xil/rtl フォルダーに生成されます。
注記: arm-none-eabi-ar のような適切な GNU ツール チェーン ユーティリティを使用して sdx_pack でコンパイルされたオブジェクト コード (.o) のアーカイブ ファイル (.a) を作成する必要があります。これにより、関数がランタイム中に適切な IP にリンクできるようになります。1 つの IP にマップされる関数が複数ある場合、現在のところ sdx_pack のサポートには制限があるので、sdslib を使用するようにしてください。