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

エンベデッド デザイン チュートリアル - Xilinx...Zynq‐7000 AP SoC : エンベデッド デザイン チュートリアル 5 UG1165 (v2015.2) 2015 年 6 月 24 日

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

  • Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 2UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    改訂履歴

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

    日付 バージ ョ ン 内容

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

    2015 年 4 月 23 日 2015.1 初版

    http://japan.xilinx.com

  • 目次

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

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

    第 2章 : Zynq SoC プロセッシング システムの使用エンベデッ ド システムの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    第 3章 : Zynq デバイスでの GP ポートの使用ファブリ ッ クの IP を Zynq SoC プロセッシング システムに追加する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29デザイン用のスタンドアロン アプリ ケーシ ョ ン ソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    第 4章 : SDK を使用したデバッグザイ リ ンクス システム デバッガー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40SDK を使用してソフ ト ウェアをデバッグする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    第 5章 : AXI CDMA IP での HP スレーブ ポートの使用AXI CDMA を Zynq SoC PS の HP スレーブ ポート と統合する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45デザイン用のスタンドアロン アプリ ケーシ ョ ン ソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50CDMA システム向けの Linux OS ベースのアプリ ケーシ ョ ン ソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53SDK を使用して Linux CDMA アプリ ケーシ ョ ンを実行する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    第 6章 : Linux のブートおよび SDK でのデバック必要な環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Zynq SoC ボード上で Linux をブートする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    第 7章 : SDK を使用したソフ トウェア プロファイルシステム デバッガーを使用した SDK でのアプリ ケーシ ョ ンのプロファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    第 8章 : アクセラレータ  コヒーレンシ ポート  (ACP)はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83ACP の要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84ACP の制約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

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

    http://japan.xilinx.com

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

    付録 A : その他のリソースおよび法的通知ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Xilinx Documentation Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101このチュート リ アルのデザイン ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102ト レーニング リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 4UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.com

  • 第 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 ボード上で LinuxOS をブートする手順について説明します。 この章では、ファブ リ ッ クで AXI CDMA IP をインスタンシエートする際の情報を提供し、 この IP を高性能 (HP) 64 ビッ ト スレーブ ポート と結合させる方法について説明します。

    • 第 7 章 「SDK を使用したソフ ト ウェア プロファイル」 では、 スタンドアロン BSP および 第 6 章で作成したAXICDMA 関連のアプリ ケーシ ョ ンに対応するプロファ イル機能について説明します。この章では、ソフ ト ウェアをチェッ ク し、 ボ トルネッ クが存在するかど うかを確認する方法について取り上げます。

    • 第 8 章 「アクセラレータ コ ヒーレンシ ポート (ACP)」 では、 ACP (アクセラレータ コ ヒーレンシ ポート ) コ ヒーレン トおよび ACP 非コ ヒーレン トの場合の読み出し要求と書き込み要求に関する情報を提供します。

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

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

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=5

  • 第 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 を含めるよ う選択する必要があ り ます。 8 ページの 「ソフ ト ウェア開発キッ ト 」 を参照してください。

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 6UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=6

  • 第 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‐1 : Vivado Design Suite Edition

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=7

  • 第 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 ページの 「関連デザイン ハブ」 を参照してください。

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 8UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://www.eclipse.orghttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=8

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

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

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 9UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=9

  • 第 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‐2 : Vivado インストーラー ‐ [Software Development Kit] の選択

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 10UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/support/download.htmlhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=10

  • 第 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/petalinuxv2015.2-final にインス トールされます。

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

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

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

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

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=11

  • 第 1 章 :はじめに

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

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

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 12UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=12

  • 第 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. [Vivado Quick Start] ページで [Create New Project] をク リ ッ ク し、 New Project ウ ィザードを開きます。

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=13

  • 第 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_tutorialProject Location C:/designsCreate 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_bdDirectory Specify source set Design Sources

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 14UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=14

  • 第 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‐2 : Zynq SoC プロセッシング システム IP ブロック

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=15

  • 第 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‐3 : [Re‐customize IP] ダイアログ ボックス

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 16UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=16

  • 第 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‐5 : [MIO Configuration] ページ

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=17

  • 第 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‐7 : [Critical Messages] ダイアログ ボックス

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 18UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=18

  • 第 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‐8 :接続された ZYNQ7 プロセッシング システム

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=19

  • 第 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‐9 : [Generate Output Products] ダイアログ ボックス

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 20UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=20

  • 第 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‐11 : Run Synthesis

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=21

  • 第 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] がデフォルト オプシ ョ ンの [] に設定されているこ とを確認します。

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

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

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

    X-Ref Target - Figure 2-12

    図 2‐12 : ステータ  スバー

    X-Ref Target - Figure 2-13

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

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 22UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=22

  • 第 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‐15 : SDK の [system.hdf] のアドレス マップ

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=23

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

    ここまでの結果

    Vivado によって、ソフ ト ウェア開発が行われる選択したワークスペースにハード ウェア仕様がエクスポート されました。 [] を選択していれば、 Vivado プロジェク ト フォルダーに新しいワークスペースが作成されています。 ワークスペース名は .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 を使用してプロジェク トのソフ ト ウェア開発を開始できます。 次のセクシ ョ ンでは、 ハード ウェア プラ ッ ト フォーム向けのソフ ト ウェア アプリ ケーシ ョ ンの作成に役立つ情報を提供します。

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 24UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=24

  • 第 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‐16 : ZC702 ボードの電源スイッチ

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=25

  • 第 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‐18 : [Terminal Settings] ダイアログ ボックス

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 26UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=26

  • 第 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_worldUse Default Location オン

    Hardware Platform tutorial_bd_wrapper_hw_platform_0

    Processor PS7_cortexa9_0OS Platform スタンドアロン

    Language C

    Board Support Package [Create New] をク リ ッ ク して「hello_world_bsp」とい う名前にする。

    Templates Available Templates Hello World

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 27UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=27

  • 第 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 を変更する場合は、 ソフ ト ウェア アプ リ ケーシ ョ ンを右ク リ ッ ク して [ChangeReferenced BSP] をク リ ッ クする と、 ターゲッ ト BSP を管理できます。

    X-Ref Target - Figure 2-19

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

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 28UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=28

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

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 40UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=29

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

    このワークフローは、 次のコンポーネン トで構成されています。

    • ELF 実行ファイル : アプリケーシ ョ ンをデバッグするには、 デバッグ用にコンパイルされた ELF (Executable andLinkable Format) ファ イルを使用する必要があ り ます。 デバッグ用の ELF ファ イルには、 ソース コード と、 元のソースから生成されたバイナリ を直接関連付けるデバッガー用の追加デバッグ情報が含まれています。 ビルド コンフ ィギュレーシ ョ ンを管理するには、ソフ ト ウェア アプリケーシ ョ ンを右ク リ ッ ク して [Build Configurations] →[Manage] をク リ ッ ク します。

    • デバッグ コンフ ィギュレーシ ョ ン : デバッグ セッシ ョ ンを起動するには、SDK でデバッグ コンフ ィギュレーシ ョンを作成する必要があり ます。 このコンフ ィギュレーシ ョ ンでは、 実行ファイル名やデバッグするターゲッ ト プロセッサなど、デバッグ セッシ ョ ンを開始するために必要な情報を入力します。デバッグ コンフ ィギュレーシ ョンを作成するには、 ソフ ト ウェア アプ リ ケーシ ョ ンを右ク リ ッ ク して [Debug As] → [Debug Configurations] をクリ ッ ク します。

    • SDK の [Debug] ウ ィンド ウ : [Debug] ウ ィンド ウを使用して、 ワークベンチでプログラムのデバッグや実行を管理できます。 プログラムの実行は、 ブレークポイン トの設定、 起動したプログラムの一時停止、 コードのステップ実行、および変数の内容の確認によって制御可能です。[Debug] ウ ィンド ウを表示するには、[Window] → [OpenPerspective] → [Debug] をク リ ッ ク します。

    SDK では、 コードの変更、実行ファイルのビルド、プログラムのデバッグというサイ クルを繰り返すこ とができます。

    注記 :デバッグ情報がソースに直接関連付けられているため、コンパイル後にソースを編集する と、行番号がソース と一致しなくな り ます。 同様に、 最適化されたバイナリ をデバッグする と、 実行ト レース中に予期しないジャンプが発生する場合があ り ます。

    X-Ref Target - Figure 4-1

    図 4‐1 : システム デバッガーのフロー

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=30

  • 第 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 (SystemDebugger)] をク リ ッ ク します。 [Debug] ウ ィンド ウが開きます。

    注記 : [Debug] ウ ィンド ウが自動的に開かない場合は、[Window] → [Open] → [Perspective] → [Other] をク リ ッ ク してから Open Perspective ウ ィザードの [Debug] をク リ ッ ク します。

    X-Ref Target - Figure 4-2

    図 4‐2 : [Debug Configurations]

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 42UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=31

  • 第 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‐3 : アプリケーシ ョ ン デバッグ用の [Debug] ウィンドウ

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 43UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=32

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

    6. [Run] → [Resume] をク リ ッ ク し、 プログラムを終了まで実行します。

    プログラムの実行が完了する と、 [Debug] ウ ィンド ウはプログラムが exit とい うルーチンで一時停止しているこ とを示します。 これは、 デバッガーの制御下で実行している と きに発生します。

    7. コードを複数回再実行します。 シングル ステップ、 メモ リの検査、 ブレークポイン ト、 コードの変更、 および print 文の追加を試してみます。 ビューの追加および移動を試します。

    8. SDK を閉じます。

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 44UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=33

  • 第 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 にシステムのブロ ッ ク図を示します。

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 29UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=34

  • 第 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‐1 : ブロック図

    Zynq‐7000 AP SoC : エンベデッ ド  デザイン  チュート リアル 30UG1165 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B%20%28UG1165%29&releaseVersion=2015.2&docPage=35

  • 第 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 をダブルク リ ッ ク してブロ ッ ク図に追加します。 AXITimer IP ブロ ッ クが [Diagram] ウ ィンド ウに表示されます。

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

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

    [Customize Block] ダイアログ ボッ クスが開きます (32 ページの図 3-2)。

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

    http://japan.xilinx.comhttp://japan.xilinx.com/about/feedback.html?docType=Tutorials&docId=UG1165&Title=Zynq-7000%20All%20Programmable%20SoC%20%3A%20%26%2312456%3B%26%2312531%3B%26%2312505%3B%26%2312487%3B%26%2312483%3B%26%2312489%3B%20%26%2312487%3B%26%2312470%3B%26%2312452%3B%26%2312531%3B%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%2