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]
設定オプション
| オプション | 有効な値 | 説明 |
|---|---|---|
-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 制御プロトコル オプション:
|
-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 の指定:
|
-target-family
<board_family> |
該当なし | zynq またはzynquplus などのターゲット ボード ファミリを指定します。 |
-target-os<name> |
該当なし | 次のようにターゲット オペレーティング システムを指定します。
|
-verbose |
該当なし | STDOUT に詳細出力を表示します。 |
-version |
該当なし | STDOUT に 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 を使用するようにしてください。