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

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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

改訂履歴

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

Page 3: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

第 2 章: 演習 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: 除外された違反のサマリ レポートの生成.................................................................................................... 23手順 12: 除外コマンドの使用....................................................................................................................................... 25まとめ............................................................................................................................................................................ 26

第 3 章: 演習 2: report_qor_suggestions の使用.......................................................................... 27概要................................................................................................................................................................................27手順 1: デザインについて.............................................................................................................................................27手順 2: report_qor_suggestions の実行..................................................................................................................... 30手順 3: レポートについて.............................................................................................................................................31手順 4: 提案を使用した実行......................................................................................................................................... 36手順 5: デザイン クロージャ........................................................................................................................................ 38まとめ............................................................................................................................................................................ 40

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

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

Page 4: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

第 1 章

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

このチュートリアルでは、サンプル デザインに問題がないかどうかを解析するため 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> と表記されます。

第 1 章: チュートリアルの概要

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

Page 5: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

第 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.1) 2019 年 8 月 12 日 japan.xilinx.comデザイン解析およびクロージャ テクニック 5

Page 6: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

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

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

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

Page 7: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

手順 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] をクリックします。

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

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

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

重要: 除外が追加された日付、除外を追加したユーザー、違反の除外理由が確認できます。日付はシステムにより自動的に追加されます。[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)] の違いは次の図で赤くハイライトされています。

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

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

Page 9: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

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

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

Page 10: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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 つのみ作成されているからです。

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

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

Page 11: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

除外された違反の 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 違反は除外されていないことを確認します。

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

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

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

注記: このレポートでは、除外設定の有無に関係なくすべての違反がレポートされます。[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] をクリックします。

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

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

Page 13: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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 が表示されるようになります。

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

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

Page 14: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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) とは異なります。

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

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

Page 15: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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 つの除外を確認します。

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

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

Page 16: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

注記: 次の例は、異なるコマンド ライン オプションがよく確認できるように、フォーマットを変えてあります。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 を確認します。

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

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

Page 17: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

このクロック乗せ換えには、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 ビットを掛けて計算されています。

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

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

Page 18: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

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

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

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

次の警告メッセージは、重複している除外が既存の除外に追加されなかったことを知らせています。既存の除外とまったく同じの除外だけが追加されていません。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.

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

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

Page 19: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

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

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

Page 20: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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 の場合、エレメント数には意味がないので、違反のオブジェクト数がワイルドカードに置き換えられます。

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

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

Page 21: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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] をクリックします。

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

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

Page 22: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

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

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

Page 23: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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 ルールを示しています。

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

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

Page 24: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

除外されたオブジェクトの数、および違反の合計数を確認します。• レポート サマリの 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)] セクションは含まれていません。

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

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

Page 25: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

手順 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 TAGS string false TIME string true <timestamp> TYPE string true CDCUSED_CNT string true 10USER string true Xilinx

注記: 除外オブジェクトに付随しているデザイン オブジェクトを復元させることはできません。

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

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

Page 26: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

4. 前に作成した CDC-14 除外をすべて削除するには、次を入力します。delete_waivers [get_waivers -filter {ID == CDC-14}]

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

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

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

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

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

Page 27: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

第 3 章

演習 2: report_qor_suggestions の使用概要

重要: Windows を使用する場合は、この演習を実行するのに、japan.xilinx.com/support/answers/72633.html にあるパッチをインストールする必要があります。

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

○ オプションをコマンドに追加○ プロパティをデザイン オブジェクトに追加

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

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

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

Page 28: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

• バス ダブル レジスタ モジュール: このモジュールにより、ワイド データ バスで接続されている 2 つのサブモジュールがインスタンシエートされます。この 2 つのサブモジュールは、フロアプランを使用してそれぞれ離して配置できます。これにより、このサブモジュールの間のエリアに配線が追加されます。これは、十分に配線を密集させて、提案が生成されるようにするのが目的です。

• LUT 組み合わせモジュール: このモジュールにより、入力データが 3 回レジスタされます。これらのビットにXOR を介した出力がレジスタされます。3 つの共通入力があるので、LUT 組み合わせが作成され、これが原因で配線が密集する可能性があります。

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

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

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 29: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

2. Flow Navigator で [Open Synthesized Design] をクリックします。3. [Netlist] ビューで階層を確認します。

最上位にあるモジュールはすべて互いに独立しています。これらの間にはタイミング パスはありません。これらのモジュールと I/O の間にもタイミング パスはありません。

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

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 30: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

ヒント: ブロックを選択し、F4 キーを押すと、回路図ツールが開くので、デザインをさらに調べることができます。前の図で確認したように、LUT 組み合わせモジュールがバス ダブル レジスタ サブモジュールの間に配置されています。このように配置しておくと、ネットが LUT 組み合わせモジュールをまたぐので、配線が密集します。実際のデザインと同じように配線が密集しているのですが、厳しい条件になっています。RQS は実際のデザインでも通用するようにできています。レジスタ CLKA から CLKB へのモジュールの配置は、clk300_to_clk600_ffs_i pblock に含まれています。

手順 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…] をクリックすると、次の図のようにダイアログ ボックスが開きます。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 31: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

手順 3: レポートについてこの手順では、生成された QoR 提案レポートのさまざまなセクションを説明します。レポート ウィンドウの左側でレポートの各セクションにナビゲートでき、右側では詳細情報が確認できます。1. 生成されたレポートの [RQS Summary] の下にある [GENERATED] を選択します。レポート ウィンドウは次のように表示されるはずです。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 32: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

[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 つのパスの詳細情報は、XDC セクションに含まれています。提案によっては、デザイン内の複数のオブジェクトをターゲットにできるものもあります。最初のパスには大きな負のスラックがあり、タイミング レポートで目立つ可能性があります。タイミング パスには最適なネット遅延が使用されるので、ツールによって、パスの配置配線の正しい順番が決まります。詳しく解析すると、これはロジック レベルが 7 つある 600 MHz のパスだと確認できます。このパスには修正が必要です。すべてのパスを自動的に修正することはできません。このチュートリアルでは、フォルスパス制約が抜けていると想定します。[Tcl Console] ウィンドウに次のコマンドを入力します。set_false_path -to [get_cells clk300_to_clk600_ffs_i/bit_reducer_i/tmp_reg]

2 番目のパスにはタイミング エラーはありませんが、フラグが付いています。このチェックでは、ネットおよびLUT のおおよそのバジェットを決めて、パスも確認されます。チェックが実行されるのは、最適な配線を常に利用できるとは限らないのと、ツールによりタイミング スラックが過剰に見積もられてしまう可能性があるからです。この 2 番目のチェックは重要度が低いのですが、それでもやはりデザイン サイクルの早期段階で確認しておくべきです。

3. 左矢印 をクリックして [GENERATED] ビューに戻ります。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 33: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

4. [GENERATED] ビューで [RQS_UTIL-3-1] をクリックします。これらの提案では、Pblock 内の異なるプリミティブタイプの使用率が確認されます。

RQS では、フル デザイン、Pblock、SLR の使用率が確認されます。さらに、制御セットも確認され、デザインの数値が特性化されたモデルからのしきい値と比較されます。ただし、デザインによりますが、このモデルのしきい値は変わる可能性があります。この場合は、両方の 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 の使用率は 71.85% であることがわかります。

6. Pblock のサイズを変更するには、次のコマンドを [Tcl Console] ウィンドウに追加します。resize_pblock pblock_clk300_to_clk600_fs_i \-add {SLICE_X0Y0:SLICE_X34Y59} -remove {CLOCKREGION_X0Y0:CLOCKREGION_X0Y0} \-locs keep_all

アップデートされた Pblock の使用率は 59.54% になっています。これはしきい値より低い値です。もう 1 つのPblock はそのままにしておきます。この場合は、Pblock に設定されている制約が配線の密集を生成するために使用されています。通常のデザインでは、Pblock の使用率は 82% なので、エラーを引き起こす可能性があります。

7. 左矢印 をクリックして [GENERATED] ビューに戻ります。8. TIMING-54-1 提案を確認します。この提案は、全体的な配線使用率を低減するため、BUFG を挿入することを推

奨しています。これは自動提案です。APPLICABLE_FOR == opt_design なので、現在の段階はsynth_design の後なので、run を再実行する必要はありません。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 34: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

9. 左矢印 をクリックして [GENERATED] ビューに戻ります。10. run にエクスポートする自動提案を選択します。まず、表の列見出しのチェック ボックスをオフにし、列全体を

オフにしてから、RQS_TIMING-54-1 に関連付けられているチェック ボックスのみをオンにします。チェック ボックスがオンになっているのは、次の図のものだけです。

11. [Export Suggestions] ボタンをクリックし、ロケーションを <extract_Dir>/lab2/initial_run_post_synth_suggestions.rqs に指定します。

12. 提案が run に追加されるようにするには、read_qor_suggestions コマンドを実行する必要があります。プロジェクト モードの場合、opt_design の段階に入る前に Tcl フックを使用してこの作業を実行する必要があります。その目的で、pre_opt.tcl ファイルが作成され、プロジェクトに追加されています。[Sources] ウィンドウで、[Utility Sources] → [ utils_1] → [TCL] をクリックし、pre_opt.tcl ファイルを開きます。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 35: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

このファイルには、次のものが含まれています。

この Tcl ファイルを正しく機能させるには、次の条件を満たしておく必要があります。a. インプリメンテーション run 用に、pre-opt_design 段階で、Tcl フックとしてこの Tcl ファイルを指定するこ

と。b. RQS ファイルは、この Tcl スクリプトと同じディレクトリに保存すること。c. RQS ファイルは自動的にコピーされず、b で説明されている必須の関係が壊れてしまうので、インプリメンテーション run の Tcl フックとしてこの Tcl ファイルを指定する場合は、Tcl ファイルをプロジェクトにコピーしないこと。

次に、インプリメンテーション run のオプションでこのファイルが設定されていることを確認します。FlowNavigator で [Settings] → [Implementation] → [opt_design] をクリックします。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 36: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

注記: サイズ変更した Pblock およびフォルスパス制約が post_link.tcl スクリプト内に追加されます。これで自動的にユーザー制約に追加されるはずですが、run の日付が古くならないようにするため、これらの制約がTcl スクリプトを介して追加されています。

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

[impl_1_route_implementation_log_0] をクリックしてインプリメンテーション ログ ファイルを開きます。このログ ファイル内で次の行を検索します (<extract_dir> もきちんと含め、文字列も置き換えずに)。source <extract_dir>/lab2/pre_opt.tcl

Tcl スクリプトを実行した後に、次の 2 つのメッセージがすぐに表示されます。RQS_INFO: Reading qor suggestion file <extract_dir>/lab2/initial_run_post_synth_suggestions.rqsINFO: [Vivado_Tcl 4-1103] Successfully read QoR suggestions file: <extract_dir>/initial_run_post_synth_suggestions.rqs

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 37: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

この RQS_INFO メッセージは Tcl ファイルから来ています。プロジェクトのソース ファイルが保存されていないディレクトリで run が実行されているので、ファイルパスの問題をデバッグするために、Tcl ファイルにいくつかメッセージを追加しておくとよいでしょう。非プロジェクト モードでフローを実行しているときは、この必要はありません。INFO: [Vivado_Tcl 4-1103] メッセージはファイルが読み込まれていることを示すため、read_qor_suggestions により生成されています。RQS ファイルはバイナリ形式なので、テキスト エディターに読み込むことはできません。このため、RQS ファイルを読み込んだ後に、どの提案が読み込まれたのかを示すため、pre_opt.tcl スクリプトに次のコマンドが追加されています。report_qor_suggestions -of_objects [get_qor_suggestions]

このコマンドにより、メモリ内のすべての提案がレポートされます。新たな提案を生成するreport_qor_suggestions が呼び出される前に、これを実行しているので、このファイルからの提案のみが表示されます (-of_objects オプションなしに呼び出されると、RQS により新たな提案が生成される)。最後に、次を検索します。Phase 4 BUFG optimizationINFO: [Opt 31-318] Inserted a BUFGCE for CLOCK_BUFFER_TYPE property on net: clk300_to_clk600_ffs_i/a_rPhase 4 BUFG optimization | Checksum: 115417bbf

この時点で提案が実行され、BUFGCE がネットリストに挿入されます。3. [Implemented Design] ダイアログ ボックスが開いたら、[Reports] → [Report QoR Suggestions...] をクリックしま

す。このとき、次の図のように、[View existing suggestions] チェック ボックスがオンになっていることを確認します。

4. レポートの [RQS Summary] の下にある [APPLIED] を選択します。これで、既に適用されている AUTOMATIC の提案がすべて表示されます。ユーザー提案は解析されません。ここでは RQS_TIMING-54-1 が適用されているのが確認できます。

また、この提案は current_run からのものではありません。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 38: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

5. [GENERATED] をクリックします。新たな提案が生成されたので、確認が必要です。その理由は次のとおりです。a. インプリメンテーションを進めるにつれ、初期段階の見積もり値が固まってきて、正確さが増してきます。

ここから先、さらに操作が必要になるかならないかの判断も正確になっていくので、RQS ではアップデートされた数値だけでなく、異なるしきい値も使用されます。

b. 一部の提案は初期設計段階では適用されません。たとえば、配置情報が揃ったときでないと、配線の密集に関する提案は適用できません。

6. ほかの提案を確認します。提案 RQS_CLOCK-2-1 に注目してください。これは手動の提案で、クロックのインプリメンテーションで BUFGCE ではなく BUFGCE_DIV を使用するように推奨しています。この提案の詳細は、『UltraFast 設計手法ガイド (Vivado Design Suite 用)』 (UG949: 英語版、日本語版) の「同期 CDC」のセクションも参照してください。

7. [RQS_CLOCK-2-1] のハイパーリンクをクリックして、この提案の詳細を確認します。

8. 次に、パス上のクロックをダブルクリックして、タイミング レポートを開きます。タイミング レポートで [ClockUncertainty] のハイパーリンクをクリックします。[Phase Error (PE)] エレメントが表示されているのがわかります。位相エラーは、ソースおよびデスティネーションのクロックが異なる MMCM 出力ピンから供給されていると、追加されます。ここでは、同じ MMCM 出力ピンを使用し、それを異なる除数を使用した BUFGCE_DIV に接続するよう、提案されています。この変更には、手動で RTL を変更する必要があります。

9. RQS ファイルは、既存の提案と、新しく生成された提案の両方を含めるように変更できます。今回は Tcl を使用して、次のように提案をエクスポートします。• RQS_TIMING-54-1 - これは、[APPLIED] セクションでエクスポートした前の提案です。• RQS_CLOCK-1-1 - これは CLOCK_DELAY_GROUP を適用するための新たな提案です。この Tcl の構文は、次のとおりです。write_qor_suggestions -of_objects [list RQS_TIMING-54-1 RQS_CLOCK-1-1] \ -force <extract_dir>/lab2/initial_run_post_route_suggestions.rqs

10. [File] → [Close Project] をクリックして、プロジェクトを閉じます。

手順 5: デザイン クロージャ1. Vivado® Design Suite で [File] → [Project] → [Open] をクリックし、<extract_Dir>/lab2/2_synth_fixes に

あるプロジェクトを選択します。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 39: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

2. 完成しているインプリメンテーション run が既に存在します。Flow Navigator で [Open Implemented Design] をクリックします。デザインを開き、アップデートされた clocking_module.vhd およびインプリメンテーション ログ ファイルを時間をとって確認します。

3. デザインを開き、[Netlist] ウィンドウで [mmcm_inst] を選択し、[F4] キーを押します。インプリメントされたクロッキングの変更を確認します。アップデートされたクロッキングは次の図のようになります。

4. [Timing] タブで [Inter-clock paths] → [clk_300 to clk600_clk_wiz] をクリックし、最初のパスを選択します。次に、クロックのばらつきを確認します。位相エラーが 0.000 に低減されているのがわかります。

5. タイミング レポートで [Design Timing Summary] を選択し、run でタイミング クロージャが達成されていることを確認します。

6. また、このデザインの最新版で report_qor_suggestions を実行し、さらに RQS 提案を確認することもできます。タイミング クロージャが達成されたデザインでは、タイミング エラーがないので提案数は限られていますが、配線の密集に関する提案はデザイン改善のために引き続き表示されます。

7. [Close] をクリックしてデザインを閉じます。

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 40: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

第 3 章: 演習 2: report_qor_suggestions の使用

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

Page 41: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

付録 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

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

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

Page 42: Vivado Design Suite チュート リアル...Vivado Design Suite チュート リアル デザイン解析およびクロージャ テクニ ック UG938 (v2019.1) 2019 年 8 月 12

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

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

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