Zynq-7000 SoC:
エ ンベデ ッ ド
デザイ ン
チ ュ ー ト リ アル
効率的な エ ンベデ ッ ド
システムを
構築する ためのハンデ ィ
ガイ ド
UG1165 (v2018.2) 2018 年 6 月 6 日この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に
よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし
ては、必ず最新英語版をご参照ください。
このチュートリアルは 2017.3 で検証されており、それ以降のリリースでは手順が多少異なる場合あり。
UG1165 (v2018.3) 2018 年 12 月 5 日
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。 セ ク シ ョ ン 改訂内容 2018 年 6 月 6 日 バージ ョ ン 2018.2 全体的な ア ッ プデー ト 編集上の更新のみ。 技術内容の変更な し 。 2018 年 4 月 4 日 バージ ョ ン 2018.1全体的な ア ッ プデー ト Vivado® Design Suite 2018.1 リ リ ース。 2017.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. . . 44SDK を使用 し た ソ フ ト ウ ェ アのデバ ッ グ . . . 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 でのデバ ッ ク
必要な環境 . . . 67Zynq SoC ボー ド 上での Linux のブー ト . . . 68
第 7 章: Linux 用のカ ス タ ム IP と デバイ ス ド ラ イバーの作成
要件 . . . 88 ペ リ フ ェ ラ ル IP の作成. . . 89 PS の GP マ ス ター ポー ト を使用 し たペ リ フ ェ ラ ル IP の統合 . . . 94 Linux ベース のデバ イ ス ド ラ イ バーの開発. . . 96 実行中のカーネルへのモジ ュ ールの ロ ー ド と アプ リ ケーシ ョ ンの実行 . . . 98第 8 章: SDK を使用 し た ソ フ ト ウ ェ アのプ ロ フ ァ イル
シ ス テ ム デバ ッ ガーを使用 し た SDK でのアプ リ ケーシ ョ ンのプ ロ フ ァ イ ル . . . 102 追加のデザ イ ン サポー ト オプシ ョ ン . . . 104UG1165 (v2018.3) 2018 年 12 月 5 日
第 9 章: SDK を使用 し た Linux OS 認識デバ ッ グ
Linux OS 認識デバ ッ グの設定 . . . 106 OS 認識デバ ッ グ を使用 し た Linux プ ロ セ スおよびス レ ッ ド のデバ ッ グ. . . 109付録 A: その他の リ ソ ースおよび法的通知
ザ イ リ ン ク ス リ ソ ース . . . 118 ソ リ ュ ーシ ョ ン セン ター . . . 118Xilinx Documentation Navigator およびデザ イ ン ハブ . . . 118
Xilinx Documentation Navigator . . . 119
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ル . . . 119
ザ イ リ ン ク ス リ ソ ース . . . 119
ト レーニ ン グ リ ソ ース . . . 120
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 を使用 し てシ ス テ ム を設計 し ます。
第 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)」 を参照 し て く だ さ い。
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 のエデ ィ シ ョ ン
第 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] を参照 し て く だ さ い。
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 フ ラ ッ シ ュ カー ド
• タ ーゲ ッ ト ボー ド と ホ ス ト マシ ンの接続用の イーサネ ッ ト ケーブル
第 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
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] を参照し て く だ さ い。第 1 章: 概要
チ ュ ー ト リ アルのデザイ ン フ ァ イル
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ルのダ ウ ン ロー ド については、119 ページの 「 こ のチ ュー ト リ アルのデザ イ ン フ ァ イ ル」 を参照 し て く だ さ い。
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 日
第 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
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
第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用
6. ZYNQ プ ロ セ ッ シ ン グ シ ス テ ム IP を ダブル ク リ ッ ク し、 ブ ロ ッ ク デザ イ ンに追加 し ます。
図2-2 に示すよ う に、 Zynq SoC プ ロ セ ッ シン グ シ ス テ ム IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表示 さ れます。
X-Ref Target - Figure 2-2
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] ダ イ ア ログ ボ ッ ク ス
第 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
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] ダ イ ア ログ ボ ッ ク ス
第 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
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] ダ イ ア ログ ボ ッ ク ス
第 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
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 へエ ク スポー ト する
第 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
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 日
第 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 か ら シ リ アルへの転送に使用 さ れます。
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] ウ ィ ン ド ウのヘ ッ ダー バー
第 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
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: シ リ アル タ ー ミ ナルへの出力
第 2 章: Zynq SoC プ ロセ ッ シ ング システムの使用
その他の情報
ボー ド サポー ト パ ッ ケージ
ボー ド サポー ト パ ッ ケージ (BSP) はハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド のサポー ト コー ド で、 電源投入時 の基本的な初期化お よ び ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド 上での実行 をサポー ト し ます。 こ れは、 ブー ト ロ ーダーお よ びデバ イ ス ド ラ イ バーを使用する オペレーテ ィ ン グ シ ス テ ム固有 の も のにで き ます。ス タ ン ド ア ロ ン OS
ス タ ン ド ア ロ ンはシ ンプルな下位 ソ フ ト ウ ェ ア層です。 キ ャ ッ シ ュ 、 割 り 込み、 例外な ど の基本的なプ ロ セ ッ サ機 能、 お よ びホ ス ト 環境の基本的なプ ロ セ ッ サ機能へのア ク セ ス を提供 し ます。 こ れ ら の機能には、 標準の入力/出力、 プ ロ フ ァ イ ル、 停止、 終了が含まれます。 こ れはセ ミ ホ ス ト 型のシ ン グル ス レ ッ ド 環境です。 T 重要: こ の章で実行し たアプ リ ケーシ ョ ンは、 ス タ ン ド ア ロ ン OS 上に作成さ れています。 ソ フ ト ウ ェ ア アプ リ ケー シ ョ ンが タ ーゲ ッ ト にす る BSP は、 新規アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する プ ロ セ ス で選択 し ます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク し ます。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 章の内容について言及 し てい る ため、 前 章を飛ば し た場合は必要に応 じ て内容を確認 し て く だ さ い。
第 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
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] ウ ィ ン ド ウ に表示 さ れます。
第 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
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] ダ イ ア ログ ボ ッ ク ス
第 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
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] レ イ アウ ト を選択
第 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
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] ダ イ ア ログ ボ ッ ク ス
第 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-12Zynq-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] ダ イ ア ログ ボ ッ ク ス