xclbinutil ユーティリティ

xclbinutil ユーティリティでは、xclbin のコンテント情報を作成、変更、およびレポートできます。

次の表は、使用可能なコマンド オプションをリストしています。

表 1. xclbinutil コマンド
オプション 説明
-h [ --help ] ヘルプ メッセージを表示します。
-i [ --input ]<arg> 入力ファイル名を指定します。xclbin をメモリに読み込みます。
-o [ --output ]<arg> 出力ファイル名を指定します。メモリ xclbin イメージをファイルに書き込みます。
-v [ --verbose ] 詳細/デバッグ情報を表示します。
-q [ --quiet ] レポート情報を最小限にします。
--migrate-forward xclbin アーカイブを新規バイナリ形式に移行します。
--remove-section<arg> 削除するセクション名。
--add-section<arg> 追加するセクション名。フォーマットは <section>:<format>:<file> です。
--dump-section<arg> ダンプするセクション。フォーマットは <section>:<format>:<file> です。
--replace-section<arg> 置換するセクション。
--key-value<arg> キー値のペア。フォーマットは [USER|SYS]:<key>:<value> です。
--remove-key<arg> xclbin アーカイブから指定したユーザー キーを削除します。
--add-signature<arg> 指定した xclbin イメージにユーザー定義のシグネチャを追加します。
--remove-signature xclbin イメージからシグネチャを削除します。
--get-signature xclbin イメージのユーザー定義のシグネチャが設定されていれば、それを返します。
--info アクセラレータのバイナリ コンテントをレポートします。含まれるのは、生成およびパッケージング データ、カーネル シグネチャ、接続、クロック、セクションなどです。
--list-names すべての可能性のあるセクション名をリストします (スタンドアロン オプション)。
--version この実行ファイルのバージョン。
--force 強制的にファイル上書きをします。

次に、ツールのさまざまな使用例を示します。

xclbin 情報をレポート
xclbinutil --info --input binary_container_1.xclbin
ビットストリーム イメージを抽出
xclbinutil --dump-section BITSTREAM:RAW:bitstream.bit --input binary_container_1.xclbin
ビルド メタデータを抽出
xclbinutil --dump-section BUILD_METADATA:HTML:buildMetadata.json --input binary_container_1.xclbin
セクションを削除
xclbinutil --remove-section BITSTREAM --input binary_container_1.xclbin --output binary_container_modified.xclbin

ユーザーのほとんどが、コンテントと xclbin の作成方法を必要とします。この情報は、--info オプションを使用して取得できます。xclbin、ハードウェア プラットフォーム、クロック、メモリ コンフィギュレーション、カーネル、xclbin の作成方法に関する情報がレポートされます。

次に、--info オプションを使用した xclbinutil コマンドの例を示します。

xclbinutil -i binary_container_1.xclbin --info

xclbin 情報

Generated by:           v++ (2019.1) on Tue Nov 20 19:42:42 MST 2018
Version:                2.1.1660
Kernels:                krnl_vadd
Signature:              Not Present
Content:                HW Emulation Binary
UUID:                   979eb04c-b99c-4cbe-9a67-ad07b89f303b
Sections:               BITSTREAM, MEM_TOPOLOGY, IP_LAYOUT, CONNECTIVITY, 
                        DEBUG_IP_LAYOUT, CLOCK_FREQ_TOPOLOGY, BUILD_METADATA, 
                        EMBEDDED_METADATA, DEBUG_DATA

ハードウェア プラットフォーム情報

Vendor:                 xilinx
Board:                  u200
Name:                   xdma
Version:                201830.1
Generated Version:      Vivado 2018.3 (SW Build: 2388429)
Created:                Wed Nov 14 20:06:10 2018
FPGA Device:            xcu200
Board Vendor:           xilinx.com
Board Name:             xilinx.com:au200:1.0
Board Part:             xilinx.com:au200:part0:1.0
Platform VBNV:          xilinx_u200_xdma_201830_1
Static UUID:            00194bb3-707b-49c4-911e-a66899000b6b
Feature ROM TimeStamp:  1542252769

クロック

使用可能な最大カーネル クロック周波数をレポートします。クロック名とクロック インデックスの両方が提供されます。クロック インデックスは、platforminfo ユーティリティでレポートされるものと同じです。

Name:      DATA_CLK
Index:     0
Type:      DATA
Frequency: 300 MHz

Name:      KERNEL_CLK
Index:     1
Type:      KERNEL
Frequency: 500 MHz

メモリ コンフィギュレーション

Name:         bank0
Index:        0
Type:         MEM_DDR4
Base Address: 0x0
Address Size: 0x400000000
Bank Used:    No

Name:         bank1
Index:        1
Type:         MEM_DDR4
Base Address: 0x400000000
Address Size: 0x400000000
Bank Used:    Yes

Name:         bank2
Index:        2
Type:         MEM_DDR4
Base Address: 0x800000000
Address Size: 0x400000000
Bank Used:    No

Name:         bank3
Index:        3
Type:         MEM_DDR4
Base Address: 0xc00000000
Address Size: 0x400000000
Bank Used:    No

Name:         PLRAM[0]
Index:        4
Type:         MEM_DDR4
Base Address: 0x1000000000
Address Size: 0x20000
Bank Used:    No

Name:         PLRAM[1]
Index:        5
Type:         MEM_DRAM
Base Address: 0x1000020000
Address Size: 0x20000
Bank Used:    No

Name:         PLRAM[2]
Index:        6
Type:         MEM_DRAM
Base Address: 0x1000040000
Address Size: 0x20000
Bank Used:    No

カーネル情報

xclbin のカーネルごとに、関数定義、ポート、およびインスタンス情報がレポートされます。

次は、関数定義のレポート例です。

Definition
----------
   Signature: krnl_vadd (int* a, int* b, int* c, 
			 int const  n_elements)

次に、ポートのレポート例です。

Ports
-----
   Port:          M_AXI_GMEM
   Mode:          master
   Range (bytes): 0xFFFFFFFF
   Data Width:    32 bits
   Port Type:     addressable

   Port:          M_AXI_GMEM1
   Mode:          master
   Range (bytes): 0xFFFFFFFF
   Data Width:    32 bits
   Port Type:     addressable

   Port:          S_AXI_CONTROL
   Mode:          slave
   Range (bytes): 0x1000
   Data Width:    32 bits
   Port Type:     addressable

次は、カーネルのインスタンスのレポート例です。


Instance:        krnl_vadd_1
   Base Address: 0x0

   Argument:          a
   Register Offset:   0x10
   Port:              M_AXI_GMEM
   Memory:            bank1 (MEM_DDR4)

   Argument:          b
   Register Offset:   0x1C
   Port:              M_AXI_GMEM
   Memory:            bank1 (MEM_DDR4)

   Argument:          c
   Register Offset:   0x28
   Port:              M_AXI_GMEM1
   Memory:            bank1 (MEM_DDR4)

   Argument:          n_elements
   Register Offset:   0x34
   Port:              S_AXI_CONTROL
   Memory:            <not applicable>

ツールの生成情報

ユーティリティでは、xclbin を生成するのに使用された v++ コマンド ラインもレポートされます。[Command Line] セクションには、使用された実際の v++ コマンド ラインが表示されます。[Options] セクションには、コマンド ラインで使用された各オプションが表示されますが、読みやすいように 1 行に 1 つのオプションが表示されます。

Generated By
------------
Command:       v++
Version:       2018.3 - Tue Nov 20 19:42:42 MST 2018 (SW BUILD: 2394611)
Command Line:  v++ -t hw_emu --platform /opt/xilinx/platforms/xilinx_u200_xdma_201830_1/xilinx_
			   u200_xdma_201830_1.xpfm --save-temps -l --connectivity.nk krnl_vadd:1
			   -g --messageDb binary_container_1.mdb 
			   --temp_dir binary_container_1 
			   --report_dir binary_container_1/reports --log_dir binary_container_1/logs 
                  --remote_ip_cache /wrk/tutorials/ip_cache 
                  -obinary_container_1.xclbin binary_container_1/krnl_vadd.o 
Options:       -t hw_emu
               --platform /opt/xilinx/platforms/xilinx_u200_xdma_201830_1/xilinx_u200_xdma_201830_1.xpfm
               --save-temps
               -l
               --connectivity.nk krnl_vadd:1
               -g
               --messageDb binary_container_1.mdb
               --temp_dir binary_container_1
               --report_dir binary_container_1/reports
               --log_dir binary_container_1/logs
               --remote_ip_cache /wrk/tutorials/ip_cache
			-obinary_container_1.xclbin binary_container_1/krnl_vadd.o 
==============================================================================
User Added Key Value Pairs
--------------------------
   <empty>
==============================================================================