概要

SDSoC™ (Software-Defined System-on-Chip) 環境は、Zynq® UltraScale+™ MPSoC または Zynq®-7000 SoC デバイスにヘテロジニアス エンベデッド システムをインプリメントするのに必要なツールです。この文書は、Vivado® Design Suite で生成されたハードウェア デザインを使用して、Eclipse ベースの SDx™ 統合設計環境 (IDE) で SDSoC プラットフォームを作成する方法について説明します。

図: プラットフォーム コンポーネント

プラットフォームのコンセプトは、SDSoC アプリケーションを構築するハードウェアおよびソフトウェア コンポーネント、メタデータを定義するので、SDSoC 環境には不可欠です。上記の図は、プラットフォームとそのコンポーネントを示しています。SDSoC プラットフォームでは、基盤となるハードウェア/ソフトウェア アーキテクチャのほか、アプリケーション コンテンツ (プロセッサ システム、外部メモリ インターフェイス、カスタム入力/出力、オペレーティング システム (ベアメタルの可能性大) を使用したソフトウェア ランタイム、ブートローダー、プラットフォーム ペリフェラルのドライバー、およびルート ファイル システムを含む) が定義されます。SDx IDE で作成されるプロジェクトでは、すべて特定のプラットフォームがターゲットにされ、アプリケーション専用のハードウェア アクセラレータおよびデータ モーション ネットワークを使用してカスタマイズされます。

プラットフォーム開発者は、まず Vivado Design Suite およびその IP インテグレーター デザイン キャンバスを使用してハードウェア デザインをインプリメントして、プラットフォームのハードウェア コンポーネントを設計します。IP インテグレーター ブロック デザインの作成には、sds++/sdscc (sds++ と呼ぶ) システム コンパイラで使用できるようにイネーブルになったプラットフォーム インターフェイスが、生成されたアクセラレータおよびデータ ムーバーの接続点として使用されます。このハードウェア デザイン コンポーネントとそのメタデータがデバイス サポート アーカイブ (DSA) にまとめられます。DSA には、Vivado IP インテグレーター デザインのほか、必要なプロセッサとメモリ システム コンフィギュレーション、すべてのボード インターフェイスと I/O 接続が含まれます。プラットフォーム ID およびインターフェイス コンフィギュレーションなどのプラットフォーム プロパティも DSA で定義されます。

プラットフォーム開発者は、プラットフォームの立ち上げに使用するブートローダーとターゲット オペレーティング システムも提供する必要があります。プラットフォームには、オプションでアプリケーションとリンクするためのソフトウェア ライブラリが含まれます。プラットフォームで Linux ターゲット オペレーティング システムがサポートされる場合は、PetaLinux ツールを使用して Linux カーネルをコンフィギュレーションおよびビルドし、U-Boot ブートローダーおよびルート ファイル システムを生成できます。ザイリンクス SDK には、プラットフォームのソフトウェア コンポーネント開発用のカスタマイズ可能なコード テンプレートが含まれます。SDx IDE を使用しても、ソフトウェア コンポーネントは生成できますが、SDK または PetaLinux ツールを直接使用してカスタマイズすることをお勧めします。

プラットフォームは、SDx プラットフォーム プロジェクトで使用できるようにハードウェアおよびコンポーネントを生成またはまとめても作成できます。SDx ツールでは、既存のプラットフォームを新規プラットフォームの基盤として使用したり、ユーザーの提供する入力 DSA で定義したハードウェアを使用したりできます。同様に、SDx 環境では、SDx ツールの起動前に開発者の作成した既存のソフトウェア オブジェクト セットを使用したり、SDSoC プラットフォーム作成プロセスの一部としてソフトウェア オブジェクトを生成できます。

この文書で説明および構築されるプラットフォーム サンプルでは、SDx ツールに含まれる ZCU102 プラットフォームの一部として提供されているハードウェアおよびソフトウェア コンポーネントを使用します。SDx プラットフォーム プロジェクト フローに従ってプラットフォームをアセンブルした後に、カスタム プラットフォームを構成するハードウェアおよびソフトウェア コンポーネントのビルド方法を説明します。