カーネルを配置する場所を決めるには、次の 2 つの情報が必要です。
- ハードウェア プラットフォーム (.xsa) の各 SLR で使用可能なリソース。
- 各カーネルに必要なリソース。
これら 2 つの情報を使用すると、ターゲット プラットフォームの各 SLR にどのカーネルを配置するかを決定できます。
これらを計算する際は、使用可能なリソースの 10% がシステム インフラストラクチャで使用される可能性があることに注意してください。
- インフラストラクチャ ロジックは、カーネルが SLR 境界をまたぐ必要がある場合にカーネルを DDR インターフェイスに接続するのに使用できることがあります。
- FPGA では、リソースが信号配線にも使用されます。信号配線にもリソースが必要なので、FPGA で使用可能なリソースを 100% 使用することはできません。
使用可能な SLR リソース
リリースでサポートされるさまざまプラットフォームの各 SLR で使用可能なリソースについては、Vitis ソフトウェア プラットフォームのリリース ノート を参照してください。次は、ターゲット プラットフォームの例です。この例の詳細は、次のとおりです。
- SLR 記述は、どの SLR にスタティック領域やダイナミック領域が含まれるかを示しています。
- 各 SLR で使用可能なリソース (LUT、レジスタ、RAM など) がリストされます。
これにより、各 SLR でどのリソースが使用可能かどうかを判断できます。
エリア | SLR 0 | SLR 1 | SLR 2 |
---|---|---|---|
SLR 記述 | デバイスの最下部、ダイナミック領域専用。 | デバイスの中部、ダイナミック領域およびスタティック領域リソースで共有。 | デバイスの最上部、ダイナミック領域専用。 |
ダイナミック領域の Pblock 名 | pfa_top_i_dynamic_region_pblock _dynamic_SLR0 | pfa_top_i_dynamic_region_pblock _dynamic_SLR1 | pfa_top_i_dynamic_region_pblock _dynamic_SLR2 |
計算ユニット配置構文 | set_property CONFIG.SLR_ASSIGNMENTS SLR0[get_bd_cells<cu_name>] | set_property CONFIG.SLR_ASSIGNMENTS SLR1[get_bd_cells<cu_name>] | set_property CONFIG.SLR_ASSIGNMENTS SLR2[get_bd_cells<cu_name>] |
ダイナミック領域で使用可能なグローバル メモリ リソース | |||
メモリ チャネル、システム ポート名 | bank0 (16 GB DDR4) | bank1 (16 GB DDR4、スタティック領域) bank2 (16 GB DDR4、ダイナミック領域) |
bank3 (16 GB DDR4) |
ダイナミック領域で使用可能なファブリック リソースの概算 | |||
CLB LUT | 388K | 199K | 388K |
CLB レジスタ | 776K | 399K | 776K |
ブロック RAM タイル | 720 | 420 | 720 |
UltraRAM | 320 | 160 | 320 |
DSP | 2280 | 1320 | 2280 |
カーネル リソース
各カーネルのリソースは、System Estimateレポートからわかります。
System Estimate レポートは、ハードウェア エミュレーションまたはシステム実行のいずれかが終了したら、Assistant ビューに表示されるようになります。次は、そのレポートの例です。
図 1. システム見積もりレポート
- FF は、各 SLR のプラットフォーム リソースの箇所に記述された CLB レジスタのことです。
- FF は、各 SLR のプラットフォーム リソースの箇所に記述された CLB レジスタのことです。
- DSP は、各 SLR のプラットフォーム リソースの箇所に記述された DSP のことです。
- ブロック RAM は、各 SLR のプラットフォーム リソースの箇所に記述されたブロック RAM タイルのことです。
この情報は、カーネルごとに適切な SLR を指定するのに役立ちます。