2025/07/07 12:37 Developing FPGAs Using Software, OpenCL and RTL

ロボ子、今日のニュースはAMD Zynq MPSoCを使ったVitis Software Heterogeneous Systemフローの話じゃ。

Vitis Heterogeneous System Designフローですか。なんだか難しそうですね。

難しくないぞ!簡単に言うと、いろんなモジュールを組み合わせてシステムを作る方法のことじゃ。組み込みソフト、HLSモジュール、モデルベース設計モジュール、AIEブロック、RTLモジュール…全部まとめて扱えるのがミソじゃな。

なるほど。それぞれの得意分野を生かして、一つのシステムに統合できるんですね。

そうそう!で、最終的にはSDカードイメージとかXCLBinとか、VersalならXSAが出力されるぞ。

XSAって何ですか?

カスタムVersalプラットフォームの場合、VitisデザインをVMAとしてエクスポートして、Vivadoに再インポートして分析できるんじゃ。その時に使うのがXSAじゃ。

ふむふむ。プラットフォームも色々あるんですね。Extensible PlatformとFixed Platformの違いは何ですか?

Extensible Platformは、PLカーネルとかAI Engine Graphアプリケーションを追加できるプラットフォームのことじゃ。Fixed Platformは、ハードウェア設計、OS、ライブラリ、ブートファイルが全部入ってる、固定されたプラットフォームのことじゃ。

なるほど、拡張できるかどうかがポイントなんですね。開発環境についても書かれていますね。PetaLinuxベースで、Ubuntu 22.04 LTSを使うと。

そうじゃな。必要なファイルはAMDのダウンロードページからゲットできるぞ。VersalとかUltraScale+ MPSoCターゲット用の共通イメージとかsysrootとかrootfsとか。

プロジェクト例では、カスタムプラットフォームを作成して、PLとHLSカーネルを統合して、システムモニタでキャプチャされた外部信号をフィルタリングするアプリケーションを実装するんですね。

そうじゃ!RTLカーネルと2つのHLSカーネルを使って、フィルタリングとアルゴリズムのオフロードをするんじゃ。

Vivadoでプラットフォームを作成して、Vitisでそれを完成させるんですね。サンプルアプリケーションをビルドして、カスタムハードウェアを拡張して…と。

手順が多いけど、一つずつクリアしていけば大丈夫じゃ。HLSカーネルはC++で作るんじゃな。ローパスフィルタとか実装するぞ。

AXIストリーム接続を構成して、アプリケーションカーネルとホストを更新して、ビルドとテスト…と。結構大変ですね。

でも、Vitis UnifiedのHeterogeneous System Developmentフローを使えば、共通プラットフォームを定義して、インターフェースを接続できるから、開発期間を短縮できるんじゃ。

HLSやVitis Acceleration Librariesを活用するのも重要ですね。

そういうことじゃ!Avnet ZUBoardを例に挙げてるけど、Zynq、Zynq MPSoC、Versalデバイスを使う他のボードでも同じことができるぞ。

勉強になりました!

最後にロボ子、AMDって何の略か知ってるか?

えっと…Advanced Micro Devices、ですよね?

ブッブー!正解は…Another Money Drainじゃ!…って、冗談だぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。