143
Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル 効果的なエンベデッ ド システム構築を サポートするハンディ ガイド UG1209 (v2017.1) 2017 7 28 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし ては、必ず最新英語版をご参照ください。

Zynq UltraScale+ MPSoC - Xilinx...Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル 2 UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com 改訂履歴

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

  • Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル

    効果的なエンベデッ ド システム構築をサポートするハンディ ガイド

    UG1209 (v2017.1) 2017 年 7 月 28 日

    この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

  • Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 2UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    改訂履歴

    次の表に、 この文書の改訂履歴を示します。

    日付 バージョ ン 改訂内容

    2017 年 7 月 28 日 2017.1 • 「PetaLinux を使用した設定の変更と Linux イ メージの構築」 にザイ リ ンクス アンサー 69248 への参照を追加。

    2017 年 7 月 14 日 2017.1 • 第 5 章の 「ブートおよびコンフ ィギュレーシ ョ ン」 に USB ブート を追加。

    • 第 5 章の 「セキュア ブート シーケンス」 の説明および手順を詳細に記述。

    • Vivado® Design Suite 2017.1 を用いた検証

    • プロダクシ ョ ン シ リ コンを使用して ZCU102 Rev1 ボードで手順およびデザイン ファ イルをテス ト

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=2

  • 目次

    改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    第 1 章: はじめにこのガイ ドについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Zynq UltraScale+ デバイスが提供するシングル チップ ソ リ ューシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Vivado ツールでデザイン プロセスを加速. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9最初に必要なセッ ト アップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ンZynq UltraScale+ システムのコンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13サンプル プロジェク ト : Zynq UltraScale+ MPSoC の新規エンベデッ ド プロジェク ト を作成する . . . . . . . . . . . . . . 14サンプル プロジェク ト : ARM Cortex-A53 から Hello World アプリ ケーシ ョ ンを実行する . . . . . . . . . . . . . . . . . . . 24サンプルプロジェク ト : ARM Cortex-R5 から Hello World アプリ ケーシ ョ ンを実行する . . . . . . . . . . . . . . . . . . . . . 27その他の情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    第 3 章: PS サブシステム向けのソフ トウェア構築Zynq UltraScale+ のプロセッシング ユニッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32サンプル プロジェク ト : SDK でベアメ タル アプリ ケーシ ョ ン プロジェク ト を作成する . . . . . . . . . . . . . . . . . . . . 33サンプル プロジェク ト : PetaLinux を使用して Linux イ メージを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    第 4 章: SDK を使用したデバッグXilinx System Debugger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48SDK を使用してソフ ト ウェアをデバッグする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50ザイ リ ンクス ソフ ト ウェア コマンド ライン ツール (XSCT) を使用してデバッグする . . . . . . . . . . . . . . . . . . . . . . 52

    第 5 章: ブートおよびコンフ ィギュレーシ ョ ンシステム ソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60APU の Linux と RPU のベアメ タル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61SD ブートのブート シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62QSPI ブート モードのブート シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71JTAG を用いた QSPI ブート モードのブート シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82USB ブート モードのブート シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85セキュア ブート シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    第 6 章: システム デザイン例サンプル デザイン 1: GPIO、 タイマー、 および割り込みを使用する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114サンプル デザイン 2: グラフ ィ ッ クスおよびディ スプレイ ポート ベースのサブシステムのセッ ト アップ例 . . 133

    付録 A: セキュア ブートでの問題のデバッグPUF 登録が実行されているかど うかを判断する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139ブート イ メージで使用されるブートヘッダー値をテス トする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 3UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=3

  • 付録 B: その他のリソースおよび法的通知ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Xilinx Documentation Navigator およびデザイン ハブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Xilinx Documentation Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141このチュート リ アルのデザイン ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141ト レーニング リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 4UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=4

  • 第 1 章

    はじめに

    このガイドについて

    このガイ ドでは、Zynq® UltraScale+™ MPSoC を使用するザイ リ ンクス Vivado® Design Suite フローについて説明します。 サンプル プロジェク トは、 ザイ リ ンクスの ZCU102 Rev1 評価ボードをターゲッ ト と しています。 使用したツールのバージ ョ ンは、 2017.1 の Vivado およびザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) です。

    注記: SDK を Vivado Design Suite の一部と してインス トールするには、インス トーラーに SDK を含めるよ う選択する必要があ り ます。 8 ページの 「ザイ リ ンクスのソフ ト ウェア開発キッ ト 」 を参照してください。

    このガイ ドのサンプル プロジェク トは、64 ビッ トの Windows 7 オペレーティング システムで実行するザイ リ ンクス ツール、 および 64 ビッ トの Linux オペレーティング システムで実行する PetaLinux を使用して作成されています。ほかの Windows インス トールで別バージ ョ ンのツールを実行した場合、 結果が異なるこ とがあ り ます。 サンプル プロジェク トは、 エンベデッ ド デザインの次の項目について紹介するこ とに重点を置いています。

    注記: チュート リ アルで説明されている、 ハード ウェア上で Linux をブートする各手順は、 2017.1 リ リースの PetaLinux ツールに固有のものです。 PetaLinux ツールは、 このガイ ドの Linux 部分の演習を行うために、 Linux ホスト マシンにインス トールする必要があ り ます。

    • 第 2 章 「Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン」 では、 Zynq UltraScale+ MPSoC プロセッシング システム (PS) を用いたシステムの作成、 および ARM® Cortex®-A53 と Cortex-R5 プロセッサ上での簡単な Hello World アプリ ケーシ ョ ンの実行について説明します。 この章では、 簡単なデザインを例と して使用し、 ハード ウェアおよびソフ ト ウェア ツールの概要を説明します。

    • 第 3 章 「PS サブシステム向けのソフ ト ウェア構築」 では、 アプリ ケーシ ョ ン プロセッシング ユニッ ト (APU)、リ アルタイム プロセッシング ユニッ ト (RPU)、 プラ ッ ト フォーム管理ユニッ ト (PMU) など、 プロセッシング システム内のプロセッシング ブロ ッ クに応じてソフ ト ウェアを設定および構築する手順を説明します。

    • 第 4 章 「SDK を使用したデバッグ」 では、 ザイ リ ンクスのソフ ト ウェア開発キッ ト (SDK) のデバッグ機能を使用したソフ ト ウェアのデバッグについて説明します。 この章では、 前のデザインを使用してソフ ト ウェア ベア メ タル (OS なし ) を実行し、 デバッグ方法を示します。 また、 Zynq UltraScale+ MPSoC のデバッグ コンフ ィギュレーシ ョ ンについても説明します。

    • 第 5 章 「ブートおよびコンフ ィギュレーシ ョ ン」 では、 Zynq UltraScale+ システム用にブート イ メージを構成して作成するこ とを目的と したコンポーネン トの統合について説明します。 この章の主旨は、 ブート ローダーを

    統合およびロードする方法を理解するこ とです。

    • 第 6 章 「システム デザイン例」 では、 第 3 章で設定したソフ ト ウェア ブロッ クを使用して Zynq UltraScale+ システムをどのよ うに構築できるかを紹介します。

    • 付録 B 「その他のリ ソースおよび法的通知」 では、 このガイ ドに関連するその他の資料へのリ ンクを提供します。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 5UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=5

  • 第 1 章: はじめに

    サンプル プロジェク トツールを習得するための最良の方法は、 それを使用してみるこ とです。 そのため、 このガイ ドでは説明に従って

    ツールを操作する機会が設けられています。 サンプル プロジェク トのセクシ ョ ンでは、 サンプル プロジェク トの仕様のほかに背景で何が起こっているかについても説明しています。 各章およびサンプル プロジェク トは、 エンベデッ ド デザインのさまざまな側面を紹介するこ とを目的にしています。 サンプル プロジェク ト を通して、 各項目の学習を完了して次に進む形でフロー全体が説明されます。

    その他の資料

    その他の資料一覧は、 付録 B 「その他のリ ソースおよび法的通知」 に記載されています。

    Zynq UltraScale+ デバイスが提供するシングル チップ ソリューシ ョ ン

    次世代の Zynq デバイスである Zynq UltraScale+ MPSoC は、 タスクごとに最適なエンジンを使用する という考えの基で設計されています。 Zynq UltraScale+ は、 多用途のプロセッシング システム (PS) と柔軟性および性能の高いプログラマグル ロジッ ク (PL) をすべて 1 つのシステム オン チップ (SoC) に搭載したソ リ ューシ ョ ンです。Zynq UltraScale+ MPSoC PS ブロ ッ クは、 次のエンジンで構成されています。

    • クワ ッ ド コア ARM Cortex-A53 ベースのアプリ ケーシ ョ ン プロセッシング ユニッ ト (APU)

    • デュアル コア ARM Cortex-R5 ベースのリ アルタイム プロセッシング ユニッ ト (RPU)

    • ARM Mali-400 MP2 ベースのグラフ ィ ッ クス プロセッシング ユニッ ト (GPU)

    • 専用のプラ ッ ト ローム管理ユニッ ト (PMU) と コンフ ィギュレーシ ョ ン セキュ リティ ユニッ ト (CSU)

    • ディ スプレイ ポートおよび SATA を含む一連の高速ペリ フェラル

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 6UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=6

  • 第 1 章: はじめに

    プログラマブル ロジッ クには、 プログラマブル ロジッ ク セルに加え、 次に示す高性能ペリ フェラルも統合されています。

    • PCI Express 用統合ブロッ ク

    • Interlaken 用統合ブロッ ク

    • 100G Ethernet 用統合ブロッ ク

    • システム モニター

    • ビデオ コーデッ ク ユニッ ト

    Zynq UltraScale+ の PS と PL は、 高性能で高帯域幅のさまざまな PS-PL インターフェイスを使用して厳密にまたは柔軟に連動させるこ とができます。

    このよ うな高度な All Programmable デバイスのデザイン プロセスを単純にするために、 ザイ リ ンクスは Vivado Design Suite、 ソフ ト ウェア開発キッ ト (SDK)、 および Linux 用 PetaLinux ツールを提供しています。 これらのツールは、 FPGA を結合した SoC デバイス向けのエンベデッ ド システム デザインを容易にするために必要なものをすべて提供します。 これらのツールを組み合わせるこ とで、 ハード ウェアと ソフ ト ウェアのアプリ ケーシ ョ ンの設計、 デ

    バッグ、 コードの実行が可能になるほか、 検証や評価を目的と してデザインを実際のボードに移行できます。

    Vivado Design Suite

    ザイ リ ンクスは、 Vivado Design Suite と総称される開発システム ツールを複数提供しています。 Vivado Design Suite のいくつかの Edition がエンベデッ ドシステム開発に使用できます。 このガイ ドでは、 System Edition を使用します。次の図に Vivado Design Suite の Edition の機能を示します。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 7UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=7

  • 第 1 章: はじめに

    その他の Vivado コンポーネン トVivado のその他のコンポーネン トは次のとおりです。

    • ザイ リ ンクス エンベデッ ド プロセッサ用のエンベデッ ド /ソフ ト IP

    • 資料

    • サンプル プロジェク ト

    ザイリンクスのソフ トウェア開発キッ ト

    ソフ ト ウェア開発キッ ト (SDK) は Vivado を補完する統合開発環境で、C/C++ エンベデッ ド ソフ ト ウェア アプリ ケーシ ョ ンの作成および検証に使用します。 SDK は Eclipse オープンソース フレームワークで構築されているため、 ソフト ウェア設計者や設計チームにとって使い慣れた環境です。

    Vivado Design Suite をインス トールする際に、 インス トールに含める必要のあるオプシ ョ ンのソフ ト ウェア ツールとして SDK を選択できます。 詳細は、 10 ページの 「インス トール要件」 を参照してください。

    X-Ref Target - Figure 1-1

    図 1-1: Vivado Design Suite Edition

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 8UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=8

  • 第 1 章: はじめに

    Eclipse 開発環境の詳細は、 http://www.eclipse.org を参照してください。

    SDK のその他のコンポーネン トは次のとおりです。

    • エンベデッ ド ソフ ト ウェア開発用のド ライバーおよびライブラ リ

    • Zynq UltraScale+ プロセッシング システム内の ARM Cortex-A53 および ARM Cortex-R5 MPCore プロセッサをターゲッ トにした C/C++ ソフ ト ウェア開発用 Linaro GCC コンパイラ

    PetaLinux ツールPetaLinux ツール セッ トは、 エンベデッ ド Linux システム開発キッ トです。 このツールによ り多面的な Linux ツール フローが提供され、 Zynq UltraScale+ を含むザイ リ ンクス Zynq デバイス向けの完全なコンフ ィギュレーシ ョ ン、 ビルド、 および導入環境がもたら されます。

    詳細は、 ザイ リ ンクスの PetaLinux ウェブ ページ [参照 14] を参照してください。

    PetaLinux ツールのデザイン ハブは、 PetaLinux ツールの情報および資料へのリ ンクを提供します。 詳細は、 141 ページの 「関連デザイン ハブ」 を参照してください。

    Vivado ツールでデザイン プロセスを加速Vivado Design Suite ツールを使用してハード ウェアにデザイン ソースを追加できます。 ツールには、 既存のプロジェク トに IP を追加したり、 ク ロ ッ クやリセッ ト などのポートの接続を作成したりするプロセスを簡単にする IP インテグレーターが含まれます。

    Vivado ツールと IP インテグレーターは、 一連のハードウェア システム開発を完了までサポート します。 これには、Zynq UltraScale+ プロセッシング システムの仕様、 ペリ フェラル、 および各コンポーネン トの接続、 ならびにそれぞれの詳細な設定が含まれます。

    SDK はソフ ト ウェア開発に使用され、 Vivado Design Suite の一部と して利用できます。 または、 SDK をインス トールし、 SDK がロード されるマシンにほかのザイ リ ンクス ツールがインス トールされていなくても使用可能です。 SDK は、 ソフ ト ウェア アプリ ケーシ ョ ンのデバッグにも使用できます。

    Zynq UltraScale+ プロセッシング システム (PS) は、 FPGA (プログラマブル ロジッ ク (PL)) をプログラムしな くても、ブート して動作させるこ とができます。 ただし、 ファブ リ ッ クでソフ ト IP を使用したり、 EMIO を用いて PS ペリフェラルを接続するには、 PL をプログラムする必要があ り ます。 PL のプログラムには SDK まは Vivado ハードウェア マネージャーを使用できます。

    エンベデッ ド デザイン プロセスの詳細は、 『Vivado Design Suite チュート リ アル: エンベデッ ド プロセッサ ハードウェア デザイン』 (UG940) [参照 2] を参照してください。

    Zynq UltraScale+ プロセッシング システムの詳細は、 『Zynq UltraScale+ プロセッシング システム v1.0 製品ガイ ド』 (PG201) [参照 9] を参照してください。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 9UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    http://www.eclipse.orghttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=9

  • 第 1 章: はじめに

    最初に必要なセッ トアップ

    ツールについて詳し く説明する前に、 ツールが適切にインス トールされ、 使用する環境がこのガイ ドの 「サンプル プロジェク ト 」 の記載要件に一致するかを確認します。

    ハードウェア要件

    このガイ ドでは、 Zynq UltraScale+ ZCU102 評価ボードをターゲッ ト と しています。 このチュート リ アルのサンプル プロジェク トは ZCU102 Rev 1 ボードを使用してテス ト されています。 このガイ ドを活用するにあたって、 評価ボードに同梱されている次を用意してください。

    • ZCU102 Rev1 評価ボード• AC 電源アダプター (12 VDC)• USB Type-A/Micro ケーブル (UART 通信用)• USB-Micro JTAG 接続を介するプログラムおよびデバッグ用の USB Micro ケーブル• Linux ブート用の SD-MMC フラ ッシュ カード• ターゲッ ト ボード とホス ト マシンの接続用のイーサネッ ト ケーブル• ディ スプレイ ポート (DP) 機能を備えたモニター (最小で 1080P の解像度)• ZCU102 ボードからのディ スプレイ出力を DP モニターへ接続するための DP ケーブル

    インストール要件

    Vivado Design Suite および SDK

    2017.1 Vivado HL System Edition ツールがインス トール済みであるこ とを確認してください。 ツール バージ ョ ンが最新であるかど うかは、 https://japan.xilinx.com/support/download.html にアクセスして確認できます。

    Vivado Design Suite および SDK ツールの両方がインス トールされているこ とを確認してください。 Vivado Design Suite をインス トールする際に、 次の図に示すよ うに [Software Development Kit (SDK)] をオンにするこ とで、 インストールに含める必要のあるオプシ ョ ンのソフ ト ウェア ツールと して SDK を選択できます。 SDK を単独でインストールするには、 [Software Development Kit (SDK)] のみをオンにし、 ほかのソフ ト ウェア製品の選択をオフにしてインス トーラーを実行します。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 10UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.com/support/download.htmlhttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=10

  • 第 1 章: はじめに

    Vivado Design Suite と SDK のインス トールの詳細は、 『Vivado Design Suite ユーザー ガイ ド : リ リース ノート、 インストールおよびライセンス』 (UG973: 英語版、 日本語版) [参照 3] を参照して ください。

    重要: インス トールによって SDK 用のデスク ト ップのシ ョート カッ トがデフォルトで作成されるわけではあ り ません。 SDK バイナリは、 C:\Xilinx\SDK\2017.1\bin\xsdk.bat から起動可能です。

    PetaLinux ツール

    このチュート リ アルの Linux 部分の演習で実行する PetaLinux ツールをインス トールします。 PetaLinux ツールは、 次のいずれかが稼働している Linux ホス ト システムで実行します。

    • RHEL 7.2/7.3 (64 ビッ ト )

    • CentOS 7.2/7.3 (64 ビッ ト )

    • Ubuntu 16.04.1 (64 ビッ ト )

    • RHEL 6.7/6.8 (64 ビッ ト )

    注記: RHEL および Cent OS の 6.X の場合、回避策を用いた制限付きサポート とな り ます。詳細は、 『PetaLinux ツール資料: リ ファレンス ガイ ド』 (UG1144) [参照 7] を参照してください。

    このツールは、 専用 Linux ホス ト システム、 または Windows 開発プラ ッ ト フォーム上でこれらの Linux オペレーティング システムのいずれかが稼働している仮想マシンを使用できます。

    PetaLinux ツールを選択したシステムにインス トールするには、 次を実行する必要があ り ます。

    • PetaLinux 2017.1 SDK ツールを、 ザイ リ ンクスのウェブサイ トからダウンロードする

    • ZCU102 PetaLinux BSP を 2017.1 のダウンロード ページからダウンロードする

    注記: ES2 シ リ コンの場合、 ZCU102-ZU9-ES2 Rev 1.0 BSP はこ こからダウンロード します。

    X-Ref Target - Figure 1-2

    図 1-2: Vivado インストーラー - [Software Development Kit (SDK)] の選択

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 11UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.com/member/forms/download/xef.html?filename=xilinx-zcu102-v2017.1-final.bsp&akdm=1https://japan.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/2017-1.htmlhttps://japan.xilinx.com/member/forms/download/xef.html?filename=xilinx-zcu102-zu9-es2-rev1.0-v2017.1-final.bsp&akdm=1https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=11

  • 第 1 章: はじめに

    • ワークステーシ ョ ンまたは仮想マシンに共通のシステム パッケージおよびライブラ リ を追加する。 『PetaLinux ツール資料: リ ファレンス ガイ ド』 (UG1144) [参照 7] の 「インス トール要件」 を参照してください。

    必要な環境

    • 4GB RAM (ザイ リ ンクス ツールで推奨される最小サイズ)

    • Pentium 4 2GHz CPU ク ロ ッ クまたは同等の CPU (少なく と も 4 つのコア)

    • 100GB のハードディ スク空き容量

    PetaLinux パッケージの展開

    インス トーラーはデフォルトでは、 現在のディ レク ト リのサブディ レク ト リ と してパッケージをインス トールしま

    す。 代わりに、 インス トール パスを指定するこ と もできます。 ダウンロード した PetaLinux インス トーラーを実行します。

    注記: PetaLinux のインス トール パスは短く して ください。 パスが 255 文字を超える と、 PetaLinux のビルドがエラーになり ます。

    bash> ./petalinux-v2017.1-final-installer.run

    PetaLinux は、 このコマンドの作業ディ レク ト リの直下にある petalinux-v2017.1.4-final ディ レク ト リにインス トールされます。 インス トーラーをホーム ディレク ト リ (/home/user) に置いた場合、 PetaLinux は /home/user/petalinux-v2017.1-final にインス トールされます。

    PetaLinux 環境のセッ ト アップ、 プロジェク トの作成、 およびプロジェク トの使用例の詳細は、 第 3 章 「PS サブシステム向けのソフ ト ウェア構築」 を参照してください。 PetaLinux のインス トールおよび使用方法に関する詳細は、『PetaLinux ツール資料: リ ファレンス ガイ ド』 (UG1144) [参照 7] に記載されています。

    ソフ トウェアのライセンス

    ザイ リ ンクスのソフ ト ウェアには FLEXnet ラ イセンスが使用されています。 ソフ ト ウェアを初めて起動する際、 ライセンスの検証プロセスが実行されます。 ライセンス検証で有効なライセンスが検出されない場合、 ライセンス ウ ィザードに従ってライセンスを取得し、 インス トールしたツールでそのライセンスを使用できるよ うにします。

    ソフ ト ウェアのフル バージ ョ ンが不要な場合は、 評価版ライセンスを使用できます。 インス トールの手順と詳細は、『Vivado Design Suite ユーザー ガイ ド : リ リース ノート、 インス トールおよびライセンス』 (UG973: 英語版、日本語版) [参照 3] を参照して ください。

    チュート リアルのデザイン ファイル

    このチュート リ アルのデザイン ファ イルのダウンロードについては、 141 ページの 「このチュート リ アルのデザイン ファ イル」 を参照してください。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 12UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=12

  • 第 2 章

    Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    ザイ リ ンクスの Vivado® Design Suite の概要に引き続き、 このツールを活用して Zynq® UltraScale+™ MPSoC プロセッシング システム (PS) を使用するエンベデッ ド システムを開発する方法を説明します。

    Zynq UltraScale+ は、 クワッ ド コア ARM® Cortex®-A53 APU、 デュアルコア ARM Cortex-R5 RPU、 Mali 400 MP2 GPU、および複数のハード IP (Intellectual Property) コンポーネン ト ならびにプログラマブル ロジッ ク (PL) で構成されています。 これらは次の 2 つの方法で使用できます。

    • Zynq UltraScale+ PS は、 ファブ リ ッ ク IP を追加せずに、 スタンドアロン モードで使用できます。

    • IP コアをファブリ ッ クでインスタンシエート し、 PS と PL の組み合わせと して Zynq UltraScale+ PS に接続できます。

    Zynq UltraScale+ システムのコンフ ィギュレーシ ョ ンZynq UltraScale+ システム デザインの作成には、 ブート デバイスおよびペリ フェラルを適切に選択する PS のコンフ ィギュレーシ ョ ンが含まれます。 PS ペリ フェラルと利用可能な MIO の接続がデザイン要件を満たしている限り、ビッ ト ス ト リームは必要あ り ません。 この章では、 ビッ ト ス ト リームを必要と しない簡単な PS ベースのデザインの作成手順について説明します。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 13UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=13

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    サンプル プロジェク ト : Zynq UltraScale+ MPSoC の新規エンベデッ ド プロジェク ト を作成するこの例では、 Vivado Design Suite を起動し、エンベデッ ド プロセッシング システムのプロジェク ト を最上位と して作成します。

    デザインの開始

    1. Vivado Design Suite を起動します。

    2. [Vivado Quick Start] ページで [Create Project] をク リ ッ ク し、 New Project ウ ィザードを開きます。

    3. 次の表の情報に基づいて、 各ウ ィザード画面で選択操作を実行します。

    4. [Finish] をク リ ッ ク します。 New Project ウ ィザードが閉じ、 作成したプロジェク トが Vivado デザイン ツールで開きます。

    ブロック デザイン プロジェク トの作成IP インテグレーターを使用し、 ブロ ッ ク デザイン プロジェク ト を作成します。

    1. Flow Navigator の [IP Integrator] → [Create Block Design] をク リ ッ ク します。

    [Create Block Design] ダイアログ ボッ クスが開きます。

    ウィザード画面 システム プロパティ 設定または使用するコマンド

    Project Name Project name edt_zcu102

    Project location C:/edt

    Create project subdirectory オン

    Project Type デザインのソースのタイプを指定する。 RTL または合成済み EDIF から開始できる。

    RTL プロジェク ト

    [Do not specify sources at this time] オフ

    Add Sources この画面では変更しない。

    Add Constraints この画面では変更しない。

    Default Part Select Boards

    Display Name Zynq UltraScale+ ZCU102 Evaluation Board

    New Project Summary Project Summary プロジェク ト サマリ を確認する。

    X-Ref Target - Figure 2-1

    図 2-1: [Create Block Design]

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 14UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=14

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    2. [Create Block Design] ダイアログ ボッ クスで次のよ うに選択します。

    3. [OK] をク リ ッ ク します。

    このデザインが空であるこ とを示すメ ッセージと共に、 [Diagram] ウ ィンド ウが表示されます。 開始するには、カタログから IP を追加します。

    4. [Add IP] をク リ ッ ク します。

    5. [Search] フ ィールドに 「zynq」 と入力して Zynq デバイス IP オプシ ョ ンを検索します。

    6. ZYNQ UltraScale+ MPSoC IP をダブルク リ ッ ク し、 ブロ ッ ク デザインに追加します。

    次の図に示すよ うに、 Zynq MPSoC プロセッシング システム IP ブロ ッ クが [Diagram] ウ ィンド ウに表示されます。

    ウィザード画面 システム プロパティ 設定または使用するコマンド

    Create Block Design Design name edt_zcu102

    Directory

    Specify source set Design Sources

    X-Ref Target - Figure 2-2

    図 2-2: Zynq UltraScale+ プロセッシング システム IP ブロック

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 15UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=15

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    Vivado で Zynq UltraScale+ プロセッシング システムを管理するZynq MPSoC のプロセッシング システムがデザインに追加されたので、 利用可能なオプシ ョ ンの管理を開始できます。

    1. [Diagram] ウ ィンド ウで、 ZYNQ UltraScale+ Processing System ブロッ クをダブルク リ ッ ク します。

    次の図に示すよ うな [Re-customize IP] ダイアログ ボッ クスが開きます。 デフォルトでは、 プロセッシング システムにペリ フェラルが接続されていないこ とに注意してください。

    2. [Cancel] をク リ ッ クする と、 デザインが変更されずにウ ィザードが閉じます。

    ヒン ト : [Diagram] ウ ィンド ウで、 次の図に示すよ うなデザイン アシスタン トが使用可能であるこ とを示すメ ッセージが表示されます。 デザイン アシスタン トが利用可能な場合、 リ ンクをク リ ッ クする と Vivado はデザインでステップ実行できるよ うになり ます。

    X-Ref Target - Figure 2-3

    図 2-3: [Re-customize IP] ダイアログ ボックス

    X-Ref Target - Figure 2-4

    図 2-4: デザイン アシスタン トのリンク

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 16UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=16

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    3. ZCU102 ボード用に作成されたテンプレート を使用します。 [Run Block Automation] リ ンクをク リ ッ ク します。

    [Run Block Automation] ダイアログ ボッ クスが開きます。

    4. [OK] をク リ ッ ク してデフォルトのプロセッシング システム オプシ ョ ンを選択し、 デフォルトのピン接続を作成します。

    このコンフ ィギュレーシ ョ ン ウ ィザードを使用して、 ZCU102 のボード レイアウ トに従って一部の MIO (Multiplexed I/O) ピンが割り当てられている複数のペリ フェラルをプロセッシング システムで有効にします。 たとえば、 UART0 および UART1 を有効にします。 UART の信号が UART を経由して USB-UART コネクタを介し、ZCU102 ボードの USB コンバーター チップへ接続されます。

    5. これを確認するには、 ブロ ッ ク図上で Zynq UltraScale+ Processing System ブロ ッ クをダブルク リ ッ ク します。

    Zynq UltraScale+ デバイスのブロ ッ ク図で各ペリ フェラル名の横に表示されるチェッ ク マークは、 それらの I/O ペリ フェラルがアクティブであるこ とを示します。

    X-Ref Target - Figure 2-5

    図 2-5: アクティブなペリフェラルが示された I/O ユニッ ト

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 17UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=17

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    6. ブロ ッ ク図で、 前の図に示した緑色の I/O ペリ フェラルのうちの 1 つをク リ ッ ク します。 選択したペリ フェラルに関する [I/O Configuration] ページが開きます。

    このページでは、 低速ペリ フェラルおよび高速ペリ フェラルの設定が可能です。 このサンプル プロジェク トでは、 ZCU102 用のボード プリセッ ト を使用して基本的な接続を有効にした状態で続けます。

    7. Page Navigator で [PS-PL Configuration] をク リ ッ ク します。

    8. [PS-PL Configuration] で、 [PS-PL Interfaces] を展開して [Master Interface] を展開表示します。

    このサンプル プロジェク トでは、 PL にデザインが読み込まれていないため、 PS-PL インターフェイスを無効にできます。 このよ うな場合、 AXI HPM0 FPD マスター インターフェイスおよび AXI HPM1 FPD マスター インターフェイスを無効にできます。

    9. [AXI HPM0 FPD] ド ロ ップダウン リ ス トから [0] を選択します。 同様に、 [AXI HPM1 FPD] にも [0] を設定します。

    X-Ref Target - Figure 2-6

    図 2-6: [Re-customize IP] ダイアログ ボックスでの [I/O Configuration] ページ

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 18UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=18

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    PS-PL インターフェイスは次の図のよ うに設定します。

    10. [OK] をク リ ッ ク して [Re-customize IP] ダイアログ ボッ クス閉じます。

    デザインおよび接続ポートを検証する

    次に、 デザインを検証します。

    1. [Diagram] ウ ィンド ウ内の空白部分を右ク リ ッ ク して、 [Validate Design] をク リ ッ ク します。 あるいは、 F6 キーを押します。

    2. 検証が成功し、 デザインにエラーや重大な警告がないこ とを示すメ ッセージ ダイアログ ボッ クスが表示されます。

    3. [OK] をク リ ッ ク してメ ッセージを閉じます。

    4. [Block Design] の [Sources] ウ ィンド ウをク リ ッ ク します。

    5. [Hierarchy] をク リ ッ ク します。

    6. [Design Sources] の下で [edt_zcu102] を右ク リ ッ ク し、 [Create HDL Wrapper] をク リ ッ ク します。

    [Create HDL Wrapper] ダイアログ ボッ クスが開きます。 このダイアログ ボッ クスを使用して、 プロセッサ サブシステム用の HDL ラ ッパー ファ イルを作成します。

    ヒン ト : HDL ラ ッパーは、 デザイン ツールに必要な最上位エンティティです。

    7. [Let Vivado manage wrapper and auto-update] をオンにして、 [OK] をク リ ッ ク します。

    8. [Block Design] の [Sources] ウ ィンド ウで、 [Design Sources] の下にある [edt_zcu102_wrapper] を展開します。

    9. [edt_zcu102_i - edt_zcu102 (edt_zcu102.bd)] という名前の最上位ブロッ ク図を右ク リ ッ ク し、 [Generate Output Products] をク リ ッ ク します。

    次の [Generate Output Products] ダイアログ ボッ クスが開きます。

    X-Ref Target - Figure 2-7

    図 2-7: [PS-PL Configuration]

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 19UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=19

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    注記: Linux ホス トマシンで Vivado Design Suite を実行している場合は、 [Run Settings] の下に追加オプシ ョ ンが表示されるこ とがあ り ます。 その場合は、 デフォルトの設定で継続します。

    10. [Generate] をク リ ッ ク します。

    この手順では、 選択したソースに必要なすべての出力ファイルを作成します。 たとえば、 IP プロセッサ システムに対する制約を手動で作成する必要はあ り ません。 [Generate Output Products] が選択される と、 Vivado ツールは、 プロセッサ サブシステム用の XDC ファ イルを自動的に生成します。

    11. 次のメ ッセージが表示された場合、 [OK] をク リ ッ ク します。

    Out-of-context module run was launched for generating output products.

    12. [Generate Output Products] の処理が完了したら、 [OK] をク リ ッ ク します。

    X-Ref Target - Figure 2-8

    図 2-8: [Generate Output Products] ダイアログ ボックス

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 20UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=20

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    13. [Block Design] の [Sources] ウ ィンド ウで、 [IP Sources] タブをク リ ッ ク します。 次の図に示すよ うに、 生成したばかりの出力ファイルが表示されます。

    ハードウェアを SDK へエクスポートするこの例では、 Vivado から SDK を起動します。

    1. [Vivado] ツールバーで、 [File] → [Export] → [Export Hardware] をク リ ッ ク します。

    [Export Hardware] ダイアログ ボッ クスが開きます。 [Export to] フ ィールドはデフォルト オプシ ョ ンの [] のままにしておきます。

    2. [OK] をク リ ッ ク します。

    X-Ref Target - Figure 2-9

    図 2-9: [IP Sources] の下に生成された出力

    X-Ref Target - Figure 2-10

    図 2-10: ハードウェアを SDK へエクスポートする

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 21UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=21

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    ヒン ト : ハードウェアは ZIP ファ イル (.hdf) でエクスポート されます。 SDK が起動する とファ イルは自動で解凍され、 SDK プロジェク ト ハードウェア プラ ッ ト フォーム フォルダーにすべてのファイルが含まれます。

    3. [File] → [Launch SDK] をク リ ッ ク します。

    [Launch SDK] ダイアログ ボッ クスが開きます。

    ヒン ト : SDK はスタンドアロン モードで起動するこ と もでき、 エクスポート されたハードウェアを使用できます。その場合、 SDK を起動し、 エクスポート された新しいターゲッ ト ハードウェアを新しいプロジェク トの作成時にポイン ト します。

    4. [Exported location] および [Workspace] には、 デフォルト設定を選択します。

    5. [OK] をク リ ッ ク します。

    SDK が開きます。 SDK を起動する とハード ウェア記述ファイルが自動的に読み込まれます。

    次の図に示すよ うに、 [system.hdf] にプロセッシング システム全体のアドレス マップが表示されます。

    X-Ref Target - Figure 2-11

    図 2-11: [Launch SDK] ダイアログ ボックス

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 22UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=22

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    ここまでの結果 Vivado によって、 ソフ ト ウェア開発が行われる選択したワークスペースにハード ウェア仕様がエクスポート されました。 [] を選択していれば、 Vivado プロジェク ト フォルダーに新しいワークスペースが作成されています。 ワークスペース名は .sdk です。 この例では、 ワークスペースは、C:\edt\edt_zcu102\edt_zcu102.sdk とい う名前で作成されます。

    Vivado デザイン ツールによって、 デザインのハード ウェア プラ ッ ト フォーム仕様 (この例では system.hdf) が SDK にエクスポート されました。 system.hdf のほかに、 次の追加ファイルが SDK にエクスポート されます。

    • psu_init.c

    • psu_init.h

    • psu_init.tcl

    • psu_init_gpl.c

    • psu_init_gpl.h

    • psu_init.html

    system.hdf ファ イルは、 デフォルトでは SDK の起動時に開かれます。 このファイルから読み出されるシステムのアドレス マップがデフォルトで SDK ウ ィンド ウに表示されます。

    psu_init.c、 psu_init.h、 psu_init_gpl.c、 および psu_init_gpl.h の各ファイルには、 Zynq UltraScale_ MPSoC プロセッシング システムの初期化コードのほかに DDR、 ク ロ ッ ク、 位相ロ ッ ク ループ (PLL)、 および I/O の初期化設定が含まれます。 SDK は、 アプリ ケーシ ョ ンがプロセッシング システムの最上位で実行可能となるよ うに、 これらの設定をプロセッシング システムの初期化時に使用します。 プロセッシング システムの設定の中には ZCU102 評価ボード向けに固定されているものがあ り ます。

    X-Ref Target - Figure 2-12

    図 2-12: SDK の [system.hdf] のアドレス マップ

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 23UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=23

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    次に実行すること

    これで、 SDK を使用してプロジェク トのソフ ト ウェア開発を開始できます。 次のセクシ ョ ンでは、 ハード ウェア プラ ッ ト フォーム向けのソフ ト ウェア アプリ ケーシ ョ ンの作成に役立つ情報を提供します。

    サンプル プロジェク ト : ARM Cortex-A53 から Hello World アプリケーシ ョ ンを実行するこの例では、 ザイ リ ンクス SDK のシステム デバッガーを使用して、 ボード設定の管理、 ケーブル接続、 PC 経由のボード接続、および JTAG モードで ARM Cortex-A53 から簡単な hello world ソフ ト ウェア アプリ ケーシ ョ ンを実行する各方法について説明します。

    1. 電源ケーブルをボードに接続します。

    2. USB Micro ケーブルで Windows ホス ト マシンと ターゲッ ト ボードの J2 USB JTAG コネクタを接続します。

    3. USB Micro ケーブルで Windows ホス ト マシンと ターゲッ ト ボードのコネクタ J83 を接続します。 シ リ アル転送に USB を使用する際はこのよ うに接続します。

    重要: 次の図に示すよ うに、 SW6 スイ ッチが JTAG ブート モードに設定されているこ とを確認します。

    4. 図 2-13 に示すスイ ッチを使用して ZCU102 ボードに電源を投入します。

    X-Ref Target - Figure 2-13

    図 2-13: JTAG ブート モードの SW6 スイッチ設定

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 24UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=24

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    注記: SDK が既に起動している場合は、 手順 6 へ進みます。

    5. SDK を開き、 プロジェク ト ファ イルへのワークスペース パス (この例では、C:\edt\edt_zcu102\edt_zcu102.sdk) を設定します。

    あるいは、 デフォルトのワークスペースを使用して SDK を開き、 後でそれを正しいワークスペースに切り替えるこ と もできます。 この場合、 [File] → [Switch Workspace] をク リ ッ ク してから、 ワークスペースを選択します。

    6. システムで割り当てられている COM ポートのシ リ アル通信ユーティ リ ティ を開きます。 SDK では、 チュートリ アル全体で使用されるシ リ アル ターミナル ユーティ リ ティが提供されています。 [Window] → [Show View] → [Terminal] をク リ ッ ク してこのユーティ リ ティ を開きます。

    7. [Connect] をク リ ッ ク し、 シ リ アル コンフ ィギュレーシ ョ ンを設定して接続します。

    8. [Settings] をク リ ッ ク して [Terminal Settings] ダイアログ ボッ クスを開きます。

    X-Ref Target - Figure 2-14

    図 2-14: ZCU102 ボードの電源スイッチ

    X-Ref Target - Figure 2-15

    図 2-15: [Terminal] ウィンドウのヘッダー バー

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 25UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=25

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    9. デバイス マネージャーでポートの詳細を検証します。

    UART-0 ターミナルは、 Interface-0 の COM ポートに対応します。 この例では、 UART-0 ターミナルがデフォルトで設定されているため、 COM ポートに対して Interface-0 のポート を選択します。

    次の図に、 Zynq UltraScale+ MPSoC プロセッシング システム用の標準的な設定を示します。

    10. [File] → [New] → [Application Project] をク リ ッ ク します。

    11. New Project ウ ィザードが開きます。 次の表の情報に基づいて、 ウ ィザード画面で選択操作を実行します。

    SDK によって test_a53 アプリ ケーシ ョ ン プロジェク トおよび test_a53_bsp ボード サポート パッケージ (BSP) プロジェク トが [Project Explorer] の下に作成されます。 これらの両プロジェク トは自動的にコンパイルされ、 ELF ファ イルが作成されます。

    X-Ref Target - Figure 2-16

    図 2-16: [Terminal Settings] ダイアログ ボックス

    ウィザード画面 システム プロパティ 設定または使用するコマンド

    Application Project Project name test_a53

    Use default location オン

    Hardware Platform edt_zcu102_wrapper_hw_platform_0

    Processor psu_cortexa53_0

    OS Platform standalone

    Language C

    Compiler 64-bit

    Hypervisor Guest No

    Board Support Package [Create New] をオンにして 「test_a53_bsp」と入力する。

    Templates Available Templates Hello World

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 26UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=26

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    12. [test_a53] を右ク リ ッ ク して [Run as] → [Run Configurations] をク リ ッ ク します。

    13. [Xilinx C/C++ application (System Debugger)] を右ク リ ッ ク して [New] をク リ ッ ク します。

    SDK によって 「test_a53 Debug」 とい う名前の新しい実行コンフ ィギュレーシ ョ ンが作成されます。

    アプ リ ケーシ ョ ンに関連するコンフ ィギュレーシ ョ ンは、 起動コンフ ィギュレーシ ョ ンの [Main] タブに自動入力されます。

    14. [Target Setup] タブをク リ ッ ク し、 設定を確認します。

    初期化 Tcl ファ イルへのコンフ ィギュレーシ ョ ン パスがあるこ とに着目して ください。 こ こでは psu_init.tcl へのパスです。 このファイルは、 デザインを SDK にエクスポート した際にエクスポート されたもので、 プロセッシング システムの初期化情報を含みます。

    15. [Run] をク リ ッ ク します。

    次の図に示すよ うに、 [Terminal 1] のシ リ アル通信ユーティ リ ティに 「Hello World」 と表示されます。

    注記: Zynq UltraScale+ 評価ボードで実行する上記ソフ ト ウェア アプリ ケーシ ョ ン用にビッ ト ス ト リームをダウンロードする必要はあ り ませんでした。ARM Cortex A53 クワ ッ ド コアは既にプロセッシング システムに実装されています。 簡単なアプリ ケーシ ョ ンを実行するこ とを目的と したこのシステムの基本的な初期化は、 デバイ

    ス初期化 Tcl スク リプ トで実行されます。

    16. ボードの電源を切って入れ直し、 次のセクシ ョ ンの手順用に同じ接続とボード設定を保持します。

    ここまでの結果

    アプリ ケーシ ョ ン ソフ ト ウェアによって、 「Hello World」 の文字列が PS の UART0 ペリ フェラルに送信されました。

    UART0 からホス ト マシンで動作しているシ リ アル ターミナル アプリ ケーシ ョ ンへ、 Hello World の文字列がバイ トごとに送信され、 文字列と して表示されます。

    サンプルプロジェク ト : ARM Cortex-R5 から Hello World アプリケーシ ョ ンを実行する

    この例では、 ザイ リ ンクス SDK のシステム デバッガーを使用して、 ボード設定の管理、 ケーブル接続、 PC 経由のボード接続、 および JTAG モードで ARM Cortex-R5 から簡単な hello world ソフ ト ウェア アプリ ケーシ ョ ンを実行する各方法について説明します。

    注記: ボードが既にセッ ト アップされている場合は、 手順 5 へ進みます。

    1. 電源ケーブルをボードに接続します。

    2. USB Micro ケーブルで Windows ホス ト マシンと ターゲッ ト ボードの J2 USB JTAG コネクタを接続します。

    X-Ref Target - Figure 2-17

    図 2-17: シリアル ターミナルへの出力

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 27UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=27

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    3. USB ケーブルで Windows ホス ト マシンと ターゲッ ト ボードのコネクタ J83 を接続します。シ リ アル転送に USB を使用する際はこのよ うに接続します。

    4. 図 2-14 に示すスイ ッチを使用して ZCU102 ボードに電源を投入します。

    重要: 図 2-13 に示すとおりに SW6 スイ ッチが JTAG ブート モードに設定されているこ とを確認します。

    注記: SDK が既に開いている場合は、 手順 6 に進みます。

    5. SDK を開き、 プロジェク ト ファ イルへのワークスペース パス (この例では、C:\edt\edt_zcu102\edt_zcu102.sdk) を設定します。

    あるいは、 デフォルトのワークスペースを使用して SDK を開き、 後でそれを正しいワークスペースに切り替えるこ と もできます。 この場合、 [File] → [Switch Workspace] をク リ ッ ク してから、 ワークスペースを選択します。

    6. システムで割り当てられている COM ポートのシ リ アル通信ユーティ リ ティ を開きます。 SDK では、 チュートリ アル全体で使用されるシ リ アル ターミナル ユーティ リ ティが提供されています。 [Window] → [Show View] → [Terminal] をク リ ッ ク してこのユーティ リ ティ を開きます。

    7. [Connect] をク リ ッ ク し、 シ リ アル コンフ ィギュレーシ ョ ンを設定して接続します。

    8. [Settings] をク リ ッ ク して [Terminal Settings] ダイアログ ボッ クスを開きます。

    COM ポートの詳細はホス ト マシンのデバイス マネージャーに表示されます。 UART-0 ターミナルは、Interface-0 の COM ポートに対応します。 この例では、 UART-0 ターミナルがデフォルトで設定されているため、COM ポートに対して Interface-0 のポート を選択します。

    次の図に、 Zynq UltraScale+ MPSoC プロセッシング システム用の標準的な設定を示します。

    X-Ref Target - Figure 2-18

    図 2-18: [Terminal 1] ウィンドウのヘッダー バー

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 28UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=28

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    9. SDK では、 [Debug] ウ ィンド ウから [C/C++] ウ ィンド ウに切り替えます。 これには、 [Window] → [Open Perspective] → [C/C++] をク リ ッ ク します。 SDK で [C/C++] ウ ィンド ウが既に表示されている場合は、 この手順を無視してください。

    10. [File] → [New] → [Application Project] をク リ ッ ク します。

    New Project ウ ィザードが開きます。

    11. 次の表の情報に基づいて、 ウ ィザード画面で選択操作を実行します。

    SDK によって hello_world_r5 アプリ ケーシ ョ ン プロジェク トおよび hello_world_r5_bsp ボード サポート パッケージ (BSP) プロジェク トが [Project Explorer] の下に作成されます。 これらの両プロジェク トは自動的にコンパイルされ、 ELF ファ イルが作成されます。

    12. [hello_world_r5] を右ク リ ッ ク して [Run as] → [Run Configurations] をク リ ッ ク します。

    13. [Xilinx C/C++ application (System Debugger)] を右ク リ ッ ク して [New] をク リ ッ ク します。

    X-Ref Target - Figure 2-19

    図 2-19: [Terminal Settings] ダイアログ ボックス

    ウィザード画面 システム プロパティ 設定または使用するコマンド

    Application Project Project name hello_world_r5

    Use default location オン

    Hardware Platform edt_zcu102_wrapper_hw_platform_0

    Processor psu_cortexr5_0

    OS Platform standalone

    Language C

    Board Support Package [Create New] をオンにして「hello_world_r5_bsp」 と入力する。

    Templates Available Templates Hello World

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 29UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=29

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    SDK によって 「hello_world_r5 Debug」 とい う名前の新しい実行コンフ ィギュレーシ ョ ンが作成されます。

    アプ リ ケーシ ョ ンに関連するコンフ ィギュレーシ ョ ンは、 起動コンフ ィギュレーシ ョ ンの [Main] タブに自動入力されます。

    14. [Target Setup] タブをク リ ッ ク し、 設定を確認します。

    初期化 Tcl ファ イルへのコンフ ィギュレーシ ョ ン パスがあるこ とに着目して ください。 こ こでは psu_init.tcl へのパスです。 このファイルは、 デザインを SDK にエクスポート した際にエクスポート されたもので、 プロセッシング システムの初期化情報を含みます。

    15. [Run] をク リ ッ ク します。

    次の図に示すよ うに、 [Terminal 1] のシ リ アル通信ユーティ リ ティに 「Hello World」 と表示されます。

    注記: Zynq UltraScale+ 評価ボードで実行する上記ソフ ト ウェア アプリ ケーシ ョ ン用にビッ ト ス ト リームをダウンロードする必要はあ り ませんでした。 ARM Cortex R5 デュアル コアは既にボードに実装されています。 簡単なアプリ ケーシ ョ ンを実行するこ とを目的と したこのシステムの基本的な初期化は、 デバイス初期化 Tcl スク リプ トで実行されます。

    ここまでの結果

    アプリケーショ ン ソフ ト ウェアによって、 「Hello World」 の文字列が PS の UART0 ペリ フェラルに送信されました。

    UART0 からホス ト マシンで動作しているシ リ アル ターミナル アプリ ケーシ ョ ンへ、 「Hello world」 の文字列がバイ ト ごとに送信され、 文字列と して表示されます。

    その他の情報

    ボード サポート パッケージボード サポート パッケージ (BSP) はハードウェア プラ ッ ト フォームまたはボードのサポート コードです。 このコードは、 電源投入時の基本的な初期化に役立つだけでなく、 ソフ ト ウェア アプリ ケーシ ョ ンがハード ウェア プラ ッ トフォームまたはボードの最上位で実行されるよ うにサポート します。 これは、 ブート ローダーおよびデバイス ド ライバーを備えるオペレーティング システム固有のものにできます。

    X-Ref Target - Figure 2-20

    図 2-20: シリアル ターミナルへの出力

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 30UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=30

  • 第 2 章: Zynq UltraScale+ MPSoC プロセッシング システムのコンフ ィギュレーシ ョ ン

    ヒン ト : BSP を再生成する場合は、 [Project Explorer] の下に表示される BSP プロジェク ト を右ク リ ッ ク し、[Re-generate BSP Sources] をク リ ッ ク します。プロジェク トの作成後にターゲッ ト BSP を変更する場合は次を実行します。1. ターゲッ ト用に新規のボード サポート パッケージを作成します。2. [Project Explorer] で、 アプ リ ケーシ ョ ン プロジェク ト を右ク リ ッ ク して [Change Referenced BSP] をク リ ッ ク し、 設定する新しい BSP をポイン ト します。

    スタンドアロンの OSスタンドアロンはシンプルな下位ソフ ト ウェア層です。 これは、 キャ ッシュ、 割り込み、 例外などの基本的なプロ

    セッサ機能およびホス ト環境の基本的なプロセッサ機能へのアクセスを提供します。 これらの機能には、 標準の入

    力/出力、 プロファ イル、 停止、 終了が含まれます。 これはセミ ホス ト型のシングル スレッ ド環境です。

    T

    重要: この章で実行したアプリ ケーシ ョ ンが、 スタンドアロン OS の最上位に作成されました。 ソフ ト ウェア アプリケーシ ョ ンがターゲッ トにする BSP は、 新規アプリ ケーシ ョ ン プロジェク ト を作成するプロセスで選択されます。プロジェク トの作成後にターゲッ ト BSP を変更する場合は、 ソフ ト ウェア アプリ ケーシ ョ ンを右ク リ ッ ク して [Change Referenced BSP] をク リ ッ クする と、 ターゲッ ト BSP を管理できます。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 31UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=31

  • 第 3 章

    PS サブシステム向けのソフ トウェア構築この章では、 PS サブシステム向けにソフ ト ウェアを設定および構築する手順を示します。 こ こでは、 Vivado® Design Suite で設定した Zynq® UltraScale™+ ハードウェア プラ ッ ト フォーム (ハードウェア定義ファイル) を使用します。

    第 2 章では、 Vivado でハードウェア プラ ッ ト フォームを作成し、 エクスポート しました。 このハード ウェア プラ ット フォームには、 ハード ウェア ハンドオフ ファ イル、 プロセッシング システム初期化ファイル (psu_init)、 および PL ビッ ト ス ト リームが含まれます。 この章では、 ハード ウェア プラ ッ ト フォームをザイ リ ンクス SDK および PetaLinux で使用し、 プロセッシング システム用にソフ ト ウェアを設定します。

    この章では、 2 つの重要な点について説明します。 まずは、 以降の章でも使用可能なソフ ト ウェア コンポーネン トの構築および設定に役立つ情報を提供します。 次に、 特定の PS サブシステムを構築する手順を説明します。

    Zynq UltraScale+ のプロセッシング ユニッ トZynq UltraScale+™ にあるプロセッシング システムの主なプロセッシング ユニッ トは次のとおりです。

    • アプリ ケーシ ョ ン プロセッシング ユニッ ト : クワ ッ ド コア ARM® Cortex® A53 MPCore プロセッサ

    • リ アルタイム プロセッシング ユニッ ト : デュアル コア ARM Cortex R5 MPCore プロセッサ

    • グラフ ィ ッ クス プロセッシング ユニッ ト : ARM Mali 400 MP2 GPU

    • プラ ッ ト フォーム管理ユニッ ト (PMU)

    このセクシ ョ ンでは、 上記のユニッ ト をシステム ソフ ト ウェアを使用して設定する方法を説明します。 これは、FSBL (第 1 段階ブート ローダー ) を使用するブート レベルで実行するか、 またはプラ ッ ト フォーム管理ユニッ ト (PMU) に適用可能なシステム ファームウェアを使用して実行できます。

    SDK で Zynq UltraScale+ ハードウェア プラ ッ ト フォームを使用して、 次のタスクを実行します。

    1. ARM Cortex-A53 64 ビッ ト クワ ッ ド コア プロセッシング ユニッ ト (APU) および Cortex-R5 デュアル コア リ アルタイム プロセッシング ユニッ ト (RPU) 用の FSBL (第 1 段階ブート ローダー ) を作成します。

    2. APU および RPU 用のベアメ タル アプリ ケーシ ョ ンを作成します。

    3. ザイ リ ンクス SDK を使用してプラ ッ ト フォーム管理ユニッ ト (PMU) 用にプラ ッ ト フォーム管理ユニッ ト ファームウェアを作成します。

    ベアメ タル アプリ ケーシ ョ ンのほかに、 APU 向けの U-Boot および Linux イ メージの構築についても説明します。Linux イ メージおよび U-Boot は、 PetaLinux ビルド システムを使用して設定および構築できます。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 32UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=32

  • 第 3 章: PS サブシステム向けのソフ トウェア構築

    サンプル プロジェク ト : SDK でベアメ タル アプリケーシ ョ ン プロジェク ト を作成するこのサンプル プロジェク トでは、 ザイ リ ンクス SDK を起動し、 Vivado Design Suite を用いて作成された Zynq UltraScale+ 用ハードウェア プラ ッ ト フォームを使用してベアメ タル アプリ ケーシ ョ ンを作成します。 34 ページの図 3-1 に示す SDK の New Project ウ ィザードは、 Zynq UltraScale+ デバイスのプロセッシング サブシステム用にベアメ タル (スタンドアロン) アプリ ケーシ ョ ンを作成するためのオプシ ョ ンを示しています。

    ARM Cortex A53 ベースの APU 用 FSBL (第 1 段階ブートローダー ) を作成する

    第 1 段階ブート ローダー (FSBL) の作成を開始します。 Zynq UltraScale+ は APU または RPU 上で実行する FSBL をサポート します。 このため、 ユーザーは必要な ARM プロセッサに FSBL をロードでき、 ロード された FSBL は必要なアプリ ケーシ ョ ンまたは第 2 段階ブート ローダーを必要なコアにロード します。

    この例では、 ARM Cortex A53 コア 0 をターゲッ ト と した FSBL イ メージを作成します。

    1. SDK が起動していない場合は起動します。

    2. 第 2 章で作成したプロジェク トに基づいてワークスペース パスを設定します。 たとえば、C:\edt\edt_zcu102\edt_zcu102.sdk です。

    3. [File] → [New] → [Application Project] をク リ ッ ク します。

    New Project ウ ィザードが開きます。

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 33UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=33

  • 第 3 章: PS サブシステム向けのソフ トウェア構築

    4. [Application Project] で、 次のよ うにプロジェク ト を設定します。

    a. [Project name] に 「fsbl_a53」 と入力します。

    b. [Use default location] はオンのままにします。

    c. [OS Platform] ド ロ ップダウン リ ス トで [standalone] を選択します。

    5. [Target Hardware] では、 次を確認および設定します。

    a. 第 2 章で Vivado からエクスポート されたハード ウェア プラ ッ ト フォームと して、 [Hardware Platform] に [edt_zcu102_wrapper_hw_platform_0] が選択されているこ とを確認します。

    b. [Processor] で [psu_cortexa53_0] を選択します。

    6. [Target Software] では、 次を設定します。

    a. [Language] で [C] をオンにします。

    b. [Compiler] で [64-bit] を選択します。

    c. [Hypervisor Guest] で [No] を選択します。

    d. [Board Support Package] の [Create New] をオンにして 「a53_bsp」 と入力します。

    X-Ref Target - Figure 3-1

    図 3-1: New Project ウィザードの [Application Project]

    Zynq UltraScale+ MPSoC: エンベデッ ド デザイン チュート リアル 34UG1209 (v2017.1) 2017 年 7 月 28 日 japan.xilinx.com

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1209&Title=Zynq%20UltraScale+%20MPSoC%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2017.1&docPage=34

  • 第 3 章: PS サブシステム向けのソフ トウェア構築

    7. [Next] をク リ ッ ク します。

    [Templates] が表示されます。

    8. [Available Templates] で [Zynq MP FSBL] をク リ ッ ク します。

    9. [Finish] をク リ ッ ク します。

    SDK によってボード サポート パッケージおよび FSBL アプリ ケーシ ョ ンが作成されます。

    FSBL はデフォルトで基本メ ッセージを表示するよ うに設定されています。 次に、 ユーザーは FSBL ビルド設定を変更してデバッグ メ ッセージを有効にします。

    FSBL のデバッグ オプシ ョ ンの一覧は、 [fsbl_a53] → [src] → [xfsbl_debug.h] ファ イルを参照してください。

    この例では、 次を実行して FSBL_DEBUG_INFO を有効にします。

    1. [Project Explorer] で fsbl_a53 アプリ ケーシ ョ ンを右ク リ ッ ク します。

    2. [C/C++ Build] →