• 検索結果がありません。

Zynq-7000 SoC: エンベデッド デザイン チュートリアル (UG1165)

N/A
N/A
Protected

Academic year: 2021

シェア "Zynq-7000 SoC: エンベデッド デザイン チュートリアル (UG1165)"

Copied!
121
0
0

読み込み中.... (全文を見る)

全文

(1)

Zynq-7000 SoC:

エ ンベデ ッ ド

デザイ ン

チ ュ ー ト リ アル

効率的な エ ンベデ ッ ド

システムを

構築する ためのハンデ ィ

ガイ ド

UG1165 (v2018.2) 2018 年 6 月 6 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に

よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし

ては、必ず最新英語版をご参照ください。

このチュートリアルは 2017.3 で検証されており、それ以降のリリースでは手順が多少異なる場合あり。

UG1165 (v2018.3) 2018 年 12 月 5 日

(2)

改訂履歴

次の表に、 こ の文書の改訂履歴を示 し ます。 セ ク シ ョ ン 改訂内容 2018 年 6 月 6 日 バージ ョ ン 2018.2 全体的な ア ッ プデー ト 編集上の更新のみ。 技術内容の変更な し 。 2018 年 4 月 4 日 バージ ョ ン 2018.1

全体的な ア ッ プデー ト Vivado® Design Suite 2018.1 リ リ ース。 2017.3 リ リ ースか ら内

容の変更な し 。

(3)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 3 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

目次

改訂履歴 . . . 2

第 1 章: 概要

こ のガ イ ド について . . . 5 Zynq デバ イ ス に よ る エンベデ ッ ド プ ロ セ ッ サ デザ イ ンの簡略化. . . 6 Vivado ツールでデザ イ ン プ ロ セ ス を加速. . . 8 必要なセ ッ ト ア ッ プ . . . 9

第 2 章: Zynq SoC プ ロ セ ッ シ ング システムの使用

エンベデ ッ ド シ ス テ ムの コ ン フ ィ ギ ュ レーシ ョ ン . . . 13 サンプル プ ロ ジ ェ ク ト : Zynq SoC の新規エンベデ ッ ド プ ロ ジ ェ ク ト の作成. . . 14 サンプル プ ロ ジ ェ ク ト : Hello World アプ リ ケーシ ョ ンの実行 . . . 26 その他の情報 . . . 30

第 3 章: Zynq デバイ スでの GP ポー ト の使用

Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ムへのフ ァ ブ リ ッ ク に IP を追加 . . . 32 デザ イ ン用の ス タ ン ド ア ロ ン アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア . . . 42

第 4 章: SDK を使用 し たデバ ッ グ

Xilinx System Debugger. . . 44

SDK を使用 し た ソ フ ト ウ ェ アのデバ ッ グ . . . 46

第 5 章: AXI CDMA IP での HP ス レーブ ポー ト の使用

AXI CDMA を Zynq SoC PS の HP ス レーブ ポー ト に接続 . . . 50

デザ イ ン用の ス タ ン ド ア ロ ン アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア . . . 55

CDMA シ ス テ ム用の Linux OS ベース のアプ リ ケーシ ョ ン ソ フ ト ウ ェ ア. . . 58

SDK を使用 し た Linux CDMA アプ リ ケーシ ョ ンの実行. . . 60

第 6 章: Linux のブー ト および SDK でのデバ ッ ク

必要な環境 . . . 67

Zynq SoC ボー ド 上での Linux のブー ト . . . 68

第 7 章: Linux 用のカ ス タ ム IP と デバイ ス ド ラ イバーの作成

要件 . . . 88 ペ リ フ ェ ラ ル IP の作成. . . 89 PS の GP マ ス ター ポー ト を使用 し たペ リ フ ェ ラ ル IP の統合 . . . 94 Linux ベース のデバ イ ス ド ラ イ バーの開発. . . 96 実行中のカーネルへのモジ ュ ールの ロ ー ド と アプ リ ケーシ ョ ンの実行 . . . 98

第 8 章: SDK を使用 し た ソ フ ト ウ ェ アのプ ロ フ ァ イル

シ ス テ ム デバ ッ ガーを使用 し た SDK でのアプ リ ケーシ ョ ンのプ ロ フ ァ イ ル . . . 102 追加のデザ イ ン サポー ト オプシ ョ ン . . . 104

UG1165 (v2018.3) 2018 年 12 月 5 日

(4)

第 9 章: SDK を使用 し た Linux OS 認識デバ ッ グ

Linux OS 認識デバ ッ グの設定 . . . 106 OS 認識デバ ッ グ を使用 し た Linux プ ロ セ スおよびス レ ッ ド のデバ ッ グ. . . 109

付録 A: その他の リ ソ ースおよび法的通知

ザ イ リ ン ク ス リ ソ ース . . . 118 ソ リ ュ ーシ ョ ン セン ター . . . 118

Xilinx Documentation Navigator およびデザ イ ン ハブ . . . 118

Xilinx Documentation Navigator . . . 119

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

ザ イ リ ン ク ス リ ソ ース . . . 119

ト レーニ ン グ リ ソ ース . . . 120

(5)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 5 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 1 章

概要

こ のガ イ ド について

こ のガ イ ド では、Zynq®-7000 SoC を使用する ザ イ リ ン ク ス Vivado® Design Suite フ ローについて説明 し ます。 こ こ に 示すサンプル プ ロ ジ ェ ク ト は、 ザ イ リ ン ク ス の ZC702 Rev 1.1 評価ボー ド を ターゲ ッ ト と し てお り 、使用する Vivado お よ びザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) のバージ ョ ンは 2017.3 です。

注記: SDK を Vivado Design Suite の一部 と し て イ ン ス ト ールする には、 イ ン ス ト ー ラ ーに SDK を含め る よ う 選択する 必要があ り ます。8 ページの 「ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK)」 を参照 し て く だ さ い。 こ のガ イ ド のサンプル プ ロ ジ ェ ク ト は、64 ビ ッ ト の Windows 7 オペレーテ ィ ン グ シ ス テ ムで実行する ザ イ リ ン ク ス ツール、 お よ び 64 ビ ッ ト の Linux オペレーテ ィ ン グ シ ス テ ムで実行する PetaLinux を使用 し て作成 さ れています。 ほかの Windows イ ン ス ト ールで別バージ ョ ンのツールを実行 し た場合、 結果が異な る こ と があ り ます。 サンプル プ ロ ジ ェ ク ト は、 エンベデ ッ ド デザ イ ンの次の項目について紹介する こ と に重点を置いています。 注記: チ ュー ト リ アルで説明 さ れてい る ハー ド ウ ェ ア上で Linux をブー ト する手順は、 2017.3 リ リ ース の PetaLinux ツール特定の も のです。 こ のガ イ ド の Linux 部分の演習を実行する には、 PetaLinux ツールを Linux ホ ス ト マシ ンに イ ン ス ト ールす る 必要があ り ます。

• 第2 章 「Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ムの使用」 では、Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム (PS) を使用する シ ス テ ムの作成お よ び簡単な Hello World アプ リ ケーシ ョ ンの実行について説明 し ます。 簡単なデザ イ ン を例 と し て使用 し 、 ハー ド ウ ェ アお よ び ソ フ ト ウ ェ ア ツールの概要を説明 し ます。

• 第3 章 「Zynq デバ イ ス での GP ポー ト の使用」 では、Zynq SoC PS と プ ロ グ ラ マブル ロ ジ ッ ク (PL、 つま り フ ァ ブ リ ッ ク) を使用し てシ ス テ ム を作成する方法に加え、 PS および PL を実行する簡単なアプ リ ケーシ ョ ンの使用 方法について説明 し ます。

• 第4 章 「SDK を使用 し たデバ ッ グ」 では、 ザ イ リ ン ク ス の ソ フ ト ウ ェ ア開発キ ッ ト (SDK) のデバ ッ グ機能を使 用 し た ソ フ ト ウ ェ アのデバ ッ グについて説明 し ます。 前のデザ イ ン を使用 し て ソ フ ト ウ ェ ア ベア メ タ ル (OS な

し) を実行し 、 デバ ッ グ方法を示し ます。

• 第5 章 「AXI CDMA IP での HP ス レーブ ポー ト の使用」 では、Zynq SoC ボー ド におけ る Linux OS のブー ト お よ び PetaLinux ツールでのアプ リ ケーシ ョ ンのデバ ッ グに関する情報を示 し ます。 Zynq SoC でブー ト で き るデ バ イ ス と 、 それ ら のデバ イ ス のプ ロ グ ラ ム方法を説明 し ます。

• 第6 章 「Linux のブー ト および SDK でのデバ ッ ク 」 では、PetaLinux ツールを使用し て Zynq SoC ボー ド 上で Linux OS をブー ト する手順を説明し ます。 フ ァ ブ リ ッ ク で AXI CDMA IP を イ ン ス タ ン シエー ト する際の情報を 提供 し 、 こ の IP を HP (High Performance) 64 ビ ッ ト ス レーブ ポー ト に接続する方法を説明し ます。

• 第7 章 「Linux 用のカ ス タ ム IP と デバ イ ス ド ラ イ バーの作成」 では、Create and Package New IP ウ ィ ザー ド を使 用 し て IP を作成する方法を説明 し ます。 Linux ベース のデバ イ ス ド ラ イ バーの開発およびカーネルの コ ンパ イ ルについて説明 し ます。 ま た、Zynq デバ イ ス用に作成 し た IP を使用 し てシ ス テ ム を設計 し ます。

(6)

第 1 章: 概要

• 第8 章 「SDK を使用 し た ソ フ ト ウ ェ アのプ ロ フ ァ イ ル」 では、 ス タ ン ド ア ロ ン BSP および第6 章で作成 し た AXI CDMA 関連のアプ リ ケーシ ョ ンのプ ロ フ ァ イ ル機能について説明 し ます。 ソ フ ト ウ ェ ア をチ ェ ッ ク し、 ボ

ト ルネ ッ ク が存在す る か ど う かを確認す る 方法を示 し ます。

• 第9 章 「SDK を使用 し た Linux OS 認識デバ ッ グ」 では、Linux OS 認識デバ ッ グ機能について説明 し、 Linux カーネルお よ び基本的な Linux サンプルに使用 し ます。 こ れは、 SDK で提供 さ れてい る Linux プ ロ セ ス デバ ッ グ と は異な り ます。Zynq Arm 9 プ ロ セ ッ サ コ ア上で実行中の Linux OS と 、 Linux OS 上で実行中の複数のアプ

リ ケーシ ョ ン プ ロ セ ス/ス レ ッ ド を同時にデバ ッ グで き ます。 • 付録A 「その他の リ ソースおよび法的通知」 では、 こ のガ イ ド に関連する その他の資料への リ ン ク を提供し ます。

サン プル プ ロ ジ ェ ク ト

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

その他の資料

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

Zynq デバイ スによ る エ ンベデ ッ ド プ ロ セ ッ サ デザイ

ンの簡略化

エンベデ ッ ド シ ス テ ムは複雑です。 エンベデ ッ ド デザ イ ンのハー ド ウ ェ ア部分 と ソ フ ト ウ ェ ア部分は、 それ自体が プ ロ ジ ェ ク ト です。1 つのシ ス テ ム と し て機能する よ う こ の 2 つのデザ イ ン コ ンポーネン ト を統合する と 、 それに 伴 う 課題が出て き ます。FPGA デザ イ ン プ ロ ジ ェ ク ト を追加する と 、 デザ イ ンは さ ら に複雑にな り ます。

Zynq SoC ソ リ ューシ ョ ンでは、 1 つの SoC でプ ロ グ ラ マブル ロ ジ ッ ク と 共に Arm Cortex-A9 デュ アル コ アが提供 さ れてい る ので、 こ の複雑性が軽減 さ れます。

設計プ ロ セ ス を単純にす る ため、ザ イ リ ン ク ス では Vivado Design Suite およびザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を提供 し ています。 こ れ ら のツールは、 FPGA を結合し た SoC デバ イ ス向けのエンベデ ッ ド シ ス テ ム デザ イ ン を容易にす る ために必要な も のをすべて提供 し ます。 こ れ ら の ツールを組み合わせ る こ と で、 ハー ド ウ ェ ア と ソ フ ト ウ ェ アのアプ リ ケーシ ョ ンの設計、 デバ ッ グ、 コ ー ド の実行が可能にな り 、 デザ イ ン を実際のボー ド に移行 し て検証お よ び評価を実行で き ます。

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

(7)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 7 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 1 章: 概要

Vivado Design Suite: System Edition

ザ イ リ ン ク ス では、 さ ま ざ ま な開発シ ス テ ム ツールを Vivado Design Suite に ま と めて提供 し ています。 Vivado Design Suite の複数のエデ ィ シ ョ ン をエンベデ ッ ド シ ス テ ム開発に使用で き ます。 こ のガ イ ド では、 System Edition を使用 し ます。図1-1 に Vivado Design Suite の各エデ ィ シ ョ ンの機能を示 し ます。

その他の Vivado コ ンポーネン ト

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

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

• サンプル プ ロ ジ ェ ク ト X-Ref Target - Figure 1-1

図 1-1: Vivado Design Suite のエデ ィ シ ョ ン

(8)

第 1 章: 概要

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

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

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

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

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

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

• Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム内の Arm Cortex-A9 MP プ ロ セ ッ サを ターゲ ッ ト に し た C/C++ ソ フ ト ウ ェ ア 開発用 GNU コ ンパ イ ラ およびデバ ッ ガー

PetaLinux ツール

PetaLinux ツール セ ッ ト は、 エンベデ ッ ド Linux シ ス テ ム開発キ ッ ト です。 こ の開発キ ッ ト は、 Linux OS に加え、 ザ イ リ ン ク ス シ リ コ ン デバ イ ス用の完全な コ ン フ ィ ギ ュ レーシ ョ ン、 ビル ド 、 お よび導入環境を含む、 完全な Linux デ ィ ス ト リ ビ ュ ーシ ョ ン を提供 し ます。 詳細は、エンベデ ッ ド デザ イ ン ツール ウ ェ ブ ページを参照 し て く だ さ い。 PetaLinux ツールのデザ イ ン ハブは、 PetaLinux ツールの情報および資料への リ ン ク を提供 し ます。 詳細は、エンベ デ ッ ド デザ イ ン ハブ - PetaLinux ツールを参照 し て く だ さ い。

Vivado ツールでデザイ ン プ ロ セス を加速

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

Vivado ツール と IP イ ン テ グ レーターは、 一連のハー ド ウ ェ ア シ ス テ ム開発を完了ま でサポー ト し ます。 こ れには、 マ イ ク ロ プ ロ セ ッ サの仕様、 ペ リ フ ェ ラ ル、 各 コ ン ポーネ ン ト の接続、 それ ら の詳細な設定な ど が含まれます。 SDK は ソ フ ト ウ ェ ア開発に使用 さ れ、 Vivado Design Suite の一部 と し て利用で き ます。 ま たは、 ほかのザ イ リ ン ク ス ツールを イ ン ス ト ールせずに、SDK のみを イ ン ス ト ール し て使用する こ と も 可能です。 SDK は、 ソ フ ト ウ ェ ア アプ

リ ケーシ ョ ンのデバ ッ グに も 使用で き ます。

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

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

(9)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 9 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com 第 1 章: 概要

必要なセ ッ ト ア ッ プ

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

ハー ド ウ ェ ア要件

こ のチ ュ ー ト リ アルは、Zynq ZC702 Rev 1.1 評価ボー ド を ターゲ ッ ト と し てお り 、 Rev 1.0 ボー ド に も 使用で き ます。 こ のガ イ ド を活用す る にあ た っ て、 評価ボー ド に同梱 さ れてい る 次の も のを用意 し て く だ さ い。

• ZC702 評価ボー ド

• AC 電源アダプ ター (12 VDC)

• USB Type-A/Mini-B ケーブル (UART 通信用)

• USB-Micro JTAG 接続を介する プ ロ グ ラ ムおよびデバ ッ グ用の USB Type-A/USB Micro ケーブル • Linux ブー ト 用の SD-MMC フ ラ ッ シ ュ カー ド

• タ ーゲ ッ ト ボー ド と ホ ス ト マシ ンの接続用の イーサネ ッ ト ケーブル

(10)

第 1 章: 概要

イ ン ス ト ール要件

Vivado Design Suite お よび SDK

2017.3 ツールが イ ン ス ト ール さ れてい る こ と を確認 し て く だ さ い。 ツール バージ ョ ンが最新であ る かど う かは、

https://japan.xilinx.com/support/download.html にア ク セ ス し て確認で き ます。

Vivado Design Suite および SDK ツールの両方が イ ン ス ト ール さ れてい る こ と を確認し て く だ さ い。 Vivado Design Suite を イ ン ス ト ールする際に、 次の図に示すよ う に [Software Development Kit (SDK)] をオンにする こ と で、 イ ン ス

ト ールに含め る 必要のあ る オプシ ョ ンの ソ フ ト ウ ェ ア ツール と し て SDK を選択で き ます。 SDK を単独で イ ン ス ト ールす る には、[Software Development Kit (SDK)] のみをオンに し 、 ほかの ソ フ ト ウ ェ ア製品の選択をオフに し て イ ン ス ト ー ラ ーを実行 し ます。

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

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

X-Ref Target - Figure 1-2

(11)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 11 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 1 章: 概要

PetaLinux ツール

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

• RHEL 7.2/7.3 (64 ビ ッ ト ) • CentOS 7.2/7.3 (64 ビ ッ ト ) • Ubuntu 16.04.1 (64 ビ ッ ト )

こ の ツールは、 専用 Linux ホ ス ト シ ス テ ム、 ま たは Windows 開発プ ラ ッ ト フ ォーム上で こ れ ら の Linux オペレー テ ィ ン グ シ ス テ ムのいずれかが稼働 し てい る仮想マシ ン を使用で き ます。 PetaLinux ツールを選択し たシ ス テ ムに イ ン ス ト ールする には、 次を実行する必要があ り ます。 • PetaLinux 2017.3 SDK ツールを、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロー ド する。 • PetaLinux 2017.3 リ リ ース パ ッ ケージ を イ ン ス ト ールする。 • ワー ク ス テーシ ョ ン ま たは仮想マシ ンに共通のシ ス テ ム パ ッ ケージおよび ラ イ ブ ラ リ を追加する。 詳細は、 『PetaLinux ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 11] の 「 イ ン ス ト ール要件」 を参照 し て く だ さ い。

必要な環境

• 8 GB RAM (ザ イ リ ン ク ス ツールで推奨 さ れ る最小サ イ ズ) • 2 GHz CPU ク ロ ッ ク ま たは同等の CPU (少な く と も 8 つの コ ア) • 100 GB のハー ド デ ィ ス ク 空き容量

PetaLinux パ ッ ケージの展開

デフ ォ ル ト では、 パ ッ ケージが現在のデ ィ レ ク ト リ のサブデ ィ レ ク ト リ と し て イ ン ス ト ール さ れます。 イ ン ス ト ー ル パス を指定する こ と も で き ます。 ダ ウ ン ロー ド し た PetaLinux イ ン ス ト ー ラ ーを実行し ます。 注記: PetaLinux の イ ン ス ト ール パスは短 く し て く だ さ い。 パス が 255 文字を超え る と 、 PetaLinux のビル ド がエ ラ ー にな り ます。 bash> ./petalinux-v2017.3-final-installer.run PetaLinux は、 こ の コ マン ド の作業デ ィ レ ク ト リ の直下にあ る petalinux-v2017.3-final デ ィ レ ク ト リ に イ ン ス ト ール さ れます。 イ ン ス ト ー ラ ーを ホーム デ ィ レ ク ト リ (/home/user) に置いた場合、 PetaLinux は /home/user/petalinux-v2017.3-final に イ ン ス ト ール さ れます。 PetaLinux 環境のセ ッ ト ア ッ プ、 プ ロ ジ ェ ク ト の作成、 およびプ ロ ジ ェ ク ト の使用例の詳細は、第6 章 「Linux の ブー ト お よ び SDK でのデバ ッ ク 」 を参照 し て く だ さ い。PetaLinux の イ ン ス ト ールおよび使用方法に関する詳細は、 『PetaLinux ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 11] に記載 さ れてい ます。

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

ザ イ リ ン ク ス の ソ フ ト ウ ェ アには FLEXnet ラ イ セン ス が使用 さ れてい ます。 ソ フ ト ウ ェ ア を初めて起動する際、 ラ イ セ ン ス の検証プ ロ セ ス が実行 さ れます。 ラ イ セ ン ス検証で有効な ラ イ セ ン ス が検出 さ れない場合、 ラ イ セ ン ス ウ ィ ザー ド に従っ て ラ イ セ ン ス を取得 し 、 イ ン ス ト ール し た ツールでその ラ イ セ ン ス を使用で き る よ う に し ます。 ソ フ ト ウ ェ アの フル バージ ョ ンが不要な場合は、 評価版 ラ イ セン ス を使用で き ます。 イ ン ス ト ールの手順 と 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよび ラ イ セン ス』 (UG973) [参照 7] を参照し て く だ さ い。

(12)

第 1 章: 概要

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

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

(13)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 13 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章

Zynq SoC プ ロ セ ッ シ ング シス テムの使用

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

Zynq SoC は、 Arm Cortex™-A9 コ ア、 多数のハー ド IP コ ンポーネン ト 、 およびプ ロ グ ラ マブル ロ ジ ッ ク (PL) で構成 さ れてい ます。 こ れ ら は次の 2 つの方法で使用で き ます。 • Zynq SoC PS は、 フ ァ ブ リ ッ ク IP を追加せずに、 ス タ ン ド ア ロ ン モー ド で使用で き ます。 • IP コ ア を フ ァ ブ リ ッ ク で イ ン ス タ ン シエー ト し、 PS と PL の組み合わせ と し て Zynq PS に接続で き ます。

エ ンベデ ッ ド システムのコ ン フ ィ ギ ュ レーシ ョ ン

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

UG1165 (v2018.3) 2018 年 12 月 5 日

(14)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

サン プル プ ロ ジ ェ ク ト : Zynq SoC の新規エ ンベデ ッ ド

プ ロ ジ ェ ク ト の作成

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

デザイ ンの開始

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

2. [Quick Start] セ ク シ ョ ンの [Create Project] を ク リ ッ ク し、 New Project ウ ィ ザー ド を開き ます。 3. ウ ィ ザー ド の各ページで次の表の情報に基づいて設定を選択 し ます。

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

エ ンベデ ッ ド プ ロ セ ッ サ プ ロ ジ ェ ク ト の作成

Add Sources ウ ィ ザー ド を使用 し て、 エンベデ ッ ド プ ロ セ ッ サ プ ロ ジ ェ ク ト を作成 し ます。 1. Flow Navigator の [IP Integrator] → [Create Block Design] を ク リ ッ ク し ます。

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

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

Project Name Project name edt_tutorial

Project location C:/designs Create project subdirectory オン

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

RTL Project

Do not specify sources at this time オ フ Add Sources 変更な し 。

[Add Existing IP] 変更な し 。 Add Constraints 変更な し 。

Default Part Select Boards

ボー ド ZYNQ-7 ZC702 Evaluation Board New Project Summary プ ロ ジ ェ ク ト サマ リ プ ロ ジ ェ ク ト サマ リ を確認。

X-Ref Target - Figure 2-1

(15)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 15 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

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

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

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

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

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

ウ ィ ザー ド ページ シ ス テム プ ロパテ ィ 設定ま たは使用す る コ マ ン ド Create Block Design Design name tutorial_bd

Directory <Local to Project> Specify source set Design Sources

(16)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

6. ZYNQ プ ロ セ ッ シ ン グ シ ス テ ム IP を ダブル ク リ ッ ク し、 ブ ロ ッ ク デザ イ ンに追加 し ます。

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

X-Ref Target - Figure 2-2

(17)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 17 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

Vivado での Zynq7 プ ロ セ ッ シ ン グ シス テムの管理

Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム をデザ イ ンに追加 し たので、 オプシ ョ ン を設定 し ます。 1. [Diagram] ウ ィ ン ド ウ で、 ZYNQ7 Processing System ブ ロ ッ ク を ダブル ク リ ッ ク し ます。

図2-3 に示す [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 デフ ォル ト では、 プ ロ セ ッ シ ン グ シ ス テ ムに ペ リ フ ェ ラ ルは接続 さ れてい ません。

2. ZC702 ボー ド 用に作成 さ れたテ ンプ レー ト を使用 し ます。 [Re-customize IP] ウ ィ ン ド ウ で [Presets] を ク リ ッ ク し 、[ZC702] を ク リ ッ ク し ます。

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

X-Ref Target - Figure 2-3

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

(18)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

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

3. ブ ロ ッ ク 図で緑色で示 さ れてい る I/O ペ リ フ ェ ラ ルの 1 つを ク リ ッ ク し ます。 選択 し たペ リ フ ェ ラ ルが [MIO Configuration] ページに表示 さ れます。

X-Ref Target - Figure 2-4

図 2-4: ア ク テ ィ ブなペ リ フ ェ ラルが示 さ れた I/O Peripherals

X-Ref Target - Figure 2-5

(19)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 19 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

4. [OK] を ク リ ッ ク し て [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス閉 じ ます。 ZC702 ボー ド のプ リ セ ッ ト が適用 さ れ ま す。

[Diagram] ウ ィ ン ド ウ で、 次の図に示すよ う なデザ イ ン アシ ス タ ン ト が使用可能であ る こ と を示す メ ッ セージが 表示 さ れます。

5. [Run Block Automation] リ ン ク を ク リ ッ ク し ます。 [Run Block Automation] ダ イ ア ロ グ ボ ッ ク ス が開き ます。

[Cross Trigger In] お よび [Cross Trigger Out] が [Disable] に設定 さ れてい る こ と に注意 し て く だ さ い。 ク ロ ス ト リ ガーの設定に関す る 詳細なチ ュ ー ト リ アルは、 『Vivado Design Suite チ ュー ト リ アル: エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940) [参照 6] を参照 し て く だ さ い。

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

デザイ ンおよび接続ポー ト の検証

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

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

2. M_AXI_GP0_ACLK を接続する必要があ る こ と を示す ク リ テ ィ カル エ ラ ー メ ッ セージが表示 さ れます。

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

4. [Diagram] ウ ィ ン ド ウ で、 ZYNQ7 Processing System の M_AXI_GP0_ACLK ポー ト を見つけ ます。 コ ネ ク タ ポー ト の上にマ ウ ス ポ イ ン ターを置き、 鉛筆ア イ コ ン を表示 さ せます。

X-Ref Target - Figure 2-6

図 2-6: [Run Block Automation] リ ン ク

X-Ref Target - Figure 2-7

図 2-7: [Critical Messages] ダ イ ア ログ ボ ッ ク ス

(20)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用 5. M_AXI_GP0_ACLK ポー ト を ク リ ッ ク し て FCLK_CLK0 入力ポー ト まで ド ラ ッ グ し、 2 つのポー ト を接続し ます。 6. デザ イ ン を再び検証 し 、 ほかにエ ラ ーがない こ と を確認 し ます。 こ れには、[Diagram] ウ ィ ン ド ウ の空白部分を 右 ク リ ッ ク し て [Validate Design] を ク リ ッ ク し ます。 検証が成功 し 、 デザ イ ン にエ ラ ーや重大な警告がない こ と を示す メ ッ セージ ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ま す。 7. [OK] を ク リ ッ ク し て メ ッ セージ を閉 じ ます。

8. [Block Design] 環境の [Sources] ウ ィ ン ド ウ を ク リ ッ ク し ます。 9. [Hierarchy] タ ブを ク リ ッ ク し ます。

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

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

ヒ ン ト: HDL ラ ッ パーは、 デザ イ ン ツールに必要な最上位エンテ ィ テ ィ です。 11. [Let Vivado manage wrapper and auto-update] をオンに し、 [OK] を ク リ ッ ク し ます。 12. [Sources] ウ ィ ン ド ウ で、 [Design Sources] の下にあ る [tutorial_bd_wrapper] を展開 し ます。 X-Ref Target - Figure 2-8

(21)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 21 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

13. [tutorial_bd_i - tutorial_bd (tutorial_bd.bd)] と い う 最上位ブ ロ ッ ク を右 ク リ ッ ク し 、 [Generate Output Products] を ク リ ッ ク し ます。

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

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

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

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

15. [Generate Output Products] の処理が完了 し た ら 、 [OK] を ク リ ッ ク し ます。 X-Ref Target - Figure 2-9

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

(22)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

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

デザイ ンの合成、 イ ン プ リ メ ン テーシ ョ ンの実行、 およびビ ッ ト ス ト

リ ームの生成

1. デザ イ ン を合成 し ます。Flow Navigator で [Synthesis] → [Run Synthesis] を ク リ ッ ク し ます。

2. 合成の開始前にプ ロ ジ ェ ク ト を保存す る よ う メ ッ セージが表示 さ れた場合は、[Save] を ク リ ッ ク し ます。 合成の実行中、 ウ ィ ン ド ウ の右上に ス テー タ ス バーが表示 さ れます。 こ の ス テータ ス バーは、 デザ イ ン プ ロ セ ス を と お し て、 さ ま ざ ま な理由に よ り 表示 さ れます。 ス テー タ ス バーは、 プ ロ セ ス がバ ッ ク グ ラ ン ド で実行 さ れてい る こ と を示 し ます。

合成が完了す る と 、[Synthesis Completed] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 X-Ref Target - Figure 2-10

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

X-Ref Target - Figure 2-11

図 2-11: Run Synthesis

X-Ref Target - Figure 2-12

(23)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 23 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

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

こ の場合 も 、 プ ロ セ ス がバ ッ ク グ ラ ウ ン ド で実行 さ れてい る こ と が、 ス テー タ ス バーに よ っ て示 さ れます。 イ ンプ リ メ ン テーシ ョ ンが完了す る と 、[Implementation Completed] ダ イ ア ロ グ ボ ッ ク ス が開き ます。

4. [Generate Bitstream] を ク リ ッ ク し て [OK] を ク リ ッ ク し ます。

ビ ッ ト ス ト リ ームの生成が完了す る と 、[Bitstream Generation Completed] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 5. [Cancel] を ク リ ッ ク し て ウ ィ ン ド ウ を閉じ ます。

6. ビ ッ ト ス ト リ ームの生成が完了 し た ら 、 次のセ ク シ ョ ンの説明に従っ てハー ド ウ ェ ア を エ ク ス ポー ト し て ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を起動し ます。

ハー ド ウ ェ アの SDK へのエ ク スポー ト

こ の例では、Vivado か ら SDK を起動 し ます。

1. [File] → [Export] → [Export Hardware] を ク リ ッ ク し ます。

[Export Hardware] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 [Include bitstream] がオンにな っ てい る こ と (デザ イ ンで、 PL デザ イ ン と ビ ッ ト ス ト リ ームが生成 さ れてい る 場合のみ)、および [Export to] がデフ ォル ト オプシ ョ ンの [<Local to Project>] に設定 さ れてい る こ と を確認し ます。

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

ヒ ン ト: ハー ド ウ ェ アは ZIP フ ァ イル (<project wrapper>.hdf) でエ ク スポー ト さ れます。 SDK が起動する と フ ァ イ ルは自動的に解凍 さ れ、SDK プ ロ ジ ェ ク ト ハー ド ウ ェ ア プ ラ ッ ト フ ォーム フ ォルダーにすべてのフ ァ イ ル が含ま れます。 3. [File] → [Launch SDK] を ク リ ッ ク し ます。 [Launch SDK] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 ヒ ン ト: SDK はス タ ン ド ア ロ ン モー ド で起動する こ と も で き、 エ ク スポー ト さ れたハー ド ウ ェ アを使用で き ます。 その場合、SDK を起動 し 、 エ ク ス ポー ト さ れた新 し い ターゲ ッ ト ハー ド ウ ェ ア を新 し いプ ロ ジ ェ ク ト の作成時にポ イ ン ト し ます。

X-Ref Target - Figure 2-13

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

(24)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

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

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

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

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

6. SDK を閉 じ ます。 X-Ref Target - Figure 2-14

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

X-Ref Target - Figure 2-15

(25)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 25 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

こ こ ま での結果

Vivado に よ っ て、 ソ フ ト ウ ェ ア を開発する ための選択 し た ワー ク スペース にハー ド ウ ェ ア仕様がエ ク ス ポー ト さ れ ま し た。[<Local to Project>] を選択し ていれば、 Vivado プ ロ ジ ェ ク ト フ ォ ルダーに新 し い ワー ク スペース が作成 さ れ ます。 ワー ク スペース名は <project_name>.sdk です。 こ の例では、 C:/designs/edt_tutorial/edt_tutorial.sdk と い う 名前の ワー ク スペース が作成 さ れます。 Vivado デザ イ ン ツールに よ り 、 デザ イ ンのハー ド ウ ェ ア定義フ ァ イ ル ( こ の例では system.hdf) が SDK にエ ク ス ポー ト さ れま し た。 system.hdf には、 次のフ ァ イ ルが含まれます。 • tutorial_bd.tcl • ps7_init.c • ps7_init.h • ps7_init.html • ps7_init.tcl • ps7_init_gpl.c • ps7_init_gpl.h system.hdf フ ァ イ ルは、 デフ ォル ト では SDK の起動時に開かれます。 こ のフ ァ イ ルか ら 読み出 さ れ る シ ス テ ムの ア ド レ ス マ ッ プがデフ ォル ト で SDK ウ ィ ン ド ウ に表示 さ れます。

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

次の手順

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

UG1165 (v2018.3) 2018 年 12 月 5 日

(26)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

サン プル プ ロ ジ ェ ク ト : Hello World ア プ リ ケーシ ョ ン

の実行

こ の例では、 ザ イ リ ン ク ス SDK の Xilinx System Debugger を使用 し て、 ボー ド 設定の管理、 ケーブル接続、 PC を介 し たボー ド への接続、 お よ び JTAG モー ド で簡単な hello world ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を実行する方法を説 明 し ます。

注記: ボー ド が既にセ ッ ト ア ッ プ さ れてい る場合は、手順5 に進みます。 1. 電源ケーブルを ボー ド に接続 し ます。

2. USB Micro ケーブルで Windows ホ ス ト マシ ン と ターゲ ッ ト ボー ド を次の SW10 ス イ ッ チ設定を使用 し て接続 し ます。

Bit-1 は 0 Bit-2 は 1

注記: 0 は開、 1 は閉です。

3. USB ケーブルで Windows ホ ス ト マシ ン と ターゲ ッ ト ボー ド の コ ネ ク タ J17 を接続 し ます。 こ れは、 USB か ら シ リ アルへの転送に使用 さ れます。

(27)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 27 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com 第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用 4. 次の図に示すス イ ッ チを使用 し て ZC702 ボー ド に電源を投入 し ます。 重要: ジ ャ ンパー J27 および J28 は SD カー ド ス ロ ッ ト か ら離れた側に設定し、 SW16 ス イ ッ チは図2-16 に示す よ う に設定 し ます。 5. SDK を開き、 プ ロ ジ ェ ク ト フ ァ イ ルへの ワー ク スペース パス ( こ の例では C:/designs/edt_tutorial/edt_tutorial.sdk) を設定し ます。

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

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

X-Ref Target - Figure 2-16

図 2-16: ZC702 ボー ド の電源ス イ ッ チ

X-Ref Target - Figure 2-17

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

(28)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

7. [Connect] ボ タ ン を ク リ ッ ク し、 シ リ アル コ ン フ ィ ギ ュ レーシ ョ ン を設定し て接続し ます。 8. [Settings] ボ タ ン を ク リ ッ ク し て [Terminal Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。

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

9. [File] → [New] → [Application Project] を ク リ ッ ク し ます。 New Project ウ ィ ザー ド が開き ます。

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

hello_world アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト および hello world_bsp ボー ド サポー ト パ ッ ケージ (BSP) プ ロ ジ ェ ク ト が作成 さ れ、[Project Explorer] ビ ューに表示 さ れます。 こ れ ら 両プ ロ ジ ェ ク ト が自動的に コ ンパ イ ル さ れ、ELF フ ァ イ ルが作成 さ れます。

X-Ref Target - Figure 2-18

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

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

Application Project Project name hello_world Use default location オン

Hardware Platform tutorial_bd_wrapper_hw_platform_0

Processor PS7_cortexa9_0

OS Platform standalone

Language C

Board Support Package [Create New] をオンに し て 「hello_world_bsp」 と 入力。 Templates Available Templates Hello World

(29)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 29 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com 第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用 重要: BSP を再生成する場合は、 [Project Explorer] ビ ューに表示さ れる BSP プ ロ ジ ェ ク ト を右ク リ ッ ク し、 [Re-generate BSP Sources] を ク リ ッ ク し ます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は、 次を実行 し ます。 1. ターゲ ッ ト 用に新規のボー ド サポー ト パ ッ ケージ を作成し ます。

2. [Project Explorer] ビ ューで、 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク し 、 新 し い BSP を指定し ます。

11. [hello_world] を右 ク リ ッ ク し て [Run as] → [Run Configurations] を ク リ ッ ク し ます。 12. [Xilinx C/C++ application (System Debugger)] を右 ク リ ッ ク し て [New] を ク リ ッ ク し ます。

hello_world Debug と い う 名前の新し い実行コ ン フ ィ ギ ュ レーシ ョ ンが作成 さ れます。 アプ リ ケーシ ョ ンに関連す る コ ン フ ィ ギ ュ レーシ ョ ンは、 起動 コ ン フ ィ ギ ュ レーシ ョ ンの [Main] タ ブに自動入 力 さ れます。 13. [Target Setup] タ ブを ク リ ッ ク し、 設定を確認 し ます。 初期化 Tcl フ ァ イ ルへの コ ン フ ィ ギ ュ レーシ ョ ン パス があ る こ と に注目 し て く だ さ い。 こ こ では ps7_init.tcl へのパス です。 こ のフ ァ イ ルは、 デザ イ ン を SDK にエ ク ス ポー ト し た際にエ ク ス ポー ト さ れ た も ので、 プ ロ セ ッ シ ン グ シ ス テ ムの初期化情報を含みます。 14. [Run] を ク リ ッ ク し ます。

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

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

こ こ ま での結果

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

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

X-Ref Target - Figure 2-19

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

(30)

第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用

その他の情報

ボー ド サポー ト パ ッ ケージ

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

ス タ ン ド ア ロ ン OS

ス タ ン ド ア ロ ンはシ ンプルな下位 ソ フ ト ウ ェ ア層です。 キ ャ ッ シ ュ 、 割 り 込み、 例外な ど の基本的なプ ロ セ ッ サ機 能、 お よ びホ ス ト 環境の基本的なプ ロ セ ッ サ機能へのア ク セ ス を提供 し ます。 こ れ ら の機能には、 標準の入力/出力、 プ ロ フ ァ イ ル、 停止、 終了が含まれます。 こ れはセ ミ ホ ス ト 型のシ ン グル ス レ ッ ド 環境です。 T 重要: こ の章で実行し たアプ リ ケーシ ョ ンは、 ス タ ン ド ア ロ ン OS 上に作成さ れています。 ソ フ ト ウ ェ ア アプ リ ケー シ ョ ンが タ ーゲ ッ ト にす る BSP は、 新規アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する プ ロ セ ス で選択 し ます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク し ます。

(31)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 31 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 3 章

Zynq デバイ スでの GP ポー ト の使用

ザ イ リ ン ク ス の Zynq®-7000 SoC をエンベデ ッ ド デザ イ ンのプ ラ ッ ト フ ォーム と し て使用する特徴の 1 つは、 Arm

Cortex-A9 デュ アル コ ア プ ロ セ ッ シ ン グ シ ス テ ムに Zynq SoC のプ ロ セ ッ シ ン グ シ ス テ ム (PS) を使用で き る だけで な く 、 プ ロ グ ラ マブル ロ ジ ッ ク (PL) も 使用で き る こ と です。

こ の章では、 次を含むデザ イ ン を作成 し ます。

• フ ァ ブ リ ッ ク (PL) にフ ァ ブ リ ッ ク か ら PS への割 り 込みを持つ AXI GPIO お よび AXI Timer • EMIO イ ン ターフ ェ イ ス を介し て フ ァ ブ リ ッ ク (PL) 側のピ ンに接続 さ れ る Zynq SoC PS GPIO ピ ン

こ の章の フ ロ ーは第2 章の も の と 似てお り 、Zynq デバ イ ス をベース のハー ド ウ ェ ア デザ イ ン と し て使用し ます。 こ こ では、第2 章で説明 さ れてい る Zynq デバ イ ス の Vivado® IP イ ン テ グ レーター ブ ロ ッ ク デザ イ ンへの追加に関す

る 概念を理解 し てい る こ と を前提 と し てい ます。 こ の章全体を通 し て第2 章の内容について言及 し てい る ため、 前 章を飛ば し た場合は必要に応 じ て内容を確認 し て く だ さ い。

(32)

第 3 章: Zynq デバイ スでの GP ポー ト の使用

Zynq SoC プ ロ セ ッ シ ング シ ス テムへの フ ァ ブ リ ッ ク に

IP を追加

フ ァ ブ リ ッ ク で追加可能な Zynq SoC PS と 密結合 さ れ る IP は、 その複雑 さ に制限はあ り ません。 こ のセ ク シ ョ ンで は、AXI GPIO、 割 り 込みを持つ AXI Timer、 お よび EMIO イ ン ターフ ェ イ ス を介 し て PL 側のピ ンに接続 さ れる PS の GPIO ピ ン を含む簡単な例を説明し ます。

デザ イ ン を作成 し て、 フ ァ ブ リ ッ ク に イ ン ス タ ン シエー ト さ れた AXI GPIO および割 り 込み付き AXI Timer、 および EMIO イ ン ターフ ェ イ ス を使用する PS の GPIO の機能を確認 し ます。図3-1 にシ ス テ ムのブ ロ ッ ク 図を示 し ます。 第2 章で作成 し た シ ス テ ム を使用 し て、14 ページの 「エンベデ ッ ド プ ロ セ ッ サ プ ロ ジ ェ ク ト の作成」 の後か ら 続行 で き ます。 こ の章の例では、第2 章のデザ イ ン を拡張 し ます。 次のデザ イ ン変更を加え ます。 • フ ァ ブ リ ッ ク 側の AXI GPIO は、 1 ビ ッ ト のチ ャ ネル幅が割 り 当て ら れ、 ZC702 ボー ド 上の SW5 プ ッ シ ュ ボ タ ン ス イ ッ チに接続 さ れます。 • PS の GPIO ポー ト は、フ ァ ブ リ ッ ク ピ ン を (EMIO イ ン ターフ ェ イ ス を介 し て) ボー ド 上の SW7 プ ッ シ ュ ボ タ ン ス イ ッ チに配線す る 1 ビ ッ ト 幅の イ ン ターフ ェ イ ス を含むよ う に変更 さ れます。

X-Ref Target - Figure 3-1

(33)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 33 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 3 章: Zynq デバイ スでの GP ポー ト の使用

• PS では、 別の 1 ビ ッ ト GPIO が MIO ポー ト にあ る ボー ド 上の DS23 LED に接続 さ れます。

• AXI Timer の割 り 込みは、 フ ァ ブ リ ッ ク か ら PS の割 り 込みコ ン ト ロー ラ ーに接続 さ れます。 こ の タ イ マーは、 ボー ド 上の指定 さ れたプ ッ シ ュ ボ タ ン を押す と 開始 し ます。 タ イ マーが終了す る と 、 その割 り 込みが ト リ ガー さ れます。 • 上記のハー ド ウ ェ アの変更に加え、 アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア コー ド を記述 し ます。 こ の コー ド は、 次の よ う に機能 し ます。 ° シ リ アル ター ミ ナルに メ ッ セージ を表示 し、 ボー ド で使用する プ ッ シ ュ ボ タ ン ス イ ッ チ (SW7 ま たは SW5) の選択をユーザーに求めます。 ° ユーザーが適切なボ タ ン を押す と 、 タ イ マーが自動的に開始 し 、LED DS23 をオ フに し て、 タ イ マーの割 り 込みが発生す る のを待機 し ます。 ° タ イ マーの割 り 込みが発生 し た ら 、LED DS23 をオンに し 、 タ イ マーを再開 し て、 シ リ アル ター ミ ナルで ユーザーがプ ッ シ ュ ボ タ ン ス イ ッ チを再度選択する のを待機 し ます。

サン プル プ ロ ジ ェ ク ト : イ ン ス タ ン シエー ト さ れた フ ァ ブ リ ッ ク IP の

機能の検証

こ の例では、 フ ァ ブ リ ッ ク に AXI GPIO、 AXI Timer、 割 り 込み、 お よび EMIO イ ン ターフ ェ イ ス を追加 し ます。 そ の後、 フ ァ ブ リ ッ ク の追加機能を検証 し ます。

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

2. [Recent Projects] で、第2 章で作成 し た [edt_tutorial] デザ イ ン を ク リ ッ ク し ます。 3. [IP Integrator] の下の [Open Block Design] を ク リ ッ ク し ます。

4. [Diagram] ウ ィ ン ド ウ の空白部分を右 ク リ ッ ク し 、 [Add IP] を ク リ ッ ク し ます。

5. 検索ボ ッ ク ス に 「AXI GPIO」 と 入力 し 、[AXI GPIO] IP を ダブル ク リ ッ ク し てブ ロ ッ ク 図に追加 し ます。 AXI GPIO IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表示 さ れます。

6. [Diagram] ウ ィ ン ド ウ の空白部分を右 ク リ ッ ク し 、 [Add IP] を ク リ ッ ク し ます。

7. 検索ボ ッ ク ス に 「AXI Timer」 と 入力 し 、[AXI Timer] IP を ダブル ク リ ッ ク し てブ ロ ッ ク 図に追加 し ます。 AXI Timer IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表示 さ れます。

(34)

第 3 章: Zynq デバイ スでの GP ポー ト の使用

8. ZYNQ7 SoC Processing System の EMIO コ ン フ ィ ギ ュ レーシ ョ ン を編集 し て、 割 り 込みを有効に し ます。 [ZYNQ7 Processing System] IP ブ ロ ッ ク を右 ク リ ッ ク し、 [Customize Block] を ク リ ッ ク し ます。

注記: IP ブ ロ ッ ク を ダブル ク リ ッ ク し て カ ス タ マ イ ズする こ と も で き ます。

図3-2 に示す [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス が開き ます。

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

10. [I/O Peripherals] → [GPIO] を展開し て [EMIO GPIO (Width)] をオンに し ます。 11. [EMIO GPIO (Width)] を 1 に変更し ます。

12. ZYNQ7 Processing System の コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン を開いた状態で、[Interrupts] → [Fabric Interrupts] → [PL-PS Interrupt Ports] を展開 し ます。

13. [Fabric Interrupts] をオンに し、 [IRQ_F2P[15:0]] も オンに し て IP コ アでの PL-PS 割 り 込みを有効に し ます。 X-Ref Target - Figure 3-2

(35)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 35 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 3 章: Zynq デバイ スでの GP ポー ト の使用

14. [OK] を ク リ ッ ク し て ZYNQ7 Processing System IP の変更を確定 し ます。 ブ ロ ッ ク 図は図3-3 の よ う にな り ます。

15. ページの上部に表示 さ れる [Run Connection Automation] リ ン ク を ク リ ッ ク し 、 新 し く 追加 し た IP ブ ロ ッ ク を自 動接続 し ます。

16. [Run Connection Automation] ダ イ ア ロ グ ボ ッ ク ス で、図3-4 に示す よ う に、 [All Automation] の横にあ る チ ェ ッ ク ボ ッ ク ス を オンに し ます。

17. [OK] を ク リ ッ ク し ます。 X-Ref Target - Figure 3-3

図 3-3: ZYNQ7 Processing System IP

X-Ref Target - Figure 3-4

図 3-4: [Run Connection Automation] ダ イ ア ログ ボ ッ ク ス

(36)

第 3 章: Zynq デバイ スでの GP ポー ト の使用

完了す る と 、 更新 さ れたブ ロ ッ ク 図は図3-5 の よ う にな り ます。

18. [AXI GPIO] IP ブ ロ ッ ク を右 ク リ ッ ク し、 [Customize Block] を ク リ ッ ク し ます。 注記: IP ブ ロ ッ ク を ダブル ク リ ッ ク し て カ ス タ マ イ ズする こ と も で き ます。

19. [Board] タ ブで、 [GPIO] および [GPIO2] が [Custom] に設定 さ れてい る こ と を確認 し ます。

20. [IP Configuration] タ ブを ク リ ッ ク し ます。 必要な GPIO ポー ト は 1 つだけであ る ため、 [GPIO] で [GPIO Width] を 1 に変更し ます。 [All Inputs] と [All Outputs] が両方 と も オフにな っ てい る こ と も 確認 し ます。

21. [OK] を ク リ ッ ク し て変更を確定 し ます。

22. 割 り 込みポー ト は自動的には AXI Timer IP コ アに接続 さ れない こ と に注意 し て く だ さ い。 [Diagram] ウ ィ ン ド ウ で、ZYNQ7 Processing System の IRQ_F2P[0:0] ポー ト を見つけ ます。

23. コ ネ ク タ ポー ト の上にマ ウ ス ポ イ ン ターを置いて鉛筆ア イ コ ン を表示 さ せ、 IRQ_F2P[0:0] ポー ト を ク リ ッ ク し て AXI Timer IP コ アの interrupt 出力ポー ト に ド ラ ッ グ し、 こ れ ら 2 つのポー ト を接続 し ます。

24. ZYNQ7 Processing System の GPIO_0 ポー ト が接続 さ れていない こ と に注意 し て く だ さ い。 ZYNQ7 Processing System の GPIO_0 出力ポー ト を右 ク リ ッ ク し、 [Make External] を ク リ ッ ク し ます。

こ れ ら の ピ ンは外部ピ ンですが、 こ のボー ド では必要な制約はあ り ません。 ハー ド ウ ェ ア ピ ン を特定のデバ イ ス位置に制約す る には、 次の手順に従い ます。 こ の手順は、 ピ ン を手動で配置す る 際にいつで も 使用で き ます。 X-Ref Target - Figure 3-5

(37)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 37 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 3 章: Zynq デバイ スでの GP ポー ト の使用

25. Flow Navigator で [RTL Analysis] の下にあ る [Open Elaborated Design] を ク リ ッ ク し ます。

26. 次のに示す [Elaborate Design] メ ッ セージ ボ ッ ク ス が開いた ら 、 [OK] を ク リ ッ ク し ます。

ヒ ン ト: デザ イ ンのエ ラ ボレー ト には数分かか り ます。 デザ イ ンのエ ラ ボレー ト が進行中に Vivado でほかの作業を実 行す る には、[Background] を ク リ ッ ク し ます。 こ れに よ り 、 エ ラ ボ レー ト プ ロ セ ス がバ ッ ク グ ラ ウ ン ド で続行 さ れ ます。

27. 次の図に示すよ う に メ イ ン ウ ィ ン ド ウ の右上にあ る レ イ ア ウ ト セ レ ク ターで [I/O Planning] を選択 し、 [I/O Ports] ウ ィ ン ド ウ を表示し ます。

X-Ref Target - Figure 3-6

図 3-6: [Open Elaborated Design]

X-Ref Target - Figure 3-7

図 3-7: [Elaborate Design] メ ッ セージ ボ ッ ク ス

X-Ref Target - Figure 3-8

図 3-8: [I/O Planning] レ イ アウ ト を選択

(38)

第 3 章: Zynq デバイ スでの GP ポー ト の使用

28. 次の図に示す [I/O Ports] ウ ィ ン ド ウ で、 [GPIO_0_1522] ポー ト および [GPIO_23220] ポー ト を展開し 、 サ イ ト (ピ ン) マ ッ プを確認し ます。 29. [gpio_0_tri_io[0]] を見つけ、図3-10 に示すよ う に次のプ ロ パテ ィ を設定し ます。 ° [Site]: [F19] ° [I/O Std]: [LVCMOS25] 30. [gpio_sw_tri_io[0]] を見つけ、図3-10 に示すよ う に次のプ ロ パテ ィ を設定 し ます。 ° [Site]: [G19] ° [I/O Std]: [LVCMOS25]

注記: その他のデザ イ ン制約の作成に関する詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903)

[参照 4] を参照 し て く だ さ い。 X-Ref Target - Figure 3-9

図 3-9: [I/O Ports] ウ ィ ン ド ウのサイ ト マ ッ プ

X-Ref Target - Figure 3-10

(39)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 39 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 3 章: Zynq デバイ スでの GP ポー ト の使用

31. Flow Navigator で [Program and Debug] → [Generate Bitstream] を ク リ ッ ク し ます。

[Save Project] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 [Elaborated Design - constrs_1] がオンにな っ てい る こ と を確認 し、 [Save] を ク リ ッ ク し ます。

[Synthesis is Out-of-date] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 [Yes] を ク リ ッ ク し て再合成 し ます。

32. 次の図に示す [Save Constraints] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 フ ァ イ ル名を指定し て [OK] を ク リ ッ ク し ます。

X-Ref Target - Figure 3-11

図 3-11: [Save Constraints] ダ イ ア ログ ボ ッ ク ス

(40)

第 3 章: Zynq デバイ スでの GP ポー ト の使用

制約フ ァ イ ルが作成 さ れて保存 さ れ、次の図に示す よ う に [Sources] ウ ィ ン ド ウ の [Hierarchy] タ ブの [Constraints] フ ォ ルダーに表示 さ れます。 33. ビ ッ ト ス ト リ ームの生成が完了 し た ら 、23 ページの 「ハー ド ウ ェ アの SDK へのエ ク ス ポー ト 」 の説明に従っ て ハー ド ウ ェ ア を エ ク ス ポー ト し てザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を起動 し ます。

SDK での作業

SDK で Vivado か ら エ ク ス ポー ト さ れた新 し い HDF が検出 さ れ、 警告 メ ッ セージが表示 さ れます。 こ の警告 メ ッ セージでは、SDK で新 し い HDF に合わせてプ ロ ジ ェ ク ト を ア ッ プデー ト する かど う か も 選択で き ます。 1. [Yes] を ク リ ッ ク し ます。 2. SDK が起動 し、第2 章で ス タ ン ド ア ロ ン PS を使用 し て作成 し た Hello World プ ロ ジ ェ ク ト が開き ます。 3. [Project] → [Clean] を ク リ ッ ク し、 プ ロ ジ ェ ク ト を ク リ ーン ア ッ プ し て再ビル ド し ます。 4. helloworld.c フ ァ イ ルを開き、42 ページの 「デザ イ ン用の ス タ ン ド ア ロ ン アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア」 の説明に従っ て アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア コー ド を変更 し ます。 5. フ ァ イ ルを保存 し 、 プ ロ ジ ェ ク ト を再ビル ド し ます。 6. シ リ アル通信ユーテ ィ リ テ ィ を ボー レー ト を 115200 に設定し て開き ます。 注記: こ れは Zynq デバ イ ス で UART に設定 さ れてい る ボー レー ト です。 7. ボー ド に接続 し ます。 PL フ ァ ブ リ ッ ク のビ ッ ト ス ト リ ームがあ る ので、 こ れを ダ ウ ン ロー ド する必要があ り ます。 X-Ref Target - Figure 3-12

(41)

Zynq-7000 SoC: エ ンベデ ッ ド デザイ ン チ ュ ー ト リ アル 41 UG1165 (v2018.2) 2018 年 6 月 6 日 japan.xilinx.com

第 3 章: Zynq デバイ スでの GP ポー ト の使用

8. [Xilinx Tools] → [Program FPGA] を ク リ ッ ク し ます。図3-13 に示す [Program FPGA] ダ イ ア ロ グ ボ ッ ク ス が開き ます。Vivado か ら エ ク ス ポー ト さ れた ビ ッ ト ス ト リ ームが表示 さ れます。

9. [Program] を ク リ ッ ク し、 ビ ッ ト ス ト リ ーム を ダ ウ ン ロー ド し て PL フ ァ ブ リ ッ ク をプ ロ グ ラ ム し ます。 10. 26 ページの 「サンプル プ ロ ジ ェ ク ト : Hello World アプ リ ケーシ ョ ンの実行」 の手順 と 同 じ よ う にプ ロ ジ ェ ク ト

を実行 し ます。

11. シ ス テ ムでは、 AXI GPIO ピ ンがボー ド 上のプ ッ シ ュ ボ タ ン SW5 に接続 さ れ、 PS の GPIO ピ ンが EMIO イ ン タ ーフ ェ イ ス を介 し てボー ド 上のプ ッ シ ュ ボ タ ン SW7 に接続 さ れます。

12. シ リ アル ター ミ ナルに表示 さ れる手順に従っ てアプ リ ケーシ ョ ン を実行 し ます。 X-Ref Target - Figure 3-13

図 3-13: ビ ッ ト ス ト リ ーム フ ァ イルが表示 さ れた [Program FPGA] ダ イ ア ログ ボ ッ ク ス

図  1-2: Vivado  イ ン ス ト ー ラ ー  - [Software Development Kit (SDK)]  の選択
図  2-9: [Generate Output Products]  ダ イ ア ログ ボ ッ ク ス
図  2-10: [IP Sources]  の下に生成 さ れた出力
図  2-15: SDK  の  [system.hdf]  のア ド レ ス マ ッ プ
+7

参照

関連したドキュメント

Moreover, to obtain the time-decay rate in L q norm of solutions in Theorem 1.1, we first find the Green’s matrix for the linear system using the Fourier transform and then obtain

The inclusion of the cell shedding mechanism leads to modification of the boundary conditions employed in the model of Ward and King (199910) and it will be

Note that the Gysin isomorphism [20, Theorem 4.1.1] commutes with any base extension. The assertion follows from induction on the dimension of X by a similar method of Berthelot’s

In order to be able to apply the Cartan–K¨ ahler theorem to prove existence of solutions in the real-analytic category, one needs a stronger result than Proposition 2.3; one needs

Henson, “Global dynamics of some periodically forced, monotone difference equations,” Journal of Di ff erence Equations and Applications, vol. Henson, “A periodically

Is it possible to obtain similar results as in [COP] and in the present paper concerning John disks that are not necessarily

As an immediate consequence of Proposition 4 we obtain the following result, which concludes the proof of Theorem 2.... To illustrate the results below we list 50 consecutive even

Amount of Remuneration, etc. The Company does not pay to Directors who concurrently serve as Executive Officer the remuneration paid to Directors. Therefore, “Number of Persons”