リアル を使用した設計 vivado design suite チュー …...vivado design suite チュート...

57
Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 6 12 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報 につきましては、必ず最新英語版をご参照ください。

Upload: others

Post on 13-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

Vivado Design Suite チュートリアルIP を使用した設計UG939 (v2019.1) 2019 年 6 月 12 日

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

Page 2: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

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

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

全体的なアップデート 編集上の更新のみ。技術内容の変更なし。

改訂履歴

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 2

Page 3: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

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

第 1 章: IP を使用した設計の概要................................................................................................................4概要..................................................................................................................................................................................4チュートリアルの説明....................................................................................................................................................4ハードウェアおよびソフトウェア要件..........................................................................................................................5チュートリアル デザイン ファイルの場所および準備................................................................................................. 5

第 2 章: チュートリアル...................................................................................................................................... 6演習 1: FIFO Generator のカスタマイズ.......................................................................................................................6演習 2: 再利用可能な IP の作成および管理.................................................................................................................19演習 3: プロジェクト モードでのスクリプト作成...................................................................................................... 35演習 4: 非プロジェクト モードでのスクリプト作成...................................................................................................45

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

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 3

Page 4: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

第 1 章

IP を使用した設計の概要概要

重要: このチュートリアルでは、Kintex®-7 ファミリのデバイスを使用します。このデバイス ファミリをインストールしていない場合は、Vivado® ツールのインストール ディレクトリをアップデートする必要があります。デザイン ツールまたはデバイスの詳細は、『Vivado Design Suite ユーザー ガイド: リリース ノート、インストール、およびライセンス』 (UG973) を参照してください。Vivado Design Suite を使用し、デザインで IP を使用する方法にはいくつかの方法があります。IP カタログから IP をカスタマイズしてプロジェクトに追加できます。また、プロジェクト フローまたは非プロジェクト フローで、カスタマイズされた IP のリポジトリを作成してそれを参照することもできますし、スクリプト機能を使用することも可能です。Vivado Design Suite には IP 中心のデザイン フローがあり、デザインおよびアルゴリズムをすばやく再利用可能な IPに変換できます。Vivado IP カタログは、IP 中心のデザイン フローの枠組みを提供する統合 IP リポジトリです。このカタログには、ザイリンクス IP やサードパーティ IP、またはエンドユーザー デザインを IP として 1 つの環境で再利用する場合など、あらゆるソースの IP が統合されています。Vivado IP パッケージャーは、IP-XACT 規格をベースにしたデザイン再利用機能を提供するツールです。この IP パッケージャーを使用すると、Vivado デザイン フローの任意段階でデザインをパッケージし、コアをシステムレベルのIP として運用できます。ビデオ: Vivado Design Suiteでの IP の作成および使用については、再利用可能な IP のコンフィギュレーションおよび管理および IP のカスタマイズおよびインスタンシエーションの 2 つの QuickTake ビデオをご覧ください。

チュートリアルの説明このチュートリアルには、次に説明するように複数の演習が含まれます。• 演習 1: FIFO が抜けている ザイリンクス wave_gen サンプル デザインの変更バージョンを開きます。IP カタログでこの IP を検索し、カスタマイズした後、デザインにそれをインスタンシエートします。

• 演習 2: Manage IP フローを使用して IP を作成し、カスタマイズします。プロジェクトを作成し、IP カタログからIP を最上位ソースとして含め、IP をカスタマイズして検証します。オプションで、サードパーティ合成フローでカスタマイズした IP をブラック ボックスとして使用します。

• 演習 3: Vivado® Design Suite を使用して Tcl スクリプトを記述し実行して、プロジェクトを作成し、IP を追加およびアップグレードし、IP ソースのディスエーブルし、合成後のデザイン チェックポイント (DCP) を含む出力ファイルを生成します。

第 1 章: IP を使用した設計の概要

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 4

Page 5: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

• 演習 4: IP ソースの読み込み、IP のアップグレード、IP ソースのディスエーブル、DCP を含む出力ファイルの生成のため、Vivado Design Suite を使用して 非プロジェクト Tcl スクリプトを記述し実行します。

ハードウェアおよびソフトウェア要件このチュートリアルを実行するには、Vivado Design Suite 2019.1 以降のバージョンをインストールしておく必要があります。システムおよびソフトウェア要件については、『Vivado Design Suite ユーザー ガイド: リリース ノート、インストール、およびライセンス』 (UG973) を参照してください。

チュートリアル デザイン ファイルの場所および準備このチュートリアルには演習ごとにプロジェクト ファイルおよびソース ファイルがあります。このチュートリアルのデザイン ファイルは、ザイリンクス ウェブサイトのリファレンス デザイン ファイルにあります。1. このザイリンクス ウェブサイトからこのリファレンス ファイル (.zip) をダウンロードします。2. ZIP ファイルの内容を書き込可能なディレクトリに抽出します (ローカルのハードドライブまたはネットワーク上)。

このチュートリアルでは、抽出されたディレクトリが <Extract_Dir> と表記されています。推奨: チュートリアルの作業を進めながら、チュートリアルのデザイン データを変更していきます。このチュートリアルを開始するたびに、<Extract_Dir> の新しいコピーを作成して、それを使用してください。

第 1 章: IP を使用した設計の概要

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 5

Page 6: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

第 2 章

チュートリアル演習 1: FIFO Generator のカスタマイズ

概要この演習では、Vivado® プロジェクトを開き、FIFO Generator IP コアをカスタマイズします。この IP の出力ファイルを生成し、デザイン RTL ソースでインスタンシエートします。それから最後にプロジェクトを合成します。

手順 1: プロジェクトを開く1. [Getting Started] ページで [Open Project] を選択し、<extract_dir>/lab_1/project_wave_gen_ip を参照します。

2. Windows の場合、[スタート] → [すべてのプログラム ] → [Xilinx Design Tools] → [Vivado 2019.x] → [Vivado 2019.x]をクリックして Vivado® Design Suite IDE を起動します。

3. または、Windows デスクトップにある [Vivado 2019.x] デスクトップ アイコンをダブルクリックして Vivado IDEを起動します。次の図のように、Vivado IDE の [Getting Started] ページが開き、プロジェクトを開いたり、プロジェクトを作成したり、資料を開く選択肢が表示されます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 6

Page 7: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

4. 次の図のように、[Open Project] ウィンドウで [project_wave_gen_ip.xpr] を選択し、[OK] をクリックします。

Vivado IDE にデザインが読み込まれ、デフォルト レイアウトで表示され、次の図のように [Project Summary] が開きます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 7

Page 8: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

これは RTL プロジェクトなので、ビヘイビアー シミュレーションの実行、デザインのエラボレーション、合成およびインプリメンテーションの起動、デバイスのビットストリーム生成を実行できます。Vivado IDE には、ビットストリーム生成までを一気に実行できるワンボタン フローもあり、合成やインプリメンテーションが自動的に起動します。詳細は、『Vivado Design Suite ユーザー ガイド: Vivado IDE の使用』 (UG893) を参照してください。

手順 2: FIFO Generator のカスタマイズ1. Flow Navigator で [IP Catalog] をクリックします。ザイリンクス IP カタログが開きます。

2. この IP カタログはさまざまな方法で使用できます。[Search] フィールドにキーワードを入力して検索したり、カタログの中のさまざまなカテゴリを参照したりできます。

3. [Search] フィールドに「fifo」と入力します。この検索により、カタログに表示される IP のリストが絞り込まれます。

4. 次の図のように、[Memories & Storage Elements] → [FIFOs] → [FIFO Generator] をクリックします。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 8

Page 9: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

5. 右クリックして [Customize IP] をクリックするか、選択した IP をダブルクリックします。次の図のように FIFO Generator のカスタマイズ ウィンドウが開きます。選択したコアの回路図が左側に表示されます。この回路図は、IP をカスタマイズすると変わります。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 9

Page 10: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

6. この回路図は、[Device] ウィンドウと同様、マウスの左ボタンを使用して拡大表示できます。7. [Show Disabled Ports] チェック ボックスがオンになっている場合は、それをオフにして、回路図の未使用ポートを非表示にします。

8. 回路図の上にある [Documentation] をクリックすると、関連情報を表示できます。このメニューを選択すると、IP のデータシート (PDF ファイル) や、コアの変更履歴を確認するための変更ログを開いたり、インターネット ブラウザーを開いて IP のウェブ ページやアンサー データベースを閲覧したりできます。[IP Location] では、IP カスタマイズ ファイル (XCI) や生成された出力ファイルを保存するディレクトリを指定します。デフォルトでは、これらのファイルはプロジェクト ディレクトリ内にある project_wave_gen_ip/project_wave_gen.srcs/sources_1/ip ディレクトリに保存されます。[Switch to Defaults] では、コンフィギュレーション オプションをデフォルト設定にリセットできます。

9. [Customize IP] ダイアログ ボックスで、次のように設定します。a. [Component Name] をデフォルト名から「char_fifo」に変更します。

[Basic] タブでは、インターフェイスやメモリのタイプなどの IP オプションを設定します。b. デフォルトの [Interface Type] は [Native] です。c. [Fifo Implementation] を [Independent Clocks Block RAM] に変更します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 10

Page 11: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

カスタマイズ ウィンドウは先ほどの図のようになるはずです。10. [Native Ports] タブで、[Read Mode]、[Data Port Parameters]、[ECC]、[Output Register Options] を設定し、初期化を設定します。a. [Read Mode] を [First Word Fall Through] に設定します。b. [Write Width] を [8] ビットに設定します。

[Write Width] を設定すると、[Read Width] フィールドをクリックしたときに、書き込み幅に合わせて読み出し幅が変更になります。

c. [Read Width] をクリックすると、値が自動的に [8] に変更されます。11. このタブのそれ以外の設定はすべてデフォルトのままにします。12. [Status Flags] および [Data Counts] タブのフィールドを確認します。これらのフィールドで FIFO Generator のその他のオプションが設定されます。このデザインでは、すべてデフォルト設定のままにしておきます。

13. [OK] をクリックします。次の図のように、必要なファイルを出力するための [Generate Output Products] ダイアログ ボックスが開きます。

14. [Out of context per IP] を選択した状態で、[Generate] ボタンをクリックします。15. [OK] をクリックします。デフォルトで、Vivado IDE により合成されたチェックポイント ファイル (DCP) が生成されます。この DCP を作成するには、次の図のように Vivado ツールで [Design Runs] に char_fifo IP の OOC モジュール run を追加し、その run をこの IP を合成するために起動しておきます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 11

Page 12: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

このアウト オブ コンテキスト (OOC) run により、指定した IP カスタマイズの DCP が作成されます。この DCPは次のタスクを実行します。• IP の合成を完了させる。• コアがまとまった状態で現在のデザインに保存されていることを確認する。• デザイン フローで繰り返し実行するときの最上位デザインの合成時間を短縮する。OOC 合成 run、DCP ファイルの使用については、 『Vivado Design Suite ユーザー ガイド: IP を使用した設計』(UG896) を参照してください。

重要: 最上位デザインの合成時間を短縮するため、DCP ファイルを生成します。IP の [Design Runs] の合成デフォルト設定は変更しないでください。次の図のように、[Sources] → [IP Sources] をクリックすると先ほど設定した FIFO が表示されます。

16. [Sources] → [IP Sources] で、FIFO Generator 用に生成された出力ファイルを確認します。出力ファイルを生成していない場合は、最上位合成 run を起動すると自動的にファイルが生成されます。デザイン ソースに FIFO IP が追加されますが、デザインにはまだインスタンシエートされていません。これは、[Hierarchy] タブの最上位の wave_gen モジュールと同じ階層に追加され、[Libraries] および [Compile Order] の /Block Sources フォルダーに含まれています。FIFO Generator カスタマイズには、テンプレート (このチュートリアルでは char_fifo.veo を使用)、合成制約、VHDL エンティティ、アーキテクチャ定義、Verilog シミュレーション ファイル、合成済みデザイン チェックポイントが含まれます。注記: char_fifo.vho テンプレートもありますが、このデザインでは使用されません。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 12

Page 13: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

注記: FIFO IP はもともと VHDL で定義されていたので、エンティティおよびアーキテクチャが VHDL ソース ファイルとして追加されます。ただし、現在のプロジェクトのターゲット言語は Verilog なので、VHDL FIFO エンティティを Verilog デザインにインスタンシエートするためのインスタンシエーション テンプレートは VEO ファイルです。Tcl コマンドを使用して、IP をカスタマイズしてデザインに追加することもできます。

17. 次の図のように、Vivado IDE の [Tcl Console] で、FIFO Generator コアをプロジェクトに追加するために使用するTcl コマンドを確認します。

次のコマンドは、IP の作成、カスタマイズ、生成、および IP run の起動に関連しています。• create_ip コマンドは、IP を現在のプロジェクトに追加します。• set_property コマンドは、[Customize IP] ダイアログ ボックスで選択されているさまざまなコンフィギュレーション オプションを設定します。このコマンドを確認するには画面を上へスクロールしてください。

• generate_target コマンドは、カスタマイズされた IP の指定出力ファイルを生成します。このコマンドを確認するには画面を上へスクロールしてください。

• create_ip_run コマンドは、カスタマイズされた IP のアウト オブ コンテキスト合成 run を作成します。• launch_runs コマンドは、合成 DCP ファイル、論理シミュレーション ネットリスト、サードパティ合成ツールのスタブ ファイル (IP のブラック ボックスを推論するため) を生成するため、カスタマイズされた IP 上で合成を実行します。

このチュートリアルで使用されているほかの Tcl コマンドの詳細は、『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) を参照してください。

手順 3: デザインへの IP インスタンシエーションVerilog インスタンシエーション テンプレートをコピーし、プロジェクトの適切な Verilog ソース ファイルに貼り付け、信号を変更して、カスタマイズした IP をデザインにインスタンシエートします。1. [Sources] ウィンドウの [IP Sources] タブで、[Instantiation Template] を展開し、[char_fifo.veo] ファイルをダブル

クリックして、Vivado® テキスト エディターでテンプレートを開きます。2. テンプレート ファイルの 57 行目までスクロールダウンし、次の図のように、モジュール インスタンシエーショ

ンのコードを選択してコピーします。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 13

Page 14: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

次に、インスタンシエーション テンプレートを適切な RTL ソース ファイルに貼り付けます。このケースでは、デザインの最上位にある wave_gen.v ソース ファイルにモジュールを貼り付けます。

3. [wave_gen.v] をダブルクリックして、[Sources] ウィンドウの [Hierarchy] タブでこのファイルを開きます。次の図は、このファイルを示しています。

4. 337 行目に移動します。この行には、Character FIFO がここにインスタンシエートされるべきであることを示すコメントが書かれています。

5. テンプレートのコードを次の図のようにファイルに貼り付けます。これはテンプレートでしかないので、デザインでこのモジュールが機能するように、貼り付けたコードを編集する必要があります。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 14

Page 15: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

a. インスタンシエーションを貼り付けた 338 行目 (あたり) で、モジュール名を your_instance_name からchar_fifo_i0 に変更します。

b. モジュールのポートをデザインに接続するため、次のようにワイヤ名を変更します。char_fifo char_fifo_i0 (.rst(rst_i), // input wire rst.wr_clk(clk_rx), // input wire wr_clk.rd_clk(clk_tx), // input wire rd_clk.din(char_fifo_din), // input wire [7 : 0] din.wr_en(char_fifo_wr_en), // input wire wr_en.rd_en(char_fifo_rd_en), // input wire rd_en.dout(char_fifo_dout), // output wire [7 : 0] dout.full(char_fifo_full), // output wire full.empty(char_fifo_empty), // output wire empty.wr_rst_busy(), // output wire wr_rst_busy.rd_rst_busy() // output wire rd_rst_busy);

6. テキスト エディターのメニューで [Save File] ボタン ( ) をクリックし、wave_gen.v ファイルへの変更を保存します。次の図のように、IP がデザインにインスタンシエートされたことを反映させるため、[Hierarchy]、[Libraries]、[Complie Order] タブがアップデートされます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 15

Page 16: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 4: デザインの合成カスタマイズした IP をデザインに統合すると、デザインを合成できるようになります。IP カタログの ザイリンクス IP は、RTL ソースとして配布されます。ネットリストベースのシミュレーションよりも高速なビヘイビアー シミュレーションを実行できるのが利点です。ただし、デザイン全体を合成しながら各 IP も合成し、デザインを繰り返し実行すると、合成に非常に時間がかかってしまい、プロジェクト開発の進行に影響します。アウト オブ コンテキスト (OOC) 合成 run で生成される、IP コアの出力ファイルと共に配布されるデザイン チェックポイント ファイル (DCP) を使用すると、繰り返し実行してもコアを再合成する必要がありません。Vivado Design Suite ではデフォルトで、IP をカスタマイズするときに、DCP ファイルを含む必要な出力ファイルが生成されます。DCP ファイルの生成はオフにできますし、出力ファイルも後で作成したりできます。1. [Sources] ウィンドウの [Hierarchy] タブで、最上位デザイン wave_gen/clk_gen_i0 の下にインスタンシエートされている、カスタマイズされた clk_core IP を確認します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 16

Page 17: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

clk_core IP は、char_fifo IP の場合とは違って、[>] をクリックして展開できない点に注意してください。これは、clk_core IP がプロジェクトにインスタンシエートされたときに、この IP には出力ファイルがなかったことを示しています。

2. [Sources] ウィンドウで [IP Souces] ビューをクリックし、char_fifo IP の横にある [>] をクリックします。Vivado ツールに [Show IP Hierarchy] ダイアログ ボックスが開き (次の図)、非常に大型の IP の階層を展開していると、[Sources] ウィンドウの階層のアップデートに時間がかかることを知らせる警告メッセージが表示されます。

注記: 同じ結果が得られない場合は、[Sources] ウィンドウの [IP Sources] ビューがアクティブになっていることを確認します。

3. [Cancel] をクリックし、[Show IP Hierarchy] ダイアログ ボックスを閉じます。IP をカスタマイズしたときに出力ファイルを生成しなかった場合、Vivado® Design Suite により、必要な出力ファイルが、合成中やシミュレーション中など、必要になった時点で自動的に生成されます。[Generate Output Products] ダイアログ ボックスでオフに設定していない限り、デフォルトで IP コアの DCP ファイルが生成されます。詳細は、『Vivado Design Suite ユーザー ガイド: IP を使用した設計』 (UG896) を参照してください。DCP ファイル生成がオフになっている場合は、最上位デザインと共に IP の RTL が合成されます。

4. Flow Navigator で [Run Synthesis] ボタン をクリックします。次の図のように、Vivado で clk_core の新しい OOC モジュール合成 run が自動的に作成され、その合成 run が起動します。

合成 run で、カスタマイズされた IP の DCP ファイルが作成されます。5. clk_core の合成 run が完了したら、[OK] をクリックします。内容は、[Sources] ウィンドウの [IP Sources] ビューで確認できます。次の図のように、IP 用に Vivado で生成された出力ファイルを確認できます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 17

Page 18: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

次の図のように、clk_core 用に生成された必要な出力ファイルを使用して、デザインの最上位で Vivado 合成ツールが実行されます。デザインの最上位を合成していると、Vivado 合成で FIFO Generator IP (char_fifo) および Clock Generator IP(clk_core) のブラック ボックスがデザインで推論されます。

6. [Synthesis Completed] ダイアログ ボックスが開いたら、[View Reports] オプションを選択し、[OK] をクリックします。[Reports] ウィンドウが Vivado IDE のメイン ウィンドウの下部に開きます。

7. [Reports] ウィンドウをクリックして、[Synthesis] → [Synth Design] → [synth_1_synthesis_report_0] をクリックします。

8. [Log] ウィンドウの [Find] ボタン をクリックし、blackbox を検索します。9. 現在のデザインで検出されたブラック ボックスをリストしたセクションが表示されるまで [Find Next] をクリックし、そのセクションが表示されたら [Next] をクリックします。次の図は、[Report BlackBoxes] レポートの抜粋です。

1 char_fifo 1

2 clk_fifo 1

BlackBox name Instances

X23129-081919

10. レポートを確認します。また、プロジェクトの IP runs フォルダーを開いて、アウト オブ コンテキスト合成 run の結果も確認します。<Extract_Dir>/lab_1/project_wave_gen_ip/project_wave_gen_ip.runs

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 18

Page 19: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

ソースに XCI ファイルを追加すれば、ほかのプロジェクトでカスタマイズして作成した IP を使用できます。DCP も含め、IP のすべての出力ファイルは自動的に使用されます。パーツを変更する場合は、IP をアップデートし、出力ファイルを再生成する必要があります。

まとめこれで演習 1 は終了です。FIFO Generator IP を作成してカスタマイズし、それをデザインにインスタンシエートしました。プロジェクトを閉じて、Vivado® ツールを終了させるか、または、作業を続けてデザインをインプリメントしてみてください。この演習では、次について説明しました。• Vivado IDE を開く。• IP カタログで IP を選択し、カスタマイズをする。• カスタマイズした IP を HDL デザインにインスタンシエートする。• デザイン フローで IP をサポートするために必要な出力ファイルの一部を使用する。これで、Vivado IDE でインタラクティブに、または Tcl スクリプトを使用して、デザインに IP を追加および管理できるようになりました。

演習 2: 再利用可能な IP の作成および管理概要複数のプロジェクトやデザインにまたがって、リビジョン管理を簡易化し、カスタマイズされた IP の使用をサポートするには、IP が使用されているデザイン プロジェクトとは別のリポジトリに IP を管理および保存できます。IP カスタマイズ ファイル ファイル (XCI)、および合成、シミュレーション用に生成された出力ファイルなどは、IP ごとに個別のディレクトリに保存されます。これらのカスタマイズされた IP を新しいプロジェクトやデザインで参照すれば、デザインの一部としてこれらの IPをシミュレーション、合成、インプリメントできます。出力ファイルをすべて利用できる状態にしておけば、ザイリンクス IP カタログで IP がアップデートされたとしても、カスタマイズした IP をそのまま Vivado® Design Suite の今後のリリースでも使用できます。Manage IP の詳細は、『Vivado Design Suite ユーザー ガイド: IP を使用した設計』(UG896) を参照してください。この演習では、Vivado Design Suite の Manage IP フローを使用して、IP リポジトリにカスタマイズした IP を保存して検証します。このフローを使用すると、プロジェクト フローでも非プロジェクト フローでも、IP カタログを参照して、IP をカスタマイズしたり管理したりできます。Vivado プロジェクト外で管理や維持しているプロジェクトでカスタマイズされた IP を使用するには、リポジトリを作成します。Manage IP フロー用に指定されたディレクトリに特別な IP プロジェクトが作成されます。このプロジェクトを使用して、IP 用の合成デザイン チェックポイント (DCP) や構造シミュレーション モデルが作成されます。プロジェクト フローまたは非プロジェクト フローでカスタマイズされた IP を使用すると、すべての出力ファイルがデザイン フローで使用されます (DCP がある場合はそれも使用されます)。IP の合成 DCP ファイルを使用する場合は、IP があらかじめ合成されているので、最上位デザインの合成をスピードアップできます。さらに、サードパーティ合成ツールで IP のブラック ボックスを推論できるように、スタブ ファイルが生成されます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 19

Page 20: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 1: Manage IP セッションの開始1. 演習ファイルが保存されているディレクトリに移動します。

cd <extract_dir>/lab_2

2. Vivado® IDE を起動します。a. Linux の場合は「vivado」と入力します。b. Windows の場合は、[スタート] → [すべてのプログラム ] → [Xilinx Design Tools] → [Vivado 2019.x] をクリック

して Vivado Design Suite IDE を起動します。または、[Vivado 2019.x デスクトップ アイコンをクリックし、Vivado IDE を起動します。Vivado IDE の [Getting Started] ページが開き、プロジェクトを開いたり、プロジェクトを作成したり、資料を開く選択肢が表示されます。

3. [Getting Started] ページで、[Manage IP] のリンクをクリックします。

次のメニューが表示されます。• [New IP Location]: 新しい Manage IP プロジェクトおよび生成された出力ファイルを保存する新しい IP ディレクトリを指定します。

• [Open IP Location]: 以前の Manage IP プロジェクト用に作成した既存の IP ディレクトリを開きます。4. [New IP Location] をクリックします。5. [Next] をクリックすると、次の図のように [Manage IP Settings] ダイアログ ボックスが開きます (ここでデフォルト設定を変更します)。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 20

Page 21: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

6. このダイアログ ボックスで次のオプションを設定します。• [Part]: xc7k70tfbg676-1

注記: この参照ボタンを使用してターゲット パーツを指定します。

• [Target Language]: Verilog

• [Target Simulator]: Vivado Simulator

• [Simulator language]: Mixed

• [IP location]: <Extract_Dir>/lab_2/my_ip

7. [Finish] をクリックします。IP プロジェクトに IP カタログが開きます。ここで、IP をカスタマイズします。

手順 2: FIFO Generator のカスタマイズIP カタログはキーワードを入力したり、カテゴリーを参照したりして、IP を検索できます。ヒント: [Customize IP] ダイアログ ボックスの説明については、演習 1: FIFO Generator のカスタマイズ を参照してください。この演習では、既に演習 1 を終了していて、そこで説明されている概念を理解していることを前提にしています。1. IP カタログの [Search] フィールドに「fifo」と入力します。2. [Memories & Storage Elements] グループに含まれている [FIFO Generator] をダブルクリックします。

次の図のように [Customize IP] ダイアログ ボックスが表示されます (これはデフォルト設定ではありません。カスタマイズした変更が示されています)。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 21

Page 22: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

3. [Customize IP] ダイアログ ボックス上部にある [Component Name] を「char_fifo」に変更します。4. [Basic] タブで次を設定します。

• [Interface Type] にはデフォルトの [Native] を選択します。• [FIFO Implementation Options] で [Independent Clocks Block RAM] を設定します。

5. [Native Ports] タブで次を設定します。• [Read Mode] を [First Word Fall Through] に設定します。• [Write Width] を [8 bits] に設定します。• [Read Width] をクリックすると、値が自動的に [8 bits] ビットに変更になります。

6. [Summary] タブをクリックします。[Summary] ページには、選択したオプションだけでなく、このコンフィギュレーションで使用されるリソースがすべて表示されます。FIFO Generator コアのサマリは次の図のようになるはずです。このコンフィギュレーションでは、18K のブロック RAM が 1 個使用されているのがわかります。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 22

Page 23: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

7. 表示されている情報が正しいことを確認し、[OK] をクリックして、デザインで使用するためにカスタマイズしたIP を生成します。次の図のように [Generate Output Products] ダイアログ ボックスが開きます。Manage IP フローを使用してカスタマイズした IP のリポジトリを作成するときは、各 IP の出力ファイルをデザイン チェックポイント (DCP) も含めてすべて生成します。Vivado ツールの各リリースでは 1 つのバージョンの IP のみがサポートされています。Vivado Design Suite で古いバージョンの IP の出力ファイルを再カスタマイズしたり、生成したりはできません。必要な出力ファイルを保存していない場合は、IP を最新版にアップデートする必要があります。

重要: Vivado ツールでは各リリースで 1 つのバージョンの IP のみがサポートされています。古いバージョンの IP を使用する場合は、カスタム IP リポジトリにすべての出力ファイルを保存してく必要があります。8. 次の図のように [Generate] ボタンをクリックし、出力ファイルを生成します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 23

Page 24: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

9. プロンプトが表示されたら、[OK] をクリックします。カスタマイズされた IP を 1 つ以上使用するデザインの合成ランタイムを短縮するには、IP をデフォルトのスタンドアロン モジュールとして前もって合成し、合成済みのチェックポイント ファイル (DCP) にそのネットリストを保存しておきます。デザイン全体を合成している最中に、Vivado 合成により IP のブラック ボックスは推論されます。インプリメンテーション中、DCP ファイルからのネットリストがデザインにリンクされます。このフローは、プロジェクト モードおよび非プロジェクト モードの両方で Tcl スクリプトに記述できます。合成済みチェックポイント ファイルを作成するには、次の図のように Vivado IDE により、対応するアウト オブコンテキスト モジュール run が作成され、起動します。この run は自動的に起動し、合成が完了すると、char_fifo ディレクトリに次の追加ファイルが生成されています。• char_fifo.dcp: 合成デザイン チェックポイント (IP のネットリストを含む)。• char_fifo_stub.v: サードパーティ合成ツールが IP のブラック ボックスを推論するために使用する

Verilog ポート モジュール。スタブには、Synplify Pro が I/O バッファーを挿入しないようにする指示子が含まれています。ほかのサードパティ合成ツールを使用している場合は、これを変更する必要がある場合があります。

• char_fifo netlist files、sim_netlist.v、および sim_netlist.vhd: IP の論理シミュレーション用の Verilog および VHDL ネットリスト。

デザインにサードパーティ合成ツールを使用している場合は、ブラック ボックスを推論するのに、ポートが宣言されている Verilog スタブ ファイル、または VHDL コンポーネント宣言が必要です。Vivado Design Suite では、出力ファイル生成時に、合成デザイン チェックポイント (DCP) と共にこのファイルが自動的に生成されます。カスタマイズされた IP は、プロジェクト モードおよび非プロジェクト モード両方で XCI を使用して参照できます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 24

Page 25: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

プロジェクトベースのデザインの場合、ザイリンクスでは、ソース ファイルをローカル プロジェクト ディレクトリにコピーしないで、カスタム IP のリポジトリから参照することを推奨しています。プロジェクト モードおよび非プロジェクト モードの詳細は、 『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』 (UG892)を参照してください。

10. <extract_dir>/lab_2/my_ip ディレクトリを確認します。次の図のように、3 つのディレクトリが作成されています。• XCI ファイルを含むカスタム IP (char_fifo)。ここには、この IP のカスタマイズ情報がすべて含まれ、また出力ファイルもすべて生成されています。

• IP プロジェクト (managed_ip_project)。これは、char_fifo IP をカスタマイズし、合成後の DCP を含む出力ファイルを管理するためにこの演習で作成した IP プロジェクトです。

• IP のサポート ファイル (ip_user_files)。すべてのサポートされているシミュレータ用のシミュレーション スクリプト、インスタンシエーション テンプレートのコピー、サードパーティ合成ツールで使用するスタブ ファイル、シミュレーション用のスタティック RTL ファイルが含まれています。シミュレーション スクリプトを除くこれらのすべてのファイルがカスタム IP のディレクトリからコピーされます (この場合は、char_fifo)。ip_user_files ディレクトリ詳細は、『Vivado Design Suite ユーザー ガイド: IP を使用した設計』 (UG896) を参照してください。

11. 次の図のように [Sources] ウィンドウで Manage IP プロジェクトで出力ファイルが生成されていることを確認します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 25

Page 26: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

char_fifo コアに対し生成された出力ファイルには、インスタンシエーション テンプレート、合成ファイル、シミュレーション ファイル、合成済みデザイン チェックポイント、論理シミュレーション ネットリスト、サードパーティ合成ツールで使用するスタブ ファイルが含まれます。注記: この演習でカスタマイズした FIFO Generator は、演習 1 で作成したものと同じです。既存の IP を ManageIP プロジェクトに追加する必要がある場合は、[File] → [Add Existing IP] をクリックしてください。

関連情報手順 2: FIFO Generator のカスタマイズ

手順 3: Clocking Wizard のカスタマイズClocking Wizard IP をカスタマイズします。1. IP カタログで FIFO Generator IP を検索したときと同じ手順で、Clokcing Wizard IP を検索してカスタマイズを開

始します。2. [Component Name] を「clk_core」に変更します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 26

Page 27: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

3. [Clocking Options] タブで、次の図のように、[Input Clock Information] を除き、すべての設定をデフォルトのままにします。• プライマリ クロック入力周波数: 200

• ソース: [Differential clock capable pin]

4. [Output Clocks] タブで、[Port Name] および [Output Freq Requested] を次のように変更します。• clk_out1: clk_rx、200

• clk_out2: clk_tx、166.667

次の図のようなコンフィギュレーションになるはずです。

5. [OK] をクリックし、[Generate Output Product] を開きます。6. [Generate] をクリックしてから、[OK] をクリックします。7. 次の図のように、Vivado® で、Clocking Wizard IP のデザイン run が作成され、起動します。

8. FIFO Generator IP をカスタマイズしたときと同じように、カスタマイズした Clocking Wizard IP (clk_core) 用に生成された出力ファイルおよびディレクトリが指定どおりに生成されていることを確認します。

手順 4: サードパーティ シミュレータの使用Manage IP プロジェクトは、IP をカスタマイズし管理することを目的にしています。Manage IP プロジェクトで IP を直接シミュレーションするサポートはありません。プロジェクト モードまたは非プロジェクト モードで、カスタマイズされた IP をシミュレーション用に標準デザイン プロジェクトにインスタンシエートします。Vivado® Design Suite で配布される ザイリンクス IP は、暗号化の業界標準である IEEE P1735 を使用して暗号化されています。サポートされているシミュレータでは、この暗号化標準が使用され、ビヘイビアー シミュレーションを実行できます。Vivado Design Suite には、混合言語のシミュレーション用に Vivado シミュレータが含まれており、ほかにも MentorGraphics® Questa Advanced Simulator、ModelSim Simulator、Cadence® Incisive Enterprise Simulator (IES)、Synopsys® Verilog Compiler Simulator (VCS)、Aldec® が直接サポートされています。デフォルトでは、Vivado で IP および Manage IP ディレクトリと同じディレクトリに ip_user_files と呼ばれるディレクトリが作成されます。このディレクトリには、作成されるすべての IP 用にサポートされるシミュレータでシミュレーションするスクリプトが含まれています。まずはこれらのスクリプトを使用して、IP をシミュレーションできます。スクリプトは、IP のシミュレーションに必要なファイルをすべて参照しています。ターゲット シミュレータの Tcl スクリプトを生成するには、次の Tcl コマンドを使用できます。export_simulation –simulator <simulator>

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 27

Page 28: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

<simulator> に有効なオプションは、all、xsim、vcx、ies、questa、modelsim、vcs_mx、riviera、および activehdl です。Vivado Design Suite 外でシミュレーションを実行する場合のスクリプトの作成など、サードパーティ シミュレータの使用については、『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900) を参照してください。

必要なシミュレーション ファイルの取得export_simulation コマンドを使用する以外にも、サードパーティ シミュレーションをサポートするために必要なファイルを手動で収集できます。注記: IP で VIP (Verification IP) を使用する必要がある場合は、set_property CONFIG.<AXI interface>[get_ips <ip>] という Tcl コマンドを使用すると、追加のシミュレーション ファイルが生成されます。詳細は、『Vivado Design Suite ユーザー ガイド: IP を使用した設計』 (UG896)を参照してください。1. シミュレーション用に IP で配布されるファイルをすべて取得するには、get_files という Tcl コマンドを使用

します。Tcl コンソールに次のコマンドを入力します。get_files -compile_order sources -used_in simulation -of_objects [get_ips char_fifo]

説明:

• -used_in: シミュレーションまたは合成で使用するファイルを指定します。• -of_object: 指定のカスタム IP ファイルに関連付けられているファイルを抽出します。これで、IP のシミュレーションに必要なファイル名、完全パスがリストされます。この場合、リストには次の情報が含まれます。…/char_fifo/fifo_generator_v13_2/simulation/fifo_generator_vlog_beh.v…/char_fifo/fifo_generator_v13_2/hdl/fifo_generator_v13_2_rfs.vhd…/char_fifo/fifo_generator_v13_2/hdl/fifo_generator_v13_2_rfs.v…/char_fifo/sim/char_fifo.v

各シミュレーション ファイルに LIBRARY プロパティがあるので、検索できます。VHDL ファイルの場合、各ファイルに関連付けられているライブラリがシミュレーションに必要です。

2. LIBRARY プロパティを抽出するには、次の Tcl コマンドを入力します。get_property LIBRARY [get_files char_fifo.v]

これで xil_defaultlib ライブラリが返されます。3. シミュレーションで使用される各ファイルを出力するには、次の Tcl スクリプトを使用します。ファイルへのパ

スや関連付けられているライブラリ情報も出力されます。# Get the list of files required for simulationset ip_files [get_files -compile_order sources -used_in simulation -of_objects [get_ips <IP name>]]# For each of these files, get the library informationforeach file $ip_files {puts "[get_property LIBRARY $file] $file"}

ファイルを出力するため、最初のスクリプトで <ip_name> をカスタマイズされた IP の名前に置き換えます。この場合は、char_fifo を使用します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 28

Page 29: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

シミュレーション用の構造ネットリストManage IP プロジェクトを作成するときにどのシミュレーション言語を選択したかによって (次の図を参照)、get_files コマンドの結果は異なります。一部の IP では、シミュレーションの言語を [Verilog] や [VHDL] ではなく、[Mixed] に指定していないと、ビヘイビアー シミュレーションができない可能性があります。合成済みデザイン チェックポイントが利用可能な場合は、Vivado Design Suite で構造ネットリストが自動生成されるので、その構造ネットリストを使用してシミュレーションを実行する必要があります。選択したシミュレータ言語に基づいて、IP でビヘイビアー シミュレーション ファイルが配布される場合は、出力ファイルを生成するときに、次の図のように、出力ファイルのリストに [Behavioral Simulation] が表示されます。ただし、IP に選択したシミュレータ用のシミュレーション ファイルが含まれなない場合は、次の図のように[Structural Simulation] が表示されます。

図 1: 構造シミュレーション モデル

次のコマンドを使用して、カスタマイズされた FIR IP のシミュレーション ファイルを検索します。get_files -compile_order sources -used_in simulation -of_objects [get_ips fir_0]

次のファイルのみが返されます。../fir_0/fir_0_sim_netlist.v

ヒント: 構造シミュレーション出力ファイルは、Verilog および VHDL の両方に対して、合成済みデザイン チェックポイントが生成されるたびに常に生成されます。どのシミュレーション言語が選択されているかでビヘイビアー シミュレーションができるかどうかが変わってくるので、get_files でシミュレーション ファイルを検索しても検索結果が変わります。

手順 5: 追加 IP の追加このチュートリアルでこれまでに追加 IP を Manage IP プロジェクトに追加し、カスタマイズする手順を説明してきたので、同じ手順をここでも繰り返します。次の図では、カスタマイズされた Tri-Mode Ethernet MAC およびComplex Multiplier IP がプロジェクトに追加されています。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 29

Page 30: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

1. IP カタログで追加 IP をいくつか検索し、それらをカスタマイズします。2. 追加 IP の出力ファイルを生成します。

[Sources] ウィンドウの [IP Sources] ビューに、追加 IP 用に生成された出力ファイルが表示されます。

IP をカスタマイズするとき、ほかの出力ファイルの生成をスキップするオプションを選択したとしても、Vivado®

Design Suiteによりプロジェクトにインスタンシエーション テンプレートが追加されます。このインスタンシエーション テンプレートは最低限の出力ファイルです。デフォルトで Vivado Design Suite により、プロジェクトに追加された IP それぞれに対し、合成後のデザイン チェックポイントが作成され、各 IP のアウト オブ コンテキスト モジュール run が追加されます。次の図に示すように、これらの合成 run の進捗状況が [Design Runs] ビューに表示されます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 30

Page 31: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 6: サードパーティ合成ツールの使用Vivado® Design Suite で配布される ザイリンクス IP では、 Vivado 合成ツールを使用した合成のみがサポートされます。ユーザー ロジックは、Synopsys® Synplify Pro や Mentor Graphics® Precision など、サポートされているサードパーティ合成ツールを使用して合成できます。Vivado Design Suite では、カスタマイズされた各 IP に対し Verilog/VHDL スタブ ファイルが生成されますが、このファイルは、Vivado IP のブラック ボックスを推論するため、サードパーティ合成ツールで使用可能です。Vivado では、デフォルトで合成済みの DCP が IP に対して生成されると、スタブ ファイルが自動的に生成されます。Vivado IP に接続するポートに I/O バッファーがサードパーティ合成ツールに挿入されないようにすることが重要なので、<ip_name>_stub.v には I/O バッファー挿入を防ぐ合成指示子が含まれています。この演習では、Manage IP プロジェクトを使用して、サンプル デザインで使用される 2 つの IP を作成しカスタマイズします。• サードパーティ合成ツールへアクセスせずに済むように、Synplify® Pro で生成される EDIF が提供されています。• インプリメンテーション中にデザインに制約を付けるため、XDC ファイルも 2 つ提供されています。• IP を使用してシミュレーションを実行する方法を説明するため、オプションのステップも説明します。• ネットリスト プロジェクトを作成し、サードパーティ合成ツールで生成されたネットリストと IP をまとめます。• インプリメンテーション用にソースをまとめる非プロジェクト フローの使用方法を説明するスクリプトも提供されています。

手順 7: ネットリスト プロジェクトの作成デザイン インプリメンテーションのプロセスでは、サードパーティの合成ツールからのネットリストを Vivado® に読み込み、Manage IP プロジェクトでカスタマイズした 2 つの IP、最上位レベルの制約を使用します。EDIF ネットリストおよび最上位 XDC ファイルは用意されています。1. Manage IP プロジェクトが既に開いている場合は、それを閉じます。または、Vivado を起動します。2. Vivado の [Getting Started] ページで [Create Project] を選択し、[Next] をクリックします。3. [Project Name] ダイアログ ボックスでプロジェクト名およびプロジェクトを保存するディレクトリを指定します。• [Project name]: wave_gen_netlist

• [Project location]: <extract_dir>/lab_2/

4. [Create project subdirectory] をオンにしたまま、[Next] をクリックします。5. [Project type] を [Post-synthesis] に設定し、[Do not specify sources at this time] をオフのままにします。6. [Add Netlist Sources] ウィンドウで、次のファイルを参照します。

• <extract_dir>/lab_2/sources, and select wave_gen.edf

• <extract_dir>/lab_2/my_ip/char_fifo (または Manage IP プロジェクトに設定したもの) およびchar_fifo.xci を選択。

• <extract_dir>/lab_2/my_ip/clk_core および clk_core.xci を選択。ソース ファイルはリモート ディレクトリから参照するか、ネットリスト プロジェクトにコピーするかします。

7. 次の図のように、wave_gen.edf が最上位に設定されていることを確認し、[Next] をクリックして次に進みます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 31

Page 32: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

8. [Add Constraints] ウィンドウで <Extract_Dir>/lab_2/sources ディレクトリを参照し、wave_gen_timing.xdc および wave_gen_pins.xdc ファイルを選択します。a. これらのファイルにはリモート ディレクトリから参照するか、プロジェクトにコピーするかします。b. 2 つのファイルを選択したら、[Next] をクリックします。

9. [Default Part] で [xc7k70tfbg676-1] を選択し、[Next] をクリックします。[New Project Summary] ウィンドウが次の図のように開きます。

10. [Finish] をクリックします。新しく作成されたネットリスト プロジェクトが開きます。

11. 次の図のように [Sources] ウィンドウを展開表示させ、プロジェクトのネットリスト、IP および制約を確認します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 32

Page 33: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

ネットリストプロジェクトで、現在含まれている IP のステータスをチェックします。12. [Report] → [Report IP Status] をクリックして、IP がロックされていることを確認します。これは、ネットリスト

デザインで IP を変更する場合、元のプロジェクトまたは Manage IP プロジェクトでその変更を追加する必要があるためです。IP が現在のものではなくても、出力ファイルがすべて揃っているので、インプリメンテーションまで作業を進めることができます。

13. [Compile Order] ビューを選択し、[Implementation] をクリックして、デザイン ソース ファイルおよび制約が処理される順序を確認します (次の図を参照)。

14. [Tcl Console] ウィンドウに「report_compile_order」と入力します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 33

Page 34: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

次の 3 つのセクションがあります。• [Source compile order for implementation]: インプリメンテーション中に使用される EDIF および DCP ソースをリストしています。IP の DCP で使用されるのは、EDIF ネットリストのみです。

• [Source compile order for simulation]: IP の RTL ソースがインプリメンテーション中に使用されるよう設定されています。このプロジェクトには最上位のシミュレーション ファイルはないので、この時点ではシミュレーションは実行できません。

• [Constraint evaluation order for implementation]: IP の XDC 出力ファイルだけでなく、最上位の制約ファイルが使用されます。IP の DCP ファイルの制約は使用されません。

15. Flow Navigator → [Implementation] → [Run Implementation] をクリックし、[Runs] ダイアログ ボックスを開きます。[OK] をクリックします。

16. インプリメンテーションが完了したら、Flow Navigator の [Report Timing Summary] コマンドを使用して、インプリメント済みのデザインおよびタイミング レポートを開きます。

重要: フローのこの時点ではデザインのタイミングは満たされていません。このフローをスクリプトにすることも可能です。プロジェクト フローのスクリプト コマンドを確認するには、.jou ファイルを確認します。非プロジェクト ベース フローのスクリプトの作成方法については、次のセクションで説明します。

非プロジェクトのサードパティ スクリプトの作成最上位デザイン ネットリスト、IP、制約ファイルを読み出し、それからデザインをインプリメントする非プロジェクト スクリプトを作成できます。使用するソース ファイルのディレクトリをポイントするように、このスクリプトを変更します。# Set the target part to be usedset_part xc7k70tfbg676-1# Read top-level EDIF netlist produced by the third party synthesis toolread_edif ./sources/wave_gen.edf# Read the two IP# Read the IP and use any required output products generated (XDC, DCP, etc.)read_ip ./my_ip/char_fifo/char_fifo.xciread_ip ./my_ip/clk_core/clk_core.xci# read top-level constraintsread_xdc ./sources/wave_gen_timing.xdcread_xdc ./sources/wave_gen_pins.xdc# Link the netlists to build the in-memory design databaselink_design -top wave_gen# Implement the design in Non-Project Modeopt_designplace_designroute_design# write out an implemented design checkpointwrite_checkpoint -force wave_gen_post_route.dcp

その IP カスタマイズ用のブラック ボックスは、デザインがリンクされたときに合成された DCP からのネットリストに置き換えられ、またデザイン制約は各インスタンスに適用されます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 34

Page 35: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

まとめこれで演習 2 は終了です。この後は、デザインの確認や追加レポートの作成をしたり、Vivado® Design Suite を終了したりできます。この演習では、次のことを学びました。• Manage IP フローを使用し、IP カタログを参照し、IP をカスタマイズして、後で使用するために IP リポジトリに保存しました。カスタム IP を作成し、それをユーザーおよびプロジェクト間で共有し、IP のリビジョンを管理するのに便利な方法です。

• Manage IP フローでは、スクリプト (プロジェクト モードまたは非プロジェクト モード) で、または RTL プロジェクトからのカスタム IP を使用しました。またはサードパーティ合成ツールでブラック ボックスを推論するためカスタム IP を使用しました。

• また、Vivado では、シミュレーション用に構造ネットリストの Verilog/VHDL ファイルも生成しました。• IP を使用したビヘイビアー シミュレーションの実行、プロジェクトでの IP の使用、または Vivado シミュレータ、またはスタンドアロンの ModelSim Simulator/Questa Advanced Simulator でのスクリプトの生成をしました。

• Cadence® Incisive Enterprise Simulator (IES)、Synopsys® VCS MX、Aldec® などのサードパーティ シミュレータを使用してシミュレーションに必要な HDL ファイル、そのファイルに関連付けられているライブラリの両方を検索、または export_simulation Tcl コマンドを使用しました。

演習 3: プロジェクト モードでのスクリプト作成概要この演習では、新規プロジェクトを作成し、RTL ソースおよびカスタマイズされた ザイリンクス IP を追加して、プロジェクト モードの Tcl スクリプトを作成します。Vivado® IDE のプロジェクト モードでは、ディスク上にディレクトリ構造が作成され、このディレクトリでデザインソース ファイル、run の結果、およびプロジェクト ステータスが管理されます。自動化された合成およびインプリメンテーション プロセス、および run のステータスは、run のインフラストラクチャで管理されます。演習 4: 非プロジェクト モードでのスクリプト作成 では、プロジェクト ファイルに依存せず、ソース ファイルも管理されない非プロジェクト モードで Vivado を実行し Tcl スクリプトを作成します。プロジェクト モードおよび非プロジェクト モードの詳細は、 『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』 (UG892) を参照してください。プロジェクト モードのデザイン フローをスクリプト化に慣れるには、まず、Vivado IDE でインタラクティブにデザイン フローを実行してから、Vivado® Design Suite で生成されるジャーナル ファイル vivado.jou を参照します。このジャーナル ファイルを編集し、プロジェクト モードのデザイン フロー全体を網羅する Tcl スクリプトを作成できます。この演習では、手動でスクリプトをビルドします。Tcl スクリプトの記述方法については、 『Vivado DesignSuite ユーザー ガイド: Tcl スクリプト機能の使用』 (UG894) を参照してください。注意: このチュートリアルから Tcl コマンドやスクリプト例をコピーして、Vivado Design Suite Tcl シェルや Tcl コンソールに貼り付けると、ダッシュ (-) が長いダッシュに変換されてしまうことがあり、そうするとコマンドを実行したときにエラーになります。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 35

Page 36: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 1: プロジェクトの作成1. Vivado® IDE 内で、Emacs、VI、メモ帳などのテキスト エディターを開きます。2. ファイルを新しく開き、「project_run.tcl in <Extract_Dir>/lab_3」という名前を付けて保存します。

create_project コマンドを使用して新規プロジェクトを作成し、スクリプトを開始します。新しいプロジェクト ディレクトリがディスクに作成されます。ただし、スクリプトがソース ファイルを参照できるよう、プロジェクトが正しいディレクトリに作成されていることを確認する必要があります。

3. この演習用のディレクトリに移動するため、Tcl スクリプトに次の行を追加します。cd <extract_dir>/lab_3

これでプロジェクトを作成する準備が整いました。4. project_run.tcl スクリプトに次の Tcl コマンドを追加します。

create_project -force -part xc7k70tfbg484-3 my_project my_project

my_project という名前のディレクトリが作成され、my_project という名前のプロジェクトがそのディレクトリに追加されます。このディレクトリおよびプロジェクトは、スクリプトが実行されるディレクトリに作成されます。異なるディレクトリ名を指定する場合は、create_project コマンドの -dir オプションを使用します。すべてのレポートおよびログ ファイル、デザイン run、プロジェクト ステート、プロジェクトにインポートするソース ファイルなどがこのプロジェクト ディレクトリに保存されます。このプロジェクトのターゲット ザイリンクス パーツは、-part xc7k70t オプションを使用して指定されます。-part が指定されていない場合は、Vivado リリースのデフォルト パーツが使用されます。

ヒント: 後でパーツを変更する場合は、set_property コマンドを使用します。たとえば、「set_property partxc7k325tfbg900-2 [current_project]」のように使用します。プロジェクト ディレクトリはこのスクリプトを実行する前には存在しないので、-force オプションは厳密には不要です。ただし、プロジェクト ディレクトリが既に存在する場合は、既存ディレクトリおよびその中のファイルをすべて上書きする -force オプションを指定しないとスクリプトでエラーが出ます。create_project など、このチュートリアルで使用されている Tcl コマンドの詳細は、『Vivado Design Suite Tclコマンド リファレンス ガイド』 (UG835) を参照してください。または、Tcl プロンプトで「help<command_name>」と入力してください。

手順 2: RTL ソース ファイルの追加このスクリプト用に、すべての RTL ソース ファイルをローカルのプロジェクト ディレクトにコピーします。必要な HDL ファイルはすべて <extract_dir>/lab_3/sources にあるので、ディレクトリ全体を直接追加できます。スクリプトに次の 2 行を追加します。add_files -scan_for_includes ../Lab_3_4_sources/HDLimport_files

-scan_for_includes オプションは、Verilog ソース ファイルの `include 文をすべて検索し、その参照ファイルもソース ファイルとしてプロジェクトに追加します。デフォルトでは、`include ファイルは追加されません。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 36

Page 37: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

../Lab_3_4_sources を使用すると、Tcl スクリプトを実行しているディレクトリから相対的な場所にあるソースファイルを参照します。project_run.tcl スクリプトは <extract_dir>/lab_3 ディレクトリに作成されているので、../Lab_3_4_sources フォルダーはその上のディレクトリにあります。import_files コマンドは、ファイルをローカルのプロジェクト ディレクトリにコピーします。このケースのように、ファイルを指定しない場合は、現在のプロジェクトのソース セットで参照されているファイルが Vivado® DesignSuite によりインポートされます。ヒント: import_files コマンドを使用してファイルをインポートせず、元のディレクトリからソース ファイルを参照することも可能です。

手順 3: XDC 制約の追加このデザインには、2 つの XDC ファイルが必要です。• top_physical.xdc

• top_timing.xdc

1. これらの XDC ファイルをプロジェクトにインポートするには、スクリプトに次の行を追加します。import_files -fileset constrs_1 \ {../Lab_3_4_sources/Constraints/top_timing.xdc \ ../Lab_3_4_sources /Constraints/top_physical.xdc}

ヒント: バックスラッシュ (\) は、複数行にまたがっている Tcl コマンドを分割するために使用されています。こうしておくと、スクリプトを読みやすく、また編集しやすくできるので便利です。デフォルトでは、すべての XDC ファイルが合成とインプリメンテーションの両方で使用されます。ただし、この場合は、2 つの XDC ファイルを次のように割り当てて使用します。• top_timing.xdc は、合成とインプリメンテーションの両方で使用されます。• top_physical.xdc は、インプリメンテーションでのみ使用されます。

2. 合成中に top_physical.xdc を使用しないようにするため、次の行をスクリプトに追加します。set_property used_in_synthesis false [get_files top_physical.xdc]

これで、指定の XDC ファイルで used_in_synthesis プロパティがディスエーブルになります。インプリメンテーションのプロパティは used_in_implementation ですが、このプロパティはイネーブル(true) のままにしておきます。

手順 4: 既存 IP の追加重要: Vivado® Design Suite では、NGC フォーマットのファイルは UltraScale™ デバイス用にサポートされていません。Vivado Design Suite で IP を再生成し、ネイティブ出力ファイルを使用することをお勧めします。または、NGC ファイルを NGC2EDIF コマンドで EDIF に変換してインポートすることもできます。ただし、ザイリンクスでは、今後は XST で生成された NGC フォーマットではなく Vivado® のネイティブ IP を使用することを勧めします。また、プロジェクトに IP コアもインポートします。このデザインには、4 つの IP コアがあります。• Accumulator: レガシの CORE Generator IP で、NGC が関連付けられています。• Block Memory Generator: Vivado Design Suite の古いバージョンのネイティブ IP で、出力ファイルは生成されていません。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 37

Page 38: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

• FIFO Generator: Vivado 2019.1 バージョンの IP で、DCP を含むすべての出力ファイルがあります。• Clocking Wizard:: Vivado 2019.1 バージョンの IP で、出力ファイルはありません。Accumulator IP 以外のこれらすべての IP は、ネイティブ Vivado コアです。これらは既にカスタマイズされていて、ザイリンクス コア インスタンス (XCI) ファイルが用意されています。Accumulator IP の場合、インポートされたファイルは CORE Generator™ ログ ファイル (.xco) で、これはレガシ IPです。これらの IP をプロジェクトにインポートするには、次の行をスクリプトに追加します。import_ip -files {../Lab_3_4_sources/IP/Accumulator/Accumulator.xco \ ../Lab_3_4_sources/IP/blk_mem/blk_mem_gen_v7_3_0.xci \ ../Lab_3_4_sources/IP/clk_wiz/clk_wiz_0.xci \ ../Lab_3_4_sources/IP/char_fifo/char_fifo.xci}

この行が処理されると、Vivado Design Suite から次の 2 つの警告メッセージが表示されます。WARNING: [IP_Flow 19-2162] IP 'Accumulator' is locked:* IP definition 'Accumulator (11.0)' for IP 'Accumulator' has a newer major version in the IP Catalog.Please select 'Report IP Status' from the 'Tools/Report' menu or run Tcl command 'report_ip_status' for more information.

WARNING: [IP_Flow 19-2162] IP 'blk_mem_gen_v7_3_0' is locked:* IP definition 'Block Memory Generator (7.3)' for IP 'blk_mem_gen_v7_3_0' has a newer major version in the IP Catalog.Please select 'Report IP Status' from the 'Tools/Report' menu or run Tcl command 'report_ip_status' for more information.

Accumulator の問題は、デザインで使用されているバージョンが IP カタログの最新版と一致していない点です。ただし、ネットリストの出力ファイル (.ngc) があるので、デザインで使用されているバージョンのままでも作業は続けられますし、または IP カタログの最新版へのアップグレードも可能です。blk_mem_gen_v7_3_0 コアも、IP カタログにある最新版ではありません。合成やシミュレーションを実行するのに必要な出力ファイルがないので、最新版にアップグレードする必要があります。この IP を次の手順でアップグレードします。アップグレードできない場合は、IP を作成し直す必要があります。clk_wiz_0 の場合、カスタマイズされた XCI ファイル (.xci) と共に生成された出力ファイルが検出されなかったので、この IP は IP カタログのバージョンと同じです。次の手順で、この IP の出力ファイルを手動生成します。char_fifo のバージョンは最新版で、すべての出力ファイルが揃っているので、インポート時に警告メッセージは表示されません。推奨: IP カタログの IP コアでメジャー バージョンの変更があった場合、パラメーターやポート名の変更など IP に変更があると、IP を最新版にアップグレードしたときにデザインを変更する必要が出てくる場合があります。

手順 5: IP の XDC ファイルのディスエーブルこのデザインの場合、最上位のタイミング制約を clk_wiz_0 モジュールに適用できるよう、Clocking Wizard IP に含まれている XDC ファイルをディスエーブルにします。この IP の出力ファイルは生成されていないので、まずは合成ターゲットを生成がありますが、この中に XDC ファイルも含まれています。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 38

Page 39: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

プロジェクト モードでは、手動で出力ファイルを生成する必要はありません。Vivado® ツールのデザイン フローでは、適宜自動的に IP から出力ファイルが生成されます。この中に、Vivado合成 DCP の生成も含まれます。ただし、ここでは clk_wiz IP で配布される XDC ファイルのプロパティを変更するので、そのプロパティを変更するには、制約ファイルを作成するため手動で出力ファイルを生成する必要があります。さらに、IP の XDC ファイルを使用しないように設定し、最上位デザインの合成中に制約を提供するので、clk_wiz合成 DCP (またはネットリスト) の生成もディスエーブルにする必要があります。1. 合成デザイン チェックポイント (DCP) ファイルの自動生成をディスエーブルにするには、スクリプトに次を追加します。set_property generate_synth_checkpoint false [get_files clk_wiz_0.xci]

2. これで、デザインを合成しても、アウト オブ コンテキスト (OOC) モジュール合成 run が自動的に作成されず、clk_wiz_0 IP も自動的に起動しません。代わりに、clk_wiz_0 IP は最上位デザインの一部として合成されます。

3. Tcl スクリプトに generate_target コマンドを追加します。generate_target all [get_files clk_wiz_0.xci]

複数の出力ファイルを生成する場合は、{synthesis instantiation_template} などのコマンドにリストを渡します。または、すべてを指定して、使用可能な出力ファイルをすべて生成することもできます。

ヒント: IP でサポートされている出力ファイルを確認するには、IP に対し report_property コマンドを実行するか、または、IP から KNOWN_TARGETS プロパティを取得するため get_property を実行します。たとえば、次の行はスクリプトに追加しないでください。report_property [get_ips clk_wiz_0] get_property KNOWN_TARGETS [get_ips clk_wiz_0]

4. Clocking Wizard で配布される XDC 制約をディスエーブルにするには、ファイルの名前が必要です。get_filesコマンドに -of_objects および -filter オプションを指定して、IP で配布される XDC ファイルを検索します。

5. Clocking Wizard IP の XDC ファイル名を Tcl 変数に取り込むには、スクリプトに次の行を追加します。set clk_wiz_xdc [get_files -of_objects [get_files \clk_wiz_0.xci] -filter {FILE_TYPE == XDC}]

これで、Clocking Wizard で配布される XDC ファイルの名前が返されます。6. XDC ファイルをディスエーブルにするには、スクリプトにこの行も追加します。

set_property is_enabled false [get_files $clk_wiz_xdc]

clk_wiz IP で配布される XDC ファイルは、スクリプトを実行するとディスエーブルになります。ヒント: プロジェクト内でどの XDC ファイルが評価され、どういう順序でファイルが処理されるのかをチェックするには、-constraints オプションを指定して report_compile_order コマンドを使用します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 39

Page 40: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 6: IP のアップデート前述のように、デザインで使用されている Block Memory Generator IP には、IP カタログにさらに新しいバージョンがあります。従って、IP カタログにある最新バージョンにアップグレードしないと、この IP はカスタマイズできないので、現在のバージョンの IP はロックされています。プロジェクトに XCI を追加すると、次のような警告メッセージが表示されます。WARNING: [IP_Flow 19-2162] IP 'blk_mem_gen_v7_3_0' is locked:* IP definition 'Block Memory Generator (7.3)' for IP 'blk_mem_gen_v7_3_0' has a newer major version in the IP Catalog.Please select 'Report IP Status' from the 'Tools/Report' menu or run Tcl command 'report_ip_status' for more information.

インタラクティブなセッションであれば、このメッセージは役立つのですが、バッチ モードのスクリプトでは、このメッセージは合成またはインプリメンテーション エラーが出るまで表示されません。これを未然に防ぐには、スクリプトを次の目的で使用できます。• IP がロックされているかどうかの判断。• IP カタログにさらに新しいバージョンがないかどうかをチェック。• IP がロックされていて、新しいバージョンがある場合は、IP をアップグレード。このためには、次の手順に従います。1. IP がロックされているかどうかを確認し、Tcl 変数にそのステートを格納します。Tcl スクリプトに次の行を追加

します。set locked [get_property IS_LOCKED [get_ips blk_mem_gen_v7_3_0]]

2. 次に、IP カタログにさらに新しいバージョンがあるかどうかを確認し、その情報を Tcl 変数に格納します。Tcl スクリプトに次の行を追加します。set upgrade [get_property UPGRADE_VERSIONS [get_ips blk_mem_gen_v7_3_0]]

これで、さらに新しいバージョンがある場合は、そのアップグレード版の VLNV (Vender/Library/Name/Version)ID が返されます。アップグレード版がなければ、この変数には空の文字列 (””) が含まれます。blk_mem_gen_v7_3_0 IP の場合は、新しいバージョンがあります。

3. IP がロックされているかどうか、その IP のアップグレード版があるかとうかを確認するには、格納された Tcl 変数 $locked および $upgrade をチェックします。IP の新しいバージョンがある場合は、それをアップグレードします。

4. Tcl スクリプトに次の行を追加します。if {$upgrade != "" && $locked} {upgrade_ip [get_ips blk_mem_gen_v7_3_0]}

これで、Block Memory Generator IP がデザインで使用されている現在のバージョンから、IP カタログにある最新バージョンにアップグレードされます。Accumulator コアは ISE Design Suite の CORE™ Generator で作成されたレガシ IP であって、Vivado® DesignSuite で作成されたネイティブ IP ではありません。デザインへの HDL モジュールのインスタンシエーション、合成、シミュレーションに必要な出力ファイルは、この IP にあります。タイミング制約はありませんが、現在の状態でこの IP を使用することは可能です。ただし、可能な限り、レガシ IP はネイティブの Vivado IP にアップグレードする必要があります。こうしておくと、IP のアップデートや修正、配布される XDC 制約を最新のものにしておくことができます。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 40

Page 41: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

5. 次の手順 1 から 3 に沿って、Accumulator IP がロックされているかどうか、アップグレード版があるかどうかを確認し、アップグレード版があれば IP をアップグレードし、出力ファイルを生成するためのコマンドを Tcl スクリプトに追加します。この IP をアップグレードしている最中に警告メッセージが表示されます。この IP のインスタンシエーション テンプレートに大文字が使用されていることを警告するメッセージなのですが、どのHDL ソースでも大文字は使用されるので、無視しても問題はありません。WARNING: [IP_Flow 19-3501] Upgraded Accumulator from Accumulator 11.0 toAccumulator 12.0, with warnings. Please review the upgrade log.

手順 7: IP 用デザイン run の設定IP をすべて最新版にアップグレードしたので、オプションで、IP 用のアウト オブ コンテキスト合成 run を設定し起動できます。手順 5 で既に、Clocking Wizard IP でアウト オブ コンテキスト フローを使用しないように設定しています。FIFO Generator IP はインポートしたときに、DCP を含め、必要な出力ファイルがすべて生成されています。ところが、Block Memory Generator および Accumulator IP の出力ファイルは生成されていません。プロジェクト フローでは、IP が最新版であれば、DCP を含め、すべての出力ファイルが自動的に生成されます。ただし、この手順をスクリプトにすることも可能です。プロジェクトにある IP コアのデザイン run を手動で作成し起動する理由の 1 つは、複数あるアウト オブ コンテキスト合成プロセスを同時実行させるためです。デフォルトでは、これらは順次起動されます。

Accumulator IP のデザイン run の作成および起動合成デザイン チェックリスト (DCP) を生成するには、IP デザイン run をまず作成する必要があります。1. Tcl スクリプトに次を追加します。

create_ip_run [get_ips Accumulator]

<ip_name>_synth_1 という名前で、IP の run が新しく作成されます。IP デザイン run は launch_runs コマンドを使用して起動します。

2. スクリプトに次を追加します。launch_runs [get_runs Accumulator_synth_1]

run が起動し、合成デザイン チェックポイントがプロジェクトに追加されたら完了です。IP run を起動しない場合は、最上位を合成すると自動的に起動します。複数の IP run を作成した場合、これらの run は順次起動します。並行して起動するには、launch_runs コマンドを使用する必要があります。最上位ロジックを合成しているとき、IP のブラック ボックスが推論されます。インプリメンテーション中に DCP が開き、ネットリストが読み込まれ、制約が適用されます。最上位合成 run を起動すると、IP run が完了するまで自動的に待機するので、各 IP run に wait_on_run コマンドを配置する必要はありません。注記: 複数の IP で並行して DCP を生成する必要がある場合は、次のいずれかを実行します。• すべての run をまず作成してから、それらをすべて起動します。• IP run を 1 つ作成して、それを起動し、また別の IP run を作成して起動します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 41

Page 42: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 8: 合成およびインプリメンテーションの起動プロジェクトは合成およびインプリメンテーションに進む準備が整いました。Vivado® Design Suite では、プロジェクトに使用されているさまざまな IP に必要な生成ファイルが随時自動生成されます。合成、シミュレーション、インプリメンテーションでこれらの生成ファイルを使用する前に、ファイルを変更する必要がない限り、手動でこれらのファイルを生成する必要はありません。プロジェクト モードでは、Vivado Design Suite でデザイン run を使用し、デザインのステートを管理することにより、合成およびインプリメンテーションの詳細が管理されます。したがって、プロジェクトベースのデザインで合成およびインプリメンテーションを実行するには、launch_runs コマンドを使用します。1. Tcl スクリプトに次の行を追加します。

launch_runs synth_1

デフォルトで、synth_1 という名前の合成 run が各プロジェクトに作成されます。create_run コマンドを使用して新しい run を手動で作成したり、set_property コマンドを使用して run のプロパティを設定したりもできます。run の作成および設定の詳細は、『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』(UG892) を参照してください。合成 run が完了したら、インプリメンテーション run を起動できます。ただ、インプリメンテーション run は合成 run の終了に依存しているので、wait_on_run コマンドを使用して、合成が完了するまで Tcl スクリプトを待機させる必要があります。

2. スクリプトに次の 2 行を追加します。wait_on_run synth_1launch_runs impl_1 -to_step write_bitstream

合成 run (synth_1) が完了すると、インプリメンテーション run (impl_1) が開始します。インプリメンテーションには複数のステップがあり、まずネットリスト最適化が開始し、配置配線が実行されますが、ザイリンクスFPGA のビットストリーム生成も含めることができます。Tcl スクリプトに追加した -to_step オプションは、インプリメンテーションにビットストリーム生成のステップも含められることを示してします。デフォルトでは、インプリメンテーションにこのステップは含まれていません。詳細は、『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) を参照してください。

ヒント: または、write_bitsteam コマンドを使用します。この場合、まずは open_run コマンドでインプリメンテーション run を開いておく必要があります。インプリメンテーションを開始する前に合成が完了するのを待機したように、インプリメンテーションが完了するまで、レポート生成や Tcl スクリプトの終了を待ちます。

3. インプリメンテーション run が完了するまで Tcl スクリプトを待機させるため、wait_on_run コマンドをスクリプトに追加します。wait_on_run impl_1

これで、インプリメンテーション run が完了するまでスクリプトは待機します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 42

Page 43: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 9: スクリプトの実行スクリプトを実行する準備が完了しました。スクリプトは次のようになっているはずです。#Step 1: Create Projectcd C:/ug939-design-files/lab_3create_project -force -part xc7k70tfbg484-3 my_project my_project#Step 2: Adding RTL Filesadd_files -scan_for_includes ../Lab_3_4_sources/HDLimport_files#Step 3: Adding XDC Filesimport_files -fileset constrs_1 \{../Lab_3_4_sources/Constraints/top_timing.xdc \../Lab_3_4_sources/Constraints/top_physical.xdc}set_property used_in_synthesis false [get_files top_physical.xdc]#Step 4: Importing IPimport_ip {../Lab_3_4/sources/IP/Accumulator/Accumulator.xco \../Lab_3_4_sources/IP/blk_mem/blk_mem_gen_v7_3_0.xci \../Lab_3_4_sources/IP/clk_wiz/clk_wiz_0.xci \../Lab_3_4_sources/IP/char_fifo/char_fifo.xci}#Step 5: Disable XDCset_property generate_synth_checkpoint false [get_files clk_wiz_0.xci]generate_target all [get_files clk_wiz_0.xci]set clk_wiz_xdc [get_files -of_objects [get_files \clk_wiz_0.xci] -filter {FILE_TYPE == XDC}]set_property is_enabled false [get_files $clk_wiz_xdc]#Step 6: Upgrade IPset locked [get_property IS_LOCKED [get_ips blk_mem_gen_v7_3_0]]set upgrade [get_property UPGRADE_VERSIONS [get_ips blk_mem_gen_v7_3_0]]if {$upgrade != "" && $locked} {upgrade_ip [get_ips blk_mem_gen_v7_3_0]}set locked [get_property IS_LOCKED [get_ips Accumulator]]set upgrade [get_property UPGRADE_VERSIONS [get_ips Accumulator]]if {$upgrade != "" && $locked} {upgrade_ip [get_ips Accumulator]}#Step 7: Launch IP runcreate_ip_run [get_ips Accumulator]launch_runs [get_runs Accumulator_synth_1]#Step 8: Launching Synthesis and Implementation launch_runs synth_1launch_runs synth_1wait_on_run synth_1launch_runs -to_step write_bitstream impl_1wait_on_run impl_1

Tcl スクリプトの実行Vivado® Design Suite ではバッチ モードまたは Tcl モードで project_run.tcl スクリプトを実行できます。• バッチ モードでは、読み出されたスクリプトが実行され、スクリプトが処理を完了すると、自動的にツールが終了します。

• Tcl モードでは、読み出されたスクリプトが実行され、スクリプトが完了すると、Tcl コマンドのプロンプトに戻ります。○ Linux:

演習ファイルが保存されているディレクトリに移動します。cd <Extract_Dir>/lab_3

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 43

Page 44: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

Vivado Design Suite Tcl シェルを起動し、チュートリアル デザインを作成するための Tcl スクリプトを実行します。vivado -mode tcl -source project_run.tcl

○ Windows:

Vivado Design Suite の Tcl シェルを起動:します。Start > All Programs > Xilinx Design Tools > Vivado 2019.1 > Vivado 2019.1 Tcl Shell

Vivado Design Suite のインストール ディレクトリは、[スタート] メニューに表示されているものとは異なる場合があります。

1. Tcl シェルで、演習ファイルが保存されているディレクトリに移動します。Vivado% cd <extract_dir>/lab_3

2. デザインを作成する Tcl スクリプトを実行します。Vivado% source project_run.tcl

スクリプトが完了すると、次の図のように Tcl シェルに Vivado% プロンプトが表示されます。

重要: Tcl スクリプトにエラーがあると、エラーが発生した時点でスクリプトは実行を停止します。このエラーを修正し、Tcl スクリプトを再実行する必要があります。Tcl モードで実行している場合は、 close_project で現在のプロジェクトを閉じるか、または、Tcl スクリプトを再び実行するため、Vivado を終了する必要があります。

スクリプトを実行した後、プロジェクト ディレクトリが作成され、デフォルトのログおよびレポートが生成され、合成済みネットリストが生成され、デザインが完全にインプリメントされ、ビットストリームが生成されます。デザインや各種レポートの確認、デザインでの解析実行には、 Vivado IDE を使用できます。

3. Tcl プロンプトから GUI を開くには、次のように入力します。start_gui

まとめデザイン プロジェクトの作成に、Vivado® IDE を使用する必要はありません。自動レポート生成、デザイン run インフラストラクチャ、ソース ファイルの管理など、プロジェクト モードの利点は、Tcl スクリプトで利用可能です。スクリプトを実行するとデザイン プロジェクトが作成され、インタラクティブなタイミング解析やデザインの確認を実行するため、Vivado IDE で開くことができます。この演習では、特に次について説明しました。• プロジェクトの作成および HDL ソースの追加。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 44

Page 45: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

• プロジェクトへの IP ソースの追加 (ネイティブ XCI ファイルとレガシ XCO ファイルの両方)。• IP 出力ファイルの生成。• XDC ファイルなど IP 出力ファイルのディスエーブル。• 合成デザイン チェックポイント (DCP) ファイル作成のディスエーブル。• IP デザイン run の作成および起動。• IP プロパティの検索。• 最新バージョンへの IP のアップデート。

演習 4: 非プロジェクト モードでのスクリプト作成概要演習 3: プロジェクト モードでのスクリプト作成 ではプロジェクト モードで Vivado Design Suite を実行する Tcl スクリプトを作成しました。この演習では、非プロジェクト モードで Vivado ツールを実行する Tcl スクリプトを作成します。この演習で使用するコマンドの多くは、演習 3 で使用したものと同じです。プロジェクト モードと非プロジェクト モードの主な違いは、非プロジェクト モードの場合、プロジェクト ファイルやディレクトリ構造がディスクに作成されない点です。代わりに、Vivado Design Suite を使用して、インメモリ データベースで直接デザインが管理されます。非プロジェクト モードでは、ソース ファイルの参照を追加するプロジェクト ファイルや、ソース ファイルを管理するプロジェクト ディレクトリがありません。非プロジェクト モードでは、ソース ファイルを Vivado Design Suite に読み込んで、インメモリ デザインを作成します。さらに、run のストラテジや結果を保存するデザイン run のインフラストラクチャもありません。代わりに、個々にコマンドを直接呼び出して、合成およびインプリメンテーションのさまざまな段階を実行します。プロジェクト モードとは異なり、デザイン チェックポイント、ネットリスト、およびレポートは手動で生成する必要があります。非プロジェクト モードではこれらのアイテムは自動的に作成されません。プロジェクト モードおよび非プロジェクト モードの詳細は、 『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』 (UG892) を参照してください。非プロジェクト モードで作業するときは、合成デザイン チェックポイントも含め、出力ファイルを手動で生成する必要があります。注意: このチュートリアルから Tcl コマンドやスクリプト例をコピーして、Vivado Design Suite Tcl シェルや Tcl コンソールに貼り付けると、ダッシュ (-) が長いダッシュに変換されてしまうことがあり、そうするとコマンドを実行したときにエラーになります。

手順 1: デザイン ソース ファイルの読み込み1. Vivado® IDE 内で、Emacs、VI、メモ帳などのテキスト エディターを開きます。2. <Extract_Dir>/lab_4 に non_project_run.tcl という名前で新しいファイルを作成し保存します。演習 4 でプロジェクトを作成しましたが、ここでは、まずインメモリ デザインを作成し、ソース ファイルを読み込みます。ただし、Tcl スクリプトがソース ファイルを参照できるよう、スクリプトが正しいディレクトリにあることをまずは確認する必要があります。

3. この演習用のディレクトリに移動するため、Tcl スクリプトに次の行を追加します。cd <extract_dir>4/lab_4

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 45

Page 46: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

4. <extract_dir> 変数を、チュートリアル データへの実際のパスと置き換えることができます。たとえば、「C:/ug939-design-files/lab_4」と置き換えます。特に指定しなければ、デフォルトのターゲット パーツが使用されます。このターゲット パーツは、デザインに追加されているすべての IP に使用されます。ここでパーツを指定しない場合は、Vivado® Design Suite のデフォルト パーツが使用されます。また、ターゲット パーツを設定しておくと、最上位デザインを合成するとき、またはアウト オブ コンテキスト合成で IP を合成するときに、パーツを指定する手間が省けます。

5. 使用するパーツを設定するには、次の行をスクリプトに追加します。set_part xc7k70tfbg484-3

推奨: 非プロジェクト モードの場合は、インメモリ プロジェクトを作成しない限り、プロジェクト パーツはありません。インメモリ プロジェクトを作成しない場合は、Vivado Design Suite リリースのデフォルト パーツを使用して IPの出力ファイルが生成されます。このデフォルト パーツは、synth_design コマンドで指定されるターゲット パーツでない場合もあり、非プロジェクト モードの場合は、IP と最上位デザインとの間で合成結果が一致しなくなる可能性があります。カスタマイズされた IP のターゲット パーツがどのように指定されているかを確認するには、「演習 2:再利用可能な IP の作成および管理」を参照してください。デザインのソース ファイルを読み込む準備が整いました。プロジェクト モードでは、ソース ファイルをプロジェクトに追加するのに、add_files や import_files などのコマンドを使用します。非プロジェクト モードでは、add_files を使用できます。このコマンドは、適切な下位コマンドを呼び出しますが、ファイル タイプを直接読み出すために使用されるのが一般的です。これは、ASIC ツール フローに似ています。この演習では、Verilog ソース ファイルを使用して作業しており、これらを読み込むのに read_verilogを使用します。

6. このプロジェクト用の Verilog ソース ファイルをすべて読み込むため、スクリプトに次の行を追加します。read_verilog [glob ../Lab_3_4_sources/HDL/*.v]

ヒント: glob コマンドは、ビルトインされた Tcl コマンドで、指定されたオブジェクトのリストを作成します。または、read_verilog へ渡すための Tcl リストを作成したり、各ファイルに read_verilog コマンドを使用したりすることもできます。

手順 2: 既存 IP の追加1. 次の IP コアをデザインに読み込みます。

• Accumulator: レガシの CORE Generator IP で、出力ファイルまたは NGC はありません。• FIFO Generator: 2016.1 バージョンのネイティブ IP で、DCP を含むすべての出力ファイルがあります。• Clocking Wizard:: 2016.1 バージョンのネイティブ IP で、出力ファイルはありません。• Block Memory Generator:: Vivado Design Suite の古いバージョンのネイティブ IP で、出力ファイルは生成されていません。

Accumulator IP 以外のこれらすべての IP は、ネイティブ Vivado コアです。これらは既にカスタマイズされていて、ザイリンクス コア インスタンス ファイルが用意されています。Accumulator IP はレガシの CORE Generatorログ ファイル (XCO) です、FIFO Generator IP には必要な出力ファイルがすべて既に揃っており、現在の位置から読み出して直接使用できる状態です。IP をカスタマイズするときは、必ず使用可能な出力ファイルをすべて生成する必要があります。

2. FIFO Generator IP を、現在揃っている出力ファイルもすべて含めて読み込むには、次の行をスクリプトに追加します。read_ip ../Lab_3_4_sources/IP/char_fifo/char_fifo.xci

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 46

Page 47: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

3. Block Memory、Accumulator、Clocking Wizard IP のサブディレクトリを含めたローカル ディレクトリを作成するには、次の行を Tcl スクリプトに追加します。file mkdir IP/blk_memfile mkdir IP/clk_wizfile mkdir IP/accum

4. 現在の IP リポジトリから必要な XCI ファイルをローカル ディレクトリにコピーするには、Tcl スクリプトに次の行を追加します。file copy -force ../Lab_3_4_sources/IP/blk_mem/blk_mem_gen_v7_3_0.xci ./IP/blk_memfile copy -force ../Lab_3_4_sources/IP/clk_wiz/clk_wiz_0.xci ./IP/clk_wizfile copy -force ../Lab_3_4_sources/IP/Accumulator/Accumulator.xco ./IP/accum

-force オプションを使用すると、同じファイルが既に存在する場合、ファイルを上書きします。重要: -force オプションを使用しない場合は、エラーが返され、スクリプトが終了します。

Clocking Wizard IP に対しては、デザインを合成する前に、出力ファイルを生成しておく必要があります。非プロジェクト モードでは、出力ファイルは自動的には Vivado® Design Suite により生成されず、合成を起動する前に出力ファイルを生成していない場合は、エラーになります。出力ファイルを生成すると、IP の XCI ファイルが読み出されているディレクトリに、ファイルおよびディレクトリが書き込まれます。Manage IP リポジトリでは、これらのディレクトリが読み出し専用であったり、リビジョン管理されていたりする可能性があります。この場合、インメモリ デザインに XCI ファイルを読み込む前に、必要な XCI ファイルをローカル ディレクトリにコピーしておきます。

重要: XCI ファイルはそれぞれ別のディレクトリに保存してください。出力ファイルが生成されると、これらのファイルは XCI ファイルと同じディレクトリに書き込まれます。IP ファイルが同じディレクトリに書き込まれると、異なるIP の出力ファイルが互いに上書きしてしまう可能性があります。5. 必要な XCI ファイルを読み込むには、Tcl スクリプトに次の行を追加します。

read_ip ./IP/blk_mem/blk_mem_gen_v7_3_0.xciread_ip ./IP/clk_wiz/clk_wiz_0.xciread_ip ./IP/accum/Accumulator.xco

指定した XCI ファイルがインメモリ デザインに読み込まれます。演習 3 とは違い、read_ip コマンドを使用して IP が処理されても、ロックされている IP に関した警告メッセージは表示されません。プロジェクト モードでは、IP がプロジェクトに追加されると、Vivado Design Suite によりチェックが実行されるので、演習 3 の手順 4: 既存 IP の追加で見られるような警告メッセージが表示されます。非プロジェクト モードでは、これらのチェックは IP が合成中に処理されたときにのみ実行されます。

手順 3: XDC ファイルのディスエーブルプロジェクト モードでは、IP の XDC ファイルが配布される場合、そのファイルは自動的に処理され、インメモリ デザインに追加されます。このデザインの場合、最上位 XDC ファイルに制約があり、それを適用するので、ClockingWizard IP に含まれている XDC ファイルをディスエーブルにします。ただし、Clocking Wizard IP の出力ファイルは生成されていないので、まずはその出力ファイルを生成する必要があります。この中に XDC ファイルも含まれます。IP の XCI ファイルを含む出力ファイルを生成するとき、合成デザイン チェックポイント (DCP) の作成を含む OOC フローを使用するかどうか、または IP を最上位デザインの一部として合成するかどうかを決める必要があります。Clocking Wizard に対しては、XDC を使用しないよう設定する必要があります。つまり、DCP を使用しないよう、IPを設定する必要があります。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 47

Page 48: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

1. 合成デザイン チェックポイントを使用しないよう、IP を設定するには、スクリプトに次の行を追加します。set_property generate_synth_checkpoint false [get_files clk_wiz_0.xci]

これで、最上位での合成が完了すると、DCP ではなく、RTL 出力ファイルが使用されます。プロジェクト フローとは異なり、出力ファイルは自動的に生成されません。随時手動で作成する必要があります。

2. Tcl スクリプトに generate_target コマンドを追加します。generate_target all [get_ips clk_wiz_0]

ソースの IP リポジトリから XCI ファイルをローカル ディレクトリにコピーしたので、出力ファイルは、そのローカル ディレクトリに書き込まれます。

ヒント: IP でサポートされている出力ファイルを確認するには、IP に対し report_property コマンドを実行するか、または、IP から KNOWN_TARGETS プロパティを取得するため get_property を実行します。たとえば、次の行はスクリプトに追加しないでください。report_property [get_ips clk_wiz_0]get_property KNOWN_TARGETS [get_ips clk_wiz_0]

複数の出力ファイルを生成する場合は、{synthesis instantiation_template} などのコマンドにリストを渡します。Clocking Wizard で配布される XDC をディスエーブルにするには、ファイルの名前が必要です。get_files コマンドに -of_objects および -filter オプションを指定して、IP で配布される XDC ファイルを検索します。3. Clocking Wizard IP の XDC ファイル名を Tcl 変数に取り込むには、スクリプトに次の行を追加します。

set clk_wiz_xdc [get_files -of_objects \[get_files clk_wiz_0.xci] -filter {FILE_TYPE == XDC}]

これで、Clocking Wizard で配布される XDC ファイルの名前が返されます。4. XDC ファイルをディスエーブルにするには、スクリプトにこの行も追加します。

set_property is_enabled false [get_files $clk_wiz_xdc]

clk_wiz IP で配布される XDC ファイルは、スクリプトを実行するとディスエーブルになります。どの XDC ファイルが評価され、どういう順序でファイルが処理されるのかをチェックするには、report_compile_order コマンドに -constraints オプションを指定します。

手順 4: IP のアップデートこの時点で合成を実行しようとすると、Block Memroy Generator IP に対し、次のような警告メッセージが表示されます。WARNING: [IP_Flow 19-2162] IP 'blk_mem_gen_v7_3_0' is locked:* IP definition 'Block Memory Generator (7.3)' for IP 'blk_mem_gen_v7_3_0'has a newer major version in the IP Catalog.Please select 'Report IP Status' from the 'Tools/Report' menu or run Tclcommand 'report_ip_status' for more information..

Block Memory Gnerator は最新版ではないのでロックされています。また、出力ファイルもないので、この IP をアップグレードしないと出力ファイルは生成できません。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 48

Page 49: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

Accumulator に関しても同じようなメッセージが表示されます。Block Memory Generator および Accumulator はどちらも、ザイリンクス IP カタログにさらに新しいバージョンがあります。インタラクティブなデザイン セッションであれば、こうしたメッセージは役立つのですが、バッチ モードの Tcl スクリプトでは、これらのメッセージは合成またはインプリメンテーション エラーが出るまで表示されません。これを未然に防ぐには、スクリプトを次の目的で使用できます。• IP がロックされているかどうかの判断。• IP カタログにさらに新しいバージョンがないかどうかをチェック。• IP がロックされていて、新しいバージョンがある場合は、IP をアップグレード。• IP の出力ファイルを生成。この作業を次の手順に従いながら、blk_mem_gen_v7_3_0 IP に対して実行します。1. まず、IP がロックされているかどうかを確認し、Tcl 変数にそのステートを格納します。Tcl スクリプトに次の行

を追加します。set locked [get_property IS_LOCKED [get_ips blk_mem_gen_v7_3_0]]

2. 次に、IP カタログにさらに新しいバージョンがあるかどうかを確認し、その情報を Tcl 変数に格納します。Tcl スクリプトに次の行を追加します。set upgrade [get_property UPGRADE_VERSIONS [get_ips blk_mem_gen_v7_3_0]]

これで、さらに新しいバージョンがある場合は、そのアップグレード版の VLNV (Vender/Library/Name/Version)ID が返されます。アップグレード版がなければ、この変数には空の文字列 (””) が含まれます。blk_mem_gen_v7_3_0 IP の場合は、新しいバージョンがあります。

3. IP がロックされているかどうか、その IP のアップグレード版があるかとうかを確認するには、格納された Tcl 変数 $locked および $upgrade をチェックします。 IP の新しいバージョンがある場合は、それをアップグレードします。Tcl スクリプトに次の行を追加します。if {$locked && $upgrade != ""} {upgrade_ip [get_ips blk_mem_gen_v7_3_0]}

これで、Block Memory Generator IP がデザインで使用されている現在のバージョンから、IP カタログにある最新バージョンにアップグレードされます。

4. IP をアップグレードできたので、次の行をスクリプトに追加します。generate_target all [get_ips blk_mem_gen_v7_3_0]

Accumulator コアは CORE Generator で作成されたレガシ IP であって、Vivado® Design Suite で作成されたネイティブ IP ではありません。デザインへの HDL モジュールのインスタンシエーション、インプリメンテーション、シミュレーションに必要な出力ファイルがこの IP にある場合は、その出力ファイルをそのまま使用できる可能性があります。ただし、可能な限り、レガシ IP はネイティブの Vivado® IP にアップグレードする必要があります。こうしておくと、IP のアップデートや修正、それと共に配布される XDC 制約を最新のものにしておくことができます。

5. 次の手順 1 から 4 に沿って、Accumulator IP がロックされているかどうか、アップグレード版があるかどうかを確認し、アップグレード版があれば IP をアップグレードし、出力ファイルを生成するためのコマンドを Tcl スクリプトに追加します。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 49

Page 50: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

手順 5: IP の DCP の作成Vivado® のデフォルト フローでは、IP の合成デザイン チェックポイントが使用されます。非プロジェクト フローでIP を参照する場合は、通常、Manage IP プロジェクトを使用して IP をカスタマイズします。その時点までに、出力ファイルを生成して DCP の使用をディスエーブルにしているか、または DCP を生成しておきます。FIFO Generator IP(char_fifo) の場合は、DCP を含め、すべての出力ファイルを生成してあります。ほかの 3 つの IP は、XCI またはXCO ファイルのみで構成されているため、合成オプションを設定する必要があります。IP の DCP を作成するか、または最上位ロジックで合成するように設定します。手順 3 では、Clocking Wizard IP の XCI ファイルでプロパティを設定し、DCP を使用しないように設定しました。この時点で、Accumulator および Block Memory Generator IP の DCP を生成します。Accumulator および Block Memory Generator IP の DCP を作成するため、スクリプトに次の 2 行を追加します。synth_ip [get_ips Accumulator]synth_ip [get_ips blk_mem_gen_v7_3_0]

これで DCP ファイルが IP の XCI ファイルが含まれているディレクトリに作成および保存されます。

手順 6: 合成の実行このデザインには、top_timing.xdc および top_physical.xdc の 2 つの XDC ファイルが必要です。1 つ(top_timing.xdc) は合成およびインプリメンテーションの両方に使用され、もう 1 つ (top_physical.xdc) はインプリメンテーション中にのみ使用されます。この時点で、Tcl スクリプトで read_xdc を使用して、合成およびインプリメンテーションの両方で使用される XDCファイルを読み込む必要があります。1. Tcl スクリプトに次を追加します。

read_xdc ../Lab_3_4_sources/Constraints/top_timing.xdc

これでデザインの合成準備ができました。非プロジェクト モードでは、プロジェクト モードとは違い、起動すべきデザイン run はなく、また、使用されるストラテジやデザインのステートを管理するインフラストラクチャもありません。したがって、合成およびインプリメンテーションのさまざまな段階を手動で起動します。

2. 合成の場合は、synth_design コマンドを使用します。Tcl スクリプトに次を追加します。synth_design -top sys_integration_top

既にインメモリ プロジェクトを作成し、ターゲット パーツを設定しているので、ターゲット パーツをここで定義する必要はありませんが、synth_design コマンドを使用して最上位モジュール名を指定する必要があります。手順 1 でインメモリ デザインにさまざまな Verilog ファイルを読み込んであるので、デザインのソース ファイルを読み込むときに、`include 文を使用してほかのファイルを参照はしません。参照する場合は、-include_dirs オプションを使用して`include 検索ディレクトリを定義する必要があります。合成後、結果を保存するためデザイン チェックポイントを生成する必要があります。こうしておくと、再度合成を実行しなくても、任意時に合成済みデザインを復元できます。

3. Tcl スクリプトに次の write_checkpoint コマンドを追加します。write_checkpoint -force post_synth.dcp

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 50

Page 51: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

-force オプションは、同じチェックポイント ファイルが既に存在する場合、ファイルを上書きするために使用されます。この時点で、合成後のタイミング サマリ レポートなど、必要なレポートを生成することもできます。

4. Tcl スクリプトに次の行を追加します。report_timing_summary -file timing_syn.rpt

このコマンドにより、デザインの完全タイミング レポートが作成され、ファイルにそのレポートが書き込まれます。

手順 7: インプリメンテーションの実行合成が完了したので、インプリメンテーションをスクリプト化します。インプリメンテーションには、プロジェクトモードと非プロジェクト モードの両方で、多くのステップがあります。ただし、プロジェクト モードの場合は、さまざまなステップをすべて制御するデザイン run ストラテジを選択して、それを実行します。非プロジェクト モードの場合は、デザイン run を使用せず、インプリメンテーションの各ステップを手動で実行し、各ステップで使用するTcl コマンド オプションを選択して、インプリメンテーション ストラテジを決定する必要があります。また、ロジック最適化、消費電力最適化、物理合成など、一部のステップを省略するよう選択することも可能です。この演習では、次のステップを実行します。• ロジック最適化: opt_design

• 配置: place_design

• 物理合成: phys_opt_design

• 配線: route_design

• ビットストリーム生成: write_bitstream

各ステップの詳細は、『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) を参照してください。各ステップ間で、インプリメンテーションのさまざまな段階のデザインを保存するため、レポートを生成したり、チェックポイントを書き出したりできます。インプリメンテーションを起動する前に、インプリメンテーションのみで使用されるデザイン制約を読み込んでおく必要があります。XDC ファイル top_physical.xdc には、インプリメンテーションで使用される物理制約が含まれていますが、これを合成には適用しないでください。このケースでは、合成でこれらの制約が無視されるので、合成前にインメモリ デザインに読み込んでおくことが可能でしたが、合成では使用されない異なったタイミング制約がこのファイルに含まれている可能性もあるので、合成の後、インプリメンテーションの直前にファイルを読み込む必要があります。1. Tcl スクリプトに次の行を追加します。

read_xdc ../Lab_3_4_sources/Constraints/top_physical.xdc

2. Tcl スクリプトに最適化および配置コマンドを追加します。opt_designplace_designwrite_checkpoint -force post_place.dcpreport_timing -file timing_place.rpt

配置が完了すると、スクリプトにより配置後のチェックポイントが書き出され、カスタムのタイミング レポートが作成されます。このレポートには、デザインのワースト タイミング パスの詳細が記載されています。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 51

Page 52: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

3. Tcl スクリプトに物理合成および配線コマンドを追加します。phys_opt_designroute_designwrite_checkpoint -force post_route.dcpreport_timing_summary -file timing_summary

配線が完了すると、スクリプトにより配線後のデザイン チェックポイントが書き出され、タイミング サマリ レポートが作成されます。

4. 最後に、次の行を追加して、ビットストリームが生成されます。write_bitstream -force sys_integration_top.bit

IP を使用した設計を含め、RTL ソース ファイルからデザインをインプリメントし、ビット生成までの非プロジェクトモードのデザイン フローがこれで完了しました。

手順 8: スクリプトの実行Tcl スクリプトを実行する準備が完了しました。スクリプトは次のようになっているはずです。#Step 1: Reading RTLcd C:/ug939-design-files/lab_4set_part xc7k70t-fbg484-3read_verilog [glob ../Lab_3_4_sources/HDL/*.v]#Step 2: Adding Existing IPread_ip ../Lab_3_4_sources/IP/char_fifo/char_fifo.xcifile mkdir IP/blk_memfile mkdir IP/clk_wizfile mkdir IP/accumfile copy -force ../Lab_3_4_sources/IP/blk_mem/blk_mem_gen_v7_3_0.xci ./IP/blk_memfile copy -force ../Lab_3_4_sources/IP/clk_wiz/clk_wiz_0.xci ./IP/clk_wizfile copy -force ../Lab_3_4_sources/IP/Accumulator/Accumulator.xco ./IP/accumread_ip ./IP/blk_mem/blk_mem_gen_v7_3_0.xciread_ip ./IP/clk_wiz/clk_wiz_0.xciread_ip ./IP/accum/Accumulator.xco#Step 3: Disable DCP and XDCset_property generate_synth_checkpoint false [get_files clk_wiz_0.xci]generate_target all [get_ips clk_wiz_0]set clk_wiz_xdc [get_files -of_objects [get_files \clk_wiz_0.xci] -filter {FILE_TYPE == XDC}]set_property is_enabled false [get_files $clk_wiz_xdc]#Step 4: Upgrade IPset locked [get_property IS_LOCKED [get_ips blk_mem_gen_v7_3_0]]set upgrade [get_property UPGRADE_VERSIONS [get_ips blk_mem_gen_v7_3_0]]if {$upgrade != "" && $locked} {upgrade_ip [get_ips blk_mem_gen_v7_3_0]}generate_target all [get_ips blk_mem_gen_v7_3_0]set locked [get_property IS_LOCKED [get_ips Accumulator]]set upgrade [get_property UPGRADE_VERSIONS [get_ips Accumulator]]if {$upgrade != "" && $locked} {upgrade_ip [get_ips Accumulator]}generate_target all [get_ips Accumulator]#Step 5: Creating DCP for IPsynth_ip [get_ips Accumulator]synth_ip [get_ips blk_mem_gen_v7_3_0]#Step 6: Running Synthesisread_xdc ../Lab_3_4_sources/Constraints/top_timing.xdcsynth_design -top sys_integration_top

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 52

Page 53: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

write_checkpoint -force post_synth.dcpreport_timing_summary -file timing_syn.rpt#Step 7: Running Implementationread_xdc ../Lab_3_4_sources/Constraints/top_physical.xdcopt_designplace_designwrite_checkpoint -force post_place.dcpreport_timing -file timing_place.rptphys_opt_designroute_designwrite_checkpoint -force post_route.dcpreport_timing_summary -file timing_summarywrite_bitstream -force sys_integration_top.bit

Tcl スクリプトの実行Vivado® Design Suite ではバッチ モードまたは Tcl モードで non_project_run.tcl スクリプトを実行できます。• バッチ モードでは、読み出されたスクリプトが実行され、スクリプトが処理を完了すると、自動的にツールが終了します。

• Tcl モードでは、読み出されたスクリプトが実行され、スクリプトが完了すると、Tcl コマンドのプロンプトに戻ります。

1. 演習ファイルが保存されているディレクトリに移動します。• Linux: cd <Extract_Dir>/lab_4

2. Vivado® Design Suite Tcl シェルを起動し、チュートリアル デザインを作成するための Tcl スクリプトを実行します。• Linux: vivado -mode tcl -source non_project_run.tcl

• Windows では、Vivado Design Suite Tcl シェルの起動します。[スタート] → [すべてのプログラム ] → [Xilinx Design Tools] → [Vivado 2019.x] → [Vivado 2019.x Tcl Shell]

3. Tcl シェルでは次を実行します。• 演習ファイルが保存されているディレクトリに移動します。

Vivado% cd <Extract_Dir>/lab_4

• デザインを作成する Tcl スクリプトを実行します。Vivado% source non_project_run.tcl

スクリプトが完了すると、Tcl シェルに Vivado% プロンプトが表示されます。重要: Tcl スクリプトにエラーがあると、エラーが発生した時点でスクリプトは実行を停止します。このエラーを修正し、Tcl スクリプトを再実行する必要があります。Tcl モードで実行している場合は、 close_project で現在のプロジェクトを閉じるか、または、Tcl スクリプトを再び実行するため、Vivado を終了する必要があります。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 53

Page 54: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

スクリプトを実行すると、IP という名前のディレクトリが作成されます。デザインで使用されているさまざまなIP の出力ファイルがこのディレクトリに書き込まれます。レポート、デザイン チェックポイント、ビットストリームもディスクに書き込まれます。

4. さらに解析を実行するには、Vivado IDE でデザインを開きます。Tcl プロンプトから Vivado IDE を開くには、「start_gui」と入力します。

まとめ非プロジェクト モードを使用すると、Vivado® Design Suite を最大限に制御でき、プロジェクト モードでは利用できないような高度な機能にもアクセスできます。ただし、非プロジェクト モードでも、手動でソース ファイルを管理し、ソース ファイルが変更になればデザインをアップデートし、合成およびインプリメンテーションのストラテジを手動でプランし実行する必要があります。この演習では、特に次について説明しました。• Verilog ソース ファイルの読み込みおよび IP ソースの読み出し。• 合成およびインプリメンテーションに必要な IP 出力ファイルの生成、およびそのディスエーブル。• IP に新しいバージョンがあるかどうかの検索、および新しいバージョンがあった場合のアップグレード。• IP の合成デザイン チェックポイント (DCP) の作成。• 手動による合成実行およびインプリメンテーションの個々のステップの実行。• カスタム レポートの生成。

第 2 章: チュートリアル

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 54

Page 55: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

付録 A

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

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

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

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

本語版)

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

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 55

Page 56: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

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

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

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

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

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

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

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

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

Copyright

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

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

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 56

Page 57: リアル を使用した設計 Vivado Design Suite チュー …...Vivado Design Suite チュート リアル IP を使用した設計 UG939 (v2019.1) 2019 年 6 月 12 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

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

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

UG939 (v2019.1) 2019 年 6 月 12 日 japan.xilinx.comIP を使用した設計 57