92
Vivado Design Suite チュートリアル インプリメンテーション この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報 につきましては、必ず最新英語版をご参照ください。 UG986 (v2019.2) 2019 年 12 月 20 日 このチュートリアルは 2019.1 で検証されており、それ以降のリリースでは手順が多少異なる場合あり。

Vivado Design Suite チュートリアル: インプリメンテーション...このチュートリアルでは、抽出された Vivado_Tutorial ディレクトリを

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

  • Vivado Design Suite チュートリアルインプリメンテーションUG986 (v2019.1) 2019 年 6 月 24 日

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

    UG986 (v2019.2) 2019 年 12 月 20 日

    このチュートリアルは 2019.1 で検証されており、それ以降のリリースでは手順が多少異なる場合あり。

    https://www.xilinx.com

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

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

    資料全体 図をアップデート

    改訂履歴

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 2UG986 (v2019.2) 2019 年 12 月 20 日

    2019/12/20: Vivado® Design Suite 2019.2 リリース。2019.1 から内容の変更なし。

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=2

  • 目次改訂履歴..........................................................................................................................................................................2インプリメンテーション チュートリアル............................................................................................. 5概要..................................................................................................................................................................................5チュートリアル デザインの概要.................................................................................................................................... 5ハードウェアおよびソフトウェア要件..........................................................................................................................6チュートリアル デザイン ファイルの準備.................................................................................................................... 6

    演習 1: インプリメンテーション ストラテジの使用......................................................................7手順 1: サンプル プロジェクトを開く........................................................................................................................... 7手順 2: 追加のインプリメンテーション run の作成................................................................................................... 13手順 3: インプリメンテーション結果の解析...............................................................................................................14手順 4: タイミング要件を厳しくする.......................................................................................................................... 15まとめ............................................................................................................................................................................ 17

    演習 2: インクリメンタル インプリメンテーションの理解................................................... 18手順 1: サンプル プロジェクトを開く......................................................................................................................... 18手順 2: [Design Runs] ウィンドウでの [Incremental] 列の表示.............................................................................. 22手順 3: インクリメンタル インプリメンテーションをオンにする............................................................................ 23手順 4: リファレンス デザインのコンパイル.............................................................................................................. 25手順 5: インクリメンタルな変更を加える...................................................................................................................26手順 6: 合成およびインプリメンテーションの再実行................................................................................................ 28まとめ............................................................................................................................................................................ 30

    演習 3: 手動および指定配線...........................................................................................................................31手順 1: サンプル プロジェクトを開く......................................................................................................................... 31手順 2: デザインの配置配線......................................................................................................................................... 36手順 3: 出力バスのタイミングの解析.......................................................................................................................... 37手順 4: 配置によりバスのタイミングを向上...............................................................................................................42手順 5: 手動配線を使用したクロック スキューの削減............................................................................................... 46手順 6: 配線のほかのネットへのコピー...................................................................................................................... 55まとめ............................................................................................................................................................................ 57

    演習 4: Vivado ECO フロー.............................................................................................................................59手順 1: Vivado の New Project ウィザードを使用したプロジェクトの作成............................................................ 61手順 2: 合成、合成、インプリメンテーション、およびビットストリームの生成................................................... 62手順 3: ボードでのデザインの検証..............................................................................................................................63手順 4: ECO 変更を加える............................................................................................................................................ 69手順 5: ECO 変更のインプリメンテーション.............................................................................................................. 81

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 3UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=3

  • 手順 6: デバッグ プローブの置換.................................................................................................................................86まとめ............................................................................................................................................................................ 90

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

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 4UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=4

  • インプリメンテーション チュートリアル重要: このチュートリアルでは、Kintex®-7 および Kintex® UltraScale™ ファミリのデバイスを使用します。これらのデバイス ファミリがインストールされていない場合は、Vivado® Design Suite ツールをアップデートする必要があります。デザイン ツールまたはデバイスの追加の詳細は、『Vivado Design Suite ユーザー ガイド: リリース ノート、インストール、およびライセンス』 (UG973) を参照してください。

    概要このチュートリアルには、ザイリンクス Vivado Design Suite インプリメンテーション ツールの異なる機能を学ぶ 4つの演習が含まれています。• 演習 1: デザインの異なる目標を達成するためインプリメンテーション ストラテジの使用方法を示します。• 演習 2: デザインに少しの変更を加えた後にインクリメンタル コンパイル機能を使用する方法を示します。• 演習 3: 手動配置配線、配線のコピー、およびタイミングの微調整を実行する方法を示します。• 演習 4: Vivado ECO を使用してデザインのインプリメンテーション後にすばやく変更を加える方法を示します。Vivado インプリメンテーションは、デザインの論理制約、物理制約、タイミング制約を満たしながらネットリストをFPGA デバイス リソースに配置配線するためのすべての段階を含みます。ビデオ: デザインのインプリメントについてさらに学ぶには、次の QuickTake ビデオをご視聴ください。• Vivado QuickTake ビデオ: デザインのインプリメンテーション• Vivado QuickTake ビデオ: Vivado のインクリメンタル インプリメンテーションを使用トレーニング: ザイリンクス では、この資料に含まれるコンセプトを説明するさまざまなトレーニング コースおよび QuickTake ビデオを提供しています。次のリンクから関連するコースを参照してください。• Vivado Design Suite を使用した FPGA の設計 1• Vivado Design Suite を使用した FPGA の設計 2• Vivado Design Suite を使用した FPGA の設計 3• Vivado Design Suite を使用した FPGA の設計 4

    チュートリアル デザインの概要演習 1 で使用するデザインは、Vivado Design Suite インストールに含まれる CPU ネットリスト サンプル デザインproject_cpu_netlist_kintex7 です。このデザインは、最上位 EDIF ネットリスト ソース ファイルと XDC 制約ファイルを使用します。演習 2 および演習 3 で使用するデザインは、BFT コア サンプル デザイン project_bft_kintex7 です。このデザインには、Verilog および VHDL 両方の RTL と、XDC 制約ファイルが含まれます。

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 5UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.com/cgi-bin/docs/rdoc?v=2019.2;t=vivado+install+guidehttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=video;d=hardware/implementing-the-design.htmlhttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=video;d=hardware/incremental-implementation-vivado.htmlhttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=training;d=designing-fpgas-vivado-design-suite-1.htmlhttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=training;d=designing-fpgas-vivado-design-suite-2.htmlhttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=training;d=designing-fpgas-vivado-design-suite-3.htmlhttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=training;d=designing-fpgas-vivado-design-suite-4.htmlhttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=5

  • 演習 4 で使用するデザインは、ザイリンクス ウェブサイトからリファレンス デザインとして入手できます。演習 4のデザイン ファイルの場所 を参照してください。CPU ネットリストおよび BFT コア デザインは XC7K70T デバイスをターゲットとしており、演習 4 のデザインはXCKU040 デバイスをターゲットとしています。データ サイズを小さくし、ハードウェア要件を最小限に抑え、チュートリアルを短時間で完了できるようにするため、小型のデザインでチュートリアルを実行します。

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

    チュートリアル デザイン ファイルの準備演習 1 ~ 3 のデザイン ファイルの場所このチュートリアルの演習 1 ~ 3 のファイルは、Vivado Design Suite インストールの次のディレクトリにあります。/Vivado//examples/Vivado_Tutorial

    提供されている ZIP ファイルをいつでも解凍して、ローカル ディレクトリにチュートリアル ファイルを出力したり、ファイルを元の状態に復元したりできます。ZIP ファイルの内容をソフトウェア インストール ディレクトリから書き込可能なディレクトリに解凍します。/Vivado//examples/Vivado_Tutorial.zip

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

    演習 4 のデザイン ファイルの場所演習 4 のリファレンス デザインにアクセスするには、次を実行します。1. C: ドライブに /Vivado_Tutorial というフォルダーを作成します。2. ザイリンクス ウェブサイトからリファレンス デザイン ファイルをダウンロードします。3. チュートリアルのソース ファイルを /Vivado_Tutorial フォルダーに解凍します。

    インプリメンテーション チュートリアル

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 6UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.com/cgi-bin/docs/rdoc?v=2019.2;t=vivado+install+guidehttps://japan.xilinx.com/cgi-bin/docs/ctdoc?cid=1d3051b4-bde1-465e-9c1d-99add30f6b44;d=ug986-vivado-tutorial-implementation.ziphttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=6

  • 演習 1

    インプリメンテーション ストラテジの使用

    この演習では、デザインの実行にインプリメンテーション ストラテジを使用する方法を学びます。異なるストラテジを使用する複数のインプリメンテーション run を作成して、結果を比較します。Vivado® IDE に含まれる CPU ネットリスト サンプル デザインを使用します。

    手順 1: サンプル プロジェクトを開く1. ザイリンクス Vivado IDE を開きます。

    Linux:

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

    2. 「vivado」と入力して、Vivado IDE を起動します。Windows:

    1. 次をクリックして Vivado IDE を起動します。[Start] → [All Programs] → [Xilinx Design Tools] → [Vivado 2019.x] → [Vivado 2019.x]注記: [スタート] メニューの Vivado Design Suite インストールの表示が [Xilinx Design Tools] とは異なる場合があります。注記: または、[Vivado 2019.x] デスクトップ アイコンをクリックし、Vivado IDE を起動します。

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

    3. Open Example Project ウィザードの [Create an Example Project] ページで [Next] をクリックします。

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 7UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=7

  • 4. [Select Project Template] ページで [CPU (Synthesized)] プロジェクトを選択し、[Next] をクリックします。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 8UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=8

  • 5. [Project Name] ページで次のように指定し、[Next] をクリックします。• [Project name]: project_cpu_netlist

    • [Project location]:

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 9UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=9

  • 6. [Default Part] ページで [xc7k70tfbg676-2] を選択し、[Next] をクリックします。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 10UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=10

  • 7. [New Project Summary] ページでプロジェクトの詳細を確認し、[Finish] をクリックします。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 11UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=11

  • Vivado IDE がデフォルト表示で開きます。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 12UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=12

  • 手順 2: 追加のインプリメンテーション run の作成プロジェクトに含まれる定義済みのインプリメンテーション run は、Vivado IDE の [Design Runs] ウィンドウに表示されます。この手順では、新しいインプリメンテーション run を作成し、これらの新しい run を使用してインプリメンテーション ストラテジを変更します。1. メイン メニューから [Flow] → [Create Runs] をクリックします。2. Create New Runs ウィザードが開きます。3. [Next] をクリックして [Configuration Implementation Runs] ページを開きます。

    このページには、新しく定義するインプリメンテーション run が表示されています。この run を設定し、さらにrun を追加します。

    4. [Strategy] 列のドロップダウン リストから [Performance_Explore] を選択します。5. [Add] ボタンを 2 回クリックし、run を 2 つ追加します。 6. impl_3 run の [Run Strategy] ドロップダウン リストから [Flow_RunPhysOpt] を選択します。7. impl_4 run の [Run Strategy] ドロップダウン リストから [Flow_RuntimeOptimized] を選択します。

    次の図に示すように、[Configure Implementation Runs] ページに作成した 3 つの run とそのストラテジが表示されます。

    8. [Next] をクリックして [Launch Options] ページを開きます。9. [Do not launch now] をオンにして [Next] をクリックし、[Create New Runs Summary] ページを確認します。10. [Create New Runs Summary] ページで [Finish] をクリックします。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 13UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=13

  • 手順 3: インプリメンテーション結果の解析1. [Design Runs] ウィンドウですべてのインプリメンテーション run を選択します。

    2. ツールバーの [Launch Runs] ボタン をクリックします。3. [Launch Runs] ダイアログ ボックスで [Launch runs on local host] をオンにし、[Number of jobs] を 4 に設定します。

    4. [OK] をクリックします。2 つの run が同時に起動し、残りの run はキューに入ります。

    アクティブ run (impl_1) が完了したら、[Project Summary] を確認します。[Project Summary] にアクティブ runのステータスと結果が反映されます。アクティブ run (impl_1) が完了すると、[Implementation Completed] ダイアログ ボックスが表示されます。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 14UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=14

  • 5. [Cancel] をクリックしてダイアログ ボックスを閉じます。注記: [Project Summary] の下の方に、次の図に示すようにインプリメンテーション使用率結果が棒グラフで表示されます。

    インプリメンテーション run を開くと、report_power および report_timing_summary の結果が [Results]ウィンドウの新しいタブに自動的に開きます。

    6. すべての run が完了したら、[Design Runs] ウィンドウを選択します。7. [Design Runs] ウィンドウで impl_3 run を右クリックし、[Make Active] をクリックします。

    [Project Summary] に impl_3 のステータスと結果が表示されます。

    8. [Design Runs] ウィンドウで完了した run の結果を比較します。• [Elapsed] 列を見ると、Flow_RuntimeOptimized ストラテジを使用した impl_4 が最短時間で終了したことがわかります。

    • [WNS] 列は、すべての run がタイミング要件を満たしていることを示しています。

    手順 4: タイミング要件を厳しくするPerformance_Explore ストラテジのタイミングへの影響を調べるため、タイミング制約を厳しくしてタイミングクロージャの達成を難しくします。1. [Sources] ウィンドウで constrs_2 制約セットの top_full.xdc ファイルをダブルクリックします。

    制約ファイルが Vivado IDE のテキスト エディターで開きます。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 15UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=15

  • 2. 2 行目で create_clock 制約を 10 ns から 7.35 ns に変更します。新しい制約は次のとおりです。create_clock -period 7.35 -name sysClk [get_ports sysClk]

    3. テキスト エディターのサイドバーの [Save File] ボタン をクリックして変更を保存します。注記: 制約ファイルを保存すると、[Design Runs] ウィンドウでその制約ファイルを使用するすべての run のステータスが [Complete] から [Out-of-date] に変わります。

    4. [Design Runs] ウィンドウですべての run を選択し、[Reset Runs] ボタン をクリックします。5. [Reset Runs] ダイアログ ボックスで [Reset] をクリックします。

    Vivado Design Suite で選択した run に関連付けられているすべてのファイルがプロジェクト ディレクトリから削除されます。すべての run のステータスが [Out-of-date] から [Not started] に変わります。

    6. [Design Runs] ウィンドウですべての run を選択した状態で、[Launch Runs] ボタン をクリックします。[Launch Selected Runs] ウィンドウが開きます。

    ヒント: run をリセットせずに実行することもできます。run が最新でない場合は、[Reset Runs] ダイアログ ボックスが表示されます。このダイアログ ボックスで、run を実行する前にリセットできます。

    7. [Launch runs on local host] をオンにし、[Number of jobs] を 2 に設定して、[OK] をクリックします。アクティブ run (impl_3) が完了すると、[Implementation Completed] ダイアログ ボックスが表示されます。

    8. [Cancel] をクリックしてダイアログ ボックスを閉じます。9. [Design Runs] ウィンドウで、[Elapsed] 列に示される実行にかかった時間を比較します。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 16UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=16

  • • Performance_Explore ストラテジを使用する impl_2 run がタイミングを満たすのに最も近いですが、実行時間も最も長くなっています。

    注記: Performance_Explore ストラテジは、タイミング制約を満たすのが困難なデザインにのみ使用してください。タイミングを簡単に満たせる場合に Performance_Explore ストラテジを使用すると、時間がかかるだけでタイミングの面で利点はありません。

    まとめこの演習では、複数のインプリメンテーション run を定義し、タイミングを解決するため異なるストラテジを適用する方法を学びました。一部のストラテジはパフォーマンスが向上する代わりに実行時間が長くなることを理解し、それらのストラテジをより困難なデザインに使用する方法を学びました。これで演習 1 は終了です。この後すぐに演習 2 を実行する場合は、Vivado IDE を開いたままにし、現在のプロジェクトを閉じてください。実行しない場合は、Vivado Design Suite を閉じます。

    演習 1: インプリメンテーション ストラテジの使用

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 17UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=17

  • 演習 2

    インクリメンタル インプリメンテーションの理解

    インクリメンタル インプリメンテーションは、Vivado® で一貫した結果が得られるようにし、実行時間を短縮するために使用可能なフローです。比較的安定した少しの変更のみが必要なデザインに使用します。少しの変更を加えてデザインを再実行した後、インクリメンタル コンパイル フローを使用すると、前の実行結果を再利用することにより、配置配線を高速に実行できます。これにより、タイミング クロージャを保持しながら、デザインへのインクリメンタルな変更をすばやくインプリメントできます。この演習では、Vivado® Design Suite に含まれている BFT サンプル デザインを使用し、インクリメンタル コンパイル フローの使用方法を学びます。インクリメンタル コンパイルの詳細は、『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) を参照してください。

    手順 1: サンプル プロジェクトを開く1. 次のいずれかの方法で Vivado IDE を起動します。

    • Windows デスクトップの Vivado IDE のアイコンをダブルクリックします。• コマンド ターミナルに「vivado」と入力します。

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

    3. Create an Example Project ウィザードの [Create an Example Project] ページで [Next] をクリックします。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 18UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.com/cgi-bin/docs/rdoc?v=2019.2;d=ug904-vivado-implementation.pdfhttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=18

  • 4. [Select Project Template] ページで [BFT] (小型の RTL プロジェクト) をオンにし、[Next] をクリックします。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 19UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=19

  • 5. [Project Name] ページで次のように指定し、[Next] をクリックします。• [Project name]: project_bft_core_hdl

    • [Project location]:

    6. [Default Part] ページで [xc7k70tfbg484-2] を選択し、[Next] をクリックします。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 20UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=20

  • 7. [New Project Summary] ページでプロジェクトの詳細を確認し、[Finish] をクリックします。

    Vivado IDE がデフォルト表示で開きます。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 21UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=21

  • 手順 2: [Design Runs] ウィンドウでの [Incremental]列の表示

    [Design Runs] ウィンドウで列見出しを右クリックし、[Incremental] 列がイネーブルになっていない場合はクリックしてイネーブルにします。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 22UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=22

  • 図 1: [Incremental] 列のイネーブル

    図 2: [Design Runs] ウィンドウ

    この列には、インクリメンタル フローがどのように使用されたかが表示されます。この情報は、Vivado ログ ファイルのメッセージにも示されます。

    手順 3: インクリメンタル インプリメンテーションをオンにする

    1. [impl_1] run を右クリックして [Set Incremental Implementation] をクリックします。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 23UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=23

  • 2. [Incremental Implementation] ダイアログ ボックスで [Automatically use the checkpoint from the previous run] をオンにします。

    このダイアログ ボックスは、Vivado IDE のさまざまな場所から開くことができます。[Implementation RunProperties] ウィンドウ、[Project Summary] などがその例です。同じ機能を、Tcl コマンドを使用してスクリプトに組み込むこともできます。

    3. Tcl を使用してチェックポイントの自動選択を有効にするには、次のコマンドを使用します。set_property AUTO_INCREMENTAL_CHECKPOINT 1 [get_runs impl_1]

    これにより、[Design Runs] ウィンドウの [Incremental] 列に [Auto(skipped)] と表示されるようになります。この設定は、自動モードがイネーブルになっており、インクリメンタル インプリメンテーションがまだ実行されていないことを示します。

    チェックポイントをアップデートするのが望ましくない場合や、再利用のしきい値が低くなってもかまわない場合は、ユーザーがチェックポイントを選択できます。その場合は、ユーザーがチェックポイントが適切なものであることを管理する必要があります。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 24UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=24

  • 手順 4: リファレンス デザインのコンパイル1. Flow Navigator で [Run Implementation] をクリックします。2. 表示される [Missing Synthesis Results] ダイアログ ボックスで [OK] をクリックし、まず合成を実行します。合成が実行されて完了すると、インプリメンテーションが自動的に開始します。注記: このダイアログ ボックスは、合成を実行せずにインプリメンテーションを実行しようとすると表示されます。

    3. インプリメンテーションが完了すると、[Implementation Completed] ダイアログ ボックスが開きます。[Cancel]をクリックしてダイアログ ボックスを閉じます。

    プロジェクト ベースのデザインでは、Vivado Design Suite により、中間インプリメンテーション結果がデザイン チェックポイントとしてインプリメンテーション run ディレクトリに保存されます。最終的なチェックポイントをインクリメンタル コンパイル フローの基準として使用します。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 25UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=25

  • 手順 5: インクリメンタルな変更を加えるこの手順では、RTL デザイン ソースに少しの変更を加えます。これらの変更により、ネットリストの再合成とデザインの再インプリメントが必要となります。1. [Sources] ウィンドウの [Hierarchy] タブで、最上位 VHDL ファイル bft.vhdl をダブルクリックし、Vivado IDEテキスト エディターでファイルを開きます。

    2. bft.vhdl ファイルの 45 行目で、次のように error ポートを出力からバッファーに変更します。error : buffer std_logic

    3. bft.vhdl ファイルの 331 行目で、VHDL コードを次のように変更します。変更前 変更後

    -- enable the read fifoprocess (fifoSelect)begin readEgressFifo

  • 4. テキスト エディターの [Save File] ツールバー ボタン をクリックして変更を保存します。デザイン ソース ファイルを変更すると、次の図に示すように、[Design Runs] ウィンドウで run のステータスが[Complete] から [Out-of-date] に変わります。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 27UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=27

  • 手順 6: 合成およびインプリメンテーションの再実行RTL ソースに変更を加えたので、合成およびインプリメンテーションを再実行する必要があります。インクリメンタル インプリメンテーションが設定されているので、デフォルト フローと同様、単にツール フローを再実行するだけです。1. Flow Navigator で [Run Implementation] をクリックします。すべての run がリセットされ、再実行されます。

    [Sources] ウィンドウで、チェックポイントが条件を満たしている場合は [Utility Sources] が以前に配線済みのimpl_1 のチェックポイントでアップデートされ、今後の run の基準チェックポイントとして使用されるようになります。

    [Design Runs] ウィンドウの [Incremental] 列もアップデートされ、[Auto] と示されます。チェックポイントが適切な基準としての条件を満たしていない場合は、前と同じように [Auto(Skipped)] と示されます。インプリメンテーションが完了すると、[Design Runs] ウィンドウに完了した run が表示されます。

    [Design Runs] ウィンドウで、実行時間とタイミングを確認できます。この場合は次のようになります。• [Elapsed] 列の実行時間が 2:13 から 1:31 に短縮されています。• WNS は 1.452 のままです。注記: 合成は異なるモードでは実行されていないので、前と同様になります。[Elapsed] (経過時間) 列には、place_design (phys_opt_design は実行されていない) と route_design、およびインクリメンタル フローに必要な read_checkpoint -incremental や追加のレポートなどの追加コマンドの向上が含まれます。このフローをより大きなデザインに対して良い基準チェックポイントで使用すると、実行時間が大幅に短縮されます。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 28UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=28

  • 注記: opt_design はインクリメンタルで実行されていないので、opt_design の実行時間に影響はありません。基準 run で最もエフォートが必要な複雑なフローを含むデザインで、最も利点があります。基準デザインでタイミング クロージャが達成されており、アップデートされたデザインとの最下位セルの違いが 5% 未満であるのが理想的です。

    2. [Reports] ウィンドウで、[Route Design] セクションの [Incremental Reuse Report] をダブルクリックします。

    これまでのところ、readEgressFifo の生成を変更し、エラー信号が 0 でない場合に信号が 0 になるようにしました。これは小さな変更なので、再利用率は高くなります。これをインクリメンタル再利用レポートで確認します。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 29UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=29

  • このレポートで、セル、ネット、およびポートが高い割合で再利用されています。[Reference Checkpoint Information] セクションでは、基準チェックポイントに関する情報を確認できます。これは、チェックポイントのソースが不明な場合に有益です。

    [Comparison with Reference Run] セクションでは、フローの各段階の実行時間と WNS が比較されています。これは、問題があった場合に、どこで WNS および実行時間が変化したかを理解するのに有益です。デザインは100% 同じではないので、この情報は参考のみであることに注意してください。[Reference Checkpoint Information] セクションの WNS は、place_design および route_design が Default指示子を使用して実行されているので、インクリメンタル run のターゲット WNS となります。Explore 指示子を使用した場合は、ターゲット WNS は 0.00 ns です。これは、ログ ファイルで place_design を検索して確認できます。place_design の直後に、次のようにレポートされています。

    まとめこれで演習 2 は終了です。現在のプロジェクトを閉じ、Vivado IDE を終了します。この演習では、インプリメント済みのデザインのチェックポイントを使用して、インクリメンタル コンパイル デバッグ フローのインクリメンタル インプリメンテーション部分を実行する方法を学びました。また、インクリメンタル再利用レポートを開き、基準デザインのチェックポイントと現在のデザインの類似点を確認しました。

    演習 2: インクリメンタル インプリメンテーションの理解

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 30UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=30

  • 演習 3

    手動および指定配線この演習では、Vivado® IDE を使用してネットに配線を割り当て、デザインのクリティカル部分のタイミングを厳密に制御する方法を学びます。• Vivado® Design Suite に含まれる BFT HDL サンプル デザインを使用します。• 手動配線機能を学ぶため、デザインの出力バス wbOutputData 内のスキューを厳密に制御します。

    手順 1: サンプル プロジェクトを開く1. 次のいずれかの方法で Vivado IDE を起動します。

    • Windows デスクトップの Vivado IDE のアイコンをダブルクリックします。• コマンド ターミナルに「vivado」と入力します。

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

    3. Create an Example Project ウィザードの [Create an Example Project] ページで [Next] をクリックします。

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 31UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=31

  • 4. [Select Project Template] ページで [BFT] (小型の RTL プロジェクト) をオンにし、[Next] をクリックします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 32UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=32

  • 5. [Project Name] ページで次のように指定し、[Next] をクリックします。• [Project name]: project_bft_core

    • [Project location]:

    6. [Default Part] ページで [Default Part] に [xc7k70tfbg484-2] を選択し、[Next] をクリックします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 33UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=33

  • 7. [New Project Summary] ページでプロジェクトの詳細を確認し、[Finish] をクリックします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 34UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=34

  • Vivado IDE がデフォルト表示で開きます。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 35UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=35

  • 手順 2: デザインの配置配線1. Flow Navigator で [Run Implementation] をクリックします。

    [Missing Synthesis Results] ダイアログ ボックスが開き、インプリメントする合成済みネットリストがないので、合成を実行するかどうかを尋ねるメッセージが表示されます。

    2. [OK] をクリックして合成を実行します。合成が実行されて完了するとインプリメンテーションが自動的に開始し、次の図に示す [ImplementationCompleted] ダイアログ ボックスが表示されます。

    3. [Implementation Completed] ダイアログ ボックスで [Open Implemented Design] をオンにし、[OK] をクリックします。[Device] ウィンドウが開き、配置結果が表示されます。

    4. [Device] ウィンドウの [Routing Resources] ツールバー ボタン をクリックし、配線リソースの詳細を表示します。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 36UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=36

  • 手順 3: 出力バスのタイミングの解析重要: チュートリアル デザインには、外部ロジックを駆動する出力データ バス wbOutputData が含まれています。ここでは、このバスのネットを手動で配線し、タイミング スキューを厳密に制御します。

    [Report Datasheet] コマンドを使用すると、出力バス wbOutputData の各ビットの現在のタイミングを解析できます。[Report Datasheet] コマンドは、ポートのグループのタイミングを特定の基準ポートに対して解析するのに使用できます。1. メイン メニューから [Reports] → [Timing] → [Report Datasheet] をクリックします。2. [Report Datasheet] ダイアログ ボックスで [Groups] タブを選択し、次のように入力します。

    • [Reference]: [get_ports {wbOutputData[0]}]

    • [Ports]: [get_ports {wbOutputData[*]}]

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 37UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=37

  • 3. [OK] をクリックします。この場合、wbOutputData バスの信号を転送するポートでのタイミングを、バスの最初のビットwbOutputData[0] と比較します。これにより、バスのビット間の相対的なタイミングの差をすばやく知ることができます。

    4. [Maximize] ボタン をクリックして [Timing] ウィンドウの [Datasheet] タブを最大表示にします。5. 次の図に示すように、Max/Min Delays for [Groups] → [Clocked by wbClk] → [wbOutputData[0]] セクションを選択します。このレポートから、wbOutputData バスの各ビットのタイミング スキューに約 660 ps のばらつきがあることがわかります。ここでの目標は、バス ビット間のスキューのばらつきを 100 ps 未満にすることです。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 38UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=38

  • 6. [Restore] ボタン をクリックし、[Device] ウィンドウと [Timing] ウィンドウの [Datasheet] タブの両方を表示します。

    7. ソース wbOutputData[28] の [Max Delay] のハイパーリンクをクリックします。[Device] ウィンドウでパスがハイライトされます。注記: [Device] ウィンドウで [Autfit Selection] がイネーブルになっていることを確認し、パス全体が表示されるようにします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 39UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=39

  • 8. [Device] ウィンドウでハイライトされているパスを右クリックし、[Schematic] をクリックします。選択した出力データ バスの回路図が表示されます。この回路図から、出力ポートが出力バッファー (OBUF) を介するレジスタで直接駆動されているのがわかります。バスの出力ピンに対するレジスタの配置が一貫したものになるようにし、レジスタと出力の間の配線を制御できれば、出力バスの各ビット間のスキューのばらつきを最小限に抑えることができます。

    9. [Device] ウィンドウに移動します。レジスタと出力の配置を見やすくするには、mark_objects コマンドを使用して [Device] ウィンドウでこれらをマークします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 40UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=40

  • 10. [Tcl Console] ウィンドウに次のコマンドを入力します。mark_objects -color blue [get_ports wbOutputData[*]]

    mark_objects -color red [get_cells wbOutputData_reg[*]]

    出力ポートに青のひし形マーカー、出力を駆動するレジスタに赤のひし形マーカーが表示されます。

    青のひし形でマークされている出力は、wbOutputData[0] (一番下) から wbOutputData[31] (一番上) まで、左側の 2 つのバンクに渡って配置されており、赤のひし形でマークされている出力レジスタは右側の 1 箇所にまとまっています。レジスタから出力までの配線をすべて表示するため、highlight_objects Tcl コマンドを使用してネットをハイライトします。

    11. Tcl プロンプトに次のコマンドを入力します。highlight_objects -color yellow [get_nets -of [get_pins -of [get_cells \wbOutputData_reg[*]] -filter DIRECTION==OUT]]

    wbOutputData_reg[*] レジスタの出力ピンに接続されているネットがハイライトされます。[Device] ウィンドウを見ると、ひとかたまりになっている出力レジスタと分散されているバスの出力パッドとの距離にばらつきがあることがわかります。出力レジスタを各出力ポートの右側にあるスライスに一貫して配置するようにすれば、wbOutputData バスの clock-to-out 遅延の大部分のばらつきをなくすことができます。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 41UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=41

  • 12. メイン ツールバーの [Unhighlight All] ボタン および [Unmark All] ボタン をクリックします。

    手順 4: 配置によりバスのタイミングを向上wbOutputData バスのタイミングを向上するため、出力レジスタを対応する出力パッドの近くに配置し、タイミングを再実行して効果を確認します。出力レジスタを配置するには、配置可能なサイトを特定し、Tcl コマンドまたはTcl スクリプトを使用して、セルの配置および接続の再配線を実行します。推奨: Tcl コマンドを使用して、出力レジスタを wbOutPutData バスの出力パッドに隣接するスライスに配置します。

    1. [Device] ウィンドウのツールバーで、[Routing Resources] をクリックしてオフにし、[Autofit Selection] がオンになっていることを確認します。これにより、[Device] ウィンドウで配線の詳細が表示されなくなり、オブジェクトを配置しやすくなります。

    2. 次の Tcl コマンドを使用して、I/O ブロックに配置されている wbOutputData ポートを選択します。select_objects [get_ports wbOutputData*]

    [Device] ウィンドウで選択したポートが白でハイライトされ、拡大表示されます。選択したポートの周辺のデバイス リソースを確認することにより、出力レジスタを配置可能なサイトを特定できます。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 42UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=42

  • 3. [Device] ウィンドウで選択されている出力ポートの最下部周辺を拡大表示します。次の図のようになります。

    下部のポートは出力バスの下位ビット (wbOutputData[0] から開始) です。このポートはパッケージ ピン Y21 に配置されています。その右側で出力レジスタを配置するのに必要なデバイス リソースを含むスライスの座標は X0Y36 です。この位置を 32 個の出力レジスタwbOutputData_reg[31:0] を配置する開始点として使用します。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 43UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=43

  • [Device] ウィンドウをスクロールしたり移動したりして、最上位の出力データ ポート wbOutputData[31] がパッケージ ピン K22 に、その右側のレジスタがスライス X0Y67 に配置されていることを確認します。出力レジスタに必要な配置リソースを特定したので、これらのリソースがセルを配置するのに使用可能であることを確認する必要があります。これには、スライスの配置を解除して、現在配置されているロジックをクリアします。

    4. 次の Tcl コマンドを使用して、出力レジスタに必要なスライス SLICE_X0Y36 ~ SLICE_X0Y67 に現在配置されているセルの配置を解除します。for {set i 0} {$i

  • ヒント: これらのコマンドは前にも入力したので、ジャーナル ファイル (vivado.jou) からコピーできます。12. [Device] ウィンドウで、マークした出力ポートのいくつかを拡大表示します。13. それらを接続するネットを選択します。ヒント: ネットは [Netlist] ウィンドウで選択することもできます。[Netlist] ウィンドウで選択すると、[Device] ウィンドウでも選択されます。

    [Device] ウィンドウで、すべての出力レジスタが対応する出力から同じ距離に配置され、出力レジスタから出力へのネットすべての配線パスが類似したものであることを確認できます。これにより、すべての出力で clock-to-out 時間がほぼ同じになります。

    14. [Reports] → [Timing] → [Report Datasheet] をクリックします。[Report Datasheet] ダイアログ ボックスの設定は、前回実行したときと同じです。• [Reference]: [get_ports {wbOutputData[0]}]

    • [Ports]: [get_ports {wbOutputData[*]}]

    15. [Timing] ウィンドウの [Datasheet] タブで、[Max/Min Delays for [Groups] → [Clocked by wbClk] → [wbOutputData[0]] セクションを選択します。結果を見ると、出力バスの下位ビット wbOutputData[0-13] 間と上位ビット wbOutputData[14-31] 間ではタイミング スキューがほぼ一致しています。全体的なスキューは削減されましたが、それでも上位ビットと下位ビットの間では 200 ps の差があります。配置を向上したので、スキューは 2 つのクロック領域 (X0Y0 および X0Y1) にまたがる出力ポートとレジスタによるもので、これによりクロック ネットワーク スキューが発生します。wbOutputData バスを見ると、最大遅延が上位ビットよりも下位ビットで大きいことがわかります。スキューを削減するため、上位ビットに遅延を追加します。出力レジスタへのクロック供給には、BUFG の代わりに BUFMR/BUFR の組み合わせを使用してスキューの一部を取り除くことができます。このチュートリアルでは、BUFG でクロックが供給される出力レジスタから上位ビット wbOutputData[14-31] の出力ピンに手動配線を使用して遅延を追加し、バス内の clock-to-out のばらつきをさらに削減します。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 45UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=45

  • 手順 5: 手動配線を使用したクロック スキューの削減スキューを調整するには、ネット wbOutputData_OBUF[14:31] の現在の配線を調べて、遅延を一貫して追加するために変更できる箇所を判断することから始めます。詳しく調べるため、Tcl で for ループを使用して、これらのネットの既存の配線をレポートします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 46UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=46

  • 1. Tcl コンソールに次のコマンドを入力します。for {set i 14} {$i

  • 4. [Confirm Unroute dialog box] ダイアログ ボックスで [Yes] をクリックします。[Device] ウィンドウに、配線が解除されたネットがレジスタと出力パッドの間のフライラインとして表示されます。

    5. [Maximize] ボタン をクリックして [Device] ウィンドウを最大表示にします。6. ネットを右クリックし、[Enter Assign Routing Mode] をクリックします。次の図に示す [Assign Routing Mode: Target Load Cell Pin] ダイアログ ボックスが開きます。ここで配線するロード ピンを選択できます。ここでは、リストされているロード ピンは wbOutputData_OBUF[14]_inst のみです。

    7. [load cell pin wbOutputData_OBUF[14]_inst/I] を選択し、[OK] をクリックします。Vivado IDE が配線割り当てモードになり、次の図に示すように [Device] ウィンドウの右側に [RoutingAssignment] ウィンドウが表示されます。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 48UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=48

  • • [Net]: 配線する現在のネットを表示します。• [Options]: デフォルトでは非表示になっており、[Options] をクリックすると表示できます。

    • [Number of hops]: 使用可能な近傍ノードをレポートする際に調べるプログラマブル インターコネクトポイント (PIP) の数を定義します。デフォルトは 1 です。

    • [Maximum number of neighbors]: 選択用に表示する近傍ノードの数を制限します。• [Allow overlap with unfixed nets]: 制限の緩い配線をイネーブルまたはディスエーブルにします。これにより競合が発生する可能性があるので、後で解決する必要があります。デフォルトではオンです。

    • [Neighbor Nodes]: 配線のパスを定義する際に使用可能な近傍の PIP/ノードをリストします。• [Assigned Nodes]: 選択したネットの配線パスに現在割り当てられているノードを表示します。• [Assign Routing]: [Routing Assignment] ウィンドウで現在定義されているパスを選択されているネットの配線パスとして割り当てます。

    • [Exit Mode]: [Routing Assignment] ウィンドウを閉じます。[Routing Assignment] ウィンドウには、次のセクションがあります。[Assigned Nodes] セクションには、現在割り当てられている 6 つのノードが表示されています。選択されているネットの近傍ノードが 1 つのみで、ほかに選択肢がない場合は、Vivado 配線で自動的に割り当てられます。[Device] ウィンドウでは、割り当て済みの配線は部分配線としてオレンジ色で表示されます。現在選択されているネット wbOutputData_OBUF[14] は、ノード CLBLL_LL_AQ およびCLBLL_LOGIC_OUTS4 が出力レジスタ wbOutputData_reg[14] に使用可能な唯一の近傍ノードなので、既に割り当てられています。ノード IMUX_L34、IOI_OLOGIC0_D1、LIOI_OLOGIC0_OQ、および LIOI_O0 も、デスティネーションである出力バッファー (OBUF) に使用可能な唯一の近傍ノードなので、既に割り当てられています。パスのこれらの配線済み部分の間にあるギャップは、配線を定義する際に使用可能な近傍ノードが複数ある部分です。このギャップに手動配線を使用してパスを完成させ、必要な遅延を追加してクロック スキューを調整します。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 49UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=49

  • ギャップを配線するには、ギャップのいずれかの端のノードを選択した後、配線を割り当てる近傍ノードを選択します。ノードを選択すると、[Routing Assignment] ウィンドウの [Neighbor Nodes] セクションに使用可能な近傍ノードが表示され、[Device] ウィンドウで白い破線として示されます。

    ヒント: 表示される近傍ノードの数は、[Options] セクションの [Number of hops] に指定した値によって異なります。8. [Assigned Nodes] セクションで、ギャップの前の [CLBLL_LOGIC_OUTS4] ノードを選択します。次の図に示すように使用可能な近傍ノードが表示されます。クロック スキューを補正するため遅延を追加するには、自動選択されたより直接的な配線よりも多少長くなるような近傍ノードを選択します。

    9. [Neighbor Nodes] セクションで、ノード [NE2BEG0] を選択します。このノードを使用すると、出力バッファーへのより直接的な配線を使用する WW2BEG0 などのほかのノードよりも、配線に多少の遅延が追加されます。近傍ノードをクリックして選択すると、その配線を確認できます。ノードをダブルクリックすると、そのノードが一時的にネットに割り当てられ、そのノードから次の近傍ノードを選択できます。

    10. [Neighbor Nodes] セクションで、ノード [NE2BEG0] をダブルクリックして割り当てます。このノードが [Routing Assignment] ウィンドウの [Assigned Nodes] セクションに追加され、[Neighbor Nodes] セクションがアップデートされます。

    11. [Neighbor Nodes] セクションで、ノード [WR1BEG1] を選択して割り当て、その後 [WR1BEG2] を選択して割り当てます。

    ヒント: ノードを間違って割り当てた場合は、[Assigned Nodes] リストでそのノードを右クリックし、[Remove] をクリックします。[Device] ウィンドウのズーム レベルが変更されないようにするには、[Auto Fit Selection] ツールバー ボタン をクリックします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 50UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=50

  • 次の図に、部分的に配線されたパスを示します。選択されたノードは、オレンジ色で表示されています。残りのギャップには、自動配線を使用できます。

    12. [Routing Assignment] ウィンドウの [Assigned Nodes] セクションで [Net Gap] を右クリックし、[Auto-Route] をクリックします。

    Vivado 配線により、残りのギャップが配線されます。配線パスが完全に定義されたら、配線を割り当ててデザインで変更を確定します。

    13. [Routing Assignment] ウィンドウの下部にある [Click Assign Routing] をクリックします。次の図に示す [Assign Routing] ダイアログ ボックスが開きます。このダイアログ ボックスは、配線パスを定義する現在割り当てられているノードのリストを表示します。このリストでノードを選択すると、[Device] ウィンドウでそのノードがハイライトされます。これにより、配線パスをデザインに確定する前に確認できます。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 51UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=51

  • 14. [Fix Routing] がオンになっていることを確認し、[OK] をクリックします。[Fix Routing] をオンにすると、定義された配線が固定され、この後の配線段階で Vivado 配線により変更されるのを防ぐことができます。ここではクロック スキューを調整するためにネットを手動で配線して遅延を追加したので、これは重要です。

    15. [Tcl Console] ウィンドウで Tcl コマンドを確認します。[Tcl Console] ウィンドウに、現在のネットの配線を割り当てる Tcl コマンドが表示されています。これらのコマンドは、次のとおりです。set_property is_bel_fixed 1 [get_cells {wbOutputData_reg[14] wbOutputData_OBUF[14]_inst }]set_property is_loc_fixed 1 [get_cells {wbOutputData_reg[14] wbOutputData_OBUF[14]_inst }]set_property fixed_route { { CLBLL_LL_AQ CLBLL_LOGIC_OUTS4 NE2BEG0 WR1BEG1 WR1BEG2 SW2BEG1 IMUX_L34 IOI_OLOGIC0_D1 LIOI_OLOGIC0_OQ LIOI_O0 } } [get_nets {wbOutputData_OBUF[14]}]

    重要: ネット wbOutputData_OBUF[14] に設定されている FIXED_ROUTE プロパティは、ネット ドライバーの配置を基準とした相対フォーマットを使用した指定配線文字列を使用します。これにより、FIXED_ROUTE プロパティを同じ相対配線を使用するほかのネットにコピーして、この配線を再利用できます。偶数インデックス ネットの手動配線を定義したら、同じ手順を使用して奇数インデックス ネットwbOutputData_OBUF[15] の配線パスを定義します。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 52UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=52

  • 16. [Tcl Console] ウィンドウに次を入力してネットを選択します。select_objects [get_nets wbOutputData_OBUF[15]]

    17. ネットを選択したら、次を実行します。a. ネットの配線を解除します。b. 配線割り当てモードに入ります。c. ロード セル ピンを選択します。d. 指定の近傍ノード (NE2BEG0、WR1BEG1、および WR1BEG2) を使用してネットを配線します。e. ギャップを自動配線します。f. 配線を割り当てます。[Assign Routing] ダイアログ ボックスに、奇数インデックス ネットの配線パスを完成させるのに選択されたノードがリストされます。

    wbOutputData_OBUF[14] および wbOutputData_OBUF[15] ネットを、必要な遅延が追加されるよう少し長い経路を使用して配線しました。これで、[Report Datasheet] コマンドを再実行し、バスの下位ビットに対するこれらのネットのタイミングを調べることができます。

    18. [Timing] ウィンドウの [Datasheet] タブに移動します。ウィンドウのバナーに、デザインが変更されたためレポート最新でないことを示す情報メッセージが表示されています。

    19. タイミング データシート レポートで [Rerun] をクリックし、レポートを最新のタイミング情報でアップデートします。

    20. [Max/Min Delays for Groups] → [Clocked by wbClk] → [wbOutputData[0]] をクリックし、wbOutputData バスのタイミング情報を表示します。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 53UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=53

  • このレポートから、配線し直したネット wbOutputData[14] および wbOutputData[15] のスキューが、出力バスの下位ビット wbOutputData[13:0] にほぼ一致するようになったことがわかります。スキューはターゲットである基準ピン wbOutputData[0] の 100 ps 以内です。手順 6 では、同じ配線パスを残りのネット wbOutputData_OBUF[31:16] にもコピーし、wbOutputData バス全体のタイミングをより厳密なものにします。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 54UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=54

  • 手順 6: 配線のほかのネットへのコピーネット wbOutputData_OBUF[14] に使用されているのと同じ配線をほかの偶数インデックス ネットに、ネットwbOutputData_OBUF[15] の固定配線をほかの奇数インデックス ネットに適用するには、次の手順に説明する Tclの for ループを使用できます。1. [Tcl Console] タブをクリックします。2. 奇数インデックス ネットおよび偶数インデックス ネットの配線パスを格納する Tcl 変数を設定します。

    set even [get_property FIXED_ROUTE [get_nets wbOutputData_OBUF[14]]]set odd [get_property FIXED_ROUTE [get_nets wbOutputData_OBUF[15]]]

    3. 出力データ バスの上位ビット ネット wbOutputData_OBUF[16:31] を含む、配線するネットのリストを格納する Tcl 変数を設定します。for {set i 16} {$i

  • • 出力レジスタの LOC および BEL を修正する必要はありません。これは、前の手順で place_cell コマンドで実行しました。

    上位ビット ネット wbOutputData_OBUF[31:14] を少し長くして遅延を追加したので、出力バスのタイミングを再度検証します。

    11. [Timing] ウィンドウをクリックします。ウィンドウのバナーに、タイミング データが変更されたためレポートが最新でないことを示す情報メッセージが表示されています。

    12. [rerun] をクリックし、レポートを最新のタイミング情報でアップデートします。13. [Max/Min Delays for Groups] → [Clocked by wbClk] → [wbOutputData[0]] セクションをクリックし、

    wbOutputData バスのタイミング情報を表示します。出力バス wbOutputData のすべてのビット間で clock-to-out タイミングのばらつきが 83 ps 以内になりました。

    14. 制約をターゲット XDC に保存し、デザインをコンパイルするたびに適用されるようにします。15. [File] → [Constraints] → [Save] をクリックして、配置制約をアクティブ制約セット constrs_1 のターゲット制約ファイル bft_full.xdc に保存します。制約がアップデートされたので、合成とインプリメンテーションが最新でなくなります。新しい制約は既に適用されているので、ツールバーの [Details] をクリックしてデザインを強制的にアップデートにできます。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 56UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=56

  • まとめこの演習では、次を実行しました。• [Report Datasheet] コマンドを使用して出力データ バスのクロック スキューを解析。• 手動配置を使用して選択したネットのタイミングを向上。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 57UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=57

  • • Vivado IDE で配線割り当てモードを使用して、ネットの配線を厳密に制御。• FIXED_ROUTE プロパティを使用して似ているネット間で相対固定配線をコピーし、ネットのクリティカルな部分の配線を制御。

    演習 3: 手動および指定配線

    UG986 (v2019.1) 2019 年 6 月 24 日 japan.xilinx.comインプリメンテーション 58UG986 (v2019.2) 2019 年 12 月 20 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback/document-feedback.html?docType=Tutorials&docId=UG986&Title=Vivado%20Design%20Suite%20%26%2312481%3B%26%2312517%3B%26%2312540%3B%26%2312488%3B%26%2312522%3B%26%2312450%3B%26%2312523%3B&releaseVersion=2019.2&docPage=58

  • 演習 4

    Vivado ECO フローこの演習では、Vivado® エンジニアリング チェンジ オーダー (ECO) フローを使用してインプリメンテーション後のデザインを変更し、変更をインプリメントして変更されたネットリストのレポートを出力し、プログラム ファイルを生成します。この演習ではこのガイドに付属のデザイン ファイルを使用し、Kintex® UltraScale™ KCU105 評価プラットフォームをターゲットとします。デザイン ファイルの場所は、「演習 4 のデザイン ファイルの場所」を参照してください。次の図に、デザインのブロック図を示します。

    図 3: デザインのブロック図

    このデザインでは、MMCM (Mixed Mode Clocking Manager) を使用して、ボードで供給される 300 MHz クロックから 100 MHz クロックを合成します。このクロックを、29 ビット カウンターを使用してさらに分周します。カウンターの上位 4 ビットは count 信号を形成し、これを 8 ビット