プラットフォームとカーネルへのロジック機能の分割
FPGA および SoC を含むデザインが複雑になってきたため、複数の開発者やチームが共同で開発することが多くなっています。Vitis ソフトウェア プラットフォームでは、アプリケーション開発とプラットフォーム開発をはっきりと分けることができます。プラットフォーム開発者には、ボード開発者、BSP 開発者、システム ソフトウェア開発者などが含まれます。
システム アーキテクトに不明なロジック機能があったとしても、それらをプラットフォームと一緒にパッケージしたり、アクセラレーション カーネルとして使用したりできます。システム ブロックをわけやすくするため、次のような一般的なガイドラインがあります。
- 関数をカーネルまたはプラットフォームとして分類する場合は、まずそれがアプリケーションに関連するロジックであるかどうかを考慮します。
- プラットフォームは、アプリケーションよりも安定している必要があります。アプリケーション関数の変更は、ソフトウェアとカーネルでのみ実行する必要があります。
- プラットフォームではハードウェアが抽象化されます。ハードウェア ボードを変更する場合、アプリケーションはまったく変更しないか、必要に応じて少しだけ変更するだけで、新しいハードウェアにターゲットを変更できるはずです。
-
Vitis ツールの制約および制限に従ってください。次に例を示します。
- Vitis アクセラレーション カーネルでサポートされるインターフェイスは、AXI MM、AXI4-Lite、および AXI4-Stream の 3 種類だけです。
- AXI カーネルでは、外部 I/O ピンがサポートされません。
次の表は、ロジック タイプ別に推奨されるプラットフォームとカーネルを示しています。
ロジック | プラットフォーム | カーネル |
---|---|---|
ハード プロセッサ (Zynq および Zynq UltraScale+ MPSoC の PS) | プラットフォームのみ | |
ソフト プロセッサ | プラットフォームを推奨 | RTL カーネルとしては可 |
I/O ブロック (外部ピン、MIPI、PHY など) | プラットフォームのみ | |
I/O ブロックに関連する IP (DMA for PCIe® 、MAC for Ethernet など) | I/O および IP 間のインターフェイスは AXI ではないので、通常はプラットフォーム | I/O ブロックと IP 間のインターフェイスは AXI なので、カーネルとしては可 |
AXI 以外のインターフェイスを使用する IP | プラットフォームのみ | インターフェイスを AXI MM または AXI4-Stream に変更できる場合のみ可 |
Linux ドライバー (VPSS など) を含む従来のメモリ マップド IP | プラットフォームのみ | |
HLS AXI メモリ マップド IP | プラットフォームでのみ可。制御ソフトウェアを記述する必要があります。 | カーネルを推奨。XRT によって制御されます。 |
Vitis カーネル レジスタの規格に従い、XRT から使用可能なアクセラレーション メモリマップド IP | カーネルを推奨 | |
Vitis ライブラリ | カーネルとしてのみ可 | |
AXI4-Stream インターフェイスを使用するフリーランニング IP | 可 | 可 |
参考資料
エンベデッド プラットフォームの詳細は、次を参照してください。