Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA...

56
Vivado Design Suite チュートリアル デザイン解析およびクロージャ テクニック UG938 (v2012.3) 2012 10 16

Transcript of Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA...

Page 1: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

Vivado Design Suite チュートリアル

デザイン解析およびクロージャ テクニック

UG938 (v2012.3) 2012 年 10 月 16 日

Page 2: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

デザイン解析およびクロージャ テクニック japan.xilinx.com 2 UG938 (v2012.3) 2012 年 10 月 16 日

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, Vivado, 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 月 6 日 2012.2 初版

2012 年 10 月 16 日 2012.3 リリースに合わせて更新

Page 3: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

デザイン解析およびクロージャ テクニック japan.xilinx.com 3 UG938 (v2012.3) 2012 年 10 月 16 日

目次

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

Vivado デザイン解析および クロージャ テクニック チュートリアル ............................................................................................................ 4

概要 ........................................................................................................................................................................................ 4

ツール要件 ............................................................................................................................................................................. 4

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

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

チュートリアル デザイン ファイルの準備 ................................................................................................................................ 5

演習 1 : デザイン解析 ............................................................................................................................................................................................... 6

手順 1 : サンプル プロジェクトを開く ...................................................................................................................................... 6

手順 2 : デバイス リソースとクロック領域の表示..................................................................................................................... 9

手順 3 : 論理階層の確認 ..................................................................................................................................................... 15

手順 4 : デザイン リソース統計の表示 ................................................................................................................................. 17

手順 5 :インプリメンテーション前のタイミング解析の実行 .................................................................................................... 19

手順 6 : デザインのインプリメンテーション ........................................................................................................................... 25

まとめ..................................................................................................................................................................................... 30

演習 2 : タイミング クロージャ テクニック ......................................................................................................................................................... 31

手順 1 : インプリメンテーション後のタイミングの解析 .......................................................................................................... 31

手順 2 : タイミング パスの階層 ............................................................................................................................................. 36

手順 3 : モジュールの配置および接続のハイライト............................................................................................................. 40

手順 4 : デザインのフロアプラン .......................................................................................................................................... 43

手順 5 : フロアプラン後のインプリメンテーションの再実行 ..................................................................................................... 54

まとめ..................................................................................................................................................................................... 56

Page 4: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

デザイン解析およびクロージャ テクニック japan.xilinx.com 4 UG938 (v2012.3) 2012 年 10 月 16 日

Vivado デザイン解析および クロージャ テクニック チュートリアル

概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado™ Design Suite の機能および利点を紹介し、短

時間で高パフォーマンスのデザインを作成するための手順を説明します。このチュートリアルでは、次の内容を学びます。

• インプリメンテーション前のデザインおよび解析機能

• インプリメンテーション探索機能

• インプリメンテーション結果のフロアプラン

注記 : このチュートリアルでは、Vivado™ Design Suite の機能の一部を説明します。その他の機能については、ほかのチュート

リアルで説明しています。

チュートリアルの目標 このチュートリアルでは、Vivado Design Suite のさまざまな解析、フロアプラン、インプリメンテーションの機能を説明していま

す。このチュートリアルを使用する際は、説明されている手法およびそれが実際のデザインにどのように関係するかに注目して

ください。次のトピックが含まれます。

• デバイス使用率の統計を解析してターゲット デバイスを最適なデバイスに変更

• デザイン ルール チェック (DRC) を実行して、インプリメンテーション エラーになる可能性のある制約の競合をすばやく解決

• [Netlist]、[Logic Hierarchy]、[Schematic] ビューでロジックを確認

• タイミング パフォーマンスを予測し、デザインの実現可能性を評価し、問題になる可能性のあるエリアを特定

• デザインに含まれる制約を表示、作成、変更

• デザイン階層の接続およびデータ フローを解析し、クリティカルなロジック接続およびクロック ドメインを特定

• タイミング クリティカルなロジックをフロアプランしてタイミングおよびデータ フローを改善

• [Device] ビューで詳細な配線リソ-スを表示

ツール要件 このチュートリアルを実行するには、Vivado Design Suite 2012.3 ツール以降がインストールされていることが必要です。

インストールの手順および情報は、『ザイリンクス デザイン ツール : インストールおよびライセンス ガイド』 (UG798) を参照してく

ださい。

Page 5: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

ハードウェア要件

デザイン解析およびクロージャ テクニック japan.xilinx.com 5 UG938 (v2012.3) 2012 年 10 月 16 日

ハードウェア要件 サポートされている OS は、Redhat 5.6 Linux 64 ビットおよび 32 ビット、Windows 7 と XP の 64 ビットおよび 32 ビットです。

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

チュートリアル デザインの説明 このチュートリアルでは、xc7k70t デバイスをターゲットとした project_cpu_hdl という小型のデザインを使用します。このサ

ンプル デザインには、次のものが含まれます。

• RISC プロセッサ CPU コア

• 疑似 FFT

• ギガビット トランシーバー (GT) 4 つ

• USB インターフェイス 2 つ

小型のデザインを使用しているので、最小限のハードウェア要件で合成およびインプリメンテーションを短時間で実行できます。

チュートリアル デザイン ファイルの準備 このチュートリアル用のファイルは、次の Vivado Design Suite の examples ディレクトリにあります。

• <Xilinx_2012.3_install_area>/Vivado/<version>/examples/Vivado_Tutorial

examples ディレクトリに含まれる ZIP ファイルをいつでも解凍し、チュートリアル ファイルをローカル ディレクトリに保存したり、初

期の状態を復元できます。

インストール ディレクトリにある ZIP ファイルを、書き込み権のあるディレクトリに解凍します。

• <Xilinx_2012.3_install_area>/Vivado/<version>/examples/Vivado_Tutorial.zip

このチュートリアルでは、解凍された Vivado_Tutorial ディレクトリを <Extract_Dir> と記述します。

注記 : このチュートリアルを進めていくと、チュートリアル デザイン データが変更されます。このチュートリアルを開始するたび

に、元の Vivado_Tutorial ディレクトリからコピーしてください。

Page 6: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : サンプル プロジェクトを開く

デザイン解析およびクロージャ テクニック japan.xilinx.com 6 UG938 (v2012.3) 2012 年 10 月 16 日

演習 1 : デザイン解析

手順 1 : サンプル プロジェクトを開く 1. 次のいずれかの方法を使用して、Vivado 統合設計環境 (IDE) を開きます。

• Windows デスクトップで [Vivado 2012.3] アイコンをダブルクリックします。

• コマンド ターミナルに「vivado」と入力します。

Vivado IDE が開きます。

図 1 : Vivado IDE の Getting Started ページ

Vivado IDE の Getting Started ページには、プロジェクトを開いたり、作成したり、資料を表示するリンクが含まれています。

Page 7: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : サンプル プロジェクトを開く

デザイン解析およびクロージャ テクニック japan.xilinx.com 7 UG938 (v2012.3) 2012 年 10 月 16 日

2. Getting Started ページで [Open Example Project] → [CPU (HDL)] をクリックします。

図 2 : サンプル デザインを開く

3. デザイン プロジェクトが Vivado IDE で開きます。ダイアログ ボックスが表示され、プロジェクトが読み取り専用であることが

示され、プロジェクトを新しい場所に保存するオプションが表示されます。

図 3 : プロジェクトが読み取り専用であることを示すダイアログ ボックス

4. [Save Project As] をクリックし、プロジェクトの名前と場所を指定します。

図 4 : [Save Project As] ダイアログ ボックス

プロジェクトが指定した場所に保存されます。指定したディレクトリが存在しない場合は、その名前の新しいディレクトリが作

成されます。

注記 : このデザインは、演習 2 でも使用します。チュートリアル プロジェクトの保存場所を覚えておいてください。

[Project Summary] ビューにプロジェクトの情報が表示されます。[Project Summary] ビューには、プロジェクト設定、合成 run およびインプリメンテーション run に関する情報が表示されます。

Page 8: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : サンプル プロジェクトを開く

デザイン解析およびクロージャ テクニック japan.xilinx.com 8 UG938 (v2012.3) 2012 年 10 月 16 日

図 5 : Vivado 環境

Page 9: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : デバイス リソースとクロック領域の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 9 UG938 (v2012.3) 2012 年 10 月 16 日

手順 2 : デバイス リソースとクロック領域の表示 1. [Sources] ビューで [Constraints] フォルダーを展開し、次の図に示すように constrs_2 がアクティブになっていることを確認

します。

2. アクティブになっていない場合は、[constrs_2] を右クリックし、[Make Active] をクリックします。

図 6 : [Sources] ビュー

[Design Runs] ビューをクリックし、run の情報を確認します。[Design Runs] ビューでは、合成およびインプリメンテーション

用の run を管理、起動、リセットするコマンドを実行できます。このビューから複数の run を制御できます。

図 7 : [Design Runs] ビュー

3. Flow Navigator で [Run Synthesis] をクリックし、デザインを合成します。

[Log] ビューで run のステータスを監視します。run が完了するまでに数分かかります。

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

ます。

合成済みデザインが開き、[Netlist] ビューが表示されます (図 8)。

5. メイン ツールバーにあるレイアウト セレクターで [Default Layout] が選択されていない場

合は、選択します。

6. [Device] ビューをクリックし、アクティブにします。

Page 10: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : デバイス リソースとクロック領域の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 10 UG938 (v2012.3) 2012 年 10 月 16 日

図 8 : 合成済みデザインを開く

7. [Device] ビューでマウスの左ボタンを押したままにして右下にドラッグしします。

描画した長方形部分が拡大表示されます。上記の手順を繰り返し、デバイス リソースを確認できる大きさまで拡大します。

[Device] ビューには、デザインのインプリメントに使用できる FPGA デバイス リソースがタイル状に表示されます。タイル内

のサイトには、ネットリスト インスタンスを配置できます。使用可能なサイトには、SLICE、RAM、MULT、DSP などがあり、サ

イトに含まれているオブジェクト タイプによって [Device] ビューで異なる形と色で表示されます。スライスはザイリンクス FPGA の基本的な構築ブロックであり、内容はデバイス ファミリによって異なりますが、LUT および レジスタが含まれます。

これらの用語は、ザイリンクス用語集を参照してください。

LOC および BEL 配置制約は、ロジックをサイトまたはスライスに割り当てるために使用します。プリミティブ ロジックは、特

定のサイトに割り当てるか、LOC 配置制約を使用してスライスに割り当てるか、または LOC および BEL 制約を両方使用

してスライス内の特定のロジック リソースに割り当てることができます。

Page 11: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : デバイス リソースとクロック領域の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 11 UG938 (v2012.3) 2012 年 10 月 16 日

図 9 : [Device] ビューでのサイト、スライス、BEL の表示

8. さまざまなデバイス リソースの上にカーソルを置いて、ツール ヒントを表示させます。次の点に注目してください。

• カーソルをサイト上に置くとツール ヒントが表示されます。

• I/O ポートの位置および I/O バッファーの割り当ては、I/O バンク内に表示されます。

• 縦長の濃い赤色のタイルは RAMB36 サイトを表し、RAMB18 を 2 つ、または FIFO を 1 つ含めることができます。0F

1

• 縦長の緑色のタイルは DSP48 のサイトを表します。

• 青い正方形は SLICE を含む CLB を表します。

• SLICE 座標 は Vivado IDE メイン ウィンドウ右下のステータス バーに表示されます。

1 説明の色は、Vivado IDE のデフォルトです。実際に表示される色は設定によって異なります。

Page 12: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : デバイス リソースとクロック領域の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 12 UG938 (v2012.3) 2012 年 10 月 16 日

サイトと BEL の確認 [Netlist] ビューの下に、[Site Properties] または [BEL Properties] ビューが表示されます。[Device] ビューやほかのビューでサイ

トまたは BEL を選択すると、このビューが表示されます。

図 10 : [Bel Properties] ビュー

9. [Device] ビューで異なるリソース タイプをいくつかクリックし、サイトおよび BEL のプロパティ情報を確認します。

10. [Device] ビューのツールバーにある [Zoom Fit] をクリックするか、[Device] ビューでカーソルを左上方向にドラッグして、デ

バイス全体を表示します。

11. [Device] ビューのツールバーにある [Auto Fit Selection] をクリックしてオンにし、次のセクションで選択したオブジェクトが

自動的に中央に拡大表示されるようにします。

クロック領域の確認 [Device] ビューにはデバイス上のクロック領域が表示されるので、フロアプランおよび配置の際に便利です。[Clock Regions] ビューには、デバイスのクロック領域がすべてリストされます。[Clock Region Properties] ビューにクロック領域に関する情報が表

示され、発生する可能性のあるクロックの競合をインプリメンテーション前に確認できます。クロック ドメインの表示については、

このチュートリアルの後半で説明します。

12. [Window] → [Clock Regions] をクリックし、[Clock Regions] ビューを表示します。

13. [Clock Regions] ビューでクロック領域 X0Y2 を選択します。

選択したクロック 領域が [Device] ビューでハイライトされ、[Clock Regions Properties] ビューが表示されます。

ヒント : [Clock Regions] ビューと [Clock Regions Properties] ビューは同じエリアに重なって表示されます。図 11 のように表示されるようにするには、どちらかのビューを選択して [Sources] ビューの上にドラッグします。ビューの

移動については、『Vivado Design Suite ユーザー ガイド : Vivado IDE の使用』 (UG893) を参照してください。

Page 13: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : デバイス リソースとクロック領域の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 13 UG938 (v2012.3) 2012 年 10 月 16 日

図 11 : クロック領域プロパティの表示

14. [Clock Regions Properties] ビューでプロパティを確認します。

15. [Clock Region Properties] ビューの [Statistics] タブをクリックし、選択したクロック領域で使用可能なデバイス リソースを確

認します。

16. [Clock Region Properties] ビューの [Resources] タブをクリックし、BUFR および IDELAYCTRL サイトの場所を確認します。

17. BUFR の 1 つを選択し、[Device] ビューでハイライトされることを確認します。

注記 : [Auto Fit Selection] がオンになっている場合は、[Device] ビューで BUFR が中央に拡大されて表示されます。

18. [Device] ビューまたは [Properties] ビューのいずれかで BUFR を右クリックをし、[Mark] をクリックして選択した BUFR サイ

トにマークを付けます。

19. [Device] ビューで [Zoom Fit] をクリックし、デバイス全体を表示します。

BUFR に付けたマークにより、デバイス全体が表示されていてもそのサイトを簡単に見つけることができます。

20. メイン ツールバーの [Unmark All] をクリックし、マークを削除します。

21. [Clock Region Properties] ビューの [I/O Banks] タブをクリックし、選択したクロック領域の I/O バンクを確認します。

ヒント : [I/O Banks] タブを表示するには、[Clock Region Properties] ビューの下部にある矢印をクリックしてスクロール

する必要があります。

22. [Clock Region Properties] ビューで、I/O バンクのいずれかをクリックします。

選択した I/O バンクが [I/O Ports]、[Device]、[Package]、[Package Pins] などの開いているビューでハイライトされます。こ

れらのビューを切り替え、選択した I/O バンクのさまざまな表示を確認します。

Page 14: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : デバイス リソースとクロック領域の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 14 UG938 (v2012.3) 2012 年 10 月 16 日

23. [Window] → [Clock Resources] をクリックし、[Clock Resources] ビューを表示します。

[Clock Resources] ビューには、I/O およびクロック リソースがスプレッドシート形式で簡略化されて表示されます。このビュ

ーには、BUFR、BUFIO、BUFG、MMCM、GT などのデバイス上のリージョナル クロック リソースとグローバル クロック リソース間の関係が、正しい相対的な位置関係で表示されます。デザイン全体を配置配線する前にクリティカルなクロックおよ

び I/O ロジックを配置する場合に、[Clock Resources] ビューを使用できます。

図 12 : [Clock Resources] ビューと [Device] ビュー

このデザインのターゲット デバイスでは、[Clock Resources] ビューに左下の X0Y0 から右上の X1Y3 まで、8 個のクロック

領域が 2 列 X 4 行で表示されます。デバイスは上半分と下半分に分けられており、必要に応じて展開したり非表示にした

りできます。各クロック領域には、クロック兼用ピン (CCIO)、BUFIO、および BUFR を含む I/O バンクが表示されます。デ

バイスの中央列は、デバイスのグローバル クロックを制御するグローバル クロック バッファー (BUFG) を示します。デバイ

スの右側のクロック領域には、I/O バンクまたはギガビット トランシーバー (GT) の列があります。

図 12 では、[Clock Resources] ビューと [Device] ビューが Vivado IDE のワークスペースに並べて表示されています。

[Tile Vertically]、[Tile Horizontally]、[New Vertical Group]、[New Horizontal Group] コマンドを使用すると、ビューをこの

ように表示させることができます。これらのコマンドは、[Device] ビューなどのワークスペースに表示されるビューのタブを右

クリックすると表示されます。

24. タブの [X] をクリックして [Clock Resources] ビューを閉じます。

Page 15: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 3 : 論理階層の確認

デザイン解析およびクロージャ テクニック japan.xilinx.com 15 UG938 (v2012.3) 2012 年 10 月 16 日

手順 3 : 論理階層の確認

1. [Netlist] ビューで [Collapse All] ボタン をクリックします。

2. usbEngine0 モジュールの横にあるプラス記号 (+) をクリックして、階層を確認します。

[Netlist] ビューの表示は図 13 のようになります。

図 13 : [Netlist] ビューの展開表示

3. usbEngine0 モジュールの [Nets] フォルダーの横にあるプラス記号 (+) をクリックします。

このフォルダーには、usbEngine0 モジュール内のネットが含まれます。[Net] フォルダーを閉じるには、横にあるマイナ

ス記号 (-) をクリックします。

4. usbEngine0 モジュールの [Primitives] フォルダーの横にあるプラス記号 (+) をクリックして、内容を確認します。

このフォルダーには、usbEngine0 モジュールの最上位に含まれるプリミティブ インスタンスが含まれます。サブモジュー

ル内のプリミティブ インスタンスは表示されません。

注記 : [Netlist] ビューの最上位にも [Primitives] フォルダーがあり、各モジュールの最上位インスタンスが含まれます。

5. u4 モジュールを選択します。

6. 右クリックし [Show Hierarchy] をクリックするか、F6 キーを押します。

ワークスペースに [Hierarchy] ビューが開きます。このビューは、主にデザイン解析およびフロアプランで使用します。

[Hierarchy] ビューには、モジュールの階層関係が表示されます。ブロックの幅は、そのブロックで消費される FPGA リソー

スに相対しています。タイミング パスがロジック階層をどのように移動するのか、またはフロアプランする前にモジュールの

大きさを確認できます。

Page 16: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 3 : 論理階層の確認

デザイン解析およびクロージャ テクニック japan.xilinx.com 16 UG938 (v2012.3) 2012 年 10 月 16 日

図 14 : [Netlist] ビューと [Hierarchy] ビュー

フロアプランを実行するために [Hierarchy] ビューから直接モジュールを選択できます。ほかのビューで選択したロジック

も、[Hierarchy] ビューでハイライトされます。

7. [Hierarchy] ビューでモジュールを選択し、そのモジュールが [Netlist] ビューなどほかのビューでも選択されることを確認し

ます。選択したものは、どのビューでも選択されるようになっています。

8. [Unselect All] ツールバー ボタンをクリックするか、F12 キーを押します。

RTL ソース ファイルのクロスプローブ 9. [Hierarchy] ビューまたは [Netlist] ビューで u4 ブロックを選択します。

10. 右クリックして [Go to instantiation] をクリックします。

RTL ソース ファイルがテキスト エディターで開き、このロジック インスタンスの基となる行がハイライトされます。この機能と [Go to Definition] コマンドを使用して、モジュールの特定のインスタンシエーションまたは RTL ソース ファイルのモジュー

ル定義を見つけることができます。

ヒント : テキスト エディターでは、一部のファイル タイプでそのファイル タイプ特定の構文がハイライトされ、キーワ

ードやコマンド行を識別しやすくなっています。

11. [Netlist] または [Hierarchy] ビューでほかのロジック インスタンスをいくつか選択し、RTL ソース ファイルを表示してみます。

12. テキスト エディターで開いているすべての RTL ソース ファイルを閉じます。

13. [Unselect All] ツールバー ボタンをクリックするか、F12 キーを押します。

Page 17: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザイン リソース統計の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 17 UG938 (v2012.3) 2012 年 10 月 16 日

手順 4 : デザイン リソース統計の表示 Vivado Design Suite のリソース使用率解析では、デザインに対して最適なデバイスを決定するのに役立つ統計が示されます。

モジュール間でロジック リソースがどのように分配されているかも確認できます。複数のデバイス タイプを比較して、使用率およ

びパフォーマンスが全体的にベストなデバイスを選択できます。

デザイン全体のリソース予測を確認 1. Flow Navigator で [Report Utilization] をクリックします。

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

2. デフォルトの設定のまま [OK] をクリックします。

3. [Utilization] ビューをスクロールします。

[Utilization] ビューの左側のペインでロジック タイプを選択すると、右側のペインにデバイス リソースの使用率がデザイン

階層ごとに表示されます。

図 15 : [Utilization] ビュー

4. [Utilization] ビューの左側のペインで [Memory] → [RAMB36/FIFO36] を選択します。

usbEngine0 および usbEngine1 がブロック RAM を多く使用しており、ターゲット デバイスで使用可能なリソースの約 27% ずつ消費しています。

5. usbEngine1 モジュールの横にあるプラス記号 (+) をクリックし、階層を展開して確認します。

その他のリソースも展開表示して確認してみます。

6. [Utilization] ビューの [Memory] セクションでusbEngine0 を選択します。

usbEngine0 が [Netlist] ビューや [Hierarchy] ビューなどのほかのビューでも選択されます。

7. [Utilization] ビューの右上にある [X] マークをクリックして閉じます。

Page 18: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザイン リソース統計の表示

デザイン解析およびクロージャ テクニック japan.xilinx.com 18 UG938 (v2012.3) 2012 年 10 月 16 日

詳細なリソース情報の確認 [Pblock Properties] ビューでは、デバイス リソースおよびリソースの使用率を別の視点から確認できます。

8. [Window] → [Physical Constraints] をクリックし、[Physical Constraints] ビューを表示します。

9. [Physical Constraints] ビューで [ROOT] を選択します。

[Pblock Properties] ビューが表示されます。Vivado Design Suite では、デザインを階層に基づいて管理しやすい小型の物

理ブロック (Pblock) に分割できます。Pblock には、デザイン階層の任意の場所にあるロジック モジュールおよびプリミティ

ブ ロジックを含めることができます。

Pblock が定義されていなくても、Vivado ツールによりルート デザイン (最上位デザイン) から 1 つの Pblock が作成されま

す。このセクションでは、ルート Pblock で使用可能なリソースを確認します。

10. [Pblock Properties] ビューで [Statistics] タブをクリックします。

11. [Pblock Properties] ビューの [Physical Resources Estimates] フィールドを確認します (図 16)。

図 16 : デザイン リソース統計の表示

• [Available] : 描画した Pblock の範囲内で使用可能なサイト数を示します。

• [Required] : Pblock に割り当てられたロジックに必要なサイト数を示します。

• [% Util] : ロジック タイプごとの予測使用率 (%) を示します。ロジック オブジェクトの使用率が 100% を超える場合、数

値が赤字で表示されます。その場合、Pblock を描画し直すことが必要な可能性があります。

注記 : 算出される使用率は、サイトが最大限に使用された場合、つまり必要なロジックですべてのリソースが使用されること

を想定しています。実際には、配置配線の密集、タイミング制約などにより、サイトが最大限に使用されることはほとんどあ

りません。ターゲット デバイスおよびデザインと制約の特性によって、約 80% の使用率を目標にしてください。

ROOT Pblock には、ザイリンクス FPGA 全体に配置されるデザイン全体が含まれているので、[Pblock Properties] ビュー

の統計には、デザイン全体のロジック要件とターゲット デバイスで使用可能なリソースが示されます。ROOT での使用率が

超過している場合は、別のターゲット デバイスを選択する必要があります。

12. [Pblock Properties] ビューのデザイン統計をスクロールします。

[Statistics] タブには、各ロジック エレメント タイプのデバイス リソース使用率、キャリー チェーン数と最長チェーンの長さ、

クロック レポート、I/O 使用率、プリミティブ インスタンスとおよび I/O 統計が示されます。デザインに RPM が含まれる場合

は、RPM の数と最大サイズなどの情報も表示されます。

13. [Physical Constraints] ビューを閉じます。

Page 19: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 :インプリメンテーション前のタイミング解析の実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 19 UG938 (v2012.3) 2012 年 10 月 16 日

手順 5 :インプリメンテーション前のタイミング解析の実行 この手順では、デザインをインプリメントする前のタイミングを解析します。

インプリメンテーション前のこの時点では、配線遅延予測が示され、デザインがタイミングを満たしたかどうかはレポートされませ

ん。デザインのタイミング制約が実現可能であるかどうかを判断するため、インプリメンテーションを実行する前に、予測配線遅

延を含む早期スタティック タイミング解析を実行しておくと有益です。

スラック ヒストグラムを使用したタイミング エンドポイントの解析 スラック ヒストグラムには、エンドポイントで算出されたタイミング スラックが表示されます。エンドポイントがスラックを基準にグル

ープ化され、デザインのタイミング遅延が視覚的に表示されます。ヒストグラムを使用すると、タイミングの厳しいエンドポイントと

マージンがあるものの数を視覚的に確認できます。

これは、デザインがパフォーマンス要件を満たしていない場合の次の手順を決定し、スラック値が負または小さいクリティカル タイミング パスに焦点を置いて作業するのに役立ちます。スラック値が負のエンドポイントでは、タイミング問題が予測されます。こ

の段階でのタイミング解析でスラック マージンが小さいエンドポイントは、インプリメンテーションでタイミングが満たされない可能

性があります。

重要 : スラック ヒストグラムには完全なタイミング パスは表示されません。完全なパスのタイミングを表示するには、

[Report Timing] コマンドを使用する必要があります。

1. [Tools] → [Timing] → [View Slack Histogram] をクリックします。

2. [Number of bins] を「20」に変更します。

Vivado ツールで算出されたスラック値の範囲が指定したビン数に均等に分割され、タイミング エンドポイントがスラック値

に応じてグループ化されます。小さい値を指定すると、デザインのタイミング パフォーマンスのサマリを表示できます。ビン

数が多い方が、特定のスラック範囲内での遅延パフォーマンスを詳細に表示できます。

次の図に、[Generate Slack Histgram for Endpoints] ダイアログ ボックスを示します。

Page 20: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 :インプリメンテーション前のタイミング解析の実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 20 UG938 (v2012.3) 2012 年 10 月 16 日

図 17 : スラック ヒストグラムの生成

3. [Timer Settings] タブをクリックします。

[Timer Settings] タブのオプションを確認します。タイミング エンジンで使用されるさまざまな遅延パラメーターを指定でき、

Vivado ツールでスラックの算出に使用される配置遅延の適用方法を設定できます。配線遅延を予測するか、またはインタ

ーコネクト配線遅延なしとするかを指定できます。

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

タイミング エンドポイントがスラックに基づいてグループ化されたヒストグラムが表示されます。ヒストグラムの下には、タイミ

ング エンドポイントと算出されたスラック値をリストした表が表示されます。

Page 21: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 :インプリメンテーション前のタイミング解析の実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 21 UG938 (v2012.3) 2012 年 10 月 16 日

図 18 : スラック ヒストグラム

デザインにスラックが負のエンドポイントがある場合、それらのエンドポイントは X 軸の 0 より左側に赤色で示されます。ス

ラック値が負のエンドポイントでは、タイミング問題が予測されます。

5. さまざまなビンをクリックしてみます。

ヒストグラムの下の表に、選択したビンのエンドポイントのみがリストされます。スラック範囲もアップデートされます。

6. タイミング エラーとなる可能性が最も高い、スラック マージンが最小のエンドポイントを含む一番左のビンをクリックします。

表をスクロールして、エンドポイントとその算出されたスラック値を確認します。負のスラック値は赤色で表示されます。

7. スラック ヒストグラムの下に表示されている表の最初の 10 個のパスを選択します。

リストで複数のタイミング パスを選択するには、Shift キーを使用します。

8. 表またはヒストグラムを右クリックし、[Report Timing] をクリックします。

[Report Timing] ダイアログ ボックス (図 19) が開きます。スラック ヒストグラムで選択したエンドポイントがリストされています。

Page 22: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 :インプリメンテーション前のタイミング解析の実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 22 UG938 (v2012.3) 2012 年 10 月 16 日

配置前のタイミング解析 [Report Timing] ダイアログ ボックスの [Targets] タブが表示されています。このタブでは、開始点、通過点、終点を指定してタイ

ミングを解析するパスを定義します。

[Report Timing] コマンドでは、スタティック タイミング パス解析が実行されます。[Report Timing] を使用すると、合成後の任意

の段階で、特定のタイミング パスを解析できます。タイミング問題を調査する場合や、特定のタイミング制約の有効性および適

用範囲を確認する場合に使用できます。

図 19 : [Report Timing] ダイアログ ボックスの [Targets] タブ

Page 23: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 :インプリメンテーション前のタイミング解析の実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 23 UG938 (v2012.3) 2012 年 10 月 16 日

9. [Options] タブをクリックします。

図 20 : [Report Timing] ダイアログ ボックスの [Options] タブ

10. [Number of paths per group] フィールドに「30」と入力します。

11. [Advanced] タブおよび [Timer Settings] タブをクリックして設定可能なさまざまなオプションを確認します。

これらのタブはここでは変更しません。

デザイン フローのインプリメンテーション前のこの時点では、[Timer Settings] タブの [Interconnect] を [estimated] または [none] に設定できます。インプリメンテーションの実行前の段階では、実際のインターコネクト遅延はわかっていません。配

線遅延を配線遅延モデルに基づいて予測させるか、解析に含めないようにするかを指定します。

Page 24: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 :インプリメンテーション前のタイミング解析の実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 24 UG938 (v2012.3) 2012 年 10 月 16 日

12. [OK] をクリックしてタイミング解析を実行します。

[Timing] ビューが開きます。

図 21 : [Timing] ビュー

左側のツリーにはタイミング レポートの生成に使用された設定が表示され、セットアップまたはホールド解析のタイミング結

果を選択できます。

右側のパスのリストは、デフォルトでは制約ごとにグループ化されています。グループ化せずにすべてのパスを表示するに

は、[Timing] ビューのツールバーで [Group by Constraint] をクリックしてオフにします。

レポートには、算出されたタイミング スラック、開始点、遅延値、ロジック段数、ソース クロックおよびデスティネーション クロックが示されます。タイミングが満たされていないパスは、赤字で表示されます。

タイミング パスのリストをスクロールします。ほとんどのタイミング パスが usbEngine0 モジュールで開始していることに注

意してください。レポートのいずれかの列の見出しをクリックすると、その列を基準にリストを並べ替えることができます。

13. [To] 列の見出しを 2 回クリックし、リストをデスティネーションごとに並べ替えます。

[To] 列の値の降順に並べ替えられます。

ヒント : Vivado IDE の表形式のビューは、すべて同様に並べ替えることができます。見出しを 1 回クリックすると昇

順に、2 回クリックすると降順に並べ替えられます。Ctrl キーを押しながら、別の列見出しをクリックすると、さらにそ

の列の値を基準に並べ替えることができます。

図 21 のタイミング レポートは制約ごとにグループ化されており、まずスラックの昇順に並べられ、次にデスティネーションの

降順に並べられています。

14. 左側のペインで [Hold] をクリックし、ホールド レポートのパスを表示します。

インプリメンテーション前の段階では、セットアップ違反に焦点を置くようにしてください。ホールド チェックは配線に依存し

ます。

15. 左側のペインで [Settings] をクリックし、レポートを生成したときのタイマー設定を確認します。

16. ビューの [X] ボタンをクリックして [Timing] ビューおよび [Histogram] ビューを閉じます。

Page 25: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 6 : デザインのインプリメンテーション

デザイン解析およびクロージャ テクニック japan.xilinx.com 25 UG938 (v2012.3) 2012 年 10 月 16 日

手順 6 : デザインのインプリメンテーション Vivado インプリメンテーションは、デザイン要件および制限の指定に業界標準の SDC (Synopsys Design Constraint) と XDC (ザイリンクス デザイン制約) をネイティブ サポートするタイミング ドリブン フローです。Vivado インプリメンテーションは、デザイ

ンの論理制約、物理制約、タイミング制約を満たしながらネットリストを FPGA デバイスに配置配線するためのすべての手順を

含みます。

重要 : Vivado Design Suite では、UCF フォーマットはサポートされません。UCF 制約を XDC コマンドに移行する

方法は、『Vivado Design Suite 移行手法ガイド 』 (UG912) を参照してください。

制約ファイルの確認 1. [Sources] ビュー (図 22) が表示されていない場合は、[Window] → [Sources] をクリックするか、[Sources] ビューをクリック

して表示します。

2. [Sources] ビューで [Collapse All] ボタン をクリックした後、[constrs_1] および [constrs_2] フォルダーを展開表示します。

図 22 : [Sources] ビュー

インプリメンテーションを実行すると、デフォルトでアクティブ制約セットが使用されます。

3. top_full.xdc を含む consts_2 がアクティブになっていることを確認します。

4. top_full.xdc をダブルクリックして開き、制約ファイルの内容を確認します。

5. XDC ファイルを閉じます。

保存を確認するメッセージが表示されたら、[No] をクリックし、変更は保存しません。

Page 26: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 6 : デザインのインプリメンテーション

デザイン解析およびクロージャ テクニック japan.xilinx.com 26 UG938 (v2012.3) 2012 年 10 月 16 日

インプリメンテーション run の定義 Vivado IDE では、複数の合成 run およびインプリメンテーション run を設定および実行できます。このチュートリアルではその

方法を説明しますが、時間を節約するため実行するのは 1 つのインプリメンテーション run のみです。

6. Flow Navigator で [Implementation] を右クリックし、[Create Implementation Runs] をクリックします。

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

[Configure Implementation Runs] ページが開きます。このページで、インプ

リメンテーション run を作成し、使用する Vivado インプリメンテーション スト

ラテジまたはユーザー定義ストラテジを選択します。

最初にリストされているインプリメンテーション run は impl_2 です。選択可

能なストラテジは、ユーザー定義インプリメンテーション ストラテジを作成し

ているかどうかによって異なります。ストラテジの定義方法は、『Vivado Design Suite ユーザー ガイド : インプリメンテーション』 (UG904) を参照してください。

8. [Strategy] プルダウン メニューをクリックし、[Vivado Strategies] の下にリストされている [HighEffort] ストラテジを選択します。

9. [More] をクリックし、impl_3 という新しい run を追加します。

図 23 : [Configure Implementation Runs] ページ

10. [Strategy] プルダウン メニューをクリックし、[HighEffortPhySynth] ストラテジを選択します。

チュートリアルの後の方で、このインプリメンテーション run を使用します。このページでインプリメンテーション run にほか

の設定も指定できますが、ここでは [Synth Name]、[Constraints Set]、および [Part] はデフォルト設定のままにします。

11. [Next] をクリックし、[Launch Options] ページに進みます。

使用可能な実行オプションを確認します。run をローカルで実行するか、リモートで実行するか (Linux のみ)、run スクリプト

を作成するか、run を実行せずに保存だけするかを選択できます。

12. [Do not launch now] をオンにし、[Next] をクリックします。

Page 27: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 6 : デザインのインプリメンテーション

デザイン解析およびクロージャ テクニック japan.xilinx.com 27 UG938 (v2012.3) 2012 年 10 月 16 日

13. サマリを確認し、[Finish] をクリックします。

14. [Design Runs] ビューで impl_3 を右クリックし、[Make Active] をクリックしてアクティブにします。

Vivado ツールで一度にアクティブにできるには、1 つの合成 run と 1 つのインプリメンテーション run のみです。デフォルト

では、アクティブな run に対してコマンドが実行され、レポートが生成されます。

[Design Runs] ビューは、次のようになります。

図 24 : [Design Runs] ビュー

run の実行 次に、Vivado IDE でデザインをインプリメントします。Vivado インプリメンテーションは、デザインの論理的な変換および物理的

な変換を含み、次のサブ プロセスで構成されています。

• opt_design (デザインの最適化) : ザイリンクス FPGA にフィットしやすいように論理デザインを最適化します。このチュ

ートリアルで先ほど調べた DRC 問題は、この最適化で解決されます。

• power_opt_design (デザインの消費電力最適化) : インプリメント済み FPGA の消費電力を削減するため、デザイン エレメントを最適化します (オプション)。この最適化は、作成したインプリメンテーション run では使用されません。

• place_design (デザインの配置) : デザインをターゲット ザイリンクス デバイスに配置します。

• phys_opt_design (デザインの物理最適化) : ファンアウトの大きいネットのドライバーを複製してロードを分散することに

より、デザインのタイミングを最適化します (オプション)。インプリメンテーション run に選択したストラテジの一部として、

この最適化が実行されます。

• route_design (デザインの配線) : デザインをターゲット ザイリンクス デバイスに配線します。

15. Flow Navigator で [Run Implementation] をクリックします。

インプリメンテーションには数分かかります。Vivado IDE の右上のプロジェクト ステー

タス バーに、インプリメンテーション run のステータスが表示されます。

インプリメンテーションが完了するまでの間、合成済みデザインで使用可能な解析機

能を使用できます。合成済みデザインに対し、Flow Navigator から [Report Clock Networks] や [Report Clock Interaction] などのコマンドを実行できます。

インプリメンテーション run が完了すると、[Implementation Completed] ダイアログ ボックスが表示されます。

16. [Implementation Completed] ダイアログ ボックスで [Open Implemented Design] をオンにし、[OK] をクリックします。

Page 28: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 6 : デザインのインプリメンテーション

デザイン解析およびクロージャ テクニック japan.xilinx.com 28 UG938 (v2012.3) 2012 年 10 月 16 日

17. インプリメンテーション済みデザインを開く前に合成済みデザインを閉じるかどうかを確認するメッセージが表示されたら [Yes] をクリックし、[Don't Save] をクリックします。

ヒント : 以前にこのダイアログ ボックスを今後表示しないよう選択した場合は表示されません。この確認メッセージが表

示されるようにするには、[Tools] → [Options] → [Window Behavior] をクリックし、[Show dialog before switching to a different design] をオンにします。

インプリメント済みデザインが表示されます (図 25)。[Device] ビューにロジック インスタンスのデバイス リソースへの配置が

表示されます。

図 25 : インプリメント済みデザイン

18. Vivado IDE の下部で [Messages] ビューのタブをクリックします。

注記 : [Messages] ビューには、Vivado Design Suite のさまざまなツールの情報、警告、エラー メッセージがすべて表示さ

れます。

19. ツールバーの [Collapse All] ボタン をクリックし、さまざまなメッセージのカテゴリを表示します。

Page 29: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 6 : デザインのインプリメンテーション

デザイン解析およびクロージャ テクニック japan.xilinx.com 29 UG938 (v2012.3) 2012 年 10 月 16 日

20. [Implementation] メッセージを展開表示します。

図 26 : インプリメンテーションで表示されたメッセージ

21. [Messages] ビューの上部で青い丸の中に感嘆符が表示されたアイコンの横にあるチェック ボックスをオフにし、情報メッセ

ージを非表示にします。

22. [Route Design] を展開表示し、この手順で生成されたメッセージを確認します。

23. Vivado IDE の下部で [Reports] ビューのタブをクリックし、生成されたレポートを表示します。

[Reports] ビューが表示されていない場合は、[Window] → [Sources] をクリックして表示します。

24. [Reports] ビューに表示されているレポートをダブルクリックし、Vivado IDE テキスト エディターでレポートを表示します。

25. レポートを閉じます。

図 27 : インプリメンテーション レポート

Page 30: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

まとめ

デザイン解析およびクロージャ テクニック japan.xilinx.com 30 UG938 (v2012.3) 2012 年 10 月 16 日

まとめ この演習では、CPU HDL プロジェクトを開き、Vivado IDE で使用可能な機能を使用してデザインのさまざまな側面を調べまし

た。デザインの階層を確認し、インプリメンテーション前にタイミング スラック ヒストグラムおよびタイミング レポートを解析し、デザ

インを合成してインプリメントしました。最後に、Vivado インプリメンテーションで生成されたメッセージおよびレポートを確認しま

した。

これで演習 1 は終わりです。演習 2 に進むか、次の手順に従ってツールを終了します。

1. [File] → [Close Project] をクリックし、CPU HDL デザインを閉じます。

2. [File] → [Exit] をクリックし、Vivado Design Suite を終了します。

Page 31: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : インプリメンテーション後のタイミングの解析

デザイン解析およびクロージャ テクニック japan.xilinx.com 31 UG938 (v2012.3) 2012 年 10 月 16 日

演習 2 : タイミング クロージャ テクニック この演習は、演習 1 の続きです。この演習を始める前に、演習 1 を完了する必要があります。演習 1 の最後でツールを終了す

るかチュートリアル プロジェクトを閉じた場合は、開いてください。

1. 次のいずれかの方法を使用して、Vivado 統合設計環境 (IDE) を開きます。

• Windows デスクトップで [Vivado 2012.3] アイコンをダブルクリックします。

• コマンド ターミナルに「vivado」と入力します。

Vivado IDE が開きます。

2. メイン メニューから [File] → [Open Recent Project] をクリックし、演習 1 で保存したプロジェクトを開きます。

3. プロジェクトが開いたら、Flow Navigator で [Open Implemented Design] をクリックします。

手順 1 : インプリメンテーション後のタイミングの解析 デザインがターゲット デバイスにインプリメントされたので、デザインのタイミング要件を満たすためにデザインおよび制約を探

索できます。Vivado Design Suite ではさまざまな機能および手法が提供されており、タイミング クロージャを達成するために利

用できます。

[Report Timing Summary] コマンドを実行すると、インプリメント済みデザインの最終的なタイミング解析に使用可能なタイミング レポートが生成されます。インプリメンテーション後のタイミング結果を解析すると、タイミング要件を満たすためにフロアプランが

必要な場合に有益です。

重要 : タイミングの最終確認に使用できるのは、[Report Timing Summary] コマンドで生成されるタイミング レポート

のみです。

Vivado ツールでは、インプリメンテーション後にタイミング解析が実行され、生成されたレポート ファイルをテキスト エディター

で開いて確認できますが、レポートを Vivado IDE でインタラクティブに表示し、クロスプローブおよび解析機能を使用するに

は、レポートを生成する必要があります。

Page 32: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : インプリメンテーション後のタイミングの解析

デザイン解析およびクロージャ テクニック japan.xilinx.com 32 UG938 (v2012.3) 2012 年 10 月 16 日

タイミング パスの表示 1. Flow Navigator で [Report Timing Summary] をクリックして [OK] をクリックし、Vivado タイミング解析をデフォルト設定で実

行します。

[Timing] ビュー (図 28) が開きます。左側のペインにはタイミング サマリの異なるレポートがツリー形式で表示され、右側

のペインには選択したレポートの詳細が表示されます。次の図では、[Design Timing Summary] が選択されています。

図 28 : タイミング サマリ レポート

[Design Timing Summary] レポートには、ワースト ネガティブ スラック (WNS) などのタイミング スラック値が表示され、デザ

インでタイミング制約が満たされたかどうかが示されます。負のスラック値、タイミングが満たされていないエンドポイントの

数は、タイミングに問題があることを意味します。

このデザインでは、WNS は正の値であり、タイミング エラーはありませんが、スラックが最小のタイミング パスを調べます。

2. [Worst Negative Slack (WNS)] のハイパーリンクされた値をクリックし、ワースト スラックのタイミング パスを表示します。

図 29 : ワースト ネガティブ スラック

3. リストの最初のパスを選択します。

レポートのワースト タイミング パスが usbEngine1 モジュールに接続されていることに注目してください。この情報が、こ

のチュートリアルの後の方で実行するフロアプランに役立ちます。

4. 右クリックして [Mark] をクリックします。

レポートでタイミング パスを選択すると、そのパスが [Device] ビューでも選択されます。[Device] ビューにはデザインがグラ

フィカルに表示され、配置配線によるタイミングの問題を理解し、フロアプランでタイミングをどのように向上できるかを検討

するのに役立ちます。

Page 33: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : インプリメンテーション後のタイミングの解析

デザイン解析およびクロージャ テクニック japan.xilinx.com 33 UG938 (v2012.3) 2012 年 10 月 16 日

図 30 : タイミング パスをマーク

タイミング パスの開始点が緑色のひし形で示され、終点が赤色のひし形で示されています。黄色のひし形は、パスの通過

点を示します。

5. パスを右クリックして [Unmark] をクリックするか、メイン ツールバーの [Unmark All] をクリックしてマークを解除します。

配置済みパスの表示

6. [Device] ビューのツールバーで [Routing Resources] をクリックして、配線リソースを表示します。

[Routing Resources] をオンにすると、デバイス コンポーネントおよびコンポーネント間の FPGA インターコネクトがグラフィ

カルに表示されます。デバイス上の配線リソースの詳細が表示され、図 31 に示すように、選択したパスで使用されているリ

ソースが表示されます。

7. [Device] ビューのツールバーで [Auto Fit Selection] をクリックし、選択したオブジェクトが自動的に拡大表示されるようにし

ます。

[Timing] ビューで異なるパスを選択し、[Device] ビューで各タイミング パスの詳細な配線を確認します。この配線リソース ビューは、インターコネクト部分のパス遅延を理解し、タイミング問題を解決するのに役立ちます。

Page 34: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : インプリメンテーション後のタイミングの解析

デザイン解析およびクロージャ テクニック japan.xilinx.com 34 UG938 (v2012.3) 2012 年 10 月 16 日

図 31 : [Device] ビューでの配線リソ-スの表示

8. ツールバーの [Zoom In] をクリックして [Device] ビューの表示を拡大し、配線リソースの詳細を表示します。

パスを見ると、配線経路が最短でないようにみえます。これは、Vivado 配線でデザインのさまざまな要素が考慮されている

からです。タイミングが満たされている場合、配線密度、消費電力解析、ほかのパスのタイミング要件などが考慮されます。

9. メイン ツールバーの [Unselect All] をクリックするか、F12 キーを押してオブジェクトの選択を解除します。

10. [Device] ビューのツールバーで [Routing Resources] をクリックして、配線リソースの表示をオフにします。

[Device] ビューに配置済みのセルが表示され、配線リソースの詳細は表示されなくなります。

Page 35: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 1 : インプリメンテーション後のタイミングの解析

デザイン解析およびクロージャ テクニック japan.xilinx.com 35 UG938 (v2012.3) 2012 年 10 月 16 日

パス プロパティの確認 [Timing] ビューでパスを選択すると、[Path Properties] ビューにそのタイミング パスのサマリおよび詳細が表示されます。

11. [Timing] ビューで一番上のパスをもう一度選択します。

12. [Path Properties] ビューの [Maximize] ボタンをクリックして最大化するか、[Float] をクリックしてウィンドウをフロートし、表示

されている情報を確認します (図 32)。

図 32 : [Path Properties] ビュー

13. [Restore] または [Dock] ボタンをクリックして、[Path Properties] ビューを元のサイズと位置に戻します。

ヒント : ビュー バナーをダブルクリックしても、ビューを最大化および元に戻すことができます。

Page 36: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : タイミング パスの階層

デザイン解析およびクロージャ テクニック japan.xilinx.com 36 UG938 (v2012.3) 2012 年 10 月 16 日

手順 2 : タイミング パスの階層 Vivado IDE では、タイミング パス上にあるロジックを見つけるのに複数の方法があります。この手順では、[Schematic] および [Hierarchy] ビューを使用して、ワースト遅延のタイミング パス上にあるロジックを表示します。

1. [Timing] ビューに現在表示されているパスをすべて選択します。

複数のパスを選択するには、Shift キーまたは Ctrl キーを押しながらパスをクリックします。選択されたパスはすべて、

usbEngine1 から開始しています。

2. 右クリックして [Schematic] をクリックするか、F4 キーを押します。

[Timing] ビューでパスを選択すると、タイミング パスの開始点、終点、通過点に接続されているセルも選択されます。

[Schematic] ビューに選択したタイミング パス上にあるロジック セルがすべて表示されます。

図 33 : タイミング パスの回路図でプリミティブの親を選択

3. [Netlist] ビューで [Collapse All] ボタンをクリックします。

[Netlist] ビューに表示される情報が簡潔になり、次のタスクでアイテムを選択したときに見やすくなります。

ヒント : [Netlist] ビューに表示される情報量が多い場合、ツリー表示を閉じると、新しく選択したオブジェクトが見

やすくなります。

Page 37: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : タイミング パスの階層

デザイン解析およびクロージャ テクニック japan.xilinx.com 37 UG938 (v2012.3) 2012 年 10 月 16 日

4. [Schematic] ビューで右クリックし、[Select Primitive Parents] をクリックします。

[Select Primitive Parents] コマンドを使用すると、選択されているプリミティブまたはモジュールの階層の親から、階層をた

どってデザインの最上位まで選択されます。親モジュールは、[Netlist] ビューでも選択されます。

5. [Netlist] ビューで、右クリックして [Show Hierarchy] を選択するか、F6 キーを押します。

選択されたロジック (ワースト遅延のタイミング パス上にあるロジック) は、すべてusbEngine1 モジュールに含まれていま

す。同一のロジックであるusbEngine0 モジュールでも、同じ問題が発生していると考えられます。これら 2 つの

usbEngine ブロックを後ほどフロアプランします。

図 34 : タイミング パスに関連するロジック

6. [Hierarchy] ビューのタブにある [X] ボタンをクリックして閉じます。

7. [Timing] ビューの一番上のパスを選択します。

8. 右クリックして [Schematic] をクリックします。

[Schematic] ビューにタイミング パス ロジックが表示されます (図 35)。

Page 38: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : タイミング パスの階層

デザイン解析およびクロージャ テクニック japan.xilinx.com 38 UG938 (v2012.3) 2012 年 10 月 16 日

図 35 : パス 1 の階層回路図

[Schematic] ビューのネストされた長方形は、デザインの階層構造を表します。これにより、クリティカル パス ロジックに関連

するロジック モジュールを簡単に特定できます。選択したタイミング パスを見ると、ロジックが usbEngine1 ブロックに含

まれているのがわかります。

9. メイン ツールバーの [Unselect All] をクリックするか、F12 キーを押します。

10. [Schematic] ビューで buffer_fifo ブロックの中の RAMB36E1 を選択します。

11. 右クリックして [Expand Collapse] → [Collapse Outside] をクリックします。

選択したセルの外側のモジュールがすべて非展開になり、選択したセルの階層のみが表示されます。ここでは、選択した

セルがクリティカル タイミング パスのソースです。

12. ブロック RAM の左上にある ADDRARDADDR[15:0] ピンの外側をダブルクリックします。このピンに接続されているロジッ

クが展開表示されます。

ヒント : ピンの外側をダブルクリックすると、ピンを右クリックして [Expand Cone] → [To Primitives] をクリックした場合と

同じ操作が実行されます。

13. 新たに表示されたロジックの一番上の infer_fifo.wr_addr_reg[0] セルを選択します。

14. 右クリックして [Expand Cone] → [To Primitivies] をクリックするか、ダブルクリックします。

この操作により、選択したセルに接続されているロジックが次に接続されているプリミティブまで開きます (図 36)。リセット ネット、グローバル クロック バッファー、usbEngine1 ブロックのロジックなどが表示されます。ブロック RAM は、ほかのロ

ジックから比較的分離されているのがわかります。

Page 39: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 2 : タイミング パスの階層

デザイン解析およびクロージャ テクニック japan.xilinx.com 39 UG938 (v2012.3) 2012 年 10 月 16 日

15. [Schematic] ビューのツールバーの [Previous schematic] ボタン をクリックします。

[Previous schematic] および [Next schematic] ツールバー ボタンをクリックすると、[Schematic] ビューで前の表示または次

の表示に移動できます。

図 36 : ロジックの展開表示

16. [Schematic] ビューの [X] ボタンをクリックして閉じます。

このブロック RAM への入力は、usbEngine ブロックに含まれています。ほかの階層はフロアプランする必要はありませ

ん。

17. [Unselect All] ツールバー ボタンをクリックするか、F12 キーを押します。

18. [Netlist] ビューで [Collapse All] ボタンをクリックします。

Page 40: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 3 : モジュールの配置および接続のハイライト

デザイン解析およびクロージャ テクニック japan.xilinx.com 40 UG938 (v2012.3) 2012 年 10 月 16 日

手順 3 : モジュールの配置および接続のハイライト ここまでで、ワースト タイミング遅延が usbEngine ブロック内にあることを確認し、回路図でロジックを表示してみました。次

に、モジュールの現在の配置を評価して、フロアプランなしでロジックがどのようにインプリメントされているかを調べ、配置を向

上できるかどうかを見てみます。そして、最後にフロアプランを実行します。

図 37 : モジュールの配置のハイライト

1. [Netlist] ビューで usbEngine0 および usbEngine1 を選択します。

2. 右クリックして [Highlight Primitives] → [Cycle Colors] をクリックします。

各モジュールのプリミティブがそれぞれ別の色で表示されます (図 37)。各モジュール内のプリミティブの配置が、

usbEngine0 は黄色で、usbEngine1 は緑色で表示されています。ロジックがデバイス全体に広がっているのがわかり

ます。

3. [Device] ビューで [Device View Options] ボタン をクリックします。

Page 41: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 3 : モジュールの配置および接続のハイライト

デザイン解析およびクロージャ テクニック japan.xilinx.com 41 UG938 (v2012.3) 2012 年 10 月 16 日

4. [Instances] の横にあるチェック ボックスをオフにし、配置済みインスタンスを非

表示にします。

[Device] のさまざまな要素を非表示し、デザインまたはデバイスの重要な詳細

のみを表示できます。

[Device] ビューを拡大表示したり、表示範囲を移動して、詳細を確認します。 2 つの usbEngine ブロックのブロック RAM が混ざっているのがわかります。

ロジックがデバイス全体に広がっているので、これら 2 つのブロックをフロアプラ

ンするとタイミングが向上します。

5. [Device View Options] で [Instances] をオンにてインスタンスが表示されるよう

にします。

6. [Device View Options] ボタン をクリックして、メニューを非表示にします。

7. メイン ツールバーで [Unhighlight All] ボタン をクリックします。

接続の表示 ロジックがクリティカル ロジック エリアに配置されないようにフロアプランすると、配線の密集やタイミング問題を回避できます。

デザインの接続を評価することにより、どのモジュールをフロアプランするのが効果的かを判断できます。たとえば、デバイス全

体に広がるロジックに接続されているロジック モジュールはフロアプランには向いていませんが、グループにまとめられているロ

ジック モジュールや独立したモジュールはフロアプランに適しています。

8. [Device] ビューで、ツールバーの [Show I/O Nets] ボタン をクリックします。

[Device] ビューに、I/O ポートと配置されたインスタンスの間の接続が表示されます (図 38)。

Page 42: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 3 : モジュールの配置および接続のハイライト

デザイン解析およびクロージャ テクニック japan.xilinx.com 42 UG938 (v2012.3) 2012 年 10 月 16 日

図 38 : I/O 接続の表示

9. I/O ネットの 1 つをクリックして選択します。

ヒント : ネットを選択しにくい場合は、[Vivado Options] ダイアログ ボックスで I/O ネットの [Select] チェックボックスがオ

ンになっているかどうかを確認してください。詳細は、『Vivado Design Suite ユーザー ガイド : Vivado IDE の使用』 (UG893) の「選択規則の設定」を参照してください。

10. [Netlist] ビューでネット名を確認します。

11. [Netlist] ビューで [Collapse All] ボタン をクリックします。

12. [Netlist] ビューで usbEngine0 および usbEngine1 を選択します。

13. 右クリックして [Show Connectivity] を選択するか、Ctrl + T キーを押します。

usbEngine0 および usbEngine1 とデザインのほかの部分を接続するインターフェイス ネットがハイライトされます。ほ

とんどがデバイスの左側にある I/O ブロックに接続されています。この情報が、フロアプラン時に役立ちます。

usbEngine ブロックをフロアプランして、I/O ロジックを I/O ブロックの近くに配置します。これは特にタイミングを向上させ

るためではありませんが、デザインがタイミングを満たしていない場合は、タイミングが向上する可能性があります。

Page 43: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 43 UG938 (v2012.3) 2012 年 10 月 16 日

図 39 : usbEngine の接続の表示

14. 右クリックして [Show Connectivity] をもう一度クリックし、インターフェイス ネットに接続されているロジック オブジェクトをす

べて選択します。

[Show Connectivity] コマンドは、ソース ネットまたはロジック オブジェクトからのロジックの広がりをハイライトまたは選択す

るのに使用できます。

15. [Unselect All] ツールバー ボタン をクリックするか、F12 キーを押します。

手順 4 : デザインのフロアプラン デザインの接続と配置の問題を理解したら、デザインをフロアプランします。フロアプランのプロセスでは、デザインの一部また

はすべてのロジックを Pblock という物理ブロックにグループ化し、そのロジックに制約を設定します。関連ロジックを Pblock にグループ化すると、デザインのデータ フローを解析するのに役立ち、またインターコネクトの長さを制限してロジックが広がらな

いようにし、タイミング遅延を削減できます。

Pblock を作成すると、ターゲット制約ファイルに create_pblock Tcl コマンドが記述されます。この制約は、Pblock に割り当

てられたロジック、指定のサイト範囲、定義した属性を定義します。

Page 44: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 44 UG938 (v2012.3) 2012 年 10 月 16 日

Pblock の自動作成 1. [Tools] → [Floorplanning] → [Auto-create Pblocks] をクリックします。

[Auto-create Pblocks] ダイアログ ボックスが開きます。

図 40 : [Auto-create Pblocks] ダイアログ ボックス

このダイアログ ボックスで、作成する Pblock の最大数を定義するオプションを確認します。

ヒント : モジュールの数が指定した Pblock の最大数より多い場合は、最大のモジュールから順に Pblock が作成され

ます。

2. [OK] をクリックし、リストされているモジュールの Pblock を作成します。

3. レイアウト セレクターで [Floorplanning] を選択し、[Physical Constraints] ビューを表示します。

[Physical Constraints] ビューに、作成された Pblock と最上位の ROOT が表示されます (図 41)。

[Netlist] ビューでは、6 つのモジュールの横にあるアイコンが から に変更され、

モジュールが Plock として定義されたことが示されます。

図 41 : [Physical Constraints] ビュー

Page 45: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 45 UG938 (v2012.3) 2012 年 10 月 16 日

Pblock の配置 4. [Tools] → [Floorplanning] → [Place Pblocks] をクリックします。

[Place Pblocks] ダイアログ ボックスには、配置する Pblock を選択し、Pblock の SLICE のターゲットの使用率を指定するオ

プションがあります。

図 42 : Pblock の配置

Vivado IDE で作成される Pblock のサイズは、[Place Pblocks] ダイアログ ボックスで指定した使用率 % によります。Pblock のサイズは SLICE ロジックの使用率のみに基づいており、Pblock のサイズを予測するのに有益ですが、[Place Pblocks] コマンドで作成した Pblock のサイズは、Pblock に割り当てられているすべてのロジックに十分なリソースがあることを確実

にするため、インプリメンテーションの前に変更する必要があります。

5. デフォルト設定のまま [OK] をクリックし、すべての Pblock を配置します。

Pblock の配置は暫定的なもので、[Place Pblocks] コマンドを実行するたびに異なる配置になる可能性があります。

[Device] ビューで、Pblock を選択して移動して接続がからまないようにし、図 43 に示すように配置できます。

Page 46: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 46 UG938 (v2012.3) 2012 年 10 月 16 日

図 43 : バンドル ネットで表された Pblock のデータ フロー

6. ツールバーの [Show I/O Nets] ボタン をクリックし、Pblock と I/O ポートの間の接続を表示します。

7. ツールバーの [Device View Options] をクリックし、[Design] の下の [Bundle Nets] の表示をオンにします。

バンドル ネットおよび I/O の接続を表示すると、デザインの接続性を理解しやすくなります (図 43)。暫定的なフロアプラン

では、早期にデザインの全体的なデータ フローを確認し、配線の密集の可能性を発見できます。バンドルは、2 つの Pblock 間で共有されるネット数に基づいて色分けされています。

現在の定義を表示または変更するには、[Tools] → [Options] をクリックして [Vivado Options] ダイアログ ボックスを開き、

左側のペインで [Colors] をクリックして、右側で [Bundle Nets] タブをクリックします。[Device] ビューの [Device View Options] メニューでも設定されている色を確認できますが、変更はできません。

8. [Device] ビューでバンドル ネットの 1 つを選択します。

[Bundle Net Properties] ビューでネットのリストを確認します。これらのネットが 2 つの Pblock 間のバンドルに含まれます。

Page 47: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 47 UG938 (v2012.3) 2012 年 10 月 16 日

図 44 : [Bundle Net Properties] ビュー

グローバル クロックの検索 フロアプランが効果的かどうかは通常、異なるクロック ドメインの同期エレメントが適切に配置されたかどうかによって決まりま

す。クロック ドメインをハイライトして接続を表示し、Pblock がクロック領域に対して適切に配置されているかを確認できます。こ

の手順では、検索機能を使用して USB グローバル クロック (usbClk) を検索して選択し、そのクロックが供給される Pblock をハイライトします。

9. [Edit] → [Find] をクリックするか、または Ctrl + F キーを押します。

[Find] ダイアログ ボックスが開き、指定のタイプのオブジェクトを検索できます。

10. [Find] ダイアログ ボックスで次のようにオプションを設定します。

• [Find] : [Nets]

• [Criteria] : [Type]、[is]、[Global Clock]

11. [Unique nets only] がオンになっていることを確認し、[OK] をクリックします。

Vivado IDE の下部に [Find Results] ビューが開きます。

12. [Instance Pins] 列見出しを 2 回クリックし、結果を並べ替えます。

13. [Find Results] ビューで clkgen/usbClk_o を選択します。

[Device] ビューで 2 つの usbEngine Pblock を接続するネットがハイライトされます。こ

のクロックは、これら 2 つのブロックでのみ使用されます。

Page 48: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 48 UG938 (v2012.3) 2012 年 10 月 16 日

Pblock の移動 暫定的な Pblock 配置で、Pblock 間のデータ フローをネット バンドルで表示した状態で、デザイン要件の一部を満たすために

配置をクリーンアップします。ここでは、usbEngine ブロックのタイミング遅延を削減するように Pblock を配置します。

usbEngine ブロックのみが対象なので、[Physical Constraints] ビューからほかの Pblock をクリアします。

14. [Physical Constraints] ビューで pblock_clkgen 、 pblock_cpuEngine、 pblock_fftEngine、pblock_mgtEngine、および pblock_wbArbEngine. を選択します。

15. 右クリックして [Delete] をクリックします。

選択した Pblock が削除され、usbEngine0 およびusbEngine1 Pblock のみが残ります。

ほかの Pblock は、デザインの異なるモジュールのデータ フローを理解するためのもので、フ

ロアプランには必要ありません。

16. pblock_usbEngine1 を [Physical Constraints] ビューで選択するか、[Device] ビューで

直接クリックします。

17. [Device] ビューで Pblock をドラッグしてデバイスの上の方に移動します。

Pblock の I/O ポートへの接続を示すワイヤが上部の I/O ポートに接続されいるので、新しい

配置は適切であると考えられます。遅延を削減するには、Pblock を接続されている I/O ポー

トの近くに配置します。

Pblock を新しい位置に配置すると、新しい位置で Pblock 用にイネーブルにするリソースを

選択する [Move] ダイアログ ボックスが開きます。

18. [OK] をクリックして、すべてのリソース タイプを含めます。

図 45 : [Mo e] ダイアログ ボックス

19. Pblock のエレメントが既に配置されている場合、図 46 に示す [Choose LOC mode] ダイアログ ボックスが表示され、既存

のセル配置または LOC 制約の処理方法を選択できます。

このダイアログ ボックスには、次のオプションがあります。

• すべてのセルを現在の配置位置に保持

• 新しい Pblock エリア外となるセルの配置を解除

• 新しい Pblock エリア外となる固定されていないセルのみの配置を解除

• Pblock のすべてのセルの配置を解除

Page 49: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 49 UG938 (v2012.3) 2012 年 10 月 16 日

20. [Delete all location constraints of the pblock] をオンにし、[OK] をクリックします。

これで、Pblock に割り当てられている配置されたセルがアップデートされ、セル上の LOC 制約がクリアされて、Pblock の新しいエリアに移動されます。

図 46 : [Choose Loc mode] ダイアログ ボックス

重要 : 固定されたセルと固定されていないセルの両方が配置されます。

「固定された」 (Fixed) と「固定されていない」 (Unfixed) は、配置済みセルに使用される用語で、Vivado ツールでデ

ザインの配置済みセルがどのように認識されるかを示します。

• 固定されたセルは、ユーザーが配置したか、制約ファイルからインポートされており、指示しない限り移動されま

せん。

• 固定されていないセルは Vivado インプリメンテーションで place_design コマンドまたは最適化コマンドにより

配置されたもので、必要に応じて移動されます。

21. pblock_usbEngine0 を選択し、表示される接続を参考にして [Device] ビューの下の方に移動します。

[Move] ダイアログ ボックスと [Choose LOC mode] ダイアログ ボックスが表示されたら、先ほどと同様のオプションを選択し

ます。

Pblock のサイズの変更 usbEngine ブロックをおよそ希望の位置に配置したら、必要なリソースを含めるためサイズを変更する必要があります。

22. Pblock を選択し、[Pblock Properties] ビューで [Statistics] タブをクリックします。

[Pblock Properties] ビューの [Statistics] タブには、Pblock で指定されているデバイスのエリア内に含まれるロジック リソー

ス、Pblock に割り当てられているロジックに必要なリソースの量、および現在の使用率 (%) が表示されます。

赤字で示される値は、Pblock のエリアに、Pblock に割り当てられたデザイン ロジックに必要なリソースが不足していること

を示します (図 47)。このような場合、Pblock のサイズを変更して使用可能なリソース量を増加する必要があります。

Page 50: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 50 UG938 (v2012.3) 2012 年 10 月 16 日

図 47 : [Pblock Properties] ビューの [Statistics] タブ

23. [Device] ビューで pblock_usbEngine0 を選択します。

24. 右クリックして [Set Pblock Size] をクリックします。

25. [Device] ビューの左側のクロック領域 X0Y1 を囲む長方形を描きます。

クロック領域の境界を含むよう正しく長方形を描くと、クロック領域を Pblock の範囲として選択することを確認するダイアロ

グ ボックスが表示されます。クロック領域全体が含まれない場合は、Pblock エリアに含まれるロジック タイプを選択するダ

イアログ ボックスが表示されます。

図 48 : [Set Pblock] ダイアログ ボックス

26. [OK] をクリックしてクロック領域または含まれるロジックを承認します。

ここで、[Pblock Properties] ビューの [Statistics] タブを確認すると、pblock_usbEngine0 の大きさが十分でなく、必要

なロジック リソースがすべて含まれていないことがわかります (図 49)。

27. [Pblock Properties] ビューを一番下までスクロールし、表示されている情報を確認します。

Page 51: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 51 UG938 (v2012.3) 2012 年 10 月 16 日

図 49 : usbEngine0 Pblock のプロパティ

28. Pblock の下辺をデバイスの下辺まで広げ、[OK] をクリックしてクロック領域を Pblock の範囲とします。

Pblock の長方形を次の図に示すように拡張し、クロック領域 X0Y0 と X0Y1 の両方が含まれるようにします。各ロジック サイトのタイプではなく、クロック領域の選択を確認するダイアログ ボックスが表示されます。

図 50 : usbEngine0 を拡張

Page 52: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 52 UG938 (v2012.3) 2012 年 10 月 16 日

29. pblock_usbEngine1 を選択し、クロック領域 X0Y2 と X0Y3 が含まれるようサイズを変更します。

最終的な配置は、図 51 のようになります。

図 51 : usbEngine0 および usbEngine1 Pblock の配置

usbEngine0 およびusbEngine1 Pblock の配置制約を作成したので、デザイン制約を保存する必要があります。制約

を新しい制約セットに保存し、異なるデザイン ストラテジを分けておくと、必要に応じて前のデザイン ストラテジに戻したり、

1 つのデザインに対して異なるストラテジを作成してインプリメントしたりできるので、有益です。

30. [File] → [Save Constraints As] をクリックします。

[Save Design As] ダイアログ ボックス (図 52) が開きます。

Page 53: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 4 : デザインのフロアプラン

デザイン解析およびクロージャ テクニック japan.xilinx.com 53 UG938 (v2012.3) 2012 年 10 月 16 日

図 52 : 新しい制約セットの保存

31. 新しい制約セットの名前を「constrs_usb_fp」とします。

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

top_full.xdc ファイルが新しい制約セットにコピーされ、デザインの現在のステートを反映して必要に応じて制約がア

ップデートされます。

33. [Sources] ビューで constrs_usb_fp 制約セットを展開し、top_full.xdc ファイルをダブルクリックしてテキスト エディター

で開きます。

スクロールして制約を確認します。ファイルの下の方に、新しい Pblock 制約があります。

制約セットを保存すると、合成済みネットリストおよびインプリメント済みデザインがアップデート必要 (Out-of-Date) になり、

プロジェクト ステータス バーにそれが示されます。合成またはインプリメンテーションには影響しない小さな変更を加えた

場合にも、ステートがアップデート必要になることがあります。この場合、[Force up-to-date] リンクをクリックして、デザインの

ステートを強制的に最新の状態に変更できます (図 53)。

usbEngine ブロックをフロアプランしたので、インプリメント済みデザインは最新の状態ではなくなっていますが、合成済

みネットリストには影響しないので、デザインのステートを強制的に最新の状態にしてからインプリメンテーションを再実行し

ます。

図 53 : デザインのステートを強制的に最新の状態にする

34. プロジェクト ステータス バーの [more info] リンクをクリックし、[Force up-to-date] リンクをクリックします。

プロジェクト ステータス バーがアップデートされ、デザインが最新の状態になります。

Page 54: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 : フロアプラン後のインプリメンテーションの再実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 54 UG938 (v2012.3) 2012 年 10 月 16 日

手順 5 : フロアプラン後のインプリメンテーションの再実行 usbEngine ブロックのフロアプランが完了したので、インプリメンテーションを再実行します。

1. [Design Runs] ビューのタブをクリックし、アクティブにします。

2. 右クリックして [Create Runs] をクリックします。

3. 作成する run のタイプとして [Implementation] をオンにし、[Next] をクリックします。

[Configure Implementation Runs] ページが開きます。

4. 次のように設定します。

• [Name] : impl_usb_fp

• [Synth Name] : synth_1

• [Constraints Set] : constrs_usb_fp

• [Part] : xc7k70tfbg676-2

• [Strategy] : HighEffortPhySynth

図 54 : フロアプラン後のインプリメンテーション run の作成

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

6. [Launch Options] ページで [Launch Runs on Local Host] をオンにし、[Next] をクリックします。

7. [Create New Runs Summary] ページで設定が正しいことを確認し、[Finish] をクリックします。

usbEngine ブロックがフロアプランされたデザインに対してインプリメンテーション run が実行されます。

インプリメンテーション run が完了すると、[Implementation Completed] ダイアログ ボックスが表示されます。

Page 55: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

手順 5 : フロアプラン後のインプリメンテーションの再実行

デザイン解析およびクロージャ テクニック japan.xilinx.com 55 UG938 (v2012.3) 2012 年 10 月 16 日

8. [Implementation Completed] ダイアログ ボックスで [Open Implemented Design] をオンにし、[OK] をクリックします。

デザインが usbEngine ブロックのフロアプランを使用してインプリメントされました。このチュートリアルの最初の方で実行

したようにブロック プリミティブをハイライトすると、これを表示できます。

9. [Netlist] ビューでusbEngine0 およびusbEngine1 を選択します。

10. 右クリックして [Highlight Primitives] → [Cycle Colors] をクリックします。

図 55 : インプリメントされたフロアプラン

Page 56: Vivado Design Suite - Xilinx...概要 このチュートリアルでは、高度な FPGA を設計するためのザイリンクス Vivado Design Suite の機能および利点を紹介し、短

まとめ

デザイン解析およびクロージャ テクニック japan.xilinx.com 56 UG938 (v2012.3) 2012 年 10 月 16 日

まとめ このチュートリアルでは、Vivado IDE を使用して、インプリメンテーションを実行する前に合成済みのデザインとターゲット デバ

イスを確認および解析しました。これにより、潜在的な問題やエラーを、インプリメンテーション中ではなく、デザイン サイクルの

早期段階で発見できました。また、デザイン リソース予測、デザイン ルール違反、タイミング予測、制約、接続をグラフィカルに

表示することで、デザインを理解し、問題が発生する可能性のある箇所が発見しやすくなることを学びました。

合成とインプリメンテーションを実行した後、次を実行しました。

• インプリメンテーション結果を確認し、タイミング結果を検証

• 回路図でクリティカル パスのオブジェクトを解析し、これらのパス オブジェクトの親モジュールを選択

• モジュール配置をハイライトし、[Show Connectivity] コマンドを使用してモジュールの接続を表示

• タイミング パスの配置と配線を解析

• デザインの階層に基づいてフロアプラン

• フロアプラン済みデザインをインプリメント