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

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
103
0
0

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

全文

(1)

Zynq-7000 All

Programmable SoC :

エ ンベデ ッ ド

デザイ ン

チ ュ ー ト リ アル

効率的な エ ンベデ ッ ド シス テム構築を

サポー ト するハンデ ィ

ガイ ド

UG1165 (v2015.2) 2015 年 6 月 24 日

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

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

報につきましては、必ず最新英語版をご参照ください。

(2)

改訂履歴

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

日付 バージ ョ ン 内容

2015 年 6 月 24 日 2015.2 PetaLinux ツールのバージ ョ ン を 2015.2 にア ッ プデー ト 。

(3)

目次

改訂履歴 . . . 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 でのデバ ッ ク

必要な環境 . . . 60

Zynq SoC ボー ド 上で Linux をブー ト する . . . 61

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

シ ス テ ム デバ ッ ガーを使用 し た SDK でのアプ リ ケーシ ョ ンのプ ロ フ ァ イ ル . . . 75

第 8 章 : ア ク セ ラ レー タ  コ ヒ ーレ ン シ ポー ト  (ACP)

は じ めに . . . 83 ACP の要求 . . . 84 ACP の制約 . . . 85

(4)

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

必要な環境 . . . 86 ペ リ フ ェ ラ ル IP の作成. . . 87 PS の GP マ ス タ ー ポー ト を用いてペ リ フ ェ ラ ル IP を統合す る . . . 92 Linux ベー ス のデバ イ ス ド ラ イ バーを開発す る . . . 95 実行中のカーネルへのモジ ュ ールの ロ ー ド お よ びアプ リ ケーシ ョ ンの実行 . . . 97

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

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

Xilinx Documentation Navigator . . . 101

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

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

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

(5)

第 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 ベースのデバ イ ス ド ラ イ バーの開発およびカー

(6)

第 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 を含め る よ う 選択する

(7)

第 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

(8)

第 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 ペー

(9)

第 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 フ ラ ッ シ ュ カー ド

(10)

第 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

(11)

第 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] を参照 し て く だ さ い。

(12)

第 1 章 : は じ めに

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

こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ルのダ ウ ン ロ ー ド については、101 ページの 「 こ のチ ュ ー ト リ アルのデザ イ ン

(13)

第 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 を起動 し ます。

(14)

第 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>

(15)

第 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

(16)

第 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

(17)

第 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

(18)

第 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

(19)

第 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

(20)

第 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

(21)

第 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

(22)

第 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

(23)

第 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

(24)

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

(25)

第 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

(26)

第 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

(27)

第 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」 と い う 名前にす る 。

(28)

第 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

(29)

第 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 にデバ ッ グ ワ ー ク フ ロ ーを示 し ます。

(30)

第 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

(31)

第 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

(32)

第 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

(33)

第 4 章 : SDK を使用 し たデバ ッ グ 6. [Run] → [Resume] を ク リ ッ ク し 、 プ ロ グ ラ ム を終了ま で実行 し ます。 プ ロ グ ラ ムの実行が完了す る と 、 [Debug] ウ ィ ン ド ウ はプ ロ グ ラ ムが exit と い う ルーチンで一時停止 し てい る こ と を示 し ます。 こ れは、 デバ ッ ガーの制御下で実行 し てい る と き に発生 し ます。 7. コ ー ド を複数回再実行 し ます。 シ ン グル ス テ ッ プ、 メ モ リ の検査、 ブ レー ク ポ イ ン ト 、 コー ド の変更、 およ び print 文の追加を試 し てみます。 ビ ュ ーの追加お よ び移動を試 し ます。 8. SDK を閉 じ ます。

(34)

第 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 にシ ス テ ム のブ ロ ッ ク 図

(35)

第 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

(36)

第 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)。

(37)

第 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

(38)

第 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

(39)

第 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

(40)

第 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

図 1-1  に  Vivado Design Suite  の  Edition  の機能を示 し ます。
図  1‐2 : Vivado  イ ン ス ト ー ラ ー  ‐ [Software Development Kit]  の選択
図  2‐2 : Zynq SoC  プ ロ セ ッ シ ング   シ ス テム  IP  ブ ロ ッ ク
図  2‐3 : [Re‐customize IP]  ダ イ ア ロ グ   ボ ッ ク ス
+7

参照

関連したドキュメント

We remind that an operator T is called closed (resp. The class of the paraclosed operators is the minimal one that contains the closed operators and is stable under addition and

One of the goals of this paper was to examine the extent to which the analysis of Carleson measures and interpolating sequences for space of all functions on the tree with

In the simplest case, when all fluid particles cross boundary, and there are no closed stream lines, the function Ω (ξ 1 , ξ 2 ) is determined from the inflow conditions on the

This result is applicable to most typical nested fractals (but not to the d-dimensional standard Sierpi´ nski gasket with d ≥ 2 at this moment) and all generalized Sierpi´ nski

Abstract The polycirculant conjecture states that every transitive 2-closed permuta- tion group of degree at least two contains a nonidentity semiregular element, that is, a

Furthermore, there exists the global stable manifold W s E 1 that separates the positive quadrant so that all orbits below this manifold are asymptotic to ∞, 0, and all orbits

But in fact we can very quickly bound the axial elbows by the simple center-line method and so, in the vanilla algorithm, we will work only with upper bounds on the axial elbows..

The skeleton SK(T, M) of a non-trivial composed coloured tree (T, M) is the plane rooted tree with uncoloured vertices obtained by forgetting all colours and contracting all