vivado design suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にip...

145
Vivado Design Suite ユーザー ガイド IP インテグレーターを使用した IP サブシ ステムの設計 UG994 (v2014.4) 2014 11 19 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先しま す。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の 上、最新情報につきましては、必ず最新英語版をご参照ください。

Upload: others

Post on 10-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

Vivado Design Suite

ユーザー ガイド

IP インテグレーターを使用した IP サブシ

ステムの設計

UG994 (v2014.4) 2014 年 11 月 19 日

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

Page 2: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

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

日付 バージョン 変更点

2014 年 11 月 19 日 2014.4 第 2 章にIP インテグレーターの割り込み処理を追加

第 6 章にILA または VIO デバッグ コアへの I/O ポートの接続を追加

第 8 章 の export_hardware コマンドを write_sysdef コマンドに置き換え.

2014 年 10 月 16 日 2014.3 リンクの付け忘れを修正

2014 年 10 月 14 日 2014.3 少量の編集的なアップデート

2014 年 10 月 1 日 2014.3 メモリ マップの作成 を追加、内容の並び替え、少量の編集的な変更

2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート

2014 年 5 月 7 日 2014.1 「プロジェクト内で IP インテグレーター デザインを作成する Tcl スクリプトの使

用」および「IP インテグレーターでのボード フローの使用」という 2 つの章を追

加法的通知を付録 B に移動

Page 3: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

目次

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

IP サブシステムの設計 .............................................................................................................. 6 第 1 章

概要 .................................................................................................................................................... 6

IP ブロック デザインの作成 ......................................................................................................... 7 第 2 章

概要 .................................................................................................................................................... 7

プロジェクトの作成 ................................................................................................................................. 7

IP インテグレーターを使用した設計 .......................................................................................................... 9

接続 ...................................................................................................................................................17

デザイン キャンバスでの並べ替え ............................................................................................................37

デザイン ルール チェックの実行 ..............................................................................................................41

メモリ マップの作成 ..................................................................................................................42 第 3 章

概要 ...................................................................................................................................................42

IP インテグレーターの [Address Editor] タブ..............................................................................................42

ブロック デザインの処理 ...........................................................................................................54 第 4 章

概要 ...................................................................................................................................................54

出力ファイルの生成 ..............................................................................................................................54

ブロック デザインの最上位デザインへの統合 .............................................................................................55

プロジェクト外でのブロック デザインの作成 ................................................................................................57

ブロック デザインのパッケージ ................................................................................................................61

ハードウェア定義の SDK へのエクスポート ................................................................................................61

ELF ファイルのエンベデッド デザインへの追加および関連付け ....................................................................63

ブロック デザインを独立階層 (OOC) モジュールとして設定 ..........................................................................70

IP インテグレーターのパラメーター伝搬 .......................................................................................74 第 5 章

概要 ...................................................................................................................................................74

バス インターフェイス .............................................................................................................................75

パラメーター伝搬の方法 ........................................................................................................................80

カスタマイズ GUI のパラメーター .............................................................................................................81

パラメーター不一致の例 ........................................................................................................................83

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 3

UG994 (v2014.4) 2014 年 11 月 19 日

Page 4: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ ................................................................85 第 6 章

概要 ...................................................................................................................................................85

IP インテグレーターの HDL インスタンシエーション フローの使用 ...................................................................85

IP インテグレーターのネットリスト挿入フローの使用 .....................................................................................91

ターゲット ハードウェアへの接続 ........................................................................................................... 101

Tcl スクリプトを使用したプロジェクト内でのブロック デザインの作成 ....................................................... 107 第 7 章

概要 ................................................................................................................................................. 107

Vivado IDE GUI でのデザイン作成 ........................................................................................................ 107

Tcl ファイルへの Vivado プロジェクト情報の保存 ...................................................................................... 108

IP インテグレーターでの非プロジェクト モードの使用 ................................................................... 110 第 8 章

概要 ................................................................................................................................................. 110

非プロジェクト モードのフロー作成 ......................................................................................................... 110

新規リリースでのデザインのアップデート .................................................................................... 113 第 9 章

概要 ................................................................................................................................................. 113

プロジェクト モードでのブロック デザインのアップグレード .......................................................................... 113

非プロジェクト モードでのブロック デザインのアップグレード ....................................................................... 120

IP インテグレーター デザインのバージョン管理 ........................................................................... 121 第 10 章

概要 ................................................................................................................................................. 121

バージョン管理のためにチェックインする必要のあるデザイン ファイル .......................................................... 122

ブロック デザインの別のプロジェクトでの使用 .......................................................................................... 123

既存ブロック デザインの別の Vivado IDE プロジェクトへのインポート ........................................................... 123

サードパーティ合成ツールの使用 ............................................................................................... 127 第 11 章

概要 ................................................................................................................................................. 127

ブロック デザインのデザイン チェック ポイント (DCP) の作成 ...................................................................... 127

ブロック デザインの Verilog または VHDL スタブ ファイルの作成 .................................................................. 128

Synplify プロジェクトでの HDL または EDIF ネットリストの作成 .................................................................... 129

Vivado での合成後のプロジェクトの作成とインプリメント ............................................................................. 130

最上位制約の追加 .............................................................................................................................. 132

ELF ファイルの追加 ............................................................................................................................ 132

デザインのインプリメント ....................................................................................................................... 133

IP インテグレーターでのボード フローの使用 .............................................................................. 134 第 12 章

概要 ................................................................................................................................................. 134

ターゲット ボードの選択 ....................................................................................................................... 134

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 4

UG994 (v2014.4) 2014 年 11 月 19 日

Page 5: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ボード フローを使用するためのブロック デザインの作成 ............................................................................ 136

ブロック デザインでの接続の完了 .......................................................................................................... 141

付録 A その他のリソース ...................................................................................................................... 143

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

ソリューション センター ......................................................................................................................... 143

参考資料 .......................................................................................................................................... 143

付録 B 法的通知 ................................................................................................................................. 145

法的通知 .......................................................................................................................................... 145

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 5

UG994 (v2014.4) 2014 年 11 月 19 日

Page 6: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP サブシステムの設計第 1 章

概要 FPGA の集積度が増加し、より複雑になり、スケジュールが短くなるにつれ、サードパーティ IP およびデザインの再利用

が必須になってきています。ザイリンクスでは、こういった設計および再利用に関する問題を支援するため、Vivado® Des

ign Suite 内に Vivado IP インテグレーターという高度な機能を提供しています。

Vivado IP インテグレーター機能を使用すると、Vivado IP カタログからの IP をデザイン キャンバス上でインスタンシ

エートおよびインターコネクトして、複雑なデザインを作成できます。デザインは、IP インテグレーター キャンバスの GUI

を使用してインタラクティブに作成できるほか、Tcl プログラミング インターフェイスを使用しても作成できます。デザイン

は通常インターフェイス レベルで構築できますが (生産性向上のため)、ポート レベルでも操作できます (デザイン操作

の精度向上のため)。

インターフェイスとは、よくあるファンクションを共有する信号のグループのことです。たとえば、AXI4-Lite マスターには

接続するために必要な信号と複数のバスが多く含まれます。各信号またはバスが IP シンボル上で個別に表示されると、

シンボルは複雑に見えます。これらの信号およびバスをインターフェイスにまとめると、次のような利点があります。まず、

IP インテグレーターまたは Tcl コマンドで単一の接続を実行すると、マスターからスレーブへの接続が作成されます。ま

た、この接続のグラフィック表示が単純に単一接続となります。また、特定のインターフェイスを検出するデザイン ルール

チェック (DRC) が実行され、すべての信号が問題なく接続されているかどうかが確認されます。

IP インテグレーターを使用すると、自動化サービスの Tcl 機能が提供されるので、パラメーター伝搬などのシステム デ

ザイン タスクが IP ごとまたはアプリケーション ドメインごとに最適化できます。IP インテグレーターではダイナミックなラン

タイム DRC を実行することで、IP インテグレーター デザインの IP 間の接続が互換性を持ち、IP 自体が適切にコンフィ

ギュレーションされるようになっています。

Page 7: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成第 2 章

概要 本章では、IP インテグレーターの基本的な操作およびその機能について説明します。

プロジェクトの作成

デザイン全体は IP インテグレーターを使用して作成できます。 デザインには通常 HDL、IP および IP インテグ

レーター ブロック デザインが含まれます。このセクションでは、新しい IP インテグレーター ベースのデザインの作

成方法の概要を示します。

次の図に示すように、まず Vivado® IDE の GUI で [Create New Project] をクリックして、新規プロジェクトを作成します。

次のウィザードで VHDL または Verilog デザイン ファイル、カスタム IP、その他の種類のデザイン ソース ファイル

を追加します。

図 1 : 新規プロジェクトの作成

Page 8: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

次の図に示すように、ターゲット デバイスまたはザイリンクス ターゲット ボードを選択することもできます。Vivado で

は、複数バージョンのザイリンクス ターゲット ボードがサポートされますので、ターゲット ボードは注意して選択して

ください。

図 2 : 新規プロジェクトのターゲット デバイスの選択

注記 : 次のコマンドを使用すると同じ操作が実行できます。この文書の Tcl コマンド例では、< > はユーザー デ

ザイン特有のパラメーターを囲んだものであることを意味します。< > シンボル自体は、コマンド文字列には含め

ないでください。

これは、Tcl コマンドでは次のように実行できます。

create_project xx <your_directory>/xx -part xc7k325tffg900-2 set_property board_part Xilinx.com:kc705:part0:1.0 [current_project] set_property target_language VHDL [current_project]

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 8

UG994 (v2014.4) 2014 年 11 月 19 日

Page 9: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

IP インテグレーターを使用した設計 Flow Navigator の [IP Integrator] の下の [Create Block Design] をクリックし、新規ブロック デザインを作成します。

図 3 : ブロック デザインの作成

これは、Tcl コマンドでは次のようになります。

create_bd_design “<your_design_name>”

IP インテグレーターでの図のサイズ変更

デザインを作成すると、デザインを作成するためのキャンバスが表示されます。このキャンバスの大きさは、Vivado IDE

の GUI で画面の大きさを変えると必要なだけ変更できます。図の右上の [Float Window] ボタンをクリックすると、図を別

の画面に移動できます。図の左上の [Diagram] タブをダブルクリックすると、図のサイズを拡大することもできます。タブ

をもう 1 度ダブルクリックすると、表示がデフォルト レイアウトに戻ります。

レイヤーの変更

レイヤーを表示するには、図の画面の左上のアイコン (図の赤丸部分) をクリックします。[Attributes]、[Nets]、[Interface

Connections] チェック ボックスをオン/オフにすると、属性、ネット、インターフェイス接続などの表示/非表示を切り替え

ることができます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 9

UG994 (v2014.4) 2014 年 11 月 19 日

Page 10: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 4 : IP インテグレーターのキャンバスの情報の表示/非表示

ウィンドウ背景色の変更

図の背景色は、デフォルトの白から変更することができます。次の図に示すように、図の左上の [Block Design Options]

の [Colors] をクリックすると、色を変更できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 10

UG994 (v2014.4) 2014 年 11 月 19 日

Page 11: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 5 : IP インテグレーターの背景色の変更

IP インテグレーター図に表示されるほとんどすべてのオブジェクトは、色を変更できます。たとえば、背景色を上記のよう

に 240,240,240 に変更すると、明るい灰色にできます。[Block Design Options] を非表示にするには、右上の X ボタン

をクリックするか、[Block Design Options] ボタンをもう 1 回クリックします。

マウス ストロークと左ボタン パネルの使用

[Zoom Fit] : 右下から左上へ

[Zoom In] : 右上から左下へ

[Zoom Out] : 左下から右上へ

[Zoom Area] : 左上から右下へ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 11

UG994 (v2014.4) 2014 年 11 月 19 日

Page 12: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

キャンバス左側のツールバー メニューを使用すると、特定のコマンドを実行できます。

図 6 : IP インテグレーターのボタン

デザイン キャンバスへの IP モジュールの追加

IP モジュールは次の方法で図へ追加できます。

1. 図を右クリックし、[Add IP] をクリックします。検索可能な IP カタログが開きます。

図 7 : Vivado IP カタログの起動

ブロック デザイン オプション

拡大 縮小

画面に合わせて表示

エリアの選択

選択されたオブジェクトの最大表示

選択されたオブジェクトの表示の自動調整

IP の追加

外部指定 ブロックのカスタマイズ デザインの検証

レイアウトの再生成

検索

配線の最適化

インターフェイス接続のみの表示

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 12

UG994 (v2014.4) 2014 年 11 月 19 日

Page 13: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

カタログの一番上の検索フィルターに IP 名の最初の何文字かを入力すると、それに一致する IP モジュールのみが表

示されます。

ヒント : 名前、バージョン、ステータス、ライセンス、ベンダー (VLNV) などの IP に関するさまざまなフィールドは

IP カタログのヘッダー列を右クリックして、該当するフィールドを選択するとオン/オフにできます。

図 8 : IP カタログの検索フィルターの使用

2. 1 つの IP を追加するには、その IP 名をクリックしてキーボードの Enter キーを押すか、IP 名をダブルクリックします。

3. 複数の IP をブロック デザインに追加するには、必要な IP を Ctrl キーを押しながらクリックしていき、Enter キーを

押します。

図 9 : 複数 IP の同時追加

4. IP は、キャンバス左側の [Add IP] ボタンをクリックしても追加できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 13

UG994 (v2014.4) 2014 年 11 月 19 日

Page 14: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 10 : [Add IP] ボタンによる IP の追加

IP は、IP インテグレーターのキャンバスの上にある [Add IP] リンクをクリックしても追加できます。

図 11 : [Add IP] リンクによる IP の追加

IP は、IP カタログで IP をクリックしてキャンバス上にドラッグ アンド ドロップして追加することもできます。

IP は、[Add IP] コマンドを実行したときのカーソル位置の近くに配置されます。

Flow Navigator の Vivado IP カタログのエントリも表示および使用できます。デュアル モニターを使用している場合は、I

P カタログを別のモニターで開くことができます。シングル モニターを使用している場合は、IP カタログをフロートさせて、

図から離すことができます。メイン IP カタログから IP を追加する場合は、IP カタログから IP を選択して図にドラッグ ア

ンド ドロップします。

注意 : IP カタログで IP をダブルクリックすると Vivado プロジェクトには追加されますが、ブロック デザインには

追加されません。

IP インテグレーターの階層 IP

IP カタログの IP の中には最上位ブロック デザイン内に子ブロック デザインが含まれる階層状のものがあり、親ブロック

の論理的構成が表示されます。これらの階層ブロックは、ブロックの内容を確認することはできても、階層を編集すること

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 14

UG994 (v2014.4) 2014 年 11 月 19 日

Page 15: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

はできません。子ブロック デザインは変更できません。変更は、IP の [Re-customize IP] ダイアログ ボックスでのみ可能

です。

たとえば、AXI Ethernet Subsystem は階層 IP です。この IP は、ほかの IP と同様、IP カタログから IP を検索して選択

するとインスタンシエートできます。

図 12 : ブロック デザインへの階層 IP の追加

IP がブロック デザインにインスタンシエートされたら、それをダブルクリックして再カスタマイズします。これにより、IP の

パラメーターがコンフィギュレーションできる [Re-customize IP] ダイアログ ボックスが開きます。

図 13 : 階層 IP のパラメーター設定

AXI Ethernet Subsystem IP の子ブロック デザインは、右クリックで [View Block Design] をクリックすると表示できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 15

UG994 (v2014.4) 2014 年 11 月 19 日

Page 16: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 14 : 階層 IP に含まれる子ブロック デザインの表示

これにより、子レベルのブロック デザインを表示するブロック デザイン ウィンドウが開きます。このブロック デザインは、

直接編集することはできません。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 16

UG994 (v2014.4) 2014 年 11 月 19 日

Page 17: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 15 : 階層 IP に含まれる子ブロック デザイン

ヒント :子ブロック デザインを開いたまま IP を再カスタマイズすると、子ブロック デザインのウィンドウは閉じま

す。

接続 IP インテグレーターでデザインを作成したら、図にブロックを追加して、必要に応じてブロックをコンフィギュレーションし

て、インターフェイス レベルの接続または単純なネット接続を実行して、インターフェイスまたは単純なポートを追加しま

す。IP インテグレーターでの接続は、シンプルです。カーソルを IP ブロックのインターフェイスまたはピン コネクタの近く

に移動すると、カーソルの形が鉛筆形に変わります。IP ブロックのインターフェイスまたはピン コネクタをクリックして、マ

ウス ボタンを押したまま接続先のブロックまでドラッグします。

次の図に示すように、インターフェイス レベルの接続の場合、もっとわかりやすい接続ボックスで表示されます。

ブロックの + マークをクリックすると、そのインターフェイスが展開され、関連する信号およびバスが表示されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 17

UG994 (v2014.4) 2014 年 11 月 19 日

Page 18: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 16 : シンボルの接続ボックス

信号レベルまたはバス レベルの接続は、シンボル上の細い接続線で表示されます。バスは、接続目的に各信号と同じ

ように処理されます。次の図に示すように、接続をする際には、接続が可能であることを示す緑のチェック マークが接続

先に表示されます。

図 17 : シンボル上の信号接続またはバス接続

次の図に示すように、信号がインターフェイスとしてグループになっている場合は、各信号またはバスの接続をする前に

インターフェイスをまず展開する必要があります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 18

UG994 (v2014.4) 2014 年 11 月 19 日

Page 19: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 18 : 接続前のインターフェイスの展開

信号およびインターフェイスを外部 I/O ポートに接続するには、次の 3 つの方法があります。

• [Make External]

• [Create Port]

• [Create Interface Port]

1. 次の図に示すように、信号またはインターフェイスを外部ポートに接続するには、まずピン、バス、またはインターフェ

イスの接続を選択し、右クリックで [Make External] をクリックします。または、Ctrl キーを押しつつ複数のピンを選択

してから [Make External] を実行すると、1 度にすべてのピンを外部へ接続できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 19

UG994 (v2014.4) 2014 年 11 月 19 日

Page 20: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 19 : 外部への接続

このコマンドは、IP のピンをブロック デザインの I/O ポートに接続するために使用します。IP インテグレーターでは、単

純に IP のポートが外部 I/O に接続されます。

2. 2 つ目の接続方法は、次の図のように右クリックしてから [Create Port] をクリックする方法です。この機能は、クロッ

ク、リセット、uart_txd などの個別の信号を接続する際に使用します。[Create Port] を使用すると、入力/出力、ビット

幅、およびタイプなどの指定をより詳細に制御できます。 クロックの場合は、入力周波数も指定できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 20

UG994 (v2014.4) 2014 年 11 月 19 日

Page 21: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 20 : ポートの作成

[Create Port] ダイアログ ボックスでポート名、方向 (入力、出力、双方向など)、タイプ (クロック、リセット、データ、ク

ロック イネーブルまたはカスタム タイプなど) を指定します。[Create Vector] フィールドをオンにして適切なビット幅

を選択すると、ビット ベクターも作成できます。タイプをクロックに選択する場合は、クロックの周波数も指定できます。

図 21 : [Create Port] ダイアログ ボックス

3. 外部に接続する 3 つ目の方法は、次の図のように右クリックしてから [Create Interface Port] をクリックする方法です。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 21

UG994 (v2014.4) 2014 年 11 月 19 日

Page 22: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 22 : インターフェイス ポートの作成

このコマンドは、よく使用されるファンクションを共有する信号をグループにしたインターフェイス ピンにポートを作成する

ために使用されます。たとえば、上記の図の LMB_M と LMB_SI_0 はインターフェイス ピンです。このコマンドを使用する

と、インターフェイス タイプおよびモード (マスター/スレーブ) の指定をより詳細に制御できます。

[Create Interface Port] ダイアログ ボックスでは、インターフェイス名、ベンダー、ライブラリ、名前およびバージョン (VL

NM) フィールドを指定したり、MASTER または SLAVE などのモード フィールドを指定できます。

図 23 : [Create Interface Port] ダイアログ ボックス

外部ポートをダブルクリックすると、そのプロパティを表示したり、変更したりできます。この場合、ポートはクロック入力

ソースなので、それに関するプロパティ (周波数、位相、クロック ドメイン、バス インターフェイス、関連するクロック イ

ネーブル、関連するリセット、関連する非同期リセットなど) が表示されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 22

UG994 (v2014.4) 2014 年 11 月 19 日

Page 23: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 24 : クロック ポートのプロパティのカスタマイズ

AXI インターフェイスでポートをダブルクリックすると、次のようなダイアログ ボックスが表示されます。

図 25 :aximm のポート プロパティのカスタマイズ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 23

UG994 (v2014.4) 2014 年 11 月 19 日

Page 24: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

IP インテグレーターの割り込み処理

Vivado Design Suite IP インテグレーター ツールの割り込み処理は、使用されるプロセッサによって異なります。Zynq®

プロセッサの場合、Zynq プロセッサ内の Generic Interrupt Controller ブロックで割り込みが処理されます。MicroBlazeT

M プロセッサの場合、割り込みの管理には AXI Interrupt Controller IP を使用する必要があります。使用されるプロセッ

サに関係なく、Concat IP を使用して割り込みピンをまとめて駆動する必要があります。

図 26 : Concat IP を使用して AXI Interrupt Controller の割り込み入力を駆動

Concat IP の入力はさまざまな割り込みソースで駆動されます。このため、Concat IP は適切な数の入力ポートをサポー

トするようにコンフィギュレーションする必要があります。図 27 に示すように、[Number of Ports] フィールドは割り込み

ソース数に設定する必要があります。出力 (Dout) の幅は通常パラメーター伝搬中に自動的に設定されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 24

UG994 (v2014.4) 2014 年 11 月 19 日

Page 25: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 27 : Concat IP の [Re-customize IP] ダイアログ ボックス

AXI Interrupt Controller の複数のパラメーターはコンフィギュレーション可能です。図 28 は、AXI Interrupt Controller

の [Basic] タブから設定可能なパラメーターを示しています。

• [Number of Peripheral Interrupts] は、ユーザーは設定できず、パラメーター伝搬中に自動的に設定されます。

この値は、Concat IP の入力を駆動する割り込みソースの数によって決まります。

• [Fast Interrupt Mode] は、低レイテンシの割り込みが必要な場合に設定できます。

• [Peripheral Interrupts Type] は [Auto] に設定されていますが、[Auto] から [Manual] に変更するとユーザーが

上書きできるようになります。マニュアル モードにすると、これらのフィールドに値を直接指定できます。

• [Processor Interrupt Type] フィールドでは [Interrupt type] と、その [Interrupt type] によって [Edge type] か

[Level type] のタイプが指定できます。たとえば、[Interrupt type] を [Edge Interrupt] にすると、[Edge type] が

選択でき、[Interrupt type] を [Level Interrupt] にすると、[Level type] が選択できます。ユーザーは割り込み

ソースがエッジ トリガーなのかレベル トリガーなのかを選択できます。この後、エッジ トリガーの場合は割り込み

が立ち上がりエッジなのか立ち下がりエッジなのかを、レベル トリガーの場合は割り込みがアクティブ High なの

かアクティブ Low なのかを指定することもできます。IP インテグレーターでは、この値は通常接続された割り込

み信号から自動的に決定されますが、必要であれば手動で設定できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 25

UG994 (v2014.4) 2014 年 11 月 19 日

Page 26: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

注意 :Interrupt Controller に連結する際には、Concat IP の割り込み入力はすべて同じタイプ (たとえば エッジ

/レベル トリガー、立ち上がり/立ち下がりまたはアクティブ High/アクティブ Low など) にする必要があります。

図 28 : AXI Interrupt Controller の [Basic] タブのパラメーター

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 26

UG994 (v2014.4) 2014 年 11 月 19 日

Page 27: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 29 : Interrupt Controller の [Advanced] タブ

図 29 は、AXI Interrupt Controller の [Advanced] タブのパラメーターを示しています。これらのパラメーターの詳細に

ついては、『LogiCORE IP AXI Interrupt Controller 製品ガイド』 (PG099) を参照してください。

ここで特に注意したいのは、[Asynchronous Clocks] オプションです。AXI Interrupt Controller では、デザインの割り込

みソースが同じクロック ドメインからのものであるのか、別のクロック ドメインからのものであるのかが決定されます。割り

込みが別のクロック ドメインから駆動されたものである場合は、[Enable Asynchronous Clock operation] が自動的にオン

になります。この場合、同期レジスタのカスケードが割り込みソースに追加されます。

ヒント :この自動設定は、[Auto] を [Manual] に切り替えて手動で設定することもできます。

IP インテグレーターの設計アシスタンス

IP インテグレーターには、基本的なマイクロプロセッサ システムの統合を支援するために、さまざまなブロック間の内部

接続や外部インターフェイスへの接続を自動的に実行するブロック オートメーションやコネクション オートメーションと

いった設計アシスタンス (Designer Assistance) と呼ばれる機能があります。ブロック オートメーション機能は、Zynq プロ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 27

UG994 (v2014.4) 2014 年 11 月 19 日

Page 28: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

セッシング システム 7、MicroBlaze プロセッサなどのエンベデッド プロセッサ、またはイーサネットなどのその他の階層 I

P が IP インテグレーターのブロック デザインにインスタンシエートされる場合に提供されます。デザイン キャンバスのバ

ナーにある [Run Block Automation] のリンクをクリックすると、単純な MicroBlaze システムができます。

図 30 : [Run Block Automation] のリンク

[Run Block Automation] ダイアログ ボックスでは、マイクロプロセッサ システムに必要な基本的な機能に関する入力が

できます。

図 31 : [Run Block Automation] ダイアログ ボックス

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 28

UG994 (v2014.4) 2014 年 11 月 19 日

Page 29: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

必要なオプションを指定したら、次の図のようにブロック オートメーション機能により基本的なシステムが自動的に作成さ

れます。

図 32 : ブロック オートメーションで作成された MicroBlaze システム

この場合、MicroBlaze デバッグ モジュール、ローカル メモリ バスを含む microblaze_1_local_memory という階層ブロック、

ローカル メモリ バス コントローラー、およびブロック メモリ ジェネレーター、Clocking Wizard、AXI インターコネクトおよ

び AXI 割り込みコントローラーなどを含む MicroBlaze システムが作成されます。

デザインはこの段階ではまだ外部 I/O ポートに接続されていないので、上記の図のように、IP インテグレーターには

キャンバスの薄い緑のバナー部分ににコネクション オートメーション機能が提供されます。[Run Connection Automatio

n] をクリックすると、インターフェイスおよびポートを外部 I/O ポートに接続するためのアシスタンス機能が実行されます。

図 33 に示すように、[Run Connection Automation] ダイアログ ボックスには、コネクション オートメーション機能でサ

ポートされるポートおよびインターフェイス、使用可能なオートメーションの簡単な説明、各オートメーションで使用できる

オプションなどが表示されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 29

UG994 (v2014.4) 2014 年 11 月 19 日

Page 30: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 33 : コネクション オートメーションを使用可能なポートおよびインターフェイスのリスト

ザイリンクスのターゲット リファレンス プラットフォームまたは評価ボードの場合、ターゲット ボードで使用される FPGA ピ

ンが認識されるので、その情報に基づいて IP インテグレーターのコネクション オートメーション機能はデザイン内の

ポートをボード上の外部ポートに接続します。IP インテグレーターは、この後最適な物理制約および該当する I/O ポー

トに必要なその他の I/O 制約を作成します。

図 32 に示す MicroBlaze システム デザインの場合、Processor System Reset IP を外部リセット ポートに接続し、Clocki

ng Wizard を外部クロック ソースと外部リセットに接続する必要があります。適切なオプションを選択すると、クロック ポー

トとリセット ポートをターゲット ボードの最適なソースに接続できます。

図 34 : [Run Connection Automation] 機能

この場合、KC705 ターゲット ボードに既存のリセット ピンを選択するか、カスタム リセット ピンを指定します。指定したら、

そのリセット ピンを Proc Sys Rst IP の ext_reset_in ピンに接続します。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 30

UG994 (v2014.4) 2014 年 11 月 19 日

Page 31: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 35 : ボード リセット ピンへのリセット ピンの接続

設計アシスタンス機能では、IP インテグレーターでの開発が常にモニターされます。

たとえば、AXI GPIO IP をデザインにインスタンシエートすると、デザイン キャンバスの上部のバナーに [Run Connectio

n Automation] のリンクが表示されるようになります。これで [Run Connection Automation] をクリックすると、AXI インター

コネクトを介して 新しく追加された AXI GPIO の S_AXI ポートを MicroBlaze プロセッサに接続できます。同様に、GPIO

インターフェイスはターゲット ボードにある複数インターフェイスの 1 つに接続できます。

図 36 : コネクション オートメーションを使用した潜在的な接続の表示

この場合、6 つの選択肢が表示されます。GPIO インターフェイス ポートは、4 ビットの Dip Switch、7 ビットの LCD、8

ビットの LED、5 ビットのプッシュ ボタン、ボードの Rotary Switch、カスタム インターフェイスのいずれかに接続できます。

いずれかを選択すると、GPIO ポートがボードの既存の接続に接続されます。

オートメーションで S_AXI を選択すると、GPIO のスレーブ AXI ポートを MicroBlaze マスターに接続できることが示され

ます。デザインにマスターが複数含まれる場合は、いずれかを選択できます。GPIO の S_AXI インターフェイスなどのス

レーブ インターフェイスに対し、クロック接続を指定することもできます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 31

UG994 (v2014.4) 2014 年 11 月 19 日

Page 32: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 37 : S_AXI スレーブ インターフェイスの MicroBlaze マスターへの接続

[Run Connection Automation] ダイアログ ボックスで [OK] をクリックすると、接続が実行され、次の図のようにハイライト

されます。

図 38 : マスター/スレーブ接続

Streaming Interface を Memory Mapped Interface に接続したい上級ユーザー用にさらに高度な設計アシスタンスも提

供されています。この場合、IP インテグレーターでは必要な下位コンポーネントがインスタンシエートされ、それらが正し

く接続されて、この機能がインプリメントされます。この機能の詳細は、『Vivado Design Suite ユーザー ガイド : エンベ

デッド ハードウェア デザイン』 (UG898) を参照してください。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 32

UG994 (v2014.4) 2014 年 11 月 19 日

Page 33: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

[Signals] ビューを使用した接続

IP インテグレーターの [Signals] ビューを使用すると、クロックおよびリセットへの接続が簡単にできます。ブロック デザイ

ンを開いたら、次の図のような [Signals] ビューが開き、[Clocks] および [Resets] タブにデザインに存在するクロック信号

およびリセット信号がそれぞれ表示されます。

図 39 : IP インテグレーターの [Signals] ビュー

どちらかのタブをクリックすると、デザインに含まれるクロックまたはリセットがすべて表示されます。

[Clocks] タブには、クロック ドメイン名に基づいてクロックがリストされます。上記の図では、クロック ドメインの名前は des

ign_1_clk_wiz_1_0_clk_out1 で、周波数 100MHz のクロック出力 clk_out1 が異なる IP の複数のクロック入力を起動してい

ます。

[Unconnected Clocks] フォルダーからクロックを選択すると、ブロック デザインで該当するクロック ポートがハイライトされ

ます。選択したクロックを右クリックすると、図 40 のように複数のオプションが表示されます。この場合、設計アシスタンス

([Run Connection Automation] コマンド) が、Clocking Wizard の CLK_IN1_D 入力インターフェイスをボードのクロック

ピンに接続するために使用できます。[Make Connection] オプションをクリックし、デザインの既存クロック ソースへ入力

を接続することもできます。最後に、[Make Connection] オプションをクリックして外部ポートにピンを接続できます。

コンテキストを図に切り替えたり、デザイン検証を実行したりといったその他のオプションもあります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 33

UG994 (v2014.4) 2014 年 11 月 19 日

Page 34: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 40 : [Signals] ビューを使用した接続

[Make Connection] をクリックすると、有効な接続が可能なのかどうかを示すダイアログ ボックスが開きます。

図 41 :[Make Connection] ダイアログ ボックス

適切なクロック ソースを選択すると、そのクロック ソースと該当するポート/ピン間が接続されます。

[Resets] ビューを使用しても、同様に接続できます。[Signals] ビューの [Clocks] および [Resets] タブを使用すると、視

覚的にデザイン内のクロックの管理および接続できます。

[Make Connection] を使用したポートおよびピンの接続

ポートまたはピンを選択してから、右クリックして [Make Connection] をクリックすると、未接続のポートまたはピンへの接

続ができます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 34

UG994 (v2014.4) 2014 年 11 月 19 日

Page 35: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 42 : 接続

ピンへの有効な接続がある場合は、[Make Connection] ダイアログ ボックスに接続できる可能性のあるソースすべて表

示されます。このダイアログ ボックスからは、適切なソースを選択してポート/ピンを駆動できます。

図 43 : [Make Connection] オプションを使用した接続

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 35

UG994 (v2014.4) 2014 年 11 月 19 日

Page 36: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

[Start Connection Mode] を使用した接続

1 つのピンをクリックしてペンのアイコンが表示されたときにドラッグ アンド ドロップすると、複数の接続を 1 度に実行で

きます。

図 44 : [Start Connection Mode] を使用した接続

上記の図の AXI BRAM Controller の s_axi_aclk ピンへ接続してから、[Start Connection Mode] を使用すると、AXI IIC

の s_axi_aclk ピンへの接続が提案されます。この方法を使用すると、同じソース ピンから複数の異なるデスティネーショ

ンに 1 度に接続できます。

ブロック デザイン外部への AXI IP のインターフェイス

AXI マスターがブロック デザインの外部にあることがあります。これらの外部マスターは、通常 AXI Interconnect コアを

使用してブロック デザインに接続されます。AXI Interconnect コアのポートを external に指定すると、アドレス エディ

ターが使用できるようになり、メモリ マップができるようになります。

たとえば、次のブロック デザインを見てみてください。

図 45 : ブロック デザインに接続される外部 AXI マスターを含むサンプル デザイン

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 36

UG994 (v2014.4) 2014 年 11 月 19 日

Page 37: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

AXI Interconnect コアの AXI インターフェイスが external に設定されると、[Address Editor] タブが使用できるようになり、

ブロック デザインのスレーブすべてのメモリ マップが通常どおりに実行できます。

デザイン キャンバスでの並べ替え キャンバス上の IP ブロックは、ブロック デザインとブロック間の接続を見やすくするために並べ替えることができます。完

了した図または作業中の図を並べ替えるには、[Regenerate Layout] ボタン をクリックします。

ブロックをクリックしてドラッグしたり、矢印キーを使用すると、ブロックを手動で移動することもできます。図では、ブロック

を移動する際、濃い灰色の縦のバーで示される特定の列位置にだけ移動できます。ブロックを移動する際に図に表示

されるグリッドを使用すると、ブロックおよびピンを揃えやすくなります。

ブロックを手動で配置して、[Optimize Routing] をクリックすると、[Regenerate Layout] をクリックした場合と異なり、ブ

ロックの配置が保持されたまま、さまざまなブロックへの配線のみが修正されます。つまり、[Optimize Routing] を使用す

ると、異なるブロックの位置が接触しないようにしたままで、さまざまなブロックを接続するネットのみを修正できます。

インターフェイス レベルの接続のみの表示

ブロック デザインに存在するインターフェイス間の接続のみを表示するには、ブロック デザインのツールバーから [Show

interface connections only] をクリックします。これにより、インターフェイス レベルの接続のみが表示され、その他す

べてのブロック デザインの接続が非表示になります。

図 46 : インターフェイス接続のみの表示

[Show interface connections only] をもう 1 度クリックすると、ブロック デザインの接続がすべて元の表示に戻ります。

階層の作成

次の図に示すように、Ctrl を押しながらクリックして必要な IP ブロックを選択し、右クリックで [Create Hierarchy] をクリッ

クすると、階層ブロックを作成できます。IP インテグレーターで選択したブロックを含む新しいレベルの階層が作成されま

す。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 37

UG994 (v2014.4) 2014 年 11 月 19 日

Page 38: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 47 : 階層ブロック デザインの作成

複数の階層レベルを作成できます。空のレベルの階層を作成しておいて、後で既存の IP ブロックをその空の階層ブ

ロックにドラッグすることもできます。

階層は、ブロックの左上の + マークをクリックすると展開できます。図の階層レベルは、IP インテグレーターの左上のエ

クスプローラー タイプのパス情報を使用すると確認できます。

[Create Hierarchy] をクリックすると、次の図のように [Create Hierarchy] ダイアログ ボックスが表示され、新しい階層名

を指定できます。

図 48 : [Create Hierarchy] ダイアログ ボックス

これにより、1 つのブロックの下に選択した IP ブロックのグループができます。階層の + マークをクリックすると、その下

のコンポーネントを表示できます。- マークをクリックすると、元のグループ表示に戻ります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 38

UG994 (v2014.4) 2014 年 11 月 19 日

Page 39: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 49 : 2 つのブロックを 1 つのブロックに統合

階層へのピンおよびインターフェイスの追加

前述のように、空の階層を作成し、IP のブロックを階層下に移動するよりも前に、その階層でピン インターフェイスを定

義できます。

IP インテグレーター キャンバスで右クリックして、IP ブロックが選択されていない状態で [Create Hierarchy] をクリックし

ます。[Create Hierarchy] ダイアログ ボックスでは、階層の名前を指定します。空の階層が作成されたら、ブロック デザ

インは次の図のようになります。

図 50 : 空の階層の作成

Tcl コンソールに次のコマンドを入力すると、この階層にピンを追加できます。

create_bd_pin -dir I -type rst /hier_0/rst

上記のコマンドでは、rst タイプの reset という名前の入力ピンが階層に追加されます。同様のコマンドを使用してその

他のピンを追加できます。同様に、次のTcl コマンドを使用すると、クロック ピンを階層に追加できます。

create_bd_pin -dir I -type clk /hier_0/clock

次の Tcl コマンドを使用すると、インターフェイスを階層に追加できます。まず、次のコマンドを使用して、インターフェイ

スが追加される階層にブロック デザイン インスタンスを設定します。

current_bd_instance /hier_0

この後、次のコマンドを使用してインターフェイスを作成します。

create_bd_intf_pin -mode Master -vlnv xilinx.com:interface:gpio_rtl:1.0 gpio

正しいタイプのインターフェイスは、上記のコマンドを使用する前に作成されていると仮定されます。上記のコマンドを実

行すると、階層は次の図のようになります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 39

UG994 (v2014.4) 2014 年 11 月 19 日

Page 40: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

図 51 : 階層内でのピンの作成

適切なピン インターフェイスが作成されたら、この階層ブロック内に別のブロックをドロップでき、これらの IP から外部ピ

ン インターフェイスへのピン接続が実行できます。

図 52 : 階層のピン インターフェイスへの IP の接続

コピーと貼り付け

図内でブロックをコピーして貼り付けるには、Ctrl + C および Ctrl + V を使用できます。これにより、カスタマイズされた I

P ブロックをすばやくコピーできたり、IP を新しい階層ブロックにコピーしたりできます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 40

UG994 (v2014.4) 2014 年 11 月 19 日

Page 41: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP ブロック デザインの作成

デザイン ルール チェックの実行 IP インテグレーターでは、デザインがまとめられる際にリアルタイムで基本的なデザイン ルール チェックが実行されます

が、デザイン作成中に何らかの問題が発生する可能性があります。たとえば、クロック ピンの周波数が正しく設定されて

いないことがあります。次の図の [Validate Design] をクリックすると、全体的なデザイン チェックを実行できます。

図 53 : デザインの検証

これは、IP インテグレーター上のツールバーの [Validate Design] をクリックしても実行できます ( )。デザインに警告ま

たはエラーがない場合、[Validate Design] を実行後に次の図のようなメッセージが表示されます。

図 54 : 検証に問題がなかったことを示すメッセージ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 41

UG994 (v2014.4) 2014 年 11 月 19 日

Page 42: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成第 3 章

概要 マスター インターフェイスはアドレス空間 (または address_space オブジェクト) と呼ばれる割り当てられたメモリ範囲コン

テナーを参照し、スレーブ インターフェイスは、メモリ マップと呼ばれるリクエストされたメモリ範囲コンテナーを参照しま

す。メモリ マップは通常それらを参照するスレーブ インターフェイス ピンに基づいて命名されます。 たとえば、S_AXI イ

ンターフェイスは S_AXI メモリ マップを参照します (必須ではありません)。また、アドレス空間名はその使用方法に基づ

いて命名されることがよくあります。 たとえば、MicroBlaze にはデータ アドレス空間と命令アドレス空間があります。

各スレーブ インターフェイス ピンのメモリ マップには、アドレス セグメント (slave_segment オブジェクト) が含まれます。こ

れらのアドレス セグメントは、そのスレーブのアドレス デコード ウィンドウに該当します。たとえば、通常 AXI4-Lite ス

レーブにはアドレス範囲を示すアドレス セグメントが 1 つだけ含まれますが、ブリッジのように、スレーブの中には複数の

アドレス セグメントが含まれたり、各アドレス デコード ウィンドウのアドレス範囲が含まれるものがあります。

スレーブ セグメントがマスター アドレス空間にマップされる場合、マスター アドレス セグメント オブジェクト (master_addr

ess_segment) が作成され、スレーブのアドレス セグメントがマスターへマップされます。Vivado IP インテグレーターでは、

デザインのすべてのスレーブに対してアドレスが自動的に割り当てられますが、[Address Editor] タブを使用すると、アド

レスを手動で割り当てることもできます。

ヒント : [Address Editor] タブはバス マスターとして機能する IP ブロック (次の図の場合、MicroBlaze プロセッ

サ) または外部バス マスター (IP インテグレーター外部) が図に含まれている場合にのみ表示されます。

デザイン キャンバス上部の [Address Editor] タブをクリックします。[Address Editor] タブでは、スレーブのアドレス セグ

メントが表示され、マスターのアドレス空間にマップすることができます。

アドレスを生成せずに IP インテグレーター ブロック デザインから RTL を生成した場合、この段階でアドレスが自動的

に割り当てられるようにするかどうかを尋ねるメッセージが表示されます。

アドレスは、[Offset Address] および [Range] 列に値を入力すると、手動で設定することもできます。

プロセッサなどのマスターは、デバイス レジスタを介してペリフェラル デバイスと通信します。ペリフェラル デバイスはそ

れぞれマスターの全体的なメモリ空間内にメモリ ブロックを割り当てます。IP インテグレーターは業界標準の IP-XACT

データ フォーマットに従って、エンドポイントのマスターおよびスレーブのメモリ要件および機能をキャプチャします。

IP インテグレーターには、これらのメモリ範囲をさまざまなペリフェラルのマスター/スレーブ インターフェイスに割り当て

るために [Address Editor] タブが含まれます。マスターおよびスレーブ インターフェイスはそれぞれ特定のメモリ オブ

ジェクトを参照します。

IP インテグレーターの [Address Editor] タブ IP インテグレーターの [Address Editor] タブは、マスターからメモリ範囲をペリフェラルに割り当てるために使用されます。

[Address Editor] タブは、MicroBlaze や Zynq プロセッサなどのアドレス空間を持つマスターがキャンバスにインスタンシ

エートされると表示されるようになります。

Page 43: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 55 : [Address Editor] タブ

ペリフェラルがインスタンシエートされて、コネクション オートメーション機能を使用してブロック デザインのキャンバスで

プロセッサに接続されると、[Address Editor] でそのペリフェラルに対して該当するメモリ割り当てが入力されます。

図 56 : [Address Editor] タブのペリフェラルのメモリ マップ

次は、[Address Editor] タブに含まれるさまざまな列の説明です。

[Cell] : マスターとそれに接続されるすべてのペリフェラルの説明が含まれます。ツリーは、[Expand All] アイコン を

クリックするか、+ 記号をクリックして展開できます。図 56 の例では、マスターのインスタンス名は microblaze_0 で、デー

タおよび命令アドレス空間をアドレス指定しています。

ペリフェラルの microblaze_0_local_memory/dlmb_bram_if_cntlr および microblaze_0_local_memory/ilmb_bram_if_cntlr はそれぞれデー

タおよび命令アドレス空間にそれぞれマップされ、残りのペリフェラルはデータ アドレス空間からのみアクセスされます。

[Slave Interface] : ペリフェラル インスタンスのスレーブ インターフェイス ピンの名前がリストされます。たとえば、図 57

に示すように、ペリフェラル インスタンスの microblaze_0_local_memory/dlmb_bram_if_cntlr および microblaze_0_local_me

mory/ilmb_bram_if_cntlr にはそれぞれ SLMB と呼ばれるインターフェイスがあります。.

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 43

UG994 (v2014.4) 2014 年 11 月 19 日

Page 44: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 57 : [Slave Interface] にリストされるインスタンス名

[Base Name] : スレーブ セグメントの名前を指定します。通常は、Mem (メモリ) と Reg (レジスタ) の 2 種類の名前が付き

ます。これは、図 58 のような複数のメモリ インスタンシエーションを含むデザインで確認できます。

図 58 : ブロック デザインへの複数のメモリ インスタンシエーション

これらは、図 59 に示すように [Address Editor] タブの [Base Name] 列で指定されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 44

UG994 (v2014.4) 2014 年 11 月 19 日

Page 45: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 59 : 複数のメモリのインスタンシエーションに指定されるベース名

[Offset Address] : アドレス ブロックの開始からのオフセットを示します。たとえば、図 59 に示す例では、データアドレス

空間および命令アドレス空間のアドレス指定可能な範囲はそれぞれ 4G です。アドレス空間は 0x00000000 から開始さ

れて 0xFFFFFFFF で終了します。このアドレス空間内では、axi_uartlite_0 がオフセット 0x40600000 で開始される範囲

にアドレス指定でき、axi_gpio_0 がオフセット 0x40000000 から開始される範囲にアドレス指定できます。このフィールドは、

マスターのアドレス空間にスレーブがマップされると自動的に生成されますが、ユーザーが変更することもできます。

[Offset Address] および [Range] フィールドは互いに独立していますが、[Offset Address] フィールドは [Range] フィー

ルドと揃える必要があります。たとえば、[Range] フィールドが 2N の場合、開始オフセットの LSB (最小位ビット) に少なく

とも N 個 0 が必要です。 たとえば、スレーブ セグメントの範囲が 64K (つまり 216) の場合、オフセット アドレスは 0xXXX

X0000 (下 4 桁が 0) の形式にする必要があります。つまり、最下位の 16 ビットは 0 である必要があります。 このフィー

ルドが正しく設定されていないと、次のようなエラー メッセージが表示されます。

図 60 : 揃っていないオフセット アドレスの例

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 45

UG994 (v2014.4) 2014 年 11 月 19 日

Page 46: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 60 では、ユーザーが LSB に 12 ビット分 0 のみ (下 3 桁が 0) でオフセットを設定してしまっています。この場合、4K

(つまり 212) の範囲しか指定されたオフセット アドレスでは使用できません。このため、アドレスが揃っていないことを示す

メッセージが表示されます。このメッセージは、次のオフセット アドレスは現在のメモリ マップに基づいて設定できること

も示しています。

[Range] : 特定のスレーブのアドレス ブロックの範囲合計を指定します。このフィールドは通常 IP の component.xml

ファイルのパラメーターに基づいて生成されます。これは、ドロップダウン メニューをクリックして適切な値を選択すると変

更することもできます。[Offset Address] フィールドの説明にあるように、[Range] と [Offset Address] フィールドは互いに

独立しており、[Range] フィールドの 2N は [Offset Address] フィールドの LSB の N と揃っている必要があります。[Rang

e] フィールドがこの数を超えるように設定されていると、次のようなメッセージが表示されます。

図 61 : [Range] フィールドが正しく設定されていないことを示す例

図 61 では、ユーザーが 0xXXXX0000 の形式 (16 LSB のみを使用したオフセット) のオフセットに対して [Range] フィー

ルドを 128K (つまり 217) に設定しようとしています。128K の範囲に対応するには、アドレスの形式が少なくとも0xXXX20

000 (開始オフセットの LSB が少なくとも 17 ビット) である必要があります。

[High Address] : [Offset Address] および [Range] の値に基づいて自動的に調整されます。これは、特定の割り当てら

れたセグメントでは最後のアドレス指定可能なアドレスになります。

[Address Editor] タブを使用したメモリ マップ

メモリ ブロックの割り当ては、ブロック デザインでスレーブ インターフェイスがマスター インターフェイスに接続されると

自動的に実行されますが、[Address Editor] タブで手動で割り当てることもできます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 46

UG994 (v2014.4) 2014 年 11 月 19 日

Page 47: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

アドレスの自動割り当て

すべてのスレーブ セグメントを 1 度にマップするには、図 62 に示すように、[Address Editor] タブ内で右クリックして [A

uto Assign Address] をクリックするか、ブロック デザイン ツールバーの [Auto Assign] アイコンをクリックします。

図 62 : アドレスの自動割り当て

これにより、図 63 に示すように、すべてのスレーブ セグメントがマップされます。

図 63 : アドレス ブロックの自動割り当て後のメモリ マップ

スレーブ セグメントがマップされると、その他の複数のオプションが表示されるようになります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 47

UG994 (v2014.4) 2014 年 11 月 19 日

Page 48: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 64 : [Address Editor] タブのオプション

マップされたアドレス セグメントを右クリックすると、図 64 のように使用可能なさまざまなオプションが表示されます。

[Address Segment Properties] オプション

[Address Segment Properties] をクリックすると、[Address Segment Properties] ビューにアドレス セグメントの詳細が表

示されます。

図 65 :[Address Segment Properties] ビュー

[Name] フィールドには、自動的に割り当てられたマスター セグメントの名前が表示されます。この名前は、必要であれ

ば変更できます。[Full Name] フィールドにはマップされたスレーブ セグメントの名前が表示されます。 このフィールドは

編集できません。[Slave Interface] フィールドには、そのスレーブ セグメントを参照するペリフェラルのスレーブ インター

フェイスが表示されます。

[Unmap Segment] オプション

マップされたアドレス セグメントは、右クリックして [Unmap Segment] をクリックすると、そのマップを解除できます。マップ

を解除されたアドレス セグメントは、図 66 のように [Unmapped Slaves] フォルダーに表示されるようになります。 右クリッ

クして [Assign Address] をクリックすると、選択したアドレスのみがマップされ、[Auto Assign Address] をクリックすると、

マップされたアドレス セグメントすべてが割り当てられます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 48

UG994 (v2014.4) 2014 年 11 月 19 日

Page 49: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 66 :アドレス セグメントのマップとその解除

[Exclude Segment] オプション

[Exclude Segment] (セグメントの除外) をクリックすると、マップされたセグメントを該当するマスターに対してアドレス指定

できなくなります。これは、通常複数のマスターがデザインに含まれていて、どのマスターがどのスレーブにアクセスする

か指定する場合に使用します。詳細は、「スパース接続」セクションを参照してください。

[Group by Master Interfaces] オプション

[Group by Master Interfaces] をクリックすると、アドレス空間に含まれるマスター セグメントがマスター インターフェイス

別にグループにまとめられ、マスターからアクセスされるようになります。たとえば、次のブロック デザインの MicroBlaze

にはデータ アドレス空間内に 3 つのアドレス セグメントにアクセスするマスター インターフェイス (DLMB、ILMB、およ

び M_AXI_DP) が含まれます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 49

UG994 (v2014.4) 2014 年 11 月 19 日

Page 50: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 67 : マスター インターフェイスごとのグループ分け

[Group by Master Interfaces] をクリックすると、マスター インターフェイスのツリーの下の表のさまざまなアドレス セグメン

トが並べ替えられます。

図 68 : マスター インターフェイスの下にアドレス セグメントのグループを表示した [Address Editor] タブ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 50

UG994 (v2014.4) 2014 年 11 月 19 日

Page 51: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

スパース接続

複数のマスター デザインで、すべてのマスターまたは特定のマスターのみからアクセスされる可能性のあるスレーブを

指定することができます。IP インテグレーターのメモリ マップのこの機能は、スパース接続と呼ばれます。

マスターのメモリ マップからのアドレス セグメントの除外

図 69 : 複数のマスターおよびスレーブの例

図 69 では、同じインターコネクトを介して 2 つのマスター (Master_1 および Master_2) が 2 つのスレーブ (Slave_1 およ

び Slave_2) にアクセスしています。この場合、[Address Editor] タブは次のようになります。

図 70 : 複数のマスターのメモリ マップを表示した [Address Editor] タブ

この場合、たとえば Master_1 は Slave_2 にのみアクセスする必要があり、Master_2 は Slave_1 と Slave_2 の両方にアク

セスする必要があります。Master_1 のメモリ マップから Slave_1 を除外するには、M00_AXI を右クリックして [Exclude Se

gment] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 51

UG994 (v2014.4) 2014 年 11 月 19 日

Page 52: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

図 71 : マスターのメモリ マップからのアドレス セグメントの除外

これにより、次の図のように [Excluded Address Segments] フォルダーの下に表示されるセグメントが除隊されます。

図 72 : [Address Editor] タブに表示された [Excluded Address Segment] フォルダー

マップされたスレーブとマップされていないスレーブの両方を除外することができます。除外されたマスター セグメントは

まだアドレス空間内の範囲を占めたままになりますが、マスターからはアクセスできないことに注意してください。マスター

アドレス空間内のスレーブを除外した後、ユーザーが除外されたスレーブと重複するアドレスに別のスレーブを手動で

配置しようとすると、検証中にエラーになります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 52

UG994 (v2014.4) 2014 年 11 月 19 日

Page 53: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

メモリ マップの作成

アドレス セグメントの含有

図 73 に示すように、右クリックで [Include Segment] をクリックすると、除外されたセグメントはマスターに追加し戻すこと

ができます。

図 73 : 除外されたセグメントをマスターのメモリ マップへ再び含有

よく表示される関連するクリティカル警告およびエラー

1. [BD 41-971] "Segment <name of segment> mapped into <address space> at Offset[ Range ] overlaps with <name o

f segment> mapped at Offset [ Range].

このメッセージは、通常検証中に表示されます。各ペリフェラルは、アドレス空間内の重複していないメモリの範囲にマッ

プする必要があります。

2. [BD 41-1356] Address block <name of slave segment> is not mapped into <name of address space>. Please use Ad

dress Editor to either map or exclude it.

このメッセージは、通常検証中に表示されます。スレーブがマスターにアクセスできる状態であれば、マスターのアドレス

空間にマップするか、そこから除外する必要があります。

3. [BD 41-1353] <name of slave segment> is mapped at disjoint segments in master <name of address space> at <me

mory range> and in master <name of address space> at <memory range>. It is illegal to have the same peripheral m

apped to different addresses within the same network.Peripherals must either be mapped to the same offset in all

masters, or into addresses that are apertures of each other or to contiguous addresses that can be combined into

a single address with a range that is a power of 2.

このメッセージは、通常検証中に表示されます。インターコネクト セットを介して接続されたスレーブの同じセットにアクセ

スするマスター セットとして定義されるネットワーク内では、すべてのマスター アドレス空間または一番大きなアドレス範

囲内の空き部分または一部の中の各スレーブを同じアドレスにマップする必要があります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 53

UG994 (v2014.4) 2014 年 11 月 19 日

Page 54: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理第 4 章

概要 IP を含むブロック デザインは外部へ接続して、検証します。ブロック デザインの処理をすると、最上位デザインでブロッ

ク デザインを使用、またはブロック デザインを最上位デザインとして、シミュレーション、合成、およびインプリメンテー

ションするために必要な出力ファイルを生成できます。

出力ファイルの生成 ブロック デザインを終了してデザインを検証したら、出力ファイルを生成する必要があります。これは、すべての IP の

ソース ファイルと適切な制約が生成され、Vivado の [Sources] ビューから使用できるようになってから実行します。プロ

ジェクト作成時に選択したターゲット言語によって、適切なファイルが生成されます。特定の IP のソース ファイルが指定

したターゲット言語で生成できない場合、Tcl コンソールにそれを示すメッセージが表示されます。出力ファイルを生成

するには、次の図のように Vivado の [Sources] ビューでブロック デザインを右クリックし、[Generate Output Products]

をクリックします。

図 74 : 出力ファイルの生成

または、Flow Navigator の [IP Integrator] の下の [Generate Block Design] をクリックしても出力ファイルを生成できます。

Page 55: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 75 : ブロック デザインの生成

出力ファイルを生成すると、ブロック デザインの最上位ネットリストも生成されます。ネットリストは、[Project Settings] の

[Target language] 設定に基づいて VHDL または Verilog のいずれかで生成されます。

ブロック デザインの最上位デザインへの統合 IP インテグレーターのブロック デザインは、それより上位のデザイン レベルに統合したり、デザイン階層の最上位レベ

ルにしたりできます。IP インテグレーター デザインを上位のデザインに統合するには、単にそのデザインを最上位 HDL

ファイルにインスタンシエートします。

Vivado IDE の [Sources] ビューでブロック デザインを右クリックして、[Create HDL Wrapper] をクリックしても、上位にブ

ロック デザインをインスタンシエートできます。これにより、IP インテグレーター サブシステム用の最上位 HDL ファイル

が生成されます。

図 76 : HDL ラッパーの作成

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 55

UG994 (v2014.4) 2014 年 11 月 19 日

Page 56: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

[Create HDL Wrapper] をクリックすると、2 つの選択肢が表示されます。1 つ目は、ラッパー ファイルをユーザーが編集

できるようにするオプションで、ラッパー ファイルを手動で編集する場合は、これをオンにします。ブロック デザインがデ

ザイン階層全体の下位に含まれることがよくあります。このオプションは、そのような場合に使用できます。これでラッパー

ファイルのその他のデザイン コンポーネントをインスタンシエートできるようになります。このファイルは、ブロック デザイ

ンの I/O インターフェイスを変更するたびにアップデートするようにしてください。この方法で作成されたラッパー ファイ

ルは、<project_name>.srcs/sources_1/imports/hdl ディレクトリに含まれます。

2 つ目は、Vivado ツールで最上位ラッパー ファイルが作成および管理されるようにするオプションで、プロジェクトに含

まれるデザイン コンポーネントがそのブロック デザインだけの場合や、ラッパー ファイルが編集されないようにする場合

に、オンにしてください。この場合、ラッパー ファイルは出力ファイルが生成されるたびにアップデートされます。この方

法で作成されたラッパー ファイルは、<project_name>.srcs/sources_1/bd/<bd_name>/hdl ディレクトリに含まれます。

図 77 : [Create HDL Wrapper] ダイアログ ボックス

これで、デザインはエラボレーション、合成、インプリメンテーションできるようになりました。

IP インテグレーターでの I/O バッファー インスタンシエーション

ラッパーを生成すると、IP インテグレーターは外部接続にされた I/O インターフェイスを検索します。外部接続にした I/

O インターフェイスが見つかれば、そのインターフェイスのポート マップが今度は検索されます。<name>_I、<name>_O、

<name>_T のパターンと一致する 3 つのポートが見つかったら、I/O がインスタンシエートされ、これらの信号が正しく接

続されます。これらのポートが見つからない場合、I/O バッファーは挿入されません。また、次のような条件の場合も I./

O バッファーは挿入されません。

1. _I、_O、_T ポートが外部接続されるか、別の IP に接続されて手動で接続される場合

2. インターフェイスに BUFFER_TYPE と呼ばれるパラメーターが付いて、NONE に設定されている場合

ブロック デザインに I/O バッファーをインスタンシエートする場合、IP カタログから Utility Differential IO Buffer IP を使

用する必要があります。この IP は、次の図のように種類の異なる I/O バッファーとしてコンフィギュレーションできます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 56

UG994 (v2014.4) 2014 年 11 月 19 日

Page 57: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 78 : Utility Differential IO Buffer

プロジェクト外でのブロック デザインの作成 ブロック デザインは、プロジェクト ディレクトリの内部でも外部でも作成できます。プロジェクト外でブロック デザインを作

成するのは、非プロジェクト モードでブロック デザインを使用したり、チームベースの環境でそれを使用したりする場合

などがよくあります。

プロジェクト外でブロック デザインを作成するには、Flow Navigator の IP インテグレーターのドロップダウン リストから

[Create Block Design] をクリックします。[Create Block Design] ダイアログ ボックスが開きます。[Create Block Design]

ダイアログ ボックスでは、ブロック デザイン名とディレクトリを指定できます。[Directory] フィールドのデフォルト値は <Lo

cal to Project> ですが、[Directory] フィールドをクリックして [Choose Location] をクリックすると、上書きできます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 57

UG994 (v2014.4) 2014 年 11 月 19 日

Page 58: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 79 : [Create Block Design] ダイアログ ボックス

ブロック デザインを作成するディレクトリを選択したら、[OK] をクリックします。通常のプロジェクト ベース フローのように

ブロック デザインを処理します。ブロック デザイン ディレクトリ全体が選択したディレクトリにそれぞれの下位構造を含め

て作成されます。このブロック デザインを別のプロジェクトから開いたり、別のユーザーが開けるようにするには、bd ディ

レクトリ構造全体をそのまま維持しておく必要があります。

ブロック デザインは [Specify source set] フィールドのドロップダウン メニューから [Design Sources] または [Simulation

Sources] を選択して作成することもできます。

プロジェクト外へのブロック デザインの追加

プロジェクト外またはリモート ディレクトリで作成されたブロック デザインは、既存の Vivado プロジェクトに追加できます。

リモート ブロック デザインを追加するには、Flow Navigator の [Project Manager] の下の [Add Sources] をクリックします。

または、[Sources] ビューで右クリックし、[Add Sources] をクリックしても追加できます。Add Sources ウィザードで [Add E

xisting Block Design Sources] をオンにし、[Next] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 58

UG994 (v2014.4) 2014 年 11 月 19 日

Page 59: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 80 : Add Sources ウィザード

[Add Existing Block Design Sources] ページで [Add Files] をクリックします。[Add Sources File] ダイアログ ボックスで

追加するブロック デザインを選択します。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 59

UG994 (v2014.4) 2014 年 11 月 19 日

Page 60: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 81 : ブロック デザイン ソースの追加

[Add Existing Block Design Sources] ページで [Finish] をクリックします。

図 82 : ブロック デザイン ソースを追加するウィザードの最後のページ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 60

UG994 (v2014.4) 2014 年 11 月 19 日

Page 61: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

リモート ブロック デザインが独立階層モジュール (アウト オブ コンテキスト) として設定されている場合は、このブロック

のデザイン チェックポイント (DCP) ファイルもプロジェクトに追加されます。ブロック デザインの DCP ファイルを参照す

る場合は、上記の図のようにブロック デザインを追加する必要があります。

注意 : リモート ディレクトリからブロック デザインを追加する際には、ほかのユーザーが同時にブロック デザイン

を編集しないようにしてください。リモート ブロック デザインをローカルのプロジェクトにコピーしておくと、この問

題は回避できます。

ブロック デザインのパッケージ IP インテグレーター デザインを作成し、インプリメントしてターゲット ハードウェアでテストした後、そのデザインをパッ

ケージにして、別のデザインで再利用可能な IP に変換しておくことができます。デザインをパッケージにすると、それが

IP に変換されて、IP カタログから使用できるようになります。その IP は別のデザインの一部としてインスタンシエートでき

ます。

Vivado には、カスタム IP でインターフェイス定義として作成して再利用できるカスタム インターフェイスを作成する機能

もあります。ブロック デザインのパッケージの詳細については、『Vivado Design Suite ユーザー ガイド : カスタム IP の

作成およびパッケージ』 (UG1118) を参照してください。

ハードウェア定義の SDK へのエクスポート ビットストリームの作成前にソフトウェア開発を開始する場合は、デザイン生成後にハードウェア定義を SDK にエクス

ポートできます。これにより、デザインに使用される IP を理解するために SDK で必要とされる XML ファイルがエクス

ポートされるほか、プロセッサの全体像からメモリ マップもエクスポートされます。ビットストリームが生成されてデザインが

エクスポートされたら、デバイスがダウンロードできるようになり、ソフトウェアがプロセッサ上で実行できるようになります。

ブロック デザインの出力ファイルが生成されたら、ハードウェアをSDK にエクスポートするための関連情報すべてを含む

アーカイブが作成されます。このアーカイブは <top_level_design_name>.hwdef という名前で、<project_name>.runs/synth_1 の

ような合成ディレクトリに含まれます。

Zynq プロセッサ ベース デザインの場合、このアーカイブには次のファイルが含まれます。

• ps7_init.c

• ps7_init.h

• ps_init.html

• ps7_init.tcl

• hwdef.xml

• <bd_name>.hwh

MicroBlaze ベースのデザインの場合、このアーカイブには、次のファイルが含まれます。

• hwdef.xml

• <bd_name>.hwh

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 61

UG994 (v2014.4) 2014 年 11 月 19 日

Page 62: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

デザインがインプリメントされてビットストリームが生成されると、<top_level_design_name>.sysdef という新しいアーカイブが

作成されます。

Zynq プロセッサ ベースのデザインの場合、この sysdef アーカイブには、次のファイルが含まれます。

• ps7_init.c

• ps7_init.h

• ps_init.html

• ps7_init.tcl

• sysdef.xml

• <bd_name>.hwh

• <top_level_design_name>.bit

• <top_level_design_name>.bmm

MicroBlaze ベースのデザインの場合、このアーカイブには、次のファイルが含まれます。

• <bd_name>.hwh

• <top_level_design_name>.bit

• <top_level_design_name>.bmm

• sysdef.xml

ハードウェアをエクスポートすると、単に sysdef ファイルがユーザーの指定したディレクトリにコピーされます。

1. メニューから [File] → [Export] → [Export Hardware] をクリックして、[Export Hardware] ダイアログ ボックスを開き

ます。

図 83 : ハードウェア定義のエクスポート

上記の図には、いくつかのチェック ボックスがあります。[Include bitstream] チェック ボックスをオンにすると、ビットス

トリームが SDK へエクスポートされるデータの一部として含まれます。[Export to] フィールドは、ユーザーが指定し

ます。通常のプロジェクト ベースのフローでは、デフォルトの <Local to Project> のままにしておきます。

プロジェクト ベースのフローの場合、ハードウェアは次のディレクトリにエクスポートされます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 62

UG994 (v2014.4) 2014 年 11 月 19 日

Page 63: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

project_name/project_name.sdk

2. ハードウェアがエクスポートされた後に SDK を起動するには、[File] → [Launch SDK] をクリックします。[Launch SD

K] ダイアログ ボックスが表示されます。

図 84 : [Launch SDK] ページ

通常のプロジェクト ベースのフローでは、[Exported location] および [Workspace] のどちらのフィールドもデフォル

トのオプションの <Local to Project> のままにしておきます。ハードウェアをエクスポートする際に別のディレクトリを

選択した場合、[Exported location] フィールドにはその特定のディレクトリが設定されます。[Workspace] フィールド

は、必要に応じて設定できます。

SDK が起動されると、そのエクスポートしたハードウェア定義を使用してカスタム アプリケーション プロジェクトを作

成できます。SDK では、ターゲット ハードウェアに合わせて必要なドライバーおよびボード サポート パッケージが作

成されます。

ELF ファイルのエンベデッド デザインへの追加および関連付け MicroBlaze のようなマイクロプロセッサ ベースのデザインの場合、SDK (またはその他のソフトウェア開発ツール) で生

成される ELF ファイルをインポートして、Vivado IDE のブロック デザインと関連付けることができます。この後、ELF の

内容を含むビットストリームが Vivado IDE から作成され、ターゲット ハードウェアで実行できます。エンベデッド オブ

ジェクトへ ELF ファイルを追加するには、2 つの方法があります。

ELF ファイルの追加とエンベデッド プロセッサとの関連付け

1. このタスクは、[Sources] ビューの [Design Sources] を右クリックして [Add Sources] をクリックすると簡単に実行でき

ます。デザイン ソースは Flow Navigator の [Project Manager] の下の [Add Sources] をクリックしても追加できます。

2. [Add Sources] ダイアログ ボックスが開きます。[Add or Create Design Sources] がデフォルトで選択されます。この

オプションを選択すると、ELF ファイルとシミュレーション ソースが追加されます。シミュレーション目的のみに ELF

ファイルを追加する場合は、[Add or Create Simulation Sources] をオンにします。[Next] をクリックします。

3. [Add or Create Design Sources] ページで [Add Files] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 63

UG994 (v2014.4) 2014 年 11 月 19 日

Page 64: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 85 : Add Sources ウィザード

4. [Add Source Files] ダイアログ ボックスが開きます。ELF ファイルを選択して、[OK] をクリックします。

図 86 : [Add Source Files] ダイアログ ボックス

5. [Add Sources] ダイアログ ボックスの [Add or Create Design Sources] ページには、プロジェクトへ追加された ELF

ファイルが表示されます。[Copy sources into project] をオンにして ELF ファイルをプロジェクトにコピーすることもで

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 64

UG994 (v2014.4) 2014 年 11 月 19 日

Page 65: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

きます。 元の ELF ファイル ファイルで作業する場合はチェック ボックスをオフにしておきます。この後、[Finish] をク

リックします。

6. [Sources] ビューの ELF フォルダーに追加した ELF ファイルが表示されるようになります。

図 87 : ELF ファイルを含む [Sources] ビュー

7. 次にその ELF ファイルをマイクロプロセッサ デザインと関連付けます。これには、[Sources] ビューでブロック デザイ

ンを右クリックし、[Associate ELF Files] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 65

UG994 (v2014.4) 2014 年 11 月 19 日

Page 66: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 88 : [Associate ELF Files] コマンド

8. 合成およびシミュレーション用に ELF ファイルを関連付けることができます。該当する参照アイコン ([Design Source

s] または [Simulation Sources] の下) をクリックして、新しく追加した ELF ファイルを参照します。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 66

UG994 (v2014.4) 2014 年 11 月 19 日

Page 67: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 89 : ELF ファイルとマイクロプロセッサの関連付け

[Select ELF Files] ダイアログ ボックスが開きます。ファイルをハイライトして、[OK] をクリックします。

図 90 : 関連付ける ELF ファイルのハイライト

[Associated ELF File] 列に ELF ファイルが生成されたのを確認したら、[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 67

UG994 (v2014.4) 2014 年 11 月 19 日

Page 68: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 91 : ELF ファイルの確認

ELF ファイルのの追加および関連付けを一度に実行する方法

ELF ファイルの追加と関連付けを一気に実行するには、次の手順に従ってください。

1. [Sources] ビューでブロック デザインを右クリックし、[Associate ELF Files] をクリックします。

2. [Associate ELF Files] ダイアログ ボックスで、[Design Sources] または [Simulation Sources] の下のプロセッサ イン

スタンスの参照ボタンをクリックします。

図 92 : [Associate ELF Files] ダイアログ ボックスを使用した ELF ファイルの追加と関連付け

3. [Associate ELF Files] ダイアログ ボックスが開いたら、[Add Files] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 68

UG994 (v2014.4) 2014 年 11 月 19 日

Page 69: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 93 : ELF ファイルを追加するための [Add Files] ボタン

4. [Add Source Files] ダイアログ ボックスで E:F ファイルのあるフォルダーを指定します。ファイルを選択し、[OK] をク

リックします。

図 94 : ELF ファイルのあるディレクトリの指定

5. [Associate ELF File] ダイアログ ボックスに戻って、新しく追加した ELF ファイルを選択して [OK] をクリックします。

図 95 : 新規追加した ELF ファイルの関連付け

6. [Associate ELF Files] ダイアログ ボックスで新しい ELF ファイルがプロセッサ インスタンス フィールドに表示された

ことを確認し、[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 69

UG994 (v2014.4) 2014 年 11 月 19 日

Page 70: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 96 : 新規追加したファイルがプロセッサ インスタンスに関連付けられたことを確認

プロジェクトに ELF ファイルを追加すると、Vivado Design Suite はブロック RAM 情報 (MMI ファイル) と ELF ファイ

ルの内容がデバイス ビットストリーム (BIT) に自動的に統合されます。

これは、UpdateMEM ユーティリティを使用して手動で実行することもできます。詳細は、『Vivado Design Suite ユー

ザー ガイド : エンベデッド プロセッサ ハードウェア デザイン』 (UG898) のこの内容を参照してください。

ブロック デザインを独立階層 (OOC) モジュールとして設定 階層デザイン フローを使用すると、デザインを小さな管理可能なブロックにパーティション分割して個別に処理すること

ができます。Vivado Design Suite では、パーティション分割されたモジュールを残りのデザインとは関係なく、独立したア

ウトオブ コンテキスト (OOC) でインプリメントできます。IP インテグレーターでは、ブロック デザインを合成可能な独立階

層 (OOC) モジュールとして設定でき、デザイン チェックポイント ファイルが作成されます。このようなブロック デザインは、

より大きな Vivado デザインの一部として使用される場合、デザインのほかの部分が変更されるたびに合成し直する必要

はないので、ランタイムが大幅に改善します。

注意 : 独立階層 (OOC) モジュールはブロック デザイン全体に対してのみイネーブルにできます。ブロック デザ

インに含まれる IP を個別に選択して、それらを独立階層 (OOC) モジュールとして設定することはできません。

ブロック デザインを独立階層 (OOC) モジュールとして設定するには、ブロックを選択し、右クリックで [Set as Out-of-C

ontext Module] を選択します。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 70

UG994 (v2014.4) 2014 年 11 月 19 日

Page 71: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

図 97 : ブロック デザインを独立階層 (OOC) モジュールとして設定

[Out-of-Context Settings] ダイアログ ボックスが開いて、ブロック デザインに対するデザイン チェックポイント (.dcp)

ファイルが作成されることが示されます。[Preview] ページのチェック ボックスを確認します。

図 98 : [Set as Out-of-Context Module] ダイアログ ボックス

OOC 機能がブロック デザインでイネーブルになっている場合は、[Sources] ビューのブロック デザインの横のチェック

ボックスが図のようにハイライトされます。

図 99 : ブロック デザインが OOC モジュールとして設定されたかどうかの確認

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 71

UG994 (v2014.4) 2014 年 11 月 19 日

Page 72: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

これで、Flow Navigator から [Run Synthesis] を選択すると、ブロック デザインを合成できるようになります。合成を開始

すると、[Design Runs] ビューで独立階層 (OOC) モジュールの進捗状況が確認できます。

図 100 : 独立階層 (OOC) フローの [Design Runs] ビュー

合成 run が終了したら、合成されたネットリストとブロック デザインに必要な制約すべてを含めたアーカイブ ファイルで

あるデザイン チェックポイント ファイル (DCP) が作成されます。この DCP ファイルは、design_1_synth_1 run を右クリック

して [Open Run Directory] を選択すると開くことのできる合成 run ディレクトリに含まれます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 72

UG994 (v2014.4) 2014 年 11 月 19 日

Page 73: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ブロック デザインの処理

run ディレクトリが Windows エクスプローラーで開きます。

図 101 : DCP ファイルを含む OOC モジュールの run ディレクトリ

ブロック デザインが合成済みネットリストとしてほかのデザインに追加する場合は、この DCP ファイルをブロック デザイ

ンがインスタンシエートされるプロジェクトに追加できます。これには、プロジェクトにブロック デザインを追加することをお

勧めします。ブロック デザインを追加すると、DCP ファイルも追加されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 73

UG994 (v2014.4) 2014 年 11 月 19 日

Page 74: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメー第 5 章ター伝搬

概要 パラメーター伝搬は、IP インテグレーターで使用可能な最も優れた機能の 1 つです。この機能では、IP がデザインでど

のように接続されているかに基づいて、パラメーターが自動的にアップデートされます。IP が特定の伝搬規則を使用し

てパッケージされると、IP インテグレーターがこれらの規則を図の生成に合わせて実行します。たとえば、次の図では、I

P0 のデータ バス幅が 64 ビットで、その後に IP1 と IP2 が追加されて接続されています。この場合、IP2 のデフォルトの

データ バス幅は 32 ビットです。パラメーター伝搬規則が実行されると、IP2 のバス幅が異なっていることがユーザーに

通知されます。IP2 のデータ バス幅はパラメーターの変更を介して変更できる場合は、IP インテグレーターで自動的に

IP2 がアップデートされます。IP がその接続に基づいてプロパティを同じ値にアップデートできない場合は、デザインに

潜在的な問題があることを示すエラー メッセージが表示されます。これは単純な例ですが、パラメーター伝搬機能をよく

示しています。パラメーター伝搬で修正されたり、識別されるようなエラー タイプは、シミュレーションまで検出されないこ

とがよくあります。

図 102 : パラメーター伝搬の概念

IP0 IP1 IP2

ユーザー指定の

幅 = 64

デフォルト幅 = 32

が伝搬された値

にアップデート

伝搬後は

入力幅 = 64

Page 75: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

バス インターフェイス バス インターフェイスは、よくあるファンクションを共有する信号のグループで、たとえば、AXI4-Lite マスターには接続

するために必要な信号と複数のバスが多く含まれます。IP インテグレーターの重要な機能の 1 つに、バス インターフェ

イスの論理グループを 1 つの IP から別の IP に、または IP から IP インテグレーター デザインのバウンダリまたは FPG

A I/O バウンダリに接続する機能があります。信号がバス インターフェイスとしてパッケージされないと、IP シンボルが極

端に長く、使用できない下位ポートのリストが表示されてしまい、1 つずつ接続するのが困難になります。

信号のリストは、バス インターフェイスの概念を使用すると、そのインターフェイス タイプの IP-XACT 抽象定義ファイル

の定義のとおり、物理ポート (IP の RTL またはネットリストから使用可能) を論理ポートにマップする構成ポート マップで

IP-XACT グループに分類されます。

よく使用される内部バス インターフェイス

よく使用されるバス インターフェイスには、AXI4、AXI4Lite および AXI-Stream などの AXI 仕様に従うものがあります。

AXIMM インターフェイスには、3 つのサブセットすべて (AXI4、AXI3、および AXI4Lite) が含まれます。その他のイン

ターフェイスには、BRAM が含まれます。

I/O バス インターフェイス

I/O ポートに向かう信号セットをグループにするバス インターフェイスの中には、I/O インターフェイスと呼ばれるものが

あります。たとえば、UART、I2C、SPI、イーサネット、PCIe、DDR などがそうです。

特別な信号

さまざまな IP に広く使用される標準的な信号は次の 5 つで、インターフェイスは、次のとおりです。

• クロック

• リセット

• 割り込み

• クロック イネーブル

• データ (AXI インターフェイスを含まない加算器/減算器、乗算器などの従来からある演算 IP)

これらの信号については、次のセクションでそれぞれ説明します。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 75

UG994 (v2014.4) 2014 年 11 月 19 日

Page 76: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

クロック

クロック インターフェイスには、それに関連する次のようなパラメーターを含めることができます。これらのパラメーターは、

デザイン生成プロセスで使用され、IP がデザイン内の別の IP と一緒に使用される際には必ず必要です。

• ASSOCIATED_BUSIF : リストには、このクロック周波数で実行されるバス インターフェイスの名前が含まれます。

このパラメーターでは、コロン (:) で分けられたストリングが値として認識されます。バウンダリのすべてのインター

フェイス信号がこのクロック レートで実行されない場合、このフィールドは空白のままになります。

• ASSOCIATED_RESET : このリストには、リセット コンテナー インターフェイスの名前ではなく、リセット ポートの

名前が値として含まれます。このパラメーターでは、コロン (:) で分けられたストリングが値として認識されます。

デザインにリセットが含まれない場合、このフィールドは空白のままになります。

• ASSOCIATED_CLKEN : このリストには、コンテナ インターフェイスの名前ではなく、クロック イネーブル ポート

の名前が値として含まれます。このパラメーターでは、コロン (:) で分けられたストリングが値として認識されます。

デザインにクロック イネーブル信号が含まれない場合、このフィールドは空白のままになります。

• FREQ_HZ : このパラメーターには、クロックが正の整数形式で実行される周波数がヘルツで表示されます。この

パラメーターは、すべての出力クロックに対してのみ指定する必要があります。

• PHASE : このパラメーターには、クロックが実行される位相が表示されます。デフォルト値は 0 です。有効な値

は 0 ~ 360 です。PHASE を決まった方法で指定できない場合は、FREQ_HZ のアップデートと同様、bd.tcl で

アップデートする必要があります。

• CLK_DOMAIN : このパラメーターは、ストリング ID です。 IP インテグレーターでは、デフォルトですべてのク

ロックが独立していると仮定され、一意の ID がすべてのクロック出力に割り当てられます。これは、IP インテグ

レーターで自動的に割り当てられます。 同じドメインに複数の出力クロックがある場合は、IP で管理されます。

クロック ネットのプロパティを確認するには、ソース クロック ポートまたはピンを選択して、そのオブジェクトのプロパティ

を解析してください。

図 103 : IP インテグレーターでのクロック プロパティの解析

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 76

UG994 (v2014.4) 2014 年 11 月 19 日

Page 77: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

図 104 : クロック プロパティ

これらのプロパティは、次の Tcl コマンドを入力してもレポートできます。

report_property [get_bd_intf_ports sys_diff_clock]

図 105 : Tcl コマンドを使用したクロック プロパティのレポート

ポートまたはピンをダブルクリックして、選択したオブジェクトのカスタマイズ ダイアログ ボックスを表示することもできます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 77

UG994 (v2014.4) 2014 年 11 月 19 日

Page 78: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

リセット

このコンテナ バス インターフェイスには、次のパラメーターも含める必要があります。

• POLARITY : このパラメーターの有効な値は、ACTIVE_HIGH または ACTIVE_LOW で、デフォルトは ACTIVE

_LOW です。

クロック ネットのプロパティを確認するには、リセット ポートまたはピンを選択して、そのオブジェクトのプロパティを解析し

てください。

図 106 : リセット信号

図 107 : リセット プロパティ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 78

UG994 (v2014.4) 2014 年 11 月 19 日

Page 79: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

これらのプロパティは、次の Tcl コマンドを入力してもレポートできます。

report_property [get_bd_ports reset]

図 108 : Tcl コマンドを使用したリセット プロパティのレポート

割り込み

このバス インターフェイスには、次のパラメーターが含まれます。

• SENSITIVITY : このパラメーターの有効な値は、LEVEL_HIGH、LEVEL_LOW、EDGE_RISING、および EDGE_

FALLING で、デフォルトは LEVEL_HIGH です。

割り込みピンのプロパティを確認するには、次の図のようにピンを選択して、プロパティ ビューを確認します。

図 109 : 割り込みプロパティ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 79

UG994 (v2014.4) 2014 年 11 月 19 日

Page 80: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

これらのプロパティは、次の Tcl コマンドを入力してもレポートできます。

report_property [get_bd_pins /axi_uartlite_0/interrupt]

図 110 : 割り込みプロパティのレポート

クロック イネーブル

クロック イネーブルに関連付けられたパラメーターは、REQ_HZ と PHASE の 2 つです。

パラメーター伝搬の方法 IP インテグレーターでは、[Validate Design] を実行するようにすると、パラメーター伝搬が実行されます。これには、次の

いずれかを実行します。

• Vivado® IDE ツールバーの [Validate Design] をクリックします。

• デザイン キャンバスのツールバーの [Validate Design] をクリックします。

• Vivado のメニューから[Tools] → [Validate Design] をクリックします。

• 次のコマンドを使用してください。validate_bd_design

この Tcl コマンドを実行すると、IP インスタンスのコンフィギュレーションとそれに接続されるその他のインスタンスのコン

フィギュレーションが同期されます。コンフィギュレーションの同期は、バス インターフェイス パラメーターで実行されます。

IP インテグレーターのパラメーター伝搬は、主にインターフェイス パラメーターの割り当て強度の概念に従って実行され

ます。インターフェイス パラメーターの強度には、USER、CONSTANT、PROPAGATED または DEFAULT を指定できま

す。ツールがパラメーター同士を比較する際は、常に強度の強いパラメーターが強度の弱いパラメーターにコピーされ

ます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 80

UG994 (v2014.4) 2014 年 11 月 19 日

Page 81: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

カスタマイズ GUI のパラメーター 非プロジェクト モードの場合、IP のユーザー パラメーターはすべてユーザーが設定する必要がありますが、IP インテグ

レーターを使用する場合、パラメーター伝搬で自動アップデートされたユーザー パラメーターは IP をカスタマイズする

ダイアログ ボックスでは淡色表示になります。淡色表示は、IP のそのパラメーターをユーザーが直接設定するべきでは

なく、自動的にツールで入力されることを意味します。

自動入力される値が最適な値でないことがあります。このような場合、これらの伝搬された値を上書きできることがありま

す。

パラメーター伝搬には、次の 4 つのようなタイプがあります。

• 自動的に計算されるパラメーター : IP インテグレーターで自動的に計算されるパラメーターで、上書きすること

はできません。たとえば、次の図の [Ext Reset Logic Level] パラメーターは淡色表示になっており、その横に

(Auto) と記述されています。 これは、ユーザーが値を変更できないことを意味します。

図 111 : 自動計算済みパラメーター

• 上書き可能なパラメーター : 自動的に計算済みのパラメーターは上書きできます。たとえば、次の LMB BRAM

Controller コアの [SLMB Address Decode Mask] は変更できます。スライダー ボタンの上にカーソルを置くと、

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 81

UG994 (v2014.4) 2014 年 11 月 19 日

Page 82: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

このパラメーターはシステムで管理されていますが、ボタンを [Auto] から [Manual] に切り替えると、変更が可能

であることが表示されます。

図 112 : 上書きするパラメーター

• ユーザーの設定可能なパラメーター : ユーザーにしか設定できないパラメーターで、ユーザーが設定するべき

ものです。

図 113 : ユーザーのコンフィギュレーション可能なパラメーター

• 定数 : 誰も設定できないパラメーターです。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 82

UG994 (v2014.4) 2014 年 11 月 19 日

Page 83: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

パラメーター不一致の例 次は、クロック ピンの FREQ_HZ ピンのパラメーター不一致の例です。この例では、周波数が S01_AXI ポートと AXI Int

erconnect コアの S_AXI インターフェイス間で違っています。このエラーはデザインが検証されると表示されます。

図 114 : ポートとインターフェイス ピン間の FREQ_HZ プロパティの不一致

S01_AXI ポートの周波数は、プロパティ ビューに表示されるように 500MHz ですが、AXI Interconnect の S01_AXI イン

ターフェイスの周波数は 50MHz に設定されています。

このタイプのエラーは、プロパティで周波数を変更するか、S01_AXI ポートをダブルクリックしてカスタマイズ ダイアログ

ボックスの [Frequency] フィールドで正しい周波数を設定すると修正できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 83

UG994 (v2014.4) 2014 年 11 月 19 日

Page 84: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターのパラメーター伝搬

図 115 : プロパティ ビューでのポートの周波数の変更

周波数を変更したら、デザインを検証し直して、エラーがないようにします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 84

UG994 (v2014.4) 2014 年 11 月 19 日

Page 85: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレー第 6 章ター デザインのデバッグ

概要 インシステム デバッグを使用すると、ターゲット ハードウェアのデザインをリアルタイムにデバッグできます。これは、デザ

インを完了させるための基本的な手順です。シミュレータでは再現するのがかなり難しい場合が常にあります。このため、

問題を FPGA でデバッグする必要があります。この手順では、特別なデバッグ ハードウェアを使用してデザインに機能

を配置して、デザインを監視および制御できるようにします。デバッグ プロセスが終了したら、この機能または特別な

ハードウェアを削除して、パフォーマンスを向上させて、ロジックを削減させることができます。

IP インテグレーターでは、デザインをデバッグする機能が提供されています。 これについては、次のセクションで説明し

ます。ここでは、HDL インスタンシエーション フローおよびネットリスト挿入フローの 2 つのフローについて説明します。

プリファレンスとデバッグするネット/信号のタイプによってフローを選択してください。たとえば、MicroBlaze または Zynq

プロセッサのクロストリガー機能を使用してハードウェア/ソフトウェア協調検証を実行する場合は、HDL インスタンシ

エーション フローを使用でき、I/O ポートおよび内部ネットを解析する場合は、ネットリスト挿入を使用できます。ほとんど

の場合、どちらのフローも組み合わせて使用してデザインをデバッグします。

IP インテグレーターの HDL インスタンシエーション フローの使用 IP インテグレーター デザインでは Integrated Logic Analyzer (ILA) をインスタンシエートして、プローブする IlA への

ネットを接続できます。ILA は次の手順でインスタンシエートできます。

1. ブロック デザイン キャンバスで右クリックして、[Add IP] をクリックします。

図 116 : [Add IP] コンテキスト メニュー

2. IP カタログで ILA を検索フィールドに入力し、ILA コアをダブルクリックし、IP インテグレーター キャンバスにそれを

インスタンシエートします。これで、ILA コアが IP インテグレーター キャンバス上にインスタンシエートされます。

Page 86: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 117 : ILA コアのインスタンシエート

3. ILA コアをダブルクリックしてコンフィギュレーションし直します。[Re-customize IP] ダイアログ ボックスが開きます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 86

UG994 (v2014.4) 2014 年 11 月 19 日

Page 87: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 118 : ILA コアを含む [Re-customize IP] ダイアログ ボックス

[General Options] タブには、デフォルト オプションの [AXI] が [Monitor Type] に表示されます。AXI インターフェイス

全体を監視する場合は、ここは変更しません。AXI インターフェイス以外の信号を監視する場合は、[Monitor Type] に

[Native] を選択します。必要に応じて、[Data Depth] およびその他のフィールドも変更できます。詳細は、次の資料を参

照してください。『Vivado Design Suite ユーザー ガイド : プログラムおよびデバッグ』 (UG908)

注意 : ILA を使用して監視できる AXI インターフェイスは 1 つだけです。[C Num Monitor Slots] の値は変更し

ないでください。デバッグに複数の AXI インターフェイスが必要な場合は、必要に応じて複数の ILA コアをイン

スタンシエートします。

[Monitor Type] を [Native] に設定する場合、[Number of Probes] を必要な値に設定できます。この値は、監視する必

要のある信号数に設定する必要があります。

図 119 : [Monitor Type] を [Native] に設定

上記の図では、[General Options] タブでプローブ数が 2 に設定されています。[Probe_Ports] タブの下には 2 つの

ポートが表示されています。これらのポートの幅は必要な値に設定できます。たとえば、32 ビット バスを監視する場合、

Probe 0 の [Probe Width] は 32 に設定します。ILA がコンフィギュレーションされたら、その変更が IP インテグレーター

キャンバス上に反映されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 87

UG994 (v2014.4) 2014 年 11 月 19 日

Page 88: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 120 : [Re-customize IP] ダイアログ ボックスでの変更後の ILA コア

4. IILA が必要に応じてコンフィギュレーションされると、IP インテグレーターのキャンバス上で ILA のピンへの接続が

できるようになります。

図 121 : AXI および AXI 以外の信号への ILA のインスタンシエート

注意 : デバッグする必要のある I/O ポートへピンが接続されたら、[Mark Debug] を使用してデバッグするネット

をマークします。これについては、次のセクションで説明します。

5. この後、合成、インプリメンテーション、ビットストリームの生成へ進みます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 88

UG994 (v2014.4) 2014 年 11 月 19 日

Page 89: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

ILA または VIO デバッグ コアへの I/O ポートの接続

ブロック デザインの I/O ポートをデバッグ用にプローブする必要のあることがよくあります。I/O ポートがインターフェイス

ポートの一部の場合、これらのインターフェイス ポートまたはピンを ILA または VIO コアに接続する際に注意が必要で

す。

ここでは例として、KC705 ボードの MicroBlaze デザインを取り上げます。このデザインには、KC705 ボードの 8 ビット L

ED インターフェイスと 4 ビット DIP スイッチの両方を使用してコンフィギュレーションされた GPIO が含まれます。

図 122 : ブロック デザインの I/O インターフェイスの監視

これらの I/O インターフェイスを監視するには、GPIO インターフェイス ピンを展開表示して、インターフェイス ピンを構

成するピンを確認します。上記の図に示すように、GPIO インターフェイスには gpio_io_o[7:0] という 8 ビット出力ピンが

含まれ、GPIO2 インターフェイスには gpio2_io_i[3:0] という 4 ビット入力ピンが含まれます。

これらのピンを監視するには、外部接続にしておく必要があります。言い換えると、インターフェイス ピンに含まれるピン

を外部ポートに接続する必要があります。これには、そのピンを右クリックして [Make External] をクリックします。

図 123 : I/O ピンへの I/O ポートの接続

次の図では、GPIO を構成するピンと GPIO2 インターフェイス ピンがブロック デザインの外部ポートに接続されているこ

とが確認できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 89

UG994 (v2014.4) 2014 年 11 月 19 日

Page 90: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 124 : インターフェイス内のピンに接続された外部ポート

注意 : 入力ピンまたは出力ピンを外部ポートに接続してインターフェイスの I/O ピンを外部接続にする際には、

最上位インターフェイス ピンと I/O ポート間の接続は削除しないようにしてください。図 125 に示すように、既存

の最上位インターフェイス ピンは該当するインターフェイスに外部接続されたままにします。この場合、次のよう

な警告メッセージが表示されます。

WARNING:[BD 41-1306] The connection to interface pin /axi_gpio_0/gpio2_io_i is being overridden by the use

r.This pin will not be connected as a part of interface connection GPIO2

次にインターフェイス ピンを ILA デバッグ コアにインターフェイス ピンを接続します。

[Add IP] コマンドを使用して ILA コアをデザインにインスタンシエートし、Native または AXI モードのいずれかをサポー

トするようにコンフィギュレーションします。この例の場合、AXI インターフェイスを監視していないので、Native モードを

サポートするように ILA をコンフィギュレーションします。また、ILA コアの 2 つのプローブ (8 ビット幅と 4 ビット幅) をコ

ンフィギュレーションする必要もあります。

ILA プローブを適切な入力/出力ピンに接続し、ILA クロックを I/O ピンと同じクロック ドメインに接続します。

図 125 : ILA プローブを監視する必要のある入力/出力ピンに接続

図 125 は、GPIO インターフェイス ピンの内部ポートに接続された ILA プローブ ピンを示しています。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 90

UG994 (v2014.4) 2014 年 11 月 19 日

Page 91: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

IP インテグレーターのネットリスト挿入フローの使用 このフローでは、ブロック デザインで解析するネットをマークします。ブロック デザインでデバッグするネットをマークして

おくと、コード記述中およびフロー後半でデバッグをオン/オフにする際に、デバッグ信号の識別をさらに細かく制御でき

ます。

ブロック デザインでのデバッグするネットのマーク

1. ブロック デザインでデバッグするネットをマークするには、そのネットを右クリックし、[Mark Debug] をクリックします。

図 126 : デバッグのためのネットのマーク

ネットをデバッグ用にマークすると、ブロック デザインのそのネットの一番上に小さなバグ アイコンが表示されるようになり

ます。バグ アイコンは、[Design Hierarchy] ビューのデバッグされるネットにも表示されます。

図 127 : デバッグ用にマークされたネットの識別

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 91

UG994 (v2014.4) 2014 年 11 月 19 日

Page 92: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

ヒント : デバッグするネットを複数マークするには、それらのネットを一緒に選択して右クリックし、[Mark Debug]

をクリックします。

2. 出力ファイルは、Flow Navigator の [Generate Block Design] をクリックするか、ブロック デザインを [Sources]

ビューで右クリックして [Generate Output Products] をクリックすると生成できます。

図 128 : [Generate Output Products] :

3. [Generate Output Products] ダイアログ ボックスで [Generate] をクリックします。

図 129 : [Generate Output Products] ダイアログ ボックス

4. デバッグするネットをマークすると、そのネットに MARK_DEBUG 属性が付きます。 これは、生成される最上位 HDL

ファイルで確認できます。この属性が付いていると、Vivado® ツールでそのネットが最適化されたり、名前が変更され

たりしなくなります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 92

UG994 (v2014.4) 2014 年 11 月 19 日

Page 93: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 130 : 生成された HDL ファイルでの MARK_DEBUG 属性

デザインの合成と ILA コアの挿入

1. 次は、Flow Navigator の [Synthesis] の下の [Run Synthesis] をクリックしてデザインを合成します。

2. 合成が終了したら、[Synthesis Completed] ダイアログ ボックスが表示されます。ネットリストを開く [Open Synthesized

Design] をオンにして、[OK] をクリックします。

3. [Schematic] ビューと [Debug] ビューが開きます。GUI の一番下に [Debug] ビューが開いていない場合は、メニュー

から [Windows] → [Debug] をクリックして開くことができます。

図 131 : Vivado IDE の [Schematic] および [Debug] ビュー

4. デバッグ用にマークしたネットはすべて [Debug] ビューの [Unassigned Debug Nets] フォルダーの下に表示されま

す。これらのネットは、Integrated Logic Analyzer のプローブに接続する必要があります。次は、ILA コアを挿入し、

これらの割り当てられていないネットを ILA のプローブに接続する手順です。[Debug] ビューのツールバーの [Set u

p Debug] をクリックします。または、メニューから [Tools] → [Set up Debug] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 93

UG994 (v2014.4) 2014 年 11 月 19 日

Page 94: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 132 : [Set up Debug] ボタン

5. Set up Debug ウィザードが開きます。[Next] をクリックします。

図 133 : [Set up Debug] ダイアログ ボックス

6. [Specify Nets to Debug] ページが表示されます。このページでは、デバッグするネットの一部またはすべてを選択で

きます。すべての信号は ILA の同じクロックに関連付けられる必要があります。クロック ドメインの関連付けがツール

によって検出できなかった場合は、[Clock Domain] 列で [undefined] と指定されているネットすべてを選択して、手

動でクロック ドメインに関連付ける必要があります。

注意 : デバッグするインターフェイスすべてをマークする必要はありますが、目的がデバイス リソース使用量の確

認の場合は、デバッグ コアを設定する際、デバッグに必要ないネットは除外できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 94

UG994 (v2014.4) 2014 年 11 月 19 日

Page 95: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 134 : デバッグするネットの一部またはすべての選択

[Clock Domain] 列で [undefined] になっている信号にクロック ドメインを関連付けるには、該当するネットすべてを選択

して、右クリックで [Select Clock Domain] をクリックします。

ヒント : 各クロック ドメインで 1 つの ILA が [Set up Debug] ウィザードで推論されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 95

UG994 (v2014.4) 2014 年 11 月 19 日

Page 96: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 135 : [Select Clock Domain] コマンド

7. [Select Clock Domain] ダイアログ ボックスで該当するネットのクロックを選択し、[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 96

UG994 (v2014.4) 2014 年 11 月 19 日

Page 97: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 136 : [Select Clock Domain] ダイアログ ボックス

8. [Specify Nets to Debug] ページで [Next] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 97

UG994 (v2014.4) 2014 年 11 月 19 日

Page 98: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 137 : [Specify Nets to Debug] ページ

9. [ILA (Integrated Logic Analyzer) General Options] ページで、データをトリガーおよびキャプチャするためのオプ

ションを選択したら、[Next] をクリックします。

図 138 : ILA でのトリガーおよびキャプチャ モードの設定

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 98

UG994 (v2014.4) 2014 年 11 月 19 日

Page 99: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

アドバンス トリガー機能を使用すると、トリガー メカニズムをさらに制御できます。[Enable advanced trigger mode] をオン

にすると、ランタイム時にコンフィギュレーション可能なトリガー ステート マシン言語をイネーブルにできます。各ステート

を分岐するには 3 つの方法があり、ステート マシンの一部として使用可能なステートは 16 あります。アドバンス トリガー

機能の一部として、4 つのカウンターと 4 つのプログラマブル カウンターが使用可能で、アナライザーで表示可能です。

キャプチャ制御機能を使用すると、基本的なデータ キャプチャだけでなく、条件にあったデータのみをキャプチャするこ

とができます。これにより、不必要な BRAM スペースが使用されることがなくなり、効率的なソリューションが提供されます。

[Set up Debug Summary] ページですべての情報が正しいことを確認したら、[Finish] をクリックします。

図 139 : [Set up Debug Summary] ページ

ILA コアが挿入された後の [Debug] ビューは次のようになります。すべてのバス (およびシングルビットのネット) が別の

プローブに割り当てられていることがわかります。プローブ情報には、その特定のプローブに割り当てられた信号の数も

表示されます。たとえば、次の図の場合、probe0 には 32 個の信号 (microblaze_1_axi_periph_m02_axi_WDATA の 32

ビット) が割り当てられています。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 99

UG994 (v2014.4) 2014 年 11 月 19 日

Page 100: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 140 : ILA コアが挿入された後の [Debug] ビュー

10. これで、デザインをインプリメントしてビットストリームを生成する準備が整いました。Flow Navigator の [Program and

Debug] の下の [Generate Bitstream] をクリックします。

11. ILA コアを挿入することでネットリストに変更を加えたので、ビットストリームを生成する前にデザインを保存するかどう

か尋ねるダイアログ ボックスが表示されます。

図 141 : ILA コア挿入後に変更された制約の保存

この段階でデザインを保存して、アクティブな制約ファイルがある場合はそれに適切な制約が書き込まれるようにするか、

新しい制約ファイルを作成します。次の図のように、制約ファイルには、合成済みネットリストに ILA コアを挿入するため

に使用されたすべてのコマンドが含まれます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 100

UG994 (v2014.4) 2014 年 11 月 19 日

Page 101: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 142 : ILA コア挿入の XDC 制約

プロジェクトを保存する利点は、デバッグ用にマークされた信号が元のブロック デザインに残ったままになり、合成後に

手動で ILA コアを挿入する必要がないことです (これらの制約により処理されるので)。このため、この後デザイン変更を

繰り返しても、手動でコアを挿入する必要はありません。

デバッグ用ネットをさらに追加する場合 (またはデバッグ用のネットのマークを解除する場合) は、合成済みネットリストを

開いて、Set up Debug ウィザードで適切な変更を加える必要があります。

コアの挿入後にプロジェクトを保存しなかった場合は、制約ファイルにそれらの制約は含まれないので、この後デザイン

変更を繰り返す際に合成済みネットリストに ILA コアを手動で挿入する必要があります。

ターゲット ハードウェアへの接続 1. ビットストリームが生成されると、[Bitstream Generation Completed] ダイアログ ボックスが開きます。[Open Hardware

Manager] をオンにして、[OK] をクリックします。

図 143 : [Bitstream Generation Completed] ダイアログ ボックス

2. [Hardware Manager] ウィンドウの [Open target] リンクをクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 101

UG994 (v2014.4) 2014 年 11 月 19 日

Page 102: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 144 : [Open target] リンク

3. 表示される 3 つのオプションの中から適切なものを選択します。[Auto Connect] をクリックすると、マシンのローカル

に接続されたターゲット ボードに接続しようとします。[Recent Targets] をクリックすると、接続可能な最近開いたター

ゲットのリストが表示されます。[Open New Target] をクリックすると、ローカルまたはリモート マシンに接続されている

可能性のあるターゲット ハードウェアに接続するためのダイアログ ボックスが表示されます。

図 145 : ターゲット ボードへの接続

4. [Open New Target] をクリックすると、[Open New Hardware Target] ダイアログ ボックスが開きます。次に、[Hardwar

e Sever Settings] ページで [Local Server] に接続するか [Remote Server] に設定するかを指定します。

図 146 : ハードウェア サーバーへの接続

注記 : 接続速度によって、10 ~ 15 秒程度かかります。

5. リモート サーバーに接続する場合は、[Host name] および [Port] を指定します。[Next] をクリックします。ハードウェ

ア サーバーの詳細は、『Vivado Design Suite ユーザー ガイド : プログラムおよびデバッグ』 (UG908) を参照してく

ださい。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 102

UG994 (v2014.4) 2014 年 11 月 19 日

Page 103: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

6. hw_server に接続されるターゲットが複数ある場合は、[Select Hardware Target] ページに複数のエントリが表示され

ます。この例の場合、1 つしかターゲットはないので、次の図のように表示されます。[Next] をクリックします。

図 147 : ハードウェア ターゲットの選択

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

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 103

UG994 (v2014.4) 2014 年 11 月 19 日

Page 104: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 148 : [Open Hardware Target Summary] ページ

8. ハードウェアへの接続が完了するまで待ちます。ハードウェアの接続中は次のようなダイアログ ボックスが表示され

ます。

ハードウェア ターゲットへ接続されると、次のようなダイアログ ボックスが表示されます。[Debug] ビューの [Hardwar

e] タブには、ハードウェア ターゲットと JTAG チェーンで検出された XC7K325T デバイスが表示されます。

図 149 : ターゲットおよびデバイスを表示する [Hardware] ビュー

9. 次に、前に作成した .bit ビットストリーム ファイルを使用して XC7K325T デバイスをプログラムします。 次のように X

C7K325T デバイスを右クリックし、[Program Device] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 104

UG994 (v2014.4) 2014 年 11 月 19 日

Page 105: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

図 150 : [Program Device] コマンド

10. [Program Device] ダイアログ ボックスで正しい BIT ファイルが表示されているかどうか確認します。また、[Debug Pr

obes file] フィールドで正しいプローブ ファイルを指定して [Program] ボタン () をクリックしてデバイスをプログラムし

ます。

図 151 : ダウンロードするビットストリーム ファイルの選択

注記 : プログラムが終了するのを待ちます。これには、数分かかります。

[Debug] ビューの [Hardware] タブで ILA コアが検出されることを確認します。

図 152 :検出された ILA コア

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 105

UG994 (v2014.4) 2014 年 11 月 19 日

Page 106: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

ILA を使用した IP インテグレーター デザインのデバッグ

Integrated Logic Analyzer の画面が表示されます。

図 153 :Vivado の Integrated Logic Analyzer のウィンドウ

プログラムおよびデバッグの詳細については、『Vivado Design Suite ユーザー ガイド : プログラムおよびデバッグ』 (UG

908) を参照してください。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 106

UG994 (v2014.4) 2014 年 11 月 19 日

Page 107: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

Tcl スクリプトを使用したプロジェク第 7 章ト内でのブロック デザインの作成

概要 通常は、Vivado IDE の GUI 環境のプロジェクト ベース フローで新しいデザインを作成します。最初のデザインを作成

したら、GUI のスクリプト フローまたはバッチ モードを使用してデザインを作成し直すことができます。本章では、ブロッ

ク デザインのスクリプト フローを作成する方法について説明します。

Vivado IDE GUI でのデザイン作成 本書の第 2 章の手順に示すように、Vivado IDE GUI でプロジェクトと新しいブロック デザインを作成します。ブロック デ

ザインが完了したら、キャンバスには次の図のようにデザインが含まれます。

図 154 : ブロック デザイン キャンバス

ブロック デザインが開いた状態で、Tcl コンソールに次のコマンドを入力します。

write_bd_tcl <path to file/filename>

これにより、ブロック デザインを作成し直すために呼び出すことができる Tcl ファイルが作成されます。この Tcl ファイル

には、それが作成された Vivado ツールのバージョンに関する情報が埋め込まれているので、別の Vivado Design Suite

リリースでこのファイルを使用しないでください。Tcl ファイルには、ブロック デザインに含まれるすべての IP と、それらの

コンフィギュレーションおよび接続に関する情報も含まれます。

注意 : write_bd_tcl で生成されたスクリプトは、それが作成されたりリースでのみ使用できます。 スクリプトを作成し

た Vivado Design Suite のバージョンが違う場合は、使用できません。

Page 108: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

Tcl スクリプトを使用したプロジェクト内でのブロック デザインの作成

Tcl ファイルへの Vivado プロジェクト情報の保存 プロジェクト設定全体は、write_project_tcl コマンドを使用すると保存できます。

write_project_tcl <path to file/filename>

ブロック図を含む Vivado プロジェクトの場合、write_project_tcl コマンドから生成された Tcl ファイルは次のようになりま

す。

図 155 : write_project_tcl コマンドを使用して生成された Tcl ファイルからのコード

上記の Tcl ファイルのハイライト部分では、ブロック デザイン ファイル (.bd) が明示的に読み込まれています。ブロック

デザインを作成し直さず、既に作成されたブロック図を読み込むだけの場合は、上記のコード行を変更する必要はあり

ませんが、ブロック デザインを作成し直す必要があることもあります。この目的の場合、write_project_tcl コマンドを使用

して生成された Tcl ファイルは、次のように変更できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 108

UG994 (v2014.4) 2014 年 11 月 19 日

Page 109: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

Tcl スクリプトを使用したプロジェクト内でのブロック デザインの作成

図 156 : 出力ファイルを使用してブロック デザインを作成し直す Tcl ファイルのコード部分

上記のコード部分に示すように、write_project_tcl ファイルからの Tcl ファイルを変更して、write_bd_tcl コマンドを使用し

て作成された出力ファイルを読み込むようにします。これにより、ブロック デザインは Tcl ファイルが実行されるたびに作

成し直されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 109

UG994 (v2014.4) 2014 年 11 月 19 日

Page 110: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでの非プロ第 8 章ジェクト モードの使用

概要 非プロジェクト モードは、デザイン データを自身で管理したり、デザイン ステートをトラックするユーザー向けです。この

フローの場合、Vivado® ツールはさまざまなソース ファイルを読み込んで、メモリ内でフロー全体を実行してデザインを

コンパイルします。インプリメンテーション プロセス段階では、ユーザー スクリプトに基づいてさまざまなレポートを生成

することができます。ただし、このモードでは、ソース ファイルおよび run 管理、ソース ファイルへのクロスプローブ、デ

ザイン ステートのレポートなどのプロジェクト ベースの機能は使用できません。ソース ファイルがディスクでアップデート

されるたびに、それを認識して、デザインを読み込み直す必要があります。非プロジェクト モードでは、デフォルトではレ

ポートや中間ファイルは作成されませんが、Tcl コマンドを使用して、ユーザー スクリプトでレポートの作成を制御できる

ようにする必要があります。

非プロジェクト モードのフロー作成 Vivado ツールは、Tcl コンソールに次のコマンドを入力すると、通常のプロジェクト モードではなく、Tcl モードで起動で

きます。このモードでは、Tcl スクリプトを作成して、次のコマンドでそれを Vivado プロンプトから読み込むことをお勧めし

ます。

Vivado% vivado -mode tcl

非プロジェクト モードの場合、インメモリでプロジェクトを作成して、プロジェクト オプションを次のように設定します。

create_project -in_memory -part xc7k325tffg900-2

set_property target_language VHDL [current_project]

set_property board_part xilinx.com:kc705:part0:0.9 [current_project]

set_property default_lib work [current_project]

非プロジェクト モードの場合、ディスクに保存されるプロジェクト ファイルはなく、インメモリの Vivado プロジェクトが作成

されます。ブロック デザインのデバイス/パーツ/ターゲット言語はブロック デザイン ソースの一部として格納されません。このため、create_project –in_memory コマンドを指定して、read_bd コマンドを実行する前に必要なパーツ設定を定義しておくことを

お勧めします。

プロジェクトが作成されたら、ブロック デザインのソース ファイルをプロジェクトに追加できます。

ソース ファイルは、次のいずれかの方法で追加できます。たとえば、プロジェクト モードで作成した既存のブロック デザ

インがあり、そのブロック デザインのディレクトリ構造全体が変更されていないと仮定した場合、次のように read_bd tcl コ

マンドを使用してブロック デザインを追加できます。

Vivado% read_bd <absolute path to the bd file>

Page 111: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでの非プロジェクト モードの使用

注意 : プロジェクト設定 (ボード、パーツ、ユーザー レポジトリ) は .bd ファイルが作成された元のプロジェクト

のプロジェクト設定と同じである必要があります。同じにしないと、ブロック デザイン内の IP がロックされます。

ブロック デザインが問題なく追加されたら、最上位 RTL ファイルと最上位 XDC 制約を追加する必要があります。

Vivado% read_verilog <top-level>.v

Vivado% read_xdc <top-level>.xdc

.bd ソースは直接合成できないので、下記のコマンドを使用して最上位の HDL ラッパー ファイルを作成することもでき

ます。

Vivado% make_wrapper -files [<path to bd>/<bd instance name>.bd] –top

add_files -norecurse <path to bd>/< bd instance name >_wrapper.vhd

update_compile_order -fileset sources_1

これにより、最上位 HDL ファイルが作成され、ソース リストに追加されます。

ブロック デザインを独立階層 (OOC) モジュールとして設定する必要がある場合は、次のコマンドを使用してブロック デ

ザインの合成済みデザイン チェックポイント (.dcp) を生成します。

create_fileset -blockset -define_from <block_design_name> <block_design_name>

reset_run <block_design_name>_synth_1 -from_step synth_design

MicroBlaze ベースのデザインの場合、I-LMB をブートループまたはユーザー自身の実行ファイル (ELF 形式) を使用

して生成する必要があります。この後、ELF ファイルを追加し、MicroBlaze インスタンスに関連付けます。これは、次のコ

マンドで実行できます。

vivado% add_files <ELF file Targeted to BRAM with .elf extension>

vivado% set_property MEMDATA.ADDR_MAP_CELLS {<bd instance name>/microblaze_0} [get_files <BRAM Targeted ELF File

>]

デザインに複数レベルの階層がある場合は、正しい階層を指定してください。この後、通常の合成、配置配線段階を実

行し、デザインをインプリメントします。合成段階 (synth_design) では、ターゲット パーツをデフォルト ターゲット パーツと

して指定する必要があり、このターゲット パーツが必要なものと同じではないことがあります。

synth_design -top <path to top level wrapper file> -part <part>

opt_design

place_design

route_design write_bitstream top

非プロジェクト モードの詳細は、『Vivado Design Suite ユーザー ガイド : デザイン フローの概要』 (UG892) を参照してく

ださい。

インプリメントされたハードウェア システムを SDK にエクスポートするには、次のコマンドを使用します。

write_sysdef -hwdef "C:/Data/ug940/lab1/zynq_design.hwdef" \

-bitfile "<project_name>/<project_name>.runs/impl_1/zynq_design.bit" \

-meminfo "<project_name>/<project_name>.runs/impl_1/zynq_design.bmm" \

-file "C:/Data/ug940/lab1/zynq_design.sysdef"

write_sysdef または write_hwdef コマンドの詳細は、『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) を

参照してください。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 111

UG994 (v2014.4) 2014 年 11 月 19 日

Page 112: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでの非プロジェクト モードの使用

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 112

UG994 (v2014.4) 2014 年 11 月 19 日

Page 113: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアッ第 9 章プデート

概要 Vivado® Design Suite を最新バージョンにアップグレードした場合は、IP インテグレーターで作成したブロック デザイン

もアップグレードする必要があります。IP のバージョン番号はリリースごとに変わります。IP インテグレーターがブロック

デザインに含まれる IP が古いバージョンであると認識した場合は、ブロック デザイン内のその IP がロックされます。古

いバージョンのブロック デザインまたはそれに含まれる IP を保持する場合は、キャンバス上のブロック デザインを変更

したり、出力ファイルを検証したり、リセットしたり、出力ファイルを生成し直したりはしないでください。このような場合、前

のリリースからのデザイン データは変更するべきではありません。前のリリースからのブロック デザインは、そのままの状

態で合成およびインプリメントすることはできます。

ブロック デザインは最新バージョンの IP を含めてアップグレードし、必要なデザイン変更を加えてから、デザインを検証

してターゲットを生成することをお勧めします。

次のいずれかの方法でアップグレードできます。

1. プロジェクト モード フローで Vivado IDE の GUI を使用する

2. 非プロジェクト モード フローで Tcl スクリプトを使用する

どちらの方法についてもこの章で説明します。

プロジェクト モードでのブロック デザインのアップグレード 1. 最新の Vivado Design Suite を起動します。

2. Vivado IDE のメイン ページで [Open Project] をクリックし、前バージョンの Vivado で作成されたデザインを指定し

ます。

3. [Older Project Version] ダイアログ ボックスが開きます。デフォルトでは [Automatically upgrade for the current vers

ion] がオンになっています。この [Automatically upgrade for the current version] をオンにすると、前のバージョン

からのデザインがアップグレードされますが、その前に別の名前でプロジェクトを保存しておくことをお勧めします。こ

れには、[Open project in read-only mode] をオンにして [OK] をクリックします。

Page 114: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

図 157 : 読み出し専用モードでプロジェクトを開くオプション

4. [Project is Read-Only] ダイアログ ボックスが開きます。[Save Project As] をクリックします。

図 158 : [Save Project As] ダイアログ ボックス

5. [Save Project As] ダイアログ ボックスが開いたらプロジェクト名を入力して、[OK] をクリックします。

図 159 : プロジェクト名の指定

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 114

UG994 (v2014.4) 2014 年 11 月 19 日

Page 115: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

6. [Project Upgraded] ダイアログ ボックスが開き、デザインで使用される IP が変更されたので、アップデートする必要

があることが示されます。

図 160 : [Project Upgraded] ダイアログ ボックス

7. [Report IP Status] をクリックします。

または、メニューから [Tools] → [Report] → [Report IP Status] をクリックします。

8. デザイン内の IP で主なバージョン変更があった場合は、次のようなメッセージが表示されます。[OK] をクリックしま

す。

図 161 : IP ステータス結果のレポート

[IP Status] ビューでさまざまな列を確認し、IP ステータス レポートに慣れておいてください。+ マークをクリックしてブロッ

ク デザインを展開し、ブロック デザイン内の IP コアの変更点を確認してください。ブロック デザイン内の一部の IP だけ

を選択してアップグレードし、残りは古いバージョンのままにしておくということはできません。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 115

UG994 (v2014.4) 2014 年 11 月 19 日

Page 116: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

図 162 : IP ステータス レポート

[IP Status] ビューの一番上には、デザインのサマリが表示されます。ここには、現バージョンにデザインをアップグレード

にするためにいくつの変更が必要だったかがレポートされます。レポートされる変更は、[Major Changes]、[Minor Chang

es]、[Revision Changes]、およびその他の変更点です。これらの変更は、[IP Status] 列にもレポートされます。

[Major Changes] : IP にメジャーなバージョン変更 (例 : バージョン 2.0 から 3.0) があったことを示します。このタイプの

変更は、アップグレード用に自動的に選択されることはありません。アップグレードされるようにするには、そのブロック デ

ザインの [Upgrade] 列をオフにしてから、もう 1 度オンにします。

[Minor Changes] : IP にマイナーなバージョン変更 (例 : バージョン 3.0 から 3.1) があったことを示します。

[Revision Changes] : IP にリビジョン変更があったことを示します。たとえば、IP の現バージョンが 5.0 でアップグレード

バージョンが 5.0 (Rev. 1) になる場合などです。

[Change Log] 列の [More info] リンクをクリックすると、変更の詳細が確認できます。

図 163 : [More info] をクリックして表示される変更履歴

[Recommendation] 列には、IP をアップグレードするように選択する前に理解しておくべき変更点が記述されます。

9. 変更点とデザインへの影響を理解したら、[Upgrade Selected] をクリックします。

10. [Upgrade IP] ダイアログ ボックスが開き、アップグレードをするかどうか尋ねるメッセージが表示されます。

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

12. アップグレード プロセスが終了したら、注意する必要のある重要な問題を示す [Critical Messages] ダイアログ ボッ

クスが開きます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 116

UG994 (v2014.4) 2014 年 11 月 19 日

Page 117: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

図 164 : [Critical Messages] ダイアログ ボックス

13. アップグレード後に表示されるクリティカル警告およびその他のメッセージを確認してください。[OK] をクリックします。

14. デザインに複数の図が含まれる場合、[IP Status] ビューには次の図のようにすべての図の IP のステータスが表示

されます。

図 165 : 複数の図を含む場合の [IP Status] ビュー

[Upgrade Selected] をクリックすると、すべてのブロック図がデザインでアップデートされます (ブロック図がアップグ

レードするように選択されている場合)。

デザイン ルール チェックの実行

ツールバーの [Validate Design] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 117

UG994 (v2014.4) 2014 年 11 月 19 日

Page 118: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

図 166 : デザインの検証

ブロック デザイン ツールバーで [Validate Design] アイコン をクリックすることもできます。

出力ファイルの再生成

1. Vivado の [Sources] ビューでブロック図を右クリックし、[Generate Output Products] をクリックします。

図 167 : [Generate Output Products] :

または、Flow Navigator の [IP Integrator] の下の [Generate Block Design] をクリックしても出力ファイルを生成でき

ます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 118

UG994 (v2014.4) 2014 年 11 月 19 日

Page 119: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

図 168 : [Generate Output Products] ダイアログ ボックス

2. [Generate Output Products] ダイアログ ボックスで [Generate] をクリックします。

HDL ラッパーの作成/変更

前のバージョンでデザインの HDL ラッパー ファイルを作成した場合は、デザイン変更に合わせてそれを作成し直す必

要があります。Vivado ツールで最上位ラッパーが作成および管理されるオプションを選択した場合、ラッパー ファイル

はブロック デザインの生成時または前のセクションで定義された出力ファイルの生成時にアップデートされます。HDL

ラッパー ファイルを手動で変更する場合は、その HDL ラッパーに必要なアップデートを手動で実行する必要がありま

す。

1. Vivado の [Sources] ビューでブロック図を右クリックし、[Create HDL Wrapper] をクリックします。

図 169 : HDL ラッパーの作成

2. [Create HDL Wrapper] ダイアログ ボックスが開きます。この段階では、編集可能なラッパー ファイルを作成するか、

Vivado ツールで自動的にラッパー ファイルが作成されるようにするかの 2 つの選択肢があります。[OK] をクリックし

ます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 119

UG994 (v2014.4) 2014 年 11 月 19 日

Page 120: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

新規リリースでのデザインのアップデート

図 170 : [Create HDL Wrapper] ダイアログ ボックス

これでデザインの合成、インプリメント、ビットストリーム生成ができるようになります。

非プロジェクト モードでのブロック デザインのアップグレード 非プロジェクト モード フローを使用した前のリリースからの既存プロジェクトを開き、ブロック デザインを現バージョンの

Vivado にアップグレードすることができます。次のスクリプトをガイドラインとして使用し、ブロック図に含まれる IP をアッ

プグレードしてください。

# Open an existing project from a previous Vivado release

open_project <path_to_project>/project_name.xpr

update_compile_order –fileset sim_1

# Open the block diagram

read_bd {<path_to_bd>/bd_name.bd}

# Make the block diagram current

current_bd_design bd_name.bd

# Upgrade IP

upgrade_bd_cells [get_bd_cells –hierarchical * ]

# Reset output products

reset_target {synthesis simulation implementation} [get_files <path_to_project>/project_name.srcs/sources_1/bd/bd_name/bd_n

ame.bd]

# Generate output products

generate_target {synthesis simulation implementation} [get_files <path_to_project>/project_name/project_name.srcs/sources_1/

bd/bd_name/bd_name.bd]

# Create HDL Wrapper (if needed)

make_wrapper -files [get_files <path_to_project>/project_name/project_name.srcs/sources_1/bd/bd_name/bd_name.bd] –top

# Overwrite any existing HDL wrapper from before

import_files -force -norecurse <path_to_project>/project_name/project_name.srcs/sources_1/bd/bd_name/hdl/bd_name_wrappe

r.v

update_compile_order -fileset sources_1

# Continue through implementation

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 120

UG994 (v2014.4) 2014 年 11 月 19 日

Page 121: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーター デザインの第 10 章バージョン管理

概要 本章では、プロジェクト モードおよび非プロジェクト モード両方の IP インテグレーター ベースのブロック デザインに

バージョン管理システムを使用する方法について説明します。Vivado® IDE の IP インテグレーターは、複雑な IP サブ

システム デザインを作成するための優れたツールです。デザインが複雑になるほど、異なるデザイン バージョンを把握

することで、プロジェクトが管理でき、チーム デザイン環境での協力がしやすくなります。

プロジェクトには複数のデザイン ソースおよびコンフィギュレーション ファイルが含まれることがありますが、こプロジェクト

を作成し直してインプリメンテーション結果を生成し直すのにバージョン管理が必要なのは一部のファイルのみです。こ

れらのファイルの中でブロック デザインに該当するものは、次のとおりです。

• IP-XACT コア ファイル (.xci、.mem、.coe)

• ブロック図ファイル (.bd)

• エンベデッド サブシステムおよびファイル (.elf、bmm)

• ザイリンクス デザイン制約ファイル (.xdc)

• Vivado シミュレータおよび Vivado Integrated Logic Analyzer コンフィギュレーション ファイル (.wcfg) を含むコ

ンフィギュレーション ファイル

• RTL ファイル (ユーザーにより管理される場合のブロック デザインのラッパー : .vhd、.v)

Vivado Design Suite では、特定のバージョン管理システムはサポートされておらず、どのバージョン管理システムとも連

動するように設計されています。Vivado デザインをバージョン制御に適した状態にするため、Vivado Design Suite には

次の機能が含まれています。

• ファイルが修正された場合にのみタイムスタンプをアップデート。これにより、プロジェクトを開いてもそのタイムス

タンプは変更されません。

• ASCII ベースのプロジェクト ファイルをサポート

• 詳細な Tcl スクリプト機能をサポート

Page 122: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーター デザインのバージョン管理

バージョン管理のためにチェックインする必要のあるデザイン

ファイル ブロック デザインには、GUI 環境でグラフィックを使用して作成された複数の IP が含まれます。プロジェクト モード フ

ローのブロック デザインのディレクトリ構造は、次の図のようになります。

図 171 : Vivado プロジェクトのディレクトリ構造

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 122

UG994 (v2014.4) 2014 年 11 月 19 日

Page 123: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーター デザインのバージョン管理

図 171 では、それぞれのフォルダーは次を意味します。

• project_1 : Vivado プロジェクト フォルダー (project_1 はプロジェクトの名前)

• project_1.srcs : プロジェクト特有のファイルを含むソース フォルダー

• sources_1 : bd も含めたすべてのソース ファイルを含むフォルダー

• bd : ブロック デザイン特有のデータを含有。各ブロック デザインに対して下位ディレクトリを複数含むことがあり

ます。

• design_1 : design_1 というブロック デザインのデータを含むフォルダー。プロジェクトにブロック デザインが複数

古くまれる場合は、複数のフォルダーがここに表示されます。

• hdl : 最上位 HDL ファイルおよびラッパー ファイルを含むフォルダー

• ip : ブロック デザインの各 IP に対する下位フォルダーを含有

• ui : ブロック デザインの GUI (IP インテグレーターのキャンパス) データを含むフォルダー

ヒント : ディレクトリ構造全体を含め、bd フォルダーに含まれるすべてのファイルをバージョン管理下に置くことを

お勧めします。

ブロック デザインの別のプロジェクトでの使用 IP インテグレーターには、別のプロジェクトで作成したブロック デザインを再利用して、ほかのプロジェクトにインポート

する機能があります。これには、ブロック デザインがプロジェクト ベース フローで作成されている必要があります。この際、

デザインは DRC 違反がなく、問題なく合成 (場合によってはインプリメント) ができた状態にしておく必要があります。ブ

ロック デザインに問題がなければ、bd ディレクトリとその下のディレクトリすべてを除き、すべて Vivado プロジェクトから

削除できます。こうすることで、ブロック デザインに含まれる IP すべてのデータを含め、すべてのブロック デザイン デー

タを別の Vivado プロジェクトにインポートできます。

既存ブロック デザインの別の Vivado IDE プロジェクトへのイン

ポート ブロック デザインがプロジェクト ベースのフローで作成され、bd フォルダーとその下のフォルダーすべてを含むディレク

トリ構造が使用できる状態になっていれば、そのブロック デザインを別の Vivado プロジェクトで開くことができます。ただ

し、この場合、既存のブロック デザインがインポートされる新しいプロジェクト設定は、そのブロック デザインが作成され

た元のプロジェクト設定と同じにする必要があります。プロジェクトのターゲット デバイスが異なっていると (同じファミリ内

でのデバイスも含む)、IP がロックされるので、デザインを生成し直す必要があります。このような場合、デザインのビヘイ

ビアーは元のブロック デザインと異なってしまうことがあります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 123

UG994 (v2014.4) 2014 年 11 月 19 日

Page 124: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーター デザインのバージョン管理

1. 既存のブロック デザインをインポートするには、[Sources] ビューでデザインを右クリックし、[Add Sources] をクリック

します。

図 172 : 新しい Vivado プロジェクトへのソースの追加

2. [Add Sources] ダイアログ ボックスが開きます。[Add Existing Block Design Sources] をオンにします。[Next] をクリッ

クします。

図 173 : 既存のブロック デザインの追加

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 124

UG994 (v2014.4) 2014 年 11 月 19 日

Page 125: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーター デザインのバージョン管理

3. [Add Sources] ダイアログ ボックスで [Add Files] をクリックします。

図 174 : [Add Files] をクリックして既存のブロックのデザイン ファイルを指定

4. [Add Source Files] ダイアログ ボックスでブロック デザインの含まれる bd フォルダーを指定し、.bd ファイルを選択し

たら、[OK] をクリックします。

図 175 : ブロック デザインを含むフォルダーの指定

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 125

UG994 (v2014.4) 2014 年 11 月 19 日

Page 126: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーター デザインのバージョン管理

5. [Finish] をクリックすると、既存のブロック デザインが追加されます。

図 176 : 既存ブロックのデザイン ソースのプロジェクトへの追加

[Sources] ビューの [Design Sources] の下にインポートしたブロック デザインが表示されます。

図 177 : [Sources] ビューのインポートされたブロック デザイン

6. ブロック デザインをダブルクリックして開きます。

ブロック デザインで使用される IP はアップグレードし、ブロック デザインを検証し、ラッパーを生成し、デザインを合

成およびインプリメントする必要があることがあります。これらについては、すべて本資料のその他のセクションで説

明されています。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 126

UG994 (v2014.4) 2014 年 11 月 19 日

Page 127: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用第 11 章

概要 サードパーティ合成ツールをデザイン フローの一部として使用する必要のあることもあります。このような場合、ブロック

デザインをブラック ボックスとして最上位ユーザー デザインに統合する必要があります。この後、残りのデザインをサー

ドパーティ合成ツールで合成して、HDL または EDIF ネットリストを書き出し、合成後のプロジェクトを Vivado 環境にイ

ンプリメントします。

本章では、ブロック デザインのブラック ボックスをサードパーティ合成ツールで合成するために必要な手順を示します。

フローはどのサードパーティ合成ツールにも該当しますが、本章では Synplify Pro 合成ツールを使用して説明します。

ブロック デザインのデザイン チェック ポイント (DCP) の作成 デザイン チェックポイントは、ブロック デザインを独立階層モジュール (アウト オブ コンテキスト (OOC) モジュール) とし

て設定すると、作成できます。これには、[Sources] ビューでブロック デザインを右クリックして [Out-of-Context Setting

s] をクリックします。

図 178 :ブロック デザインを Out-of-Context モジュールとして設定

[Out-of-Context Settings] ダイアログ ボックスで独立階層 (アウト オブ コンテキスト) モジュールとして設定する必要の

あるブロック デザインの横のチェック ボックスをオンにします。

Page 128: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用

図 179 : [Out-of-Context Settings] ダイアログ ボックス

ブロック デザインが OOC モジュールとして設定されると、[Sources] ビューでそのブロック デザインに四角形のアイコン

が付きます。[Design Runs] ビューにも、ブロック デザインの OOC モジュールの run が表示されます。

次に、ブロック デザインのデザイン チェックポイント ファイルを作成するデザインを合成します。 これは、次のディレクトリ

に含まれます。

<path_to_design>\<project_name>\<project_name>.runs\<block_design_name>_synth_1

デザイン チェックポイントを使用すると、デザインの現在の状態のスナップショットを撮ることができます。現在のネットリス

ト、制約、およびインプリメンテーション結果が、デザイン チェックポイントに保存されます。デザイン チェックポイントを使

用すると、次が実行できます。

• 必要であればデザインを復元

• デザイン解析を実行

• 制約を定義

• デザイン フローに従って処理

ブロック デザインの Verilog または VHDL スタブ ファイルの作成 チェックポイントが作成されたら、最上位 HDL ファイルにインスタンシエート可能なスタブ ファイルを作成して、ブロック

デザインをブラック ボックスとして参照します。まず合成済みデザインを最初に開いて、次のコマンドを使用して HDL ス

タブ ファイルを作成します。

write_verilog -mode synth_stub <path_to_file>/<file_name>

write_vhdl -mode synth_stub <path_to_file>/<file_name>

注意 : write_verilog/write_vhdl コマンドが実行できるようにするには、合成済みデザインを開いておく必要があり

ます。

次の図は、スタブ ファイルの例を示しています。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 128

UG994 (v2014.4) 2014 年 11 月 19 日

Page 129: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用

図 180 : スタブ ファイルの例

Synplify プロジェクトでの HDL または EDIF ネットリストの作成 Synplify プロジェクトを作成して、ブロック デザインの最上位 HDL ラッパー ファイルと共にブラック ボックス スタブ ファ

イル (Vivado で作成) をインスタンシエートします。ブロック デザインが Synplify でブラック ボックスとして処理されます。

プロジェクトが合成されると、プロジェクトの HDL または EDIF ネットリストを書き出すことができます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 129

UG994 (v2014.4) 2014 年 11 月 19 日

Page 130: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用

Vivado での合成後のプロジェクトの作成とインプリメント 次は、Vivado IDE で合成後のプロジェクトを作成します。これには、Vivado で新規プロジェクトを作成する際に [Project

Type] ページで [Post-synthesis Project] をオンにします。

プロジェクトを作成したら、[Design Sources] を右クリックして [Add Sources] をクリックし、ブロック デザインのネットリスト

ファイルおよび DCP ファイルをプロジェクトに追加します。

図 181 : Synplify からの HDL ネットリストおよび DCP ファイルのプロジェクトへの追加

[Add Sources] ダイアログ ボックスではデフォルトで [Add Design Sources] がオンになっています。[Next] をクリックしま

す。

[Add Design Sources] ページで [Add Files] をクリックします。

図 182 : [Add Design Sources] ページ

フォルダーを参照してネットリスト ファイルを選択します。[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 130

UG994 (v2014.4) 2014 年 11 月 19 日

Page 131: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用

図 183 : ネットリストを含むフォルダーの参照

上記の手順を繰り返して DCP ファイルを追加し、[Finish] をクリックします。

図 184 : ネットリスト ファイルと DCP ファイルのプロジェクトへの追加

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 131

UG994 (v2014.4) 2014 年 11 月 19 日

Page 132: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用

最上位制約の追加 デザインのインプリメンテーション前に、プロジェクトに必要な制約を追加しておく必要があります。DCP ファイルには、ブ

ロック デザインに対する制約ファイルも含まれます。ただし、ブロック デザインの階層を変更した場合は、その階層パス

が範囲内に含まれるように制約ファイルを変更する必要があります。

制約ファイルは、[Sources] ビューで [Design Sources] を右クリックして、ネットリストおよび DCP ファイルと同じようにプロ

ジェクトに追加できます。[Add Sources] ダイアログ ボックスで [Add or Create Constraints] をオンにします。

ELF ファイルの追加 ブロック デザインにそれに関連付けられた ELF ファイルが含まれる場合は、ELF ファイルを Vivado プロジェクトに追加

する必要がありまあす。合成後のプロジェクトの場合、Vivado IDE GUI を介して ELF ファイルを追加することはできませ

ん。ただし、次の Tcl コマンドを使用すると、ELF ファイルを追加して、エンベデッド オブジェクトに関連付けることができ

ます。

add_files <path_to_elf_file>/<file_name>.elf

追加された ELF ファイルは、[Sources] ビューに表示されます。

図 185 : プロジェクトに ELF ファイルが追加されたかどうかの確認

ELF ファイルがプロジェクトに追加されたら、次のコマンドを使用してエンベデッド オブジェクトに関連付けることができま

す。

set_property SCOPED_TO_CELLS { <processor_instance> } \

[get_files -all -of_objects [get_fileset sources_1] \

<path_to_elf_file>/<file_name>.elf]

GUI の場合は、[Sources] ビューで ELF ファイルをクリックして [Source File Properties] ビューで ADDR_MAP_CELLS

フィールドを編集します。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 132

UG994 (v2014.4) 2014 年 11 月 19 日

Page 133: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

サードパーティ合成ツールの使用

図 186 : [Source File Properties] ビューでの ADDR_MAP_CELLS フィールドの指定

デザインのインプリメント 次は、デザインをインプリメントしてビットストリームを生成できます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 133

UG994 (v2014.4) 2014 年 11 月 19 日

Page 134: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード第 12 章フローの使用

概要 Vivado Design Suite では、ボードが認識されます。ツールでは、ターゲット ボードに含まれるさまざまなインターフェイス

が認識されるので、IP をカスタマイズして、特定ボード インターフェイスに接続されるように IP をコンフィギュレーション

できます。現在のところ複数の 7 シリーズ ボードがサポートされています。 UltraScaleTM パーツを含むボードも今後サ

ポートされる予定です。Avnet のようなサードパーティ ベンダーからのその他のボードも使用できるようになりました。

IP インテグレーターには、[Board] ビューという別のタブにボードに対するすべてのインターフェイスが表示されます。こ

のタブを使用して必要なインターフェイスを選択し、IP インテグレーターで提供されるデザイン アシスタンスを使用する

と、簡単にデザインを選択したボード インターフェイスに接続できます。I/O 制約はすべて自動的にこのフローの一部と

して生成されます。

ターゲット ボードの選択 プロジェクトが Vivado 環境で作成された場合は、[New Project] ダイアログ ボックスの [Default Part] ページからター

ゲット ボードを選択できます。

Page 135: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

図 187 : ターゲット ボードの選択

使用可能なボードのリストは、ベンダー、表示名、ボード リビジョンに基づいてフィルターできます。

図 188 : 使用可能なボードのフィルター リスト

[Board Rev] ではボードのリビジョンに基づいてフィルターできます。[Board Rev] を [All] に設定すると、Vivado でサ

ポートされるすべてのボードのリビジョンが表示されます。同様に、[Board Rev] を [Latest] に設定すると、ターゲット

ボードの最新リビジョンのみが表示されます。使用可能なリソースおよび動作状況など、さまざまな情報も表に含まれま

す。

ボードを選択すると、そのボード用に定義されたインターフェイスが使用されて、コンフィギュレーションされます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 135

UG994 (v2014.4) 2014 年 11 月 19 日

Page 136: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

ボード フローを使用するためのブロック デザインの作成 ボード フローの利点は、IP インテグレーターを使用するとよくわかります。Flow Navigator で [IP Integrator] → [Create

Block Design] をクリックして、新しいブロック デザインを開始します。デザイン キャンバスが開いたら、[Board] ビューが

次のように表示されます。

図 189 : [Board] ビュー

このビューには、評価ボード (前の図の場合は KC705) で可能性のあるインターフェイスすべてがリストされます。これら

のインターフェイスの 1 つをクリックすると、IP をブロック デザインのキャンバスにすばやくインスタンシエートできます。

ボード インターフェイスを使用する最初の方法は、[Board] ビューからインターフェイスを選択して、それをブロック デザ

インのキャンバスにドラッグする方法です。これにより、そのインターフェイスに接続可能な IP がインスタンシエートされ、

そのインターフェイス用にコンフィギュレーションされます。この後、その IP のインターフェイス ピンが I/O ポートに接続

されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 136

UG994 (v2014.4) 2014 年 11 月 19 日

Page 137: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

図 190 : ブロック デザイン キャンバスへのインターフェイスのドラッグ アンド ドロップ

ターゲット ボードでインターフェイスを使用する 2 つ目の方法は、[Unconnected Interfaces] フォルダーから ddr3_sdram

インターフェイスをダブルクリックします。[Connect Board Part Interface] ダイアログ ボックスが表示されます。

図 191 : [Connect Board Part Interface] ダイアログ ボックス

mig_ddr_interface を選択し、[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 137

UG994 (v2014.4) 2014 年 11 月 19 日

Page 138: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

図 192 : インターフェイスに接続可能な IP リストを表示する IP カタログ

IP が図のキャンバス上に配置され、I/O ポートを介してインターフェイスに接続されます。IP はそのインターフェイスに

接続するためにすべてコンフィギュレーションされます。

図 193 : キャンバス上のインターフェイスにインスタンシエート、コンフィギュレーション、接続された IP

インターフェイスが接続されると、その特定のインターフェイスが [Board] ビューに色付きの丸で示されるようになります。

図 194 : インターフェイスに接続後の [Board] ビュー

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 138

UG994 (v2014.4) 2014 年 11 月 19 日

Page 139: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

インターフェイスは、[Auto Connect] オプションを使用しても接続できます。これには、インターフェイスを右クリックして、

[Auto Connect] をクリックします。

図 195 : ボード インターフェイスに接続するための [Preferred Connection] オプションの使用

GPIO IP がインスタンシエートされ、GPIO インターフェイスが I/O ポートに接続されたことがわかります。

図 196 : [Preferred Connection] オプションを使用した IP のインスタンシエート

dip_switches_4bits のような別のインターフェイスが選択されたら、ボード フローでは GPIO が既にデザインにインスタン

シエートされていることが認識されるので、GPIO の 2 つ目のチャネルが再利用されます。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 139

UG994 (v2014.4) 2014 年 11 月 19 日

Page 140: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

図 197 : 既にインスタンシエート済みの IP を共有可能なインターフェイスの接続

既にインスタンシエート済みの GPIO がコンフィギュレーションし直され、次の図のように GPIO の 2 つ目のチャネルが

使用されます。

図 198 : 2 つ目のチャネルを使用するようにコンフィギュレーションされた GPIO IP

linear_flash または spi_flash などの外部メモリ インターフェイスが選択される場合、それらの 1 つが使用されると、これら

のインターフェイスの 1 つしかこのボードでは使用できないので、それ以外のインターフェイスが使用できない状態にな

ります。この場合、bd キャンバスの spi_flash のようなその他のインターフェイスにドラッグすると、次のメッセージが表示さ

れます。

図 199 : 自動接続に関する警告メッセージ

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 140

UG994 (v2014.4) 2014 年 11 月 19 日

Page 141: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

ブロック デザインでの接続の完了 必要なインターフェイスがデザインで使用されるようになったら、次はプロセッサ (プロセッサ ベースのデザインの場合)

または AXI インターコネクト (エンベデッド以外のデザインの場合) をインスタンシエートして、デザインを終了します。

これには、キャンバス上で右クリックして [Add IP] をクリックします。IP カタログで、たとえば MicroBlaze プロセッサを選

択します。

図 200 :プロセッサをインスタンシエートしてデザインを終了

プロセッサがインスタンシエートされると、デザイン アシスタンスが使用できるようになります。

図 201 :デザイン アシスタンスを使用して接続を終了

[Run Block Automation] をクリックし、基本的なプロセッサ サブシステムをコンフィギュレーションします。プロセッサ サブ

システムが作成され、ブロック メモリ コントローラー、ブロック メモリ ジェネレーター、およびデバッグ モジュールなどのよ

く使用される IP が含まれます。これで [Run Connection Automation] をクリックすると、コネクション オートメーション機

能を使用してデザインの残りの IP を MicroBlaze プロセッサに接続できるようになります。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 141

UG994 (v2014.4) 2014 年 11 月 19 日

Page 142: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

IP インテグレーターでのボード フローの使用

図 202 : コネクション オートメーションを実行した接続の終了

ここから残りのプロセスは、第 2 章 IP ブロック デザインの作成で説明する IP インテグレーターでの設計に必要なプロセ

スと同じです。

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 142

UG994 (v2014.4) 2014 年 11 月 19 日

Page 143: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

付録 A その他のリソース

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

い。

http://japan.xilinx.com/support

ザイリンクス資料で使用されている技術用語については、次のザイリンクス用語集を参照してください。

http://japan.xilinx.com/company/terms.htm

ソリューション センター デバイス、ツール、IP のサポートについては、ザイリンクス ソリューション センターを参照してください。トピックには、デザイ

ン アシスタント、アドバイザリ、トラブルシュート ヒントなどが含まれます。

参考資料

Vivado® Design Suite の資料

(japan.xilinx.com/support/documentation/dt_vivado_vivado2014-1.htm)

Vivado Design Suite ユーザー ガイド

『Vivado Design Suite ユーザー ガイド : システム レベル デザイン入力』 (UG895)

『Vivado Design Suite ユーザー ガイド : デザイン フローの概要』 (UG892)

『Vivado Design Suite ユーザー ガイド : Vivado IDE の使用』 (UG893)

『Vivado Design Suite ユーザー ガイド : Tcl スクリプト機能の使用』 (UG894)

『Vivado Design Suite ユーザー ガイド : IP を使用した設計』 (UG896)

『Vivado Design Suite ユーザー ガイド : System Generator を使用したモデルベースの DSP デザイン』 (UG897)

『Vivado Design Suite ユーザー ガイド : エンベデッド ハードウェア デザイン』 (UG898)

『Vivado Design Suite ユーザー ガイド : 高位合成』 (UG902)

『Vivado Design Suite ユーザー ガイド : 制約の使用』 (UG903)

『Vivado Design Suite ユーザー ガイド : プログラムおよびデバッグ』 (UG908)

Page 144: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

付録 A その他のリソース

Vivado Design Suite チュートリアル

『Vivado Design Suite チュートリアル : デザイン フローの概要』 (UG888)

『Vivado Design Suite チュートリアル : IP を使用した設計』 (UG896)

『Vivado Design Suite チュートリアル : エンベデッド ハードウェア デザイン』 (UG940)

『Vivado Design Suite チュートリアル : 制約の使用』 (UG945)

『Vivado Design Suite チュートリアル : プログラムおよびデバッグ』 (UG936)

Vivado Design Suite ビデオ チュートリアル (japan.xilinx.com/training/vivado/index.htm)

その他の Vivado Design Suite 関連の資料

『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835)

『AXI リファレンス ガイド』 (UG761)

『Zynq-7000 All Programmable SoC PCB デザインおよびピン配置ガイド』 (UG933)

『Zynq-7000 All Programmable SoC ソフトウェア開発ガイド』 (UG821) を参照してください。

『UltraFast 設計手法 (Vivado Design Suite 用)』 (UG949)

UltraFast エンベデッド デザイン設計手法ガイド (UG1046)

その他の Vivado Design Suite 関連の資料

(japan.xilinx.com/support/documentation/dt_vivado_vivado2014-1.htm)

IP インテグレーターを使用した IP サブシステムの設計japan.xilinx.com 144

UG994 (v2014.4) 2014 年 11 月 19 日

Page 145: Vivado Design Suite · 2019-10-11 · 2014 年 11 月 19 日. 2014.4 . 第 2 章: にIP インテグレーターの割り込み処理を追加 第 6 章に. ILA または VIO デバッグ

付録 B 法的通知

法的通知 The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent permitted by a

pplicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED,

OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICUL

AR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of

any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, in

cidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a thir

d party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct an

y errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly

display the Materials without prior written consent.Certain products are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s T

erms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license issued

to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and l

iability for use of Xilinx products in such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#to

s.

© Copyright 2013-2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trad

emarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.

この資料に関するフィードバックおよびリンクなどの問題につきましては、[email protected] まで、または各ページの右下にある [フィードバック送信] ボ

タンをクリックすると表示されるフォームからお知らせください。フィードバックは日本語で入力可能です。いただきましたご意見を参考に早急に対応させていただきま

す。なお、このメール アドレスへのお問い合わせは受け付けておりません。あらかじめご了承ください。