94
Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019 6 27 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報 につきましては、必ず最新英語版をご参照ください。

Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

Vivado Design Suite チュートリアルエンベデッド プロセッサ ハードウェアデザインUG940 (v2019.1) 2019 年 6 月 27 日この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

Page 2: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

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

セクション 改訂内容2019 年 6 月 27 日 バージョン 2019.1

資料全体 2019.1 リリースで検証。第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン Zynq-7000 に関連するアップデート。

改訂履歴

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 2

Page 3: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

目次改訂履歴..........................................................................................................................................................................2

第 1 章: エンベデッド プロセッサのプログラムおよびデバッグ......................................... 5概要..................................................................................................................................................................................5ハードウェアおよびソフトウェア要件..........................................................................................................................5チュートリアル デザインの概要.................................................................................................................................... 6チュートリアル デザイン ファイルの場所.................................................................................................................... 7

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築................................................. 8概要..................................................................................................................................................................................8手順 1: Vivado IDE の起動とプロジェクトの作成........................................................................................................ 8手順 2: IP インテグレーター デザインの作成............................................................................................................. 10手順 3: ブロック デザインのデバッグ......................................................................................................................... 15手順 4: HDL デザイン ファイルの生成........................................................................................................................ 18手順 5: デザインのインプリメントおよびビットストリームの生成..........................................................................19手順 6: ハードウェアの SDK へのエクスポート..........................................................................................................20手順 7: ソフトウェア アプリケーションの作成.......................................................................................................... 21手順 8: ソフトウェア アプリケーションの実行.......................................................................................................... 23手順 9: Vivado ロジック アナライザーへの接続.........................................................................................................26まとめ............................................................................................................................................................................ 30演習ファイル.................................................................................................................................................................31

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン................................................... 32概要................................................................................................................................................................................32手順 1: Vivado IDE の起動とプロジェクトの作成...................................................................................................... 32手順 2: IP インテグレーター デザインの作成............................................................................................................. 32手順 3: デザインのインプリメントおよびビットストリームの生成..........................................................................40手順 4: ハードウェアの SDK へのエクスポート..........................................................................................................41手順 5: SDK でのアプリケーション コードの構築......................................................................................................42手順 6: Vivado ロジック解析への接続.........................................................................................................................52手順 7: プロセッサからファブリックへのクロス トリガーの設定............................................................................ 55手順 8: ファブリックからプロセッサへのクロス トリガーの設定............................................................................ 57まとめ............................................................................................................................................................................ 58演習ファイル.................................................................................................................................................................58

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム..............................59概要................................................................................................................................................................................59手順 1: Vivado IDE の起動とプロジェクトの作成...................................................................................................... 59手順 2: IP インテグレーター デザインの作成............................................................................................................. 60

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 3

Page 4: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

手順 3: IP インテグレーターでのペリフェラルのメモリ マップ............................................................................... 72手順 4: ブロック デザインの検証.................................................................................................................................73手順 13: 出力ファイルの生成....................................................................................................................................... 74手順 6: 最上位ラッパーの作成..................................................................................................................................... 75手順 7: デザインをインプリメンテーションまで実行................................................................................................ 75手順 8: デザインの SDK へのエクスポート................................................................................................................. 76手順 9: ペリフェラル テスト アプリケーションの作成.............................................................................................. 77手順 10: KC705 ボードでのソフトウェア アプリケーションの実行..........................................................................82手順 11: Vivado ロジック解析への接続.......................................................................................................................86手順 12: MicroBlaze からロジックへのクロス トリガーの設定................................................................................ 88手順 13: ロジックからプロセッサへのクロス トリガーの設定..................................................................................89まとめ............................................................................................................................................................................ 90演習ファイル.................................................................................................................................................................91

付録 A: その他のリソースおよび法的通知.......................................................................................... 92ザイリンクス リソース.................................................................................................................................................92Documentation Navigator およびデザイン ハブ...................................................................................................... 92参考資料........................................................................................................................................................................ 92お読みください: 重要な法的通知.................................................................................................................................93

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 4

Page 5: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

第 1 章

エンベデッド プロセッサのプログラムおよびデバッグ概要

このチュートリアルでは、Vivado® 統合設計環境 (IDE) を使用して Zynq®-7000 SoC プロセッサおよび MicroBlaze™プロセッサの基本的なデザインを構築する方法を説明します。このチュートリアルでは、Vivado IP インテグレーターを使用してプロセッサ デザインを構築し、ザイリンクス ソフトウェア開発キット (SDK) および Vivado ロジック解析を使用してデザインをデバッグします。重要: Vivado IP インテグレーターは Xilinx Platform Studio (XPS) に置き換わるツールで、Zynq-7000 SoC デバイスおよび MicroBlaze プロセッサをターゲットにしたデザインを含む、エンベデッド プロセッサ デザインに使用します。XPS では、MicroBlaze プロセッサをターゲットとするデザインのみがサポートされ、Zynq-7000 SoC デバイスはサポートされません。

ハードウェアおよびソフトウェア要件このチュートリアルを実行するには、Vivado Design Suite (System Edition) をインストールしておく必要があります。システムおよびソフトウェア要件は、『Vivado Design Suite ユーザー ガイド: リリース ノート、インストール、およびライセンス』 (UG973) を参照してください。次のプラットフォーム ボードおよびケーブルも必要です。• ザイリンクス Zynq-7000 SoC ZC702 ボード (演習 1 および 2)

• ザイリンクス Kintex®-7 KC705 ボード (演習 3)

• USB 1 つ (タイプ A からタイプ B)

• JTAG プラットフォーム USB ケーブルまたは Digilent ケーブル• ボードに接続する電源ケーブル

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 5

Page 6: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

チュートリアル デザインの概要説明されている手順に従うのであれば、これらの演習にデザイン ファイルは不要です。ただし、後で設計作業を繰り返す場合、デザインをすばやく構築する必要がある場合のため、これらの演習の Tcl コマンド ファイルが提供されています。ハードウェアおよびソフトウェアをクロスプローブする場合は、Vivado とプラットフォーム ボードを手動で操作する必要があるので、Tcl ファイルは提供されていません。

演習 1: Zynq-7000 SoC プロセッサの構築演習 1 では、Zynq-7000 SoC Processing Subsystem (PS) IP とペリフェラルを 2 つ使用します。ペリフェラルはプログラマブル ロジック (PL) にインスタンシエートし、AXI Interconnect を使用して接続します。この演習では、PL で次のIP を使用します。• 汎用 I/O (GPIO)

• ブロック メモリ• AXI BRAM コントローラー演習 1 では、Vivado IP インテグレーターでデザインをグラフィカルに構築し、設計アシスタンスを使用して IP をZynq-7000 SoC PS に接続する方法を説明します。デザインを構築した後、ロジックをデバッグするためネットを選択します。その後、デザインと IP のハードウェア設計言語 (HDL) ファイルを生成します。最後にデザインをインプリメントし、ビットストリームを生成して、デザインの HDL ファイルを ソフトウェア開発キット (SDK) にエクスポートします。そして、SDK を使用して、ソフトウェアデザインをビルドおよびデバッグし、Zynq-7000 SoC プロセスとの通信用に SDK で使用されるハードウェア サーバー (hw_server) アプリケーションを接続する方法を学びます。それから、接続されているボードを使用して、デザインでロジック解析を実行します。

デザイン ファイルこのガイドの ZIP ファイルに、次のデザインファイルが含まれています。• lab1.tcl

関連情報チュートリアル デザイン ファイルの場所演習 1: Zynq-7000 SoC プロセッサ デザインの構築

演習 2: Zynq-7000 SoC クロス トリガー デザイン演習 2 を実行するには、使用するコンピューターに ソフトウェア開発キット (SDK) をインストールしておく必要があります。演習 2 では、SDK を使用して、デザイン ソフトウェアをビルドおよびデバッグし、Zynq-7000 SoC プロセスとの通信用に SDK で使用されるハードウェア サーバー (hw_server) アプリケーションを接続する方法を学びます。その後、Zynq-7000 SoC プロセッサのクロス トリガー機能を使用し、ターゲット ハードウェア上でデザインのロジック解析を実行します。

デザイン ファイルこのガイドの ZIP ファイルに、次のデザインファイルが含まれています。

第 1 章: エンベデッド プロセッサのプログラムおよびデバッグ

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 6

Page 7: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

• lab2.tcl

関連情報チュートリアル デザイン ファイルの場所演習 2: Zynq-7000 SoC クロス トリガー デザイン

演習 3: MicroBlaze プロセッサのプログラム演習 3 では、Vivado IP インテグレーターで ザイリンクス MicroBlaze プロセッサを使用してデザインを作成し、それを SDK にエクスポートして、ソフトウェア デザインを作成し、ロジック解析を実行します。

デザイン ファイルこのガイドの ZIP ファイルに、次のデザインファイルが含まれています。• lab3.tcl

関連情報チュートリアル デザイン ファイルの場所演習 3: エンベデッド MicroBlaze プロセッサのプログラム

チュートリアル デザイン ファイルの場所デザイン データは、関連付けられているリファレンス デザイン ファイルに含まれています。この資料では、デザイン データは <Design_Files> と表記されています。

第 1 章: エンベデッド プロセッサのプログラムおよびデバッグ

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 7

Page 8: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

第 2 章

演習 1: Zynq-7000 SoC プロセッサ デザインの構築概要

この演習では、Zynq®-7000 SoC プロセッサ ベース デザインを作成し、プロセッシング ロジック (PL) デバイスに IPをインスタンシエートしてデザインを完成させます。その後、Vivado® ロジック解析でデバッグするための信号を選択します。最後に、インプリメンテーション、ビットストリーム生成を実行し、ハードウェアを SDK にエクスポートします。SDK では、ターゲット ハードウェアで実行可能なソフトウェア アプリケーションを作成します。ハードウェアとソフトウェアをクロスプローブするため、コードにブレークポイントを追加します。Vivado® 統合開発環境 (Vivado (IDE)) に不慣れな場合は、『Vivado Design Suite ユーザー ガイド: Vivado IDE の使用』(UG893) を参照してください。

手順 1: Vivado IDE の起動とプロジェクトの作成1. Vivado デスクトップ アイコンをダブルクリックするか、またはコマンド ラインに「vivado」と入力し、Vivado

IDE を起動します。2. 次の図に示す Getting Started ページの [Quick Start] セクションで [Create Project] をクリックします。

New Project ウィザードが開きます。3. [Next] をクリックします。

[Project Name] ページが開きます。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 8

Page 9: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

4. [Project Name] ページで、プロジェクト名およびプロジェクト ファイルのディレクトリを入力します。[Createproject subdirectory] チェック ボックスがオンになっていることを確認し、[Next] をクリックします。

5. [Project Type] ページで [RTL Project] をオンにし、[Next] をクリックします。6. [Add Sources] ページで [Target language] を指定し、[Simulator language] を [Mixed] に設定して、[Next] をクリックします。

7. [Add Constraints] ページで [Next] をクリックします。8. [Default Part] ページで次の操作を実行します。

a. [Boards] を選択します。b. [Board Rev] ドロップダウン リストから [All] を選択して、サポートされているボードのすべてのバージョン

を表示します。c. 使用している ZYNQ-7 ZC702 評価ボードのバージョンを選択します。d. [Next] をクリックします。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 9

Page 10: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

注意: Vivado では複数のバージョンのボードがサポートされます。正しいボードをターゲットにしていることを確認してください。9. [New Project Summary] ページでプロジェクトのサマリを確認し、[Finish] をクリックしてプロジェクトを作成します。

手順 2: IP インテグレーター デザインの作成1. Flow Navigator → [IP Integrator] → [Create Block Design] をクリックします。2. [Create Block Design] ダイアログ ボックスで IP サブシステム デザインの名前を指定します (例:

zynq_design_1)。[Directory] はデフォルト設定の [<Local to Project>]、[Specify source set] は [Design Sources]のままにします。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 10

Page 11: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. [OK] をクリックします。4. ブロック デザイン キャンバスで右クリックし、[Add IP] をクリックします。または、IP インテグレーター キャンバスの [Add IP] ボタンをクリックします。

IP カタログが開きます。5. [Search] フィールドに「zynq」と入力して ZYNQ7 Processing System IP を検索します。6. IP カタログで ZYNQ7 Processing System を選択し、Enter キーを押してデザインに IP を追加します。

[Tcl Console] ウィンドウに次のメッセージが表示されます。create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5processing_system7_0

IP インテグレーター ブロック デザインで実行するほとんどの操作には、対応する Tcl コマンドがあります。これらのコマンドはこの資料では説明されていませんが、チュートリアルには各演習で実行する Tcl スクリプトがあります。注記: Tcl コマンドについては 『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) を参照してください。

7. IP インテグレーターで [Run Block Automation] をクリックします。

[Run Block Automation] ダイアログ ボックスが開き、Zynq-7000 SoC IP コア用に FIXED_IO および DDR インターフェイスが作成されることを示すメッセージが表示されます。また、[Apply Board Preset] チェック ボックスがオンになっています。これは、選択されているターゲット ボードが ZC702 だからです。

8. [Cross Trigger In] および [Cross Trigger Out] の両方が [Disable] になっていることを確認します。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 11

Page 12: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

9. [OK] をクリックします。Zynq-7000 SoC プロセッサにブロック オートメーションを実行した後、IP インテグレーターの図は次のようになります。

これで、プロセッシング ロジック (PL) にペリフェラルを追加できます。10. IP インテグレーターのキャンバスを右クリックし、[Add IP] をクリックします。11. [Search] フィールドに「gpi」と入力して AXI GPIO を検索し、Enter キーを押してデザインに追加します。12. 同様に、AXI BRAM Controller も追加します。

ブロック デザインは次の図のようになります。IP の相対的な位置は異なる場合があります。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 12

Page 13: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

ヒント: [Zoom In] ( または Ctrl + =) および [Zoom Out] ( または Ctrl + -) を使用して、図を拡大/縮小表示できます。

設計アシスタンスの使用設計アシスタンスを使用すると、AXI GPIO および AXI BRAM Controller を Zynq-7000 SoC PS に簡単に接続できます。1. 次の図に示す [Run Connection Automation] をクリックします。

[Run Connection Automation] ダイアログ ボックスが開きます。2. 次の図に示すように [All Automation (5 out of 5 selected)] チェック ボックスをオンにします。

コネクション オートメーションを実行する各インターフェイスを選択すると、右側に選択したインターフェイスの説明とオプションが表示されます。

3. axi_bram_ctrl_0 の S_AXI インターフェイスをクリックし、未接続のクロックすべてのクロック接続がデフォルトの [Auto] に設定されていることを確認します。これで、このインターフェイス用に PS7 で生成されたデフォルトのクロック FCLK_CLK0 が選択されます。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 13

Page 14: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

4. axi_gpio_0 インスタンスの GPIO インターフェイスでは、[Board part Interface] ドロップダウン リストから[leds_4bits] を選択します。

5. axi_gpio_0 インスタンスの S_AXI インターフェイスでは、未接続のクロックすべてのクロック接続を [Auto]のままにします。

6. [OK] をクリックします。IP インテグレーター サブシステムは次の図のようになります。IP の相対的な位置は多少異なる場合があります。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 14

Page 15: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

7. [Address Editor] ウィンドウをクリックし、processing_system7_0 の階層を展開し、デザイン内の IP のメモリ マップを表示します。この場合、AXI GPIO と AXI BRAM Controller の 2 つの IP があります。IP インテグレーターにより、これらの IPのメモリ マップが自動的に割り当てられます。これらは必要に応じて変更できます。

8. 次の図に示すように、axi_bram_ctrl_0 の [Range] を [64K] に変更します。

9. [Diagram] タブをクリックして、ブロック デザインに戻ります。

10. [Regenerate Layout] ボタン をクリックして、ブロック デザインを再描画します。

手順 3: ブロック デザインのデバッグネットをデバッグするため、デザインにフックを追加します。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 15

Page 16: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

1. AXI Interconnect IP (ps7_0_axi_periph) および GPIO コア (axi_gpio_0) の間のマスター/スレーブ インターフェイスをデバッグするには、ブロック図でインターフェイスを右クリックし、[Debug] をクリックします。

ブロック デザイン キャンバスで、選択したネットに小さな虫のアイコン が表示されます。これはこのネットがデバッグ用に選択されていることを示します。次の図に示すように [Designs] ウィンドウの階層にも、デバッグ用に選択したインターフェイスに同じアイコンが表示されます。

ネットをデバッグ用に選択すると、ブロック デザイン キャンバス上部のバナーに設計アシスタンスのリンクが表示されます。

2. [Run Connection Automation] をクリックします。次の図に示すように、[All Automation] がデフォルトでオンになっており、AXI 読み出し/書き込み信号のオプションが設定されています。

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

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 16

Page 17: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

System ILA IP が AXI インターフェイスのデバッグ用に設定されているブロック デザインにインスタンシエートされます。デバッグ用に選択されているネットがこの System ILA IP に接続され、適切なクロック ソースがSystem ILA IP の clk ピンに接続されます。このクロック ソースは、インターフェイス信号と同じクロック ドメインに属しています。

4. ツールバーの [Validate Design] ボタン をクリックし、デザイン ルール チェック (DRC) を実行します。メニューからも同じ操作を実行できます。• [Tools] → [Validate Design] をクリックします。• [Diagram] ウィンドウを右クリックし、[Validate Design] をクリックします。[Validate Design] ダイアログ ボックスが表示され、デザインにエラーや警告メッセージがないことが示されます。[Tcl Console] ウィンドウに次の警告メッセージが表示されます。WARNING: [BD 41-1781] Updates have been made to one or more nets/interfaceconnections marked for debug. Debug nets, which are already connected to SystemILA IP core in the block-design, will be automatically available for debug inHardware Manager. For unconnected Debug nets, please open synthesized design anduse 'Set Up Debug' wizard to insert, modify or delete Debug Cores. Failure to doso could result in critical warnings and errors in the implementation flow.

ブロック デザインでは、System ILA または ILA IP がブロック デザインにインスタンシエートされるインスタンシエーション フローを使用するか、ネットがデバッグ用に選択されるだけでデバッグ コアは合成後に挿入されるネットリスト挿入フローを使用できます。この演習のようにインスタンシエーション フローを使用する場合は、この警告メッセージを無視できます。

5. [OK] をクリックします。6. Vivado メニューから、[File] → [Save Block Design] をクリックしますまたはツールバーの Ctrl + S キーを押すか、Vivado ツールバーの [Save] ボタン をクリックして、ブロック デザインを保存します。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 17

Page 18: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

手順 4: HDL デザイン ファイルの生成デザインの HDL ファイルを生成します。1. [Sources] ウィンドウで最上位デザインを右クリックし、[Generate Output Products] をクリックします。これで

ブロック デザインで使用されている IP のソース ファイルおよび関連制約ファイルが生成されます。Flow Navigator で [Generate Block Design] をクリックし、出力ファイルを生成します。次に示す [Generate Output Products] ダイアログ ボックスが開きます。

2. すべての設定をデフォルトのままにします。[Generate] をクリックします。3. [Generate Output Products] ダイアログ ボックスが表示され、アウト オブ コンテキスト run が起動したことが示されます。

4. [OK] をクリックします。完了までに数分かかることがあります。Vivado IDE の下部にある [Design Runs] タブをクリックすると、run のステータスを確認できます。

5. アウト オブ コンテキスト run が終了したら、[Sources] ウィンドウで最上位のサブシステム [zynq_design_1] を右クリックして [Create HDL Wrapper] をクリックし、ブロック デザインをインスタンシエートする最上位 HDL ファイルを作成します。次の図に示す [Create HDL Wrapper] ダイアログ ボックスが開き、2 つのオプションが示されます。• 1 つ目のオプションは、生成した HDL ファイルを変更できるようにラッパーをコピーします。• 2 つ目のオプションは、読み出し専用のラッパー ファイルを作成します。この場合、Vivado により自動的に生成されアップデートされます。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 18

Page 19: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

6. デフォルト オプションである [Let Vivado manage wrapper and auto-update] をオンにします。7. [OK] をクリックします。

ラッパーが作成された後の [Sources] ウィンドウは次のようになります。

手順 5: デザインのインプリメントおよびビットストリームの生成

1. Flow Navigator → [Program and Debug] → [Generate Bitstream] をクリックし、デザインをインプリメントしてBIT ファイルを生成します。[No implementation Results Available] ダイアログ ボックスが開きます。

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

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 19

Page 20: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

[Launch Runs] ダイアログ ボックスが開きます。ここでジョブ数、run を実行するホストなど、さまざまなオプションを設定できます。

3. [OK] をクリックします。合成、インプリメンテーション、ビットストリーム生成が実行されます。これは、数分かかる場合があります。ビットストリームが生成されると、次の図に示すように [Bitstream Generation Completed] ダイアログ ボックスが開きます。デフォルトでは、[Open Implemented Design] がオンになっています。

4. [OK] をクリックします。5. インプリメント済みデザインが開いたら、[Timing] ウィンドウの [Design Timing Summary] ページですべてのタイミング制約が満たされていることを確認します。

手順 6: ハードウェアの SDK へのエクスポート重要: Digilent ドライバーをインストールするには、SDK を起動する前に、ボードに電源を投入してホスト PC に接続しておく必要があります。1. Vivadoで、[File] → [Export] → [Export Hardware] をクリックします。

[Export Hardware] ダイアログ ボックスが開きます。2. 次の図に示すように、[Include bitstream] チェック ボックスがオンになっていること、[Export to] がデフォルトの [<Local to Project>] に設定されていることを確認します。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 20

Page 21: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

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

[Launch SDK] ダイアログ ボックスが開きます。5. [Exported location] および [Workspace] をデフォルト設定のままにして、[OK] をクリックします。

手順 7: ソフトウェア アプリケーションの作成SDK が別のウィンドウに開きます。1. [File] → [New] → [Application Project] をクリックします。

New Project ウィザードが開きます。2. [Project name] にプロジェクト名を入力します (例: Zynq_Design)。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 21

Page 22: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. [Next] をクリックします。4. [Available Templates] で [Peripheral Tests] を選択します。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 22

Page 23: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [Finish] をクリックします。プログラムのコンパイルが完了すると、[Console] ビューに次のように表示されます。

手順 8: ソフトウェア アプリケーションの実行ZC702 ボード上でペリフェラル テスト アプリケーションを実行します。これにはまず JTAG ポートを設定する必要があります。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 23

Page 24: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

1. ハードウェアに Digilent ケーブルまたは USB プラットフォーム ケーブルを介して電源が投入され、ホスト PC に接続されていることを確認します。また、USB ケーブルが ZC702 ボードの UART ポートに接続されていることを確認します。

2. [Xilinx] → [Program FPGA] をクリックして、ビットストリームを FPGA にダウンロードします。[Program FPGA] ダイアログ ボックスが開きます。

3. [Bitstream] フィールドに手順 5 で作成したビットストリーム ファイルが表示されていることを確認して、[Program] をクリックします。注記: プログラミンが完了すると、ボードの DONE LED が緑色に点灯します。SDK のログ ウィンドウに FPGAが正しくコンフィギュレーションされたことを示す情報メッセージも表示されるはずです。

4. [Project Explorer] で Zynq_Design アプリケーションを選択して右クリックします。5. [Debug As] → [Debug Configurations] をクリックします。6. [Debug Configurations] ダイアログ ボックスで [Xilinx C/C++ application (System Debugger)] を右クリックし、

[New] をクリックします。7. [Debug Configurations] ダイアログ ボックスで [Debug] をクリックます。

[Confirm Perspective Switch] ダイアログ ボックスが開きます。8. [Yes] をクリックします。9. [SDK Terminal] ビューをクリックしてターミナルを設定し、 ボタンをクリックします。10. 次の図に示すように、ZC702 ボード用の設定を使用します。COM ポートは使用しているコンピューターによって

異なる場合があります。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 24

Page 25: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

11. [OK] をクリックします。12. [SDK Terminal] ウィンドウの上部に表示されているターミナル接続のステータスを確認します。

13. [Debug] ビューで階層を展開し、プログラムが実行されているプロセッサ コアを確認します。

14. testperiph.c が開いていない場合は、../src/testperiph.c をダブルクリックして開きます。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 25

Page 26: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

ブレークポイントの追加if 文の後にブレークポイントを追加します。1. メイン メニューから [Navigate] → [Go To Line] をクリックします。2. [Go To Line] ダイアログ ボックスで「107」と入力し、[OK] をクリックします。注記: 行番号が異なる場合があるので、適切な場所にブレークポイントを挿入します。

ヒント: 行番号が表示されていない場合は、ウィンドウ左側の青いバーを右クリックし、[Show Line Numbers] をクリックします。3. 左側にある青いバーの 107 行目をダブルクリックして、ソース コードのその行にブレークポイントを追加します。

注記: 行番号が異なる場合があるので、適切な場所にブレークポイントを挿入します。

手順 9: Vivado ロジック アナライザーへの接続1. Vivado セッションに戻り、Flow Navigator → [Program and Debug] → [Open Hardware Manager] を選択します。2. 次の図に示すように、ハードウェア マネージャーで [Open target] をクリックし、[Open New Target] を選択して、ZC702 の Digilent JTAG ケーブルへの接続を開きます。

[Open New Hardware Target] ダイアログ ボックスが開きます。3. [Next] をクリックします。4. [Connect to] ドロップダウン リストから適切なオプションを選択します。[Next] をクリックして [Hardware

Server Settings] ページに進みます。5. ハードウェア サーバーでハードウェア ターゲットが認識されるはずです。[Select Hardware Target] ページで

[Next] をクリックします。6. [Open Hardware Target Summary] ページで [Finish] をクリックします。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 26

Page 27: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

Vivado ハードウェア セッションが ZC702 ボードに接続されると、次の図に示す [Hardware] ウィンドウが開きます。

7. ILA コアがアクティブで、データを取り込んでいることを確認します。これには、ハードウェア マネージャーでhw_ila_1 の [Status] タブを選択します。

8. [hw_ila_1] ウィンドウの [Run Trigger Immediate] ボタン をクリックします。

[+] をクリックして信号グループを展開し、波形ウィンドウの System ILA からのスタティック データを確認します。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 27

Page 28: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

9. アプリケーション コードが GPIO ペリフェラルに書き込みを実行したときにトリガーが発生する条件を設定します。これには次を実行します。a. メニューから [Window] → [Debug Probes] をクリックします。b. [Debug Probes] ウィンドウで slot_0:ps7_0_axi_periph_M00_AXI:AWVALID 信号を選択し、[Trigger

Setup] ウィンドウにドラッグ アンド ドロップします。

c. 次の図のように、*WVALID 行の [Value] 列をクリックします。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 28

Page 29: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

d. ドロップダウン リストの値を [X] から [1] に変更します。10. トリガー条件前後のいくつかのデータ サンプルも確認する必要があります。ILA プロパティ ウィンドウの

hw_ial_1 コアの [Trigger position in window] が 512 に設定されており、トリガー位置が 1024 サンプルのウィンドウの中央に表示されるようになっていることを確認します。

比較値およびトリガー位置を設定したら、ILA コアをトリガーします。

11. 波形ウィンドウまたはステータス ウィンドウで [Run Trigger] ボタン をクリックして、ILA コアをトリガーします。

12. hw_ila_1 ILA コアのステータス ウィンドウが次のように変わります。• [Idle] が [Waiting for Trigger] に変わります。• [Hardware] ウィンドウで [Core Status] が [Waiting for Trigger] に変わります。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 29

Page 30: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

13. SDK に戻り、コードの実行を続けます。これには、SDK ツールバーの [Resume] ボタン をクリックします。または、F8 キーを押してコード実行を続けます。コード実行は、設定したブレークポイントで停止します。この時点までで、GPIO ペリフェラルに対して書き込み操作が少なくとも 1 回実行されています。これらの書き込み操作が実行されると、AWVALID 信号が 0 から 1に遷移し、ILA コアがトリガーされます。注記: 次の図に示すように、AWVALID 信号が初めて 1 になったところにトリガー マークが表示されます。

14. [File] → [Close Project] をクリックしてプロジェクトを閉じ、演習 2 に進みます。または、[File] → [Exit] をクリックして、SDK ウィンドウを閉じます。

まとめこの演習では、IP インテグレーターで Zynq ベースのデザインを作成し、System ILA IP を使用してネットをデバッグして、SDK でソフトウェアを開発し、Zynq-7000 SoC プロセッサ上でコードを実行しました。また、Vivado ロジック解析を使用してデバッグ用に指定したネットを解析し、ハードウェアとソフトウェアの間でクロスプローブを実行しました。この演習では、次の作業を実行しました。• IP インテグレーターを使用して Zynq-7000 SoC プロセッサを含む Vivado プロジェクトを作成しました。• IP インテグレーターで IP をインスタンシエートし、設計アシスタンス機能を使用して必要な接続を設定しました。

• Vivado ロジック解析で解析するため、System ILA IP を使用してデバッグ用にネットを指定して接続しました。• ハードウェア定義を SDK にエクスポートする前に、合成、インプリメンテーション、ビットストリーム生成を実行しました。

• SDK でソフトウェア アプリケーションを作成し、ターゲット ハードウェア ZC702 上で実行しました。アプリケーション コードでブレークポイントを設定し、Vivado で ILA をトリガーし、ハードウェア/ソフトウェアのクロスプローブ機能を試しました。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 30

Page 31: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

演習ファイルこの演習の手順をすべて実行するため、このチュートリアルのデザイン ファイルに含まれている Tcl ファイルlab1.tcl を使用します。この Tcl ファイルは、デザイン作成からビットストリーム生成までのみの Vivado フローを実行します。このファイルはハードウェアとソフトウェアのクロスプローブを実行するためのものなので、手順 7 以降の手順は手動で実行する必要があります。Tcl スクリプトを使用するには、Vivado を起動し、[Tcl Console] ウィンドウに「source lab1.tcl」と入力します。または、コマンド プロンプトで「Vivado -mode batch -source lab1.tcl」と入力し、バッチ モードでスクリプトを実行することもできます。注記: Tcl ファイルを正しく実行するには、lab1.tcl ファイルのプロジェクト パスを変更する必要があります。

第 2 章: 演習 1: Zynq-7000 SoC プロセッサ デザインの構築

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 31

Page 32: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

第 3 章

演習 2: Zynq-7000 SoC クロス トリガーデザイン概要

この演習では、Zynq®-7000 SoC プロセッサとファブリック ロジックとのクロス トリガー機能を使用します。クロストリガーは、ターゲット ハードウェアでリアルタイムに実行しているソフトウェアを SDK で同時にデバッグするために使用できる強力な機能です。このチュートリアルでは、IP インテグレーターでデザインを作成し、デバッグ用にネットを選択し、クロス トリガー機能を使用できるようデザインを設定します。

手順 1: Vivado IDE の起動とプロジェクトの作成1. Vivado デスクトップ アイコンをダブルクリックするか、またはコマンド プロンプトで「vivado」と入力し、

Vivado IDE を起動します。2. Getting Started ページの [Quick Start] セクションで [Create Project] をクリックします。3. New Project ウィザードで次のように設定します。

a. [Project Name] ページで、プロジェクト名およびディレクトリを入力します。b. [Create project subdirectory] チェック ボックスがオンになっていることを確認します。[Next] をクリック

します。c. [Project Type] ページで [RTL project] を選択します。[Do not specify sources at this time] チェック ボックス

がオフになっていることを確認します。[Next] をクリックします。d. [Add Sources] ページで [Target language] を [VHDL] または [Verilog] に設定します。[Simulator language] は

[Mixed] のままにします。[Next] をクリックします。e. [Add Constraints] ページで [Next] をクリックします。f. [Default Part] ページで [Boards] を選択し、現在使用しているハードウェアのバージョンに一致する

[ZYNQ-7 ZC702 Evaluation Board] を選択します。[Next] をクリックします。g. [New Project Summary] ページでプロジェクトのサマリを確認し、[Finish] をクリックしてプロジェクトを作

成します。

手順 2: IP インテグレーター デザインの作成1. Vivado の Flow Navigator で [Create Block Design] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 32

Page 33: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. [Create Block Design] ダイアログ ボックスでブロック デザインの名前を zynq_processor_system に指定します。

3. [Directory] をデフォルトの [<Local to Project>] のままに、[Specify source set] を [Design Sources] に設定します。4. [OK] をクリックします。

IP インテグレーターのブロック図のウィンドウが開きます。5. ブロック デザイン キャンバスで次の図に示す [Add IP] アイコンをクリックします。

IP カタログが開きます。6. [Search] フィールドに「Zynq」と入力して ZYNQ7 Processing System IP を検索し、その IP を選択して Enter キーを押します。または、[ZYNQ7 Processing System IP] をダブルクリックしてインスタンシエートします。

7. ブロック デザインのバナーの [Run Block Automation] をクリックします。

[Run Block Automation] ダイアログ ボックスに、ZYNQ7 Processing System 7 IP の FIXED_IO ピンおよび DDRピンが外部インターフェイス ポートに接続されることが示されます。また、ZC702 ボードをターゲット ボードに選択したので、[Apply Board Preset] チェック ボックスがデフォルトでオンになっています。

8. [Cross Trigger In] および [Cross Trigger Out] を [Enable] に設定し、[OK] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 33

Page 34: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

次の図に示すように、ZYNQ7 Processing System で TRIGGER_IN_0 および TRIGGER_OUT_0 インターフェイスがイネーブルになります。

9. 図のどこかを右クリックし、[Add IP] をクリックして、[AXI GPIO] および [AXI BRAM Controller] をデザインに追加します。デザイン キャンバスは次の図のようになります。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 34

Page 35: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

10. デザイン キャンバス上部の [Run Connection Automation] リンクをクリックします。[Run Connection Automation] ダイアログ ボックスが開きます。

11. [All Automation (7 out of 7 selected)] チェック ボックスをオンにします。これで、デザインのすべてのインターフェイスに対し、コネクション オートメーションが実行されます。各オートメーションを選択すると、そのオートメーションに選択可能なオプションが右側に表示されます。

12. [Run Connection Automation] ダイアログ ボックスで、各接続を次のように設定します。接続 詳細 設定

axi_bram_ctrl_0

• BRAM_PORTA

[Run Connection Automation] ダイアログ ボックスに、新しい Block MemoryGenerator IP がインスタンシエートされ、AXI BRAM Controller の PORTA に接続されることが表示されます。

オプションはありません。

axi_bram_ctrl_0

• BRAM_PORTB

[Run Connection Automation] ダイアログ ボックスには、2 つの選択肢があります。前の手順からの既存の BlockMemory Generator を使用するか、新しい Block Memory Generator をインスタンシエートするかです。ここでは、既存の Block MemoryGenerator を使用します。

[Blk_Mem_Gen] フィールドをデフォルトの BRAM_PORTA のままにします。

axi_bram_ctrl_0

• S_AXI

[Run Connection Automation] ダイアログ ボックスに AXI BRAM Controllerの S_AXI ポートが ZYNQ7 ProcessingSystem IP の M_AXI_GP0 ポートに接続されることが表示されます。AXI BRAM Controller は Block MemoryGenerator ブロックに接続する必要があります。コネクション オートメーション機能を使用すると、Block MemoryGenerator IP をインスタンシエートし、AXI BRAM Controller への適切な接続が実行されます。

[Clock Connection (for unconnectedclks)] を [Auto] のままにします。

axi_gpio_0

• GPIO

[Run Connection Automation] ダイアログ ボックスに、GPIO に接続するために ZC706 ボードで使用可能なインターフェイスが表示されます。

[LEDs_4Bits] を選択します。

axi_gpio_0

• S_AXI

[Run Connection Automation] ダイアログ ボックスに GPIO IP の S_AXI ピンが ZYNQ7 Processing System のM_AXI_GP0 ピンに接続されることが表示されます。また、このデザインに関連している可能性のあるクロック ソースを選択するオプションもあります。

[Clock Connection (for unconnectedclks)] を [Auto] のままにします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 35

Page 36: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

接続 詳細 設定processing_system7_0

• TRIGGER_IN_0

• TRIGGER_OUT_0

[Run Connection Automation] ダイアログ ボックスに TRIGGER_IN_0 および TRIGGER_OUT_0 System ILA IP のクロス トリガー ピンに接続されることが表示されます。

TRIGGER_IN_0 およびTRIGGER_OUT_0 の両方の [ILA] オプションをデフォルトの [Auto] のままにします。

これらの接続を完了させると、IP インテグレーター デザインは次の図のようになります。

13. [Address Editor] ウィンドウをクリックし、メモリ マップド スレーブのアドレスが正しく割り当てられていることを確認します。[Data] を展開します。次の図に示すように、AXI BRAM Controller の [Range] 列で [64K] に変更します。

デバッグ用にネットを選択次に、デバッグする必要のあるネットを選択します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 36

Page 37: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

1. [Diagram] タブをクリックし、AXI GPIO IP の GPIO ピンから LEDs_4Bits ポートに接続されているネットを選択します。

2. ブロック図を右クリックし、[Debug] をクリックします。これでデバッグ用にネットが選択されます。デバッグをする予定のネットに虫のアイコンが表示されます。同じアイコンが [Design Hierarchy] の同じネットにも表示されます。

3. 同様に、axi_gpio_0 のインターフェイス ピン S_AXI および ps7_0_axi_periph のインターフェイス ピンM00_AXI に接続されているネットを選択します。

4. ブロック図を右クリックして [Debug] をクリックします。注記: ネットをデバッグ用に選択すると、ブロック デザイン キャンバスの上部にあるバナーに設計アシスタンスのリンクが表示されます。

5. [Run Connection Automation] をクリックします。6. [Run Connection Automation] ダイアログ ボックスで、[All Automation (2 out of 2 selected)] チェック ボックスをオンにします。

7. [OK] をクリックします。8. [Regenerate Layout] ボタン をクリックして、デザインを再描画します。デザインは次の図のようになります。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 37

Page 38: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

9. [Validate Design] ボタンをクリックして、デザインに対してデザイン ルール チェックを実行します。デザイン検証が終了すると、[Validate Design] ダイアログ ボックスが表示され、デザインにエラーや警告メッセージがないことを確認できます。

10. [OK] をクリックします。11. [File] → [Save Block Design] をクリックし、IP インテグレーター デザインを保存します。または、Ctrl + S キーを押してデザインを保存します。

12. [Sources] ウィンドウで [zynq_processor_system] ブロック デザインを右クリックし、[Generate Output Products]をクリックします。[Generate Output Products] ダイアログ ボックスが表示されます。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 38

Page 39: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

13. [Generate] をクリックします。[Generate Output Products] ダイアログ ボックスに、アウト オブ コンテキスト (OOC) モジュールの run が起動されたことが表示されます。

14. [OK] をクリックします。15. OOC モジュールの run が完了するまで待ちます。完了まで数分がかかる場合があります。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 39

Page 40: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

16. [Sources] ウィンドウで [zynq_processor_system] を右クリックし、[Create HDL Wrapper] をクリックします。[Create HDL Wrapper] ダイアログ ボックスには、2 つのオプションがあります。• [Copy generated wrapper to allow user edits]: 編集可能なラッパー ファイルを生成します。• [Let Vivado manage wrapper and auto-update]: Vivado で管理される読み取り専用のラッパー ファイルを生成します。

17. 次の図に示すデフォルト設定のままにし、[OK] をクリックします。

手順 3: デザインのインプリメントおよびビットストリームの生成

監視用にクロス トリガー信号が ILA に接続されたので、残りのフローを実行します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 40

Page 41: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

1. [Generate Bitstream] をクリックして、デザインのビットストリームを生成します。[No implementation Results Available] ダイアログ ボックスが開き、合成およびインプリメンテーションを起動してもよいかを確認するメッセージが表示されます。

2. [Yes] をクリックします。[Launch Runs] ダイアログ ボックスが開きます。

3. 適切なオプションを設定し、[OK] をクリックします。ビットストリームの生成が完了すると、[Bitstream Generation Completed] ダイアログ ボックスが表示され、デフォルトで [Open Implemented Design] がオンになっています。

4. [OK] をクリックして、インプリメントされたデザインを開きます。5. [Timing] ウィンドウの [Design Timing Summary] ページで、すべてのタイミング制約が満たされていることを確認します。注記: 場合によって、タイミングが多少異なる可能性があります。

手順 4: ハードウェアの SDK へのエクスポートビットストリームを生成したら、ハードウェアを SDK にエクスポートし、ソフトウェア アプリケーションを生成します。1. Vivadoで、[File] → [Export] → [Export Hardware] をクリックします。

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

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 41

Page 42: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. 次の図に示すように、[Include bitstream] チェック ボックスがオンになっていること、[Export to] がデフォルトの [<Local to Project>] に設定されていることを確認します。

3. [OK] をクリックします。4. [File] → [Launch SDK] をクリックします。

次の図に示すように、[Exported location] および [Workspace] フィールドが [<Local Project>] に設定されていることを確認します。

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

手順 5: SDK でのアプリケーション コードの構築SDK が別のウィンドウに開きます。1. [File] → [New] → [Application Project] をクリックします。

[New Project As] ダイアログ ボックスが開きます。ここでプロジェクト名を指定します。この演習では、プロジェクト名を「peri_test」にします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 42

Page 43: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. [Next] をクリックします。3. [Available Templates] で [Peripheral Tests] を選択します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 43

Page 44: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

4. [Finish] をクリックします。5. アプリケーションがコンパイルされるのを待ちます。6. ターゲット ボードがホスト コンピューターに接続され、電源が入っていることを確認します。7. アプリケーションのコンパイルが完了したら、[Xilinx] → [Program FPGA] をクリックし、[Program FPGA] ダイアログ ボックスを開きます。

8. [Program FPGA] ダイアログ ボックスで [Program] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 44

Page 45: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

9. [Project Explorer] ビューで [peri_test] を右クリックし、[Debug As] → [Debug Configurations] をクリックします。[Debug Configurations] ダイアログ ボックスが開きます。

10. [Xilinx C/C++ application (System Debugger)] を右クリックし、[New] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 45

Page 46: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

11. [Create, manage, and run configurations] ページで [Target Setup] タブをクリックし、[Enable Cross triggering] チェック ボックスをオンにします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 46

Page 47: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

12. [Enable Cross-Triggering] オプションの参照ボタンをクリックします。[Cross Trigger Breakpoints] ダイアログ ボックスが開きます。

13. [Create] をクリックします。14. [Create Cross Trigger Breakpoint] ページで、次の図に示すオプションを選択します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 47

Page 48: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

15. [OK] をクリックします。これで、プロセッサからファブリックへのトリガー条件が設定されます。16. [Cross Trigger Breakpoints] ダイアログ ボックスで [Create] をクリックします。

17. [Create Cross Trigger Breakpoint] ページで、次の図に示すオプションを選択します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 48

Page 49: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

18. [OK] をクリックします。これで、ファブリックからプロセッサへのトリガー条件が設定されます。19. [Cross Trigger Breakpoints] ダイアログ ボックスで [OK] をクリックします。

20. [Debug Configurations] ダイアログ ボックスで [Debug] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 49

Page 50: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

[Confirm Perspective Switch] ダイアログ ボックスが開きます。21. 内容を確認したら、[Yes] をクリックします。22. [SDK Terminal] ビューをクリックしてターミナルを設定し、(+) アイコンをクリックします。23. 次の図に示す ZC706 ボードの設定を選択し、[OK] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 50

Page 51: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

24. [SDK Terminal] ビューの上部に表示されているターミナル接続のステータスを確認します。

25. 既に開いていない場合は、../src/testperiph.c をダブルクリックしてソース ファイルを開きます。26. [testperiph.c] ビューの左側にある青いバーをクリックし、[Show Line Numbers] を選択します。27. このソース ファイルの 97 行目付近に while 文を挿入します。28. 次の図に示すように、else 文の後、波かっこの前に「while(1)」を追加します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 51

Page 52: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

29. コードにブレークポイントを追加して、ブレークポイントに達したときにプロセッサがコード実行を停止するようにします。a. 次の図に示すように、while 文が開始した後の行にスクロールし、左側のペインをダブルクリックします。

ダブルクリックしたコード行にブレークポイントが追加されます。b. Ctrl + S キーを押してファイルを保存します。または、[File] → [Save] をクリックします。

これで SDK からコードを実行する準備が整いました。

手順 6: Vivado ロジック解析への接続Vivado ロジック解析を使用して、ZC702 ボードに接続します。1. Vivado セッションに戻り、Vivado Flow Navigator → [Program and Debug] → [Open Hardware Manager] をクリックします。

2. [Hardware Manager] ウィンドウで、[Open target] → [Open New Target] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 52

Page 53: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

注記: [Auto Connect] を使用してターゲット ハードウェアに接続することも可能です。Open New Hardware Target ウィザードが開きます。

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

4. [Hardware Server Settings] ページで、[Connect to] が [Local server (target is on local machine)] に設定されていることを確認し、[Next] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 53

Page 54: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [Select Hardware Target] ページで [Next] をクリックします。

6. [Open Hardware Target Summary] ページで設定が正しいことを確認し、[Finish] をクリックします。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 54

Page 55: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

手順 7: プロセッサからファブリックへのクロス トリガーの設定

Vivado ハードウェア セッションで ZC702 ボードへの接続が完了すると、次の図に示す [Hardware] ウィンドウが開きます。

1. [ILA - hw_ila_1] タブをクリックし、[Trigger Mode Settings] ウィンドウで次のように設定します。• [Trigger mode] を [TRIG_IN_ONLY] に設定します。• [TRIG_OUT mode] を [TRIG_IN_ONLY] に設定します。• [Capture Mode Settings] セクションの [Trigger position in window] が [512] に設定されていることを確認します。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 55

Page 56: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. [Run Trigger] ボタン をクリックして、ILA コアをトリガーします。ILA がトリガーされ、[Core Status] が [Waiting for Trigger] に変わります。

3. SDK の [Debug] ビューの SDK ツールバーにある [Resume] ボタン をクリックし、testperiph.c ファイルの 107 行目に設定されているブレークポイントまでコードを実行します。

4. コードがブレークポイントに到達すると、プロセッサにより ILA にトリガーが送信されます。ILA は、プロセッサからトリガー イベントを受信すると、トリガーするように設定されています。次の図に示すように、波形ウィンドウにさまざまな信号のステートが表示されます。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 56

Page 57: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

上の図は、コード実行がブレークポイントに到達すると、PS7 により ILA がトリガーされることを示しています。ブレークポイントに到達したときの信号のステートは、この方法で確認できます。

手順 8: ファブリックからプロセッサへのクロス トリガーの設定

この手順では、クロス トリガーのファブリックからプロセッサの部分を設定します。これには、ILA でプロセッサをトリガーしてコードの実行を停止させるため、107 行目に設定したブレークポイントを削除します。1. SDK で、SDK ウィンドウの右上の方にある [Breakpoints] タブをクリックし、右クリックして [testperiph.c [line:

106]] チェック ボックスをオフにします。これで、設定されていたブレークポイントが削除されます。注記: または、testperiph.c ファイルでこのブレークポイントをクリックし、[Disable Breakpoint] を選択します。

2. [Debug] ウィンドウで SDK ツールバーにある [Resume] ボタンをクリックします。コードには無限ループがあるので、コードは継続的に実行されます。このコード実行は SDK のターミナル ウィンドウで確認できます。

3. Vivado で [Settings – hw_ila_1] タブを選択します。[Trigger mode] を [BASIC_OR_TRIG_IN] に変更し、[TRIG_OUT mode] を [TRIGGER_OR_TRIG_IN] に変更します。

4. [Trigger Setup] ウィンドウで [+] 記号をクリックし、[Add Probes] ウィンドウでslot_0:ps7_0_axi_periph_M00_AXI:AWVALID 信号をクリックします。

5. [Basic Trigger Setup] ウィンドウの [Radix] を [[B] Binary] に設定し、slot_0:ps7_0_axi_periph_M00_AXI:AWVALID 信号の [Value] を [1] に設定します。これで、awvalid が1 に遷移すると、ILA がトリガーするよう設定されます。

6. [Run Trigger] ボタン をクリックし、ILA をトリガーさせます。SDK コードが AXI トランザクションを実行し、awvalid 信号がトグルするので、ILA はすぐにトリガーします。これにより ILA の trigger_out がトグルするので、プロセッサがコードの実行を停止します。これは、SDK の [Debug] ビューで、次の図の赤で囲まれているエリアで確認できます。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 57

Page 58: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

まとめこの演習では、Zynq-7000 SoC プロセッサ ベースのデザインでクロス トリガーがどのように機能するかを学びました。クロス トリガーは、統合環境でハードウェアおよびソフトウェアを協調デバッグするために使用できます。

演習ファイルこのチュートリアルは、GUI 環境で Zynq-7000 SoC プロセッサのクロス トリガー機能を実行する方法を示します。そのため、Tcl ファイル lab2.tcl のみが提供されています。lab2.tcl ファイルを使用すると、SDK にハードウェアをエクスポートするまでの手順をすべて実行できます。この演習のデバッグ部分は GUI で実行する必要があります。デバッグ用の Tcl ファイルは提供されていません。

第 3 章: 演習 2: Zynq-7000 SoC クロス トリガー デザイン

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 58

Page 59: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

第 4 章

演習 3: エンベデッド MicroBlaze プロセッサのプログラム概要

このチュートリアルでは、Vivado® IP インテグレーターを使用して、Kintex®-7 FPGA 用の単純な MicroBlaze™ システムを作成します。MicroBlaze システムには、次のザイリンクス IP が最初から含まれています。• MicroBlaze プロセッサ• AXI ブロック RAM

• ダブル データ レート 3 (DDR3) メモリ• UARTLite

• GPIO

• デバッグ モジュール (MDM)

• プロセッサ システム リセット• ローカル メモリ バス (LMB)

ブロック デザインの一部は、プラットフォーム ボード フローを使用して構築されます。この演習では、MicroBlaze プロセッサのクロス トリガー機能も使用します。この機能は、スタンドアロン アプリケーション モードの SDK で開発されたソフトウェア アプリケーション コードを使用して説明されています。この演習では、ザイリンクス KC705 FPGA 評価ボードをターゲットにします。

手順 1: Vivado IDE の起動とプロジェクトの作成1. Vivado デスクトップ アイコンをダブルクリックするか、またはコマンド プロンプトで「vivado」と入力し、

Vivado IDE を起動します。2. Getting Started ページの [Quick Start] セクションで [Create Project] をクリックします。3. New Project ウィザードで次のように設定します。

a. [Project Name] ページで、プロジェクト名およびディレクトリを入力します。

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 59

Page 60: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

b. [Create project subdirectory] チェック ボックスがオンになっていることを確認します。[Next] をクリックします。

c. [Project Type] ページで [RTL project] を選択します。[Do not specify sources at this time] チェック ボックスがオフになっていることを確認します。[Next] をクリックします。

d. [Add Sources] ページで [Target language] を [VHDL] または [Verilog] に設定します。[Simulator language] は[Mixed] のままにしておきます。

e. [Next] をクリックf. [Add Constraints] ページで [Next] をクリックします。g. [Default Part] ページで [Boards] を選択し、現在のバージョンの [Kintex-7 KC705 Platform] を選択します。

[Next] をクリックします。h. [New Project Summary] ページでプロジェクトのサマリを確認し、[Finish] をクリックしてプロジェクトを作

成します。Vivado IDE プロジェクトを作成したときに KC705 ボードを選択したので、次のメッセージが [Tcl Console]ウィンドウに表示されます。set_property board part xilinx.com:kc705:part0:1.6 [current_project]

Vivado IDE で実行する操作の多くには対応する Tcl コマンドがありますが、このチュートリアルでは説明されていません。代わりに、プロジェクト全体を再作成するときに使用できる Tcl スクリプトが提供されています。詳細は、[Tcl Console] ウィンドウを参照してください。write_bd_tcl コマンドの詳細は、『VivadoDesign Suite Tcl コマンド リファレンス ガイド』 (UG835) も参照してください。

手順 2: IP インテグレーター デザインの作成1. Flow Navigator で [IP Integrator] → [Create Block Design] をクリックします。2. IP サブシステム デザイン名を指定します。この手順では、[Design name] に「mb_subsystem」と入力します。

[Directory] フィールドはデフォルトの [<Local to Project>] のままにします。[Specify source set] もデフォルトの[Design Sources] のままにします。

3. [Create Block Design] ダイアログ ボックスで [OK] をクリックします。

4. IP インテグレーター キャンバスを右クリックし、[Add IP] をクリックします。IP カタログが開きます。または、キャンバスの中央で [Add IP] アイコンをクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 60

Page 61: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [Search] フィールドに「mig」と入力して MIG コアを検索し、[Memory Interface Generator (MIG 78 Series)] を選択して Enter キーを押します。

ブロック デザインのバナーに設計アシスタンスのリンクが表示されます。6. [Run Block Automation] をクリックします。

[Run Block Automation] ダイアログ ボックスが開きます。7. [OK] をクリックします。これで MIG コアがインスタンシエートされ、その I/O インターフェイスが KC705 ボー

ドの DDR メモリの I/O インターフェイスに接続されます。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 61

Page 62: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

8. ブロック デザイン キャンバスで右クリックし、[Add IP] をクリックします。IP カタログが開きます。

9. [Search] フィールドに「micr」と入力して MicroBlaze IP を検索し、[MicroBlaze] を選択して Enter キーを押します。注記: [IP Details] ウィンドウを表示するには、Ctrl + Q キーを押します。

[Board] ウィンドウを使用したボード インターフェイスの接続IP インテグレーターで既存のインターフェイスを使用するには、複数の方法があります。ここでは、[Board] ウィンドウを使用して KC705 ボードにあるインターフェイスをインスタンシエートします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 62

Page 63: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

1. [Board] ウィンドウを選択して KC705 ボードにあるインターフェイスを確認します。

[Board] ウィンドウには、次の図に示すように [DDR3 SDRAM] の横に というマークが表示されており、このインターフェイスが接続されていることが示されます。前の手順でブロック オートメーション機能を使用して、MIG コアを DDR3 SDRAM メモリのボード インターフェイスに接続したからです。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 63

Page 64: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. [Board] ウィンドウの [Miscellaneous] フォルダーの下にある [UART] を選択し、ブロック デザイン キャンバスにドラッグ アンド ドロップします。これで、ブロック デザインに AXI Uartlite IP がインスタンシエートされます。

3. [Auto Connect] ダイアログ ボックスで [OK] をクリックします。4. 同様に、[Board] ウィンドウの [General Purpose Input or Output] フォルダーの下にある [LED] を選択し、ブロック デザイン キャンバスにドラッグ アンド ドロップします。

5. [Auto Connect] ダイアログ ボックスで [OK] をクリックします。これで、ブロック デザインに GPIO IP がインスタンシエートされ、オンボードの LED に接続されます。ブロック デザインは次の図のようになるはずです。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 64

Page 65: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

ペリフェラルの追加: AXI BRAM Controller1. IP インテグレーター キャンバスを右クリックして [Add IP] をクリックし、[AXI BRAM Controller] を追加します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 65

Page 66: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

ブロック オートメーションの実行1. [Run Block Automation] をクリックします。

[Run Block Automation] ダイアログ ボックスが開きます。2. [Run Block Automation] ダイアログ ボックスで、次のように設定します。

a. [Preset]: デフォルトの [None] のままにします。b. [Local Memory]: [64 KB] に設定します。c. [Local Memory ECC]: デフォルトの [None] のままにします。d. [Cache Configuration]: [32 KB] に変更します。e. [Debug Module]: [Extended Debug] に変更します。f. [Peripheral AXI Port]: デフォルトの [Enabled] のままにします。g. [Clock Connection]: [/mig_7series_0/ui_addn_clk_0 (100 MHz)] のままにします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 66

Page 67: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. [OK] をクリックします。これで、IP インテグレーターに次の図に示す基本的な MicroBlaze システムが生成されます。

コネクション オートメーションの使用コネクション オートメーションでは、いくつかの接続オプションがあります。このセクションでは、最初の接続を順を追って説明します。その後同じ手順を繰り返して、このチュートリアルに必要な接続を実行します。1. [Run Connection Automation] をクリックします。

[Run Connection Automation] ダイアログ ボックスが開きます。2. 次の図に示すように、このダイアログ ボックスの左側にあるインターフェイスをオンにします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 67

Page 68: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. [Run Connection Automation] ダイアログ ボックスのオプションを次の表に示すように設定します。表 1: [Run Connection Automation] のオプション

接続 詳細 設定axi_bram_ctrl_0

• BRAM_PORTA

新しい Block Memory Generator をインスタンシエートするのが唯一のオプションです。[Blk_Mem_Gen] はデフォルトの [Auto]のままにします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 68

Page 69: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

表 1: [Run Connection Automation] のオプション (続き)

接続 詳細 設定axi_bram_ctrl_0

• BRAM_PORTB

[Run Connection Automation] ダイアログ ボックスには、次の 2 つの選択肢が表示されます。• 新しい Block Memory Generatorをインスタンシエートし、AXIBRAM Controller の PORTB をこのBlock Memory Generator IP に接続します。

• 前にインスタンシエートした BlockMemory Generator コアを使用し、それをデュアル ポート メモリに設定して、AXI BRAM Controller のPORTB に接続します。

[Blk_Mem_Gen] はデフォルトの [Auto]のままにします。

axi_bram_ctrl_0

• S_AXI

この場合はオプションが 2 つあります。[Master] フィールドは、キャッシュ アクセスまたは非キャッシュ アクセスに設定できます。

[Run Connection Automation] ダイアログ ボックスでは、[/microblaze_0(Cached)] に接続できます。デフォルト値のままにします。キャッシュ アクセスが必要でない場合は、[/microblaze_0(Periph)] に設定します。[Clock Connection (for unconnectedclks)] は [Auto] のままにします。

axi_gpio_0

• S_AXI

[Master] フィールドは [/microblaze_0(Periph)] に設定されています。[Clock Connection (for unconnectedclks)] はデフォルトの [Auto] に設定されています。

デフォルト値のままにします。

axi_uartlite_0

• S_AXI

[Master] フィールドはデフォルトの [/microblaze_0 (Periph)] に設定されます。[Clock Connection (for unconnectedclks)] はデフォルトの [Auto] に設定されています。

デフォルト値のままにします。

mdm_1

• TRIG_IN_0

新しい System ILA コアの TRIG_OUTピンに接続されます。 ILA の接続設定はデフォルトの [Auto]のままにします。mdm_1

• TRIG_OUT_0

Syetem ILA コアの TRIG_IN ピンに接続されます。 ILA の接続設定はデフォルトの [Auto]のままにします。mig_7series_0

• S_AXI

[Master] フィールドは [/microblaze_0(Cached)] に設定されています。DDR3メモリへのアクセスがキャッシュ アクセスになるように、この設定はそのままにします。[Clock Connection (for unconnectedclks)] はデフォルトの [Auto] に設定されています。

デフォルト値のままにします。

mig_7series_0

• sys_rst

ボード インターフェイス リセットは、このメモリ IP のリセット ピンに接続されます。デフォルト値のままにしておきます。

Rst_mig_7_series_0_100M

• ext_reset_in

Processor System Reset IP のリセットピンはボート リセット ピンに接続されます。デフォルト値のままにしておきます。

4. 上記の表で説明したように適切なオプションを設定したら、[OK] をクリックします。この時点で、IP インテグレーター図は次のようになるはずです。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 69

Page 70: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

注記: IP の相対的な位置は多少異なる場合があります。

デバッグ用にネットを選択1. MicroBlaze と GPIO の間の AXI トランザクションを確認するため、microblaze_0_axi_periph インスタンス

の M01_AXI インターフェイス ピンと axi_gpio_0 インスタンスの S_AXI インターフェイス ピンを接続するインターフェイス ネットを選択します。

2. 右クリックして [Debug] をクリックします。注記: ブロック デザインのバナーに設計アシスタンスの [Run Connection Automation] のリンクが表示されます。

3. [Run Connection Automation] をクリックします。4. [Run Connection Automation] ダイアログ ボックスで、次の図に示すようにデフォルト設定のままにします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 70

Page 71: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [OK] をクリックします。microblaze_0_axi_periph インターコネクトおよび axi_gpio_0 を接続する MDM および AXI インターフェイス ネットのクロス トリガー ピンが、次の図に示すように System ILA IP に接続されます。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 71

Page 72: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

6. IP インテグレーターのツールバーで [Regenerate Layout] ボタン をクリックして、ブロック デザインを再描画します。ブロック図は次のようになります。

手順 3: IP インテグレーターでのペリフェラルのメモリマップ

1. [Address Editor] ウィンドウをクリックします。2. [Address Editor] ウィンドウで次を実行します。

a. [Address Editor] ウィンドウのツールバーにある [Expand All] ボタン をクリックし、microblaze_0 インスタンスを展開します。

b. 次の図に示すように、mig_7_series_0 IP の [Data] および [Instruction] の両方で [Range] を [512 MB] に変更します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 72

Page 73: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

ソフトウェアを実行および格納するメモリが、キャッシュ可能なアドレス範囲内にあることも確認します。これには、MicroBlaze プロセッサに対してブロック オートメーションを実行するときに、命令キャッシュおよびデータ キャッシュをイネーブルにします。メモリ IP DDR または AXI ブロック RAM を使用するには、キャッシュ可能エリアにこれらの IP が配置されている必要があります。そうでないと、MicroBlaze プロセッサはこれらの IP に対し読み出しや書き込み操作を実行できません。デザインを検証すると、MicroBlaze プロセッサのキャッシュ可能なアドレス範囲が自動的に再設定されます。

手順 4: ブロック デザインの検証デザイン ルール チェックをデザインで実行する手順は、次のとおりです。1. ツールバーの [Validate Design] ボタン をクリックし、[Tools] → [Validate Design] をクリックします。

[Validate Design] ダイアログ ボックスが表示され、デザインにクリティカル警告やエラーがないことを確認します。

2. [OK] をクリックします。3. Ctrl + S キーを押すか、または、[File] → [Save Block Design] をクリックし、デザインを保存します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 73

Page 74: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

手順 13: 出力ファイルの生成1. [Sources] ウィンドウでブロック デザインを右クリックし、[Generate Output Products] をクリックします。また

は、Flow Navigator で [Generate Block Design] をクリックします。[Generate Output Products] ダイアログ ボックスが表示されます。

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

[Generate Output Products] ダイアログ ボックスに、アウト オブ コンテキスト (OOC) モジュールの run が起動されたことが表示されます。

3. [OK] をクリックします。4. アウト オブ コンテキスト モジュールの run がすべて完了し、[Design Runs] ウィンドウに次の図のように表示さ

れるまで、数分かかります。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 74

Page 75: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

手順 6: 最上位ラッパーの作成1. [Design Sources] の下にある design mb_subsystem ブロックを右クリックし、[Create HDL Wrapper] をクリックします。[Create HDL Wrapper] ダイアログ ボックスでは、デフォルトで [Let Vivado manage wrapper and auto-update] が選択されています。

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

手順 7: デザインをインプリメンテーションまで実行1. Flow Navigator で [Generate Bitstream] をクリックします。

[No implementation Results Available] ダイアログ ボックスが開きます。2. [Yes] をクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 75

Page 76: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

[Launch Runs] ダイアログ ボックスが開きます。3. 適切なオプションを設定し、[OK] をクリックします。

ビットストリーム生成が完了するまでに数分かかります。生成が完了すると、[Bitstream Generation Completed]ダイアログ ボックスに次の指示が表示されます。

4. デフォルトの [Open Implemented Design] をオンにした状態で、[OK] をクリックします。5. 次の図に示す [Timing] ウィンドウの [Design Timing Summary] ページで、すべてのタイミング制約が満たされて

いることを確認します。

手順 8: デザインの SDK へのエクスポートデザインを開き、SDK にエクスポートします。1. Vivadoで、[File] → [Export] → [Export Hardware] をクリックします。

[Export Hardware] ダイアログ ボックスが開きます。2. 次の図に示すように、[Include bitstream] チェック ボックスがオンになっていること、[Export to] がデフォルト

の [<Local to Project>] に設定されていることを確認します。

3. [OK] をクリックします。4. [File] → [Launch SDK] をクリックします。次の図に示す [Launch SDK] ダイアログ ボックスが開きます。[Exported location] および [Workspace] ドロップダウン リストが [<Local Project>] に設定されていることを確認します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 76

Page 77: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [OK] をクリックします。SDK が別のウィンドウに開きます。

手順 9: ペリフェラル テスト アプリケーションの作成1. SDK の [Project Explorer] ビューで [mb_subsystem_wrapper_hw_platform_0] を右クリックし、[New] → [Project]をクリックします。

図 1: SDK での新規プロジェクトを作成するコマンドの選択

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 77

Page 78: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. New Project ウィザードの [Select a wizard] ページで、[Xilinx] → [Application Project] をクリックします。

3. [Next] をクリックします。4. [Project name] にプロジェクトの名前を入力し (例: peri_test)、[OS platform] を [standalone] に設定します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 78

Page 79: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [Next] をクリックします。6. [Peripheral Tests] を選択し、[OK] をクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 79

Page 80: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

SDK で、新しい peri_test アプリケーションが作成されます。7. アプリケーションのコンパイルが完了するのを待ちます。8. [Project Explorer] で [peri_test] を右クリックし、[Generate Linker Script] をクリックします。

[Generate Linker Script] ダイアログ ボックスが開きます。9. [Basic] タブをクリックし、[Assigned Memory for Heap and Stack] を [mig_7series_0] に変更します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 80

Page 81: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

[Advanced] タブで、次の図に示すようにすべてのオプションを [mig_7_series_0] に変更します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 81

Page 82: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

これらを [mig_7series_0] に設定すると、コンパイルされたコードがメモリ IP から実行されます。10. [Generate] をクリックします。11. [Linker Already Exists!] ダイアログ ボックスで [Yes] をクリックして、上書きします。

手順 10: KC705 ボードでのソフトウェア アプリケーションの実行

重要: ターゲット ボードをホスト コンピューターに接続し、電源が入っていることを確認します。

1. [Xilinx Tools] → [Program FPGA] をクリックします。2. [Program FPGA] ダイアログ ボックスで [Program] をクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 82

Page 83: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. [Project Explorer] ビューで [peri_test] を右クリックし、[Debug As] → [Debug Configurations] をクリックします。[Debug Configurations] ダイアログ ボックスが開きます。

4. [Xilinx C/C++ application (System Debugger)] を右クリックし、[New] をクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 83

Page 84: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

5. [Debug] をクリックします。[Confirm Perspective Switch] ダイアログ ボックスが開きます。

6. 内容を確認したら、[Yes] をクリックします。[Debug perspective] ウィンドウが開きます。

7. [SDK Terminal] ビューでターミナルを設定し、 ボタンをクリックします。8. 次の図に示す KC705 ボードの設定を使用し、[OK] をクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 84

Page 85: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

9. [SDK Terminal] ビューの上部に表示されているターミナル接続のステータスを確認します。

10. 既に開いていない場合は、../src/testperiph.c をダブルクリックしてソース ファイルを開きます。11. このソース ファイルの 41 行目付近に while 文を挿入します。

a. [testperiph.c] ビューの左側にある青いバーをクリックし、[Show Line Numbers] を選択します。b. 次の図に示すように、41 行目 (波かっこの前) に「while(1)」を追加します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 85

Page 86: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

12. コードにブレークポイントを追加して、ブレークポイントに達したときにプロセッサがコード実行を停止するようにします。これには、50 行目にスクロールし、左側のペインをダブルクリックします。そのコード行にブレークポイントが追加されます。

13. Ctrl + S キーを押してファイルを保存します。または、[File] → [Save] をクリックします。

これで SDK からコードを実行する準備が整いました。

手順 11: Vivado ロジック解析への接続Vivado ロジック解析を使用して、KC705 ボードに接続します。1. Vivado セッションに戻り、Vivado Flow Navigator → [Program and Debug] → [Open Hardware Manager] をクリ

ックします。2. [Hardware Manager] ウィンドウで、[Open target] → [Open New Target] をクリックします。

注記: [Auto Connect] を使用してターゲット ハードウェアに接続することも可能です。次の図に示す Open New Hardware Target ウィザードが開きます。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 86

Page 87: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. [Next] をクリックします。4. [Hardware Server Settings] ページで、[Connect to] が [Local server (target is on local machine)] に設定されていることを確認し、[Next] をクリックします。

5. [Select Hardware Target] ページで [Next] をクリックします。6. [Open Hardware Target Summary] ページで設定が正しいことを確認し、[Finish] をクリックします。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 87

Page 88: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

手順 12: MicroBlaze からロジックへのクロス トリガーの設定

Vivado ハードウェア セッションで ZC702 ボードへの接続が完了すると、次の図に示す [Hardware] ウィンドウが開きます。

図 2: Vivado の [Hardware] ウィンドウ

1. [Settings - hw_ila_1] タブをクリックし、[Trigger Mode Settings] を次のように設定します。a. [Trigger mode] を [TRIG_IN_ONLY] に設定します。b. [TRIG_OUT mode] を [TRIG_IN_ONLY] に設定します。c. [Capture Mode Settings] セクションの [Trigger position in window] が [512] に設定されていることを確認します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 88

Page 89: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

2. [Run Trigger] ボタン をクリックして、ILA コアをトリガーします。ILA がトリガーされ、[Core Status] が [Waiting for Trigger] に変わります。

3. SDK の [Debug] ビューで [MicroBlaze #0] をクリックし、[Resume] ボタン をクリックします。コードが testperiph.c ファイルの 50 行目に設定されているブレークポイントまで実行されます。ブレークポイントに達すると、ILA がトリガーされます。

上の図は、コード実行がブレークポイントに到達すると、MicroBlaze により ILA がトリガーされることを示しています。コード実行中のある時点でのハードウェアのステートは、この方法で確認できます。

手順 13: ロジックからプロセッサへのクロス トリガーの設定

この手順では、クロス トリガーのロジックからプロセッサの部分を設定します。これには、ILA でプロセッサをトリガーしてコードの実行を停止させるため、50 行目に設定したブレークポイントを削除します。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 89

Page 90: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

1. SDK ウィンドウの右上の方にある [Breakpoints] タブをクリックし、[testperiph.c [line: 50]] チェック ボックスをオフにします。これで、設定されていたブレークポイントが削除されます。または、testperiph.c ファイルでこのブレークポイントをクリックし、[Disable Breakpoint] を選択します。

2. [Debug] ウィンドウで [MicroBlaze #0 target] ブロック デザインを右クリックし、[Resume] をクリックします。コードには無限ループがあるので、コードは継続的に実行されます。このコード実行は SDK のターミナル ウィンドウで確認できます。

3. Vivado で [Settings - hw_ila_1] タブを選択します。[Trigger mode] を [BASIC_OR_TRIG_IN] に変更し、[TRIG_OUTmode] を [TRIGGER_OR_TRIG_IN] に変更します。

4. [Trigger Setup] ウィンドウで [+] 記号をクリックし、[Add Probes] ウィンドウでslot_0:microblaze_0_axi_periph_M01:AWVALID 信号をクリックします。

5. slot_0:microblaze_0_axi_periph_M01:AWVALID 信号に対し、[Basic Trigger Setup] ウィンドウの [Radix]を [[B] (Binary)] に設定し、[Value] を [1] に設定します。これで、awvalid が 1 に遷移すると、ILA がトリガーするよう設定されます。

6. [Status – hw_ila_1] ウィンドウの [Run Trigger] ボタンをクリックし、ILA をトリガーさせます。アプリケーション ソフトウェアが継続的に GPIO に書き込みを実行し、net_slot_0_axi_awvalid 信号がトグルするので、ILA はすぐにトリガーします。ILA がトリガーすると、プロセッサにコード実行を停止するように指示する TRIG_OUT 信号がトグルします。これは、SDK の [Debug] ビューで、次の図の赤で囲まれているエリアで確認できます。

まとめこのチュートリアルでは、次のことを学びました。• Vivado IP インテグレーターでデザインを作成しました。• デザインでインプリメンテーションおよびビットストリーム生成を実行しました。• ハードウェアを SDK にエクスポートしました。• スタンドアロンの OS で実行するアプリケーション コードを作成し、変更しました。• DDR3 からコードを実行するよう、リンカー スクリプトを変更しました。• コードを実行している MicroBlaze プロセッサとデザイン ロジックとのクロス トリガー機能を確認しました。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 90

Page 91: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

演習ファイルデザイン ファイルに含まれている Tcl スクリプト lab3.tcl を使用すると、Vivado でのすべてのタスクを実行できます。SDK での操作は、SDK の GUI で実行する必要があります。ご使用のプロジェクト パスおよびプロジェクト名に合わせて、Tcl スクリプトを変更する必要がある場合があります。

第 4 章: 演習 3: エンベデッド MicroBlaze プロセッサのプログラム

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 91

Page 92: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

付録 A

その他のリソースおよび法的通知

ザイリンクス リソースアンサー、資料、ダウンロード、フォーラムなどのサポート リソースは、ザイリンクス サポート サイトを参照してください。

Documentation Navigator およびデザイン ハブザイリンクス Documentation Navigator (DocNav) では、ザイリンクスの資料、ビデオ、サポート リソースにアクセスでき、特定の情報を取得するためにフィルター機能や検索機能を利用できます。DocNav を開くには、次のいずれかを実行します。• Vivado® IDE で [Help] → [Documentation and Tutorials] をクリックします。• Windows で [スタート] → [すべてのプログラム ] → [Xilinx Design Tools] → [DocNav] をクリックします。• Linux コマンド プロンプトに「docnav」と入力します。ザイリンクス デザイン ハブには、資料やビデオへのリンクがデザイン タスクおよびトピックごとにまとめられており、これらを参照することでキー コンセプトを学び、よくある質問 (FAQ) を参考に問題を解決できます。デザイン ハブにアクセスするには、次のいずれかを実行します。• DocNav で [Design Hub View] タブをクリックします。• ザイリンクス ウェブサイトでデザイン ハブ ページを参照します。注記: DocNav の詳細は、ザイリンクス ウェブサイトの Documentation Navigator ページを参照してください。注意: DocNav からは、日本語版は参照できません。ウェブサイトのデザイン ハブ ページをご利用ください。

参考資料このガイドの補足情報は、次の資料を参照してください。1. 『Vivado Design Suite ユーザー ガイド: リリース ノート、インストールおよびライセンス』 (UG973: 英語版、日

本語版)

2. 『Vivado Design Suite ユーザー ガイド: Vivado IDE の使用』 (UG893: 英語版、日本語版)

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

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 92

Page 93: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

3. 『Vivado Design Suite ユーザー ガイド: IP を使用した設計』 (UG896: 英語版、日本語版)

4. 『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835: 英語版、日本語版)

5. 『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』 (UG892: 英語版、日本語版)

6. 『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900: 英語版、日本語版)

7. 『Vivado Design Suite ユーザー ガイド: Tcl スクリプト機能の使用』 (UG894: 英語版、日本語版)

8. 『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904: 英語版、日本語版)

9. 『Vivado Design Suite ユーザー ガイド: Tcl スクリプト機能の使用』 (UG894: 英語版、日本語版)

10.『Zynq-7000 SoC テクニカル リファレンス マニュアル』 (UG585: 英語版、日本語版)

お読みください: 重要な法的通知本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には「貴殿」、法人その他の団体の場合には「貴社」。以下同じ) に開示される情報 (以下「本情報」といいます) は、ザイリンクスの製品を選択および使用することのためにのみ提供されます。適用される法律が許容する最大限の範囲で、(1) 本情報は「現状有姿」、およびすべて受領者の責任で (with all faults) という状態で提供され、ザイリンクスは、本通知をもって、明示、黙示、法定を問わず (商品性、非侵害、特定目的適合性の保証を含みますがこれらに限られません)、すべての保証および条件を負わない (否認する) ものとします。また、(2) ザイリンクスは、本情報 (貴殿または貴社による本情報の使用を含む) に関係し、起因し、関連する、いかなる種類・性質の損失または損害についても、責任を負わない (契約上、不法行為上 (過失の場合を含む)、その他のいかなる責任の法理によるかを問わない) ものとし、当該損失または損害には、直接、間接、特別、付随的、結果的な損失または損害 (第三者が起こした行為の結果被った、データ、利益、業務上の信用の損失、その他あらゆる種類の損失や損害を含みます) が含まれるものとし、それは、たとえ当該損害や損失が合理的に予見可能であったり、ザイリンクスがそれらの可能性について助言を受けていた場合であったとしても同様です。ザイリンクスは、本情報に含まれるいかなる誤りも訂正する義務を負わず、本情報または製品仕様のアップデートを貴殿または貴社に知らせる義務も負いません。事前の書面による同意のない限り、貴殿または貴社は本情報を再生産、変更、頒布、または公に展示してはなりません。一定の製品は、ザイリンクスの限定的保証の諸条件に従うこととなるので、https://japan.xilinx.com/legal.htm#tos で見られるザイリンクスの販売条件を参照してください。IP コアは、ザイリンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条件に従うことになります。ザイリンクスの製品は、フェイルセーフとして、または、フェイルセーフの動作を要求するアプリケーションに使用するために、設計されたり意図されたりしていません。そのような重大なアプリケーションにザイリンクスの製品を使用する場合のリスクと責任は、貴殿または貴社が単独で負うものです。https://japan.xilinx.com/legal.htm#tos で見られるザイリンクスの販売条件を参照してください。

自動車用のアプリケーションの免責条項オートモーティブ製品 (製品番号に「XA」が含まれる) は、ISO 26262 自動車用機能安全規格に従った安全コンセプトまたは余剰性の機能 (「セーフティ設計」) がない限り、エアバッグの展開における使用または車両の制御に影響するアプリケーション (「セーフティ アプリケーション」) における使用は保証されていません。顧客は、製品を組み込むすべてのシステムについて、その使用前または提供前に安全を目的として十分なテストを行うものとします。セーフティ設計なしにセーフティ アプリケーションで製品を使用するリスクはすべて顧客が負い、製品責任の制限を規定する適用法令および規則にのみ従うものとします。

商標© Copyright 2019 Xilinx, Inc. Xilinx、Xilinx のロゴ、Alveo、Artix、Kintex、Spartan、Versal、Virtex、Vivado、Zynq、およびこの文書に含まれるその他の指定されたブランドは、米国およびその他各国のザイリンクス社の商標です。 すべてのその他の商標は、それぞれの保有者に帰属します。

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

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 93

Page 94: Vivado Design Suite チュートリアル - Xilinx...Vivado Design Suite チュートリアル エンベデッド プロセッサ ハードウェア デザイン UG940 (v2019.1) 2019

この資料に関するフィードバックおよびリンクなどの問題につきましては、[email protected] まで、または各ページの右下にある [フィードバック送信] ボタンをクリックすると表示されるフォームからお知らせください。フィードバックは日本語で入力可能です。いただきましたご意見を参考に早急に対応させていただきます。なお、このメール アドレスへのお問い合わせは受け付けておりません。あらかじめご了承ください。

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

UG940 (v2019.1) 2019 年 6 月 27 日 japan.xilinx.comエンベデッド プロセッサ ハードウェア デザイン 94