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

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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

Vivado Design Suite ユーザー ガイド

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

UG994 (v2014.2) 2014 年 6 月 4 日

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

Page 2: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

改訂履歴

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

日付 バージョン 変更点

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

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

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

法的通知を付録 B に移動

2013 年 12 月 18 日 2013.4 技術的情報のアップデートなし。バージョン アップデートに合わせて再リリース

2013 年 10 月 2 日 2013.3 次のセクションを追加 : 第 3 章 - IP イ ン テ グ レ ー タ ー で の パ ラ メ ー タ ー 伝 搬 、 第 4 章 - IP インテグレーター デザインのデバッグ 第 5 章 – IP インテグレーター デザインのアップグレード 第 6 章 - IP インテグレーターでの非プロジェク ト モードの使用 第 7 章 - IP インテグレーター デザインのバージョン管理 付録 A - その他のリソース

2013 年 6 月 19 日 2013.2 初版

Page 3: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

目次

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

目次 ....................................................................................... 3

IP サブシステムの設計 ....................................................................... 7

はじめに .................................................................................................................................................................7

IP インテグレーターの基本操作 ............................................................... 8

概要 ........................................................................................................................................................................8

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

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

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

レイヤーの変更 ................................................................................................................................................10

ウィンドウ背景色の変更 ...................................................................................................................................11

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

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

接続 ..................................................................................................................................................................15

IP インテグレーターのブロック オートメーションおよびコネクション オートメーション機能 ...............................23

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

[Make Connections] オプションを使用したポート/ピンの接続 ........................................................................30

接続開始モードを使用した接続 .....................................................................................................................31

IP ブロックの並べ替え .....................................................................................................................................32

コピーと貼り付け...............................................................................................................................................32

階層の作成 ......................................................................................................................................................32

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

メモリ マップの作成 ..........................................................................................................................................35

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

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

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

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

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 3 UG994 (v2014.2) 2014 年 6 月 4 日

Page 4: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインのパッケージに関する制限 .....................................................................................................46

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

デザイン/シミュレーション ソースとして ELF ファイルを追加してから、ELF ファイルをエンベデッド オブジェ

クトに関連付ける方法 ......................................................................................................................................46

ELF ファイルのの追加および関連付けを一度に実行する方法 ....................................................................52

ブロック デザインをアウト オブ コンテキスト (OOC) として設定 ..........................................................................55

IP インテグレーターでのパラメーター伝搬 .................................................... 59

概要 ......................................................................................................................................................................59

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

よく使用される内部バス インターフェイス........................................................................................................60

I/O バス インターフェイス .................................................................................................................................60

特別な信号 ......................................................................................................................................................60

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

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

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

IP インテグレーター デザインのデバッグ ..................................................... 73

概要 ......................................................................................................................................................................73

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

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

ブロック デザインでのデバッグするネットのマーク .........................................................................................77

デザインの合成と ILA コアの挿入 ..................................................................................................................79

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

Tcl スクリプトを使用したプロジェクト内での IP インテグレーター デザインの作成 ................ 95

概要 ......................................................................................................................................................................95

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

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

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

概要 ......................................................................................................................................................................98

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

IP インテグレーター デザインのアップグレード .............................................. 100

概要 ....................................................................................................................................................................100

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 4 UG994 (v2014.2) 2014 年 6 月 4 日

Page 5: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

出力ファイルの再生成 ...................................................................................................................................105

HDL ラッパーの作成/変更 ............................................................................................................................106

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

前バージョンのVivado Design Suite からの Tcl 出力ファイルの使用 ..............................................................108

IP インテグレーター デザインのバージョン管理 .............................................. 109

概要 ....................................................................................................................................................................109

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

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

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

サードパーティ合成ツールと IP インテグレーターの使用 ...................................... 117

概要 ....................................................................................................................................................................117

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

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

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

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

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

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

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

IP インテグレーターでのボード フローの使用 ................................................ 126

概要 ....................................................................................................................................................................126

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

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

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

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

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

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

リファレンス .........................................................................................................................................................135

Vivado® Design Suite の資料 .........................................................................................................................135

Vivado Design Suite ユーザー ガイド ............................................................................................................135

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 5 UG994 (v2014.2) 2014 年 6 月 4 日

Page 6: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

Vivado Design Suite チュートリアル ...............................................................................................................135

その他の Vivado Design Suite 関連の資料 ..................................................................................................136

その他の Vivado Design Suite 関連の資料 ..................................................................................................136

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

法的通知 ............................................................................................................................................................137

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 6 UG994 (v2014.2) 2014 年 6 月 4 日

Page 7: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

はじめに

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

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

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

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

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

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

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

作できます (デザイン操作の精度向上目的)。

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

多くの信号と複数のバスが含まれ、これらはすべて接続に必要です。各信号またはバスが IP シンボル上で個

別に表示されると、シンボルが複雑に見えます。これらの信号およびバスをインターフェイスにまとめると、次のよ

うな利点があります。まず、IP インテグレーターまたは Tcl コマンドで単一の接続を実行すると、マスターからスレ

ーブへの接続が作成されます。この接続のグラフィック表示は単純な 1 つの接続になります。また、特定のイン

ターフェイスを検出するデザイン ルール チェック (DRC) が実行され、すべての信号が問題なく接続されている

かどうかが確認されます。

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

のシステム デザイン タスクが IP ごとまたはアプリケーション ドメインごとに最適化できます。IP インテグレーター

ではダイナミックなランタイム DRC を実行することで、IP インテグレーター デザインの IP 間の接続が互換性を

持ち、IP 自体が適切にコンフィギュレーションされるようになります。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 7 UG994 (v2014.2) 2014 年 6 月 4 日

Page 8: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

第 2 章 IP インテグレーターの基本操作

概要

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

プロジェクトの作成

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

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

ザインの作成方法の概要を示します。

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

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 8 UG994 (v2014.2) 2014 年 6 月 4 日

Page 9: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

次の図に示すように、ターゲット デバイスまたはザイリンクス ターゲット ボードを選択することもできます。 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 9 UG994 (v2014.2) 2014 年 6 月 4 日

Page 10: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

Flow Navigator の [IP Integrator] の下の [Create Block Design] をクリックし、新規ブロック デザインを作成しま

す。

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

これは、Tcl コマンドでは次のようになります。 create_bd_design “<your_design_name>”

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

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

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

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

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

レイヤーの変更

レイヤーを表示するには、図の画面の左上のアイコン (図の赤丸部分) をクリックします。[Attributes]、[Nets]、 [Interface Connections] チェック ボックスをオン/オフにすると、属性、ネット、インターフェイス接続などの表示/非表示を切り替えることができます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 10 UG994 (v2014.2) 2014 年 6 月 4 日

Page 11: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

ウィンドウ背景色の変更

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 11 UG994 (v2014.2) 2014 年 6 月 4 日

Page 12: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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 12 UG994 (v2014.2) 2014 年 6 月 4 日

Page 13: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターを使用した設計 キャンバス左側のボタンを使用すると、特定の動作を実行できます。

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

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

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

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

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

検索フィルターに IP 名の最初の何文字かを入力すると、それに一致する IP モジュールのみが表示されます。

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

拡大

縮小

画面に合わせて表示

エリアの選択

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

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

IP の追加

外部指定

ブロックのカスタマイズ

デザインの検証

レイアウトの再生成

検索

配線の最適化

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 13 UG994 (v2014.2) 2014 年 6 月 4 日

Page 14: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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 14 UG994 (v2014.2) 2014 年 6 月 4 日

Page 15: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

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

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

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

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

場合は、IP カタログをご自身のモニターで開くことができます。シングル モニターを使用している場合は、IP カタログをフロートさせて、図から離すことができます。メイン IP カタログから IP を追加する場合は、IP カタログから IP を選択して図にドラッグ アンド ドロップします。

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

ンには追加されません。

接続

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

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

ートを追加します。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 15 UG994 (v2014.2) 2014 年 6 月 4 日

Page 16: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターを使用した設計 IP インテグレーターでの接続は単純です。カーソルを IP ブロックのインターフェイスまたはピン コネクタの近くに

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

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

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

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

す。

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

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

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

ク マークが接続先に表示されます。

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

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 16 UG994 (v2014.2) 2014 年 6 月 4 日

Page 17: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

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

ターフェイスの接続を選択し、次に右クリックで [Make External] を選択します。Ctrl ボタンを押しながらピン

をクリックして [Make External] をクリックすると、複数のピンを外部 I/O ポートに接続できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 17 UG994 (v2014.2) 2014 年 6 月 4 日

Page 18: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 15 : 外部への接続

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

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

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

この機能は、クロック、リセット、uart_txd などのインターフェイス以外の信号を接続する際に使用します。 [Create Port] を使用すると、入力/出力、ビット幅、およびタイプ (clk、reset、data) などの指定がより詳細に制

御できます。 クロックの場合は、入力周波数を指定することすら可能です。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 18 UG994 (v2014.2) 2014 年 6 月 4 日

Page 19: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 16 : ポートの作成

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

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

適切なビット幅を選択すると、ビット ベクターも作成できます。タイプをクロックに選択する場合は、クロックの

周波数も指定できます。

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 19 UG994 (v2014.2) 2014 年 6 月 4 日

Page 20: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターを使用した設計 3. 外部に接続する 3 つ目の方法は、次の図のように右クリックしてから [Create Interface Port] をクリックする方

法です。

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

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

するために使用されます。たとえば、S_AXI は複数のザイリンクス IP のインターフェイス ポートです。このコマン

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

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 20 UG994 (v2014.2) 2014 年 6 月 4 日

Page 21: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

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

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 21 UG994 (v2014.2) 2014 年 6 月 4 日

Page 22: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 21 : 外部 AXI インターフェイスのポート プロパティのカスタマイズ

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 22 UG994 (v2014.2) 2014 年 6 月 4 日

Page 23: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

IP インテグレーターのブロック オートメーションおよびコネクション オートメーション機能

IP インテグレーターのブロック オートメーションおよびコネクション オートメーション機能を使用すると、基本的な

マイクロプロセッサ システムを含めたり、さまざまなブロック間の内部接続をしたり、外部インターフェイスへの接

続をしたりする際のプロセスが自動化されます。ブロック オートメーション機能は、Zynq プロセッシング システム 7、MicroBlaze プロセッサなどのマイクロプロセッサ、またはイーサネットなどのその他の階層 IP が IP インテグレ

ーターのブロック デザインにインスタンシエートされる場合に提供されます。次の図のように [Run Block Automation] をクリックすると、単純な MicroBlaze システムができます。

図 23 : [Run Block Automation] 機能

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

入力ができます。

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 23 UG994 (v2014.2) 2014 年 6 月 4 日

Page 24: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターを使用した設計 必要なオプションを指定したら、次の図のようにブロック オートメーション機能により基本的なシステムが自動的

に作成されます。

図 25 : ブロック オートメーション機能で作成された基本的なシステム

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

層ブロック、ローカル メモリ バス コントローラー、およびブロック メモリ ジェネレーター、Clocking Wizard、AXI インターコネクトおよび AXI 割り込みコントローラーなどを含む基本的な MicroBlaze システムが作成されます。デ

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

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

[Run Connection Automation] をクリックすると、インターフェイスおよびポートを外部 I/O ポートに接続するため

のアシスタンス機能が実行されます。

コネクション オートメーション機能を使用できるポート/インターフェイスは、次の図のようにリストされます。

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

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

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

ーション機能はデザイン内のポートを外部ポートに接続します。IP インテグレーターは、この後最適な物理制約

および該当する I/O ポートに必要なその他の I/O 制約を作成します。上記のデザインの場合、Proc Sys Reset IP を外部リセット ポートに接続し、Clocking Wizard を外部クロック ソースに接続する必要があります。上記で /proc_sys_reset_1/ext_reset_in オプションを選択した場合は、次の図のようなダイアログ ボックスが開きます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 24 UG994 (v2014.2) 2014 年 6 月 4 日

Page 25: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 27 : [Run Connection Automation] ダイアログ ボックス

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

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

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

同様に、コネクション オートメーションを実行して、デザインへの入力クロックを指定できます。

図 29 : コネクション オートメーションを実行した入力クロックの接続

[Run Connection Automation] ダイアログ ボックスでは、ザイリンクス ターゲット ボードに既に存在するクロックを

使用するか、カスタム クロックを使用するか指定できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 25 UG994 (v2014.2) 2014 年 6 月 4 日

Page 26: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 30 : CLK_IN1_D ピンとボード クロックの接続

ここまでで、別の IP をコネクション オートメーション機能が使用可能な IP インテグレーター デザインにインスタ

ンシエートしたとします。たとえば、AXI GPIO IP をデザインにインスタンシエートしたとします。これで [Run Connection Automation] をクリックすると、AXI インターコネクトを介して AXI GPIO の s_axi ポートを MicroBlaze プロセッサに接続できることが表示されます。

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

[Run Connection Automation] をクリックすると、GPIO のスレーブ AXI ポートを MicroBlaze マスターに接続可能

なことを示す次のようなポップアップ ウィンドウが表示されます。デザインにマスターが複数含まれる場合は、い

ずれかを選択できます。GPIO の S_AXI インターフェイスなどのスレーブ インターフェイスに対し、クロック接続

を指定することもできます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 26 UG994 (v2014.2) 2014 年 6 月 4 日

Page 27: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

イライトされます。

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

ザイリンクス ターゲット リファレンス プラットフォームを使用した場合は、I/O ポートの接続に関してより詳細な

アシスタンスが表示されます。次の図を参照してください。

図 34 : ザイリンクス ターゲット リファレンス プラットフォームで使用可能な詳細なアシスタンス

gpio ポートをクリックすると、ボードに関して使用可能な情報に基づき、次のようなオプションが表示されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 27 UG994 (v2014.2) 2014 年 6 月 4 日

Page 28: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 35 : ポート選択後に表示されるオプション

この場合、6 つの選択肢が表示されます。gpio ポートは、4 ビットの Dip Switch、7 ビットの LCD、8 ビットの LED、5 ビットのプッシュ ボタン、ボードの Rotary Switch、カスタム インターフェイスのいずれかに接続できま

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

図 36 : ボード I/O エレメントのデザインへの接続

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

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

ク デザインを開くと、[Signals] ビューが次のように表示されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 28 UG994 (v2014.2) 2014 年 6 月 4 日

Page 29: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

[Signals] ビューには、[Clocks] および [Resets] タブが含まれます。タブをクリックすると、デザインに含まれるクロ

ックおよびリセットがすべて表示されます。

図 38 : [Signals] ビューの [Clocks] および [Resets] タブ

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

は design_1_clk_wiz_1_0_clk_out1 で、周波数 100MHz のクロック出力 clk_out1 が異なる IP の複数のクロック

入力を起動しています。フォルダーからクロックを選択すると、Unconnected Clocks ブロック デザインで適切なク

ロック ポートがハイライトされます。選択した箇所を右クリックすると、複数のオプションが表示されます。この場

合、デザイン アシスタンス ([Run Connection Automation] オプション) が使用でき、Clocking Wizard の CLK_IN1_D 入力インターフェイスをボードのクロック ピンに接続するために使用できます。[Make Connection] オプションをクリックし、デザインの既存クロック ソースへ入力を接続することもできます。最後に、[Make

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 29 UG994 (v2014.2) 2014 年 6 月 4 日

Page 30: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターを使用した設計 Connection] オプションをクリックして外部ポートにピンを接続できます。コンテキストを図に切り替えたり、デザイ

ン違反を実行する、その他のオプションもあります。

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

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

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

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

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

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

[Make Connections] オプションを使用したポート/ピンの接続

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

できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 30 UG994 (v2014.2) 2014 年 6 月 4 日

Page 31: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 41 : [Make Connection] オプションを使用して未接続ポート/ピンへ接続

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

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

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

接続開始モードを使用した接続

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

実行できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 31 UG994 (v2014.2) 2014 年 6 月 4 日

Page 32: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 43 : 接続開始モードを使用した接続

上記の図の AXI BRAM Controller の s_axi_aclk ピンへ接続されると、接続開始モードにより、AXI IIC の s_axi_aclk ピンへの接続が提案されます。この方法を使用すると、同じソース ピンから複数の異なるデスティネ

ーションに 1 度に接続できます。

IP ブロックの並べ替え

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

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

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

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

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

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

り、ブロックの配置が保持されたまま、さまざまなブロックへの配線のみが修正されます。

コピーと貼り付け

図内でブロックをコピーして貼り付けるには、Ctrl + C および Ctrl + V を使用できます。

階層の作成

次の図に示すように、Ctrl を押しながらクリックして必要な IP ブロックを選択し、右クリックで [Create Hierarchy] をクリックすると、階層ブロックを作成できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 32 UG994 (v2014.2) 2014 年 6 月 4 日

Page 33: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

できます。空のレベルの階層を作成しておいて、後で既存の IP ブロックをその階層ブロックにドラッグすることも

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

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

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

を指定できます。

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

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 33 UG994 (v2014.2) 2014 年 6 月 4 日

Page 34: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

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

スを定義できます。IP インテグレーターのキャンバスで右クリックし、[Create Hierarchy] をクリックします。[Create Hierarchy] ダイアログ ボックスでは、階層の名前を指定します。空の階層が作成されたら、ブロック デザインは

次の図のようになります。

図 47 : 空の階層の作成

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 34 UG994 (v2014.2) 2014 年 6 月 4 日

Page 35: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

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

図 49 : 階層のピン インターフェイスへの IP のピン レベル接続

メモリ マップの作成

このデザインのアドレス マップを生成するには、[Address Editor] タブをクリックします。通常、アドレスはブロック デザインでスレーブをインスタンシエートすると自動的にマップされますが、[Auto Assign Address] ボタン (左側

一番下のボタン) をクリックしてもマップされます。アドレスを生成せずに IP インテグレーターから RTL を生成し

た場合、アドレスの自動割り当てを選択可能にするプロンプトが表示されます。アドレスは、[Offset Address] および [Range] 列に値を入力すると、手動で設定することもできます。

注記 : [Address Editor] タブはバス マスターとして機能する IP ブロック (次の図の場合、MicroBlaze プロセッサ) または外部バス マスター (IP インテグレーター外部) が図に含まれている場合にのみ表示さ

れます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 35 UG994 (v2014.2) 2014 年 6 月 4 日

Page 36: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 50 : [Address Editor] タブ

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

AXI マスターがブロック デザインの外部にあることがあります。これらの外部マスターは、通常 AXI Interconnect コアを使用してブロック デザインに接続されます。AXI Interconnect コアのポートを external に指定すると、アド

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 36 UG994 (v2014.2) 2014 年 6 月 4 日

Page 37: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

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

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

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

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

されますが、デザイン作成中に何らかの潜在的な問題が発生することもあります。たとえば、クロック ピンの周波

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

図 52 : デザインの検証

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

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 37 UG994 (v2014.2) 2014 年 6 月 4 日

Page 38: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

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

ブロック デザインを完了してデザインを検証したら、残す手順は 2 つです。まず、出力ファイルを生成する必要

があります。これは、すべての IP のソース ファイルと適切な制約が生成され、Vivado の [Sources] ビューから使

用できるようになってから実行します。プロジェクト作成時に選択したターゲット言語によって、適切なファイルが

生成されます。特定の IP のソース ファイルが指定したターゲット言語で生成できない場合、Tcl コンソールにそ

れを示すメッセージが表示されます。出力ファイルを生成するには、次の図のように Vivado の [Sources] ビュー

でブロック デザインを右クリックし、[Generate Output Products] をクリックします。

図 54 : [Generate Output Products] コマンド

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

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

を最上位 HDL ファイルにインスタンシエートします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 38 UG994 (v2014.2) 2014 年 6 月 4 日

Page 39: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターを使用した設計 Vivado IDE の [Sources] ビューでブロック デザインを右クリックして、[Create HDL Wrapper] をクリックしても、上

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

図 55 : HDL ラッパーの作成

[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 ディレクトリに含まれます。

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 39 UG994 (v2014.2) 2014 年 6 月 4 日

Page 40: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

プロジェクト外でのブロック デザインの作成 これで、デザインはエラボレーション、合成、インプリメンテーションできるようになりました。

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

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

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

たりする場合などがよくあります。

プロジェクト外でブロック デザインを作成するには、Flow Navigator の IP インテグレーターのドロップダウン リストから [Create Block Design] をクリックします。[Create Block Design] ダイアログ ボックスが開きます。[Create Block Design] ダイアログ ボックスでは、ブロック デザイン名とディレクトリを指定できます。[Directory] フィールド

のデフォルト値は <Local to Project> ですが、[Directory] フィールドをクリックして [Choose Location] をクリックす

ると、上書きできます。

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

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

のようにブロック デザインを処理します。ブロック デザイン ディレクトリ全体が選択したディレクトリにそれぞれの

下位構造を含めて作成されます。このブロック デザインを別のプロジェクトから開いたり、別のユーザーが開ける

ようにするには、bd ディレクトリ構造全体をそのまま維持しておく必要があります。

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

ビットストリームの作成前にソフトウェア開発を開始する場合は、デザイン生成後にハードウェア定義を SDK にエクスポートできます。これにより、デザインに使用される IP を理解するために SDK で必要とされる XML ファイ

ルがエクスポートされるほか、プロセッサの全体像からメモリ マップもエクスポートされます。ビットストリームが生

成されてデザインがエクスポートされたら、デバイスがダウンロードできるようになり、ソフトウェアがプロセッサ上

で実行できるようになります。

ブロック デザインの出力ファイルが生成されたら、ハードウェアをSDK にエクスポートするための関連情報すべ

てを含むアーカイブが作成されます。このアーカイブは <top_level_design_name>.hwdef という名前で、

<project_name>.runs/synth_1 のような合成ディレクトリに含まれます。Zynq プロセッサ ベース デザインの場合、

このアーカイブには次のファイルが含まれます。

• ps7_init.c

• ps7_init.h

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 40 UG994 (v2014.2) 2014 年 6 月 4 日

Page 41: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

• ps7_init.tcl

• hwdef.xml

• <bd_name>.hwh

MicroBlaze ベースのデザインの場合、このアーカイブには、次のファイルが含まれます。

• hwdef.xml

• <bd_name>.hwh

デザインがインプリメントされてビットストリームが生成されると、<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 ファイルがユーザーの指定したディレクトリにコピーされます。

ハードウェア定義を SDK にエクスポートするには、メニューから [File] → [Export] → [Export Hardware] をクリッ

クします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 41 UG994 (v2014.2) 2014 年 6 月 4 日

Page 43: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ハードウェア定義の SDK へのエクスポート [Export Hardware for SDK] ダイアログ ボックスが開きます。

図 59 : ハードウェア定義のエクスポート

上記の図には、いくつかのチェック ボックスがあります。[Include bitstream] チェック ボックスをオンにすると、ビッ

トストリームが SDK へエクスポートされるデータの一部として含まれます。[Export to] フィールドは、ユーザーが

指定します。通常のプロジェクト ベースのフローでは、デフォルトの <Local to Project> のままにしておきます。

プロジェクト ベースのフローの場合、ハードウェアは次のディレクトリにエクスポートされます。 project_name/project_name.sdk

ハードウェアがエクスポートされた後に SDK を起動するには、[File] → [Launch SDK] をクリックします。[Launch SDK] ダイアログ ボックスが表示されます。

図 60 : [Launch SDK] ページ

[Launch SDK] ダイアログ ボックスでは、次のようなフィールドを指定できます。通常のプロジェクト ベースのフロ

ーでは、[Exported location] および [Workspace] のどちらのフィールドもデフォルトのオプションの <Local to Project> のままにしておきます。ハードウェアをエクスポートする際に別のディレクトリを選択した場合、[Exported location] フィールドにはその特定のディレクトリが設定されます。[Workspace] フィールドは、必要に応じて設定

できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 43 UG994 (v2014.2) 2014 年 6 月 4 日

Page 44: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ハードウェア定義の SDK へのエクスポート SDK が起動されると、そのエクスポートしたハードウェア定義を使用してカスタム アプリケーション プロジェクトを

作成できます。SDK では、ターゲット ハードウェアに合わせて必要なドライバーおよびボード サポート パッケー

ジが作成されます。

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

IP インテグレーター デザインを作成し、インプリメントしてターゲット ハードウェアでテストした後、そのデザインを

パッケージにして、別のデザインで再利用可能な IP に変換しておくことができます。デザインをパッケージにす

ると、それが IP に変換されて、IP カタログから使用できるようになります。その IP は別のデザインの一部としてイ

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

ブロック デザインをパッケージにするには、Vivado IDE の [Sources] ビューでそのブロック デザインを右クリック

して、[Package Block Design] をクリックします。

図 61 : [Package Block Design] コマンド

[Package IP] ウィンドウが開きます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 44 UG994 (v2014.2) 2014 年 6 月 4 日

Page 45: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 62 : [Package IP] ウィンドウ

[Review and Package] をクリックし、[Package IP] をクリックします。パッケージされると、次の図のように IP が IP インテグレーター カタログに表示されるようになります。

図 63 : IP インテグレーター カタログのパッケージされたデザイン

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 45 UG994 (v2014.2) 2014 年 6 月 4 日

Page 46: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインのパッケージに関する制限 新しくパッケージしたデザインは、[Packaged BlockDiagram Designs] カテゴリの下の Vivado IP カタログにも表

示されます。このカテゴリ名は、ブロック デザインをパッケージにする際に変更できます。

図 64 : パッケージされたブロック デザインのカテゴリ

ブロック デザインのパッケージに関する制限

ブロック デザインをパッケージする際には、現在のところ、次の 2 つの制限があります。

• パッケージされたブロック デザインに MicroBlaze または Zynq プロセッサが含まれる場合、そのデザインが

別のプロジェクトにインスタンシエートされると、SDK にハードウェアをエクスポートする際に問題が発生しま

す。SDK では、パッケージされたブロック デザインに含まれるエンベデッド オブジェクトが元々認識されませ

ん。

• ブロック デザインがパッケージされると、下位レベルの IP の XCI ファイルへのリファレンスを含むパッケージ ファイル (.xml) が生成されます。このパッケージ デザインを今後のソフトウェア リリースに移植する際に、そ

の IP の新しいバージョンがあると、IP がロックされ、アップグレードで問題になることがあります。

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

MicroBlaze のようなマイクロプロセッサ ベースのデザインの場合、SDK (またはその他のソフトウェア開発ツー

ル) で生成される ELF ファイルをインポートして、Vivado IDE のブロック デザインと関連付けることができます。

この後、ELF の内容を含むビットストリームが Vivado IDE から作成され、ターゲット ハードウェアで実行できま

す。エンベデッド オブジェクトへ ELF ファイルを追加するには、2 つの方法があります。

デザイン/シミュレーション ソースとして ELF ファイルを追加してから、ELF ファイルをエ

ンベデッド オブジェクトに関連付ける方法

1. このタスクは、[Sources] ビューの [Design Sources] を右クリックして [Add Sources] をクリックすると簡単に実

行できます。デザイン ソースは Flow Navigator の [Project Manager] の下の [Add Sources] をクリックしても

追加できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 46 UG994 (v2014.2) 2014 年 6 月 4 日

Page 47: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 65 : [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 47 UG994 (v2014.2) 2014 年 6 月 4 日

Page 48: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 66 : [Add Sources] ダイアログ ボックス : [Add or Create Design Sources] ページ

4. [Add Source Files] ダイアログ ボックスが開きます。ELF ファイルを選択して、[OK] をクリックします。

図 67 : [Add Source Files] ダイアログ ボックス

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 48 UG994 (v2014.2) 2014 年 6 月 4 日

Page 49: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

5. [Add Sources] ダイアログ ボックスの [Add or Create Design Sources] ページには、プロジェクトへ追加された ELF ファイルが表示されます。[Copy sources into project] をオンにして ELF ファイルをプロジェクトにコピー

することもできます。 元の ELF ファイル ファイルで作業する場合はチェック ボックスをオフにしておきます。

この後、[Finish] をクリックします。

6. [Sources] ビューの ELF フォルダーに追加した ELF ファイルが表示されるようになります。

図 68 : ELF ファイルを含む [Sources] ビュー

7. 次にその ELF ファイルをマイクロプロセッサ デザインと関連付けます。これには、[Sources] ビューでブロック デザインを右クリックし、[Associate ELF Files] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 49 UG994 (v2014.2) 2014 年 6 月 4 日

Page 50: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 69 : [Associate ELF Files] コマンド

8. 合成およびシミュレーション用に ELF ファイルを関連付けることができます。該当する参照アイコン ([Design Sources] または [Simulation Sources] の下) をクリックして、新しく追加した ELF ファイルを参照します。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 50 UG994 (v2014.2) 2014 年 6 月 4 日

Page 51: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 70 : ELF ファイルとマイクロプロセッサの関連付け

[Associate ELF Files] ダイアログ ボックスが開きます。ファイルをハイライトして、[OK] をクリックします。

図 71 : 関連付ける ELF ファイルのハイライト

[Associated ELF File] 列に ELF ファイルが生成されたのを確認したら、[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 51 UG994 (v2014.2) 2014 年 6 月 4 日

Page 52: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 72 : ELF ファイルの確認

ELF ファイルのの追加および関連付けを一度に実行する方法

ELF ファイルの追加と関連付けを一気に実行するには、次の手順に従ってください。

1. [Sources] ビューでブロック デザインを右クリックし、[Associate ELF Files] をクリックします。

2. [Associate ELF Files] ダイアログ ボックスで、[Design Sources] または [Simulation Sources] の下のプロセッ

サ インスタンスの参照ボタンをクリックします。

図 73 : [Associate ELF Files] ダイアログ ボックスを使用した ELF ファイルの追加と関連付け

3. [Associate ELF Files] ダイアログ ボックスが開いたら、[Add Files] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 52 UG994 (v2014.2) 2014 年 6 月 4 日

Page 53: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 74 : ELF ファイルを追加するための [Add Files] ボタン

4. [Add Source Files] ダイアログ ボックスで E:F ファイルのあるフォルダーを指定します。ファイルを選択し、

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

図 75 : ELF ファイルのあるディレクトリの指定

5. [Associate ELF File] ダイアログ ボックスに戻って、新しく追加した ELF ファイルを選択して [OK] をクリックし

ます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 53 UG994 (v2014.2) 2014 年 6 月 4 日

Page 54: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 76 : 新規追加した ELF ファイルの関連付け

6. [Associate ELF Files] ダイアログ ボックスで新しい ELF ファイルがプロセッサ インスタンス フィールドに表示

されたことを確認し、[OK] をクリックします。

図 77 : 新規追加したファイルがプロセッサ インスタンスに関連付けられたことを確認

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 54 UG994 (v2014.2) 2014 年 6 月 4 日

Page 55: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインをアウト オブ コンテキスト (OOC) として設定

ブロック デザインをアウト オブ コンテキスト (OOC) として設定

階層デザイン フローを使用すると、デザインを小さな管理可能なブロックにパーティション分割して個別に処理

することができます。Vivado Design Suite では、パーティション分割されたモジュールを残りのデザインとは関係

なく、独立した階層のアウト オブ コンテキスト (OOC) でインプリメントできます。IP インテグレーターでは、ブロッ

ク デザインを合成可能なアウト オブ コンテキスト (OOC) モジュールとして設定でき、デザイン チェックポイント ファイルが作成されます。このようなブロック デザインは、より大きな Vivado デザインの一部として使用される場

合、デザインのほかの部分が変更されるたびに合成し直する必要がないので、ランタイムが大幅に改善します。

注意 : 独立階層 (OOC) モジュールはブロック デザイン全体に対してのみイネーブルにできます。ブロッ

ク デザインに含まれる IP を個別に選択して、それらを独立階層モジュールとして設定することはできませ

ん。

ブロック デザインを独立階層モジュールとして設定するには、ブロックを選択し、右クリックで [Set as Out-of-Context Module] を選択します。

図 78 : ブロック デザイン独立階層モジュールとして設定

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 55 UG994 (v2014.2) 2014 年 6 月 4 日

Page 56: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインをアウト オブ コンテキスト (OOC) として設定 [Set as Out-of-Context Module] ダイアログ ボックスが開き、ブロック デザインが独立階層モジュールとして合成

されることが示されます。[Use auto-generated blackbox stub for top-level synthesis] をオンにし、最上位合成に自

動生成されたブラックボックス スタブを使用することもできますし、ユーザーのカスタム スタブ ファイル (ブロック デザインをインスタンシエートするラッパー ファイル) を使用することもできます。

図 79 : [Set as Out-of-Context Module] ダイアログ ボックス

OOC 機能がブロック デザインでイネーブルになっている場合は、[Sources] ビューのブロック デザインの横のチ

ェック ボックスが図のようにハイライトされます。

図 80 : ブロック デザインが OOC モジュールとして設定されたかどうかの確認

これで、Flow Navigator から [Run Synthesis] を選択すると、ブロック デザインを合成できるようになります。

図 81 : OOC モジュールとして設定されたブロック デザインの合成を実行

合成を開始すると、[Design Runs] ビューで独立階層モジュールの進捗状況が確認できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 56 UG994 (v2014.2) 2014 年 6 月 4 日

Page 57: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインをアウト オブ コンテキスト (OOC) として設定

図 82 : OOC フローの [Design Runs] ビュー

合成 run が終了したら、合成されたネットリストとブロック デザインに必要な制約すべてを含めたアーカイブ ファ

イルであるデザイン チェックポイント ファイル (DCP) が作成されます。この DCP ファイルは、design_1_synth_1 run を右クリックして [Open Run Directory] を選択すると開くことのできる合成 run ディレクトリに含まれます。

図 83 : DCP ファイルを含む run ディレクトリを開くコマンド

run ディレクトリが Windows エクスプローラーで開きます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 57 UG994 (v2014.2) 2014 年 6 月 4 日

Page 58: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインをアウト オブ コンテキスト (OOC) として設定

図 84 : DCP ファイルを含む OOC モジュールの run ディレクトリ

ブロック デザインが合成済みネットリストとしてほかのデザインに追加する場合は、この DCP ファイルをブロック デザインがインスタンシエートされるプロジェクトに追加できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 58 UG994 (v2014.2) 2014 年 6 月 4 日

Page 59: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

第 3 章 IP インテグレーターでのパラメーター伝搬

概要

パラメーター伝搬は、IP インテグレーターで使用可能な最も優れた機能の 1 つです。この機能では、IP がデザ

インでどのように接続されているかに基づいて、パラメーターが自動的にアップデートされます。IP が特定の伝

搬規則を使用してパッケージされると、IP インテグレーターがこれらの規則を図の生成に合わせて実行します。

たとえば、次の図では、IP0 のデータ バス幅が 64 ビットで、その後に IP1 と IP2 が追加されて接続されていま

す。この場合、IP2 のデフォルトのデータ バス幅は 32 ビットです。パラメーター伝搬規則が実行されると、IP2 のバス幅が異なっていることがユーザーに通知されます。IP2 のデータ バス幅はパラメーターの変更を介して変更

できる場合は、IP インテグレーターで自動的に IP2 がアップデートされます。IP がその接続に基づいてプロパ

ティを同じ値にアップデートできない場合は、デザインに潜在的な問題があることを示すエラー メッセージが表

示されます。これは単純な例ですが、パラメーター伝搬機能をよく示しています。パラメーター伝搬で修正された

り、識別されるようなエラー タイプは、シミュレーションまで検出されないことがよくあります。

図 85 : パラメーター伝搬の概念

IP0 IP1 IP2

ユーザー指定の 幅 = 64

デフォルト幅 = 32

が伝搬された値

にアップデート

伝搬後は

入力幅 = 64

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 59 UG994 (v2014.2) 2014 年 6 月 4 日

Page 60: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

バス インターフェイス

バス インターフェイス

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

は多くの信号と複数のバスが含まれ、これらはすべて接続に必要です。IP インテグレーターの重要な機能の 1 つに、バス インターフェイスの論理グループを 1 つの IP から別の IP に、または IP から IP インテグレーター デザインのバウンダリまたは FPGA 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 60 UG994 (v2014.2) 2014 年 6 月 4 日

Page 61: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

バス インターフェイス

クロック クロック インターフェイスには、それに関連する次のようなパラメーターを含めることができます。これらのパラメー

ターは、デザイン生成プロセスで使用され、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 で管理され

ます。

クロック ネットのプロパティを確認するには、ソース クロック ポート/ピンを選択して、そのポート/ピンのプロパティ

を解析してください。

図 86 : IP インテグレーターでのクロック プロパティの解析

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 61 UG994 (v2014.2) 2014 年 6 月 4 日

Page 62: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

バス インターフェイス

図 87 : クロック プロパティ

これらのプロパティは、次の Tcl コマンドを入力してもレポートできます。 report_property [get_bd_intf_ports sys_diff_clock]

図 88 : Tcl コマンドを使用したクロック プロパティのレポート

ピンをダブルクリックすると、次のような設定ダイアログ ボックスで確認することもできます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 62 UG994 (v2014.2) 2014 年 6 月 4 日

Page 63: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

バス インターフェイス

図 89 : [Customize IP] ダイアログ ボックス

リセット このコンテナ バス インターフェイスには、次のパラメーターも含める必要があります。

• POLARITY : このパラメーターの有効な値は、ACTIVE_HIGH または ACTIVE_LOW で、デフォルトは ACTIVE_LOW です。

クロック ネットのプロパティを確認するには、リセット ポート/ピンを選択して、そのポート/ピンのプロパティを解析

してください。

図 90 : IP インテグレーターでのリセット プロパティの解析

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 63 UG994 (v2014.2) 2014 年 6 月 4 日

Page 64: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

バス インターフェイス

図 91 : リセット プロパティ

これらのプロパティは、次の Tcl コマンドを入力してもレポートできます。 report_property [get_bd_ports reset]

図 92 : Tcl コマンドを使用したリセット プロパティのレポート

割り込み このバス インターフェイスには、次のパラメーターが含まれます。

• SENSITIVITY : このパラメーターの有効な値は、LEVEL_HIGH、LEVEL_LOW、EDGE_RISING、および EDGE_FALLING で、デフォルトは LEVEL_HIGH です。

割り込みピンのプロパティを確認するには、次の図のようにピンを選択して、プロパティ ビューを確認します。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 64 UG994 (v2014.2) 2014 年 6 月 4 日

Page 65: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

バス インターフェイス

図 93 : IP インテグレーターでの割り込みプロパティの解析

図 94 : 割り込みプロパティ

これらのプロパティは、次の Tcl コマンドを入力してもレポートできます。 report_property [get_bd_pins /axi_uartlite_0/interrupt]

図 95 : Tcl コマンドを使用した割り込みプロパティのレポート

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 65 UG994 (v2014.2) 2014 年 6 月 4 日

Page 66: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

パラメーター伝搬の方法

クロック イネーブル クロック イネーブルに関連付けられたパラメーターは、REQ_HZ と PHASE の 2 つです。

パラメーター伝搬の方法

IP インテグレーターでは、[Validate Design] を実行するようにすると、パラメーター伝搬が実行されます。これに

は、次のいずれかを実行します。

• Vivado® IDE ツールバーの [Validate Design] をクリックします。

図 96 : Vivado ツールバーからのデザイン検証

• IP インテグレーター ツールバーの [Validate Design] をクリックします。

図 97 : IP インテグレーター ツールバーからのデザイン検証

• Vivado のメニューから[Tools] → [Validate Design] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 66 UG994 (v2014.2) 2014 年 6 月 4 日

Page 67: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 98 : Vivado IDE プルダウン メニューからのデザイン検証

• デザイン検証は、次の Tcl コマンドを入力しても実行できます。 validate_bd_design

この Tcl コマンドを実行すると、IP インスタンスのコンフィギュレーションとそれに接続されるその他のインスタンス

のコンフィギュレーションが同期されます。コンフィギュレーションの同期は、バス インターフェイス パラメーター

で実行されます。

IP インテグレーターのパラメーター伝搬は、主にインターフェイス パラメーターの割り当て強度の概念に従って

実行されます。インターフェイス パラメーターの強度には、USER、CONSTANT、PROPAGATED または DEFAULT を指定できます。ツールがパラメーター同士を比較する際は、常に強度の強いパラメーターが強度

の弱いパラメーターにコピーされます。

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

非プロジェクト モードの場合、IP のユーザー パラメーターはすべてユーザーが設定する必要がありますが、IP インテグレーターを使用する場合、パラメーター伝搬で自動アップデートされたユーザー パラメーターは IP をカ

スタマイズするダイアログ ボックスでは淡色表示になります。淡色表示は、IP のそのパラメーターをユーザーが

直接設定するべきではなく、自動的にツールで入力されることを意味します。

自動入力される値が最適な値でないことがあります。このような場合、これらの伝搬された値を上書きできること

があります。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 67 UG994 (v2014.2) 2014 年 6 月 4 日

Page 68: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

カスタマイズ GUI のパラメーター パラメーター伝搬には、次の 4 つのようなタイプがあります。

• 自動的に計算されるパラメーター : IP インテグレーターで自動的に計算されるパラメーターで、上書きする

ことはできません。たとえば、次の図の [Ext Reset Logic Level] パラメーターは淡色表示になっており、その

横に (Auto) と記述されています。 これは、ユーザーが値を変更できないことを意味します。

図 99 : 自動的に計算されるパラメーターの例

• 上書き可能なパラメーター : 上書きができるパラメーターもあります。たとえば、次の LMB BRAM Controller コアの [SLMB Address Decode Mask] は変更できます。スライダー ボタンの上にカーソルを置くと、このパラ

メーターはシステムで管理されていますが、ボタンを [Auto] から [Manual] に切り替えると、変更が可能であ

ることが表示されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 68 UG994 (v2014.2) 2014 年 6 月 4 日

Page 69: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 100 : 上書き可能なパラメーターの例

• ユーザーの設定可能なパラメーター : ユーザーにしか設定できないパラメーターで、ユーザーが設定する

べきものです。

図 101 : ユーザーのコンフィギュレーション可能なパラメーターの例

• 定数 : 誰も設定できないパラメーターです。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 69 UG994 (v2014.2) 2014 年 6 月 4 日

Page 70: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

パラメーター不一致の例

パラメーター不一致の例

次は、クロック ピンの FREQ_HZ ピンのパラメーター不一致の例です。このエラーはデザインが検証されると表

示されます。

図 102 : ソースおよびデスティネーション間の FREQ_HZ プロパティの不一致

この例では、周波数が S01_AXI ポートと AXI Interconnect コアの S_AXI インターフェイス間で違っています。

図 103 : ポートと AXI Interconnect のインターフェイス ピン間の周波数の不一致

S01_AXI ポートの周波数は、プロパティ ビューに表示されるように 500MHz ですが、AXI Interconnect の S01_AXI インターフェイスの周波数は 50MHz に設定されています。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 70 UG994 (v2014.2) 2014 年 6 月 4 日

Page 71: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

パラメーター不一致の例

図 104 : プロパティ ビューでのポートの周波数の変更

このタイプの問題は、プロパティ ビューで FREQ_HZ プロパティを 50000000 に設定して周波数を変更すると、

簡単に修正できます。また、S01_AXI ポートをダブルクリックし、カスタマイズ ダイアログ ボックスの [Frequency] フィールドで正しい周波数を設定しても修正できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 71 UG994 (v2014.2) 2014 年 6 月 4 日

Page 73: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

第 4 章 IP インテグレーター デザインのデバッグ

概要

インシステム デバッグを使用すると、ターゲット ハードウェアのデザインをリアルタイムにデバッグできます。これ

は、デザインを完了させるための基本的な手順です。シミュレータでは再現するのがかなり難しい場合が常にあ

ります。このため、問題を FPGA でデバッグする必要があります。この手順では、特別なデバッグ ハードウェアを

使用してデザインに機能を配置して、デザインを監視および制御できるようにします。デバッグ プロセスが終了

したら、この機能または特別なハードウェアを削除して、パフォーマンスを向上させて、ロジックを削減させること

ができます。

IP インテグレーターでは、デザインをデバッグする機能が提供されています。 これについては、次のセクション

で説明します。ここでは、HDL インスタンシエーション フローおよびネットリスト挿入フローの 2 つのフローにつ

いて説明します。プリファレンスとデバッグするネット/信号のタイプによってフローを選択してください。たとえば、

MicroBlaze または Zynq プロセッサのクロストリガー機能を使用してハードウェア/ソフトウェア協調検証を実行す

る場合は、HDL インスタンシエーション フローを使用でき、I/O ポートおよび内部ネットを解析する場合は、ネッ

トリスト挿入を使用できます。ほとんどの場合、どちらのフローも組み合わせて使用してデザインをデバッグしま

す。

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

IP インテグレーター デザインでは Integrated Logic Analyzer (ILA) をインスタンシエートして、プローブする IlA へのネットを接続できます。ILA は次の手順でインスタンシエートできます。

1. ブロック デザイン キャンバスで右クリックして、[Add IP] をクリックします。

図 106 : [Add IP] コンテキスト メニュー

2. IP カタログで ILA を検索フィールドに入力し、ILA コアをダブルクリックし、IP インテグレーター キャンバス

にそれをインスタンシエートします。これで、ILA コアが IP インテグレーター キャンバス上にインスタンシエ

ートされます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 73 UG994 (v2014.2) 2014 年 6 月 4 日

Page 74: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 107 : ILA コアのインスタンシエート

3. ILA コアをダブルクリックしてコンフィギュレーションし直します。[Re-customize IP] ダイアログ ボックスが開き

ます。

図 108 : ILA コアを含む [Re-customize IP] ダイアログ ボックス

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 74 UG994 (v2014.2) 2014 年 6 月 4 日

Page 75: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターの HDL インスタンシエーション フローの使用 [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] を必要な値に設定できます。この値は、監視

する必要のある信号数に設定する必要があります。

図 109 : [Monitor Type] を [Native] に設定

上記の図では、[General Options] タブでプローブ数が 2 に設定されています。[Probe_Ports] タブの下には 2 つのポートが表示されています。これらのポートの幅は必要な値に設定できます。たとえば、32 ビット バスを監視

する場合、Probe 0 の [Probe Width] は 32 に設定します。ILA がコンフィギュレーションされたら、その変更が IP インテグレーター キャンバス上に反映されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 75 UG994 (v2014.2) 2014 年 6 月 4 日

Page 76: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 110 : [Re-customize IP] ダイアログ ボックスでの変更後の ILA コア

4. IILA が必要に応じてコンフィギュレーションされると、IP インテグレーターのキャンバス上で ILA のピンへの

接続ができるようになります。

図 111 : AXI および AXI 以外の信号への ILA のインスタンシエート

注意 : デバッグする必要のある I/O ポートへピンが接続されたら、[Mark Debug] を使用してデバッグする

ネットをマークします。これについては、次のセクションで説明します。

5. この後、合成、インプリメンテーション、ビットストリームの生成へ進みます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 76 UG994 (v2014.2) 2014 年 6 月 4 日

Page 77: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

このフローでは、ブロック デザインで解析するネットをマークします。ブロック デザインでデバッグするネットをマ

ークしておくと、コード記述中およびフロー後半でデバッグをオン/オフにする際に、デバッグ信号の識別をさら

に細かく制御できます。

ブロック デザインでのデバッグするネットのマーク

1. ブロック デザインでデバッグするネットをマークするには、そのネットを右クリックし、[Mark Debug] をクリック

します。

図 112 : デバッグするネットのマーク

ネットをデバッグ用にマークすると、ブロック デザインのそのネットの一番上に小さなバグ アイコンが表示される

ようになります。バグ アイコンは、[Design Hierarchy] ビューのデバッグされるネットにも表示されます。

図 113 : デバッグ用にマークされたネットの識別

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 77 UG994 (v2014.2) 2014 年 6 月 4 日

Page 78: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

ヒント : デバッグするネットを複数マークするには、それらのネットを一緒に選択して右クリックし、[Mark Debug] をクリックします。

2. 出力ファイルは、Flow Navigator の [Generate Block Design] をクリックするか、ブロック デザインを [Sources] ビューで右クリックして [Generate Output Products] をクリックすると生成できます。

図 114 : [Generate Output Products] コマンド

3. [Generate Output Products] ダイアログ ボックスで [Generate] をクリックします。

図 115 : [Generate Output Products] ダイアログ ボックス

4. デバッグするネットをマークすると、そのネットに MARK_DEBUG 属性が付きます。 これは、生成される最

上位 HDL ファイルで確認できます。この属性が付いていると、Vivado® ツールでそのネットが最適化された

り、名前が変更されたりしなくなります。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 78 UG994 (v2014.2) 2014 年 6 月 4 日

Page 79: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 116 : 生成された HDL ファイルでの MARK_DEBUG 属性

デザインの合成と ILA コアの挿入

1. 次は、Flow Navigator の [Synthesis] の下の [Run Synthesis] をクリックしてデザインを合成します。

図 117 : デザインの合成

2. 合成が終了したら、[Synthesis Completed] ダイアログ ボックスが表示されます。ネットリストを開く [Open Synthesized Design] をオンにして、[OK] をクリックします。

図 118 : [Synthesis Completed] ダイアログ ボックス

3. [Schematic] ビューと [Debug] ビューが開きます。GUI の一番下に [Debug] ビューが開いていない場合は、

メニューから [Windows] → [Debug] をクリックして開くことができます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 79 UG994 (v2014.2) 2014 年 6 月 4 日

Page 80: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 119 : Vivado IDE の [Schematic] および [Debug] ビュー

4. デバッグ用にマークしたネットはすべて [Debug] ビューの [Unassigned Debug Nets] フォルダーの下に表示

されます。これらのネットは、Integrated Logic Analyzer のプローブに接続する必要があります。次は、ILA コアを挿入し、これらの割り当てられていないネットを ILA のプローブに接続する手順です。[Debug] ビューの

ツールバーの [Set up Debug] をクリックします。または、メニューから [Tools] → [Set up Debug] をクリックし

ます。

図 120 : [Set up Debug] ボタン

5. Set up Debug ウィザードが開きます。[Next] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 80 UG994 (v2014.2) 2014 年 6 月 4 日

Page 81: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 121 : [Set up Debug] ダイアログ ボックス

6. [Specify Nets to Debug] ページが表示されます。このページでは、デバッグするネットの一部またはすべて

を選択できます。すべての信号は ILA の同じクロックに関連付けられる必要があります。クロック ドメインの

関連付けがツールによって検出できなかった場合は、[Clock Domain] 列で [undefined] と指定されているネ

ットすべてを選択して、手動でクロック ドメインに関連付ける必要があります。

注意 : デバッグするインターフェイスすべてをマークする必要はありますが、目的がデバイス リソース使用

量の確認の場合は、デバッグ コアを設定する際、デバッグに必要ないネットは削除できます。

注記 : 各クロック ドメインに 1 つの ILA が [Set up Debug] ウィザードで推論されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 81 UG994 (v2014.2) 2014 年 6 月 4 日

Page 82: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 122 : デバッグするネットの一部またはすべての選択

[Clock Domain] 列で [undefined] になっている信号にクロック ドメインを関連付けるには、該当するネットすべて

を選択して、右クリックで [Select Clock Domain] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 82 UG994 (v2014.2) 2014 年 6 月 4 日

Page 83: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 123 : [Select Clock Domain] コマンド

7. [Select Clock Domain] ダイアログ ボックスで該当するネットのクロックを選択し、[OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 83 UG994 (v2014.2) 2014 年 6 月 4 日

Page 85: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 125 : 必要なクロック関連付けをした後の [Specify Nets to Debug] ダイアログ ボックス

9. [ILA (Integrated Logic Analyzer) General Options] ページで、データをトリガーおよびキャプチャするための

オプションを選択したら、[Next] をクリックします。

図 126 : ILA でのトリガーおよびキャプチャ モードの指定

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 85 UG994 (v2014.2) 2014 年 6 月 4 日

Page 86: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターのネットリスト挿入フローの使用 アドバンス トリガー機能を使用すると、トリガー メカニズムをさらに制御できます。[Enable advanced trigger mode] をオンにすると、ランタイム時にコンフィギュレーション可能なトリガー ステート マシン言語をイネーブルにできま

す。各ステートを分岐するには 3 つの方法があり、ステート マシンの一部として使用可能なステートは 16 ありま

す。アドバンス トリガー機能の一部として、4 つのカウンターと 4 つのプログラマブル カウンターが使用可能で、

アナライザーで表示可能です。

キャプチャ制御機能を使用すると、基本的なデータ キャプチャだけでなく、条件にあったデータのみをキャプチ

ャすることができます。これにより、不必要な BRAM スペースが使用されることがなくなり、効率的なソリューショ

ンが提供されます。

[Set up Debug Summary] ページですべての情報が正しいことを確認したら、[Finish] をクリックします。

図 127 : Set up Debug サマリ

ILA コアが挿入された後の [Debug] ビューは次のようになります。すべてのバス (およびシングルビットのネット) が別のプローブに割り当てられていることがわかります。プローブ情報には、その特定のプローブに割り当てら

れ た 信 号 の 数 も 表 示 さ れ ま す 。 た と え ば 、 次 の 図 の 場 合 、 probe0 に は 32 個 の 信 号 (microblaze_1_axi_periph_m02_axi_WDATA の 32 ビット) が割り当てられています。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 86 UG994 (v2014.2) 2014 年 6 月 4 日

Page 87: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 128 : ILA コアが挿入された後の [Debug] ビュー

10. これで、デザインをインプリメントしてビットストリームを生成する準備が整いました。Flow Navigator の [Program and Debug] の下の [Generate Bitstream] をクリックします。

図 129 : ILA コア挿入後のビットストリームの生成

11. ILA コアを挿入することでネットリストに変更を加えたので、ビットストリームを生成する前にデザインを保存

するかどうか尋ねるダイアログ ボックスが表示されます。

図 130 : ILA コア挿入後の変更されたプロジェクトを保存するかどうか尋ねるダイアログ ボックス

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 87 UG994 (v2014.2) 2014 年 6 月 4 日

Page 88: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

IP インテグレーターのネットリスト挿入フローの使用 この段階でデザインを保存して、アクティブな制約ファイルがある場合はそれに適切な制約が書き込まれるよう

にするか、新しい制約ファイルを作成します。次の図のように、制約ファイルには、合成済みネットリストに ILA コアを挿入するために使用されたすべてのコマンドが含まれます。

図 131 : コア挿入のための XDC コマンドを表示した制約ファイル

プロジェクトを保存する利点は、デバッグ用にマークされた信号が元のブロック デザインに残ったままになり、合

成後に手動で ILA コアを挿入する必要がないことです (これらの制約により処理されるので)。このため、この後

デザイン変更を繰り返しても、手動でコアを挿入する必要はありません。

デバッグ用ネットをさらに追加する場合 (またはデバッグ用のネットのマークを解除する場合) は、合成済みネット

リストを開いて、Set up Debug ウィザードで適切な変更を加える必要があります。

コアの挿入後にプロジェクトを保存しなかった場合は、制約ファイルにそれらの制約は含まれないので、この後

デザイン変更を繰り返す際に合成済みネットリストに ILA コアを手動で挿入する必要があります。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 88 UG994 (v2014.2) 2014 年 6 月 4 日

Page 89: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

1. ビットストリームが生成されると、[Bitstream Generation Completed] ダイアログ ボックスが開きます。[Open Hardware Manager] をオンにして、[OK] をクリックします。

図 132 : ビットストリーム生成後に Hardware Manager を開くオプション

2. [Hardware Manager] ウィンドウの [Open a new hardware target] リンクをクリックします。

図 133 : ハードウェア ターゲットへの接続

3. Hardware Manager が開きます。[Open a new hardware target] をクリックします。[Open New Hardware Target] ダイアログ ボックスが開きます。[Next] をクリックします。

4. 次に、[Hardware Sever Settings] ページで [Local Server] に接続するか [Remote Server] に設定するかを指

定します。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 89 UG994 (v2014.2) 2014 年 6 月 4 日

Page 90: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 134 : CSE サーバー名

注記 : 接続速度によって、10 ~ 15 秒程度かかります。

5. リモート サーバーに接続する場合は、[Host name] および [Port] を指定します。[Next] をクリックします。

図 135 : リモート サーバーに接続する場合のホスト名とポート名の指定

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 90 UG994 (v2014.2) 2014 年 6 月 4 日

Page 91: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ターゲット ハードウェアへの接続 6. cse_server に接続されるターゲットが複数ある場合は、[Select Hardware Target] ページに複数のエントリが

表示されます。この例の場合、1 つしかターゲットはないので、次の図のように表示されます。[Next] をクリッ

クします。

図 136 : ハードウェア ターゲットの選択

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 91 UG994 (v2014.2) 2014 年 6 月 4 日

Page 92: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ターゲット ハードウェアへの接続 7. 次のの [Open Hardware Target Summary] ページで [Finish] をクリックします。

図 137 : [Open Hardware Target Summary] ページ

8. ハードウェアへの接続が完了するまで待ちます。ハードウェアの接続中は次のようなダイアログ ボックスが表

示されます。

図 138 : [Open Hardware Target] ダイアログ ボックス

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 92 UG994 (v2014.2) 2014 年 6 月 4 日

Page 93: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ターゲット ハードウェアへの接続 ハードウェア ターゲットへ接続されると、次のようなダイアログ ボックスが表示されます。

注記 : [Debug] ビューの [Hardware] タブには、ハードウェア ターゲットと JTAG チェーンで検出された XC7K325T デバイスが表示されます。

図 139 : アクティブなターゲット ハードウェア

9. 次に、前に作成した .bit ビットストリーム ファイルを使用して XC7K325T デバイスをプログラムします。 次の

ように XC7K325T デバイスを右クリックし、[Program Device] をクリックします。

図 140 : アクティブなターゲット ハードウェアのプログラム

10. 次の図のように、[Program Device] ダイアログ ボックスで作業しているデザインの .bit ファイルが正しく設定

されているかどうか確認したら、[OK] ボタンをクリックしてデバイスをプログラムします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 93 UG994 (v2014.2) 2014 年 6 月 4 日

Page 94: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 141 : ダウンロードするビットストリーム ファイルの選択

注記 : プログラムが終了するのを待ちます。これには、数分かかります。

[Debug] ビューの [Hardware] タブで ILA コアが検出されることを確認します。

図 142 : ILA コアの検出

Integrated Logic Analyzer の画面が表示されます。

図 143 : Vivado の Integrated Logic Analyzer のウィンドウ

プログラムおよびデバッグの詳細については、『Vivado Design Suite チュートリアル : プログラムおよびデバッグ』 (UG936) を参照してください。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 94 UG994 (v2014.2) 2014 年 6 月 4 日

Page 95: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

第 5 章 Tcl スクリプトを使用したプロジェクト内での IP インテグレーター デザインの作成

概要

通常は、Vivado IDE の GUI 環境のプロジェクト ベース フローで新しいデザインを作成します。最初のデザイン

を作成したら、GUI のスクリプト フローまたはバッチ モードを使用してデザインを作成し直すことができます。本

章では、ブロック デザインのスクリプト フローを作成する方法について説明します。

Vivado IDE GUI でのデザイン作成

本書の第 2 章の手順に示すように、Vivado IDE GUI でプロジェクトと新しいブロック デザインを作成します。ブ

ロック デザインが完了したら、キャンバスには次の図のようにデザインが含まれます。

ブロック デザインが開いた状態で、Tcl コンソールに次のコマンドを入力します。 write_bd_tcl <path to file/filename>

これにより、ブロック デザインを作成し直すために呼び出すことができる Tcl ファイルが作成されます。この Tcl ファイルには、それが作成された Vivado ツールのバージョンに関する情報が埋め込まれているので、別の Vivado Design Suite リリースでこのファイルを使用しないでください。Tcl ファイルには、ブロック デザインに含ま

れるすべての IP と、それらのコンフィギュレーションおよび接続に関する情報も含まれます。

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

プロジェクト設定全体は、write_project_tcl コマンドを使用すると保存できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 95 UG994 (v2014.2) 2014 年 6 月 4 日

Page 96: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

Tcl ファイルへの Vivado プロジェクト情報の保存 write_project_tcl <path to file/filename>

ブロック図を含む Vivado プロジェクトの場合、write_project_tcl コマンドから生成された Tcl ファイルは次のよう

になります。

図 144 : write_project_tcl コマンドを使用して生成された Tcl ファイルからのコード

上記の Tcl ファイルのハイライト部分では、ブロック デザイン ファイル (.bd) が明示的に読み込まれています。ブ

ロック デザインを作成し直さず、既に作成されたブロック図を読み込むだけの場合は、上記のコード行を変更す

る必要はありませんが、ブロック デザインを作成し直す必要があることもあります。この目的の場合、

write_project_tcl コマンドを使用して生成された Tcl ファイルは、次のように変更できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 96 UG994 (v2014.2) 2014 年 6 月 4 日

Page 97: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 145 : 出力ファイルを使用してブロック デザインを作成し直す Tcl ファイルのコード部分

上記のコード部分に示すように、write_project_tcl ファイルからの Tcl ファイルを変更して、write_bd_tcl コマン

ドを使用して作成された出力ファイルを読み込むようにします。これにより、ブロック デザインは Tcl ファイルが実

行されるたびに作成し直されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 97 UG994 (v2014.2) 2014 年 6 月 4 日

Page 98: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

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

概要

非プロジェクト モードは、デザイン データを自身で管理したり、デザイン ステートをトラックするユーザー向けで

す。このフローの場合、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]

プロジェクトが作成されたら、ブロック デザインのソース ファイルをプロジェクトに追加できます。ソース ファイル

は、次のいずれかの方法で追加できます。たとえば、プロジェクト モードで作成した既存のブロック デザインが

あり、そのブロック デザインのディレクトリ構造全体が変更されていないと仮定した場合、次のように read_bd tcl コマンドを使用してブロック デザインを追加できます。

Vivado% read_bd <absolute path to the bd file>

注意 : プロジェクト設定 (ボード、パーツ、ユーザー リポジトリ) は .bd ファイルが作成された元のプロジ

ェクトのプロジェクト設定と同じである必要があります。同じにしないと、ブロック デザイン内の IP がロッ

クされます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 98 UG994 (v2014.2) 2014 年 6 月 4 日

Page 99: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

非プロジェクト モードのフロー作成 ブロック デザインが問題なく追加されたら、最上位 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 ファイルが作成され、ソース リストに追加されます。

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 にエクスポートする場合は、次のコマンドを使用してください。 vivado% export_hardware [get_files <Path to bd file>] -dir <Absolute Export Directory Path>

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 99 UG994 (v2014.2) 2014 年 6 月 4 日

Page 100: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

第 7 章 IP インテグレーター デザインのアップグレード

概要

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 version] がオンになっています。この [Automatically upgrade for the current version] をオンにする

と、前のバージョンからのデザインがアップグレードされますが、その前に別の名前でプロジェクトを保存して

おくことをお勧めします。これには、[Open project in read-only mode] をオンにして [OK] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 100 UG994 (v2014.2) 2014 年 6 月 4 日

Page 101: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 146 : 読み出し専用モードでプロジェクトを開くオプション

4. [Project is Read-Only] ダイアログ ボックスが開きます。[Save Project] ボタンをクリックします。

図 147 : プロジェクトの保存

5. [Save Project As] ダイアログ ボックスが開いたらプロジェクト名を入力して、[OK] をクリックします。

図 148 : プロジェクト名の指定

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 101 UG994 (v2014.2) 2014 年 6 月 4 日

Page 102: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

6. メニューから [Tools] → [Report] → [Report IP Status] をクリックします。

図 149 : IP ステータスのレポート

7. デザイン内の IP で主なバージョン変更があった場合は、次のようなメッセージが表示されます。[OK] をクリ

ックします。

図 150 : IP のバージョンが変更になったことを通知する [Report IP Status] ダイアログ ボックス

[IP Status] ビューでさまざまな列を確認し、IP ステータス レポートに慣れておいてください。+ マークをクリックし

てブロック デザインを展開し、ブロック デザイン内の IP コアの変更点を確認してください。ブロック デザイン内の

一部の IP だけを選択してアップグレードし、残りは古いバージョンのままにしておくということはできません。

図 151 : [IP Status] ビュー

[IP Status] ビューの一番上には、デザインのサマリが表示されます。ここには、現バージョンにデザインをアップ

グレードにするためにいくつの変更が必要だったかがレポートされます。レポートされる変更は、[Major

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 102 UG994 (v2014.2) 2014 年 6 月 4 日

Page 103: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

プロジェクト モード フローでのブロック デザインのアップグレード Changes]、[Minor Changes]、[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] リンクをクリックすると、変更の詳細が確認できます。

図 152 : [Change Log] 列の [More Info] リンクをクリックして変更ログを確認

[Recommendation] 列には、IP をアップグレードするように選択する前に理解しておくべき変更点が記述されま

す。

8. 変更点とデザインへの影響を理解したら、[Upgrade Selected] をクリックします。

図 153 : IP のアップグレード

9. アップグレードが終了したら、アップグレード中に表示されたクリティカル警告およびその他のメッセージを確

認してください。

デザインに複数の図が含まれる場合、[IP Status] ビューには次の図のようにすべての図の IP のステータス

が表示されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 103 UG994 (v2014.2) 2014 年 6 月 4 日

Page 104: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 154 : 複数の図を含む場合の [IP Status] ビュー

[Upgrade Selected] をクリックすると、すべてのブロック図がデザインでアップデートされます (ブロック図が

アップグレードするように選択されている場合)。

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

ツールバーの [Validate Design] をクリックします。

図 155 : デザイン ルール チェックの実行

ブロック デザイン ツールバーで [Validate Design] アイコン をクリックすることもできます。

デザイン ルール違反がなければ、次のようなメッセージが表示されます。

図 156 : [Validate Design] ダイアログ ボックス

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 104 UG994 (v2014.2) 2014 年 6 月 4 日

Page 105: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

出力ファイルの再生成

1. Vivado の [Sources] ビューでブロック図を右クリックし、[Generate Output Products] をクリックします。

図 157 : [Sources] ビューからの出力ファイルの生成

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

生成できます。

図 158 : [Generate Block Design] をクリックして出力ファイルを生成

2. [Generate Output Products] ダイアログ ボックスで [Generate] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 105 UG994 (v2014.2) 2014 年 6 月 4 日

Page 106: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 159 : [Generate Output Products] ダイアログ ボックス

HDL ラッパーの作成/変更

前のバージョンでデザインの HDL ラッパー ファイルを作成した場合は、デザイン変更に合わせてそれを作成し

直す必要があります。Vivado ツールで最上位ラッパーが作成および管理されるオプションを選択した場合、ラッ

パー ファイルはブロック デザインの生成時または前のセクションで定義された出力ファイルの生成時にアップデ

ートされます。HDL ラッパー ファイルを手動で変更する場合は、その HDL ラッパーに必要なアップデートを手

動で実行する必要があります。

1. Vivado の [Sources] ビューでブロック図を右クリックし、[Create HDL Wrapper] をクリックします。

図 160 : [Create HDL Wrapper] コマンド

2. [Create HDL Wrapper] ダイアログ ボックスが開きます。この段階では、編集可能なラッパー ファイルを作成

するか、Vivado ツールで自動的にラッパー ファイルが作成されるようにするかの 2 つの選択肢があります。

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

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 106 UG994 (v2014.2) 2014 年 6 月 4 日

Page 107: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

3. インプリメンテーションを続けます。

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

非プロジェクト モード フローを使用した前のリリースからの既存プロジェクトを開き、デザインを現バージョンの 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_name.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_wrapper.v update_compile_order -fileset sources_1 # Continue through implementation …

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 107 UG994 (v2014.2) 2014 年 6 月 4 日

Page 108: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

前バージョンの Vivado Design Suite からの Tcl 出力ファイルの使用

前バージョンのVivado Design Suite からの Tcl 出力ファイルの使用

バージョンの異なる Vivado ツール間で write_bd_tcl コマンドからの出力ファイルを使用するのは、推奨されま

せん。これらのファイルは特定の Vivado Design Suite バージョン内で作成されて使用される必要があります。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 108 UG994 (v2014.2) 2014 年 6 月 4 日

Page 109: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

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

概要

本章では、プロジェクト モードおよび非プロジェクト モード両方の 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 スクリプト機能をサポート

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 109 UG994 (v2014.2) 2014 年 6 月 4 日

Page 110: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

ブロック デザインには、GUI 環境でグラフィックを使用して作成された複数の IP が含まれます。プロジェクト モード フローのブロック デザインのディレクトリ構造は、次の図のようになります。

図 162 : Vivado プロジェクトのディレクトリ構造

上記の図では、それぞれのフォルダーは次を意味します。

• project_1 : Vivado プロジェクト フォルダー (project_1 はプロジェクトの名前)

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 110 UG994 (v2014.2) 2014 年 6 月 4 日

Page 111: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.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 がロックされるので、デザインを生成し直す必要があり

ます。このような場合、デザインのビヘイビアーは元のブロック デザインと異なってしまうことがあります。

1. 既存のブロック デザインをインポートするには、[Sources] ビューでデザインを右クリックし、[Add Sources] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 111 UG994 (v2014.2) 2014 年 6 月 4 日

Page 112: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 163 : 新しい Vivado プロジェクトへのソースの追加

2. [Add Sources] ダイアログ ボックスが開きます。[Add Existing Block Design Sources] をオンにします。[Next] をクリックします。

図 164 : 既存のブロック デザインの追加

3. [Add Sources] ダイアログ ボックスで [Add Files] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 112 UG994 (v2014.2) 2014 年 6 月 4 日

Page 113: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 165 : [Add Files] をクリックして既存のブロックのデザイン ファイルを指定

4. [Add Source Files] ダイアログ ボックスでブロック デザインの含まれる bd フォルダーを指定し、.bd ファイルを

選択したら、[OK] をクリックします。

図 166 : ブロック デザインを含むフォルダーの指定

5. [Finish] をクリックすると、既存のブロック デザインが追加されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 113 UG994 (v2014.2) 2014 年 6 月 4 日

Page 114: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 167 : 既存ブロックのデザイン ソースのプロジェクトへの追加

[Sources] ビューの [Design Sources] の下にインポートしたブロック デザインが表示されます。

図 168 : [Sources] ビューのインポートされたブロック デザイン

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 114 UG994 (v2014.2) 2014 年 6 月 4 日

Page 115: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

既存ブロック デザインの別の Vivado IDE プロジェクトへのインポート 6. ブロック デザインをダブルクリックして開きます。

図 169 : インポートされたブロック デザインを開く

7. IP インテグレーター ツールバーの [Validate Design] をクリックしてデザインを検証します。

図 170 : インポートされたブロック デザインの検証

8. DRC 違反がないことを確認します。

図 171 : DRC 違反がないことを示すメッセージ

9. 次に、ラッパーが必要であれば作成し、デザインのインプリメンテーションを実行します。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 115 UG994 (v2014.2) 2014 年 6 月 4 日

Page 116: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

既存ブロック デザインの別の Vivado IDE プロジェクトへのインポート 注記 : 既存のブロック デザインが前の Vivado Design Suite バージョンからのものの場合は、Tcl コンソ

ールに次のような警告メッセージが表示されます。

WARNING:[BD 41-1303] One or more IP have been locked in the design <bd_name>.Please run report_ip_status for more details and recommendations on how to fix this issue. (1 つまたは

複数の IP が zynq_1.bd デザインでロックされています。 詳細は report_ip_status を実行して、推奨さ

れる修正方法にしたがってください)

前述したように、ブロック デザインを開いて、IP ステータスをレポートさせて、ロックされた IP をアップグレードし

てください。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 116 UG994 (v2014.2) 2014 年 6 月 4 日

Page 117: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

第 9 章 サードパーティ合成ツールと IP インテグレーター

の使用

概要

サードパーティ合成ツールをデザイン フローの一部として使用する必要のあることもあります。このような場合、

ブロック デザインをブラック ボックスとして最上位ユーザー デザインに統合する必要があります。この後、残りの

デザインをサードパーティ合成ツールで合成して、HDL または EDIF ネットリストを書き出し、合成後のプロジェ

クトを Vivado 環境にインプリメントします。

本章では、ブロック デザインのブラック ボックスをサードパーティ合成ツールで合成するために必要な手順を示

します。フローはどのサードパーティ合成ツールにも該当しますが、本章では Synplify Pro 合成ツールを使用し

て説明します。

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

デザイン チェックポイントは、ブロック デザインを独立階層モジュール (アウト オブ コンテキスト (OOC) モジュー

ル) として設定すると、作成できます。これには、[Sources] ビューでブロック デザインを右クリックして [Set as Out-of-Context Module] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 117 UG994 (v2014.2) 2014 年 6 月 4 日

Page 118: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 172 :ブロック デザインを Out-of-Context モジュールとして設定

ブロック デザインが OOC モジュールとして設定されると、[Sources] ビューでそのブロック デザインに四角形の

アイコンが付きます。[Design Runs] ビューにも、ブロック デザインの OOC モジュールの run が表示されます。

図 173 : 独立階層モジュール設定後の [Sources] および [Design Runs] ビュー

次に、ブロック デザインのデザイン チェックポイント ファイルを作成するデザインを合成します。 これは、次のデ

ィレクトリに含まれます。 <path_to_design>\<project_name>\<project_name>.runs\<block_design_name>_synth_1

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 118 UG994 (v2014.2) 2014 年 6 月 4 日

Page 119: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ブロック デザインの Verilog または VHDL スタブ ファイルの作成 デザイン チェックポイントを使用すると、デザインの現在の状態のスナップショットを撮ることができます。現在の

ネットリスト、制約、およびインプリメンテーション結果が、デザイン チェックポイントに保存されます。デザイン チェックポイントを使用すると、次が実行できます。

• 必要であればデザインを復元

• デザイン解析を実行

• 制約を定義

• デザイン フローに従って処理

注意 : BMM (Block Memory Map) は連続論理データ空間を各ブロック RAM がどのように埋めるかを構

文的に記述したテキスト ファイルです。Data2MEM では BMM ファイルを使用して、最適な初期化フォー

ムにデータのトランザクションが実行されるようにされます。デザイン チェックポイントには BMM (Block Memory Map) ファイルは含まれません。BMM の内容は合成後にネットリストに統合されるので、BMM ファイルは必要ありません。BMM は 7 シリーズ デバイスで使用されます。

UltraScale デバイスの場合は、メモリ マップ情報を含む MMI ファイルが使用されます。UltraScale デバイ

スで MMI ファイルを使用する同等のコマンドは、UpdateMem です。

ブロック デザインの 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 119 UG994 (v2014.2) 2014 年 6 月 4 日

Page 120: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

Synplify プロジェクトでの HDL または EDIF ネットリストの作成 次の図は、スタブ ファイルの例を示しています。

図 174 : スタブ ファイルの例

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

Synplify プロジェクトを作成して、ブロック デザインの最上位 HDL ラッパー ファイルと共にブラック ボックス スタ

ブ ファイル (Vivado で作成) をインスタンシエートします。ブロック デザインが Synplify でブラック ボックスとして

処理されます。プロジェクトが合成されると、プロジェクトの HDL または EDIF ネットリストを書き出すことができま

す。

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

次は、Vivado IDE で合成後のプロジェクトを作成します。これには、Vivado で新規プロジェクトを作成する際に [Project Type] ページで [Post-synthesis Project] をオンにします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 120 UG994 (v2014.2) 2014 年 6 月 4 日

Page 121: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 175 : [Post-synthesis Project] オプション

プロジェクトを作成したら、[Design Sources] を右クリックして [Add Sources] をクリックし、ブロック デザインのネッ

トリスト ファイルおよび DCP ファイルをプロジェクトに追加します。

図 176 : Synplify からの HDL ネットリストおよび DCP ファイルのプロジェクトへの追加

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 121 UG994 (v2014.2) 2014 年 6 月 4 日

Page 122: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

Vivado での合成後のプロジェクトの作成とインプリメント [Add Sources] ダイアログ ボックスではデフォルトで [Add Design Sources] がオンになっています。[Next] をクリ

ックします。

図 177 : [Add Sources] ダイアログ ボックス

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

図 178 : [Add Design Sources] ページ

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 122 UG994 (v2014.2) 2014 年 6 月 4 日

Page 123: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

Vivado での合成後のプロジェクトの作成とインプリメント フォルダーを参照してネットリスト ファイルを選択します。[OK] をクリックします。

図 179 : ネットリストを含むフォルダーの参照

上記の手順を繰り返して DCP ファイルを追加し、[Finish] をクリックします。

図 180 : ネットリスト ファイルと DCP ファイルのプロジェクトへの追加

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 123 UG994 (v2014.2) 2014 年 6 月 4 日

Page 124: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

最上位制約の追加

最上位制約の追加

デザインのインプリメンテーション前に、プロジェクトに必要な制約を追加しておく必要があります。DCP ファイル

には、ブロック デザインに対する制約ファイルも含まれます。ただし、ブロック デザインの階層を変更した場合

は、その階層パスが範囲内に含まれるように制約ファイルを変更する必要があります。

制約ファイルは、[Sources] ビューで [Design Sources] を右クリックして、ネットリストおよび DCP ファイルと同じよ

うにプロジェクトに追加できます。[Add Sources] ダイアログ ボックスで [Add or Create Constraints] をオンにしま

す。

図 181 : 最上位プロジェクトへの制約の追加

ELF ファイルの追加

ブロック デザインにそれに関連付けられた ELF ファイルが含まれる場合は、ELF ファイルを Vivado プロジェクト

に追加する必要がありまあす。合成後のプロジェクトの場合、Vivado IDE GUI を介して ELF ファイルを追加す

ることはできません。ただし、次の Tcl コマンドを使用すると、ELF ファイルを追加して、エンベデッド オブジェクト

に関連付けることができます。 add_files <path_to_elf_file>/<file_name>.elf

追加された ELF ファイルは、[Sources] ビューに表示されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 124 UG994 (v2014.2) 2014 年 6 月 4 日

Page 125: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 182 : プロジェクトに 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 フィールドを編集します。

図 183 : [Source File Properties] ビューでの ADDR_MAP_CELLS フィールドの指定

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

次は、デザインをインプリメントしてビットストリームを生成できます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 125 UG994 (v2014.2) 2014 年 6 月 4 日

Page 126: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

概要

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

概要

Vivado® Design Suite では、ボードが認識されます。ツールでは、ターゲット ボードに含まれるさまざまなインタ

ーフェイスが認識されるので、IP をカスタマイズして、特定ボード インターフェイスに接続されるように IP をインス

タンシエートおよびコンフィギュレーションできます。現在のところ複数の 7 シリーズ ボードがサポートされていま

す。 UltraScale パーツを含むボードも間もなくサポートされる予定です。Avnet のようなサードパーティ ベンダー

からのボードも一部使用できます。

IP インテグレーターには、[Board Part Interfaces] タブという別のタブにボードに対するすべてのインターフェイス

が表示されます。このタブを使用して必要なインターフェイスを選択し、IP インテグレーターで提供されるデザイ

ン アシスタンスを使用すると、簡単にデザインを選択したインターフェイスに接続できます。I/O 制約はすべて自

動的にこのフローの一部として生成されます。

次のセクションでは、ボード フローの IP インテグレーターでの使用方法について説明します。

ターゲット ボードの選択

プロジェクトが Vivado 環境で作成された場合は、[New Project] ダイアログ ボックスの [Default Part] ページから

ターゲット ボードを選択できます。

図 184 : ターゲット ボードの選択

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 126 UG994 (v2014.2) 2014 年 6 月 4 日

Page 127: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ボード フローを使用するためのブロック デザインの作成 使用可能なボードのリストは、ベンダー、表示名、ボード リビジョンに基づいてフィルターできます。

図 185 : 使用可能なボードのフィルター リスト

現在のところ、ザイリンクスおよび Avnet 社からのボードのみがサポートされています。[Board Rev] ではボード

のリビジョンに基づいてフィルターができます。[Board Rev] を [All] に設定すると、Vivado でサポートされるすべ

てのボードのリビジョンが表示されます。同様に、[Board Rev] を [Latest] に設定すると、ターゲット ボードの最新

リビジョンのみが表示されます。使用可能なリソースおよび動作状況など、さまざまな情報も表に含まれます。ボ

ードを選択すると、そのボード用に定義されたインターフェイスが使用されて、コンフィギュレーションされます。

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

ボード フローの利点は、IP インテグレーターを使用するとよくわかります。Flow Navigator で [IP Integrator] → [Create Block Design] をクリックして、新しいブロック デザインを開始します。図のキャンバスが開いたら、[Board Part Interfaces] ビューが次のように表示されます。

図 186 : [Board Part Interfaces] ビュー

このビューには、この評価ボード (この場合は KC705) で可能性のあるインターフェイスすべてがリストされます。

これらのインターフェイスの 1 つをクリックすると、IP をブロック デザインのキャンバスにすばやくインスタンシエー

トできます。たとえば、Unconnected Interface フォルダーから ddr3_sdram インターフェイスをダブルクリックしま

す。[Connect Board Part Interface] ダイアログ ボックスが表示されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 127 UG994 (v2014.2) 2014 年 6 月 4 日

Page 128: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 187 : [Connect Board Part Interface] ダイアログ ボックス

[New] をクリックします。IP カタログが開き、このインターフェイスに接続可能な IP のリストが表示されます。この

場合、接続可能な IP は Memory Interface Generator 1 つです。IP カタログから接続する IP をダブルクリックしま

す。

図 188 : インターフェイスに接続可能な IP リストを表示する IP カタログ

[Connect Board Part Interface] ダイアログ ボックスには、選択した IP が表示されるようになります。[OK] をクリッ

クします。

図 189 : [Connect Board Part Interface] ダイアログ ボックスに表示される選択された IP

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 128 UG994 (v2014.2) 2014 年 6 月 4 日

Page 129: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ボード フローを使用するためのブロック デザインの作成 IP が図のキャンバス上に配置され、I/O ポートを介してインターフェイスに接続されます。IP はそのインターフェ

イスに接続するためにすべてコンフィギュレーションされます。

図 190 : キャンバス上のインターフェイスにインスタンシエート、コンフィギュレーション、接続された IP

インターフェイスが接続されると、特定のインターフェイスが [Board Part Interfaces] ビューの Connected Interfaces フォルダーの下に表示されるようになります。

図 191 : インターフェイスに接続後にアップデートされた [Board Part Interfaces] ビュー

インターフェイスは、[Preferred Connection] オプションを使用しても接続できます。これには、インターフェイスを

右クリックして、[Preferred Connection] をクリックします。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 129 UG994 (v2014.2) 2014 年 6 月 4 日

Page 130: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 192 : ボード インターフェイスに接続するための [Preferred Connection] オプションの使用

GPIO IP がインスタンシエートされ、GPIO インターフェイスが I/O ポートに接続されたことがわかります。

図 193 : [Preferred Connection] オプションを使用した IP のインスタンシエート

dip_switches_4bits のような別のインターフェイスが選択されたら、ボード フローでは GPIO が既にデザインにイ

ンスタンシエートされていることが認識されるので、GPIO の 2 つ目のチャネルが再利用されます。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 130 UG994 (v2014.2) 2014 年 6 月 4 日

Page 131: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 194 : 既にインスタンシエート済みの IP を共有可能なインターフェイスの接続

既にインスタンシエート済みの GPIO がコンフィギュレーションし直され、次の図のように GPIO の 2 つ目のチャ

ネルが使用されます。

図 195 : 2 つ目のチャネルを使用するようにコンフィギュレーションされた GPIO IP

linear_flash または spi_flash などの外部メモリ インターフェイスが選択される場合、それらの 1 つが使用される

と、それ以外のインターフェイスが淡色表示になり、これらのインターフェイスの 1 つしかこのボードで使用できな

いことを示します。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 131 UG994 (v2014.2) 2014 年 6 月 4 日

Page 132: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 196 : 1 つの外部メモリ インターフェイスしか KC705 で使用できないことを示す [Board Part Interfaces] ビュー

ボードのインターフェイスは、インターフェイスを Unconnected フォルダーから Connected フォルダーにドラッグし

ても接続できます。.この機能は、[Preferred Connection] オプションと同じように動作するので、推奨される IP がインスタンシエートされて、そのインターフェイス用にコンフィギュレーションされます。この例の場合、

sys_diff_clock インターフェイスが Unconnected Interfaces フォルダーから Connected Interfaces フォルダーにド

ラッグされています。Clocking Wizard IP がキャンバス上にインスタンシエートされ、差動クロックへのインターフ

ェイス接続がされています。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 132 UG994 (v2014.2) 2014 年 6 月 4 日

Page 133: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

図 197 : Unconnected Interfaces フォルダーから Connected Interfaces フォルダーへのインターフェイスの

ドラッグ アンド ドロップ

Clocking Wizard をダブルクリックすると、[Re-customize IP] ダイアログ ボックスが開きます。 Clocking Wizard の入力クロック周波数は KC705 ボードの周波数の 200MHz と一致するように指定されています。

図 198 : [Re-customize IP] ダイアログ ボックスの [Clocking Wizard] ページ

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 133 UG994 (v2014.2) 2014 年 6 月 4 日

Page 134: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

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

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

必要なインターフェイスがデザインで使用されるようになったら、次はプロセッサ (プロセッサ ベースのデザイン

の場合) または AXI インターコネクト (エンベデッド以外のデザインの場合) をインスタンシエートして、デザイン

を終了します。

これには、キャンバス上で右クリックして [Add IP] をクリックします。IP カタログで、たとえば MicroBlaze プロセッ

サを選択します。

図 199 : プロセッサをインスタンシエートしてデザインを終了

プロセッサがインスタンシエートされると、デザイン アシスタンスが使用できるようになります。

図 200 : デザイン アシスタンスを使用して接続を終了

[Run Block Automation] をクリックし、基本的なプロセッサ サブシステムをコンフィギュレーションします。プロセ

ッサ サブシステムが作成され、ブロック メモリ コントローラー、ブロック メモリ ジェネレーター、およびデバッグ モジュールなどのよく使用される IP が含まれます。これで [Run Connection Automation] をクリックすると、コネクシ

ョン オートメーション機能を使用してデザインの残りの IP を MicroBlaze プロセッサに接続できるようになります。

図 201 : [Run Connection Automation] を使用してプロセッサおよび残りの IP への接続を終了

ここから残りのプロセスは、本書の第 2 章で IP インテグレーターでの設計に必要なプロセスと同じです。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 134 UG994 (v2014.2) 2014 年 6 月 4 日

Page 135: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

ザイリンクス リソース

付録 A その他のリソース

ザイリンクス リソース

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

てください。

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 ユーザー ガイド : システム レベル デザイン入力』 (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)

Vivado Design Suite チュートリアル

『Vivado Design Suite チュートリアル : デザイン フローの概要』 (UG888)

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 135 UG994 (v2014.2) 2014 年 6 月 4 日

Page 136: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

リファレンス 『Vivado Design Suite チュートリアル : IP を使用した設計』 (UG939)

『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)

『高集積度 FPGA 設計手法ガイド』 (UG872)

『Zynq-7000 All Programmable SoC PCB デザインおよびピン配置ガイド』 (UG933)

『Zynq-7000 All Programmable SoC ソフトウェア開発ガイド』 (UG821) を参照してください。

『UltraFast 設計手法 (Vivado Design Suite 用)』 (UG949)

その他の Vivado Design Suite 関連の資料

japan.xilinx.com/support/documentation/dt_vivado_vivado2014-1.htm

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 136 UG994 (v2014.2) 2014 年 6 月 4 日

Page 137: Vivado Design Suite - Xilinx2014 年 6 月 4 日 2014.2 「SDK へのハードウェア定義のエクスポート」に関する情報をアップデート 2014 年 5 月 7 日 2014.1

法的通知

付録 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 applicable 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 PARTICULAR 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, incidental, 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 third 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 any 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 Terms 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 liability 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#tos.

© Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.

この資料に関するフィードバックおよびリンクなどの問題につきましては、[email protected] まで、または各ページの右下にある [フィードバッ

ク送信] ボタンをクリックすると表示されるフォームからお知らせください。フィードバックは日本語で入力可能です。いただきましたご意見を参考に早急に

対応させていただきます。なお、このメール アドレスへのお問い合わせは受け付けておりません。あらかじめご了承ください。

IP インテグレーターを使用した IP サブシステムの設計 japan.xilinx.com 137 UG994 (v2014.2) 2014 年 6 月 4 日