Zynq-7000 All
Programmable SoC :
エ ンベデ ッ ド
デザイ ン
チ ュ ー ト リ アル
効率的な エ ンベデ ッ ド シス テム構築を
サポー ト するハンデ ィ
ガイ ド
UG1165 (v2015.2) 2015 年 6 月 24 日本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資
料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情
報につきましては、必ず最新英語版をご参照ください。
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付 バージ ョ ン 内容
2015 年 6 月 24 日 2015.2 PetaLinux ツールのバージ ョ ン を 2015.2 にア ッ プデー ト 。
目次
改訂履歴 . . . 2第 1 章 : は じ めに
こ のガ イ ド について . . . 5 Zynq デバ イ ス に よ る エ ンベデ ッ ド プ ロ セ ッ サ デザ イ ン の簡略化. . . 6 Vivado ツールでデザ イ ン プ ロ セ ス を加速. . . 9 最初に必要なセ ッ ト ア ッ プ . . . 9第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
エンベデ ッ ド シ ス テ ムの構築 . . . 13第 3 章 : Zynq デバイ スでの GP ポー ト の使用
フ ァ ブ リ ッ ク の IP を Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ムに追加する . . . 29 デザ イ ン用の ス タ ン ド ア ロ ン アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア . . . 38第 4 章 : SDK を使用 し たデバ ッ グ
ザ イ リ ン ク ス シ ス テ ム デバ ッ ガー . . . 40 SDK を使用 し て ソ フ ト ウ ェ ア をデバ ッ グす る . . . 42第 5 章 : AXI CDMA IP での HP ス レーブ ポー ト の使用
AXI CDMA を Zynq SoC PS の HP ス レーブ ポー ト と 統合す る . . . 45デザ イ ン用の ス タ ン ド ア ロ ン アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア . . . 50
CDMA シ ス テ ム向けの Linux OS ベー ス のアプ リ ケーシ ョ ン ソ フ ト ウ ェ ア. . . 53
SDK を使用 し て Linux CDMA アプ リ ケーシ ョ ン を実行す る . . . 54
第 6 章 : Linux のブー ト および SDK でのデバ ッ ク
必要な環境 . . . 60Zynq SoC ボー ド 上で Linux をブー ト する . . . 61
第 7 章 : SDK を使用 し た ソ フ ト ウ ェ ア プ ロ フ ァ イル
シ ス テ ム デバ ッ ガーを使用 し た SDK でのアプ リ ケーシ ョ ンのプ ロ フ ァ イ ル . . . 75第 8 章 : ア ク セ ラ レー タ コ ヒ ーレ ン シ ポー ト (ACP)
は じ めに . . . 83 ACP の要求 . . . 84 ACP の制約 . . . 85第 9 章 : Linux 用のカ ス タ ム IP と デバイ ス ド ラ イバーの作成
必要な環境 . . . 86 ペ リ フ ェ ラ ル IP の作成. . . 87 PS の GP マ ス タ ー ポー ト を用いてペ リ フ ェ ラ ル IP を統合す る . . . 92 Linux ベー ス のデバ イ ス ド ラ イ バーを開発す る . . . 95 実行中のカーネルへのモジ ュ ールの ロ ー ド お よ びアプ リ ケーシ ョ ンの実行 . . . 97付録 A : その他の リ ソ ースおよび法的通知
ザ イ リ ン ク ス リ ソ ース . . . 101 ソ リ ュ ーシ ョ ン セン ター . . . 101Xilinx Documentation Navigator . . . 101
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ル . . . 101
ザ イ リ ン ク ス リ ソ ース . . . 102
ト レーニ ン グ リ ソ ース . . . 102
第 1 章
は じ めに
こ のガ イ ド について
こ のガ イ ド では、 Zynq®-7000 All Programmable SoC を使用す る ザ イ リ ン ク ス Vivado® Design Suite フ ロ ーについて説 明 し ます。 こ こ に挙げ る サンプル プ ロ ジ ェ ク ト は、 ザ イ リ ン ク ス の ZC702 Rev 1.1 評価ボー ド を タ ーゲ ッ ト に し てお
り 、 使用す る ツール バージ ョ ンは、 ザ イ リ ン ク ス の Vivado および ソ フ ト ウ ェ ア開発キ ッ ト (SDK) 2015.1 です。 注記 : SDK を Vivado Design Suite の一部 と し て イ ン ス ト ールする には、イ ン ス ト ー ラ ーに SDK を含め る よ う 選択する
必要があ り ます。8 ページの 「 ソ フ ト ウ ェ ア開発キ ッ ト 」 を参照 し て く だ さ い。 こ のガ イ ド のサンプル プ ロ ジ ェ ク ト は、 64 ビ ッ ト の Windows 7 オペレーテ ィ ン グ シ ス テ ムで作成 さ れてい ます。 ほ かのバージ ョ ンの Windows では結果が異な る場合があ り ます。 サンプル プ ロ ジ ェ ク ト は、 エンベデ ッ ド デザ イ ンの 次の項目について紹介す る こ と に重点を置いてい ます。 注記 :第 5 章、第 6 章、 お よ び第 9 章で説明 さ れてい る 、 テ ス ト ド ラ イ バーのハー ド ウ ェ ア上で Linux をブー ト する 手順は、 2015.2 リ リ ース の PetaLinux ツール チ ェーンに固有の も のです。 PetaLinux ツール チ ェ ーンは、 こ のガ イ ド の Linux 部分の演習を行 う ために、 Linux ホ ス ト マシ ンに イ ン ス ト ールする必要があ り ます。 • 第 1 章 「は じ めに」 では、 概要について説明 し ます。
• 第 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) 64 ビ ッ ト ス レーブ ポー ト と 結合 さ せる方法について説明 し ます。 • 第 7 章 「SDK を使用 し た ソ フ ト ウ ェ ア プ ロ フ ァ イ ル」 では、 ス タ ン ド ア ロ ン BSP お よ び 第 6 章で作成 し たAXI CDMA 関連のアプ リ ケーシ ョ ン に対応す る プ ロ フ ァ イ ル機能について説明 し ます。 こ の章では、 ソ フ ト ウ ェ ア を チ ェ ッ ク し 、 ボ ト ルネ ッ ク が存在す る か ど う かを確認す る 方法について取 り 上げます。 • 第 8 章 「ア ク セ ラ レー タ コ ヒ ーレ ン シ ポー ト (ACP)」 では、 ACP (ア ク セ ラ レータ コ ヒ ーレ ン シ ポー ト ) コ ヒ ー レ ン ト お よ び ACP 非コ ヒ ーレ ン ト の場合の読み出し 要求 と 書き込み要求に関する情報を提供し ます。
• 第 9 章 「Linux 用のカ ス タ ム IP と デバ イ ス ド ラ イ バーの作成」 では、 Create and Package New IP ウ ィ ザー ド を使用 し て IP を作成する方法について説明し ます。 こ の章では、 Linux ベースのデバ イ ス ド ラ イ バーの開発およびカー
第 1 章 : は じ めに
サン プル プ ロ ジ ェ ク ト
ツールを習得す る ための最良の方法は、 それを使用 し てみ る こ と です。 そのため こ のガ イ ド では、 説明に従っ て ツー ルを操作す る 機会が設け ら れてい ます。 サン プル プ ロ ジ ェ ク ト のセ ク シ ョ ンでは、 サンプル プ ロ ジ ェ ク ト の仕様の ほかに背景で何が起 こ っ てい る かについて も 説明 し てい ます。 各章お よ びサ ン プル プ ロ ジ ェ ク ト は、 エ ンベデ ッ ド デザ イ ンの さ ま ざ ま な側面を紹介す る こ と を目的に し てい ます。 サンプル プ ロ ジ ェ ク ト を通し て、各項目の学習を完 了 し て次に進む形で フ ロ ー全体が説明 さ れます。その他の資料
その他の資料一覧は、付録 A 「その他の リ ソ ースおよ び法的通知」 に記載 さ れてい ます。Zynq デバイ スに よ る エ ンベデ ッ ド プ ロ セ ッ サ
デザイ ンの簡略化
エンベデ ッ ド シ ス テ ムは複雑です。 エンベデ ッ ド デザ イ ンのハー ド ウ ェ ア と ソ フ ト ウ ェ アに該当する 部分はそれぞ れがプ ロ ジ ェ ク ト と な り ま す。 2 つのデザ イ ン コ ン ポーネ ン ト を 1 つのシ ス テ ム と し て機能す る よ う に統合す る に は、 さ ら に課題が伴い ま す。 その統合 さ れた も のに FPGA デザ イ ン プ ロ ジ ェ ク ト を追加す る と 、 デザ イ ンは非常に 複雑にな る と 考え ら れます。Zynq SoC ソ リ ュ ーシ ョ ンは、ARM Cortex-A9 デ ュ アル コ ア と プ ロ グ ラ マブル ロ ジ ッ ク を 1 つの SoC で提供す る こ と で、 こ の複雑 さ を軽減 し ます。
設計プ ロ セ ス を簡略化にす る ために、 ザ イ リ ン ク ス は Vivado Design Suite および ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を提 供 し てい ます。 こ れ ら 2 つのツールで、 SoC と FPGA を結合するデバ イ ス のエンベデ ッ ド シ ス テ ム デザ イ ン を簡略 化す る ために必要な も のをすべて提供 し ます。 ツールを組み合わせ る こ と で、 ハー ド ウ ェ ア と ソ フ ト ウ ェ アのアプ リ ケーシ ョ ンの設計、 デバ ッ グ、 コ ー ド の実行が可能にな る ほか、 検証や評価を目的 と し てデザ イ ン を実際のボー ド に 移行で き ます。
注記 : SDK を Vivado Design Suite の一部 と し て イ ン ス ト ールする には、イ ン ス ト ー ラ ーに SDK を含め る よ う 選択する
第 1 章 : は じ めに
Vivado Design Suite : System Edition
ザ イ リ ン ク ス は、Vivado Design Suite と 総称 さ れ る開発シ ス テ ム ツールを複数提供し てい ます。Vivado Design Suite の い く つかの Edition がエ ンベデ ッ ド シ ス テ ム開発に使用で き ま す。 こ のガ イ ド では、 System Edition を 使用 し ま す。
図 1-1 に Vivado Design Suite の Edition の機能を示 し ます。
X-Ref Target - Figure 1-1
第 1 章 : は じ めに
その他の Vivado コ ンポーネン ト
Vivado のその他の コ ン ポーネ ン ト は次の と お り です。 • ザ イ リ ン ク ス エンベデ ッ ド プ ロ セ ッ サ用のエンベデ ッ ド / ソ フ ト IP • 資料 • サンプル プ ロ ジ ェ ク トソ フ ト ウ ェ ア開発キ ッ ト
ソ フ ト ウ ェ ア開発キ ッ ト (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 ウ ェ ブ ページ [参照 8] を参照 し て く だ さ い。
PetaLinux ツールのデザ イ ン ハブは、 PetaLinux ツールの情報お よ び資料への リ ン ク を提供 し ます。 詳細は、101 ペー
第 1 章 : は じ めに
Vivado ツールでデザイ ン プ ロ セス を加速
Vivado を使用 し て、 デザ イ ン ソ ー ス をハー ド ウ ェ アに追加で き ます。 IP イ ン テ グ レー タ ーを使用す る こ と で、 必要 な IP を簡単に既存のデザ イ ン ソ ースへ追加 し て ク ロ ッ ク や リ セ ッ ト な どのポー ト 接続を作成で き ます。 • Vivado お よ び IP イ ン テ グ レー タ ーは、 すべてのハー ド ウ ェ ア シ ス テ ム開発に使用 さ れ ます。 Vivado では、 マ イ ク ロ プ ロ セ ッ サお よ びペ リ フ ェ ラ ルの仕様、 こ れ ら の コ ン ポーネ ン ト の接続お よ びプ ロ パテ ィ を設定 し ます。 • SDK は ソ フ ト ウ ェ ア開発に使用 さ れ、 Vivado Design Suite の一部 と し て利用で き ます。 ま たは、 SDK を イ ン スト ール し 、 SDK が ロ ー ド さ れ る マシ ンにほかのザ イ リ ン ク ス ツールが イ ン ス ト ール さ れていな く て も 使用可能 です。 SDK は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのデバ ッ グに も 使用で き ます。
Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム (PS) は、 FPGA プ ロ グ ラ マブル ロ ジ ッ ク (PL) をプ ロ グ ラ ム し な く て も 、 ブー ト し て動作 さ せ る こ と がで き ます。 ただ し 、 フ ァ ブ リ ッ ク で ソ フ ト IP を使用 し た り 、 EMIO を用いて PS ペ リ フ ェ ラ ルを 接続す る には、 PL をプ ロ グ ラ ムする必要があ り ます。 SDK で PL をプ ロ グ ラ ムで き ます。
エ ンベデ ッ ド デザ イ ン プ ロ セ ス の詳細は、 『Vivado Design Suite チ ュ ー ト リ アル : エ ンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940) [参照 1] を参照 し て く だ さ い。
最初に必要なセ ッ ト ア ッ プ
ツールについて詳 し く 説明す る 前に、 ツールが適切に イ ン ス ト ール さ れ、 使用す る 環境が こ のガ イ ド の 「サンプル プ ロ ジ ェ ク ト 」 の記載要件に一致す る か を確認 し ます。
ハー ド ウ ェ ア要件
こ のチ ュ ー ト リ アルは、 Zynq ZC702 Rev 1.1 評価ボー ド を タ ーゲ ッ ト に し てお り 、 Rev 1.0 ボー ド に も 使用で き ます。 こ のガ イ ド を活用す る にあ た っ て、 評価ボー ド に同梱 さ れてい る 次を用意 し て く だ さ い。
• ZC702 評価ボー ド
• AC 電源ア ダプ タ ー (12 VDC)
• USB Type-A/Mini-B ケーブル (UART 通信用)
• JTAG を介す る プ ロ グ ラ ムお よ びデバ ッ グ用の Digilent 社製ケーブル
• Linux ブー ト 用の SD-MMC フ ラ ッ シ ュ カー ド
第 1 章 : は じ めに
イ ン ス ト ール要件
Vivado Design Suite お よび SDK
2015.1 ソ フ ト ウ ェ アが イ ン ス ト ール済みで あ る こ と を確認 し て く だ さ い。ソ フ ト ウ ェ ア バージ ョ ン が最新であ る か ど う かは、http://japan.xilinx.com/support/download.html にア ク セ ス し て確認で き ます。
Vivado Design Suite お よ び SDK ツールの両方が イ ン ス ト ール さ れてい る こ と を確認 し て く だ さ い。Vivado Design Suite を イ ン ス ト ールす る 際に、図 1-2 に示す よ う に [Software Development Kit] を オ ン にす る こ と で、 イ ン ス ト ールに含め る 必要のあ る オプシ ョ ンの ソ フ ト ウ ェ ア ツール と し て SDK を選択で き ます。 SDK を単独で イ ン ス ト ールする には、 [Software Development Kit] のみを オ ン に し 、 ほかの ソ フ ト ウ ェ ア製品の選択を オ フ に し て イ ン ス ト ー ラ ーを実行 し ま す。
Vivado Design Suite と SDK の イ ン ス ト ールの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ー ス ノ ー ト 、 イ ン ス ト ールお よ び ラ イ セ ン ス』 (UG973) [参照 2] を参照 し て く だ さ い。
X-Ref Target - Figure 1-2
第 1 章 : は じ めに
PetaLinux ツール
こ のチ ュ ー ト リ アルの Linux 部分の演習で実行する PetaLinux ツールを イ ン ス ト ール し ます。 PetaLinux ツールは、 次 のいずれかが稼働 し てい る Linux ホ ス ト シ ス テ ムで実行し ます。
• RHEL 5 (32 ビ ッ ト ま たは 64 ビ ッ ト ) • RHEL 6 (32 ビ ッ ト ま たは 64 ビ ッ ト )
• SUSE Enterprise 11 (32 ビ ッ ト ま たは 64 ビ ッ ト )
こ の ツールは、専用 Linux ホ ス ト シ ス テ ム、 ま たは Windows 開発プ ラ ッ ト フ ォーム上で こ れ ら の Linux オペレーテ ィ ン グ シ ス テ ムのいずれかが稼働 し てい る仮想マシ ン を使用で き ます。 PetaLinux ツールを選択 し たシ ス テ ムに イ ン ス ト ールす る には、 次を実行す る 必要があ り ます。 • PetaLinux 2015.2 SDK ツールを、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド す る • PetaLinux 2015.2 リ リ ース パ ッ ケージ を イ ン ス ト ールす る • ワー ク ス テーシ ョ ン ま たは仮想マシ ンに共通のシ ス テ ム パ ッ ケージおよ び ラ イ ブ ラ リ を追加する • 有効な PetaLinux ラ イ セン ス を所有 し てい る こ と を確認する
前提条件
• 2GB RAM (ザ イ リ ン ク ス ツールで推奨 さ れ る 最小サ イ ズ) • Pentium 4 2GHz CPU ク ロ ッ ク ま たは同等の CPU• 5GB のハー ド デ ィ ス ク 空 き 容量
PetaLinux パ ッ ケージの展開
イ ン ス ト ー ラ ーはデフ ォ ル ト では、 現在のデ ィ レ ク ト リ のサブデ ィ レ ク ト リ と し てパ ッ ケージ を イ ン ス ト ール し ま す。 代わ り に、 イ ン ス ト ール パス を指定する こ と も で き ます。 ダ ウ ン ロー ド し た PetaLinux イ ン ス ト ー ラ ーを実行 し ます。 注記 : PetaLinux の イ ン ス ト ール パスは短 く し て く だ さ い。 パス が 255 文字を超え る と 、 PetaLinux のビル ド がエ ラ ー にな り ます。 bash> ./petalinux-v2015.2-final-installer.run PetaLinux は、 こ の コ マ ン ド の作業デ ィ レ ク ト リ の直下に あ る petalinux-v2015.2-final デ ィ レ ク ト リ に イ ン ス ト ール さ れます。イ ン ス ト ー ラ ーを ホーム デ ィ レ ク ト リ (/home/user) に置いた場合、PetaLinux は /home/user/petalinux v2015.2-final に イ ン ス ト ール さ れ ます。 PetaLinux 環境のセ ッ ト ア ッ プ、 プ ロ ジ ェ ク ト の作成、 お よ びプ ロ ジ ェ ク ト の使用例の詳細は、第 6 章を参照 し て く だ さ い。 PetaLinux の イ ン ス ト ールお よ び使用方法に関す る 詳細は、 『PetaLinux ツ ール資料 リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 3] に記載 さ れてい ます。ソ フ ト ウ ェ アの ラ イ セ ン ス
ザ イ リ ン ク ス の ソ フ ト ウ ェ アには FLEXnet ラ イ セン ス が使用 さ れてい ます。 ソ フ ト ウ ェ ア を初めて起動する際、 ラ イ セ ン ス の検証プ ロ セ ス が実行 さ れ ま す。 ラ イ セ ン ス検証で有効な ラ イ セ ン ス が検出 さ れない場合、 ラ イ セ ン ス ウ ィ ザー ド に従っ て ラ イ セ ン ス を取得 し 、 イ ン ス ト ール し た ツールでその ラ イ セ ン ス を使用で き る よ う に し ます。 ソ フ ト ウ ェ アの フル バージ ョ ンが不要な場合は、 評価 ラ イ セン ス を使用で き ます。イ ン ス ト ールの手順 と 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールお よ び ラ イ セ ン ス』 (UG973) [参照 2] を参照 し て く だ さ い。
第 1 章 : は じ めに
チ ュ ー ト リ アルのデザイ ン フ ァ イル
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ルのダ ウ ン ロ ー ド については、101 ページの 「 こ のチ ュ ー ト リ アルのデザ イ ン
第 2 章
Zynq SoC プ ロ セ ッ シ ング シス テムの使用
ザ イ リ ン ク ス の Vivado® Design Suite の概要に引 き 続 き 、 こ の ツール を活用 し て Zynq®-7000 AP SoC プ ロ セ ッ シ ン グ シ ス テ ム (PS) を使用する エンベデ ッ ド シ ス テ ム を開発する方法を説明 し ます。Zynq SoC は、ARM Cortex-A9 ハー ド IP お よ びプ ロ グ ラ マブル ロ ジ ッ ク (PL) で構成 さ れてい ます。 こ れ ら は次の 2 つ の方法で使用で き ます。 • Zynq SoC PS は、 フ ァ ブ リ ッ ク IP を追加せずに、 ス タ ン ド ア ロ ン モー ド で使用で き ます。 • IP コ ア を フ ァ ブ リ ッ ク で イ ン ス タ ン シエー ト し 、 PS と PL の組み合わせ と し て Zynq PS に接続で き ます。
エ ンベデ ッ ド システムの構築
Zynq デバ イ ス シ ス テ ム デザ イ ンの作成には、 ブー ト デバ イ ス お よ びペ リ フ ェ ラ ルを適切に選択す る PS の コ ン フ ィ ギ ュ レーシ ョ ンが含ま れます。 PS ペ リ フ ェ ラ ル と 利用可能な MIO の接続がデザ イ ン要件を満た し てい る限 り 、 ビ ッ ト ス ト リ ームは必要あ り ません。 こ の章では、 ビ ッ ト ス ト リ ーム を必要 と し ないデザ イ ンの作成手順について説明 し ます。サンプル プロジ ェ ク ト : Zynq SoC の新規エンベデ ッ ド プロジ ェ ク ト
を作成する
こ の例では、 Vivado Design Suite を起動し 、 エンベデ ッ ド プ ロ セ ッ サ シ ス テ ムのプ ロ ジ ェ ク ト を最上位 と し て作成 し ます。
デザイ ンの開始
1. Vivado Design Suite を起動 し ます。
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
3. 次の表の情報に基づいて、 各 ウ ィ ザー ド 画面で選択操作を行い ます。
[Finish] を ク リ ッ ク す る と New Project ウ ィ ザー ド が閉 じ 、 作成 し たプ ロ ジ ェ ク ト が Vivado デザ イ ン ツールで開 き ます。
エ ンベデ ッ ド プ ロ セ ッ サ プ ロ ジ ェ ク ト を作成する
こ こ か ら は Add Sources ウ ィ ザー ド を使用 し 、 エンベデ ッ ド プ ロ セ ッ サ プ ロ ジ ェ ク ト を作成 し ます。 1. Flow Navigator の [IP Integrator] → [Create Block Design] を ク リ ッ ク し ます。
[Create Block Design] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。
2. [Create Block Design] ダ イ ア ロ グ ボ ッ ク ス で次の よ う に選択 し ます。
ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Project Name Project Name edt_tutorial
Project Location C:/designs
Create Project Subdirectory オン
Project Type デ ザ イ ン の ソ ー ス の タ イ プ を 指定す る 。RTL ま たは合成済み EDIF か ら 開始 で き る 。 RTL Project こ の時点では ソ ース を指定 し ない。 オ フ Add Sources こ の画面では変更 し ない。 Add Existing IP こ の画面では変更 し ない。 Add Constraints こ の画面では変更 し ない。
Default Part Select Boards
Board ZYNQ-7 ZC702 Evaluation Board
New Project Summary Project Summary [Finish] を ク リ ッ ク す る 前に プ ロ ジ ェ ク
ト サマ リ を再確認 し 、 プ ロ ジ ェ ク ト を作 成す る 。
X-Ref Target - Figure 2-1
図 2‐1 : Create Block Design
ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Create Block Design Design name tutorial_bd
Directory <Local to Project>
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
3. [OK] を ク リ ッ ク し ます。
こ のデザ イ ン が空であ る こ と を示す メ ッ セージ と 共に、 [Diagram] ウ ィ ン ド ウ が自動的に表示 さ れ ます。 開始す る には、 カ タ ロ グか ら IP を追加 し ます。
4. [Add IP] を ク リ ッ ク し ます。
5. 検索ボ ッ ク ス に 「zynq」 と 入力 し て Zynq デバ イ ス IP オプシ ョ ン を検索 し 、 [ZYNQ7 Processing System] IP を ダ ブル ク リ ッ ク し てブ ロ ッ ク デザ イ ンに追加 し ます。 Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表示 さ れます (図 2-2)。
X-Ref Target - Figure 2-2
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
Vivado で Zynq7 プ ロ セ ッ シ ン グ シ ス テムを管理する
こ れでプ ロ セ ッ サ シ ス テ ムがデザ イ ンに追加 さ れたので、 Zynq7 プ ロ セ ッ シ ン グ シ ス テ ムで利用で き る さ ま ざ ま な オプシ ョ ンの管理を開始で き ます。
1. [Diagram] ウ ィ ン ド ウ で、 ZYNQ7 Processing System ブ ロ ッ ク を ダブル ク リ ッ ク し ます。 [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 デフ ォ ル ト では、 プ ロ セ ッ サ シ ス テ ムにペ リ フ ェ ラ ルが接続 さ れていない こ と に注意 し て く だ さ い。17 ページの図 2-4 に示す よ う に、 接続はチ ェ ッ ク マー ク で表 さ れ ます。
2. ZC702 ボー ド 用に作成 さ れた テ ン プ レー ト を使用 し ます。[Re-customize IP] ウ ィ ン ド ウ で [Presets] を ク リ ッ ク し 、 [ZC702] を選択 し ます。
こ の コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ザー ド を使用 し て、 ZC702 のボー ド レ イ ア ウ ト に従っ て一部の MIO ピ ンが割 り 当て ら れてい る 複数のペ リ フ ェ ラ ルをプ ロ セ ッ シ ン グ シ ス テ ムで有効に し ます。 た と えば、 UART1 は有効で、 UART0 は無効です。 こ れは、 UART1 が UART を経由 し て USB-UART コ ネ ク タ を介 し 、 ZC702 ボー ド の USB コ ンバー タ ー チ ッ プへ接続 さ れてい る ためです。
Zynq デバ イ ス のブ ロ ッ ク 図で各ペ リ フ ェ ラ ル名の横に表示 さ れ る チ ェ ッ ク マー ク は、 それ ら の I/O ペ リ フ ェ ラ ルがア ク テ ィ ブであ る こ と を示 し ます。
X-Ref Target - Figure 2-3
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
3. ブ ロ ッ ク 図で、 緑色の I/O ペ リ フ ェ ラ ル (図 2-4 に示す) の う ちの 1 つを ク リ ッ ク し ます。 選択 し たペ リ フ ェ ラ ル に関す る [MIO Configuration] ページが開き ます。
X-Ref Target - Figure 2-4
図 2‐4 : ア ク テ ィ ブなペ リ フ ェ ラルが示 さ れた [I/O Peripherals]
X-Ref Target - Figure 2-5
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
4. [OK] を ク リ ッ ク し て [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス閉 じ ます。 Vivado は、 ZC702 ボー ド のプ リ セ ッ ト を 適用す る ために行っ た変更を イ ンプ リ メ ン ト し ます。
[Diagram] ウ ィ ン ド ウ で、 設計ア シ ス タ ン ト が使用可能で あ る こ と を示す メ ッ セージに注意 し て く だ さ い (図 2-6)。
5. [Run Block Automation] リ ン ク を ク リ ッ ク し ます。
[Run Block Automation] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。
[Cross Trigger In] お よ び [Cross Trigger Out] が無効にな っ てい る こ と に注意 し て く だ さ い。 ク ロ ス ト リ ガーの設定 に関す る 詳細なチ ュ ー ト リ アルは、 『Vivado Design Suite チ ュ ー ト リ アル : エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940) [参照 1] を参照 し て く だ さ い。
6. [OK] を ク リ ッ ク し てデフ ォル ト のプ ロ セ ッ サ シ ス テ ム オプシ ョ ン を選択 し、デフ ォル ト のピ ン接続を作成し ます。
デザイ ンおよび接続ポー ト を検証する
次に、 デザ イ ン を検証 し ます。
1. [Diagram] ウ ィ ン ド ウ 内の空白部分を右 ク リ ッ ク し て、 [Validate Design] を ク リ ッ ク し ます。 あ る いは、 F6 キーを 押 し ます。
2. M_AXI_GP0_ACLK を接続す る 必要があ る こ と を示す ク リ テ ィ カル エ ラ ー メ ッ セージが表示 さ れ ます。
3. [OK] を ク リ ッ ク し て メ ッ セージ を消去 し ます。
X-Ref Target - Figure 2-6
図 2‐6 : [Run Block Automation] リ ン ク
X-Ref Target - Figure 2-7
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
4. [Diagram] ウ ィ ン ド ウ で、 ZYNQ7 プ ロ セ ッ シ ン グ シ ス テ ム の M_AXI_GP0_ACLK ポー ト を見つけ ます。 コ ネ ク タ ポー ト の上にマ ウ ス ポ イ ン タ ーを乗せて鉛筆ア イ コ ン を表示 さ せます。M_AXI_GP0_ACLK ポー ト を ク リ ッ ク し て FCLK_CLK0 入力ポー ト ま で ド ラ ッ グ し 、 2 つのポー ト を接続 し ます。 5. ほかにエ ラ ーがない こ と を確認す る ために、 デザ イ ン を再び検証 し ます。 こ れには [Diagram] ウ ィ ン ド ウ内の空 白部分を右 ク リ ッ ク し て、 [Validate Design] を ク リ ッ ク し ます。 検証が成功 し 、 デザ イ ンにエ ラ ーや重大な警告がない こ と を示す メ ッ セージ ダ イ ア ロ グ ボ ッ ク ス が表示 さ れま す。 6. [OK] を ク リ ッ ク し て メ ッ セージ を閉 じ ます。
7. [Block Design] の [Sources] ウ ィ ン ド ウ を ク リ ッ ク し ます。 8. [Hierarchy] を ク リ ッ ク し ます。
9. [Design Sources] の下で [tutorial_bd] を右 ク リ ッ ク し 、 [Create HDL Wrapper] を ク リ ッ ク し ます。
[Create HDL Wrapper] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 こ のダ イ ア ロ グ ボ ッ ク ス を使用 し て、 プ ロ セ ッ サ サブシ ス テ ム用の HDL ラ ッ パー フ ァ イ ルを作成し ます。
10. [Let Vivado manage wrapper and auto-update] を オ ン に し て、 [OK] を ク リ ッ ク し ます。
11. [Block Diagram] の [Sources] ウ ィ ン ド ウ で、 [Design Sources] → [tutorial_bd_wrapper] に移動 し ます。 12. [tutorial_bd_i - tutorial_bd (tutorial_bd.bd)] と い う 名前の最上位ブ ロ ッ ク 図を右 ク リ ッ ク し 、 [Generate Output
Products] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-8
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
[Generate Output Products] ダ イ ア ロ グ ボ ッ ク ス が開 き ます (図 2-9)。
13. [Generate] を ク リ ッ ク し ます。
こ の手順では、 選択 し た ソ ー ス に必要なすべての出力フ ァ イ ルを作成 し ます。 た と えば、 IP プ ロ セ ッ サ シ ス テ ムに対す る 制約を手動で作成す る 必要はあ り ません。 [Generate Output Products] が選択 さ れ る と 、 Vivado は、 プ ロ セ ッ サ サブシ ス テ ム用の XDC フ ァ イ ルを自動的に生成 し ます。
14. [Generate Output Products] の処理が完了 し た ら 、 [OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-9
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
15. [Block Diagra] の [Sources] ウ ィ ン ド ウ で [IP Sources] に移動 し ます。 こ のデ ィ レ ク ト リ で、 生成 し たばか り の出力 フ ァ イ ルを見つけ ます。
デザイ ンの合成、 イ ン プ リ メ ン テーシ ョ ンの実行、 およびビ ッ ト ス ト リ ームの
生成
1. こ れで、 デザ イ ン を合成で き る よ う にな り ま し た。 Flow Navigator で [Synthesis] → [Run Synthesis] を ク リ ッ ク し ます。
2. 合成の開始前にプ ロ ジ ェ ク ト を保存す る よ う 促 さ れた場合、 [Save] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-10
図 2‐10 : [IP Sources] の下に生成 さ れた出力
X-Ref Target - Figure 2-11
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
合成が実行 さ れてい る 間、 ウ ィ ン ド ウ の右上に ス テー タ ス バーが表示 さ れます。 こ の タ ス ク バーは、 デザ イ ン プ ロ セ ス を通 じ て、 さ ま ざ ま な理由に よ り 表示 さ れます。 ス テー タ ス バーは、 プ ロ セ ス がバ ッ ク グ ラ ウ ン ド で実 行 さ れてい る こ と を示 し ます。
合成が完了す る と 、 [Synthesis Completed] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 3. [Run Implementation] を ク リ ッ ク し て [OK] を ク リ ッ ク し ます。
こ の場合 も 、 プ ロ セ ス がバ ッ ク グ ラ ウ ン ド で実行 さ れてい る こ と が、 ス テー タ ス バーに よ っ て示 さ れます。 イ ン プ リ メ ン テーシ ョ ンが完了す る と 、 [Implementation Completed] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
4. [Generate Bitstream] を ク リ ッ ク し て [OK] を ク リ ッ ク し ます。
ビ ッ ト ス ト リ ームの生成が完了す る と 、 [Bitstream Generation Completed] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 5. [Cancel] を ク リ ッ ク し て ウ ィ ン ド ウ を閉 じ ます。
6. ビ ッ ト ス ト リ ームの生成が完了 し た ら 、 次のセ ク シ ョ ンの説明に従っ てハー ド ウ ェ ア を エ ク ス ポー ト し て ソ フ ト
ウ ェ ア開発キ ッ ト (SDK) を起動し ます。
SDK へエ ク スポー ト する
こ の例では、 Vivado か ら SDK を起動 し ます。
1. [Vivado] ツールバーで、 [File] → [Export] → [Export Hardware] を ク リ ッ ク し ます。
[Export Hardware] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 [Include bitstream] がオ ン にな っ てい る こ と (デザ イ ン で、 PL デザ イ ン と ビ ッ ト ス ト リ ームが生成 さ れてい る 場合のみ)、 およ び [Export to] がデフ ォル ト オプシ ョ ンの [<Local to Project>] に設定 さ れてい る こ と を確認 し ます。
2. [OK] を ク リ ッ ク し ます。
3. [File] → [Launch SDK] を ク リ ッ ク し て SDK を起動 し ます。 [Launch SDK] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。
X-Ref Target - Figure 2-12
図 2‐12 : ステー タ スバー
X-Ref Target - Figure 2-13
第 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
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
こ こ ま での結果
Vivado に よ っ て、 ソ フ ト ウ ェ ア開発が行われ る 選択 し た ワ ー ク スペー ス にハー ド ウ ェ ア仕様がエ ク ス ポー ト さ れ ま し た。 [<Local to Project>] を選択し ていれば、 Vivado プ ロ ジ ェ ク ト フ ォ ルダーに新 し い ワー ク スペース が作成 さ れてい ます。 ワー ク スペース名は <project_name>.sdk です。 こ の例では、 ワー ク スペースは、 C:/designs/edt_ tutorial/edt_tutorial.sdk と い う 名前で作成 さ れ ます。 Vivado デザ イ ン ツールに よ っ て、デザ イ ン のハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム仕様 ( こ の例では system.hdf) が SDK にエ ク ス ポー ト さ れま し た。 system.hdf のほかに、 次の追加フ ァ イ ルが SDK にエ ク ス ポー ト さ れます。 • design_1_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 を起動す る と 、 system.hdf フ ァ イ ルがデフ ォ ル ト で開 き ま す。 こ の フ ァ イ ルか ら 読み出 さ れ る シ ス テ ム のア ド レ ス マ ッ プがデフ ォル ト で SDK ウ ィ ン ド ウ に表示 さ れます。
ps7_init.c、 ps7_init.h、 ps7_init_gpl.c、 お よ び ps7_init_gpl.h フ ァ イ ルには、 Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ムの初期化コー ド のほかに、 DDR、 ク ロ ッ ク 、 位相ロ ッ ク ループ (PLL)、 およ び MIO の初期化設定が含 ま れ ます。 SDK は、 アプ リ ケーシ ョ ンがプ ロ セ ッ シ ン グ シ ス テ ムの最上位で実行可能 と な る よ う に、 こ れ ら の設定 をプ ロ セ ッ シ ン グ シ ス テ ムの初期化時に使用 し ます。 プ ロ セ ッ シ ン グ シ ス テ ムの設定の中には ZC702 評価ボー ド 向 けに固定 さ れてい る も のがあ り ます。
次に実行する こ と
こ れで、 SDK を使用 し てプ ロ ジ ェ ク ト の ソ フ ト ウ ェ ア開発を開始で き ます。 次のセ ク シ ョ ンでは、 ハー ド ウ ェ ア プ ラ ッ ト フ ォーム向けの ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの作成に役立つ情報を提供 し ます。第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
サン プル プ ロ ジ ェ ク ト : 「Hello World」 ア プ リ ケーシ ョ ン を実行
する
1. こ の例では、 ボー ド 設定の管理、 ケーブル接続、 PC 経由のボー ド 接続、 およ び SDK での簡単な hello world ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの実行の各方法について説明 し ます。 電源ケーブルを ボー ド に接続 し ます。 2. Digilent 社製ケーブルを使用 し て Windows ホ ス ト マシ ン と 、 SW10 ス イ ッ チを次の よ う に設定 し た タ ーゲ ッ ト ボー ド を接続 し ます。 Bit-1 は 0 Bit-2 は 1 注記 : 0 = 開ス イ ッ チ 1 = 閉ス イ ッ チ3. USB ケーブルを Windows ホ ス ト マシ ン と タ ーゲ ッ ト ボー ド の コ ネ ク タ J17 につな ぎ ます。シ リ アル転送に USB を使用す る 際は こ の よ う に接続 し ます。
4. 下の図に示すス イ ッ チを使用 し て ZC702 ボー ド に電源を投入 し ます。
重要: ジ ャ ンパー J27 および J28 は SD カー ド ス ロ ッ ト か ら離れた側に設定し、 SW16 ス イ ッ チを図 2-16 に示す と お り に設定 し ます。
X-Ref Target - Figure 2-16
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
5. SDK を開 き 、プ ロ ジ ェ ク ト フ ァ イ ルへの ワー ク スペース パス ( こ の例では、C:/designs/edt_tutorial/edt_ tutorial.sdk) を設定 し ます。
あ る いは、 デフ ォ ル ト の ワ ー ク スペース を使用 し て SDK を開き、 後でそれを正 し い ワー ク スペース に切 り 替え る こ と も で き ます。 こ の場合、 [File] → [Switch Workspace] を ク リ ッ ク し てか ら 、 ワー ク スペース を選択 し ます。
6. シ ス テ ムで割 り 当て ら れてい る COM ポー ト のシ リ アル通信ユーテ ィ リ テ ィ を開き ます。 SDK では、 チ ュー ト リ
アル全体で使用 さ れ る シ リ アル タ ー ミ ナル ユーテ ィ リ テ ィ が提供 さ れてい ま す。 [Window] → [Show View] → [Terminal] を ク リ ッ ク し て こ のユーテ ィ リ テ ィ を開 き ます。
7. [Connect] を ク リ ッ ク し 、 シ リ アル コ ン フ ィ ギ ュ レーシ ョ ン を設定 し て接続 し ます。 8. [Settings] を ク リ ッ ク し て [Terminal Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。
図 2-18 に、 Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム用の標準的な コ ン フ ィ ギ ュ レーシ ョ ン を示 し ます。
X-Ref Target - Figure 2-17
図 2‐17 : [Terminal] ウ ィ ン ド ウのヘ ッ ダー バー
X-Ref Target - Figure 2-18
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
9. [File] → [New] → [Application Project] を ク リ ッ ク し ます。 New Project ウ ィ ザー ド が開 き ます。
10. 次の表の情報に基づいて、 ウ ィ ザー ド 画面で選択操作を行い ます。
SDK に よ っ て hello_world アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト お よ び hello world_bsp ボー ド サポー ト パ ッ ケージ (BSP) プ ロ ジ ェ ク ト が [Project Explorer] の下に作成 さ れます。 こ れ ら の両プ ロ ジ ェ ク ト は自動的に コ ンパ イ ル さ れ、 ELF フ ァ イ ルが作成 さ れます。
11. [hello_world] を右 ク リ ッ ク し て [Run as] → [Run Configurations] を ク リ ッ ク し ます。 12. [Xilinx C/C++ application (GDB)] を右 ク リ ッ ク し て [New] を ク リ ッ ク し ます。
SDK に よ っ て hello_world Debug と い う 名前の新 し い実行 コ ン フ ィ ギ ュ レーシ ョ ン が作成 さ れ ます。 アプ リ ケーシ ョ ンに関連す る コ ン フ ィ ギ ュ レーシ ョ ンは、起動 コ ン フ ィ ギ ュ レーシ ョ ンの [Main] タ ブに自動入力 さ れます。 13. 起動 コ ン フ ィ ギ ュ レーシ ョ ン の [Target Setup] タ ブ を ク リ ッ ク し 、 設定を確認 し ます。 初期化 TCL フ ァ イ ルへの コ ン フ ィ ギ ュ レーシ ョ ン パス があ る こ と に着目し て く だ さ い。 こ こ では ps7_init.tcl へのパ ス です。 こ の フ ァ イ ルは、 デザ イ ン を SDK にエ ク ス ポー ト し た際にエ ク ス ポー ト さ れた も ので、 プ ロ セ ッ シ ン グ シ ス テ ムの初期化情報を含みます。
14. [STDIO Connection] タ ブは、 起動 コ ン フ ィ ギ ュ レーシ ョ ン の設定で使用で き ます。 こ の タ ブ を使用 し て STDIO を コ ン ソ ールに接続 さ せ る こ と がで き ます。 こ こ か ら は、シ リ アル通信ユーテ ィ リ テ ィ がすでに起動 し てい る ため、 こ の タ ブ を使用す る こ と はあ り ません。 起動 コ ン フ ィ ギ ュ レーシ ョ ンにはほかに も オプシ ョ ンがあ り ますが、 こ れ ら については後半で説明 し ます。 15. [Run] を ク リ ッ ク し ます。 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン が完了 し ていな く て も アプ リ ケーシ ョ ン を起動す る か ど う か を尋ね る メ ッ セー ジが表示 さ れます。 ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Application Project Project Name hello_world
Use Default Location オン
Hardware Platform tutorial_bd_wrapper_hw_platform_0
Processor PS7_cortexa9_0
OS Platform ス タ ン ド ア ロ ン
Language C
Board Support Package [Create New] を ク リ ッ ク し て「hello_world_bsp」 と い う 名前にす る 。
第 2 章 : Zynq SoC プ ロセ ッ シ ング システムの使用
16. [OK] を ク リ ッ ク し ます。
[Terminal 1] のシ リ アル通信ユーテ ィ リ テ ィ に 「Hello World」 と 表示 さ れ ます。
注記 : Zynq SoC 評価ボー ド で実行する 上記 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン用にビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド す る 必要はあ り ま せんで し た。 ARM Cortex A9 デ ュ アル コ アはすでにボー ド に実装 さ れてい ます。 簡単な アプ リ ケー シ ョ ン を実行す る こ と を目的 と し た こ のシ ス テ ム の基本的な初期化は、 デバ イ ス初期化 TCL ス ク リ プ ト で実行 さ れ ます。
こ こ ま での結果
アプ リ ケーシ ョ ン ソ フ ト ウ ェ アに よ っ て、 「Hello World」 の文字列が PS の UART1 ペ リ フ ェ ラ ルに送信 さ れ ま し た。
UART1 か ら ホ ス ト マシ ン で動作 し てい る シ リ アル タ ー ミ ナル アプ リ ケーシ ョ ンへ、 「Hello world」 の文字列がバ イ ト ご と に送信 さ れ、 文字列 と し て表示 さ れます。
その他の情報
ボー ド サポー ト パ ッ ケージ
ボー ド サポー ト パ ッ ケージ (BSP) はハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド のサポー ト コー ド です。 こ の コー ド は、 電源投入時の基本的な初期化に役立つだけでな く 、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンがハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド の最上位で実行 さ れ る よ う にサポー ト し ます。 こ れは、 ブー ト ロ ーダーお よ びデバ イ ス ド ラ イ バーを備え る オペレーテ ィ ン グ シ ス テ ム固有の も のにで き ます。ス タ ン ド ア ロ ンの OS
ス タ ン ド ア ロ ン はシ ン プルな下位 ソ フ ト ウ ェ ア層です。 こ れは、 キ ャ ッ シ ュ 、 割 り 込み、 例外な ど の基本的なプ ロ セ ッ サ機能お よ びホ ス ト 環境の基本的なプ ロ セ ッ サ機能へのア ク セ ス を提供 し ます。 こ れ ら の機能には、標準の入力/ 出力、 プ ロ フ ァ イ ル、 停止、 終了が含まれます。 こ れはセ ミ ホ ス ト 型のシ ン グル ス レ ッ ド 環境です。 こ の章で実行 し た アプ リ ケーシ ョ ン が、 ス タ ン ド ア ロ ン OS の最上位に作成 さ れ ま し た。 ソ フ ト ウ ェ ア アプ リ ケー シ ョ ンが タ ーゲ ッ ト にす る BSP は、 新規アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する プ ロ セ ス で選択 さ れます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更す る 場合は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク す る と 、 タ ーゲ ッ ト BSP を管理で き ます。X-Ref Target - Figure 2-19
第 4 章
SDK を使用 し たデバ ッ グ
こ の章では、 こ れま で説明 し て き たデザ イ ン フ ロ ーで可能なデバ ッ グについて説明 し ます。 最初のオプシ ョ ンは、 ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を使用 し た ソ フ ト ウ ェ アのデバ ッ グです。
SDK デバ ッ ガーは、 次のデバ ッ グ機能を提供 し ます。
• MicroBlaze™ お よ び ARM Cortex-A9 プ ロ セ ッ サ アーキ テ ク チ ャ 上のプ ロ グ ラ ム のデバ ッ グ を サポー ト
• ハー ド ウ ェ ア ボー ド 上のプ ロ グ ラ ムのデバ ッ グ をサポー ト • ヘテ ロ ジニア ス マルチプ ロ セ ッ サ ハー ド ウ ェ ア シ ス テ ムでのデバ ッ グサポー ト • リ モー ト ハー ド ウ ェ ア シ ス テ ムでのデバ ッ グ • プ ロ グ ラ ム をデバ ッ グす る ための豊富な機能を備え る IDE を提供 • テ ス ト ス ク リ プ ト の実行およ び自動化のためのツール コ マン ド 言語 (Tcl) イ ン タ ーフ ェ イ ス を提供 SDK デバ ッ ガーを使用 し て、 プ ロ グ ラ ム の実行中に何が起 こ っ てい る か を調べ る こ と がで き ます。 プ ロ セ ッ サ を停止 す る ためのブ レー ク ポ イ ン ト や ウ ォ ッ チポ イ ン ト の設定、 プ ロ グ ラ ムの ス テ ッ プ実行、 プ ロ グ ラ ムの変数 と ス タ ッ ク の表示、 シ ス テ ム内の メ モ リ 内容の表示な ど が可能です。 SDK デバ ッ ガーは、 ザ イ リ ン ク ス シ ス テ ム デバ ッ ガーお よ び GNU デバ ッ ガー (GDB) に よ る デバ ッ グ を サポー ト し てい ます。 注記 : GDB のフ ローは非推奨であ り 、 今後のデバ イ ス では使用で き な く な る予定です。
ザイ リ ン ク ス システム デバ ッ ガー
ザ イ リ ン ク ス シ ス テ ム デバ ッ ガーは、 基礎 と な るデバ ッ グ エン ジ ン と し てザ イ リ ン ク ス の hw_server を使用 し ます。 SDK は、 各ユーザー イ ン タ ーフ ェ イ ス 操作を一連の TCF コ マ ン ド に変換 し ます。 その後、 シ ス テ ム デバ ッ ガーか ら の出力を処理 し 、 デバ ッ グ さ れてい る プ ロ グ ラ ムの現在の状態を表示 し ます。 SDK は、 ザ イ リ ン ク ス の hw_server を 使用 し てハー ド ウ ェ ア上のプ ロ セ ッ サ と や り 取 り し ます。 41 ページの図 4-1 にデバ ッ グ ワ ー ク フ ロ ーを示 し ます。第 4 章 : SDK を使用 し たデバ ッ グ
こ の ワー ク フ ロ ーは、 次の コ ン ポーネ ン ト で構成 さ れてい ます。
• ELF 実行フ ァ イ ル : アプ リ ケーシ ョ ン をデバ ッ グす る には、 デバ ッ グ用に コ ンパ イ ル さ れた ELF (Executable and Linkable Format) フ ァ イ ルを使用す る 必要があ り ま す。 デバ ッ グ用の ELF フ ァ イ ルには、 ソ ー ス コ ー ド と 、 元の ソ ース か ら 生成 さ れたバ イ ナ リ を直接関連付け るデバ ッ ガー用の追加デバ ッ グ情報が含まれてい ます。 ビル ド コ ン フ ィ ギ ュ レーシ ョ ン を管理する には、ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Build Configurations] → [Manage] を ク リ ッ ク し ます。 • デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン : デバ ッ グ セ ッ シ ョ ン を起動する には、SDK でデバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン を作成す る必要があ り ます。 こ の コ ン フ ィ ギ ュ レーシ ョ ンでは、 実行フ ァ イ ル名やデバ ッ グする タ ーゲ ッ ト プ ロ セ ッ サな ど、 デバ ッ グ セ ッ シ ョ ン を開始する ために必要な情報を入力し ます。 デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン を作成す る には、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Debug As] → [Debug Configurations] を ク
リ ッ ク し ます。
• SDK の [Debug] ウ ィ ン ド ウ : [Debug] ウ ィ ン ド ウ を使用 し て、 ワ ー ク ベン チでプ ロ グ ラ ム のデバ ッ グや実行を管 理で き ます。 プ ロ グ ラ ムの実行は、 ブ レー ク ポ イ ン ト の設定、 起動 し たプ ロ グ ラ ムの一時停止、 コ ー ド の ス テ ッ プ実行、お よ び変数の内容の確認に よ っ て制御可能です。[Debug] ウ ィ ン ド ウ を表示する には、[Window] → [Open Perspective] → [Debug] を ク リ ッ ク し ます。 SDK では、 コ ー ド の変更、 実行フ ァ イ ルの ビル ド 、 プ ロ グ ラ ム のデバ ッ グ と い う サ イ ク ルを繰 り 返す こ と がで き ます。 注記 : デバ ッ グ情報が ソ ース に直接関連付け ら れてい る ため、コ ンパ イ ル後に ソ ース を編集する と 、行番号が ソ ー ス と 一致 し な く な り ます。 同様に、 最適化 さ れたバ イ ナ リ をデバ ッ グす る と 、 実行 ト レース中に予期 し ないジ ャ ンプが発生す る 場合があ り ます。
X-Ref Target - Figure 4-1
第 4 章 : SDK を使用 し たデバ ッ グ
SDK を使用 し て ソ フ ト ウ ェ ア をデバ ッ グする
こ の例では、 hello world アプ リ ケーシ ョ ンのデバ ッ グ を実行 し ます。 前章で hello world アプ リ ケーシ ョ ン を変更 し た 場合は、 デバ ッ グの実行前に新 し い hello world アプ リ ケーシ ョ ン を作成する必要があ り ます。 新し い hello world アプ リ ケーシ ョ ン を作成す る には、25 ページの 「サ ン プル プ ロ ジ ェ ク ト : 「Hello World」 アプ リ ケーシ ョ ン を実行す る 」
の手順に従い ます。
hello world アプ リ ケーシ ョ ン を作成 し た後に、 SDK で次の例を実行 し て ソ フ ト ウ ェ ア をデバ ッ グ し ます。
1. C/C++ 用の表示では、 Hello_world プ ロ ジ ェ ク ト を右 ク リ ッ ク し て [Debug As] → [Launch on Hardware (System Debugger)] を ク リ ッ ク し ます。 [Debug] ウ ィ ン ド ウ が開 き ます。
注記 : [Debug] ウ ィ ン ド ウ が自動的に開かない場合は、[Window] → [Open] → [Perspective] → [Other] を ク リ ッ ク し てか ら Open Perspective ウ ィ ザー ド の [Debug] を ク リ ッ ク し ます。
X-Ref Target - Figure 4-2
第 4 章 : SDK を使用 し たデバ ッ グ
注記 : こ のページに示 さ れてい る ア ド レ スは、 シ ス テ ムで表示 さ れてい る も の と 若干異な る場合があ り ます。 プ ロ セ ッ サが main() の始め部分にあ り 、 プ ロ グ ラ ム実行が 0x0010054C で停止 し てい る こ と がわか り ます。
こ の情報は [Disassembly] ビ ュ ーで確認で き ま す。 こ こ では、 ア セ ン ブ リ レ ベルのプ ロ グ ラ ム実行について も 0x0010054C で一時停止 さ れてい る こ と がわか り ます。
注記 : [Disassembly] ビ ューが表示 さ れない場合は、 [Window] → [Show view] → [Disassembly] を ク リ ッ ク し ます。
2. ま た、 helloworld.c ウ ィ ン ド ウ に、 C コー ド の最初の実行可能な行で実行が一時停止 し てい る こ と が表示 さ
れます。 [Registers] ビ ューを選択し 、 プ ロ グ ラ ム カ ウ ン タ ーであ る pc レ ジ ス タ が 0x0010054C を含む こ と を確認 し ます。
注記 : [Registers] ウ ィ ン ド ウ が表示 さ れない場合は、 [Window] → [Show View] → [Registers] を ク リ ッ ク し ます。
3. init_platform () を読み出す コ ー ド の行の横にあ る 、helloworld.c ウ ィ ン ド ウ の空白を ダブル ク リ ッ ク し
ま す。 こ れに よ り 、 init_platform () でブ レー ク ポ イ ン ト が設定 さ れます。 ブ レー ク ポ イ ン ト の確認には、 [Breakpoints] ウ ィ ン ド ウ を参照 し ます。
注記 : [Breakpoints] ウ ィ ン ド ウ が表示 さ れない場合は、[Window] → [Show View] → [Breakpoints] を ク リ ッ ク し ます。 4. [Run] → [Resume] を ク リ ッ ク し 、 ブ レー ク ポ イ ン ト ま でプ ロ グ ラ ム の実行を再開 さ せます。
プ ロ グ ラ ムの実行は、 init_platform () を含むコー ド の行で停止し ます。 [Disassembly] および [Debug] の両 ウ ィ ン ド ウ で、 プ ロ グ ラ ムの実行が 0x00100554 で停止 し てい る こ と が示 さ れます。
注記 : hello world の ソ ース コー ド を変更 し た場合、 ウ ィ ン ド ウ に表示 さ れ る実行ア ド レ スは異な る場合があ り ま す。
5. [Run] → [Step Into] を ク リ ッ ク し 、 init_platform () ルーチンへス テ ッ プ イ ン し ます。
プ ロ グ ラ ムの実行が 0x001005c4 の位置で一時停止 し ます。 コール ス タ ッ ク は こ こ で 2 レベル分の深 さ です。
X-Ref Target - Figure 4-3
第 4 章 : SDK を使用 し たデバ ッ グ 6. [Run] → [Resume] を ク リ ッ ク し 、 プ ロ グ ラ ム を終了ま で実行 し ます。 プ ロ グ ラ ムの実行が完了す る と 、 [Debug] ウ ィ ン ド ウ はプ ロ グ ラ ムが exit と い う ルーチンで一時停止 し てい る こ と を示 し ます。 こ れは、 デバ ッ ガーの制御下で実行 し てい る と き に発生 し ます。 7. コ ー ド を複数回再実行 し ます。 シ ン グル ス テ ッ プ、 メ モ リ の検査、 ブ レー ク ポ イ ン ト 、 コー ド の変更、 およ び print 文の追加を試 し てみます。 ビ ュ ーの追加お よ び移動を試 し ます。 8. SDK を閉 じ ます。
第 3 章
Zynq デバイ スでの GP ポー ト の使用
ザ イ リ ン ク ス の Zynq®-7000 AP SoC を エ ンベデ ッ ド デザ イ ン のプ ラ ッ ト フ ォ ーム と し て使用す る 場合、 独自の特徴 の 1 つは、 ARM Cortex-A9 デュ アル コ ア プ ロ セ ッ シ ン グ シ ス テ ムに Zynq SoC のプ ロ セ ッ シ ン グ シ ス テ ム (PS) を使 用で き る だけでな く 、 プ ロ グ ラ マブル ロ ジ ッ ク (PL) も 使用で き る こ と です。
こ の章では、 次を備え る デザ イ ン を作成 し ます。
• AXI GPIO お よ びフ ァ ブ リ ッ ク か ら PS への割 り 込みを持つ AXI タ イ マー
• EMIO イ ン タ ーフ ェ イ ス を介 し て PL 側の ピ ンへ接続 さ れ る Zynq SoC PS GPIO ピ ン
こ の章の フ ロ ーは第 2 章に似てお り 、 Zynq デバ イ ス をベース のハー ド ウ ェ ア デザ イ ン と し て使用 し ます。 こ こ では、 Zynq デバ イ ス を Vivado® IP イ ン テ グ レー タ ーのブ ロ ッ ク 図デザ イ ン に追加す る こ と に関 し て、第 2 章で説明 さ れて い る 概念を理解 し てい る こ と が前提にな り ます。 こ の章全体で、第 2 章の内容について引 き 続 き 言及 し てい る ため、 前章を省略 し た場合は必要に応 じ て内容を確認 し て く だ さ い。
フ ァ ブ リ ッ クの IP を Zynq SoC プ ロセ ッ シ ング
シ ス テムに追加する
フ ァ ブ リ ッ ク で追加可能な Zynq SoC PS と 密結合 さ れ る IP は、 どんなに複雑な も ので も 制限はあ り ません。 こ こ で は、 AXI GPIO、 割 り 込みを持つ AXI タ イ マー、 およ び EMIO イ ン タ ーフ ェ イ ス を介 し て PL 側のピ ンへ接続 さ れ る PS の GPIO ピ ン を用いて簡単な例を説明 し ます。こ こ では、 デザ イ ン を作成 し て、 AXI GPIO、 フ ァ ブ リ ッ ク で イ ン ス タ ン シエー ト さ れた割 り 込み付き AXI タ イ マー、
お よ び EMIO イ ン タ ーフ ェ イ ス を持つ PS の GPIO の機能を確認し ます。30 ページの図 3-1 にシ ス テ ム のブ ロ ッ ク 図
第 3 章 : Zynq デバイ スでの GP ポー ト の使用 第 2 章で作成 し た シ ス テ ム を使用 し て、13 ページの 「サ ン プル プ ロ ジ ェ ク ト : Zynq SoC の新規エ ンベデ ッ ド プ ロ ジ ェ ク ト を作成す る 」 の後か ら 継続で き ます。 こ の章の例では、第 2 章のデザ イ ン を拡張 し ます。 次のデザ イ ン変更を行い ます。 • フ ァ ブ リ ッ ク 側の AXI GPIO は、 1 ビ ッ ト のチ ャ ネル幅が割 り 当て ら れ、 ZC702 ボー ド 上の SW5 プ ッ シ ュ ボ タ ン ス イ ッ チに接続 さ れます。 • PS の GPIO ポー ト は、フ ァ ブ リ ッ ク ピ ン を (EMIO イ ン タ ーフ ェ イ ス を介 し て) ボー ド 上の SW7 プ ッ シ ュ ボ タ ン ス イ ッ チに配線す る 1 ビ ッ ト 幅の イ ン タ ーフ ェ イ ス を含むよ う に変更 さ れます。
• PS では、 別の 1 ビ ッ ト GPIO が MIO ポー ト にあ る ボー ド 上の DS23 LED へ接続 さ れ ます。
• AXI タ イ マーの割 り 込みは フ ァ ブ リ ッ ク か ら PS の割 り 込み コ ン ト ロ ー ラ ーへ接続 さ れ ます。 こ の タ イ マーは、 ボー ド 上の指定 さ れたプ ッ シ ュ ボ タ ン を押す と 開始 し ます。 タ イ マーが終了する と 、 その割 り 込みが ト リ ガー さ れます。 • 上記のハー ド ウ ェ ア変更に加え て、 アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア コー ド を記述 し ます。 こ の コー ド は、 次の よ う に機能 し ます。 ° シ リ アル ター ミ ナルに メ ッ セージが表示 さ れ、ボー ド で使用する プ ッ シ ュ ボ タ ン ス イ ッ チ (SW7 ま たは SW5 のいずれか) の選択が求め ら れます。 ° 適切なボ タ ン を押す と 、 タ イ マーは動作を自動的に開始 し て LED DS23 をオフに し、 タ イ マーの割 り 込みが 発生す る のを待機 し ます。 ° タ イ マーの割 り 込みが発生す る と 、 LED DS23 がオンにな り 、 タ イ マーは実行を再開し てシ リ アル タ ー ミ ナ ルでプ ッ シ ュ ボ タ ン ス イ ッ チが再度選択 さ れ る のを待機 し ます。
X-Ref Target - Figure 3-1
第 3 章 : Zynq デバイ スでの GP ポー ト の使用
サン プル プ ロ ジ ェ ク ト : イ ン ス タ ン シエー ト さ れた フ ァ ブ リ ッ ク
IP 機能を検証する
こ の例では、 AXI GPIO、 AXI タ イ マー、 フ ァ ブ リ ッ ク で イ ン ス タ ン シエー ト さ れた割 り 込み、 およ び 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 GPIO] IP を ダブル ク リ ッ ク し てブ ロ ッ ク 図に追加 し ます。 AXI Timer IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表示 さ れ ます。
8. ZYNQ7 SoC プ ロ セ ッ シ ン グ シ ス テ ムの EMIO コ ン フ ィ ギ ュ レーシ ョ ン を編集 し て、 割 り 込みを有効に し ます。 [ZYNQ7 Processing System] IP ブ ロ ッ ク を右 ク リ ッ ク し て [Customize Block] を ク リ ッ ク し ます。
注記 : IP ブ ロ ッ ク を ダブル ク リ ッ ク し て カ ス タ マ イ ズする こ と も で き ます。 [Customize Block] ダ イ ア ロ グ ボ ッ ク ス が開 き ます (32 ページの図 3-2)。
第 3 章 : Zynq デバイ スでの GP ポー ト の使用
9. [MIO Configuration] を ク リ ッ ク し ます。
10. [I/O Peripherals] → [GPIO] を展開 し て、 [EMIO GPIO (Width)] を オ ン に し ます。 11. [EMIO GPIO (Width)] を 1 に変更 し ます。
12. ZYNQ7 プ ロ セ ッ シ ン グ シ ス テ ム の コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン を開いた状態で、 [Interrupts] → [Fabric Interrupts] → [PL-PS Interrupt Ports] に移動 し ます。
13. [Fabric Interrupts] をオンに し 、 [IRQ_F2P[15:0]] も オ ン に し て IP コ アでの PL-PS 割 り 込みを有効に し ます。 14. [OK] を ク リ ッ ク し て ZYNQ7 プ ロ セ ッ シ ン グ シ ス テ ム IP に対す る 変更を確定 し ます。 図は、33 ページの図 3-3
の よ う にな り ます。
X-Ref Target - Figure 3-2
第 3 章 : Zynq デバイ スでの GP ポー ト の使用
15. 新 し く 追加 し た IP ブ ロ ッ ク の接続プ ロ セ ス を自動化す る ために、ページの上部にあ る [Run Connection Automation] リ ン ク を ク リ ッ ク し ます。
16. Run Connection Automation ウ ィ ザー ド で、[All Automation] の横にあ る チ ェ ッ ク ボ ッ ク ス を オ ン に し ます (図 3-4)。 17. [OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 3-3
図 3‐3 : ZYNQ7 プ ロセ ッ シ ング システム IP
X-Ref Target - Figure 3-4
第 3 章 : Zynq デバイ スでの GP ポー ト の使用
完了後、 更新 さ れたブ ロ ッ ク 図は図 3-5 の よ う にな り ます。
18. [AXI GPIO] IP ブ ロ ッ ク を右 ク リ ッ ク し て [Customize Block] を ク リ ッ ク し ます。 注記 : IP ブ ロ ッ ク を ダブル ク リ ッ ク し て カ ス タ マ イ ズする こ と も で き ます。 19. [Board] ビ ュ ーで、 [GPIO] が [Custom] に設定 さ れてい る こ と を確認 し ます。
20. [IP Configuration] タ ブ を ク リ ッ ク し ます。 必要な GPIO ポー ト は 1 つだけであ る ため、 [GPIO] で [GPIO Width] を 1 に変更 し ます。 [All Inputs] と [All Outputs] の両方がオ フ にな っ てい る こ と も 確認 し ます。
21. [OK] を ク リ ッ ク し て変更を確定 し ます。
22. 割 り 込みポー ト は自動的には AXI Timer IP コ アに接続 さ れない こ と に注意 し て く だ さ い。 [Diagram] ウ ィ ン ド ウ で、 ZYNQ7 プ ロ セ ッ シ ン グ シ ス テ ムの IRQ_F2P[0:0] ポー ト を見つけ ます。
23. コ ネ ク タ ポー ト の上にマ ウ ス ポ イ ン タ ーを乗せて鉛筆ア イ コ ン を表示 さ せます。 マ次に、 IRQ_F2P[0:0] ポー ト を ク リ ッ ク し て AXI Timer IP コ アの interrupt 出力ポー ト に ド ラ ッ グ し 、 こ れ ら 2 つのポー ト を接続 し ます。 24. ZYNQ7 プ ロ セ ッ シ ン グ シ ス テ ム の GPIO_0 ポー ト が接続 さ れていない こ と に注意 し て く だ さ い。 ZYNQ7 プ ロ
セ ッ シ ン グ シ ス テ ムの GPIO_0 出力ポー ト を右 ク リ ッ ク し て [Make External] を ク リ ッ ク し ます。
各ピ ンは外部にあ り ますが、 こ のボー ド では、 こ れ ら の ピ ンに対 し て必要な制約はあ り ません。 ハー ド ウ ェ ア ピ ン を特定のデバ イ ス位置に制約す る には、 次の手順に従い ます。 こ の手順は、 手動で ピ ン を配置す る 場合に使用 で き ます。
X-Ref Target - Figure 3-5
第 3 章 : Zynq デバイ スでの GP ポー ト の使用
25. Flow Navigator の [RTL Analysis] の下にあ る [Elaborated Design] を ク リ ッ ク し ます。
26. 図 3-7 に示す よ う に [Elaborate Design] メ ッ セージ ボ ッ ク ス が開いた ら 、 [OK] を ク リ ッ ク し ます。
ヒ ン ト : デザ イ ンのエ ラ ボレー ト には数分かか り ます。デザ イ ンのエ ラ ボレー ト が進行中に Vivado でほかの こ と を実
行す る 場合、 [Background] を ク リ ッ ク し ます。 こ れに よ り 、 Vivado はプ ロ セ ス をバ ッ ク グ ラ ウ ン ド で引き続き実行で き ます。
27. Vivado の下部にあ る [I/O Ports] ウ ィ ン ド ウ (図 3-8) で [GPIO_0_1522] ポー ト お よ び [GPIO_23220] ポー ト を展開 し 、 サ イ ト (ピ ン) マ ッ プを確認 し ます。
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