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

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

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

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

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

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

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

ロジック プラットフォーム カーネル
ハード プロセッサ (Zynq および Zynq UltraScale+ MPSoC の PS) プラットフォームのみ  
ソフト プロセッサ プラットフォームを推奨 RTL カーネルとしては可
IO ブロック (外部ピン、MIPI、PHY など) プラットフォームのみ  
IO ブロックに関連する IP (DMA for PCIe、MAC for Ethernet など) IO および IP 間のインターフェイスは AXI ではないので、通常はプラットフォーム IO ブロックと IP 間のインターフェイスは AXI なので、カーネルとしては可
AXI 以外のインターフェイスを使用する IP プラットフォームのみ インターフェイスを AXI MM または AXI4-Stream に変更できる場合のみ可
Linux ドライバー (VPSS など) を含む従来のメモリ マップド IP プラットフォームのみ  
HLS AXI メモリ マップド IP 少ししか制御する必要がないので、カーネルで可 カーネルを推奨
Vitis カーネル レジスタの規格に従い、XRT から使用可能なアクセラレーション メモリマップド IP 少ししか制御する必要がないので、カーネルで可 カーネルを推奨
Vitis ライブラリ   カーネルとしてのみ可
AXI4-Stream インターフェイスを使用するフリーランニング IP