31
Vivado Design Suite チュートリアル IP を使用した設計 UG939 (v 2012.3) 2012 10 16

Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

Vivado Design Suite チュートリアル IP を使用した設計

UG939 (v 2012.3) 2012 年 10 月 16 日

Page 2: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

Notice of Disclaimer

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 the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; 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 Critical Applications:http://www.xilinx.com/warranty.htm#critapps.

©Copyright 2012 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.

本資料は英語版 (v2012.3) を翻訳したもので、内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあります。

日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

この資料に関するフィードバックおよびリンクなどの問題につきましては、[email protected] までお知らせください。いた

だきましたご意見を参考に早急に対応させていただきます。なお、このメール アドレスへのお問い合わせは受け付けておりません。あらかじめ

ご了承ください。

日付 変更内容

2012 年 9 月 12 日 初版

2012 年 10 月 16 日 2012.3 Vivado IDE GUI の変更に合わせて説明を更新

Page 3: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

IP を使用した設計 http://japan.xilinx.com 3 UG939 (v 2012.3) 2012 年 10 月 16 日

目次

IP を使用した設計 ........................................................................................................................................................ 1

Vivado チュートリアル : IP を使用した設計 ............................................................................................. 5

概要....................................................................................................................................................... 5

ソフトウェア要件 .................................................................................................................................... 6

ハードウェア要件 .................................................................................................................................. 6

チュートリアル デザインの説明 ............................................................................................................ 6

チュートリアル デザイン ファイルのディレクトリ .................................................................................... 6

演習 1 : IP カタログを使用した設計 ........................................................................................................ 7

手順 1 : Vivado IDE の起動 ................................................................................................................ 7

手順 2 : project_wave_gen_ip を開く ................................................................................................... 7

手順 3 : IP カタログの起動 ................................................................................................................... 9

手順 4 : FIFO Generator の選択とカスタマイズ ................................................................................... 9

手順 5 : IP ソースの生成 .................................................................................................................... 12

手順 6 : デザインへの IP のインスタンシエーション .......................................................................... 13

まとめ ................................................................................................................................................... 15

演習 2 : スタンドアロン IP の作成と検証................................................................................................ 16

手順 1 : Vivado IDE の起動 .............................................................................................................. 16

手順 2 : 新規 Vivado プロジェクトの作成 .......................................................................................... 16

手順 3 : FIFO Generator の選択とカスタマイズ ................................................................................. 18

手順 4 : IP ソースの生成 .................................................................................................................... 20

手順 5 : IP ネットリストの作成 ............................................................................................................. 21

まとめ ................................................................................................................................................... 23

演習 3 : IP パッケージ化の手順 ............................................................................................................ 24

手順 1 : my_complex_mult プロジェクトを開く .................................................................................. 24

手順 2 : IP パッケージャーの起動 ..................................................................................................... 25

手順 3 : IP の ID 情報の追加 ............................................................................................................ 26

手順 4 : 新規 IP パッケージへの資料の追加 ................................................................................... 27

手順 5 : ZIP ファイルへの IP の パッケージ ...................................................................................... 28

Page 4: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

IP を使用した設計 japan.xilinx.com 4 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 6 : IP カタログへの新規 IP の追加 ............................................................................................ 28

手順 7 : [Customize IP] ダイアログ ボックスでの新規 IP の確認 ...................................................... 30

手順 8 : 合成とインプリメンテーションを実行した新規 IP の検証 .................................................... 31

まとめ ................................................................................................................................................... 31

Page 5: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

IP を使用した設計 http://japan.xilinx.com 5 UG939 (v 2012.3) 2012 年 10 月 16 日

第 1 章

Vivado チュートリアル : IP を使用した設計

概要 Vivado™ Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム

を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado IP カタログ

は、IP 中心のデザイン フローの枠組みとなるユニファイド IP リポジトリで、ザイリンクス IP、サードパーテ

ィ IP、IP として再利用することを目的にしたエンドユーザー デザインをはじめ、すべてのソースを 1 つの

環境にまとめたものです。

Vivado IP パッケージャーは、IP-XACT 規格に基づいたデザイン再利用ツールで、デザイン フローの

任意段階でデザインをパッケージし、システム レベルの IP としてコアを配布します。

このチュートリアルでは、次の内容を学びます。

演習 1 : IP が含まれていない既存の Vivado IDE デザインを開き、IP カタログから IP を選択してカ

スタマイズし、それをデザインにインスタンシエートします。

演習 2 : 新しい Vivado IDE プロジェクトを作成し、IP カタログからの IP を最上位ソースとして含め、

その IP をカスタマイズして検証します。その後、別のデザインに含めるための IP のネットリストを作

成します。

演習 3 : 完成した Vivado IDE プロジェクトを開き、IP パッケージャーを使用して IP としてデザインを

パッケージし、IP カタログに追加します。その後、合成およびインプリメンテーションを実行してこの

新しい IP を検証します。

Page 6: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

ソフトウェア要件

IP を使用した設計 japan.xilinx.com 6 UG939 (v 2012.3) 2012 年 10 月 16 日

ソフトウェア要件 このチュートリアルには、Vivado Design Suite 2012.3 またはそれ以降のバージョンのものが必要です。

ハードウェア要件 サポートされているオペレーティング システムは、Redhat 5.6 Linux 64、Windows 7、Windows XP (32 および 64 ビット) です。

Vivado ツールを使用するには、2GB 以上の RAM が推奨されます。

チュートリアル デザインの説明 演習 1 では、wave_gen デザインを使用し、これに IP を追加します。演習 2 では、スタンドアロン デザイ

ンとして IP を検証するための手順を学びます。演習 3 では、IP モジュールとしてデザインをパッケージ

し、それを Vivado IP カタログに追加します。

チュートリアル デザイン ファイルのディレクトリ このチュートリアルのデザイン ファイルは、ウェブサイトにある関連資料の横にリンクされています。

• japan.xilinx.com → [サポート] → [製品サポートと資料] → [デザイン ツール] → [Vivado Design Suite 資料をすべて表示] → [Vivado Design Suite - 2012.3 Tutorials] (http://japan.xilinx.com/support/documentation/dt_vivado.htm)

ug939-design-files.zip ファイルをダウンロードしたら、書き込み権のあるディレクトリにファイルを抽出しま

す。このチュートリアルでは、C ドライブにデータ ファイルが抽出されているものと想定しています。

注記 : このチュートリアルの演習では、チュートリアル デザイン データを変更します。演習を開始すると

きは常に ug939-design-files のコピーを使用してください。

Page 7: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 1 : Vivado IDE の起動

IP を使用した設計 japan.xilinx.com 7 UG939 (v 2012.3) 2012 年 10 月 16 日

演習 1 : IP カタログを使用した設計 Vivado 統合設計環境 (IDE) での IP カタログ使用方法を学習します。ザイリンクス波形ジェネレーター

のサンプル デザインを使用します。このバージョンのデザインには FIFO がないので、これをカスタマイ

ズ、生成、インスタンシエートします。

手順 1 : Vivado IDE の起動 Vivado のデスクトップ アイコンをクリックするか、ターミナル コマンド ラインで「vivado」と入力し、Vivado IDE を起動します。

手順 2 : project_wave_gen_ip を開く Getting Started ページから [Open Project] を開き、抽出した [ug939-design-files] ディレクトリを選択しま

す。[lab_1/project_wave_gen_ip] ディレクトリに移動し、[project_wave_gen_ip.xpr] を次の図のように選

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

Page 8: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 2 : project_wave_gen_ip を開く

IP を使用した設計 japan.xilinx.com 8 UG939 (v 2012.3) 2012 年 10 月 16 日

デザインが読み込まれ、Vivado IDE に次のようにプロジェクト情報が表示されます。

これは RTL プロジェクトなので、ビヘイビアー シミュレーションの実行、デザインのエラボレート、合成の

起動ができます。また、Vivado IDE にはワンボタン フローがあり、ビットリームが生成され、合成およびイ

ンプリメンテーションまで自動的に実行されます。

Page 9: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 3 : IP カタログの起動

IP を使用した設計 japan.xilinx.com 9 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 3 : IP カタログの起動 1. Flow Navigator の [Project Manager] の下にある [IP Catalog] を選択します。[IP Catalog] が次

のように表示されます。

カタログはさまざまな方法で使用できます。[Search] フィールドにキーワードを入力して検索した

り、カテゴリ別にカタログを参照したりできます。

2. [Search] フィールドに「fifo」と入力します。

手順 4 : FIFO Generator の選択とカスタマイズ 1. [Memories & Storage Elements] → [FIFOs] をクリックし、[FIFO Generator] を選択します。

2. この IP をカスタマイズするため、これをダブルクリックするか、右クリックして、[Customize IP] を選択します。[Customize IP] ビューに FIFO Generator が表示されます。

Vivado IDE で配布される IP の場合は、通常このビューが開きます。デバイス シンボルが左側

にあり、イネーブルになっているポートのみが表示されています。すべてのポートを表示させる

には [Show Disabled Ports] チェックボックスをオンにします。このデバイス シンボルにはズーム

機能があり、マウスの左ボタンでズーム表示を切り替えることができます。このデバイス ビューは IP がカスタマイズされると、それに合わせて変わります。

Page 10: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 4 : FIFO Generator の選択とカスタマイズ

IP を使用した設計 japan.xilinx.com 10 UG939 (v 2012.3) 2012 年 10 月 16 日

選択されている IP に関する詳細情報を参照するには、次に示すように、右上にある ボタ

ンを右クリックします。

3. 最初のタブ [Intf. Type] でインターフェイス タイプを設定します。このデザインには Native インタ

ーフェイスが必要で、これがデフォルトとなっています。コンポーネント名をデフォルトの

「fifo_generator_v9_3_0」から「char_fifo」に変更します。

4. [Impl. Type] タブをクリックします。ここでは FIFO のインプリメンテーション タイプを設定します。

使用する必要のあるメモリ タイプ、および独立クロックが必要かどうかを設定します。このデザイ

ンの場合は、[Independent Clocks Block RAM] が必要です。次に示すように、ドロップダウン メニューからこれを選択します。

3. [Native Ports] タブをクリックします。ここで読み出しモード、ビルトイン FIFO のオプション、デー

タ ポート パラメーター、インプリメンテーションのオプションを選択できます。このデザインの場合

は [Write Width] を 8 ビットに設定する必要があります。これを変更すると、[Read Width] の箇所

をクリックしたときに [Read Width] も自動的に変更されます。このタブのほかの部分はデフォルト

設定のままにしておきます。

4. [Flags]、[RST./P.Flags]、[Data Counts] タブをクリックして確認します。これらのタブは FIFO Generator のほかのオプションを設定するためのものです。このデザインの場合は、デフォルト設

定のままにしておきます。

Page 11: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 4 : FIFO Generator の選択とカスタマイズ

IP を使用した設計 japan.xilinx.com 11 UG939 (v 2012.3) 2012 年 10 月 16 日

5. [Summary] タブをクリックします。ここには選択したオプションと、このコンフィギュレーションで使

用されるリソースがすべて表示されています。次のようになっているはずです。

情報が正しいことを確認します。このコンフィギュレーションでは、18K BRAM を 1 つ使用してい

ます。

6. コンフィギュレーションに合わせて必要な変更を行い、確認したら [OK] をクリックします。

7. FIFO が [Sources] ビューに表示されます。[Hierarchy] タブでは最上位モジュール (wave_gen) と同じ階層になっています。[Libraries] および [Compile Order] タブでは、この IP はプロジェクト

にまだ追加されていないため [Unreferenced] フォルダーの中にあります。

[IP Sources] タブでは、この IP のソースがデフォルトで配布されているのが確認できます。

Page 12: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 5 : IP ソースの生成

IP を使用した設計 japan.xilinx.com 12 UG939 (v 2012.3) 2012 年 10 月 16 日

この IP では、合成ターゲットおよびインスタンシエーション テンプレートが配布されています。タ

ーゲット言語は Verilog (デフォルト) に設定されているため、インスタンシエーション テンプレー

トは VEO ファイルになります。

このプロセスは Tcl スクリプトで実行することもできます。Tcl コンソールを確認すると、この IP のカスタマイズ用に出力された Tcl コマンドが表示されています。

create_ip -name fifo_generator -version 9.3 -vendor xilinx.com -library ip -module_name char_fifo set_property -name CONFIG.Component_Name -value {char_fifo} -objects [get_ips char_fifo] set_property -name CONFIG.Fifo_Implementation -value {Independent_Clocks_Block_RAM} -objects [get_ips char_fifo] set_property -name CONFIG.Input_Data_Width -value {8} -objects [get_ips char_fifo] generate_target {instantiation_template synthesis} [get_files C:/ug939-design-files/lab_1/project_wave_gen_ip/project_wave_gen_ip.srcs/sources_1/ip/char_fifo/char_fifo.xci -of_objects [get_filesets sources_1]] -force

この create_ip コマンドで IP がデザインに追加され、set_property コマンドでコンフィギュレ

ーション オプションがすべて設定されます。

手順 5 : IP ソースの生成 1. [IP Sources] タブで [char_fifo] を右クリックして [Generate Output Products] を選択します。表

示されるダイアログ ボックスには、IP に対して出力可能なものが表示されます。インスタンシエ

ーション テンプレートおよび合成の出力ファイルが自動的に生成されます。各種サンプル (Examples) およびテストベンチ (Test Bench) に対するアクションは [Do Not Generate] を選択

します。これにより、生成されるのは [Simulation] のみになります。[OK] をクリックします。

[IP Sources] タブに新しい出力ファイルが表示されます。

Page 13: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 6 : デザインへの IP のインスタンシエーション

IP を使用した設計 japan.xilinx.com 13 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 6 : デザインへの IP のインスタンシエーション 1. IP をデザインにインスタンシエートします。[Instantiation Template] を展開し、

[char_fifo.veo] をダブルクリックしてファイルを開きます。これでテンプレートをコピーしてデ

ザインに貼り付けることができます。54 行目に移動し、次のようにコードをコピーします。

2. 次に、テンプレート コードをコピーして RTL コードに貼り付けます。[Sources] ビューの

[Hierarchy] タブで、[wave_gen.v] をダブルクリックして、ファイルを開きます。

Page 14: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 6 : デザインへの IP のインスタンシエーション

IP を使用した設計 japan.xilinx.com 14 UG939 (v 2012.3) 2012 年 10 月 16 日

3. 337 行目に移動し、コピーしたテンプレート コードをファイルに貼り付けます。

4. 次に、「your_instance_name」を「char_fifo_i0」に変更して、次の表にあるようにデザインと一

致するようにワイヤ名を変更します。IP のポートをデザインに正しく接続するため次を変更

します。

IP ポート RTL 接続

rst rst_i

wr_clk clk_rx

rd_clk clk_tx

din char_fifo_din

wr_en char_fifo_wr_en

rd_en char_fifo_rd_en

dout char_fifo_dout

full char_fifo_full

empty char_fifo_empty

5. この変更を行った後、コードは次のようになるはずです。

Page 15: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

まとめ

IP を使用した設計 japan.xilinx.com 15 UG939 (v 2012.3) 2012 年 10 月 16 日

6. [Save File] アイコン ( ) をクリックし、wave_gen.v ファイルを保存します。

[Hierarchy]、[Libraries]、[Compile Order] のタブがすべて更新され、IP がデザインにインスタン

シエートされます。

7. デザインをエラボレートし、接続が正しいことを確認します。Flow Navigator の [RTL Analysis] セクションで [Open Elaborated Design] をクリックします。

RTL 回路図が開き、拡大表示して char_fifo_i0 IP を確認します。[Sources] ビューの [RTL Netlist] タブで [char_fifo_i0] を選択します。回路図のセルがハイライトされます。ズームインし、

次の内容を確認します。

8. これで終了です。FIFO IP をカスタマイズし、デザインに追加しました。Vivado IDE を終了する

か、シミュレーション、または合成/インプリメンテーションへと進みます。

まとめ この演習では、IP カタログで IP を選択しそれをカスタマイズする方法と、カスタマイズした IP をデザイン

にインスタンシエートする方法を学びました。Vivado IDE の GUI、または Tcl コンソールで Tcl スクリプト

を使用して、この作業は行うことができます。

Page 16: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 1 : Vivado IDE の起動

IP を使用した設計 japan.xilinx.com 16 UG939 (v 2012.3) 2012 年 10 月 16 日

演習 2 : スタンドアロン IP の作成と検証 この演習では、Vivado IDE プロジェクトでスタンドアロンのソースとして IP を作成し検証します。IP は、

最上位デザインとしてカスタマイズ、合成、インプリメントすることができます。次に示すように、サードパ

ーティ ツールで Vivado IDE の IP を使用するには、ネットリストを作成する必要があります。

手順 1 : Vivado IDE の起動 Vivado のデスクトップ アイコンをクリックするか、ターミナル コマンド ラインで「vivado」と入力し、Vivado IDE を起動します。

手順 2 : 新規 Vivado プロジェクトの作成

1. Getting Started ページで [Create New Project] をクリックし、[Next] をクリックします。

2. [New Project] ウィンドウが開きます。最初のページで [Next] をクリックします。次の図にあるように、

[Project Name] ページの [Project name] に「project_IP」、[Project location] に「C:/ug939-design-files/lab2」と入力します。[Next] をクリックします。

Page 17: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 2 : 新規 Vivado プロジェクトの作成

IP を使用した設計 japan.xilinx.com 17 UG939 (v 2012.3) 2012 年 10 月 16 日

3. [Project Type] ページが開きます。[RTL Project] のセクションを確認して、[Do not specify sources at this time] チェックボックスをオンにします。プロジェクトが作成され、開いたら、IP を後で追加しま

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

4. [Default Part] ページが開きます。デフォルトのザイリンクス パーツまたはボードをプロジェクトに選択

します。この設定は後で変更できます。デフォルトの 7 シリーズのパーツをそのまま使用するか、別

のパーツを選択します。[Next] をクリックします。

[New Project Summary] ページが開きます。[Finish] をクリックします。

5. プロジェクトが開きます。このプロジェクトは今はブランクですが、IP カタログを使用して IP をソースと

して追加します。

Page 18: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 3 : FIFO Generator の選択とカスタマイズ

IP を使用した設計 japan.xilinx.com 18 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 3 : FIFO Generator の選択とカスタマイズ

1. Flow Navigator で [IP Catalog] をクリックします。

[IP Catalog] が開きます。この IP カタログでは、キーワードを入力して検索するか、またはカテゴ

リ別に検索します。

2. [Search] フィールドに「fifo」と入力して、[FIFO Generator] を選択します。

3. [FIFO Generator] をダブルクリックして、[Customize IP] を開きます。

Vivado IDE で配布される IP の場合は、通常このビューが開きます。デバイス シンボルが左側

にあり、イネーブルになっているポートのみが表示されています。すべてのポートを表示させる

には [Show Disabled Ports] チェックボックスをオンにします。このデバイス シンボルにはズーム

機能があり、マウスの左ボタンでズーム表示を切り替えることができます。このデバイス ビューは IP がカスタマイズされると、それに合わせて変わります。

4. 右上にある ボタンをクリックして、IP についての詳細を確認できます。

5. 1 番目のタブは [Intf. Type] で、インターフェイス タイプを設定します。このデザインには Native イン

ターフェイスが必要で、これがデフォルトとなっています。コンポーネント名をデフォルトの

「fifo_generator_v9_3_0」から「char_fifo」に変更します。

Page 19: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 3 : FIFO Generator の選択とカスタマイズ

IP を使用した設計 japan.xilinx.com 19 UG939 (v 2012.3) 2012 年 10 月 16 日

6. [Impl. Type] タブを選択します。ここでは FIFO のインプリメンテーション タイプを設定します。使用

する必要のあるメモリ タイプ、および独立クロックが必要かどうかを設定します。このデザインには、

ブロック RAM (BRAM) を使用した独立クロックが必要だということにします。次に示すように、ドロッ

プダウン メニューから [Independent Clock Block RAM] を選択します。

7. [Native Ports] タブをクリックします。ここで読み出しモード、ビルトイン FIFO のオプション、データ ポート パラメーター、インプリメンテーションのオプションを選択できます。このデザインの場合は [Write Width] を 8 ビットに設定する必要があります。これを変更すると、[Read Width] の箇所をクリ

ックしたときに [Read Width] も自動的に変更されます。このタブのほかの部分はデフォルト設定のま

まにしておきます。

8. [Flags]、[RST./P.Flags]、[Data Counts] タブをクリックして確認します。これらのタブは FIFO Generator のほかのオプションを設定するためのものです。このデザインの場合は、デフォルト設定

のままにしておきます。

9. [Summary] タブをクリックします。ここには選択したオプションと、このコンフィギュレーションで使用さ

れるリソースがすべて表示されています。次のようになっているはずです。

Page 20: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 4 : IP ソースの生成

IP を使用した設計 japan.xilinx.com 20 UG939 (v 2012.3) 2012 年 10 月 16 日

情報が正しいことを確認します。このコンフィギュレーションでは、18K BRAM を 1 つ使用してい

ることが確認できます。

10. このコンフィギュレーションに合わせて必要な変更を行います。変更を終えたら、右下にある [OK] をクリックし、プロジェクトにカスタマイズされた IP を追加します。

11. FIFO が [Sources] ビューに表示されます。[Hierarchy] タブで IP が最上位モジュールに設定されて

います。[IP Sources] タブでは、この IP のソースがデフォルトで配布されているのが確認できます。

この IP ではインスタンシエーション テンプレートおよび合成ターゲットが配布されます。ターゲッ

ト言語は Verilog (デフォルト) に設定されているため、インスタンシエーション テンプレートは VEO ファイルになります。

このプロセスは Tcl スクリプトで実行することもできます。Tcl コンソールを確認すると、この IP のカスタマイズ用に出力された Tcl コマンドが表示されています。 create_ip -name fifo_generator -version 9.3 -vendor xilinx.com -library ip -module_name char_fifo set_property -name CONFIG.Component_Name -value {char_fifo} -objects [get_ips char_fifo] set_property -name CONFIG.Fifo_Implementation -value {Independent_Clocks_Block_RAM} -objects [get_ips char_fifo] set_property -name CONFIG.Input_Data_Width -value {8} -objects [get_ips char_fifo] generate_target {instantiation_template synthesis} [get_files C:/ug939-design-files/lab2/project_IP/project_IP.srcs/sources_1/ip/char_fifo/char_fifo.xci -of_objects [get_filesets sources_1]] -force

この create_ip コマンドで IP がデザインに追加され、set_property コマンドでコンフィギュレーショ

ン オプションがすべて設定されます。

手順 4 : IP ソースの生成

1. [IP Sources] タブで [char_fifo] を右クリックして [Generate Output Products] を選択します。表示され

るダイアログ ボックスには、IP に対して出力可能なものが表示されています。インスタンシエーション テンプレートおよび合成の出力ファイルが自動的に生成されています。各種サンプル (Examples) およびテストベンチ (Test Bench) に対するアクションは [Do Not Generate] を選択します。これによ

り、生成されるのは [Simulation] のみになります。[OK] をクリックします。

Page 21: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 5 : IP ネットリストの作成

IP を使用した設計 japan.xilinx.com 21 UG939 (v 2012.3) 2012 年 10 月 16 日

[IP Sources] タブにシミュレーション出力ファイルが表示されます。

2. 必要であれば、テストベンチを作成するか、生成可能なサンプルの 1 つを使用して IP をスタンドア

ロンでシミュレーションできます。

手順 5 : IP ネットリストの作成 1. IP のネットリストをこれから作成します。波形ジェネレーター サンプル デザインの別の Vivado IDE

プロジェクトや、サードパーティ ツールでこのネットリストを使用できます。I/O バッファーの挿入をオ

フにするよう、合成を設定する必要があります。Flow Navigator の [Synthesis] セクションにある [Synthesis Settings] をクリックします。

2. [Synth Design] の下にある [-no_iobuf] のチェックボックスを次の図にあるようにオンにします。

Page 22: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 5 : IP ネットリストの作成

IP を使用した設計 japan.xilinx.com 22 UG939 (v 2012.3) 2012 年 10 月 16 日

3. [OK] をクリックして変更を保存します。これで、I/O バッファーは、IP に明示的にインスタンシエート

されない限りネットリストには挿入されなくなります。

4. Flow Navigator で [Run Synthesis] をクリックして合成を実行します。

5. 合成が完了したら、[Synthesis Completed] ダイアログ ボックスで [Open Synthesized Design] をクリッ

クしてから、[OK] をクリックし、合成されたデザインを開きます。

これで、ネットリストの確認、タイミング制約の適用、レポートの生成といった作業ができるようにな

ります。

Page 23: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

まとめ

IP を使用した設計 japan.xilinx.com 23 UG939 (v 2012.3) 2012 年 10 月 16 日

6. [File] → [Export] → [Export Netlist] をクリックして、「char_fifo.v」という名前の構造 Verilog ネットリ

ストを作成します。

Tcl コンソールで次のコマンドを使用して、ネットリストを作成することもできます。

a. write_verilog

b. write_edif

c. write_vhdl

サードパーティ シミュレータで使用できるのは、VHDL または Verilog の構造シミュレーション モデルです。このプロセス全体は、スクリプトとして記述して、バッチまたは Tcl モードで実行で

きます。

7. vivado.jou ファイルを開きます。Vivado IDE ではこのファイルは自動的に作成されます。Vivado IDE で [File] → [Open Journal File] をクリックしてこのファイルを開くことができます。先ほど GUI で行った作業の実行に使用された Tcl コマンドをすべて確認することができます。

Vivado IDE を終了します。

まとめ この演習では、スタンドアロン IP 用に新しく Vivado IDE プロジェクトを作成する方法を学びました。IP をカスタマイズし検証してから、別の Vivado IDE プロジェクトやサードパーティ ツールで使用するため

のネットリストを生成しました。

Page 24: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 1 : my_complex_mult プロジェクトを開く

IP を使用した設計 japan.xilinx.com 24 UG939 (v 2012.3) 2012 年 10 月 16 日

演習 3 : IP パッケージ化の手順 この演習では、演習 3 用のフォルダーにある my_complex_mult プロジェクトを開き、新しい IP モジュ

ールを作成するための IP パッケージ化の手順を理解して、Vivado IP カタログに新しい IP を追加しま

す。最後に、この新しい IP を合成およびインプリメンテーションして検証します。

手順 1 : my_complex_mult プロジェクトを開く 1. Vivado IDE を起動します。[Open Project] をクリックし、lab_3 の下にある [my_complex_mult] フォ

ルダーを参照します。次の図にあるように、my_complex_mult.xpr というプロジェクト ファイルを選

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

Page 25: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 2 : IP パッケージャーの起動

IP を使用した設計 japan.xilinx.com 25 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 2 : IP パッケージャーの起動 1. 次の図にあるように [Tools] → [IP Packager] をクリックします。

2. [Next] をクリックし、次のダイアログ ボックスで [Finish] をクリックします。IP パッケージャーにより、

my_complex_mult プロジェクトの情報が収集され、表示されます。

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

Page 26: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 3 : IP の ID 情報の追加

IP を使用した設計 japan.xilinx.com 26 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 3 : IP の ID 情報の追加 1. [IP Identification] のセクションで、次の図にあるように、空白のフィールドに情報を入力していき

ます。必須情報を空白にすると、赤いエラー マークが表示されるので注意してください。

2. 次の図にあるように、[Review and Package] をクリックします。資料やサンプル デザインなどの抜

けている可能性のある情報が表示されます。次の手順で資料ファイルを追加します。

Page 27: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 4 : 新規 IP パッケージへの資料の追加

IP を使用した設計 japan.xilinx.com 27 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 4 : 新規 IP パッケージへの資料の追加 パッケージに HDL ファイル以外のファイルを追加する方法を説明します。

1. 次の図に示すように、[IP Packager] ビューの左側のペインで [IP Files Groups] を選択し、右側の [Product Guide] カテゴリを右クリックして [Add Files (Product Guide)] をクリックします。

2. [Add IP Files (Product Guide)] ダイアログ ボックスで [Add Files] ボタンをクリックし、C:/ug939-design-files/lab_3/source_files/doc ディレクトリを指定し、[Files of type] で [All Files] を選択します。

資料ファイルが 1 つ表示されます。

3. my_complex_mult_product_guide.pdf ファイルを選択し、[OK] をクリックします。[Add IP Files (Product Guide)] ダイアログ ボックスで [OK] をクリックします。

4. 次の図のように、[Product Guide (1 file)] カテゴリを展開し、PDF ファイルがパッケージに追加された

ことを確認します。

Page 28: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 5 : ZIP ファイルへの IP の パッケージ

IP を使用した設計 japan.xilinx.com 28 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 5 : ZIP ファイルへの IP の パッケージ

1. [Review and Package] をクリックしてから、[Package IP] をクリックします。[Package IP] ダイアログ ボックスで次の作業を行います。

a. ZIP ファイルの名前が次の図のように my_company_ip_my_complex_mult_3.0 であるこ

とを確認します。

b. [Archive location] に C:/ug939-design-files/lab_3 が選択されていることを確認します。

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

2. C:/ug939-design-files/lab_3 フォルダーに新しい ZIP ファイルが追加されていることを確認します。

手順 6 : IP カタログへの新規 IP の追加 1. Flow Navigator で [Project Manager] → [IP Catalog] をクリックします。

2. [IP Catalog] ビューで右クリックし、[Update IP Catalog] をクリックします。

Page 29: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 6 : IP カタログへの新規 IP の追加

IP を使用した設計 japan.xilinx.com 29 UG939 (v 2012.3) 2012 年 10 月 16 日

3. 次の図のように、[Update IP Catalog] ダイアログ ボックスで [Add Directories] をクリックし、

C:/ug939-design-files/lab3 を選択し、[OK] をクリックします。

4. [IP Catalog] の [Search] フィールドに「My」と入力し、[My Complex Multiplier] が IP カタログに

追加されていることを確認します。次の図のように、[My Complex Multiplier] を選択し、入力し

たメタデータが [Details] エリアに表示されることも確認します。

Page 30: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 7 : [Customize IP] ダイアログ ボックスでの新規 IP の確認

IP を使用した設計 japan.xilinx.com 30 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 7 : [Customize IP] ダイアログ ボックスでの新規 IP の確認 1. IP カタログで [My Complex Multiplier] をダブルクリックします。情報が正しいことを確認します。

2. 右上にある資料のボタンを右クリックし、[Product Guide] を選択します。追加した資料が正しく表示

されることを確認します。ファイルを閉じます。

3. [OK] をクリックし、[Customize IP] ダイアログ ボックスを閉じます。

4. 右上にある資料のボタンを右クリックし、[Product Guide] を選択します。追加した資料が正しく表示

されることを確認します。ファイルを閉じます。

5. [OK] をクリックし、[Customize IP] ダイアログ ボックスを閉じます。

Page 31: Vivado Design Suite...Vivado Design Suite では、IP 中心のデザイン フローが提供されており、デザインおよびアルゴリズム を再利用可能な IP に簡単に変換できるようになっています。次の図に示すように、Vivado

手順 8 : 合成とインプリメンテーションを実行した新規 IP の検証

IP を使用した設計 japan.xilinx.com 31 UG939 (v 2012.3) 2012 年 10 月 16 日

手順 8 : 合成とインプリメンテーションを実行した新規 IP の検証

1. 次の図のように、[Sources] ビューで [my_complex_mult_v3_0_0] を右クリックし、[Set as Top] を選択します。

2. Flow Navigator で [Run Synthesis] をクリックします。

3. 合成が完了したら、[Run Implementation] をクリックします。

4. インプリメンテーションが完了したことを確認します。

まとめ この演習では、my_complex_mult プロジェクトに対し IP パッケージャーを実行しました。IP モジュールと

してこの複素乗算器デザインをパッケージし、Vivado IP カタログに新規 IP として追加しました。そして [Customize IP] ダイアログ ボックスを開き、この IP の情報が正しいことを確認し、最後に、[Sources] ビュ

ーで My Complex Multiplier を追加して、最上位ファイルとしてこの IP を設定し、合成とインプリメンテ

ーションを実行しました。