Top Banner
Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2) 2020 2 5 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報 につきましては、必ず最新英語版をご参照ください。 すべてのバージョンを表示
44

Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

Jun 26, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

Vivado Design Suite チュートリアルデザイン解析およびクロージャ テクニックUG938 (v2019.2) 2020 年 2 月 5 日

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

すべてのバージョンを表示

Page 2: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

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

セクション 改訂内容2020 年 2 月 5 日 バージョン 2019.2

資料全体• デザイン ファイルから推奨事項をトリガーしないデザインの余分な部分を削除。

• RQS フィルのプロジェクトへの含有に関する詳細を追加。• ML ストラテジ run の作成に関するセクションを追加。

2019 年 8 月 12 日、バージョン 2019.1

資料全体 2019.1 リリースで検証。

改訂履歴

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 2

Page 3: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

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

チュートリアルの概要..........................................................................................................................................4概要..................................................................................................................................................................................4チュートリアルの説明....................................................................................................................................................4ソフトウェア要件........................................................................................................................................................... 4チュートリアル ファイルの場所.................................................................................................................................... 4

第 1 章: Vivado IDE を使用した除外の設定..........................................................................................5概要..................................................................................................................................................................................5手順 1: Vivado IDE の起動..............................................................................................................................................5手順 2: CDC レポートの生成.......................................................................................................................................... 6手順 3: 1 つの CDC 違反の除外...................................................................................................................................... 7手順 4: 除外された違反のレポートの生成...................................................................................................................10手順 5: 除外された違反の詳細を含んだレポートの生成............................................................................................ 11手順 6: 複数の CDC 違反の除外................................................................................................................................... 12手順 7: 除外のエクスポート......................................................................................................................................... 15手順 8: create_waiver コマンドの使用........................................................................................................................16手順 9: 複数の CDC 違反の除外................................................................................................................................... 16手順 10: 複数の DRC 違反の除外................................................................................................................................. 19手順 11: 除外された違反のサマリ レポートの生成.................................................................................................... 24手順 12: 除外コマンドの使用....................................................................................................................................... 26まとめ............................................................................................................................................................................ 27

第 2 章: QoR 推奨事項レポートの使用.................................................................................................. 28概要................................................................................................................................................................................28手順 1: デザインについて.............................................................................................................................................28手順 2: report_qor_suggestions の実行..................................................................................................................... 31手順 3: レポートについて.............................................................................................................................................31手順 4: 推奨事項を使用した実行..................................................................................................................................36手順 5: ML ストラテジの実行...................................................................................................................................... 38まとめ............................................................................................................................................................................ 42

付録 A: その他のリソースおよび法的通知.......................................................................................... 43お読みください: 重要な法的通知.................................................................................................................................43

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

Page 4: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

チュートリアルの概要概要

このチュートリアルでは、サンプル デザインに問題がないかどうかを解析するため Vivado® デザインのルール チェッカー (report_drc)、クロック乗せ換え (CDC) チェッカー (report_cdc)、QoR チェッカー(report_qor_suggestions) が使用され、修正方法が提案されます。

チュートリアルの説明演習 1 では、CDC、設計手法、DRC の違反の除外作成方法を説明します。演習 2 では、report_qor_suggestions (RQS) コマンドの使用方法を説明します。注記: このチュートリアルで使用するデザインは、演習用に問題を見せるためにあり、チュートリアル以外の目的で基準デザインとして使用しないでください。

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

チュートリアル ファイルの場所1. ザイリンクス ウェブサイトからリファレンス デザイン ファイルをダウンロードします。2. ZIP ファイルの内容を書き込み可能なディレクトリに抽出します。

このチュートリアルでは、ZIP ファイルの内容を抽出したディレクトリが <Extract_Dir> と表記されます。

チュートリアルの概要

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 4

Page 5: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

第 1 章

Vivado IDE を使用した除外の設定概要

Vivado® Design Suite では、クロック乗せ換え (CDC)、デザイン ルール チェック (DRC)、または設計手法チェックの違反を除外するためのメカニズムを使用できます。違反が除外されると、report_cdc、report_drc、またはreport_methodology コマンドでレポートされなくなります。除外されたチェックは、opt_design、place_design、route_design などのインプリメンテーション コマンドの最初で、必須の DRC からフィルターがかけられ、除外されます。詳細は、『Vivado Design Suite ユーザー ガイド: デザイン解析およびクロージャ テクニック』 (UG906: 英語版、日本語版) のこのセクションを参照してください。重要: 除外が作成されると、その内容は既存オブジェクトを使用して構築されます。ただし、除外内で参照されているインスタンスが Vivado® によって複製される場合は、その複製されたインスタンスが自動的に除外に追加され、その後のチェックポイントおよび XDC に保存されます。この演習では、Vivado 統合設計環境 (IDE) でメニュー コマンドと [Tcl Console] の両方を使用して除外を設定する方法を説明します。この演習では、CDC 除外を中心に説明しますが、DRC および設計手法の違反を除外する方法も同様です。

手順 1: Vivado IDE の起動この演習では、デザインのスナップショットである Vivado デザイン チェックポイント (.dcp ファイル) を使用します。デザイン チェックポイントを使用して Vivado IDE を起動すると、Vivado IDE 機能のサブセットが利用可能になります。ヒント: Windows で Vivado Tcl シェルを起動するには、[スタート] → [すべてのプログラム ] → [Xilinx Design Tools] → [Vivado <version>] → [Vivado <version> Tcl Shell] をクリックします。

1. コマンド ラインまたは Vivado Tcl シェルで、演習ファイルが保存されているディレクトリに移動します。cd <Extract_Dir>/src/lab1

2. デザイン チェックポイントを読み込んで Vivado IDE を起動するには、次のように入力します。vivado my_ip_example_design_placed.dcp

ヒント: ボンディングされていない GT ロケーションに関するクリティカル警告は無視しても問題はありません。

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 5

Page 6: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

手順 2: CDC レポートの生成この手順では、関連の CDC 違反を確認するため、CDC レポートを生成します。1. [Reports] → [Timing] → [Report CDC] をクリックします。2. [Report CDC] ダイアログ ボックスでデフォルト オプションをそのまま使用して、[OK] をクリックします。

CDC レポートの [Summary (by clock pair)] セクションは次のようになります。

[Summary (by CDC type)] セクションは次のようになります。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 6

Page 7: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

手順 3: 1 つの CDC 違反の除外my_ip_glblclk から my_ip_axi_aclk へのクロック ペアには、CDC パス上の組み合わせロジックに起因するCDC-10 違反が 1 つあります。この手順では、CDC-10 違反を除外する方法を説明します。

1. この違反の回路図を表示させるには、CDC レポートの CDC-10 の行を選択して、[Schematic] ツールバー ボタン をクリックします。

注記: または、[F4] キーを押して回路図を生成することもできます。ただし、ツールバー ボタンを使用したほうが、ダウンストリームのシンクロナイザーが全段含まれた、さらに詳細な回路図を確認できます。

2. 違反を除外するには、CDC レポートで [CDC-10] の行を選択し、[Create Waiver] をクリックします。3. [Create Waiver] ダイアログ ボックスで [Description] に説明を入力して、[OK] をクリックします。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 7

Page 8: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

重要: 除外が追加された日付、除外を追加したユーザー、違反の除外理由が確認できます。日付はシステムにより自動的に追加されます。[Tags] フィールドはオプションで、記録用に説明文やキーワードのリストを入力します。

4. 除外が作成されたら、CDC レポートを確認します。除外が作成されたことを示すため、CDC-10 の行がグレー表示され、ディスエーブルになります。注記: 除外が作成された [Report CDC] の結果ウィンドウでのみ、行がディスエーブルになります。

5. CDC-10 除外のインパクトを確認するには、[Reports] → [Timing] → [Report CDC] をクリックし、[Report CDC] を再実行します。注記: 除外が作成または削除されたときは、[Report CDC]、[Report DRC]、[Report Methodology] を再実行して、アップデートされた結果を確認する必要があります。

6. アップデートされた情報を確認するには、CDC レポートを開きます。[Summary (by clock pair)] と [Summary (by type)] の違いは次の図で赤くハイライトされています。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 8

Page 9: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

除外された終点がリストされたサマリも確認できます。

my_ip_glblclk から my_ip_axi_aclk への CDC の詳細セクションでは、クリティカルな CDC-10 が情報CDC-3 に置き換えられています。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 9

Page 10: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

7. この新しい CDC-3 の行を選択して、[Schematic] ツールバー ボタン をクリックします。出力レジスタの[Q] ピンをダブルクリックし、次の図と同じになるように回路図を展開します。CDC パスには、選択したデスティネーション レジスタの出力に 5 段のシンクロナイザーがあります。これが、このトポロジでは CDC-10 が CDC-3 に置き換えられた理由です (次の図を参照)。

重要: デフォルトでは、[Report CDC] にレポートされる違反は終点およびクロック ペアごとに 1 つだけです。複数の違反が同じ終点に起きている場合は、優先順位が最も高い違反のみがレポートされます。CDC-10 の優先順位はCDC-3 よりも高いので、CDC-10 と CDC-3 の両方の違反が同じ終点に起きている場合は、CDC-10 のみがレポートされます。CDC ツールの優先順位の詳細は、『Vivado Design Suite ユーザー ガイド: デザイン解析およびクロージャテクニック』 (UG906: 英語版、日本語版) のこのセクションを参照してください。ヒント: 優先順位のルールに関係なく、各終点の CDC 違反をすべてレポートする場合は、-all_checks_per_endpoint を使用します。

手順 4: 除外された違反のレポートの生成除外された CDC、DRC、または設計手法チェックの違反を報告するレポートを生成できます。この手順では、除外された CDC 違反のレポートを、[Tcl Console] ウィンドウおよび Vivado IDE のメニュー コマンドを使用して生成する方法を説明します。

除外された違反のレポートの生成1. [Tcl Console] ウィンドウに次を入力します。

report_cdc -waived

2. CDC レポートには CDC-10 違反が 1 つリストされていることを確認します。除外は 1 つのみ作成されているからです。

第 1 章: Vivado IDE を使用した除外の設定

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

Page 11: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

除外された違反の Vivado IDE CDC レポートの生成1. [Reports] → [Timing] → [Report CDC] をクリックします。2. [Report CDC] ダイアログ ボックスで [Report only waived paths] をオンにし、[OK] をクリックします。3. CDC レポートで、[Summary (by clock pair)] および [CDC Details] をチェックして、CDC-10 違反が 1 つリストされていることを確認します。注記: 違反の横のアイコン は、違反が除外されたことを示しています。

手順 5: 除外された違反の詳細を含んだレポートの生成子の手順では、追加情報を含んだレポートを生成します。この追加情報には、除外されたどうかにかかわらず、すべてのルールおよびすべての違反が含まれています。

除外された違反のルール リストの生成1. [Tcl Console] ウィンドウに次を入力します。

report_cdc -details -show_waiver

2. my_ip_glblclk から my_ip_axi_aclk への CDC-10 違反が除外されていて、2 つの CDC-3 違反は除外されていないことを確認します。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 11

Page 12: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

注記: このレポートでは、除外設定の有無に関係なくすべての違反がレポートされます。[Waived] 列に、ルールのステータスが表示されています。

除外の有無にかかわらずすべての違反を含むリストを作成1. [Tcl Console] ウィンドウに次を入力します。

report_cdc -no_waiver

2. CDC-10 除外の作成前に、このレポートで、表が [Report CDC] からの元のレポートのものと一致することを確認します。

ヒント: Vivado IDE から除外が作成されているかどうかにかかわらず、すべての違反を含んだリストも生成できます。[Reports] → [Timing] → [Report CDC] をクリックします。[Report CDC] ダイアログ ボックスで [Ignore allwaivers] をオンにし、[OK] をクリックします。

手順 6: 複数の CDC 違反の除外my_ip_axi_aclk から my_ip_drpclk への CDC には、クリティカルな CDC-11 違反が 2 つあります。この手順では、その両方の CDC-11 違反を同時に除外する方法を説明します。

1. これらの違反を除外するには、CDC レポートで [CDC-11] の行を選択し、[Create Waiver] をクリックします。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 12

Page 13: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

2. [Create Waiver] ダイアログ ボックスで [Description] に説明を入力して、[OK] をクリックします。

[Timing Report] で、除外が作成されると、選択した 2 行がディスエーブルになります。注記: 選択した各行に対し、除外が 1 つずつ作成されます。この例では、2 つの除外が作成されます。

3. [Reports] → [Timing] → [Report CDC] をクリックして、[Report CDC] を再実行します。[Report CDC] ダイアログボックスで [Report only waived paths] をオフにし、[OK] をクリックします。

4. CDC レポートで、my_ip_axi_aclk から my_ip_drpclk への CDC を確認します。2 つのクリティカルな CDC-11 違反が、2 つの情報 CDC-9 違反に置き換えられています。CDC の優先ルールに基づいて、この回路の CDC-11 を除外すると、CDC-9 が表示されるようになります。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 13

Page 14: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

5. この違反の回路図を表示させるには、CDC レポートの CDC-9 の行を選択して、[Schematic] ツールバー ボタン をクリックします。

6. デスティネーション クロック ドメインに 5 段のシンクロナイザーがあることを確認します。

7. 新しい [Summary (by type)] の情報を前の CDC レポートの情報と比較します。アップデートされた CDC レポートには、あの 2 つの CDC-11 違反がリストされていません。代わりに、2 つの新しい CDC-9 違反があります。

8. [Summary (by waived endpoints)] 情報を確認します。アップデートされた CDC レポートには、3 つの除外された終点があります。CDC-11 はマルチビット違反なので、この数は除外された違反の数 (2) とは異なります。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 14

Page 15: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

9. 新たにレポートを生成し、前のレポートの結果と比較します。たとえば、次の Tcl コマンドを実行できます。report_cdc -details report_cdc -details -waivedreport_cdc -details -show_waiverreport_cdc -details -no_waiver

次のレポートは、report_cdc -details -waived Tcl コマンドを使用して生成されており、3 つの違反が除外されています。

手順 7: 除外のエクスポートこの手順では write_waivers Tcl コマンドを使用して除外をエクスポートします。注記: XDC 出力ファイルは read_xdc または source Tcl コマンドを使用してインポートできます。1. CDC 除外をエクスポートするには、「write_waivers -type cdc waivers.xdc」と入力します。ヒント: または、DRC や設計手法の除外がないので、次のようにも入力できます。write_waivers waivers.xdc または write_xdc -type waiver waivers.xdc

2. waivers.xdc ファイルを開いて、3 つの除外を確認します。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 15

Page 16: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

注記: 次の例は、異なるコマンド ライン オプションがよく確認できるように、フォーマットを変えてあります。create_waiver -type CDC -id {CDC-10} -user "Xilinx" \ -desc "This is a safe CDC per review with the team" \ -from [get_pins i_my_ip_support_block/jesd204_i/inst/i_my_ip/i_tx/i_tx_counters_32/got_sysref_r_reg/C] \ -to [get_pins {i_my_ip_support_block/jesd204_i/inst/sync_tx_sysref_captured/syncstages_ff_reg[0]/D}] \ -timestamp "<timestamp>" ;#1

create_waiver -type CDC -id {CDC-11} -user "Xilinx" \ -desc "Safe fanout. Circuitry has been released" \ -from [get_pins {i_my_ip_support_block/jesd204_i/inst/i_my_ip_reset_block/stretch_reg[10]/C}] \ -to [get_pins {i_my_ip_support_block/i_jesd204_phy/inst/jesd204_phy_block_i/sync_rx_reset_data/xpm_cdc_async_rst_inst/arststages_ff_reg[0]/CLR}] \ -timestamp "<timestamp>" ;#1

create_waiver -type CDC -id {CDC-11} -user "Xilinx" \ -desc "Safe fanout. Circuitry has been released" \ -from [get_pins {i_my_ip_support_block/jesd204_i/inst/i_my_ip_reset_block/stretch_reg[10]/C}] \ -to [get_pins {i_my_ip_support_block/i_jesd204_phy/inst/jesd204_phy_block_i/sync_tx_reset_data/xpm_cdc_async_rst_inst/arststages_ff_reg[0]/CLR}] \ -timestamp "<timestamp>" ;#2

手順 8: create_waiver コマンドの使用[Report CDC] ダイアログ ボックスから追加した除外は create_waiver コマンドを使用して作成されます。これらのコマンドは次のように確認できます。注記: CDC、DRC、設計手法の除外には create_waiver コマンドを使用できます。オプションは、CDC、DRC、または設計手法の除外を作成しているかどうかによって、少し異なります。異なるオプションを含め、詳細は 『VivadoDesign Suite Tcl コマンド リファレンス ガイド』 (UG835: 英語版、日本語版) の create_waiver コマンドを参照してください。1. Vivado IDE により出力された 3 つの create_waiver コマンドを確認するため、Vivado ジャーナル ファイル

(vivado.jou) を開きます。2. 同じ 3 つの create_waiver コマンドを確認するには、[Tcl Console] の履歴をスクロールします。ヒント: -from および -to オプションは、始点および終点を指定するために使用されます。[Report CDC] ダイアログ ボックスで除外が設定されると、正確な違反と一致させるために -from および -to が指定されます。ただし、CDC 除外は -from オプションのみまたは -to オプションのみを使用して使用できますが、予期していたよりも多くのパスが除外される可能性があります。

手順 9: 複数の CDC 違反の除外この手順では、複数の CDC 違反を同時に除外します。1. CDC レポートで、[CDC Details] の下にある my_ip_axi_aclk から my_ip_glblclk への CDC を確認します。

第 1 章: Vivado IDE を使用した除外の設定

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

Page 17: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

このクロック乗せ換えには、CDC-14 違反 (マルチビット違反) が 5 つあります。この 5 つの CDC-14 違反はすべて同じ 2 つのレジスタ クロック ピンから始まります。i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[2:1]/C

ヒント: [ID] 列で表を並べ替えると、この 5 つの CDC-14 違反が見やすくなります。

2. i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[*]/C で 5 つのピンが一致するので、この 5 つのピンのうち 2 つだけをターゲットにし、次のように始点のリストを作成します。set startpoints [list \ [get_pins i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[1]/C] \ [get_pins i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[2]/C] \ ]

3. この 5 つの CDC-14 違反を除外するには、-from オプションを指定して create_waiver Tcl コマンドを使用します。create_waiver -type {CDC} -id {CDC-14} -user {Xilinx} -desc {No more CDC 14!} -from $startpoints

4. Vivado IDE で [Reports] → [Timing] → [Report CDC] をクリックし、[Report CDC] を再実行します。5. CDC レポートのサマリ セクションには CDC-14 違反がもうレポートされていないことを確認します。

6. 除外された違反のみをレポートするには、次を入力します。report_cdc -details -waived

除外された CDC 違反は、次の図のように 2 つの表にレポートされます。最初の表は、マルチビット違反として除外された CDC-14 違反を 5 つ示してします。2 番目の表には、シングル ビット違反が 10 あります。これは、5 つのマルチビット違反にマルチビット違反ごとの 2 ビットを掛けて計算されています。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 17

Page 18: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

7. スクリプト内のすべての除外をエクスポートし、合計 4 つの除外が追加されたことを確認するには、次を入力します。write_waivers -type cdc waivers.xdc -force

注記: waivers.xdc ファイルが既に存在するので、-force オプションを指定して、このファイルを上書きする必要があります。

ヒント: または、DRC や設計手法の除外がないので、次のようにも入力できます。write_waivers waivers.xdc -force

またはwrite_xdc -type waiver waivers.xdc -force

waivers.xdc 内の除外リストは次のようになります。

8. waivers.xdc ファイルをインポートするには、次を入力します。read_xdc waivers.xdc

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 18

Page 19: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

次の警告メッセージは、重複している除外が既存の除外に追加されなかったことを知らせています。既存の除外とまったく同じの除外だけが追加されていません。WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-10' is a duplicate and will not be added again.WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-11' is a duplicate and will not be added again.WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-11' is a duplicate and will not be added again.WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-14' is a duplicate and will not be added again.

手順 10: 複数の DRC 違反の除外この手順では、複数の DRC 違反を同時に除外します。1. [Reports] → [Report DRC] をクリックします。2. [Report DRC] ダイアログ ボックスでデフォルト オプションをそのまま使用して、[OK] をクリックします。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 19

Page 20: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

3. DRC レポートで [UCIO#1] を右クリックし、[Create Waiver] をクリックして UCIO-1 違反の除外を作成します。注記: UCIO#1 違反には 125 個の違反がまとめられています。同じように、NSTD#1 違反は 113 個のポートを対象にしています。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 20

Page 21: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

4. [Create Waiver] ダイアログ ボックスで [Tcl Command Preview] の出力を確認し、[OK] をクリックします。

5. drc_waivers.xdc ファイルを生成し、125 個のオブジェクトがすべて除外されていることを確認するには、次を入力します。write_waivers -type DRC drc_waivers.xdc

6. XDC ファイルで、拡張されたポート リストを確認すると、違反メッセージからの文字列の一部がワイルドカード(*) に変換されています。UCIO-1、NSTD-1、TIMING-15、TIMING-16 タイプの違反に関しては、文字列が自動的にワイルドカードに変換されます。UCIO-1 の場合、エレメント数には意味がないので、違反のオブジェクト数がワイルドカードに置き換えられます。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 21

Page 22: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

7. DRC 除外を削除し、ワイルドカードを使用している除外を書き換えて、ポート オブジェクトのサブセットをターゲットにするには、次を入力します。delete_waivers [get_waivers -type drc]create_waiver -type DRC -id {UCIO-1} -user "Xilinx" -desc "Waive selected UCIO violations" -objects [get_ports { s_axi_rdata[*] s_axi_wdata[*] s_axi_araddr[*] } ] -strings { "*" } -strings { "*" }

注記: このコマンドは、元の 125 個のオブジェクトのサブセットのみを対象にしています。8. [Reports] → [Report DRC] をクリックして、[Report DRC] を再実行します。9. [Report DRC] ダイアログ ボックスで、除外された違反のみをレポートするため [Display only waived violations]

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

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 22

Page 23: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

DRC レポートで、125 個の違反のうち 68 個のみが除外されていることを確認します。

重要: READONLY または NODISABLE 違反は除外できません。たとえば、次を入力するとします。 create_waiver -type DRC -id RTSTAT-1 -description "Waive RTSTAT-1"

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 23

Page 24: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

Vivado ツールに次のエラー メッセージが表示されます。 ERROR: [Vivado_Tcl 4-934] Waiver ID 'RTSTAT-1' is READONLY or NODISABLE and cannot be waived. These Factory designations specify that a check is required and may not be overridden by user action.

手順 11: 除外された違反のサマリ レポートの生成この手順では、CDC、DRC、および設計手法の除外のサマリ レポートを作成するため、report_waivers Tcl コマンドを使用する方法を説明します。重要: report_waivers コマンドを実行する前に、[Report CDC]、[Report DRC]、または [Report Methodology] を再実行して、追加または削除された除外が report_waivers によりレポートされた統計に含まれるようにします。

1. [Report CDC] を再実行するには、次を入力します。report_cdc

2. [Report DRC] を再実行するには、次を入力します。report_drc

注記: 設計手法の除外は設定されていないので、[Report Methodology] を再実行する必要はありません。3. サマリ レポートを作成するには、次を入力します。

report_waivers

デフォルトで、除外された違反のみが report_waivers によりレポートされます。次の図は、除外を定義している UCIO-1、CDC-10、CDC-11、および CDC-14 ルールを示しています。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 24

Page 25: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

除外されたオブジェクトの数、および違反の合計数を確認します。• レポート サマリの DRC では、違反内のオブジェクトごとに違反が 1 つとレポートされます。オブジェクトは、NSTD-1 に 113 個、UCIO-1 に 125 個、そして RTDAT-13 に 1 個あるので、合計 239 個の DRC 違反がサマリ表にレポートされています。

• [Report Summary] の表にはすべての違反がレポートされています。• [Report Details] の表には、1 つ以上の除外があるチェック ID のみがレポートされています。

4. 除外のないルールを含め、すべてのルールを含めた詳細な表を生成するには、次のように入力します。report_waivers -show_msgs_with_no_waivers

次の図は、[Report Details] の表にレポートされている DRC および CDC のルールすべてが含まれたレポートです。

5. [Report Methodology] を実行するには、次を入力します。report_methodology

6. 除外のないルールを含め、すべてのルールを含めた詳細な表を生成するには、次のように入力します。report_waivers -show_msgs_with_no_waivers

次の図のように、正確な統計がレポートされます。注記: この図には [Report Details (CDC)] セクションは含まれていません。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 25

Page 26: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

手順 12: 除外コマンドの使用この手順では、除外に関連した追加コマンドを実行します。1. CDC 除外オブジェクトのグループを返すには、次を入力します。

get_waivers -type cdc

次の CDC 除外が返されます。CDC-10#1 CDC-11#1 CDC-11#2 CDC-14#1

2. CDC-14 除外のみに除外のリストを絞り込むには、次を入力します。get_waivers -filter {ID == CDC-14}CDC-14#1

3. 1 つの CDC 除外オブジェクトのプロパティをすべてレポートするには、次を入力します。report_property [lindex [get_waivers -type cdc] end]

次のプロパティが返されます。Property Type Read-only ValueCLASS string true cdc_waiverDESCRIPTION string false No more CDC-14!ID string true CDC-14INDEX string true 1IS_SCOPED bool true 0NAME string true CDC-14#1OBJECT_COUNTS string true pins:2SCOPE string true

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 26

Page 27: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

TAGS string false TIME string true <timestamp> TYPE string true CDCUSED_CNT string true 10USER string true Xilinx

注記: 除外オブジェクトに付随しているデザイン オブジェクトを復元させることはできません。4. 前に作成した CDC-14 除外をすべて削除するには、次を入力します。

delete_waivers [get_waivers -filter {ID == CDC-14}]

注記: 除外オブジェクトが削除されると、その除外は適用されなくなり、その除外対象になっていた違反が再びレポートされるようになります。

5. 残りの CDC-14 除外をすべて削除するには、次を入力します。delete_waivers [get_waivers -type cdc]

まとめこの演習では、次を実行しました。• DRC および DRC 違反を除外しました。• 除外された違反のレポートを生成しました。• 除外設定をエクスポートしました。• 除外コマンドを使用しました。

第 1 章: Vivado IDE を使用した除外の設定

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 27

Page 28: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

第 2 章

QoR 推奨事項レポートの使用概要

report_qor_suggestions (RQS) コマンドを使用すると、Vivado® Design Suite ツールでデザインを解析し、QoRを改善するための自動化されたソリューションを提供できるようになります。このコマンドは、合成後、またはインプリメンテーションフローの任意の段階の後に、デザインを開いて実行できます。RQS により、5 つの主な領域でデザインが評価され、これらの領域で修正案や改善案が提案されます。この領域というのは、使用率、クロッキング、制約、配線の密集、タイミングの 5 つです。RQS からの推奨事項は次のような形をとります。• RQS オブジェクト。このオブジェクトで次を追加できます。

○ 指定コマンドに対するオプション。○ 指定したデザイン オブジェクトのプロパティ。○ 機械学習アルゴリズムを使用したデザイン用にカスタマイズされたインプリメンテーション ストラテジ。

• ユーザーの介入を必要とする推奨事項を知らせるメッセージ文。このチュートリアルでは、プロジェクトベースの環境で RQS ファイル内に含まれる RQS オブジェクトの使用方法を説明します。非プロジェクト フローの手順も説明しますが、実際には実行しません。

手順 1: デザインについてこの演習では、RQS 機能の一部を見せるため、あらかじめビルドされているデザインが使用されます。RTL デザイン、およびフロアプランを使用したブロックの配置により、推奨事項が生成されます。このあらかじめビルドされたデザインには、次のモジュールが含まれています。• クロッキング モジュール: デザインのメインのクロッキング回路は clocking_module.vhd にあります。簡潔にするため、RST は GND に接続しています。LOCKED にはレジスタが付き、出力ポートに接続されまています。このブロックの構造は、次の図のようになっています。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 28

Page 29: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

• レジスタ CLKA から CLKB へのモジュール: このモジュールには、大型バスの同期 CDC が含まれています。CLKAを使用して入力データがレジスタされ、CLKB ドメインのレジスタにそのデータが渡されてから出力に渡されます。異なる関連クロック ドメインで大型バスにレジスタを付ける場合は、ホールド スラック (WHS/THS) およびセットアップ スラック (WNS/TNS) に影響する可能性があります。

• ビット拡張およびビット縮小のモジュール: デザインの I/O が不足しないよう、内部データ幅を広げたり縮めたりできます。任意データ幅を取り込んで、それを希望のサイズに拡張または縮小します。この拡張および縮小ロジックにより、多くのロジック レベルが作成されるので、非同期にしておく必要があります。非同期になっていると、このロジックは report_qor_suggestions により無視されます。

次の手順に従い、プロジェクトを開き、フロアプラン済みのモジュールの配置を確認します。1. Vivado Design Suite で [File] → [Project] → [Open] をクリックし、<extract_Dir>/lab2/1_InitialRun にあるプロジェクトを選択します。

2. Flow Navigator で [Open Synthesized Design] をクリックします。ダイアログ ボックスが表示されたら、[Synthesis Settings] を選択して元の制約 (Original Constraints) を含めてデザインを読み込みます。

3. [Netlist] ビューで階層を確認します。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 29

Page 30: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

4. [Device] ビューで Pblock を確認します。このブロックは、リソース使用率が非常に高いデザインにならないよう、デザインに対し推奨事項を生成できるようにするために追加されています。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 30

Page 31: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

ヒント: ブロックを選択し、F4 キーを押すと、回路図ツールが開くので、デザインをさらに調べることができます。

手順 2: report_qor_suggestions の実行この手順では、レポートを生成するための report_qor_suggestions コマンドの実行方法を説明します。このコマンドは、合成後のインプリメンテーション フローのどの段階でも、開いているデザインに対して実行できます。プロジェクト モードの場合は、通常、合成またはインプリメンテーションの後に実行します。非プロジェクト モードの場合は、synth_design、link_design、opt_design、place_design、phys_opt_design、またはroute_design の後に実行できます。1. Vivado IDE のプルダウン メニューから、[Reports] → [Report QoR Suggestions…] をクリックし、次の図のダイア

ログ ボックスを開きます。

これと同等の Tcl コマンドは、次のとおりです。report_qor_suggestions -quiet -name qor_suggestions_1

このコマンドは次を実行します。• デザインを確認して、新しい推奨事項を生成• 推奨事項に基づいてレポートを生成Vivado 統合設計デザイン (IDE) にレポートが自動的に開きます。レポートは対話型なので、一度に 1 インスタンスのみ開くことができます。注記: デフォルトでは、RQS コマンドを実行すると、クロック グループごとに 100 のワーストのパスがレポートされます。タイミング クリティカルなパスを解析する場合は、-max_paths オプションを使用して、このパスの数を変更できます。この数を増やすと、より多くの推奨事項が生成されますが、その推奨事項の対象はクリティカルなパスだけではなくなります。重要な点がすべて解決した後のデザイン クロージャの後のほうの段階で、この数を増やすと役立つかもしれません。

手順 3: レポートについてこの手順では、生成された QoR 推奨事項レポートのさまざまなセクションを説明します。レポート ウィンドウの左側でレポートの各セクションにナビゲートでき、右側では詳細情報が確認できます。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 31

Page 32: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

1. 生成されたレポートの [RQS Summary] の下にある [GENERATED] を選択します。レポート ウィンドウは次のように表示されるはずです。

[GENERATED] セクションには、現在の run のこの段階で生成された推奨事項がすべてリストされます。[DESCRIPTION] には、推奨事項ごとに、なぜそのような提案がされているのか詳細な理由が表示されています。また、各推奨事項に次のような情報が提供されています。表 1: [RQS Summary] の表の列見出しの説明

項目 説明 コメントGENERATED_AT デザインのどの段階で推奨事項が生成されたのかを示します。一般的な値は、

place_design またはroute_design です。

推奨事項は段階を経ていくごとに生成されますが、その都度利用可能な情報に基づいてツールにより生成されます。また、配置後さらに配線後になると、情報はさらに正確になります。フローを進めていくと自然に問題が解決されることもあるので、初期段階に生成された推奨事項は無視してもかまわない場合があります。逆に、初期段階に生成された推奨事項の中にも、フローの後段階で問題解決のために、取り入れる必要のあるものがあります。

APPLICABLE_FOR 推奨事項を取り入れるために、どの段階で再実行の必要があるのかを示します。 ほとんどの推奨事項は、synth_design またはopt_design で実行されます。

SOURCE 推奨事項が生成された場所の詳細。 current run、または以前の run の場合は、推奨事項が含まれるファイル名が表示されます。AUTOMATIC 推奨事項が自動的に実行されるのか、またはユーザーが手動で実行する必要があるのかを示します。

自動推奨事項の場合は、ツールへのオプションの追加や、セルまたはネットへのプロパティの追加が推奨されます。

レポートのほかのセクションでは、生成された個々の推奨事項についての詳細が確認できます。2. [RQS_XDC_1_1] のハイパーリンクをクリックします。これで、この推奨事項の詳細が表示されます。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 32

Page 33: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

この推奨事項の説明によれば、タイミング制約がパスに対して厳しすぎます。このパスには大きな負のスラックがあり、タイミング レポートで目立つ可能性があります。タイミング パスには最適なネット遅延が使用されるので、ツールによって、パスの配置配線の正しい順番が決まります。詳しく解析すると、これはロジック レベルが 7 つある 600 MHz のパスだと確認できます。このパスには修正が必要です。すべてのパスを自動的に修正することはできません。このチュートリアルでは、フォルスパス制約が抜けていると想定します。パスを右クリックして [set false path] → [startpoint to endpoint] をクリックします。または、[TclConsole] ウィンドウに次のコマンドを入力します。set_false_path -to [get_cells clk300_to_clk600_ffs_i/bit_reducer_i/tmp_r_reg]

3. 左矢印 をクリックして [GENERATED] ビューに戻ります。4. [GENERATED] ビューで [RQS_UTIL-3-1] をクリックします。これらの推奨事項では、Pblock 内の異なるプリミテ

ィブ タイプの使用率が確認されます。

RQS では、フル デザイン、Pblock、SLR の使用率が確認されます。さらに、制御セットも確認され、デザインの数値が特性化されたモデルからのしきい値と比較されます。ただし、デザインによりますが、このモデルのしきい値は変わる可能性があります。これらのしきい値は、デバイスのハード リミットではなく、タイミング パフォーマンスへの影響を示すガイダンスとなります。この場合は、clk300_to_clk600_ffs_i Pblock でレジスタの使用率が高くなっています。RQS からは、このプリミティブ タイプの使用率を下げるための一般的な推奨事項が提示されています。場合によっては、自動推奨事項が提示されることもあります。opt_design がまだ実行されていない点にも注目してください。つまり、これ以降さらに使用率が低減される可能性がありますが、このコマンドが実行されるまでは確実ではありません。RQS モデルは、synth_design から opt_design までの間は変化しません。また、Pblock のサイズを大きくして、この問題を解決することもできます。

5. [Window] → [Physical Constraints] をクリックします。[Physical Constraints] ウィンドウでclk300_to_clk600_ffs_i Pblock を選択し、[Pblock Properties] ウィンドウで [Statistics] タブを確認します。Pblock の使用率が表示されます。CLB の使用率は 104.19% であることがわかります。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 33

Page 34: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

6. この問題を回避するには、Pblock をより大きなクロック領域に移動し、Tcl コンソールに次のコマンドを入力します。resize_pblock pblock_clk300_to_clk600_fs_i \-add {SLICE_X0Y0:SLICE_X34Y59} -remove \{CLOCKREGION_X1Y4:CLOCKREGION_X1Y4} \-locs keep_all

アップデートされた Pblock の使用率は 79.04% になっています。しきい値よりはまだ高いのですが、これは構築されたデザインなので、この使用率では通常のデザインよりもパフォーマンスがよくなります。

7. 左矢印 をクリックして [GENERATED] ビューに戻ります。8. TIMING-54-1 推奨事項を確認します。この推奨事項を使用すると、グローバル配線に移行した方が良いファンア

ウトの多いネットがいくつか含まれるようになります。この段階では、ユーザーへの情報提供のみを目的に表示されています。opt_design はこれを自動的に実行しますが、RQS は密集やタイミングを改善する可能性のある場合にのみこれを推奨します。place_design が終わるまで待ってから、これを実行します。

この推奨事項の詳細セクションをクリックしながらざっと確認すると、次の図のように、この信号のファンアウトが 11000 であることがわかります。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 34

Page 35: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

9. このデザインの場合、この段階でエクスポートされる AUTOMATIC 推奨事項はありません。デザインを保存するかどうかを尋ねるメッセージが表示されたら、デザインを閉じて変更を保存しないようにします。FlowNavigator で [Open Implemented Design] をクリックします。デザインが古くなっていることを示すメッセージが表示されたら、メッセージを無視して続行し、デザインを開きます。これは、先ほど適用したアップデート済みのタイミングおよび Pblock 制約を使用して実行されたデザインです。

10. デザインが開いたら、[Reports] → [Report QoR Suggestions…] をクリックします。11. 推奨事項を確認します。2 つのクロッキング推奨事項が表示されるようになりました。クロッキング推奨事項は、QoR (結果の品質) を大きく改善することがあるので、注意して検証する必要があります。

RQS_CLOCK-1-1 は CLOCK_DELAY_GROUP を推奨していて、AUTOMATIC 推奨事項です。また、この演習の後半で説明するストラテジ推奨事項という推奨事項もあります。タイミング パスは、そのパスをナビゲートすると確認できます。RQS_CLOCK-2-1 は手動の提案 (AUTOMATIC=No) で、バッファーを BUFGCE から BUFGCE_DIV に変更することを推奨しています。パスをダブルクリックして、そのタイミング レポートを開きます。タイミング レポートで [Clock Uncertainty] のハイパーリンクをクリックします。[Phase Error (PE)] エレメントが表示されているのがわかります。位相エラーは、ソースおよびデスティネーションのクロックが異なる MMCM 出力ピンから供給されていると、追加されます。ここでは、同じ MMCM 出力ピンを使用し、それを異なる除数を使用したBUFGCE_DIV に接続するよう、提案されています。この変更には、手動で RTL を変更する必要があります。

12. AUTOMATIC 推奨事項の RQS_CLOCK-1-1 をエクスポートします。まず、RQS_CLOCK-1-1 を選択します。その他の推奨事項を選択することもできます。AUTOMATIC でない推奨事項は無視され、Strategy 推奨事項は選択できません。[Add Suggestions to Project] をクリックして適切なディレクトリを選択します。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 35

Page 36: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

13. [Source] ウィンドウで [Utility Sources] を展開し、プロジェクトに追加された rqs_report.rqs ファイルを見つけます。

14. [Design Runs] ウィンドウで [Impl_2] を選択して右クリックし、[Set QoR Suggestions] をクリックします。

15. プロジェクトに追加された [rqs_report.rqs] ファイルを選択します。

次は、インプリメンテーションを実行し、推奨事項が適用されたかどうかを確認します。

手順 4: 推奨事項を使用した実行ここではまず、推奨事項が適用されるとどうなるのか、どのようにレポートされるのかを確認します。それからさらに推奨事項を RQS ファイルに追加します。1. 開いているプロジェクトを閉じて、次のプロジェクト (2_Updated_RTL_Files.xpr) を開きます。2. Flow Navigator で [Open Implemented Design] をクリックします。3. run が開いている間に、インプリメンテーション run のログ ファイルを確認します。[Reports] ビューで

[impl_1_route_implementation_log_0] をクリックしてインプリメンテーション ログ ファイルを開きます。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 36

Page 37: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

ログ ファイルで次を見つけてください。1. Read QOR Suggestions Summary-------------------------------

Read QOR Suggestions Summary+----------------------------------------------+---------------+-------+| Suggestion Summary | Incr Friendly | Total |+----------------------------------------------+---------------+-------+| Total Number of Suggestions | 0 | 3 || ENABLED | 0 | 3 || APPLICABLE_AT | | || synth_design | 0 | 0 || opt_design | 0 | 3 || That overlap with synthesis suggestions | 0 | 0 || place_design | 0 | 0 || phys_opt_design | 0 | 0 || route_design | 0 | 0 || NOT ENABLED | 0 | 0 |+----------------------------------------------+---------------+-------+

INFO: [Vivado_Tcl 4-1103] Successfully read QoR suggestions file: <dir>/1_InitialRun.srcs/utils_1/imports/impl_2/rqs_report.rqs.

この表には、フローのどの段階でどの推奨事項が実行されるかのサマリと、ファイルが問題なく読み込まれたことを示すメッセージが表示されます。RQS ファイルはバイナリ形式なので、テキスト エディターに読み込むことはできません。このため、さらに詳細を把握するには、推奨事項ファイルが読み込まれた後のどの段階ででも次のコマンドを実行して、フル レポートを生成します。プロジェクト モードの場合は、Pre/Post Tcl フックが必要になります。report_qor_suggestions -of_objects [get_qor_suggestions]

このコマンドにより、メモリ内のすべての推奨事項がレポートされます。新たな推奨事項を生成するreport_qor_suggestions が呼び出される前に、これを実行しているので、このファイルからの推奨事項のみが表示されます (-of_objects オプションなしに呼び出されると、RQS により新たな推奨事項が生成される)。既存の推奨事項の場合は、すぐにレポートが表示されます。最後に、次を検索します。INFO: [Vivado_Tcl 4-1067] Applying enabled auto TCL RQS suggestion for opt_design: RQS_CLOCK-1-1

この時点で推奨事項が実行され、CLOCK_DELAY_GROUP 制約が適用されます。4. [Implemented Design] ダイアログ ボックスが開いたら、[Reports] → [Report QoR Suggestions...] をクリックします。このとき、次の図のように、[View existing suggestions] チェック ボックスがオンになっていることを確認します。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 37

Page 38: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

5. レポートの [RQS Summary] の下にある [APPLIED] を選択します。これで、既に適用されている AUTOMATIC 推奨事項がすべて表示されます。ここでは RQS_CLOCK-1-1 が適用されているのが確認できます。

この推奨事項は current_run からのものではありません。6. [EXISTING] をクリックします。まだ適用されていない RQS ファイルに含まれていた推奨事項が表示されます。

クリックすると、これが手動の BUFGCE_DIV 推奨事項であることがわかります。これは適用されることはないので、EXISTING バケットに含まれたままになります。タイミング レポートは前の run から読み込まれており、もはや有効ではない可能性があるので、クリックできないようになっています。タイミング解析を実行すると、ネットのクロッキング スキームの位相誤差を確認できます。report_timing -to [get_clocks clk_300_clk_wiz_0] -to [get_clocks \clk_600_clk_wiz_0] -name 1

生成されたタイミング レポートで [Clock Uncertainty] リンクをクリックすると、位相誤差が 0 に削減されたことがわかります。

7. [GENERATED] をクリックします。ここでは、ストラテジ推奨事項が確認できます。これらは、機械学習を使用する特殊な推奨事項で、デザインに合わせてカスタマイズされたインプリメンテーション ストラテジが生成されます。

手順 5: ML ストラテジの実行1. 前の手順からのプロジェクトを開いたままで、Tcl コンソールで「cd <extract_dir>/Lab2」と入力します。

このディレクトリには、次の手順でいくつかファイルを書き込むので、ディレクトリ名を覚えておいてください。2. 「write_qor_suggestions -strategy_dir ./」と入力してこのディレクトリに移動します。次のファイルがあるはずです。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 38

Page 39: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

ストラテジごとに 3 つのファイルがあります。a. *Project*.tcl ファイルは、それが作成されたプロジェクト内から読み込まれます。これにより、新しい

run が作成され、RQS ファイルで定義されたインプリメンテーション ストラテジと推奨事項が参照されます。

b. *NonProject*.tcl は、プロジェクト フローを使用しないインプリメンテーション フロー用にこれを設定する方法示すサンプル ファイルです。フローを実行するのに必要なものすべてが含まれているわけではなく、デモ目的にのみ用意されています。たとえば、これには open_checkpoint および実行するすべてのレポート コマンドを含める必要があります。RQS ファイルを参照して指示子を設定する例を示しています。

c. RQS ファイルそれぞれにすべての標準推奨事項オブジェクトと 1 つのストラテジ推奨事項が含まれます。このファイルは、プロジェクト モードおよび非プロジェクト モードの両方で共通です。

3. Tcl プロジェクト ファイルを読み込みます。Tcl コンソールに次のコマンドを入力します。source ./impl_1Project_MLStrategyCreateRun1.tclsource ./impl_1Project_MLStrategyCreateRun2.tclsource ./impl_1Project_MLStrategyCreateRun3.tcl

4. では、[Design Runs] ウィンドウを確認します。作成した 3 つの新しい run が表示されるはずです。

5. run の 1 つを選択します。[Implementation Run Properties] を確認します。各指示子が RQS に設定されています。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 39

Page 41: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

7. これらの run を開始するか、<extract_dir>/lab2/project 3_ML_Strategies ディレクトリ (Linux の場合、プロジェクト パスは <extract_dir>/Lab2/3_ML_Strategies/3_ML_Strategies.xpr) にあるプロジェクトを開くことができます。

8. 最後に、ML ストラテジを使用した run の結果を確認します。これらの run の 1 つはタイミング クロージャを達成しており、2 つは全体的なタイミングが改善しています。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 41

Page 42: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

まとめこの演習では、デモ用デザインに対し複雑な解析を実行するため RQS を使用しました。まず、インプリメンテーションの問題を解決するために提案された推奨事項に沿った RQS が表示されているレポートを確認し、それから、RQSファイルを生成して、それをプロジェクトのインプリメンテーション run に追加しました。これらの推奨事項は、Vivado インプリメンテーション ツールで自動的に実行されました。その後、さらに解析を実行し、ML ストラテジ推奨事項を生成して、さらに run を実行してから、最終的にデザイン クロージャを達成しました。

第 2 章: QoR 推奨事項レポートの使用

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 42

Page 43: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

付録 A

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

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

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

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

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 43

Page 44: Vivado Design Suite ਠチュートリアル: デザイン解 …...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.2)

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

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

UG938 (v2019.2) 2020 年 2 月 5 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 44