エンベデッド プラットフォームを作成する際の注意事項 - 2021.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-03-29
Version
2021.1 Japanese

プラットフォームとカーネルへのロジック機能の分割

FPGA および SoC を含むデザインが複雑になってきたため、複数の開発者やチームが共同で開発することが多くなっています。Vitis ソフトウェア プラットフォームでは、アプリケーション開発とプラットフォーム開発をはっきりと分けることができます。プラットフォーム開発者には、ボード開発者、BSP 開発者、システム ソフトウェア開発者などが含まれます。

システム アーキテクトに不明なロジック機能があったとしても、それらをプラットフォームと一緒にパッケージしたり、アクセラレーション カーネルとして使用したりできます。システム ブロックをわけやすくするため、次のような一般的なガイドラインがあります。

  • 関数をカーネルまたはプラットフォームとして分類する場合は、まずそれがアプリケーションに関連するロジックであるかどうかを考慮します。
  • プラットフォームは、アプリケーションよりも安定している必要があります。アプリケーション関数の変更は、ソフトウェアとカーネルでのみ実行する必要があります。
  • プラットフォームではハードウェアが抽象化されます。ハードウェア ボードを変更する場合、アプリケーションはまったく変更しないか、必要に応じて少しだけ変更するだけで、新しいハードウェアにターゲットを変更できるはずです。
  • Vitis ツールの制約および制限に従ってください。次に例を示します。
    • Vitis アクセラレーション カーネルでサポートされるインターフェイスは、AXI MM、AXI4-Lite、および AXI4-Stream の 3 種類だけです。
    • AXI カーネルでは、外部 I/O ピンがサポートされません。

次の表は、ロジック タイプ別に推奨されるプラットフォームとカーネルを示しています。

表 1. 推奨されるプラットフォームおよびカーネル
ロジック プラットフォーム カーネル
ハード プロセッサ (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