92
Vivado Design Suite ユーザー ガイド インプリメンテーション UG904 (v2013.1) 2013 3 20

Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

Vivado Design Suite ユーザー ガイド

インプリ メンテーシ ョ ン

UG904 (v2013.1) 2013 年 3 月 20 日

Page 2: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン japan.xilinx.com 2UG904 (v2013.1) 2013 年 3 月 20 日

Notice of DisclaimerThe information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:http://www.xilinx.com/warranty.htm#critapps.© Copyright 2012-2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.

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

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

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

日付 バージョ ン 改訂内容

2013 年 3 月 20 日 2013.1 • 「-no_timing_driven オプシ ョ ンの使用」 および 「-verbose オプシ ョ ンの使用」 に関する情報を追加

• 「インプ リ メンテーシ ョ ン ス ト ラテジ」 を大幅に拡張

• 「手動配線」 をアップデート

• 新しいセクシ ョ ン 「LUT ロードのセル入力の固定」 を追加

• 新しいセクシ ョ ン 「-directive オプシ ョ ンの使用」 を追加

• 「物理合成」 セクシ ョ ン タイ トルをコマンド名に合わせて 「物理 適化」 に変更

• 「物理 適化」 に新しい情報を追加

• 新しいセクシ ョ ン 「物理 適化制約」 を追加

• 「phys_opt_design」 のオプシ ョ ンに関する詳細情報を追加

• 「インプ リ メンテーシ ョ ン コマンド」 の情報を更新

• 付録 A 「 リ モート ホス トの使用」 を大幅にアップデートおよび変更

• Tcl コマンドの用語に合わせて 「インスタンス」 を 「セル」 に、 「属性」 を 「プロパティ」に変更 (HDL キーワードを除く )

• 第 2 章 「RPM の定義」 を削除 (XDC マクロに関する新しいセクシ ョ ンも含む)。 この章は、『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903)に移動されます。

• 全体的にマイナーな表現およびフォーマッ トの編集

• さまざまな図をアップデート

• コード例を修正

Page 3: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

目次

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

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセスVivado インプ リ メンテーシ ョ ン プロセスについて. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

インプリ メンテーシ ョ ンの前に . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

IP の設定、 インプ リ メン ト、 および検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

インプリ メンテーシ ョ ンでのデザイン制約の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

デザイン チェッ クポイン トでデザインのスナップシ ョ ッ ト を保存および復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

インプリ メンテーシ ョ ン ス ト ラテジのカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

インプリ メンテーシ ョ ン run の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

プロセスのバッ クグラウンドへの移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

インプリ メンテーシ ョ ンの段階ごとの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

インプリ メンテーシ ョ ン run の監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

インク リ メンタル コンパイルを使用した配置配線の実行時間の短縮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

インプリ メンテーシ ョ ン完了後の次の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

メ ッセージの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

インプリ メンテーシ ョ ン レポートの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

第 2 章 : インプリ メンテーシ ョ ン コマンドインプリ メンテーシ ョ ン コマンドについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

インプリ メンテーシ ョ ンのサブプロセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

合成済みデザインを開く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

ロジッ ク 適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

消費電力の 適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

物理 適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

配線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

第 3 章 : 配線およびロジックの変更配線およびロジッ クの変更について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

配線の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

ロジッ クの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

付録 A : リモート ホス トの使用リモート Linux ホス トでの run の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

SSH の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

付録 B : ISE コマンド と Vivado コマンドの対照表Tcl コマンド とオプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

インプリ メンテーシ ョ ン japan.xilinx.com 3UG904 (v2013.1) 2013 年 3 月 20 日

Page 4: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

付録 C : その他のリソースザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

インプリ メンテーシ ョ ン japan.xilinx.com 4UG904 (v2013.1) 2013 年 3 月 20 日

Page 5: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

第 1 章

Vivado インプリ メンテーシ ョ ン プロセス

Vivado インプリ メンテーシ ョ ン プロセスについてザイ リ ンクス Vivado® Design Suite では、 次のよ うなさまざまなデザイン ソースからザイ リ ンクス 7 シ リーズ FPGAデザインをインプリ メンテーシ ョ ンできます。

• RTL デザイン

• ネッ ト リ ス ト デザイン

• IP 中心のデザイン

詳細は、 図 1-1 を参照してください。

Vivado インプ リ メンテーシ ョ ンは、デザインの論理制約、物理制約、 タイ ミ ング制約を満たしながらネッ ト リ ス ト をFPGA デバイス リ ソースに配置配線するためのすべての手順を含みます。

Vivado ツールでサポート されるデザイン フローの詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892) [参照 1] を参照して ください。

Vivado インプリ メンテーションでの SDC および XDC 制約のサポート

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

インプリ メンテーシ ョ ン japan.xilinx.com 5UG904 (v2013.1) 2013 年 3 月 20 日

Page 6: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

Vivado インプリ メンテーシ ョ ン プロセスについて

Vivado インプリ メンテーシ ョ ンのサブプロセス

Vivado インプ リ メンテーシ ョ ン プロセスには、デザインの論理変換および物理変換が含まれます。インプ リ メンテーシ ョ ン プロセスには、 次のサブプロセスがあ り ます。

• opt_design (デザインの 適化)

ターゲッ トのザイ リ ンクス デバイスにフ ィ ッ ト しやすいよ うに論理デザインを 適化します。

• power_opt_design (デザインの消費電力 適化)

ターゲッ トのザイ リ ンクス デバイスの消費電力を削減するよ うデザイン エレ メン ト を 適化します。

注記 : この手順はオプシ ョ ンです。

• place_design (デザインの配置)

デザインをターゲッ ト ザイ リ ンクス デバイスに配置します。

• phys_opt_design (デザインの物理 適化)

ファンアウ トの大きいネッ トのド ラ イバーを複製してロードを分散するこ とによ り、デザインのタイ ミ ングを適化します。

注記 : この手順はオプシ ョ ンです。

• route_design (デザインの配線)

デザインをターゲッ ト ザイ リ ンクス デバイスに配線します。

• write_bitstream (ビッ ト ス ト リームの生成)

ザイ リ ンクス デバイス コンフ ィギュレーシ ョ ンのビッ ト ス ト リームを生成します。

X-Ref Target - Figure 1-1

図 1-1 : Vivado Design Suite のデザイン フロー

インプリ メンテーシ ョ ン japan.xilinx.com 6UG904 (v2013.1) 2013 年 3 月 20 日

Page 7: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

Vivado インプリ メンテーシ ョ ン プロセスについて

Flow Navigator からデザインを統合、 インプリ メン ト、 検証

Vivado 統合設計環境 (IDE) を使用する と、 完全なデザイン フローを実行できます。 Vivado IDE には、 Flow Navigatorとい う フローを制御するインターフェイスがあ り ます。

Flow Navigator から、デザインおよび IP を統合、 インプ リ メン ト、および検証できます。デザイン フローを簡略化するため、 インプリ メンテーシ ョ ン プロセス全体をコマンドをク リ ッ クするだけで実行できます。

詳細は、 図 1-2 を参照してください。

重要 : このガイ ドでは、 インプリ メンテーシ ョ ン以外の Vivado IDE の詳細は説明しません。FPGA デザイン フロー全体に関連する Vivado IDE の詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照して ください。

Tcl API によるスクリプ トのサポート

Vivado Design Suite には、 Tcl API が含まれています。 Tcl API を使用する と、 すべてのデザイン フローをスク リプ トで実行でき、 デザイン フローを要件に合わせてカスタマイズできます。

注記 : Tcl コマンドの詳細は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 12] を参照するか、「<command> -help」 と入力してください。

X-Ref Target - Figure 1-2

図 1-2 : Flow Navigator : [Implemention] セクシ ョ ン

インプリ メンテーシ ョ ン japan.xilinx.com 7UG904 (v2013.1) 2013 年 3 月 20 日

Page 8: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ンの前に

インプリ メンテーシ ョ ンの前にVivado Design Suite ではさまざまなデザイン フローが提供されており、多種のデザイン ソースがサポート されています。 FPGA デバイスにダウンロード可能なビッ ト ス ト リームを生成するには、 インプ リ メンテーシ ョ ンを実行する必要があ り ます。

インプ リ メンテーシ ョ ンは、 論理ネッ ト リ ス ト をターゲッ ト ザイ リ ンクス デバイスの物理的なアレイにマップするための一連の手順を指します。 次の手順が含まれます。

• ロジッ ク 適化

• ラ イブラ リ セルの配置

• セル間の接続の配線

プロジェク ト モード と非プロジェク ト モード

プロジェク ト ファ イル (.xpr) とそのディ レク ト リ構造を作成する と、 次が可能になり ます。

• デザイン ソース ファ イルの管理

• 合成 run およびインプリ メンテーシ ョ ン run の結果の保存

• デザイン フローを通してプロジェク ト ステータスを監視

ヒン ト : プロジェク ト ファ イルおよびローカル ディ レク ト リ を作成せずに、 すべてメモ リ内で作業するこ と も可能です。

プロジェク ト モード

プロジェク ト モードでは、 ディ スク上にディ レク ト リ構造が作成され、 次が管理されます。

• デザイン ソース

• run 結果

• プロジェク ト ステータス

デザイン データ、プロセス、およびステータスを自動管理するには、 Vivado プロジェク ト ファ イル (.xpr) に保存されるプロジェク ト インフラス ト ラ クチャが必要です。

また、デザイン フローの主要な段階のチェッ クポイン ト ファ イルが、自動的にローカル プロジェク ト ディ レク ト リに保存されます。

インプリ メンテーシ ョ ン japan.xilinx.com 8UG904 (v2013.1) 2013 年 3 月 20 日

Page 9: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ンの前に

非プロジェク ト モード

プロジェク ト ファ イルを使用しないコンパイル形式のフローは、 非プロジェク ト モード と呼ばれます。 非プロジェク ト モードでは、 デザインを メモ リ内ですべて操作できます。 ソース ファ イルおよびデザイン制約は、 現在の場所から メモリに読み込みます。 メモ リ内のデザインでデザイン フローを実行する際、中間ファイルが記述されるこ とはあ り ません。

非プロジェク ト モードでは、Tcl コマンドを使用し、デザイン パラ メーターおよびインプ リ メンテーシ ョ ン オプシ ョンを設定して、 各手順を個別に実行する必要があ り ます。

変更を保存したり手順を再実行したりする必要なく、デザインに変更を加え、デザイン フローを続行できます。デザイン フローのどの段階でも、 レポート を生成したり、 デザイン チェッ クポイン ト (.dcp) を保存したりできます。

重要 : 非プロジェク ト モードでは、 Vivado デザイン ツールを終了する と、 メモ リ内のデザインは失われます。 そのため、 合成、 配置、 配線などの主な手順が終了したら、 デザイン チェッ クポイン ト を保存するこ とをお勧めします。

デザイン チェ ッ クポイン トは、 プロジェ ク ト モードおよび非プロジェク ト モード両方で保存できます。 デザインチェッ クポイン ト を読み込むこ とができるのは、 非プロジェク ト モードのみです。

プロジェク ト モード と非プロジェク ト モードの違い

Vivado インプ リ メンテーシ ョ ンは、 プロジェク ト モードおよび非プロジェク ト モード両方で実行できます。 VivadoIDE および Tcl API は、 プロジェク ト モードおよび非プロジェク ト モード両方で使用できます。

プロジェク ト モード と非プロジェク ト モードには、 違いも多数あ り ます。 次に、 非プロジェク ト モードでは使用できない機能を示します。

• Flow Navigator

• デザイン ステータス インジケーター

• IP カタログ

• インプリ メンテーシ ョ ン run および run ス ト ラテジ

• [Design Runs] ビュー

• [Messages] ビュー

• [Reports] ビュー

注記 : この リ ス トには、 非プロジェク ト モードでサポート されない機能がすべて含まれているわけではあ り ません。

非プロジェク ト ベースのデザインをインプ リ メン トするには、 次の Tcl コマンドを個別に実行する必要があ り ます。

• opt_design

• place_design

• route_design

インプ リ メンテーシ ョ ンの各段階は、 Vivado IDE または Tcl コンソールから対話的に実行するか、 カスタム Tcl スクリプ ト を使用して実行できます。 デザイン フローは、 必要に応じてレポート コマンドや 適化を追加してカスタマイズできます。 詳細は、 「非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行」 を参照してください。

このガイ ドでは、 プロジェク ト モードおよび非プロジェク ト モードでのインプ リ メンテーシ ョ ンの実行について詳細に説明します。

プロジェク ト モードまたは非プロジェク ト モードを使用した Vivado Design Suite の実行に関する詳細は、次の資料を参照して ください。

• 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892) [参照 1]

• 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2]

インプリ メンテーシ ョ ン japan.xilinx.com 9UG904 (v2013.1) 2013 年 3 月 20 日

Page 10: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ンの前に

RTL および合成済みデザイン

Vivado Design Suite を使用して、 RTL 開発、 IP のカスタマイズ、 合成、 インプ リ メンテーシ ョ ン、 デバイスのプログラムおよび検証まで、 FPGA デザイン フロー プロセスすべてを管理できます。

プロジェク トへのオブジェク トの追加

次のオブジェク ト をプロジェク トに追加できます。

• Verilog、 SystemVerilog、 VHDL ファ イルなどの HDL ソース ファ イル

• 定義およびコンフ ィギュレーシ ョ ン済みのザイ リ ンクス IP コア

• System Generator からの DSP (デジタル信号処理) モジュール

• Vivado 高位合成 (HLS) からの C ベースの DSP モジュール

• Xilinx Platform Studio (XPS) からのエンベデッ ド プロセッサ モジュール

合成済みネッ ト リス トのインポート

Vivado Design Suite では、 ネッ ト リ ス ト デザインがサポート されており、ザイ リ ンクス ツールまたはサードパーティツールで合成済みのネッ ト リ ス ト をインポートできます。サポート されるネッ ト リ ス ト フォーマッ トは、次のとおりです。

• Structural Verilog

• SystemVerilog

• EDIF

• ザイ リ ンクス NGC

Vivado Design Suite でサポート されるソース ファ イルおよびプロジェク ト タイプの詳細は、『Vivado Design Suite ユーザー ガイ ド : システム レベル デザイン入力』 (UG895) [参照 4] を参照して ください。

RTL ソースから開始

Vivado インプ リ メンテーシ ョ ンを実行するには、合成済みネッ ト リ ス トが必要です。デザインは合成済みネッ ト リ ストから、 または RTL ソース ファ イルから開始できます。

重要 : RTL ソースから開始する場合は、 インプ リ メンテーシ ョ ンの前に Vivado 合成または XST を実行する必要があり ます。 Vivado IDE では、 これが自動的に管理されます。 合成されていないデザインをインプ リ メン ト しよ う とすると、 まず合成を実行するかど うかを選択するオプシ ョ ンが表示されます。

Vivado 合成の詳細は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 6] を参照して ください。

非プロジェク ト モードで合成済みデザインを作成して開く

非プロジェク ト モードでは、 Tcl コマンド synth_design を使用して合成を実行し、 合成済みデザインを作成して開く必要があ り ます。 サポー ト されている入力フォーマッ ト の合成済みネッ ト リ ス ト を開く には、 Tcl コマン ドlink_design も使用できます。

詳細は、 第 2 章 「インプリ メンテーシ ョ ン コマンド」 の 「合成済みデザインを開く」 を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 10UG904 (v2013.1) 2013 年 3 月 20 日

Page 11: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

IP の設定、 インプリ メン ト、 および検証

プロジェ ク ト モードでインプリ メンテーシ ョ ン前にデザイン ネッ ト リス ト を読み込む

プロジェク ト モードでは、 RTL デザインの合成後、 またはネッ ト リ ス ト ベース プロジェク ト を開いて、 インプ リ メンテーシ ョ ン前のデザイン ネッ ト リ ス ト を読み込むこ とができます。

合成済みデザインを開くには、 次のいずれかを実行します。

• メ イン メニューから [Flow] → [Open Synthesized Design] をク リ ッ ク します。

• Flow Navigator で [Synthesis] → [Open Synthesized Design] をク リ ッ ク します。

• [Design Runs] ビューで合成 run を右ク リ ッ ク し、 [Open Synthesized Design] をクリ ッ ク します。

IP の設定、 インプリ メン ト、 および検証Vivado IP カタログを使用する と、 IP を設定、 インプ リ メ ン ト、 および検証できます。 IP は、 スタン ドアロンのモジュールと して、 またはシステム レベル デザインの一部と して設定および検証できます。

IP カタログの内容

IP カタログには、 ザイ リ ンク ス LogicCORE™ IP すべてと、 カタログに追加されたユーザー定義の IP およびサードパーティ IP が表示されます。

カタログには、 次の情報が含まれています。

• IP タイプ

• バージ ョ ン

• データシート

• ラ イセンス情報

RTL デザインへの IP コアの追加

RTL デザインに IP コアを追加するには、インスタンシエーシ ョ ン テンプレート をシステム レベル デザインに挿入します。

IP は、ネッ ト リ ス トではな く RTL ソース と して作成されます。合成およびインプ リ メンテーシ ョ ンを実行する と、デザインのほかの部分と共に IP が合成およびインプリ メン ト されます。

IP は、 スタンドアロン モジュールと して合成し、 そのネッ ト リ ス ト をネッ ト リ ス ト デザインに追加するこ と も可能です。

Vivado ツールでサポート される IP 中心のデザインの詳細は、 『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896) [参照 5] を参照して ください。

表 1-1 : サポート される IP ネッ ト リス ト フォーマッ ト

ザイリンクス Verilog EDIF

• .xco• .xci• .ngc

.v .edf

インプリ メンテーシ ョ ン japan.xilinx.com 11UG904 (v2013.1) 2013 年 3 月 20 日

Page 12: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ンでのデザイン制約の使用

インプリ メンテーシ ョ ンでのデザイン制約の使用インプリ メンテーシ ョ ンを実行する際は、 デザイン制約を設定しておく こ とをお勧めします。 デザイン制約には、 物理制約と タイ ミ ング制約の 2 種類があ り ます。

このセクシ ョ ンには、 次の内容が含まれます。

• 物理制約

• タイ ミ ング制約

• UCF タイ ミ ング制約はサポート されない

• 制約セッ トによ り複数の制約ファイルをデザインに適用

• 制約を attribute 文と して追加

物理制約 物理制約は、 次を定義します。

• ピン配置

• 次のよ うなセルの絶対または相対配置

° BRAM

° DSP

° LUT

° フ リ ップフロップ

• デバイス コンフ ィギュレーシ ョ ン設定

タイ ミ ング制約

タイ ミ ング制約は業界標準の SDC で記述され、 デザインの周波数要件を定義します。

タイ ミ ング制約を設定しない場合、デザインがワイヤの長さおよび配線の密集度にのみ基づいて 適化され、デザイン パフォーマンスが評価されたり向上したりするこ とはあ り ません。

UCF タイ ミング制約はサポート されない

重要 : Vivado Design Suite では、 UCF フォーマッ トはサポート されません。

UCF 制約を XDC コマンドに変換する方法については、 『Vivado Design Suite 移行手法ガイ ド』 (UG911) [参照 13] を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 12UG904 (v2013.1) 2013 年 3 月 20 日

Page 13: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ンでのデザイン制約の使用

制約セッ トにより複数の制約ファイルをデザインに適用

制約セッ トは、 デザインに適用する制約ファイルの リ ス トです。 制約セッ トには、 XDC ファ イルに記述されたデザイン制約が含まれます。

制約セッ トの構造

次の制約セッ トの構造がサポート されます。

• 複数の制約ファイルを含む制約セッ ト

• 個別の物理制約ファイルおよびタイ ミ ング制約ファイルを含む制約セッ ト

• マスター制約ファイル

• 新しい制約ファイルに制約の変更を保存

• 複数の制約セッ ト

ヒン ト : 制約を機能に応じて別の制約ファイルに分けておく と、 制約ス ト ラテジ全体がわかりやすくな り、 タイ ミ ングおよびインプリ メンテーシ ョ ンを変更しやすくな り ます。

複数の制約セッ ト

プロジェク トに複数の制約セッ ト を作成できます。複数の制約セッ ト を作成する と、異なるインプ リ メンテーシ ョ ンrun で異なる制約を試すこ とができます。

たとえば、 合成と インプ リ メンテーシ ョ ンに異なる制約セッ ト を指定できます。 合成、 シ ミ ュレーシ ョ ン、 インプ リメンテーシ ョ ンで異なる制約を適用して試すこ とができます。

デザイン制約を複数の制約セッ ト を使用して整理する と、 次のよ うな利点があ り ます。

• 同じプロジェク トで異なるザイ リ ンクス FPGA デバイスをターゲッ ト と して設定できます。 ターゲッ ト パーツが異なる と、 物理制約およびタイ ミ ング制約も異なるものにする必要がある場合があ り ます。

• さまざまな条件でデザインを実行できます。 制約セッ ト を使用して、 異なるフロアプランを適用したり、 デザインの制約を厳し く した りできます。

• 制約の変更を管理しやくすな り ます。 マスター制約の代わりに、 別の制約ファ イルに保存した制約を使用できます。

ヒン ト : タイ ミ ング制約を検証するには、 合成済みデザインで report_timing_summary コマンドを実行します。インプリ メンテーシ ョ ンの前に、 問題のある制約を修正して ください。

配置配線に影響する制約の定義および制約での作業の詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』(UG903) [参照 7] を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 13UG904 (v2013.1) 2013 年 3 月 20 日

Page 14: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

デザイン チェ ックポイン トでデザインのスナップシ ョ ッ ト を保存および復元

制約を attribute 文として追加

制約は、 HDL ソースに attribute 文と して追加できます。 属性は、 Verilog および VHDL ソースの両方に追加でき、Vivado 合成または Vivado インプリ メンテーシ ョ ンに渡すこ とができます。 RTL 属性と してのみ設定可能で、 XDC では設定できない制約もあ り ます。

この場合、制約を HDL ソース ファ イルで属性と して指定する必要があ り ます。 たとえば、相対配置マクロ (RPM) はプロパティ と して定義する必要があ り ます。 RPM とは、 複数のロジッ ク エレ メン ト (FF、 LUT、 DSP、 RAM など) を1 つのセッ トにま とめたものです。

デザイン エレ メン トのセッ ト を U_SET または HU_SET 制約を使用して定義し、 相対ロケーシ ョ ン制約 (RLOC) を使用して、 セッ トのほかのエレ メン トに対してそれらのオブジェク ト を配置できます。

相対ロケーシ ョ ン制約の詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 7] を参照して ください。

U_SET、 HU_SET、 および RLOC 制約は、 Tcl コマンドを使用して XDC で指定するこ とはできませんが、 HDL ソース ファ イルの属性と して定義できます。

XDC でサポート されない制約の詳細は、『Vivado Design Suite 移行手法ガイ ド』 (UG911) [参照 13] を参照して ください。

デザイン チェ ックポイン トでデザインのスナップシ ョ ッ ト を保存および復元Vivado Design Suite では、物理デザイン データベースを使用して配置配線情報を格納します。デザイン チェッ クポイン ト ファ イル (.dcp) を使用する と、デザイン フローの主要な段階でこの物理データベースを保存および復元できます。 チェッ クポイン トは、 フローの特定の地点におけるデザインのスナップシ ョ ッ トです。

デザイン チェッ クポイン ト ファ イルには、 次のものが含まれます。

• インプリ メンテーシ ョ ン中に適用された 適化を含む現在のネッ ト リ ス ト

• デザイン制約

• インプリ メンテーシ ョ ン結果

チェッ クポイン ト デザインに対しては、 Tcl コマンドを使用してデザイン フローの残りの段階を実行できます。新しいデザイン ソースを使用して変更するこ とはできません。

チェ ックポイン ト ファイルの保存 フローの任意の段階におけるデザイン データベースのスナップシ ョ ッ ト を保存するには、 [File] → [Write Checkpoint]をク リ ッ ク します。 これによ り、 拡張子が .dcp のファイルが作成されます。

これに相当する Tcl コマンドは write_checkpoint です。

チェ ックポイン ト ファイルの読み込み Vivado Design Suite でチェッ クポイン ト を開くには、 [File] → [Open Checkpoint] をク リ ッ ク します。

デザイン チェッ クポイン トが別のプロジェク ト と して開きます。既存のプロジェク トに読み込むこ とはできません。

これに相当する Tcl コマンドは read_checkpoint です。

インプリ メンテーシ ョ ン japan.xilinx.com 14UG904 (v2013.1) 2013 年 3 月 20 日

Page 15: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行合成済みデザインまたはネッ ト リ ス ト をターゲッ トのザイ リ ンクス FPGA デバイスにインプリ メン トするには、ネット リ ス ト とデザイン制約に対して次のプロセスを実行する必要があ り ます。

• 適化

• 配置

• 配線

これらのプロセスは、 ま とめて 「インプリ メンテーシ ョ ン」 と呼ばれます。

非プロジェク ト モードでは、複数の Tcl コマンドを順に実行するか、デザイン フローを定義した Tcl スク リプ ト を使用します。 Tcl コマンドは、 Vivado IDE の Tcl コンソールから入力するか、 Vivado Design Suite Tcl シェルの Tcl プロンプ トから入力します。

非プロジェク ト モードのサンプル スクリプ ト

次に、 非プロジェク ト モードでインプ リ メンテーシ ョ ンを実行するスク リプ ト例を示します。

# Step 1: Read in top-level EDIF netlist from synthesis toolread_edif c:/top.edf # Read in lower level IP core netlistsread_edif c:/core1.edfread_edif c:/core2.edf

# Step 2: Specify target device and link the netlists# Merge lower level cores with top level into single designlink_design -part xc7k325tfbg900-1 -top top.edf

# Step 3: Read XDC constraints to specify timing requirementsread_xdc c:/top_timing.xdc # Read XDC constraints that specify physical constraints such as pin locationsread_xdc c:/top_physical.xdc

# Step 4: Optimize the design with default settingsopt_design

# Step 5: Place the designplace_design

# Step 6:Route the design route_design

# Step 7:Run Timing Summary Report to see timing resultsreport_timing_summary -file post_route_timing.rpt # Run Utilization Report for device resource utilizationreport_utilization -file post_route_utilization.rpt

# Step 8:Write checkpoint to capture the design database; # The checkpoint can be used for design analysis in Vivado IDE or TCL APIwrite_checkpoint post_route.dcp

インプリ メンテーシ ョ ン japan.xilinx.com 15UG904 (v2013.1) 2013 年 3 月 20 日

Page 16: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

非プロジェク ト モードのサンプル スクリプ トでの主要な手順

「非プロジェク ト モードのサンプル スク リプ ト 」 では、 次の手順が実行されます。

• 手順 1 : デザイン ソース ファ イルの読み込み

• 手順 2 : メモ リ内へのデザインの構築

• 手順 3 : デザイン制約の読み込み

• 手順 4 : ロジッ ク 適化の実行

• 手順 5 : ネッ ト リ ス ト エレ メン トの配置

• 手順 6 : デザインの配線

• 手順 7 : レポートの生成

• 手順 8 : デザイン チェッ クポイン トの保存

手順 1 : デザイン ソース ファイルの読み込み

「非プロジェク ト モードのサンプル スク リプ ト 」 では、デザイン ソースは EDIF ネッ ト リ ス ト ファ イルです。非プロジェク ト モードでは、 RTL デザイン フローもサポート されています。 その場合、 ソース ファ イルを読み込んでインプリ メンテーシ ョ ンの前に合成を実行します。

read_* Tcl コマンドは非プロジェク ト モードで使用するコマンドで、 ディ スク上のファイルを読み込んでメモリ内にデザインを構築します。 ファ イルがコピーされたり、 ファ イルの依存関係が作成されるこ とはあ り ません。

そのため、 非プロジェク ト モードは非常に柔軟です。

重要 : ユーザーがソース デザイン ファ イルの変更を管理し、 それに応じてデザインをアップデートする必要があ ります。

手順 2 : メモリ内へのデザインの構築

link_design コマンドを使用してデザインのメモリ内表示を構築します。 このコマンドは、 ツールに読み込まれたネッ ト リ ス ト ベースのソース ファ イルをザイ リ ンクスのデバイス情報と結合して、 メモ リ内にデザイン データベースを作成します。

非プロジェク ト モードでのすべての操作は、 Vivado ツール内のインメモ リ データベースに対して実行されます。

Vivado ツールをバッチ モードで実行している場合でも、 Tcl シェル モードで対話的に Tcl コマンドを実行している場合でも、グラフ ィカル モードでデザイン データを Vivado IDE で表示している場合でも、メモ リ内のデザインは Vivadoツール内に存在します。

手順 3 : デザイン制約の読み込み

Vivado Design Suite では、 デザイン制約を使用してデザインの物理特性およびタイ ミ ング特性を定義します。

詳細は、 12 ページの 「インプ リ メンテーシ ョ ンでのデザイン制約の使用」 を参照して ください。

read_xdc コマンドは、 XDC 制約ファイルを読み込み、 メモ リ内のデザインに適用します。

ヒン ト : プロジェ ク ト モードでは、 異なる目的で複数の制約ファ イルを含む制約セッ ト を定義できますが、 非プロジェク ト モードでは、 同じ操作を実行するのに複数の read_xdc コマンドを使用します。

インプリ メンテーシ ョ ン japan.xilinx.com 16UG904 (v2013.1) 2013 年 3 月 20 日

Page 17: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

手順 4 : ロジック最適化の実行

配置配線の準備と してロジッ ク 適化を実行します。 適化では、ターゲッ ト デバイスの物理リ ソースに配置する前にロジッ ク デザインが簡略化されます。

Vivado のネッ ト リ ス ト 適化では、 デザイン要件を満たすため、 さまざまな 適化機能が提供されています。

詳細は、 59 ページの 「ロジッ ク 適化」 を参照してください。

手順 5 : ネッ ト リス ト エレメン トの配置

デザインの全体的な配置を実行します。デザインの階層および配置の困難さによって、配置が複数の段階で実行されるこ と もあ り ます。

詳細は、 64 ページの 「配置」 を参照してください。

手順 6 : デザインの配線

route_design コマンドはデザインに必要な配線を完成させます。 Vivado 配線では、 すべてのデザイン タイプでタイ ミ ング ド リブン配線が実行されます。 困難なデザインには、 再配線を使用して詳細な制御が可能です。

詳細は、 71 ページの 「配線」 を参照してください。

手順 7 : レポートの生成

「非プロジェク ト モードのサンプル スク リプ ト 」 では、 Vivado Design Suite で提供される多数のレポートのう ち 2 つを生成します。 非プロジェク ト モードでは、 各レポート を Tcl コマンドを使用して生成する必要があ り ます。

レポートはファイルに出力するか、 Vivado IDE に表示して確認できます。

詳細は、 51 ページの 「インプ リ メンテーシ ョ ン レポートの表示」 を参照してください。

手順 8 : デザイン チェ ッ クポイン トの保存

メモ リ内のデザインをデザイン チェッ クポイン トに保存します。 保存されたチェッ クポイン ト デザインには、 次が含まれます。

• 適化されたネッ ト リ ス ト

• 物理制約およびタイ ミ ング制約

• ザイ リ ンクス パーツ情報

• 配置配線情報

非プロジェク ト モードでは、 デザイン チェッ クポイン ト ファ イルを保存するこ とで、 後でデザインを読み込んで解析したり変更したりできます。

詳細は、 14 ページの 「デザイン チェッ クポイン ト でデザインのスナップシ ョ ッ ト を保存および復元」 を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 17UG904 (v2013.1) 2013 年 3 月 20 日

Page 18: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行プロジェク ト モードでは、 次が可能です。

• 特定の合成結果およびデザイン制約を使用するインプリ メンテーシ ョ ン run を定義

• 1 つのデザインに対して複数のス ト ラテジを実行

• デザイン要件を満たすためインプリ メンテーシ ョ ン ス ト ラテジをカスタマイズ

• カスタマイズしたインプリ メンテーシ ョ ン ス ト ラテジをほかのデザインで使用するため保存

重要 : 非プロジェク ト モードでは、定義済みのインプ リ メンテーシ ョ ン run およびス ト ラテジはサポート されません。Tcl コマン ド を使用して、 インプ リ メ ンテーシ ョ ン プロセスの各段階を手動で実行する必要があ り ます。 詳細は、15 ページの 「非プロジェク ト モードでのインプ リ メンテーシ ョ ンの実行」 を参照してください。

インプリ メンテーシ ョ ン run の作成

新しいインプリ メンテーシ ョ ン run を作成して起動し、 適な結果が得られるよ う さまざまなオプシ ョ ンを試すこ とができます。 各 run は順次起動するか、 複数のローカル CPU で同時に起動できます。

Linux システムでは、 リモート サーバーで run を実行するこ と も可能です。 詳細は、 付録 A 「 リ モート ホス トの使用」 を参照して ください。

インプリ メンテーシ ョ ン run の定義

インプリ メンテーシ ョ ン run を定義するには、 次の手順に従います。

1. 次のいずれかを実行します。

° メ イン メニューから [Flow] → [Create Runs] をク リ ッ ク します。

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

° [Design Runs] ビューを右ク リ ッ クし、 [Create Runs] をク リ ッ ク します。

Create New Runs ウ ィザードが開きます。 初のページは、 コマンドのサマ リです。

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

注記 : [Flow] → [Create Runs] をク リ ッ ク した場合、Create New Runs ウ ィザードの 初のページで [Implementation]をオンにします。

インプリ メンテーシ ョ ン japan.xilinx.com 18UG904 (v2013.1) 2013 年 3 月 20 日

Page 19: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

3. [Configure Implementation Runs] ページで、 [Name] 列に run の名前を入力するか、 デフォルトのままにします。

4. [Synth Name] 列で、 インプリ メンテーシ ョ ンに使用する合成済みネッ ト リ ス ト を選択します。

° サードパーティ合成ツールからプロジェク トにインポート された合成済みネッ ト リ ス ト も選択できます。

° 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 6] を参照して ください。

° デフォルトは、[Design Runs] ビューで現在アクティブな run です。詳細は、23 ページの「[Design Runs] ビューの使用」 を参照して ください。

5. [Constraints Set] 列で制約セッ ト を選択します。

° [Constraints Set] 列で、 インプリ メンテーシ ョ ンに適用する制約セッ ト を選択します。 適化、 配置、 および配線は、 指定された制約セッ トの物理制約およびタイ ミ ング制約に基づいて実行されます。

° 制約セッ トの詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 7] を参照してください。

6. [Part] 列でターゲッ ト パーツを選択します。

° デフォルトでは、 制約セッ トおよびターゲッ ト パーツは、 [Create New Runs] コマンド実行したと きのプロジェク ト設定に基づいて定義されます。

° プロジェク ト設定の詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照して ください。

° 異なる制約セッ ト またはターゲッ ト パーツを使用する run を作成するには、[Create New Runs] コマンドを使用します。 これらの値は、 [Design Runs] ビューで run を選択し、 [Run Properties] ビューで変更できます。

° 詳細は、 24 ページの 「インプ リ メンテーシ ョ ン run 設定の変更」 を参照して ください。

7. [Strategy] 列でス ト ラテジを選択します。

° ス ト ラテジとは、 インプリ メンテーシ ョ ン結果を制御する Vivado インプ リ メンテーシ ョ ン機能オプシ ョ ンを定義した設定のこ とです。Vivado Design Suite では、定義済みのス ト ラテジが提供されています。また、独自のインプリ メンテーシ ョ ン ス ト ラテジを作成するこ と も可能です。

° 詳細は、 30 ページの 「ス ト ラテジの定義」 を参照して ください。

° 次の表に示すス ト ラテジのいずれかを選択します。

ス ト ラテジは、 その目的に応じてカテゴ リ別に分類されており、 カテゴ リ名が接頭辞となっています。 カテゴ リ を表 1-2 に示します。

X-Ref Target - Figure 1-3

図 1-3 : Create New Runs ウィザード : [Configure Implementation Runs] ページ

インプリ メンテーシ ョ ン japan.xilinx.com 19UG904 (v2013.1) 2013 年 3 月 20 日

Page 20: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

パフォーマンス ス ト ラテジは、 デザイン パフォーマンスを向上するこ とを目的と しており、 実行時間は長くな り ます。 Performance_Explore ス ト ラテジは、 すべてのタイプのデザインを網羅しているので、 初に選ぶス ト ラテジと して適しています。

重要 : 名前に SLL または SLR が含まれるス ト ラテジは、 SSI デバイスでのみ使用可能です。

表 1-2 : スト ラテジのカテゴリ

カテゴリ 目的

Performance (パフォーマンス) デザイン パフォーマンスを向上します。

Area (エリア) LUT 数を削減します。

Power (消費電力) 消費電力 適化を実行します。

Flow (フロー ) フロー手順を変更します。

Congestion (密集) 密集および関連の問題を低減します。

表 1-3 : インプリ メンテーシ ョ ン スト ラテジ

インプリ メンテーシ ョ ン スト ラテジ名 説明

Vivado Implementation Defaults 適度な実行時間でタイ ミ ング ク ロージャが満たされるよ うにします。

Performance_Explore 結果を向上するため、 適化、 配置、 配線に複数のアルゴ リ ズムを使用します。

Performance_RefinePlacement 配置後の 適化のエフォート を増加し、 配線でのタイ ミ ングの緩和をディ スエーブルにします。

Performance_WLBlockPlacement ブロ ッ ク RAM および DSP を配置する際にタイ ミ ング制約を無視し、 ワイヤ長を使用します。

Performance_WLBlockPlacementFanoutOpt ブロ ッ ク RAM および DSP を配置する際にタイ ミ ング制約を無視してワイヤ長を使用し、 ファンアウ ト の大きいド ラ イバーの複製を積極的に実行します。

Performance_LateBlockPlacement 終的な配置段階まで、 ブロ ッ ク RAM と DSP におおよその配置を使用します。 全体的な配置が向上するこ とがあ り ます。

Performance_NetDelay_high 遅延を少なめに予測する代わりに、 距離の長いファンアウ ト の大きい接続の遅延コス ト を増加します。Performance_NetDelay_high では増加量が も大き くな り ます。

Performance_NetDelay_medium 遅延を少なめに予測する代わりに、 距離の長いファンアウ ト の大きい接続の遅延コス ト を増加します。Performance_NetDelay_medium では増加量が中程度になり ます。

Performance_NetDelay_low 遅延を少なめに予測する代わりに、 距離の長いファンアウ ト の大きい接続の遅延コス ト を増加します。Performance_NetDelay_low では増加量が も小さ くな り ます。

Performance_ExploreSLLs 全体的なタイ ミ ング スラ ッ クを向上するため、 SLR の再割り当てを試行します。

Area_Explore LUT 数を削減するため、複数の 適化アルゴ リズムを使用します。

Power_DefaultOpt 消費電力を削減するため、消費電力 適化 (power_opt_design)を実行します。

Flow_RunPhysOpt Vivado Implementation Defaults に物理 適化 (phys_opt_design)を実行します。

インプリ メンテーシ ョ ン japan.xilinx.com 20UG904 (v2013.1) 2013 年 3 月 20 日

Page 21: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

ヒン ト : run を実行する前に、 インプリ メンテーシ ョ ン プロセスの各段階の設定を、 選択したス ト ラテジのデフォルト設定から変更できます。変更した設定を新しいス ト ラテジと しても保存できます。詳細は、 24 ページの 「インプ リメンテーシ ョ ン run 設定の変更」 を参照してください。

8. [More] をク リ ッ ク し、 追加の run を定義します。 追加 run の名前とス ト ラテジを指定します (図 1-3)。

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

[Launch Options] ページが開きます (図 1-4)。

Flow_RuntimeOptimized 各インプ リ メ ンテーシ ョ ン段階で、 デザイン パフォーマンスより も 実行時間を短縮す る こ と を優先 し ます。 物理 適化(phys_opt_design) はディ スエーブルになり ます。

Flow_Quick すべての 適化およびタイ ミ ング ド リブンの処理をディ スエーブルにし、 配置配線のみを実行します。 使用率を予測する際に有益です。

Congestion_SpreadLogic_high 密集した領域が作成されないよ うに、 ロジッ クをデバイス全体に分散します。Congestion_SpreadLogic_high では分散度が も高くなり ます。

Congestion_SpreadLogic_medium 密集した領域が作成されないよ うに、 ロジッ クをデバイス全体に分散します。 Congestion_SpreadLogic_medium では分散度が中程度になり ます。

Congestion_SpreadLogic_low 密集した領域が作成されないよ うに、 ロジッ クをデバイス全体に分散します。 Congestion_SpreadLogic_low では分散度が も低くなり ます。

Congestion_SpreadLogicSLLs ロジッ クが SLR すべてに分散され、 SLR 内で密集した領域が作成されないよ うに SLL を割り当てます。

Congestion_BalanceSLLs 2 つの SLR で偏って多数の SLL が必要とならないよ うに SLL を割り当て、 SLR での密集を低減します。

Congestion_BalanceSLRs 各 SLR のエリ アが同等になるよ うに分割し、 SLR 内で密集した領域が作成されないよ うにします。

Congestion_CompressSLRs SLR の使用率が高くなるよ うに分割し、 全体的な SLL 数を削減します。

表 1-3 : インプリ メンテーシ ョ ン スト ラテジ (続き)

インプリ メンテーシ ョ ン スト ラテジ名 説明

インプリ メンテーシ ョ ン japan.xilinx.com 21UG904 (v2013.1) 2013 年 3 月 20 日

Page 22: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

10. [Lauch directory] を指定します。

° このディ レク ト リに、 インプリ メンテーシ ョ ン run のデータを作成して保存します。

° デフォルトのディ レク ト リは、 ローカルのプロジェク ト ディ レク ト リ構造に含まれます。 デフォルトでは、インプリ メンテーシ ョ ン run のファイルは次のディ レク ト リに保存されます。

<project_name>/<project_name>.runs/<run_name>

ヒン ト : プロジェク ト ファ イルには絶対パスが記述されるので、 プロジェク ト ディ レク ト リ外の場所を指定する と、プロジェク ト を移動しにく くな り ます。

11. 実行オプシ ョ ンを指定します。

° [Launch Runs on Local Host]

run をローカル マシンで実行します。

° [Number of jobs]

複数の run を同時実行する際に使用するローカル プロセッサの数を指定します。

° [Launch Runs on Remote Hosts] (Linux のみ)

- リモート ホス ト を使用してジ ョブを実行します。

- 詳細は、 付録 A 「 リモート ホス トの使用」 を参照してください。

° [Configure Hosts]

リモート ホス ト を設定します。

° [Generate scripts only]

run ディレク ト リおよび run スク リプ ト をエクスポートおよび作成しますが、 run は実行しません。 スク リプトは、 Vivado IDE ツールの環境外で後で実行できます。

° [Do not launch now]

新しい run を保存しますが、 run を実行または run スク リプ トは作成しません。

X-Ref Target - Figure 1-4

図 1-4 : [Launch Options] ページ

インプリ メンテーシ ョ ン japan.xilinx.com 22UG904 (v2013.1) 2013 年 3 月 20 日

Page 23: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

12. [Next] をク リ ッ ク し、 [Create New Runs Summary] ページを確認します。

13. [Finish] をク リ ッ ク します。 定義した run が作成され、 指定の実行オプシ ョ ンが実行されます。

新しい run が [Design Runs] ビューに追加されます。

[Design Runs] ビューの使用

[Design Runs] ビューには、 プロジェク ト で作成された合成 run と インプ リ メ ンテーシ ョ ン run のすべてが表示され、それらを設定、 管理、 実行するためのコマンドを実行できます。

[Design Runs] ビューを開く

[Design Runs] ビューが表示されていない場合は、 [Window] → [Design Runs] をク リ ッ ク して表示します (図 1-5)。

[Design Runs] ビューの機能

• インプリ メンテーシ ョ ン run は、 合成 run の下の階層にインデン ト されて表示されます。

• 1 つの合成 run に、複数のインプリ メンテーシ ョ ン run を含めるこ とができます。プラス記号 (+) やマイナス記号(-) をク リ ッ クする と、 合成 run のツ リー表示を展開したり、 閉じた りできます。

• [Design Runs] ビューは、 ツ リー形式の表で示されます。

このビューのデータを列を使用して並べ替える方法は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』(UG893) [参照 2] を参照して ください。

run のステータス

[Design Runs] ビューには、 run のステータスが表示されます。 次のステータスがあ り ます。

• 実行されていない

• 実行中

• 完了

• 新の状態でない

run のタイ ミング結果

[Design Runs] ビューには、 インプ リ メ ンテーシ ョ ン run のタイ ミ ング結果 (WNS、 TNS、 WHS、 THS、 TPWS、 およびタイ ミ ングが満たされていないネッ ト数) が表示されます。

X-Ref Target - Figure 1-5

図 1-5 : [Design Runs] ビュー

インプリ メンテーシ ョ ン japan.xilinx.com 23UG904 (v2013.1) 2013 年 3 月 20 日

Page 24: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

最新の状態でない run

ソース ファ イル、 制約、 またはプロジェク ト設定を変更する と、 run は 新の状態ではなくな り ます。 [Design Runs]ビューでは、 run を リセッ ト した り、 古い run のデータを削除したりできます。

アクテ ィブ run

Vivado IDE のすべてのビューには、アクティブな run の情報が表示されます。 [Log] ビュー、 [Reports] ビュー、 ステータス バー、 [Project Summary] ビューには、 アクティブな run の情報が表示されます。 [Project Summary] ビューには、アクティブな run のコンパイル、 リ ソース、 およびサマ リ情報が表示されます。

ヒン ト : Vivado IDE でアクティブにできるのは、 1 つの合成 run と 1 つのインプリ メンテーシ ョ ン run のみです。

アクティブな run は、 [Design Runs] ビューに太字で示されます。

run をアクティブにするには、 次の手順に従います。

1. [Design Runs] ビューで 1 つの run を右ク リ ッ ク します。

2. [Make Active] をク リ ッ ク します。

インプリ メンテーシ ョ ン run 設定の変更

[Design Runs] ビューで run を選択する と、 [Run Properties] ビューにその run の現在の設定が表示されます (図 1-6)。

[Run Properties] ビューでは、 次のオプシ ョ ンを変更できます。

• [Name] : run の名前

• [Part] : ターゲッ ト パーツ

• [Description] : run の説明

• [Constraints] : インプ リ メンテーシ ョ ンで使用し、 新しい制約を保存する制約セッ ト

[Run Properties] ビューの詳細は、『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照して ください。

Vivado インプ リ メンテーシ ョ ン機能で使用されるオプシ ョ ンも変更できます。

X-Ref Target - Figure 1-6

図 1-6 : [Implementation Run Properties] ビュー

インプリ メンテーシ ョ ン japan.xilinx.com 24UG904 (v2013.1) 2013 年 3 月 20 日

Page 25: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

デザイン run の設定

デザイン run の設定を変更するには、[Design Run Settings] ダイアログ ボッ クスを使用します。[Design Run Settings] ダイアログ ボッ クスを開くには、 次の手順に従います。

1. [Design Runs] ビューで 1 つの run を右ク リ ッ ク します。

2. [Change Run Settings] をク リ ッ ク します。

図 1-7 を参照してください。

ヒン ト : 設定の変更は、 run のステータスが 「Not started」 の場合にのみ可能です。 run を右ク リ ッ ク して [Reset Runs]をク リ ッ クする と、 run のステータスを 「Not started」 に戻すこ とができます。詳細は、 27 ページの 「run のリセッ ト 」を参照して ください。

[Design Run Settings] ダイアログ ボッ クスには、 run に適用されているインプ リ メンテーシ ョ ン ス ト ラテジ、インプ リメンテーシ ョ ン プロセスの各段階でそのス ト ラテジに関連するコマンド オプシ ョ ンが表示されます。 次のオプシ ョンがあ り ます。

• [Strategy]

• [Description]

• [Options]

[Strategy]

インプ リ メ ンテーシ ョ ン run に適用するス ト ラテジを選択します。 Vivado Design Suite では、 定義済みのス ト ラテジが提供されています。 また、 独自のインプリ メンテーシ ョ ン ス ト ラテジを作成するこ と も可能です。

詳細は、 30 ページの 「ス ト ラテジの定義」 を参照してください。

[Description]

選択したインプリ メンテーシ ョ ン ス ト ラテジの説明を表示します。

X-Ref Target - Figure 1-7

図 1-7 : [Design Run Settings] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 25UG904 (v2013.1) 2013 年 3 月 20 日

Page 26: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

[Options]

Vivado インプ リ メンテーシ ョ ン プロセスの各段階のコマンド ライン オプシ ョ ンを表示します。次のコマンドのオプシ ョ ンが表形式で表示されます。

• opt_design

• power_opt_design

• place_design

• phys_opt_design

• route_design

• write_bitstream

特定のコマンド オプシ ョ ンをク リ ッ クする と、 その説明がダイアログ ボッ クスの下部に表示されます。

各インプリ メンテーシ ョ ン段階の詳細と設定可能なオプシ ョ ンは、第 2 章 「インプ リ メンテーシ ョ ン コマンド」 を参照して ください。

コマンド オプシ ョ ンの変更

コマンド オプシ ョ ンを変更するには、そのコマンド オプシ ョ ンの右側の列をク リ ッ ク します。次の操作を実行します。

• 定義済みの値から選択するオプシ ョ ンは、 ド ロ ップダウン リ ス トから選択します。

• イネーブル/ディ スエーブルにするオプシ ョ ンは、 チェッ ク ボッ クスのオン/オフを切り替えます。

• ユーザー定義の値を指定できるオプシ ョ ンは、 値を入力します。

• ファ イル名およびパスを指定するオプシ ョ ンは、ファ イルを選択するダイアログ ボッ クスが開き、ファ イルを選択できます。

• フッ ク スク リプ ト と呼ばれるカスタム Tcl スク リプ ト をインプリ メンテーシ ョ ンの各段階の前 (tcl.pre) と後(tcl.post) に挿入します。

フッ ク スク リプ ト を挿入する と、インプリ メンテーシ ョ ンの各段階の前後に特定のタスクを実行できます。たとえば、 デザインの配置前後にタイ ミ ング レポート を生成して、 タイ ミ ング結果を比較できます。

Tcl フッ ク スク リプ トの定義方法の詳細は、『Vivado Design Suite ユーザー ガイ ド : Tcl スク リプ ト機能の使用』 (UG894)[参照 3] を参照して ください。

ヒ ン ト : tcl.pre および tcl.post ス ク リ プ ト 内のパスは、 プロ ジェ ク ト の関連する run デ ィ レ ク ト リ<project>/<project.runs>/<run_name> を基準と します。

現在のプロジェク ト または現在の run の DIRECTORY プロパティを使用して、 Tcl スク リプ ト内の相対パスを定義できます。

get_property DIRECTORY [current_project]get_property DIRECTORY [current_run]

[Save Design As]

[Strategy] フ ィールドの右側にある [Save Design As] ボタンをク リ ッ クする と、 今後使用できるよ うに、 ス ト ラテジへの変更を新しいス ト ラテジと して保存できます。

注意 : [Save Design As] を使用しない場合、 変更は現在のインプ リ メンテーシ ョ ン run には保存されますが、今後使用するこ とはできません。

インプリ メンテーシ ョ ン japan.xilinx.com 26UG904 (v2013.1) 2013 年 3 月 20 日

Page 27: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロジェク ト モードでのインプリ メンテーシ ョ ンの実行

run ステータスの確認

Vivado IDE では、 run のステータスによって、 run を処理してインプ リ メンテーシ ョ ンを開始します。 ステータスは、[Design Runs] ビューに表示されます (図 1-5)。

• run のステータスが 「Not Started」 の場合、 run はすぐに開始されます。

• run のステータスが 「Error」 になっている場合は、 まず run がリセッ ト され、 終了していない run データが削除されてから、 run が再開されます。

• run のステータスが 「Complete」 または 「Out-of-Date」 になっている場合は、 run を リセッ トするかど うか確認する メ ッセージが表示されます。

run のリセッ ト

run を リセッ トするには、 次の手順に従います。

1. [Design Runs] ビューで 1 つの run を右ク リ ッ ク します。

2. [Reset Runs] をク リ ッ ク します。

インプリ メンテーシ ョ ン run を リセッ トする と、 インプ リ メンテーシ ョ ンの 初の段階 (opt_design) に戻り ます。

run のリセッ ト を確認する メ ッセージと、run ディ レク ト リから生成されたファイルを削除するオプシ ョ ンが表示されます。

ヒン ト : デフォルトでは、 生成されたファイルは削除されます。 生成された run ファ イルを削除しない場合は、 このオプシ ョ ンをオフにします。

run の削除

[Design Runs] ビューから run を削除するには、 次の手順に従います。

1. run を右ク リ ッ ク します。

2. [Delete] をク リ ッ ク します。

run の削除を確認する メ ッセージと、run ディレク ト リから生成されたファイルを削除するオプシ ョ ンが表示されます。

ヒン ト : デフォルトでは、 生成されたファイルは削除されます。 生成された run ファ イルを削除しない場合は、 このオプシ ョ ンをオフにします。

X-Ref Target - Figure 1-8

図 1-8 : [Reset Runs] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 27UG904 (v2013.1) 2013 年 3 月 20 日

Page 28: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン スト ラテジのカスタマイズ

インプリ メンテーシ ョ ン スト ラテジのカスタマイズ新しいインプリ メンテーシ ョ ン run を定義する と、 デフォルトのインプ リ メンテーシ ョ ン設定が使用されます。 これらの設定は変更できます。

図 1-10 に、 [Project Settings] ダイアログ ボッ クスの [Implementation] ページを示します。 このダイアログ ボッ クスは、メ イン メニューから [Tools] → [Project Settings] をク リ ッ クする と開きます。

ヒン ト : 非プロジェク ト モードを使用している場合は、 [Project Settings] コマンドは使用できません。 インプ リ メ ンテーシ ョ ン ス ト ラテジをバッチ モードで使用可能な Tcl スク リプ ト と して定義して保存するか、 Vivado IDE で対話的に定義します。

Flow Navigator からアクテ ィブなインプリ メンテーシ ョ ン run のインプリ メンテーシ ョ ン設定にアクセス

アクテ ィブなインプ リ メ ンテーシ ョ ン run のインプ リ メ ンテーシ ョ ン設定は、Flow Navigator で [Implemented Settings] をク リ ッ ク しても開く こ とができます。

次のインプリ メンテーシ ョ ン設定を指定できます。

• [Default constraint set]

インプリ メンテーシ ョ ン run でデフォルトで使用する制約セッ ト を選択します。

• [Strategy]

インプ リ メ ンテーシ ョ ン run に適用するス ト ラテジを選択します。 Vivado Design Suite では、 定義済みのス ト ラテジが提供されています。 また、 独自のインプリ メンテーシ ョ ン ス ト ラテジを作成するこ と も可能です。

詳細は、 「ス ト ラテジの定義」 を参照してください。

• [Save Design As]

ス ト ラテジへの変更を今後使用できるよ うに新しいス ト ラテジと して保存します。

• [Description]

° 選択したインプリ メンテーシ ョ ン ス ト ラテジの説明を表示します。

° ユーザー定義のス ト ラテジの説明は、 新しい説明を入力して変更できます。

° Vivado ツールの標準インプ リ メンテーシ ョ ン ス ト ラテジの説明は変更できません。

X-Ref Target - Figure 1-9

図 1-9 : [Delete Runs] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 28UG904 (v2013.1) 2013 年 3 月 20 日

Page 29: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン スト ラテジのカスタマイズ

X-Ref Target - Figure 1-10

図 1-10 : [Project Settings] ダイアログ ボックスの [Implementation] ページ

インプリ メンテーシ ョ ン japan.xilinx.com 29UG904 (v2013.1) 2013 年 3 月 20 日

Page 30: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン スト ラテジのカスタマイズ

スト ラテジの定義

ス ト ラテジは、デザインの合成またはインプ リ メンテーシ ョ ンで 適な結果が得られるよ うにするために定義されたソ リ ューシ ョ ンです。

• Vivado インプ リ メンテーシ ョ ン機能のあらかじめ設定されたオプシ ョ ンによ り定義されます。

• ス ト ラテジは、 ツールおよびバージ ョ ン特定です。

• Vivado Design Suite の各メジャー リ リースには、 バージ ョ ン特定のス ト ラテジが含まれます。

Vivado インプ リ メンテーシ ョ ンには、内部ベンチマークでテス ト された一般的なス ト ラテジが複数含まれています。

ヒン ト : 定義済みのインプ リ メンテーシ ョ ン ス ト ラテジに変更を保存するこ とはできませんが、定義済みのス ト ラテジをコピーして変更し、 カスタム ス ト ラテジと して保存できます。

X-Ref Target - Figure 1-11

図 1-11 : デフォルトのインプリ メンテーシ ョ ン スト ラテジ

インプリ メンテーシ ョ ン japan.xilinx.com 30UG904 (v2013.1) 2013 年 3 月 20 日

Page 31: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン スト ラテジのカスタマイズ

定義済みスト ラテジへのアクセス

定義済みス ト ラテジにアクセスするには、 メ イン メニューから [Tools] → [Options] をク リ ッ ク し、 左側のペインで[Strategies] をク リ ッ ク します。

図 1-11 に、 Vivado ツールに含まれるデフォルトのス ト ラテジを示します。

スト ラテジの確認、 コピー、 変更

ス ト ラテジを確認、 コピー、 変更するには、 次の手順に従います。

1. [Tools] → [Options] をク リ ッ ク します。

2. 左側のペインで [Strategies] をク リ ッ ク します。

[Vivado Options] ダイアログ ボッ クスの [Strategies] ページに、 各ツールと リ リース バージ ョ ン用に定義済みのスト ラテジがリ ス ト されます (図 1-11)。

3. [Flow] ド ロ ップダウン リ ス トで、 適切なバージ ョ ンの [Vivado Implementation] を選択します。 含まれているス トラテジが表示されます。

4. 新しいス ト ラテジを作成するには、 ツールバーまたはポップアップ メニューから [Create New Strategy] をク リ ッ ク します。

5. 既存のス ト ラテジをコピーするには、 ツールバーまたはポップアップ メニューから [Create a Copy of thisStrategy] をク リ ッ ク します。 次の操作が実行されます。

a. 選択しているス ト ラテジのコピーが作成されます。

b. [User Defined Strategies] リ ス トに追加されます。

c. ダイアログ ボッ クスの右側にス ト ラテジのオプシ ョ ンが表示され、 変更できるよ うにな り ます。

6. 新しいス ト ラテジに対して次の情報を入力します。

° [Name]

ス ト ラテジの名前を入力します。

° [Type]

[Synthesize] または [Implement] を選択します。

° [Tool version]

ツール バージ ョ ンを指定します。

° [Description]

ス ト ラテジの説明を入力します。 こ こで入力した説明が [Design Run] ビューの結果の表に表示されます。

X-Ref Target - Figure 1-12

図 1-12 : [New Strategy] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 31UG904 (v2013.1) 2013 年 3 月 20 日

Page 32: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン スト ラテジのカスタマイズ

7. 次のインプリ メンテーシ ョ ン手順のオプシ ョ ンを変更します。

° opt_design

° power_opt_design

° place_design

° phys_opt_design

° route_design

° write_bitstream

ヒン ト : 特定のコマンド オプシ ョ ンを選択する と、 その説明がダイアログ ボッ クスの下部に表示されます。

各インプリ メンテーシ ョ ン段階の詳細と設定可能なオプシ ョ ンは、第 2 章 「インプ リ メンテーシ ョ ン コマンド」 を参照して ください。

8. コマンド オプシ ョ ンの右側をク リ ッ ク して、 コマンド オプシ ョ ンを変更します (図 1-13)。

次の操作を実行します。

° 定義済みの値から選択するオプシ ョ ンは、 ド ロ ップダウン リ ス トから選択します。

° イネーブル/ディ スエーブルにするオプシ ョ ンは、 チェッ ク ボッ クスのオン/オフを切り替えます。

° テキス ト入力フ ィールドのオプシ ョ ンは、 値を入力します。

° ファ イル名およびパスを指定するオプシ ョ ンは、 ダイアログ ボッ クスでファイルを選択します。

° フッ ク スク リプ ト と呼ばれるカスタム Tcl スク リプ ト をインプ リ メンテーシ ョ ンの各段階の前 (tcl.pre)と後 (tcl.post) に挿入します。フッ ク スク リプ ト を挿入する と、 インプ リ メンテーシ ョ ンの各段階の前後に特定のタスクを実行できます。たとえば、デザインの配置前後にタイ ミ ング レポート を生成して、 タイ ミング結果を比較できます。

Tcl フッ ク スク リプ トの定義方法の詳細は、 『Vivado Design Suite ユーザー ガイ ド : Tcl スク リプ ト機能の使用』 (UG894) [参照 3] を参照して ください。

注記 : tcl.pre および tcl.post ス ク リ プ ト 内のパスは、 プロジェ ク ト の関連する run デ ィ レ ク ト リ<project>/<project.runs>/<run_name> を基準と します。

現在のプロジェク ト または現在の run の DIRECTORY プロパティを使用して、 スク リプ ト内の相対パスを定義できます。

get_property DIRECTORY [current_project]get_property DIRECTORY [current_run]

X-Ref Target - Figure 1-13

図 1-13 : インプリ メンテーシ ョ ン オプシ ョ ンの変更

インプリ メンテーシ ョ ン japan.xilinx.com 32UG904 (v2013.1) 2013 年 3 月 20 日

Page 33: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン run の起動

9. [OK] をク リ ッ ク して新しいス ト ラテジを保存します。

新しいス ト ラテジは、 [User Defined Strategies] の下にリ ス ト されます。 ユーザー定義のス ト ラテジは、 次の場所に保存されます。

• Linux OS

$HOME/.Xilinx/Vivado/strategies

• Windows 7

C:\Users\<username>\AppData\Roaming\Xilinx\Vivado\strategies

• Windows XP

C:\Documents and Settings\username\Application Data\Xilinx\Vivado\strategies

スト ラテジの共有

作成したス ト ラテジを複数のユーザーで共有するには、 ユーザー定義のス ト ラテジを <InstallDir>/Vivado/<version>/strategies ディ レク ト リにコピーします。

説明 :

• <InstallDir> : ザイ リ ンクス ソフ ト ウェアのインス トール ディ レク ト リ

• <version> : リ リース バージ ョ ン番号

インプリ メンテーシ ョ ン run の起動アクティブ インプ リ メンテーシ ョ ン run を実行するには、 次のいずれかを実行します。

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

• [Flow] → [Run Implementation] をク リ ッ ク します。

• ツールバーの [Run Implementation] ボタンをク リ ッ ク します。

• [Design Runs] ビューで run を右ク リ ッ ク し、 ポップアップ メニューから [Launch Runs] をク リ ッ ク します。

1 つのインプリ メンテーシ ョ ン run を実行する と、 そのインプ リ メンテーシ ョ ンに別のプロセスが生成されます。

ヒン ト : [Design Runs] ビューからは、 アクティブ でない run を選択して実行できます。 [Design Runs] ビューで複数のrun を選択する と、 複数の run を同時に実行できます。

1. 複数の run を選択するには、 Shift キーまたは Ctrl キーを押しながら ク リ ッ ク します。

注記 : [Design Runs] ビューで複数 run を選択する際、合成 run と インプリ メンテーシ ョ ン run の両方を選択できます。 Vivado IDE では、 run の依存性が管理され、 run が正しい順序で実行されます。

2. [Launch Runs] をク リ ッ クする と、 [Launch Selected Runs] ダイアログ ボッ クスが開きます (図 1-14)。

注記 : [Launch Selected Runs] ダイアログ ボッ ク スは、 run を右ク リ ッ ク して [Launch Runs] をク リ ッ クするか、[Design Runs] ビューのツールバーの [Launch Selected Runs] ボタンをク リ ッ クする と開きます。

インプリ メンテーシ ョ ン japan.xilinx.com 33UG904 (v2013.1) 2013 年 3 月 20 日

Page 34: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン run の起動

3. [Launch Directory] を選択します。

デフォルトの実行ディ レク ト リは、ローカルのプロジェク ト ディ レク ト リ構造に含まれます。インプ リ メンテーシ ョン run のファイルは、 次のディ レク ト リに保存されます。

<project_name>/<project_name>.runs/<run_name>

ヒン ト : プロジェク ト ファ イルには絶対パスが記述されるので、 プロジェク ト ディ レク ト リ外の場所を指定する と、プロジェク ト を移動しにく くな り ます。

4. 次のオプシ ョ ンを設定します。

a. [Launch Runs on Local Host]

run をローカル マシンで実行します。

b. [Number of jobs]

複数の run を同時実行する際に使用するローカル プロセッサの数を指定します。各 run が各プロセッサで実行されます。

c. [Launch Runs on Remote Hosts] (Linux のみ)

リモート ホス ト を使用してジ ョブを実行します。

詳細は、 付録 A 「 リモート ホス トの使用」 を参照してください。

d. [Configure Hosts]

リモート ホス ト を設定します。

e. [Generate scripts only]

run ディレク ト リおよび run スク リプ ト をエクスポートおよび作成しますが、 run は実行しません。 スク リプトは、 Vivado ツールの環境外で後で実行できます。

X-Ref Target - Figure 1-14

図 1-14 : [Launch Selected Runs] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 34UG904 (v2013.1) 2013 年 3 月 20 日

Page 35: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

プロセスのバックグラウンドへの移動

プロセスのバックグラウンドへの移動Vivado IDE で合成またはインプリ メンテーシ ョ ンを実行するプロセスが生成される と、まず実行の準備と してデザイン ファ イルと制約ファイルが読み込まれます。 [Starting Run] ダイアログ ボッ クス (図 1-15) が表示され、 このプロセスをバッ クグラウンドに移動するオプシ ョ ンが示されます。

このプロセスをバッ クグラウンドに移動する と、 バッ クグラウンド タス クを実行させたまま、 Vivado IDE でレポート を表示したり、デザイン ファ イルを開いたり といった別の操作を実行できます。 この間、前の run の結果を確認したり、 レポート を表示したり して、 時間を効率的に活用できます。

注意 : このプロセスをバッ クグランドに移動しても、[Tcl Console] はブロ ッ ク されるので、Tcl コマンドを使用したり、開いている別のデザインに切り替えるなどの Tcl コマンドを必要とするタスクは実行できません。

インプリ メンテーシ ョ ンの段階ごとの実行Vivado インプ リ メンテーシ ョ ンは、 次のよ うな複数のプロセスで構成されます。

• ロジッ ク 適化

• 配置

• 配線

Vivado ツールでは、インプリ メンテーシ ョ ンを 1 つのプロセスと してではなく、1 つずつ順に実行するこ と も可能です。

インプリ メンテーシ ョ ンの段階ごとに実行する方法

インプリ メンテーシ ョ ンの段階ごとに実行するには、 次の手順に従います。

1. [Design Runs] ビューで 1 つの run を右ク リ ッ ク します。

2. [Launch Next Step: <Step>] または [Launch Step To] をク リ ッ ク します。

<Step> に有効な値は、 run 設定でイネーブルになっているプロセスによって異なり ます。 インプ リ メンテーシ ョン run で有効な手順は、 次のとおりです。

° opt_design (デザインの 適化)

ザイ リ ンクス FPGA デバイスにフ ィ ッ トするよ う論理デザインを 適化します。

° power_opt_design (デザインの消費電力 適化)

インプリ メン ト済み FPGA デバイスの消費電力を削減するため、 デザイン エレ メン ト を 適化します。

° place_design (デザインの配置)

デザインをターゲッ ト ザイ リ ンクス デバイスに配置します。

X-Ref Target - Figure 1-15

図 1-15 : [Starting Run] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 35UG904 (v2013.1) 2013 年 3 月 20 日

Page 36: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン run の監視

° phys_opt_design (デザインの物理 適化)

デザインの負のスラ ッ ク パスに対してタイ ミ ング ド リブンの 適化を実行します。

° route_design (デザインの配線)

デザインをターゲッ ト ザイ リ ンクス デバイスに配線します。

° write_bitstream (ビッ ト ス ト リームの生成)

ザイ リ ンクス デバイス コンフ ィギュレーシ ョ ンのビッ ト ス ト リームを生成します。 ビッ ト ス ト リーム生成は、 厳密にはインプリ メンテーシ ョ ン run の一部ではあ り ませんが、 次の段階と して実行可能です。

3. [Launch Next Step: <Step>] または [Launch Step To] を繰り返し、インプリ メンテーシ ョ ンの段階を進めていきます。

インプリ メンテーシ ョ ン段階の間で必要に応じてレポート生成または解析を実行し、デザイン オプシ ョ ンの結果を確認できます。

4. 完了している段階を前の段階に戻すには、 [Design Runs] ビューで run を右ク リ ッ ク して [Reset to Previous Step:<Step>] をク リ ッ ク します。

選択した run を直前の段階にリセッ トするには、 [Reset to Previous Step] を使用します。 このコマンドを使用すると、 次が可能になり ます。

° run を元に戻します。

° 必要な変更を加えます。

° 再び段階を進め、 run をインク リ メンタルに完了します。

インプリ メンテーシ ョ ン run の監視インプリ メンテーシ ョ ン run は、 次のよ うに監視できます。

• コンパイル情報を読む

• [Messages] ビューで警告およびエラーを確認

• プロジェク ト サマリ を表示

• [Design Runs] ビューを開く

合成 run およびインプリ メンテーシ ョ ン run のステータスは、 [Log] ビューで確認します。

インプリ メンテーシ ョ ン japan.xilinx.com 36UG904 (v2013.1) 2013 年 3 月 20 日

Page 37: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン run の監視

run ステータス表示

進行中の run のステータスは、 2 つの方法で表示されます。 これらのステータス表示には、 run が進行中であるこ とが示されるほか、 こ こから必要に応じてキャンセルできます (図 1-16)。

Vivado IDE の右上にあるプロジェク ト ステータス バーに表示される run ステータス インジケーターでは、run が進行中であるこ とが動くバーで示されます。 [Cancel] ボタンをク リ ッ クする と、 run を停止できます。

[Design Runs] ビューには、 図 1-16 に示すよ うに、 run の横に run が進行中であるこ とを示す円形の矢印が表示されます。 run を右ク リ ッ ク してポップアップメニューから [Reset Run] をク リ ッ クする と、 run をキャンセルできます。

run のキャンセル/リセッ ト

進行中の run を [Cancel] ボタンまたは [Reset Run] コマンドでキャンセルする と、 キャンセルした run 用に作成されたrun ファ イルをすべて削除するかど うか確認する メ ッセージが表示されます (図 1-17)。

[Delete Generated Files] をオンにする と、 ローカルのプロジェク ト ディ レク ト リから run データが削除されます。

推奨 : キャンセルした run で作成されたデータはすべて削除して、 今後の run で問題が発生しないよ うにするこ とをお勧めします。

X-Ref Target - Figure 1-16

図 1-16 : インプリ メンテーシ ョ ン run のステータス表示

X-Ref Target - Figure 1-17

図 1-17 : [Cancel Implementation] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 37UG904 (v2013.1) 2013 年 3 月 20 日

Page 38: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン run の監視

[Log] ビューのログ情報の表示

run を実行する と、 [Log] ビューが開き、 標準出力メ ッセージが表示されます。 [Log] ビューには、 place_design やroute_design などの各インプリ メンテーシ ョ ン プロセスの進行状況も表示されます。

異なる メ ッセージがどこから表示されているかを確認し、 インプリ メンテーシ ョ ン run のデバッグに役立てるこ とができます。 図 1-18 に、 [Log] ビューの例を示します。

ヒン ト : [Log] ビューで異なる メ ッセージがどこから表示されているかを確認し、 インプ リ メ ンテーシ ョ ン run のデバッグに役立てるこ とができます。

出力の停止

[Log] ビューで [Pause output] ボタンをク リ ッ クする と、 出力を停止できます。 出力を停止する と、 インプ リ メンテーシ ョ ンの実行中にログ情報を読むこ とができます。

プロジェク ト ステータスの表示

Vivado IDE では、 プロジェク ト ステータス と次の手順が複数の方法で示されます。 プロジェク ト ステータスには、主なデザイン タスクの結果のみがレポート されます。

プロジェク ト ステータスは [Project Summary] ビューとステータス バーに表示され、 プロジェク ト を開いたと き、 デザイン フロー コマンドを実行中に、 プロジェク トのステータスをすばやく判断できます。 次のステータスが示されます。

• RTL エラボレーシ ョ ン

• 合成

• インプリ メンテーシ ョ ン

• ビッ ト ス ト リーム生成

プロジェク ト ステータス バー

プロジェク ト ステータスは、 Vivado IDE の右上の プロジェ ク ト ステータス バーに表示されます。

合成、インプ リ メン ト、ビッ ト ス ト リームの生成を実行する と、プロジェク ト ステータス バーにその結果が示されます。プロセスでエラーが発生した場合は、 赤色の文字で表示されます。

X-Ref Target - Figure 1-18

図 1-18 : [Log] ビュー

インプリ メンテーシ ョ ン japan.xilinx.com 38UG904 (v2013.1) 2013 年 3 月 20 日

Page 39: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン run の監視

Out-of-Date ステータス

合成またはインプリ メンテーシ ョ ンを完了した状態でソース ファ イルまたはデザイン制約を変更する と、プロジェクト ステータスが 「Out-of-Date」 とな り ます (図 1-19)。

これは、 プロジェク トが 新でなく、 更新が必要であるこ とを示します。 デザインのどの部分が 新ではないのかを確認するには、 [more info] リ ンクをク リ ッ ク します。 インプ リ メンテーシ ョ ンのみの再実行が必要な場合や、 合成およびインプリ メンテーシ ョ ンの両方を再実行する必要がある場合があ り ます。

run のステータスを強制的に最新の状態に設定

[Force-up-to-date] リ ンクをク リ ッ クする と、 インプ リ メ ンテーシ ョ ン run または合成 run のステータスを強制的に新の状態にするこ とができます。 この機能は、 デザインまたは制約を変更したが、 現在の run の結果を解析する場合などに使用します。

ヒン ト : [Force-up-to-date] コマンドは、[Design Runs] ビューで 新でない run を右ク リ ッ ク したと きに表示されるポップアップ メニューにもあ り ます。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照してください。

X-Ref Target - Figure 1-19

図 1-19 : インプリ メンテーシ ョ ンが最新でない

インプリ メンテーシ ョ ン japan.xilinx.com 39UG904 (v2013.1) 2013 年 3 月 20 日

Page 40: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮インク リ メ ンタル コンパイルは、 完成に近づいており、 タイ ミ ング ク ロージャを達成するために労力が必要なデザインに適したアドバンス フローです。多少の変更を加えて再合成する場合にこのフローを使用する と、基準デザインからの配置配線が再利用され、 配置配線の実行時間が短縮され、 タイ ミ ングが保持されます。 このフローは、 変更されたデザインと基準デザインが 95% 以上類似している場合に も効果的です。

注記 : 変更された部分のみが配置配線されます。

インクリ メンタル コンパイル フローX-Ref Target - Figure 1-20

図 1-20 : インクリ メンタル コンパイル フロー

インプリ メンテーシ ョ ン japan.xilinx.com 40UG904 (v2013.1) 2013 年 3 月 20 日

Page 41: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

インクリ メンタル コンパイル フローのデザイン

インク リ メンタル コンパイル フローでは、 次の 2 つのデザインを使用します。

• 基準デザイン

• 現在のデザイン

図 1-20 を参照して ください。

基準デザイン

初のインク リ メンタル コンパイル フロー デザインは基準デザインです。

基準デザインは、 通常はデザインの合成、 配置、 配線が完了した以前のバージ ョ ンです。

基準デザインには、 タイ ミ ング ク ロージャを達成するためにコード変更、 フロアプラン、制約変更した際のデザインの反復実行結果であるデザイン チェッ クポイン ト (DCP) を使用できます。

現在のデザインを読み込んだら、 read_checkpoint -incremental <dcp> コマン ド を使用して基準デザインチェッ クポイン ト を読み込みます。 -incremental オプシ ョ ンを使用して基準デザイン チェッ クポイン ト を読み込むと、 次の配置配線でインク リ メンタル コンパイル デザイン フローがイネーブルになり ます。 詳細は、 42 ページの「基準デザインと現在のデザインの類似性の確認」 を参照してください。

現在のデザイン

2 つ目のインク リ メンタル コンパイル フロー デザインは現在のデザインです。

現在のデザインは、 基準デザインに少しだけ変更を加えたものです。 次のよ うな変更が含まれます。

• RTL の変更

• ネッ ト リ ス トの変更

• RTL の変更とネッ ト リ ス トの変更の両方

インクリ メンタル配置配線の実行

変更された現在のデザインを 初にメモリに読み込み、 その後基準デザイン チェッ クポイン ト を読み込みます。

インク リ メンタル コンパイル プロセスの重要な要素は、 インク リ メンタル配置配線です。 基準デザイン チェッ クポイン トは、 ネッ ト リ ス ト、 制約、 配置配線を含む物理データで構成されます。

• 現在のデザインのネッ ト リ ス トは基準デザインと比較され、 一致するセルおよびネッ トが検出されます。

• 基準デザイン チェッ クポイン トからの配置は、 現在のデザインの一致セルを配置するために再利用されます。

• 基準デザイン チェッ クポイン トからの配線は、 一致ネッ ト を配線するために再利用されます。

複数のファンアウトがあるネッ ト

Vivado 配線では、複数のファンアウ トがあるネッ トに対しては詳細な一致比較が実行され、各配線セグメン ト を適切に再利用または廃棄できます。

基準デザインと現在のデザインの間で一致しないデザイン オブジェク トは、インク リ メンタル配置が完了した後に配置され、 既存の配線が再利用された後に配線されます。

インプリ メンテーシ ョ ン japan.xilinx.com 41UG904 (v2013.1) 2013 年 3 月 20 日

Page 42: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

配置配線の効率的な再利用

基準デザインからの配置配線が効果的に再利用できるかど うかは、 2 つのデザインの差異によ り ます。 少しの変更によって、 デザインが大幅に変わってしま う場合もあ り ます。

少しの RTL の変更による影響

合成はネッ ト リ ス ト名ができるだけ変更されないよ うに実行されますが、 次のよ う な少しの RTL の変更によってデザインが大幅に変わってしま う場合があ り ます。

• 推論される メモリのサイズを大き くする。

• 内部バスの幅を広くする。

• データ型を符号なしから符号付きに変える。

制約および合成オプシ ョ ンの変更による影響

同様に、 次のよ う な制約および合成オプシ ョ ンの変更が、 インク リ メ ンタル配置配線に大き く影響する こ とがあ ります。

• タイ ミ ング制約の変更および再合成

• 論理階層の保持または解除

• レジスタの リ タイ ミ ングのイネーブル

基準デザインと現在のデザインの類似性の確認

report_incremental_reuse コマンドを使用する と、 基準デザイン チェッ クポイン ト と現在のデザインの類似性をレポートできます。このコマンドは、基準デザイン チェッ クポイン トからのネッ ト リ ス ト を メモ リ内の現在のデザインと比較し、 セル、 ネッ ト、 ポートの一致量をパーセン トでレポート します。

注記 : 以前のバージ ョ ンの Vivado に含まれていた report_design_similarity コマンドが、現在のバージ ョ ンでreport_incremental_reuse コマンドに置き換えられています。新しい report_incremental_reuse コマンドでは、 report_design_similarity コマンド とは異なり、 引数は指定しません。 その代わり、 このコマンドを実行する前に、read_checkpoint -incremental <dcp> を実行してデザイン チェッ クポイン ト を指定する必要があり ます。 その後であれば、 いつでも report_incremental_reuse を実行できます。 メモ リ内にあるデザイン とread_checkpoint -incremental で読み込まれたデザイン チェッ クポイン トが自動的に比較されます。

デザイン間の差異が少ないほど、 基準デザインからの配置配線の再利用が効率的に実行されます。 次に、 メモ リ内の合成済みデザインを配線済みデザイン チェッ クポイン ト と比較した report_incremental_reuse レポートの例を示します。

+-----------------------+-------+-------+------------+| Type | Count | Total | Percentage |+-----------------------+-------+-------+------------+| Reused Cells | 3591 | 3821 | 93.98 || Reused Ports | 71 | 71 | 100.00 || Reused Nets | 6142 | 6564 | 93.57 || | | | || Reused Cells | 3591 | | || Non-Reused Cells | 230 | | || New | 230 | | || Fully reused nets | 5383 | | || Partially reused nets | 759 | | || New nets | 422 | | |+-----------------------+-------+-------+------------+

通常、 一致パーセン トが高いほど、 配置配線が多く再利用され、 配置配線の実行が高速になり ます。

インプリ メンテーシ ョ ン japan.xilinx.com 42UG904 (v2013.1) 2013 年 3 月 20 日

Page 43: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

推奨 : report_incremental_reuse コマン ドは、 現在のデザインのインク リ メ ンタル配置配線を実行するのに、チェッ クポイン トが基準デザインと して使用するのに適しているかを判断するのに使用します。

インクリ メンタル配置配線メ ト リ ック

デザイン間でセル、 ネッ ト 、 ポートが 95% 以上一致していれば、 Vivado Design Suite のインク リ メンタル配置配線によ り実行時間が平均で通常の配置配線の 1/3 になり ます。

基準デザインと現在のデザインの間の一致パーセン トが低くなる と実行時間の短縮度も低くな り ます。

80% 未満になる と、 インク リ メンタル配置配線を使用する利点はそれほどなくなるか、 まった くなくなる可能性があり ます。

実行時間の短縮に影響する要素

ほかに、 次の要素も実行時間の短縮に影響します。

• タイ ミ ング ク リ ティカル エリ アの変更量。 ク リ ティカル パスの配置配線を再利用できない場合、 タイ ミ ングを満たすのにエフォートがよ り必要とな り ます。 つま り、 インク リ メンタル配置配線を実行する利点が、 デザインの単純な部分のみに使用されるこ とにな り ます。

• phys_opt_design コマンドはタイ ミ ング ド リブンのロジッ ク変換を実行しますが、 インク リ メンタル フローと標準フローでは異なる結果を生成するこ とがあ り ます。 デザインの変更が phys_opt_design の影響を受けるク リ ティカル タイ ミ ング エリ アに集中している場合、 配線の再利用によ り予測される効果が得られない可能性があ り ます。

• 配置配線の初期化時間。配置配線時間が短い場合、Vivado 配置配線の初期化のオーバーヘッ ドによ り インク リ メンタル配置配線プロセスの効果が相殺されてしま う可能性があ り ます。実行時間が長いデザインでは、実行時間占める初期化時間の割合は小さ くな り ます。

インクリ メンタル コンパイルの使用

プロジェク ト モード と非プロジェク ト モードのどちらでも、 read_checkpoint -incremental <dcp_file> コマンド (<dcp_file> は基準デザイン チェッ クポイン トのパスとファ イル名) を使用して基準デザイン チェッ クポイン ト を読み込むと、 インク リ メ ンタル配置配線モードになり ます。 -incremental オプシ ョ ンを使用して基準デザイン チェッ クポイン ト を読み込むと、次の配置配線でインク リ メンタル コンパイル デザイン フローがイネーブルになり ます。非プロジェク ト モードでは、read_checkpoint -incremental は opt_design の後、place_designの前に実行します。

インク リ メンタル コンパイル モードを終了するには、 次のいずれかを実行します。

• -incremental オプシ ョ ンを使用せずにチェッ クポイン ト を読み込みます。

• プロジェク ト を使用している場合は、 インク リ メンタル コンパイル チェッ クポイン トの設定を削除します。

基準デザインと して使用するデザイン チェッ クポイン ト ファ イル (DCP) を指定してインク リ メンタル配置を実行するには、 次の手順に従います。

1. 現在のデザインを読み込みます。

2. opt_design を実行します。

3. read_checkpoint -incremental <dcp_file> を実行します。

4. place_design を実行します。

link_design; # to load the current designopt_designread_checkpoint -incremental <dcp_file>place_design

インプリ メンテーシ ョ ン japan.xilinx.com 43UG904 (v2013.1) 2013 年 3 月 20 日

Page 44: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

インク リ メンタル配置は、 基準デザインのデザイン オブジェク ト と現在のデザインのデザイン オブジェク ト を比較する Vivado ツールの機能を利用します。 opt_design -resynth_area コマンド オプシ ョ ンを使用した場合、 または -directive ExploreArea を使用した場合は、 基準デザインと現在のデザインの間でセル名の一致が低くな り、配置配線データ との一致も低くな り ます。

推奨 : そのため、 インク リ メ ンタル コンパイル フローを実行する際は、 opt_design -resynth_area コマンドの使用は制限して ください。

read_checkpoint -incremental <dcp_file> コマンドで基準デザイン と して使用するデザイン チェ ッ クポイン ト ファ イル (DCP) を指定した後 route_design を実行する と、 インク リ メンタル配線が実行されます。 インク リメンタル チェッ クポイン トが place_design で既に読み込まれている場合は、 Vivado はインク リ メンタル モードのままであ り、 route_design の前に -incremental は必要あ り ませんん。

配線では、 チェッ クポイン トが読み込まれる と、 基準デザインからの配線接続が適用されます。

余った配線セグメン ト

現在のデザインから削除されていたり、配置時に移動されているセルのため、基準デザインからの配線セグメン トに余るものが出てしま う こ とがあ り ます。 Vivado IDE で実行している場合、問題が発生する可能性のあるネッ トが見られるこ とがあ り ますが、 これらの余った配線セグメン トや不適切に接続された配線セグメン トは、Vivado 配線のインク リ メンタル配線時にク リーンアップされます。

配置中に、 次のよ うな情報メ ッセージが表示されます。

INFO: [Place 46-2] During incremental compilation, routing data from the original checkpoint is applied during place_design.As a result, dangling route segments and route conflicts may appear in the post place_design implementation due to changes between the original and incremental netlists.These routes can be ignored as they will be subsequently resolved by route_design.This issue will be cleaned up automatically in place_design in a future software release.

プロジェク ト モードでのインクリ メンタル コンパイルの使用

プロジェク ト モードでは、 [Design Runs] ビューでインク リ メンタル コンパイル オプシ ョ ンを設定できます。

インク リ メンタル コンパイル モードを設定するには、 次の手順に従います。

1. [Design Runs] ビューで 1 つの run を右ク リ ッ ク します。

2. [Set Incremental Compile] をク リ ッ ク します。

3. [Set Incremental Compile] ダイアログ ボッ クスで、 基準デザイン チェッ クポイン ト を選択します。

run でインク リ メンタル コンパイル モードがイネーブルになり ます。

重要 : デザイン run からチェッ クポイン ト を選択した場合、 その run がリセッ ト される と削除されます。デザイン runからチェッ クポイン ト を選択する場合は、基準チェッ クポイン ト と して選択する前に、別のディ レク ト リにコピーして ください。

インプリ メンテーシ ョ ン japan.xilinx.com 44UG904 (v2013.1) 2013 年 3 月 20 日

Page 45: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

図 1-21 を参照して ください。

run のインク リ メンタル コンパイル モードをディ スエーブルにするには、[Use checkpoint] フ ィールドを空白にします(図 1-22)。

インク リ メンタル配置配置配線が完了したら、 Vivado ツールで生成されたメ ッセージを確認できます。

X-Ref Target - Figure 1-21

図 1-21 : デザイン run の [Set Incremental Compile] コマンド

X-Ref Target - Figure 1-22

図 1-22 : インクリ メンタル コンパイルの設定

インプリ メンテーシ ョ ン japan.xilinx.com 45UG904 (v2013.1) 2013 年 3 月 20 日

Page 46: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インクリ メンタル コンパイルを使用した配置配線の実行時間の短縮

インクリ メンタル コンパイル後の解析

インク リ メンタル配置配線が完了したら、 タイ ミ ングとセルおよびネッ トの再利用に関する詳細を解析できます。 タイ ミ ング レポートのオブジェク トに、物理データがどのよ うに再利用されたかが示されます。 これによ り、デザインのアップデートがク リ ティカル パスに影響しているかど うかを判断できます。

タ イ ミ ング レポー ト にインク リ メ ンタル フローの詳細を表示するには、 report_timing -label_reused オプシ ョ ンを使用します。 このオプシ ョ ンを使用する と、 入力ピンおよび出力ピンに再利用ラベルが表示され、 ピンのセルおよびネッ トに再利用された物理データの量が示されます。

• (R) : セル配置とネッ ト配線の両方が再利用されています。

• (NR) : セル配置とネッ ト配線のどちら も再利用されていません。

• (PNR) : セル配置は再利用されていますが、 ネッ ト配線は再利用されていません。

• (N) : ピン、 セル、 またはネッ トは新しいデザイン オブジェク トで、 基準デザインには含まれません。

次に例を示します。

------------------------------------------------------- -------------------(NR)SLICE_X46Y42 FDRE (Prop_fdre_C_Q) 0.259 -1.862 r fftI/fifoSel_reg[5]/Q net (fo=8, estimated) 0.479 -1.383 fftI/n_fifoSel_reg[5](R)SLICE_X46Y43 r fftI/wbDOut_reg[31]i5/I1(R)SLICE_X46Y43 LUT4 (Prop_lut4_I1_O) 0.043 -1.340 r fftI/wbDOut_reg[31]i5/O net (fo=32, routed) 1.325 -0.014 fftI/wbDOut_reg[31]i5(R)SLICE_X44Y39 r fftI/wbcI/wbDOut_reg[0]i1/S(PNR)SLICE_X44Y39 MUXF7 (Prop_muxf7_S_O) 0.154 0.140 r fftI/wbcI/wbDOut_reg[0]i1/O net (fo=1, routed) 0.000 0.140 fftI/wbcI/wbDOut_reg[0]i1(PNR)SLICE_X44Y39 r fftI/wbDout_reg[0]/D------------------------------------------------------- -------------------

read_checkpoint -incremental コマンドによ り次の 2 つのセル プロパティが設定され、 スク リプ ト または Tclコマンドを使用してインク リ メンタル フロー結果を解析する際に有益です。

• IS_REUSED : ブール値プロパティで、セルの配置が基準デザインから再利用された場合に TRUE に設定されます。

• REUSE_STATUS : 文字列プロパティで、 インク リ メンタル配置配線後のセルの再利用ステータスを示します。可能な値は次のとおりです。

° New (新規)

° Reused (再利用)

° Discarded to improve timing (タイ ミ ングを向上するため破棄)

インプリ メンテーシ ョ ン japan.xilinx.com 46UG904 (v2013.1) 2013 年 3 月 20 日

Page 47: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン完了後の次の操作

インプリ メンテーシ ョ ン完了後の次の操作プロジェク ト モードおよび非プロジェク ト モードのどちらでも、インプ リ メンテーシ ョ ンが完了した後の操作は、インプリ メンテーシ ョ ンの結果によ り ます。

• デザインが完全に配置配線されたか、 解決が必要な問題があるか。

• タイ ミ ング制約およびデザイン要件が満たされたか、 デザインを完了するのに変更が必要か。

• ザイ リ ンクス パーツ用のビッ ト ス ト リームを生成できる状態であるか。

インプリ メンテーシ ョ ン後に推奨される手順

インプリ メンテーシ ョ ン後は、 次の手順を実行するこ とをお勧めします。

1. インプリ メンテーシ ョ ン メ ッセージを確認します。

2. インプリ メンテーシ ョ ン レポート を表示し、 次の事項を確認します。

° タイ ミ ング制約が満たされている (report_timing_summary)。

° リ ソース使用率が予測どおりである (report_utilization)。

° 消費電力が予測どおりである (report_power)。

3. ビッ ト ス ト リーム ファ イルを生成します。

ビッ ト ス ト リーム ファ イルの生成には、デザインがハードウェアのルールに違反していないこ とを確認する 終DRC も含まれます。

4. 満たされていないデザイン要件がある場合は、 次を実行します。

a. プロジェク ト モードでは、 インプ リ メン ト済みデザインを開いて解析します。

b. 非プロジェク ト モードでは、 インプ リ メンテーシ ョ ン後のデザイン チェッ クポイン ト を開きます。

インプリ メン ト済みデザインの解析の詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイン解析およびクロージャテクニッ ク』 (UG906) [参照 8] を参照して ください。

非プロジェク ト モードでのインプリ メンテーショ ン後の次の操作

非プロジェク ト モードでは、デザイン セッシ ョ ンで生成されたメ ッセージは Vivado ログ ファ イル (vivado.log) に保存されます。 このログ ファ イルおよびデザイン データからのレポート を参照し、 プロジェク トの状況を正確に評価します。

プロジェク ト モードでのインプリ メンテーシ ョ ン後の次の操作

プロジェク ト モードでは、 Vivado Design Suite で次が実行されます。

• [Messages] ビューにログ ファ イルからのメ ッセージが表示されます。

• さまざまなレポートが自動的に生成されます。

プロジェク ト モードでは、 インプ リ メンテーシ ョ ン run が完了する と、 図 1-23 に示すダイアログ ボッ クスが表示され、 次の操作を選択できます。

インプリ メンテーシ ョ ン japan.xilinx.com 47UG904 (v2013.1) 2013 年 3 月 20 日

Page 48: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン完了後の次の操作

[Implementation Completed] ダイアログ ボッ クスで、 次を実行します。

1. 次のいずれかのオプシ ョ ンをオンにします。

• [Open Implemented Design]

ネッ ト リ ス ト 、 デザイン制約、 ターゲッ ト パーツ、 配置配線の結果を Vivado IDE に読み込み、 必要に応じてデザインを解析できるよ うにします。

• [Generate Bitstream]

° [Generate Bitstream] ダイアログ ボッ クスを開きます。

° 詳細は、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 10] を参照してください。

• [View Reports]

° Vivado ツールでインプリ メンテーシ ョ ン中に生成されたレポート ファ イルを選択して表示できる [Reports]ビューを開きます。

° 詳細は、 51 ページの 「インプ リ メンテーシ ョ ン レポートの表示」 を参照してください。

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

X-Ref Target - Figure 1-23

図 1-23 : プロジェク ト モード : [Implementation Completed] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 48UG904 (v2013.1) 2013 年 3 月 20 日

Page 49: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

メ ッセージの表示

メ ッセージの表示

重要 : すべてのメ ッセージを確認して ください。 メ ッセージには、 デザインのパフォーマンス、 消費電力、 エ リ ア、配線を向上するための推奨事項が記載される場合があ り ます。 ク リ ティカル警告メ ッセージにも、解決すべきタイ ミング制約の問題が表示されるこ とがあ り ます。

非プロジェク ト モードでのメ ッセージの表示

非プロジェク ト モードでは、 Vivado ログ ファ イル (vivado.log) で次を確認します。

• 1 つのデザイン セッシ ョ ンで使用したコマンド

• コマンドからの結果およびメ ッセージ

推奨 : Vivado テキス ト エディ ターでログ ファ イルを開き、 すべてのコマンドの結果を確認して ください。 有益な情報が得られるこ とがあ り ます。

プロジェク ト モードでのメ ッセージの表示

プロジェク ト モードでは、 [Messages] ビューに [Log] ビューの内容がフ ィルターされたものが表示され主なメ ッセージ、 警告、 およびエラーのみが含まれます。 [Messages] ビューは機能ごとに分類されており、 フ ィルターを適用するツールバー オプシ ョ ンを使用して、 特定のタイプのメ ッセージのみを表示できます。

図 1-24 に例を示します。

X-Ref Target - Figure 1-24

図 1-24 : [Messages] ビュー

インプリ メンテーシ ョ ン japan.xilinx.com 49UG904 (v2013.1) 2013 年 3 月 20 日

Page 50: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

メ ッセージの表示

プロジェク ト モードでメ ッセージを表示する際は、 次の機能を使用できます。

• 横にあるプラス記号 (+) をク リ ッ ク して展開し、 各メ ッセージを表示します。

• [Messages] ビューの上部にあるチェッ ク ボッ クスのオン/オフを切り替え、 エラー、 ク リ ティカル警告、警告、 情報メ ッセージを表示/非表示にします。

• [Messages] ビューでリ ンクを含むメ ッセージをク リ ッ クする と、 ソース ファイルが開き、 該当する行がハイライ ト されます。

• メ ッセージを右ク リ ッ ク して [Search for Answer Record] をク リ ッ クする と、 ザイ リ ンクス ウェブサイ トでそのメ ッセージに関連するアンサー データベースを検索できます。

インクリ メンタル コンパイルのメ ッセージ Vivado ツールでは、 インク リ メンタル コンパイルからの次のサマリ結果がログ ファ イルにレポート されます。

• 「インク リ メンタル配置サマリ」

• 「インク リ メンタル配線サマリ」

インクリ メンタル配置サマリ

次に、 インク リ メンタル配置サマリの例を示します。 次の情報が含まれます。

• セル配置の再利用の 終的な評価

• ランタイム統計

+-----------------------------------------------------------------+|Incremental Placement Summary |+-----------------------------------------------------------------+| Reused instances | 40336|| Non-reused instances | 1158|| %similarity | 97.21|+-----------------------------------------------------------------+|Incremental Placement Runtime Summary |+-----------------------------------------------------------------+| Initialization time(elapsed secs) | 87.54|| Incremental Placer time(elapsed secs) | 50.42|+-----------------------------------------------------------------+

インクリ メンタル配線サマリ

インク リ メンタル配線サマリには、ネッ ト ファンアウ トの分散に基づく再利用統計が示されます。レポート されるカテゴ リは、 次のとおりです。

• Fully Reused

ネッ トの配線全体が基準デザインから再利用されています。

• Partially Reused

ネッ トの配線の一部が基準デザインから再利用されています。 セル、 セルの配置、 またはその両方が変更されたこ とによ り、 一部のセグメン トは再配線されています。

• New/Unmatched

現在のデザインに含まれるネッ トが基準デザインのものと一致していません。

インプリ メンテーシ ョ ン japan.xilinx.com 50UG904 (v2013.1) 2013 年 3 月 20 日

Page 51: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン レポートの表示

+----------------------------------------------------------+|Incremental Routing Reuse Summary:+----------+-----------+-----------+-----------+-----------+# | Fully | Partially | New / | |# Fanout | Reused | Reused | Unmatched | Total |+----------+-----------+-----------+-----------+-----------+| == 2 | 15749 | 12 | 387 | 16136 |+----------+-----------+-----------+-----------+-----------+| < 50 | 16061 | 31 | 375 | 16467 |+----------+-----------+-----------+-----------+-----------+| [50,100] | 249 | 3 | 20 | 272 |+----------+-----------+-----------+-----------+-----------+| [100,500]| 32 | 0 | 7 | 39 |+----------+-----------+-----------+-----------+-----------+| >= 500 | 8 | 1 | 0 | 9 |+----------+-----------+-----------+-----------+-----------+| Total | 32099 | 47 | 789 | 32923 |+----------+-----------+-----------+-----------+-----------+

+----------+-----------+-----------+| % | Fully | Partially || Reuse | Reused | Reused |+----------+-----------+-----------+| Net | 97.49 | 0.14 || Pin | 100.00 | 0.00 |+----------+-----------+-----------+

インプリ メンテーシ ョ ン レポートの表示Vivado Design Suite では、 次の情報を含むさまざまなレポート を生成できます。

• タイ ミ ング、 タイ ミ ングの密集度、 タイ ミ ング サマリ

• ク ロ ッ ク、 ク ロ ッ ク ネッ ト ワーク、 クロ ッ ク使用率

• 消費電力、 スイ ッチング アクティビティ、 ノ イズ解析

レポート を表示する と、 次を実行できます。

• スク ロール バーを使用してレポート ファ イルを参照

• [Find] または [Find in Files] ボタンをク リ ッ ク し、 特定テキス ト を検索

• [Go to the Beginning] をク リ ッ ク してファ イルの冒頭に移動

• [Go to the End] をク リ ッ ク してファ イルの 後に移動

インプリ メンテーシ ョ ン japan.xilinx.com 51UG904 (v2013.1) 2013 年 3 月 20 日

Page 52: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン レポートの表示

非プロジェク ト モードでのレポート生成

非プロジェク ト モードでは、 レポート を手動で生成する必要があ り ます

• Tcl コマンドを使用して個々のレポート を生成

• Tcl スク リプ ト を使用して複数のレポート を生成

Tcl スクリプ トの例

次の Tcl スク リプ ト例では、 複数のレポート を生成し、 Reports フォルダーに保存しています。

# Report the control sets sorted by clk, clkEnreport_control_sets -verbose -sort_by {clk clkEn} -file C:/Report/cntrl_sets.rpt# Run Timing Summary Report for post implementation timing report_timing_summary -file C:/Reports/post_route_timing.rpt -name time1# Run Utilization Report for device resource utilization report_utilization -file C:/Reports/post_route_utilization.rpt

Vivado IDE でレポート を開く

これらのレポートは、Vivado IDE で開く こ とができます。「Tcl スク リプ トの例」の例では、report_timing_summaryコマンドで次のオプシ ョ ンを使用しています。

• -file オプシ ョ ンを使用して、 レポート をファ イルに保存しています。

• -name オプシ ョ ンを使用して、 レポート を Vivado IDE に表示しています。

図 1-26 に、 Vivado IDE でレポート を開いた例を示します。

ヒン ト : レポート を保存するディレク ト リは、 レポートの生成を実行する前に存在している必要があ り ます。 ディ レク ト リがないとファ イルは保存されず、 エラー メ ッセージが表示されます。

インプリ メンテーシ ョ ン レポート コマンドに関する情報

Vivado IDE または Tcl コマンド プロンプ トで help Tcl コマンド を使用する と、 Tcl レポート コマンド とそのオプシ ョンに関する情報を表示できます。

Tcl レポート コマンドおよびそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』(UG835) [参照 12] を参照して ください。

プロジェク ト モードでのレポート生成

プロジェク ト モードでは、多くのレポートが自動的に生成されます。 これらのレポートは、 [Reports] ビュー (図 1-25)にリ ス ト されます。

[Reports] ビューは、合成またはインプリ メン ト コマンドを実行する と自動的に開きます。開いていない場合は、次のいずれかの方法で開く こ とができます。

• [Project Summary] ビューで [Reports] リ ンクをク リ ッ ク します。

• [Window] → [Reports] をク リ ッ ク します。

ヒン ト : インプ リ メンテーシ ョ ン run の tcl.pre および tcl.post オプシ ョ ンを使用する と、プロセスの各段階でカスタムレポート を出力できます。 これらのカスタム レポートは [Reports] ビューには表示されませんが、 ニーズに合わせて

インプリ メンテーシ ョ ン japan.xilinx.com 52UG904 (v2013.1) 2013 年 3 月 20 日

Page 53: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン レポートの表示

カスタマイズできます。 詳細は、 「インプ リ メンテーシ ョ ン run 設定の変更」 を参照して ください。

[Reports] ビューから表示されるレポートには、 run に関する情報が含まれます。 レポートは、 Vivado IDE でテキス ト形式で開きます (図 1-26)。

X-Ref Target - Figure 1-25

図 1-25 : [Reports] ビュー

X-Ref Target - Figure 1-26

図 1-26 : 制御セッ ト レポート

インプリ メンテーシ ョ ン japan.xilinx.com 53UG904 (v2013.1) 2013 年 3 月 20 日

Page 54: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン レポートの表示

レポートからのクロスプローブ

プロジェク ト モードおよび非プロジェク ト モードの両方で、 レポート と [Device] ビューなどのビューに表示される関連デザイン データのクロスプローブがサポート されています。

• メニュー コマンドまたは Tcl コマンドを使用してレポート を生成する必要があ り ます。

• テキス ト形式のレポートではクロスプローブはサポート されていません。

たとえば [Reports] ビュー (図 1-25) には、 [Route Design] の下にテキス ト形式のタイ ミ ング サマ リ レポートが含まれています。

タイ ミ ングを解析する際は、 ク リ ティカル パスの配置および配線リ ソースなどのデザイン データを [Device] ビューに表示する と有益です。

Vivado IDE で [Tools] → [Timing] → [Report Timing Summary] をク リ ッ クする と、タイ ミ ング サマリ レポートが再生成され、 表示されたレポートからデザインの異なるビューにクロスプローブできます。

タイ ミ ング レポート と [Device] ビューのクロスプローブの例

図 1-27 に、 タ イ ミ ング サマ リ レポート と [Device] ビューのク ロスプローブの例を示します。 この非プロジェ ク トモードの例では、 次の手順が実行されています。

• 配線後のデザイン チェッ クポイン ト を Vivado IDE で開きます。

• report_timing_summary -name を使用して、 デザイン サマリ レポート を生成して開きます。

• [Device] ビューでは [Routing Resources] がオンになっています。

• タイ ミ ング サマリ レポートでタイ ミ ング パスを選択する と、 [Device] ビューでも選択されます。 次の図を参照して ください。

レポートの解析およびデザイン ク ロージャのス ト ラテジの詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイン解析およびクロージャ テクニッ ク』 (UG906) [参照 8] を参照して ください。

X-Ref Target - Figure 1-27

図 1-27 : タイ ミング レポート と [Device] ビューのクロスプローブ

インプリ メンテーシ ョ ン japan.xilinx.com 54UG904 (v2013.1) 2013 年 3 月 20 日

Page 55: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

第 2 章

インプリ メンテーシ ョ ン コマンド

インプリ メンテーシ ョ ン コマンドについてザイ リ ンクス Vivado® 統合設計環境 (IDE) には、 プロジェク ト ベースのデザインでインプ リ メンテーシ ョ ン プロセスを管理し、簡略化する多数の機能が含まれています。インプ リ メンテーシ ョ ン プロセスを段階ごとに手動で実行する機能も含まれます。

詳細は、第 1 章 「Vivado インプ リ メンテーシ ョ ン プロセス」 の 18 ページの 「プロジェク ト モードでのインプ リ メンテーシ ョ ンの実行」 を参照して ください。

非プロジェク ト モードでは、Tcl コマンドを使用してインプ リ メンテーシ ョ ン プロセスの各段階を手動で実行する必要があ り ます。

注記 : Tcl コマンドの詳細は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 12] を参照するか、「<command> -help」 と入力してください。

詳細は、第 1 章 「Vivado インプ リ メンテーシ ョ ン プロセス」 の 15 ページの 「非プロジェク ト モードでのインプ リ メンテーシ ョ ンの実行」 を参照して ください。

インプリ メンテーシ ョ ンのサブプロセスプロジェク ト モードおよび非プロジェク ト モードのどちらでも、 Vivado インプ リ メンテーシ ョ ン プロセスはいくつかのサブプロセスで構成されています。

• 合成済みデザインを開く : ネッ ト リ ス ト 、 デザイン制約、 ターゲッ ト デバイス データを統合し、 インプ リ メンテーシ ョ ンを実行するデザインを メモリ内に構築します。

• opt_design (デザインの 適化) : ザイ リ ンクス FPGA デバイスにフ ィ ッ トするよ う論理デザインを 適化します。

• power_opt_design (デザインの消費電力 適化) : インプリ メン ト済み FPGA デバイスの消費電力を削減するため、 デザイン エレ メン ト を 適化します。

注記 : この手順はオプシ ョ ンです。

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

• phys_opt_design (デザインの物理 適化) : さまざまな物理 適化手法を使用して、 デザインのスラ ッ クが負のパスのタイ ミ ングを 適化します。

注記 : この手順はオプシ ョ ンです。

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

• write_bitstream (ビッ ト ス ト リームの生成) : ザイ リ ンクス デバイス コンフ ィギュレーシ ョ ンのビッ ト ス トリームを生成します。

注記 : ビッ ト ス ト リーム生成は、 厳密にはインプリ メンテーシ ョ ン run の一部ではあ り ませんが、 別の段階と して実行可能です。

インプリ メンテーシ ョ ン japan.xilinx.com 55UG904 (v2013.1) 2013 年 3 月 20 日

Page 56: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

合成済みデザインを開く

この章では、 インプリ メンテーシ ョ ン プロセスの各段階と関連する Tcl コマンドの詳細を説明します。

Tcl レポート コマンドおよびそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』(UG835) を参照して ください。

合成済みデザインを開くインプリ メンテーシ ョ ンでは、 まず 初に合成済みデザインからのネッ ト リ ス ト を メモ リに読み込み、デザイン制約を適用します。合成済みのデザインは、使用されるデザイン フローによってさまざまな方法で開く こ とができます。

メモリ内でのデザインの構築

メモ リ内にデザインを構築するため、 次のプロセスでネッ ト リ ス ト ファ イル、 制約ファイル、 およびターゲッ ト デバイスの情報が統合されます。

1. ネッ ト リ ス ト を統合します。

必要であれば、 複数のソースからのネッ ト リ ス ト を統合します。 デザインには、 構造 Verilog、 EDIF、 NGC を含めるこ とができます。

2. 従来のネッ ト リ ス ト プリ ミ ティブを現在サポート される Unisim プリ ミ ティブに変換します。

ヒン ト : report_transformed_primitives を使用する と、 変換されたセルのリ ス ト を生成できます。

3. セルの形を作成します。

• Vivado ツールでは、 接続または配置制約に基づいてセルの非明示的な形が作成され、 配置が簡略化されます。

• 非明示的な形の例は、 次のとおりです。

° 相対配置マクロ (RPM)

注記 : RPM は、 個別のセルではなくグループと して配置されます。

° 複数のスライスに配置する必要のある長いキャ リー チェーン

注記 : キャ リー チェーンを構成する CARRY4 エレ メン トは 1 つの形に含め、 縦方向に並ぶ複数のスライスに配置されるよ うにする必要があ り ます。

インプリ メンテーシ ョ ン japan.xilinx.com 56UG904 (v2013.1) 2013 年 3 月 20 日

Page 57: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

合成済みデザインを開く

Tcl コマンド

デザインのソース ファ イルおよびステートに応じて、次の Tcl コマンドを使用して合成済みデザインを メモ リに読み込むこ とができます。

• synth_design

• read_checkpoint

• open_run

• link_design

synth_design

synth_design コマンドは、 プロジェク ト モードおよび非プロジェク ト モード両方で使用できます。 このコマンドは、 RTL ソースに対して指定したオプシ ョ ンで Vivado 合成を実行し、 合成後にデザインを メモリに読み込みます。

synth_design [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>][-include_dirs <args>] [-generic <args>] [-verilog_define <args>][-flatten_hierarchy <arg>] [-gated_clock_conversion <arg>][-effort_level <arg>] [-rtl] [-no_iobuf] [-bufg <arg>][-fanout_limit <arg>] [-mode <arg>] [-fsm_extraction <arg>][-keep_equivalent_registers] [-quiet] [-verbose]

synth_design のスクリプ ト例

次のコードは、 Vivado ツールのインス トール ディ レク ト リの examples/Vivado_Tutorials ディ レク ト リに含まれる create_bft_batch.tcl スク リプ トからの抜粋です。

# Setup design sources and constraintsread_vhdl -library bftLib [ glob ./Sources/hdl/bftLib/*.vhdl ] read_vhdl ./Sources/hdl/bft.vhdlread_verilog [ glob ./Sources/hdl/*.v ] read_xdc ./Sources/bft_full.xdc

# Run synthesis, report utilization and timing estimates, write design checkpointsynth_design -top bft -part xc7k70tfbg484-2 -flatten rebuilt write_checkpoint -force $outputDir/post_synth

synth_design サンプル スク リプ ト使用の詳細は、 『Vivado Design Suite チュート リ アル : デザイン フローの概要』(UG888) を参照して ください。

このサンプル スク リプ トでは、 VHDL および Verilog ファ イルが読み込まれ、 指定したデバイスでデザインが合成されます。 synth_design コマンドが完了する と、デザインが開き、 メモ リに読み込まれます。合成が完了する と、デザイン チェッ クポイン トが保存されます。

Tcl コマンドおよびそのオプシ ョ ンの詳細な説明は、 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835)を参照して ください。

表 2-1 : Tcl コマンドを使用可能なモード

コマンド プロジェク ト モード 非プロジェク ト モード

synth_design X X

read_checkpoint X

open_run X

link_design X X

インプリ メンテーシ ョ ン japan.xilinx.com 57UG904 (v2013.1) 2013 年 3 月 20 日

Page 58: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

合成済みデザインを開く

read_checkpoint

read_checkpoint コマンドは、 非プロジェク ト モードでのみ使用できます。 非プロジェク ト モードで合成済みデザイン チェッ クポイン ト を開きます。

read_checkpoint の構文

read_checkpoint [-part <arg>] [-quiet] [-verbose] <file>

read_checkpoint のスクリプ ト例

# Read the specified design checkpoint and create an in-memory design.read_checkpoint C:/Data/post_synth.dcp

このサンプル スク リプ トでは、 合成済みデザイン チェッ クポイン ト ファ イルが開きます。

open_run

合成済みまたはインプリ メン ト済み run を開き、 メモ リに読み込みます。

重要 : open_run コマンドは、プロジェク ト モードでのみ使用できます。デザイン run は非プロジェク ト モードではサポート されません。

open_run コマンドをインプ リ メンテーシ ョ ン前の RTL デザインに使用し、 完了した Vivado 合成または XST run を開いて、 合成済みネッ ト リ ス ト を メモ リに読み込みます。

ヒン ト : メモ リ内のデザインは自動的にアップデート されるので、 synth_design の後 open_run を使用する必要はあ り ません。open_run コマンドは、以前のデザイン セッシ ョ ンで完了した合成 run を開く場合にのみ使用します。

open_run コマンドは、RTL デザイン用です。ネッ ト リ ス ト ベースのデザインを開くには、 link_design コマンドを使用します。

open_run の構文

open_run [-name <arg>] [-quiet] [-verbose] <run>

open_run のスクリプ ト例

# Open named design from completed synthesis runopen_run -name synth_1 synth_1

このサンプル プロジェク トは、 synth_1 とい うデザインを開き、 synth_1 とい う完了した合成 run を メモ リに読み込みます。

デザインがメモ リにある場合に open_run コマンドを実行する と、 新しいデザインを開く前に、 現在のデザインへの変更を保存するかど うかを尋ねる メ ッセージが表示されます。

インプリ メンテーシ ョ ン japan.xilinx.com 58UG904 (v2013.1) 2013 年 3 月 20 日

Page 59: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

ロジック最適化

link_design

サードパーティ合成ツールなどで生成されたネッ ト リ ス ト ソースから メモ リにデザインを作成し、ネッ ト リ ス ト と合成制約をターゲッ ト デバイスにリ ンク します。

ヒン ト : link_design コマンドは、 プロジェク ト モードおよび非プロジェク ト モードの両方でネッ ト リ ス ト デザインを作成する場合にサポート されます。

link_design の構文

link_design [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>] [-mode <arg>] [-quiet] [-verbose]

link_design のスクリプ ト例

# Open named design from netlist sources.link_design -name netDriven -constrset constrs_1 -part xc7k325tfbg900-1

デザインがメモリにある場合に link_design コマンドを実行する と、新しいデザインを開く前に、現在のデザインへの変更を保存するかど うかを尋ねる メ ッセージが表示されます。

推奨 : メモ リに合成済みデザインを作成した後、 エラーおよびク リティカル警告を調べて、 不足している制約や不正な制約がないかど うかを確認して ください。 デザインが問題なく作成されたら、 解析、 レポート生成、 制約の適用、またはインプリ メンテーシ ョ ンを実行できます。

メモ リに合成済みデザインを開いたら、 report_timing_summary コマンドを実行してタイ ミ ング制約をチェッ クし、 デザインの目標が適切であるかど うかを確認して ください。

ロジック最適化ロジッ ク 適化は、配置の前に効率的なロジッ ク デザインを得るために実行します。 ロジッ ク 適化では、ネッ ト リス ト接続性チェッ クが実行され、複数のド ライバーを持つネッ トや駆動されていない入力などの潜在的なデザイン問題に対して警告メ ッセージが表示されます。 ブロ ッ ク RAM の消費電力 適化も実行されます。

使用可能なロジック最適化

Vivado ツールでは、 メモ リ内のデザインに対して次のロジッ ク 適化を実行できます。

• リ ターゲッ ト (デフォルト )

• 定数伝搬 (デフォルト )

• スイープ (デフォルト )

• ブロッ ク RAM の消費電力 適化 (デフォルト )

• リマップ

• エリ ア モードでの再合成

重要 : 特定の 適化を明示的に指定する と、 ほかの 適化はディ スエーブルになり ます。

インプリ メンテーシ ョ ン japan.xilinx.com 59UG904 (v2013.1) 2013 年 3 月 20 日

Page 60: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

ロジック最適化

リ ターゲッ ト (デフォルト )

適化がしやすくなるよ うに、 セル タイプを別のセル タイプに置換します。 たとえば、 MUXF7 はほかの LUT と統合できるよ うに LUT3 に置換されます。また、 インバーターのよ うな単純なセルはダウンス ト リーム ロジッ クに吸収されます。

定数伝搬 (デフォルト )

定数値をロジッ クに伝搬するこ とで、 ロジッ クは次のよ うにな り ます。

• 削除

例 : 定数 0 が入力される AND

• 縮小

例 : 定数 1 が入力される 3 入力 AND を 2 入力 AND に縮小

• 冗長

例 : 0 が入力される 2 入力 OR を 1 本のワイヤに削減

スイープ (デフォルト )

ロードのないセルを削除します。

ブロック RAM の消費電力最適化 (デフォルト )

ブロッ ク RAM セルに対して消費電力の 適化をイネーブルにします。 次を実行します。

• 完全なデュアル ポート RAM の読み出されないポートの WRITE_MODE を NO_CHANGE に変更

• ブロッ ク RAM の出力にクロ ッ ク ゲーティングを適用

リマップ

複数の LUT を 1 つの LUT にま とめてロジッ クの深さを削減します。

エリア モードでの再合成

エリ ア モードで合成を再実行し、 LUT の数を削減します。

重要 : 各ロジッ ク 適化はメモ リ内のデザインに適用され、 元の合成済みデザインには適用されません。

インプリ メンテーシ ョ ン japan.xilinx.com 60UG904 (v2013.1) 2013 年 3 月 20 日

Page 61: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

ロジック最適化

opt_design

現在のネッ ト リ ス ト を 適化します。 メモ リ内のデザインを読み込み、 適化して、 適化されたデザインを メモ リに戻します。

opt_design の構文

opt_design [-retarget] [-propconst] [-sweep] [-bram_power_opt] [-remap] [-resynth_area] [-directive <arg>] [-quiet] [-verbose]

opt_design のスクリプ ト例

# Run logic optimization, save results in a checkpoint, report timing estimatesopt_design -retarget -propconst -sweepwrite_checkpoint -force $outputDir/post_optreport_timing_summary -file $outputDir/post_opt_timing_summary.rpt

このサンプル スク リプ トでは、 メモ リ内のデザインにロジッ ク 適化を実行し、 メモ リに書き込みます。 適化後にデザイン チェッ クポイン ト を保存し、 タイ ミ ング サマリ レポート を生成して指定のファイルに記述します。

最適化タイプの制限

適化タイプを制限するには、 コマンド ライン オプシ ョ ンを使用します。たとえば、デフォルトのブロ ッ ク RAM 適化を実行しないよ うにするには、 次のコマンドを使用します。

opt_design -retarget -propconst -sweep

-directive オプシ ョ ンの使用

-directive オプシ ョ ンを使用する と、 opt_design コマンドを異なるモードで実行できます。 一度に指定できるモードは 1 つのみです。-directive オプシ ョ ンは、ほかのオプシ ョ ンと共に使用するこ とはできません。次の設定があ り ます。

• Explore : 適化を複数回実行します。

• ExploreArea : エリ アを縮小するこ とを優先して 適化を複数回実行します。

• AddRemap : デフォルトのロジッ ク 適化フローを実行し、LUT 再マップを含めてロジッ ク レベルを削減します。

-verbose オプシ ョ ンの使用

適化結果を解析するには、 -verbose オプシ ョ ンを使用し、 opt_design の 適化の影響を受けたロジッ クの詳細を確認します。

-verbose オプシ ョ ンを使用する と大量のメ ッセージが表示されるので、 デフォル ト ではオフになっています。-verbose オプシ ョ ンは、 有益だと思われる場合に使用して ください。

重要 : opt_design コマンドは、 メモ リ内のデザインに対して実行されます。 複数回実行した場合、 前回の run の結果が 適化されます。

インプリ メンテーシ ョ ン japan.xilinx.com 61UG904 (v2013.1) 2013 年 3 月 20 日

Page 62: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

消費電力の最適化

ロジック最適化制約

1. ロジッ ク 適化中、 DONT_TOUCH および MARK_DEBUG プロパティが認識され、 これらのプロパティが設定されているネッ トは削除されません。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) を参照して ください。

MARK_DEBUG は、 Vivado ロジッ ク解析を使用してプローブする予定のネッ トに設定します。 MARK_DEBUG の設定されたネッ トはスライス境界に接続され、 プローブできる状態になり ます。

DONT_TOUCH は 下位セルに設定し、 適化されないよ うにします。階層セルに DONT_TOUCH を設定する とセルの境界は保持されますが、 セル内で 適化が実行される可能性はあ り ます。

重要 : ISE Design Suite からデザイ ンを移行した場合、 KEEP および KEEP_HIERARCHY 制約が自動的にDONT_TOUCH 制約に変換されます。

消費電力の最適化ク ロ ッ ク ゲーティングを使用して、 ダイナミ ッ ク消費電力を 適化します (オプシ ョ ン)。消費電力の 適化は、プロジェク ト モードおよび非プロジェク ト モード両方で使用でき、 ロジッ ク 適化後または配置後に実行してデザインの消費電力を 適化できます。 消費電力の 適化には、 ク ロ ッ クやロジッ クを変更せずに FPGA デザインのダイナミ ッ ク消費電力を削減するク ロ ッ ク ゲーティング ソ リ ューシ ョ ンが含まれます。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力解析および 適化』 (UG907)を参照してください。

Vivado 消費電力解析

Vivado ツールでは、 レガシ IP ブロ ッ クおよびサードパーテ ィ IP ブロ ッ クを含む、 デザイン全体が解析され、 各クロッ ク サイクルでの結果に影響しないレジスタからの出力ロジッ クが特定されます。

クロック イネーブル (CE) の使用

Vivado 消費電力 適化では、 ザイ リ ンクス 7 シ リーズ FPGA デバイスのロジッ クに多数含まれるク ロ ッ ク イネーブル (CE) が利用されます。細粒度クロッ ク ゲーティングまたはロジッ ク ゲーティング信号が作成され、 余分なスイ ッチイング アクティビティが除去されます。

また、フ リ ップフロ ップ レベルでは、CE はフ リ ップフロ ップの D 入力とフ ィードバッ ク Q 出力のいずれかを選択するのではなく、 ク ロ ッ クをゲーティングしているので、 CE 入力のパフォーマンスが向上するだけではなく、 ク ロ ックの消費電力も削減されます。

クロック ゲーティング X-Ref Target - Figure 2-1

図 2-1 : クロック ゲーティング

インプリ メンテーシ ョ ン japan.xilinx.com 62UG904 (v2013.1) 2013 年 3 月 20 日

Page 63: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

消費電力の最適化

ク ロ ッ ク ゲーテ ィ ングでは、 シンプル デュアル ポー ト または完全なデュアル ポート モード両方の専用ブロ ッ クRAM の消費電力も削減されます (図 2-2)。

これらのブロッ クには、 次のイネーブルが含まれます。

• アレイ イネーブル

• ラ イ ト イネーブル

• 出力レジスタのク ロッ ク イネーブル

節約される消費電力のほとんどはアレイ イネーブルの使用によるもので、データが書き込まれず、出力が使用されないと きに、 消費電力を削減する機能がインプリ メン ト されます。

power_opt_designpower_opt_design コマンドは、 デザインを解析して 適化します。 デフォルトでは、 デザイン全体が解析および

適化されます。 ク ロ ッ ク ゲーティングも実行され、 消費電力が 適化されます。

power_opt_design の構文

power_opt_design [-quiet] [-verbose]

デザイン全体を解析および 適化しない場合は、 set_power_opt を使用して 適化を設定します。 このコマンドを使用する と、 適化にセル タイプまたは階層を含めるか、 除外するかなどを設定できます。

set_power_opt コマンドの構文は、 次のとおりです。

set_power_opt [-include_cells <args>] [-exclude_cells <args>] [-clocks <args>][-cell_types <args>] [-quiet] [-verbose]

注記 : opt_design を使用した場合、 ブロッ ク RAM の消費電力 適化は実行されません。

X-Ref Target - Figure 2-2

図 2-2 : BRAM イネーブルの利用

インプリ メンテーシ ョ ン japan.xilinx.com 63UG904 (v2013.1) 2013 年 3 月 20 日

Page 64: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配置

配置Vivado 配置エンジンによ りネッ ト リ ス トのセルがターゲッ ト デバイスの特定サイ ト に配置されます。 ほかのインプリ メンテーシ ョ ン コマンド と同様、 メモ リ内のデザインに対して処理が実行されます。

デザイン配置の最適化

Vivado の配置エンジンでは、 次を 適化するよ う配置が実行されます。

• タイ ミ ング スラ ッ ク : タイ ミ ング ク リ ティカルなパスのセルの配置は、負のスラ ッ クが 小限になるよ う選択されます。

• 配線長 : 配線長を 小限に抑えるよ うに、 全体的な配置が実行されます。

• 密集 : ピンの密集度が監視され、 配線の密集を削減するためセルが分散されます。

デザイン ルール チェ ック

配置を開始する前に、 デザイン ルール チェ ッ ク (DRC) (report_drc で選択された DRC およびビル ト インの内部DRC) が実行されます。内部 DRC では、LOC 制約の設定されていない Memory Interface Generator (MIG) セル、競合する IOSTANDARD が設定された I/O バンクなど、 多数の問題がレポート されます。

クロックおよび I/O 配置

DRC の実行後、 ク ロ ッ クおよび I/O セルが配置されてからその他のロジッ ク セルが配置されます。 ク ロ ッ ク と I/O セルは、選択したザイ リ ンクス デバイスに特定の複雑な配置規則によって関連しているこ とがよ くあるので、同時に配置されます。

配置のターゲッ ト

この時点では、 次が配置のターゲッ ト とな り ます。

• I/O ポートおよびロジッ ク

• グローバルおよびローカル クロ ッ ク バッファー

• ク ロ ッ ク マネージメン ト タイル (MMCM および PLL)

• ギガビッ ト ト ランシーバー (GT) セル

固定されていないロジックの配置

配置のこの段階では、 固定されていないロジッ クを配置する際 LOC プロパティや Pblock 割り当てなどの物理制約に従います。 既存の LOC 制約は、 ネッ ト リ ス トの接続およびデバイス サイ トに対して有効かど うかがチェッ ク されます。 MIG や GT のよ う な一部の IP は、 デバイス専用の配置制約を使用して生成されます。

重要 : デバイスの I/O アーキテクチャのために、 LOC プロパティで LOC が適用されていないセルが制約されるこ とがよ くあ り ます。 入力ポートに LOC 制約が設定されている場合、 関連する I/O バッファー、 IDELAY、 ILOGIC の位置も固定されます。 競合する LOC 制約は、 入力パスの個々のセルには適用できません。 出力および GT 関連のセルの場合も同様です。

インプリ メンテーシ ョ ン japan.xilinx.com 64UG904 (v2013.1) 2013 年 3 月 20 日

Page 65: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配置

クロック リソースの配置規則

ク ロ ッ ク リ ソースの配置は、『7 シ リーズ FPGA ク ロ ッ ク リ ソース ユーザー ガイ ド』 (UG472) [参照 11] に示す配置規則に従う必要があ り ます。たとえば、グローバル ク ロ ッ クを駆動する入力はクロ ッ ク兼用 I/O サイ トに配置する必要があ り、デバイスの上半分または下半分のどちらか同じ側に配置する必要があ り ます。これらのク ロッ ク配置規則も、論理ネッ ト リ ス トの接続およびデバイス サイ トに対して有効かど うかがチェッ ク されます。

クロックおよび I/O を配置できない場合

ク ロ ッ クおよび I/O の適切な配置が見つからなかった場合は、 違反のあった配置規則と、 影響を受けたセルの簡単な説明が表示されます。 まずサイ トにセルが暫定的に配置され、 その後配置問題を解決するために別のセルが配置されるこ とがあ り ます。 暫定的な配置によ り、 ク ロ ッ クおよび I/O 配置のエラーの原因がわかるこ とがよ くあ り ます。 暫定的な配置でエラーになったセルを手動で配置する と、 配置が改善するこ とがあ り ます。

ヒン ト : place_ports コマンドを実行してク ロッ クおよび I/O を配置してから、place_design コマンドを実行します。ポート配置でエラーが発生した場合、 配置はメモ リに保存され、 エラーを解析できます。 詳細は、 Vivado Tcl プロンプ トから place_ports -help を実行してください。

グローバル配置、 詳細配置、 パッキングおよび有効化

ク ロ ッ クおよび I/O を配置した後、 次の配置プロセスが実行されます。

• グローバル配置

• 詳細配置

• パッキングおおよび有効化

配置後、 タイ ミ ング サマリ (概算) がログ ファ イルに出力されます。

Phase 12 Placer ReportingINFO: [Place-100] Post Placement Timing Summary | WNS=-0.08836| TNS=-1.479 |

説明 :

° WNS : ワース ト ネガティブ スラ ッ ク

° TNS : トータル ネガティブ スラ ッ ク

推奨 : 配置後に report_timing を実行し、 ク リ ティカル パスをチェッ ク して ください。 ネガティブ スラ ッ クが大きいパスは、 タイ ミ ング クロージャを達成するため、手動配置、制約の変更、 またはロジッ クの再構築が必要な場合があ り ます。

インプリ メンテーシ ョ ン japan.xilinx.com 65UG904 (v2013.1) 2013 年 3 月 20 日

Page 66: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配置

place_designplace_design コマンドは、 ポートおよびセルを自動的に配置します。 ほかのインプ リ メンテーシ ョ ン コマンド と同様、 place_design コマンドはインク リ メンタルに実行されます。 部分的に配置されているデザインに対しては、始めから配置し直すのではなく、 既存の配置が開始点と して使用されます。

place_design の構文

place_design [-directive <arg>] [-no_timing_driven] [-quiet] [-verbose]

place_design のスクリプ ト例

# Run placement, save results to checkpoint, report timing estimates place_designwrite_checkpoint -force $outputDir/post_placereport_timing_summary -file $outputDir/post_place_timing_summary.rpt

このサンプル スク リプ トは、 メモ リ内のデザインを配置して、 配置後にデザイン チェッ クポイン ト を保存し、 タイミ ング サマリ レポート を生成して指定のファイルに記述します。

-directive オプシ ョ ンの使用

-directive オプシ ョ ンを使用する と、 place_design コマンドを異なるモードで実行できます。 一度に指定できるモードは 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ンと共に使用するこ とはできません。

配置の -directive オプシ ョ ンで指定可能なモード

配置は通常デザインの全体的なパフォーマンスに も影響するので、-directive オプシ ョ ンで指定可能なモードが多数あ り ます。 表 2-2 に、 どのモードがどのよ う なデザインに効果的かを示します。

表 2-2 : -directive オプシ ョ ンのガイ ド ライン

モード 効果が得られるデザイン

BlockPlacement ブロ ッ ク RAM または DSP ブロ ッ ク、 あるいはその両方を多数含むデザイン

NetDelay 遠距離のネッ ト接続を含むデザインおよび多数の異なるモジュールにファンアウ トするネッ トを含むデザイン

SpreadLogic 接続が多数ある密集が発生しやすいデザイン

ExtraPostPlacementOpt すべてのタイプのデザイン

SSI 密集を緩和したり タイ ミ ングを向上するため、異なる分割方法が有益である可能性のある SSI デザイン

インプリ メンテーシ ョ ン japan.xilinx.com 66UG904 (v2013.1) 2013 年 3 月 20 日

Page 67: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配置

-directive オプシ ョ ンで指定可能なモード

• Explore : 詳細配置および配置後の 適化のエフォート を増加します。

• WLDrivenBlockPlacement : RAM および DSP ブロ ッ クをワイヤ長に基づいて配置します。 タイ ミ ング ド リブンの配置を無効にし、 ブロッ ク との接続距離を 短にするよ う配置します。

• LateBlockPlacement : RAMB および DSP ブロ ッ クの詳細配置を、 配置の 終段階で実行します。 通常、 ブロ ッ クは配置プロセスの初期段階で有効なサイ トに割り当てられます。 その代わり、 まず大まかなブロ ッ ク配置を実行し (適切な列に揃っていない可能性もあ り )、 詳細配置中にブロ ッ クを有効なサイ トに配置します。

• ExtraNetDelay_high : ファンアウ トが大き く距離の長いネッ トの予測遅延を増加します。 high、 medium、 low の 3つのレベルがサポート されます。 ExtraNetDelay_high では増加量が も大き くな り ます。

• ExtraNetDelay_medium : ファンアウ トが大き く距離の長いネッ トの予測遅延を増加します。high、medium、 low の3 つのレベルがサポート されます。 ExtraNetDelay_medium はデフォルト レベルの増加量を適用します。

• ExtraNetDelay_low : ファンアウ トが大き く距離の長いネッ トの予測遅延を増加します。 high、 medium、 low の 3つのレベルがサポート されます。 ExtraNetDelay_low では増加量が も小さ くな り ます。

• SpreadLogic_high : ロジッ クをデバイス全体に分散します。 high、 medium、 low の 3 つのレベルがサポート されます。 SpreadLogic_high では分散度が も高くな り ます。

• SpreadLogic_medium : ロジッ クをデバイス全体に分散します。 high、 medium、 low の 3 つのレベルがサポート されます。 SpreadLogic_medium では分散度が中程度になり ます。

• SpreadLogic_low : ロジッ クをデバイス全体に分散します。 high、 medium、 low の 3 つのレベルがサポート されます。 SpreadLogic_low では分散度が も低くな り ます。

• ExtraPostPlacementOpt : 配置後の 適化のエフォート を増加します。

• SSI_ExtraTimingOpt : SLR 間でのタイ ミ ング ド リブンの分割に代替アルゴ リズムを使用します。

• SSI_SpreadSLLs : SLR 間で分割を実行し、 接続の多い領域に追加のエリアを割り当てます。

• SSI_BalanceSLLs : SLR 間で SLL のバランスが取られるよ うに SLR 間で分割を実行します。

• SSI_BalanceSLRs : SLR 間でセルの数のバランスが取られるよ うに SLR 間で分割を実行します。

• SSI_HighUtilSLRs : 各 SRL でロジッ クを近くに配置するよ う指定します。

• RuntimeOptimized : 反復回数を少なく し、デザイン パフォーマンスよ り も実行時間を短縮するこ とを優先します。

• Quick : も高速な、 タイ ミ ング ド リブンでない、 有効なデザインを得るために 低限の配置を実行します。

• Default : place_design をデフォルト設定で実行します。

ヒン ト : -directive オプシ ョ ンを使用して、 デザインの異なる配置オプシ ョ ンを試してみてください。

-no_timing_driven オプシ ョ ンの使用

-no_timing_driven オプシ ョ ンは、 デフォルトのタイ ミ ング ド リブン配置アルゴ リ ズムをディ スエーブルにします。 このオプシ ョ ンを使用する と ワイヤの長さに基づいて高速な配置が実行されますが、 タイ ミ ング制約は無視されます。

-verbose オプシ ョ ンの使用

配置結果をよ り詳細に解析するには、 -verbose オプシ ョ ンを使用して、 place_design コマンドによるセルおよび I/O 配置の詳細を確認します。

-verbose オプシ ョ ンを使用する と大量のメ ッセージが表示されるので、 デフォル ト ではオフになっています。-verbose オプシ ョ ンは、 有益だと思われる場合に使用して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 67UG904 (v2013.1) 2013 年 3 月 20 日

Page 68: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

物理最適化

物理最適化物理 適化では、 デザインの負のスラ ッ ク パスに対してタイ ミ ング ド リブンの 適化が実行されます。 複製、 リ タイ ミ ング、 ホールド違反の修正、 および配置の向上が実行されます。 物理 適化では、 ネッ ト リ ス トおよび配置の必要な変更が自動的に実行されます。

使用可能な物理最適化

Vivado ツールでは、 メモ リ内のデザインに対して次の物理 適化を実行できます。

• ファンアウ トの大きいネッ トの 適化 (デフォルト )

• 配置ベースの 適化 (デフォルト )

• リ ワイヤ (デフォルト )

• ク リ ティカル セルの 適化 (デフォルト )

• DSP レジスタの 適化 (デフォルト )

• BRAM レジスタの 適化 (デフォルト )

• ホールド違反の修正

• リ タイ ミ ング

• ネッ トの強制的な複製

重要 : 特定の 適化を明示的に指定する と、 ほかの 適化はディ スエーブルになり ます。

ファンアウトの大きいネッ トの最適化 (デフォルト )

ファンアウ トの大きいネッ トの 適化は、 次のよ うに実行されます。

1. 負のスラ ッ クが WNS のある割合以内であるファンアウ トの大きいネッ トは、 複製が考慮されます。

2. ロードはその配置によ り クラスター化され、各ロード ク ラスターに対してド ライバーが複製および配置されます。

3. タイ ミ ングが再解析され、 タイ ミ ングが改善した場合はロジッ クの変更が確定されます。

4. 複製後、 複製が必要なファンアウ トの大きいネッ トがあるかど うか、 デザインが再びチェッ ク されます。 ファンアウ トの大きいネッ トがまだある場合、 な くなるまで複製プロセスが続行されます。

配置ベースの最適化 (デフォルト )

ク リ ティカル パスのすべてのセルをワイヤ遅延を削減するよ うに配置し直します。

リワイヤ (デフォルト )

LUT の接続をスワップしてク リ ティカル信号のロジッ ク レベル数を削減するこ とによ り、 ク リ ティカル パスを 適化します。 LUT 論理式を変更してデザインの機能を保持します。

ク リテ ィ カル セルの最適化 (デフォルト )

タイ ミ ングが満たされないセルを複製します。 特定のセルのロード同士が離れている場合、 セルが複製され、 新しいド ラ イバーがロード ク ラスターの近くに配置されます。 この 適化は、 パスがワース ト ネガティブ スラ ッ クのある割合以内でタイ ミ ングを満たしていなければ、 ファンアウ トが大き くな くても実行されます。

インプリ メンテーシ ョ ン japan.xilinx.com 68UG904 (v2013.1) 2013 年 3 月 20 日

Page 69: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

物理最適化

DSP レジスタの最適化 (デフォルト )

DSP セルのレジスタをロジッ ク アレイに移動したり、 ロジッ クを DSP セルに移動したりするこ とによ り、 ク リ ティカル パスの遅延を削減します。

BRAM レジスタの最適化 (デフォルト )

BRAM セルのレジスタをロジッ ク アレイに移動したり、 ロジッ クを BRAM セルに移動したりするこ とによ り、 ク リティカル パスの遅延を向上します。

ホールド違反の修正

ホールド ク リ ティカル パスの遅延を増加するこ とによ り、 ホールド違反の大きいパスのスラ ッ クを向上します。

リ タイ ミ ング

レジスタを組み合わせロジッ クの前後に移動するこ とによ り、 ク リ ティカル パスの遅延を向上します。

ネッ トの強制的な複製

タイ ミ ング スラ ッ クにかかわらず、ネッ トのド ラ イバーを強制的に複製します。複製はロードの配置に基づいて実行され、 複製が十分かど うかを解析する必要があ り ます。 さ らに複製が必要な場合は、 コマンドを複数回実行するこ とによ りネッ ト を繰り返し複製できます。 タイ ミ ングは無視されますが、 複製を実行するには、 ネッ トがタイ ミ ング制約の設定されたパスに含まれている必要があ り ます。

物理最適化レポート

物理 適化では、 適化で処理された各ネッ ト と、 実行された 適化のサマリがレポート されます。

ヒン ト : 複製されたオブジェク トの名前は、 元のオブジェク ト名に _replica と複製されたオブジェク ト カウン トが付いたものになり ます。

phys_opt_design

重要 : ファンアウ トの大きいネッ トのタイ ミ ング ド リブン複製などの物理 適化を実行し、タイ ミ ング結果を向上します (オプシ ョ ン)。 配線済みデザインに対して phys_opt_design を実行するこ とはできません。

phys_opt_design の構文

phys_opt_design [-fanout_opt] [-placement_opt] [-rewire] [-critical_cell_opt] [-dsp_register_opt] [-bram_register_opt] [-hold_fix] [-retime] [-force_replication_on_nets <args>] [-directive <arg>] [-quiet] [-verbose]

phys_opt_design のスクリプ ト例

# Run physical optimization, save results to checkpoint, report timing estimates phys_opt_designwrite_checkpoint -force $outputDir/post_phys_opt.dcpreport_timing_summary -file $outputDir/post_phys_opt_timing_summary.rpt

インプリ メンテーシ ョ ン japan.xilinx.com 69UG904 (v2013.1) 2013 年 3 月 20 日

Page 70: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

物理最適化

このサンプル スク リプ トは、 メモ リ内のデザインに物理 適化を実行し、 メモ リに書き込みます。物理 適化後にデザイン チェッ クポイン ト を保存し、 タイ ミ ング サマリ レポート を生成して指定のファイルに記述します。

-directive オプシ ョ ンの使用

-directive オプシ ョ ンを使用する と、 phys_opt_design コマンドを異なるモードで実行できます。 一度に指定できるモードは 1 つのみです。-directive オプシ ョ ンは、ほかのオプシ ョ ンと共に使用するこ とはできません。次の設定があ り ます。

• Explore : 適化を複数回実行し、 ホールド違反の修正およびファンアウ トの大きいネッ トの複製を含め、 異なるアルゴ リズムを実行します。

• AggressiveExplore : Explore と似ていますが、異なる 適化アルゴ リズムを使用し、よ り厳しい目標を設定します。

• AlternateReplication : ク リ ティカル セルの複製に異なるアルゴ リズムを使用します。

• AggressiveFanoutOpt : ファンアウ トに関連する 適化に異なるアルゴ リズムを使用し、 よ り厳しい目標を設定します。

• AlternateDelayModeling : ネッ ト遅延の予測に代替アルゴ リズムを使用して、 すべての 適化を実行します。

• AddRetime : デフォルトの phys_opt_design フローを実行し、 レジスタのリ タイ ミ ングを追加します。

• Default : phys_opt_design をデフォルト設定で実行します。

-verbose オプシ ョ ンの使用

物理 適化の結果を解析するには、 -verbose オプシ ョ ンを使用し、 phys_opt_design で実行された 適化の詳細を確認します。

-verbose オプシ ョ ンを使用する と大量のメ ッセージが表示されるので、 デフォル ト ではオフになっています。-verbose オプシ ョ ンは、 有益だと思われる場合に使用して ください。

重要 : phys_opt_design コマンドは、 メモ リ内のデザインに対して実行されます。 2 回実行した場合、 1 回目の runの結果が 適化されます。

物理最適化制約

物理 適化中、 DONT_TOUCH および MARK_DEBUG プロパティが認識され、 これらのプロパティが設定されているネッ ト またはセルには 適化は実行されません。 また、 Pblock の割り当てに従い、 複製されたロジッ クでも元のロジッ クの Pblock 割り当てが適用されます。 タイ ミ ング例外も、 元のセルから複製セルにコピーされます。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) を参照して ください。

MARK_DEBUG は、 Vivado ロジッ ク解析を使用してプローブする予定のネッ トに設定します。 MARK_DEBUG の設定されたネッ トはスライス境界に接続され、 プローブできる状態になり ます。

DONT_TOUCH は 下位セルに設定し、 適化されないよ うにします。階層セルに DONT_TOUCH を設定する とセルの境界は保持されますが、 セル内で 適化が実行される可能性はあ り ます。

重要 : ISE Design Suite からデザイ ンを移行した場合、 KEEP および KEEP_HIERARCHY 制約が自動的にDONT_TOUCH 制約に変換されます。

インプリ メンテーシ ョ ン japan.xilinx.com 70UG904 (v2013.1) 2013 年 3 月 20 日

Page 71: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線

配線Vivado 配線は、 配置済みデザインに対して配置を実行し、 ホールド タイム違反を解決するため配線済みデザインの

適化を実行します。 デフォルトではタイ ミ ング ド リブンですが、 これはディ スエーブルにできます。

配線モード

配線ツールは、 次の 2 つモードで実行できます。

• 通常モード

• 再配線モード

通常モード

これがデフォルトです。 配置済みデザインから開始し、 すべてのネッ トの配線を試みます。

配線済みの次のいずれかのデザインから開始します。

• 未配線

• 一部配線済み

• 完全に配線済み

route_design コマンドはインク リ メ ンタルに実行され、 部分的に配線されているデザインに対しては、 始めから配線し直すのではなく、 既存の配線が開始点と して使用されます。

再配線モード

ほかのインプリ メンテーシ ョ ン コマンド と同様、配線はインク リ メンタルに実行され、既存の配線を破棄して 初から配線し直すのではなく、 既存の配線を保持して続行します。

推奨 : 配線初期化には時間がかかるので、 再配線モードは配線を複数回実行する際に使用します。

再配線モードを使用しない場合、各配線後に配線機能が終了してメモ リがク リ アされ、配線を実行するごとに配線機能が初期化されます。 配線を複数回実行する場合、 これは時間がかかり ます。

再配線モードでは、 配線が再び実行されるこ とを考慮して、 メモ リにデータ構造が保持されるので、 ネッ トの配線解除および配線などのコマンドをすぐに実行できます。

デザイン ルール チェ ック 配線を開始する前に、 次のデザイン ルール チェッ ク (DRC) が実行されます。

• report_drc で選択された DRC

• Vivado 配線エンジンに含まれるビルト インの DRC

インプリ メンテーシ ョ ン japan.xilinx.com 71UG904 (v2013.1) 2013 年 3 月 20 日

Page 72: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線

配線の優先順位

Vivado 配線では、 まず次のよ うなグローバル リ ソースが配線されます。

• ク ロ ッ ク

• リセッ ト

• I/O

• その他の専用リ ソース

このデフォル トの優先順位は Vivado 配線にビルト インされています。 その後、 タイ ミ ングがどれだけク リ ティカルかに基づいて、 データ信号に優先順位が付けられます。

不適切なタイ ミング制約の影響

配線前のフローや固定配線制約を使用する場合、 タイ ミ ング制約が適切でないと、一部の信号が 適に配線されないこ とがあるので、 注意が必要です。

次に、 よ くある不適切なタイ ミ ング制約の例を示します。

• ク ロ ッ ク ド メ インをまたがるパスや、 ホールド タイ ミ ングによ り配線遅延が追加される複数サイ クル パス

• 密集しているエリ ア。 これは RTL 合成のファンアウ ト 適化や物理 適化によ り解決できます。

適に配線されていないネッ トがある場合、問題は多くの場合間違ったタイ ミ ング制約です。配線設定を変更してみる前に、制約が適切であるかど うかを確認してください。配線の前の配置済みデザインのタイ ミ ング レポート を参照して、 タイ ミ ングと制約を確認します。

推奨 : 単に配線リ ソースを増やすのではなく、制約をク リーンアップするこ と、 または RTL を変更するこ とを考慮して ください。

route_design現在のデザインに含まれるネッ ト を配線し、 ターゲッ ト パーツでのロジッ ク接続を完成させます。

route_design の構文

route_design [-unroute] [-re_entrant <arg>] [-nets <args>] [-physical_nets][-pin <arg>] [-directive <arg>] [-no_timing_driven][-preserve] [-delay] [-free_resource_mode] -max_delay <arg> -min_delay <arg>[-quiet] [-verbose]

-directive オプシ ョ ンの使用

-directive オプシ ョ ンを使用する と、 route_design コマンドを異なるモードで実行できます。 一度に指定できるモードは 1 つのみです。-directive オプシ ョ ンは、ほかのオプシ ョ ンと共に使用するこ とはできません。次の設定があ り ます。

• Explore : 初期配線の後、 異なるク リ ティカル パス配線を試します。

• NoTimingRelaxation : 配線を完了するためにタイ ミ ングを緩和しないよ うにします。配線でタイ ミ ング満たすのが困難である場合、 元のタイ ミ ング制約を満たすため実行時間が長くな り ます。

• MoreGlobalIterations : 終段階だけでなく、 すべての段階で詳細なタイ ミ ング解析を使用し、 タイ ミ ングの向上が少しであってもグローバル反復を実行します。

インプリ メンテーシ ョ ン japan.xilinx.com 72UG904 (v2013.1) 2013 年 3 月 20 日

Page 73: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線

• HigherDelayCost : 配線の内部コス ト関数を調整して反復実行で遅延に焦点を置き、 実行時間が長くなる代わりにパフォーマンスを向上します。

• AdvancedSkewModeling : 配線のすべての段階でよ り正確なスキュー モデルを使用します。 スキューの大きいクロッ ク ネッ ト ワークでデザインのパフォーマンスが向上する場合があ り ます。

• RuntimeOptimized : 反復回数を少なく し、デザイン パフォーマンスよ り も実行時間を短縮するこ とを優先します。

• Quick : も高速な、 タイ ミ ング ド リブンでない、 有効なデザインを得るために 低限の配置を実行します。

• Default : route_design をデフォルト設定で実行します。

よりよい配線結果を得るために実行時間を長くする

次の -directive 設定を使用する と、実行時間が長くなる代わりによ り よい配線結果が得られる可能性があ り ます。

• NoTimingRelaxation

• MoreGlobalIterations

• HigherDelayCost

• AdvancedSkewModeling

通常モード配線のサンプル スクリプ ト

# Route design, save results to checkpoint, report timing estimates route_designwrite_checkpoint -force $outputDir/post_routereport_timing_summary -file $outputDir/post_route_timing_summary.rpt

このサンプル スク リプ トは、 メモ リ内のデザインを配線し、 メモ リに書き込みます。 配置後にデザイン チェッ クポイン ト を保存し、 タイ ミ ング サマリ レポート を生成して指定のファイルに記述します。

通常モード の配線は、 イ ンプ リ メ ンテーシ ョ ン run の一部と し て、 または Tcl ス ク リ プ ト の一部 と し てplace_design の後に route_design コマンドを使用して実行します。

配線が終了する と、 リ ソース タイプ別に使用される配線リ ソースの統計およびタイ ミ ング サマリが表示されます。

[Route-20] Post Routing Timing Summary | WNS=0.0585 | TNS=0 | WHS=0 | THS=0 |

説明 :

° WNS : ワース ト ネガティブ スラ ッ ク

° TNS : トータル ネガティブ スラ ッ ク

° WHS : ワース ト ホールド スラ ッ ク

° THS : トータル ホールド スラ ッ ク

再配線モード配線のサンプル スクリプ ト 1

# route a few critical netsroute_design -delay -nets [get_nets myPreRoutes*] # Complete full routeroute_design

-nets または -pin のよ う な再配線オプシ ョ ンを使用する と、 再配線モードにな り ます。

インプリ メンテーシ ョ ン japan.xilinx.com 73UG904 (v2013.1) 2013 年 3 月 20 日

Page 74: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線

再配線モードの配線は通常、 次のよ うな特定の配線問題を修正するためにインタラ クティブに実行します。

• 完全に配線する前に、 ク リ ティカル ネッ トおよびロ ッ ク ダウン リ ソースを事前に配線

• ク リ ティカルではないネッ トの配線を手動で解除して、ク リ ティカル ネッ トによ り多くの配線リ ソースを使用できるよ うにする

初の再配線コマンドでは、 配線機能が初期化されてから、 ク ロ ッ クなどの重要なネッ トが配線されます。 これにより、 配線で次が実行できるよ うにな り ます。

• タイ ミ ング解析

• タイ ミ ング ド リブンの配線

• ホールド違反の修正

再配線モードがオンになった後は、 実行された配線および未配線の結果がメモリに保存されます。

再配線モードの終了

再配線モードを終了するには、完全な route_design コマンド を実行するか、次のコマンドを使用してオフにします。

route_design -re_entrant off

再配線モード配線のサンプル スクリプ ト 2

# Get the nets in the top 10 critical paths, assign to $preRoutes% set preRoutes [get_nets -of [get_timing_paths -max_paths 10]]% route_design -nets [get_nets $preRoutes] -delay

# Unroute all the nets in u0/u1, and route the critical nets firstroute_design -unroute [get_nets u0/u1/*] % route_design -delay -nets [get_nets $myCritNets]route_design -effort_level high

このサンプル スク リプ トは、 次を実行します。

• get_timing_paths を使用して上位 10 個のク リティカル パスを特定します。

• get_cells -of を使用してそれらのク リ ティカル パスのネッ ト オブジェク ト ($preRoutes) を作成します。

• これらのネッ ト を 初に配線します。

それらのネ ッ ト の配線が完了した後、 セル u0/u1 のすべてのネ ッ ト の配線を解除し て、 ク リ テ ィ カル ネ ッ トmyCritNets を配線し直し、 後に残りの未配線ネッ ト を配線します。

Tcl レポート コマンドおよびそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』(UG835) を参照して ください。

表 2-3 : 配線中のデザイン解析で使用されるコマンド

コマンド 機能

report_route_status ネッ トの配線ステータスをレポート します。

report_timing パス エンドポイン ト解析を実行します。

インプリ メンテーシ ョ ン japan.xilinx.com 74UG904 (v2013.1) 2013 年 3 月 20 日

Page 75: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

第 3 章

配線およびロジックの変更

配線およびロジックの変更についてザイ リ ンクス Vivado® Design Suite では、 インプ リ メンテーシ ョ ン フローで配線およびロジッ クを変更するのにいくつかの方法があ り ます。 これらの方法を使用する と、 配線および遅延を厳密に制御でき、 ロジッ クをすばやく変更できます。

• 配線の変更

• ロジッ クの変更

配線の変更デザインの配線を変更は、 [Device] ビューから実行できます。 個々のネッ トに対して配線の解除、 配線、 配線の固定を実行できます。

• 配線の解除および配線 : 配線を再配線モードで起動し、 ネッ トに対して操作を実行します。 詳細は、 第 2 章 「インプリ メンテーシ ョ ン コマンド」 の 72 ページの 「route_design」 を参照して ください。

• 配線の固定 : 配線し、配線データベースで固定とマークし、ネッ トのド ラ イバーおよびロードの LOC および BELを固定します。 ネッ ト を手動で敗戦する配線割り当てモード も使用できます。 詳細は、 76 ページの 「手動配線」を参照して ください。

ヒン ト : ネッ ト関連のコマンドはすべて、 ネッ トのポップアップ メニューから実行できます。

インプリ メンテーシ ョ ン japan.xilinx.com 75UG904 (v2013.1) 2013 年 3 月 20 日

Page 76: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

手動配線

手動配線を使用する と、 ネッ トに特定の配線リ ソースを選択できます。 これによ り、 信号の配線パスを完全に制御できます。手動配線では、 route_design は実行されません。配線は配線データベースで直接アップデート されます。

手動配線は、 ネッ トの遅延を厳密に制御する場合に使用します。 たとえば、 ソース同期インターフェイスで、 デバイスの受信レジスタまでの配線遅延の変動を 小限に抑える場合などです。 これには、 レジスタおよび I/O に LOC および BEL 制約を設定し、 ネッ ト を手動配線するこ とによ り IOB からレジスタまでの配線遅延を制御します。

手動配線を実行するには、デバイスのインターコネク ト アーキテクチャに関する詳細な知識が必要です。手動配線を実行する信号数を制限し、 短い接続にのみ使用するこ とをお勧めします。

手動配線での規則

手動配線では、 次の規則に従ってください。

• ド ラ イバーおよびロードに LOC 制約と BEL 制約が必要です。

• 手動配線では分岐は使用できませんが、分岐点から新しい手動配線を開始するこ とによ り分岐をインプ リ メン トできます。

• LUT ロードのピンを固定する必要があ り ます。

• ド ラ イバーに接続されていないロードに配線する必要があ り ます。

• 完全な接続のみが許容されます。 アンテナは許容されません。

• 既存の固定されていない配線済みネッ ト とオーバーラ ップさせる こ とができます。 手動配線が完了した後route_design を実行し、 ネッ トのオーバーラ ップによる競合を解決して ください。

X-Ref Target - Figure 3-1

図 3-1 : 配線の変更

インプリ メンテーシ ョ ン japan.xilinx.com 76UG904 (v2013.1) 2013 年 3 月 20 日

Page 77: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

配線割り当てモードの開始

配線割り当てモードを開始するには、 次の手順に従います。

1. [Device] ビューを開きます。

2. 配線が必要なネッ ト を選択します。

° 未配線のネッ トは、 赤色のフライラ インで表示されます。

° 部分的に配線されたネッ トは、 黄色で表示されます。

3. 右ク リ ッ ク して [Enter Assign Routing Mode] をク リ ッ ク します。

[Target Load Cell Pin] ダイアログ ボッ クスが開きます。

4. 配線先のロード セル ピンを選択します (オプシ ョ ン)。

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

手動配線モードになり ました。 [Device] ビューの横に [Routing Assignment] ウ ィンド ウが表示されます (図 3-2)。

[Routing Assignment] ウィンドウ

[Routing Assignment] ウ ィンド ウには、 次の 2 つのセクシ ョ ンがあ り ます。

• [Assigned Nodes]

• [Neighbor Nodes]

[Assigned Nodes] には、 既に配線が割り当てられているモードを示します。 割り当済みの各ノードが 1 行に表示されます。

X-Ref Target - Figure 3-2

図 3-2 : [Routing Assignment] ウィ ンドウ

インプリ メンテーシ ョ ン japan.xilinx.com 77UG904 (v2013.1) 2013 年 3 月 20 日

Page 78: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

割り当て済みの配線は、[Device] ビューでオレンジ色で示されます。割り当て済みノードの間のギャップは、[AssignedNodes] セクシ ョ ンに GAP 行と して表示されます。

次の配線セグメン ト を割り当てるには、ギャ ップの前または後の割り当て済みノードを選択するか、 [Assigned Nodes]セクシ ョ ンの 後のノードを選択します。

ノードを選択する と、 [Neighbor Nodes] セクシ ョ ンに近くにある可能なノードが表示されます。 選択されている ノードが白で示されされ、 可能なノードが白の点線で示されます (図 3-3)。

配線ノードの割り当て

次の配線セグメン トに割り当てる ノードを決定したら、 次のいずれかを実行します。

• [Neighbor Nodes] セクシ ョ ンでノードを右ク リ ッ ク し、 [Assign Node] をク リ ッ ク します。

• [Neighbor Nodes] セクシ ョ ンでノードをダブルク リ ッ クします。

• [Device] ビューでノードをク リ ッ ク します。

配線をノードに割り当てる と、 そのノードが [Assigned Nodes] セクシ ョ ンに表示され、 [Device] ビューでオレンジ色でハイライ ト されます。

ロードに到達するまで、またはギャ ップを含む配線を割り当てる準備ができるまで、ノードの割り当てを継続します。

X-Ref Target - Figure 3-3

図 3-3 : 配線セグメン トの割り当て

インプリ メンテーシ ョ ン japan.xilinx.com 78UG904 (v2013.1) 2013 年 3 月 20 日

Page 79: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

配線ノードの割り当て解除

ノードの割り当てを解除するには、 次の手順に従います。

1. [Routing Assignment] ウ ィンド ウの [Assigned Nodes] セクシ ョ ンに移動します。

2. 割り当てを解除する ノードを選択します。

3. 右ク リ ッ ク して [Remove] をク リ ッ ク します。

ノードが割り当てから削除されます。

配線割り当ての確定

配線の割り当てを確定して配線割り当てモードを終了するには、 次のいずれかを実行します。

• [Routing Assignment] ウ ィンド ウで [Assign Routing] ボタンをク リ ッ ク します。

• [Device] ビューでネッ ト を右ク リ ッ ク して [Assign Routing] をク リ ッ ク します。

[Assign Routing] ダイアログ ボッ クス (図 3-4) が表示されます。 このダイアログ ボッ クスで、 割り当てられたノードを確認します。

配線割り当てのキャンセル

配線割り当てを確定できない場合は、 次のいずれかの方法を使用して配線割り当てをキャンセルできます。

• [Routing Assignment] ウ ィンド ウで [Exit Mode] をク リ ッ ク します。

• [Device] ビューを右ク リ ッ ク して [Exit Assign Routing Mode] をク リ ッ ク します。

配線を確定する と、 ド ラ イバーおよびロードの BEL および LOC も固定されます。

X-Ref Target - Figure 3-4

図 3-4 : [Assign Routing] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 79UG904 (v2013.1) 2013 年 3 月 20 日

Page 80: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

割り当て済みの配線の確認

• 割り当て済みの配線は、 [Device] で緑色の点線で示されます。

• 部分的に割り当てられた配線は、 [Device] で黄色の点線で示されます。

次の図に、 割り当て済み配線と部分的に割り当てられた配線の例を示します。

X-Ref Target - Figure 3-5

図 3-5 : 割り当て済みの配線および部分的に割り当てられた配線

LUT ロードのセル入力の固定

配線しよ う と している LUT ロードの入力が、 ほかの入力とスワ ップされていないこ とを確認する必要があ り ます。 これには、次の手順に従って LUT ロードのセル入力を固定します。

1. [Device] ビューを開きます。

2. ロード LUT を選択します。

3. 右ク リ ッ ク して [Lock Cell Input Pins] をク リ ッ ク します。

分岐 複数のロードを持つネッ ト を配線する場合は、 次の手順に従ってネッ ト を配線します。

1. 77 ページの 「配線割り当てモードの開始」 の手順に従って 1 つのロードへの配線を割り当てます。

2. ネッ トのすべての分岐への配線を割り当てます。

次の図に、 1 つのロードへの配線が割り当てられ、 さ らに 2 つのロードへの配線が必要なネッ ト を示します。

インプリ メンテーシ ョ ン japan.xilinx.com 80UG904 (v2013.1) 2013 年 3 月 20 日

Page 81: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

分岐への配線の割り当て

分岐に配線を割り当てるには、 次の手順に従います。

1. [Device] ビューを表示します。

2. 配線するネッ ト ノードを選択します。

3. 右ク リ ッ ク します。

4. [Enter Assign Routing Mode] をク リ ッ ク します。

[Target Load Cell Pin] ダイアログ ボッ クスが開き、 すべてのロードが表示されます。

X-Ref Target - Figure 3-6

図 3-6 : 分岐配線の割り当て

インプリ メンテーシ ョ ン japan.xilinx.com 81UG904 (v2013.1) 2013 年 3 月 20 日

Page 82: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

注記 : 配線が割り当てられているロードには、 [Routed] 列にチェッ ク マークが示されています。

5. 配線するロードを選択します。

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

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

図 3-8 を参照してください。

7. 選択したロードの配線を分岐する ノードを選択します。

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

9. 78 ページの 「配線ノードの割り当て」 の手順に従います。

X-Ref Target - Figure 3-7

図 3-7 : [Target Load Cell Pin] ダイアログ ボックス (複数ロード )

X-Ref Target - Figure 3-8

図 3-8 : [Branch Start] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 82UG904 (v2013.1) 2013 年 3 月 20 日

Page 83: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

配線の変更

指定配線制約

固定された配線割り当ては、 配線データベースに指定配線文字列と して保存されます。 指定配線文字列では、 分岐はネス ト された中かっこ ({ }) で示されます。

たとえば、 図 3-9 に示すよ うな配線がある と します。 この配線では、 さまざまなエレ メン トが次の表に示すよ うに示されています。

この配線の簡略化された指定配線文字列は、 次のよ うにな り ます。

{A B { D E L } C { F G H I M N } {O P Q} R J K L S }

配線は B と C で分岐します。 メ インの配線は A B C R J K L S です。

表 3-1 : 指定配線制約

エレメン ト 表示方法

ド ライバーと ロード オレンジ色の矩形

ノード 赤い線

スイ ッチボッ クス 青い矩形

X-Ref Target - Figure 3-9

図 3-9 : 分岐配線の例

インプリ メンテーシ ョ ン japan.xilinx.com 83UG904 (v2013.1) 2013 年 3 月 20 日

Page 84: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

ロジックの変更

ロジックの変更読み取り専用でない論理オブジェク トのプロパティは、インプ リ メンテーシ ョ ン後に Vivado IDE GUI または Tcl で変更できます。

注記 : Tcl コマンドの詳細は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 12] を参照するか、「<command> -help」 と入力してください。

[Device] ビューでオブジェク トのプロパティを変更するには、 次の手順に従います。

1. オブジェク ト を選択します。

2. [Properties] ビューの [Properties] タブでオブジェク トのプロパティを変更します。

変更可能なプロパティには、ブロッ ク RAM の INIT、MMCM のクロ ッ クを変更するプロパティなどがあ り ます。LUTオブジェク トの INIT を変更するためのダイアログ ボッ クスもあ り、 LUT 論理式を指定して適切な INIT 値がツールによ り設定されるよ うにするこ とができます。

X-Ref Target - Figure 3-10

図 3-10 : プロパティの変更

インプリ メンテーシ ョ ン japan.xilinx.com 84UG904 (v2013.1) 2013 年 3 月 20 日

Page 85: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

ロジックの変更

変更の保存

メモ リ内でデザインに対して加えた変更を保存するには、 デザインのチェッ クポイン ト を保存します。

割り当てはデザインにバッ クアノテート されないので、 次回の実行で適用されるよ うにするには、 割り当てを XDCに追加する必要があ り ます。

プロジェク ト モードで制約を制約ファイルに保存するには、 [File] → [Save Constraints] をク リ ッ ク します。

X-Ref Target - Figure 3-11

図 3-11 : LUT 論理式の指定

インプリ メンテーシ ョ ン japan.xilinx.com 85UG904 (v2013.1) 2013 年 3 月 20 日

Page 86: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

付録 A

リモート ホストの使用

リモート Linux ホストでの run の起動ザイ リ ンクス Vivado® IDE では、 複数の Linux ホス トで同時に合成およびインプ リ メンテーシ ョ ン run を実行できます。 これは、 Oracle 社の Grid Engine や IBM® 社の Platform™ LSF などの簡易版を使用した機能です。

リモート ホス トは、 次の理由から Linux でのみサポート されます。

• Linux の方がセキュ リティが優れている。

• Microsoft Windows システムにリモート シェル機能がない。

ジ ョブ投入アルゴ リズムは、Linux OS のサービスであるセキュア シェル (SSH) 内の Tcl パイプを使用したラウンド ロビン形式でインプリ メン ト されています。

推奨 : Vivado IDE で複数の Linux ホス トで run を起動する前に、 リモート run を起動するたびにパスワードを入力しな くて済むよ うに SSH を設定する必要があ り ます。

SSH の設定方法は、 89 ページの 「SSH の設定」 を参照して ください。

リモート ホストの実行要件

リモート Linux ホス トで合成およびインプ リ メンテーシ ョ ン run を実行する際の要件は、 次のとおりです。

• Vivado ツールのインス トールがログイン シェルから使用できる と想定されるので、 $XILINX_VIVADO および$PATH 環境変数が .cshrc/.bashrc セッ ト アップ スク リプ トで正し く設定されます。 リモート マシンにログインし、 ほかのスク リプ ト をソース とせずに 「vivado -help」 と入力できる場合、 このフローは機能します。

ログイン時に .cshrc または .bashrc で Vivado が設定されていない場合、 [Run pre-launch script] を使用して、環境設定スク リプ ト をすべてのジ ョブ前に実行できます。

• Vivado IDE のインス トールがリモート マシンの割り当てられたネッ ト ワークから表示できるよ うにする必要があ り ます。 Vivado IDE がマシンのローカル ディ スクにインス トールされている場合は、 リモート マシンからは表示できない可能性があ り ます。

• Vivado IDE のプロジェク ト ファ イル (.xpr) およびディ レク ト リ (.dita および .runs) が、 リモート マシンの割り当てられたネッ ト ワークから表示できるよ うにする必要があ り ます。 デザイン データがローカル ディ スクに保存されている と、 リモート マシンからは表示できない可能性があ り ます。

インプリ メンテーシ ョ ン japan.xilinx.com 86UG904 (v2013.1) 2013 年 3 月 20 日

Page 87: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

リモート Linux ホストでの run の起動

リモート ホストの設定

リモート Linux ホス トで合成またはインプ リ メンテーシ ョ ンを実行できるよ うに Vivado IDE を設定するには、次の手順に従います。

1. 次のいずれかを実行します。

° メ イン メニューから [Tools] → [Options] をク リ ッ ク し、 左側のペインで [Remote Hosts] をク リ ッ ク します。

° Flow Navigator で [Synthesis] を右ク リ ッ ク して [Launch Synthesis Runs] をク リ ッ ク し、 [Configure Hosts] をクリ ッ ク します。

° Flow Navigator で [Implementation] を右ク リ ッ ク して [Launch Implementation Runs] をク リ ッ ク し、 [ConfigureHosts] をク リ ッ ク します。

° [Design Runs] ビューでツールバーの [Launch Selected Runs] をク リ ッ ク し、[Configure Hosts] をク リ ッ ク します。

図 A-1 を参照して ください。

[Vivado Options] ダイアログ ボッ クスの [Remote Hosts] ページが開き、定義されている リモート Linux ホス トが表示されます (図 A-2)。

2. [Add] ボタンをク リ ッ ク し、 リモート サーバー名を入力します。

3. [Jobs] 列で、 リモート マシンで同時実行に使用できるプロセッサの数を指定します。 各 run は個別のプロセッサで実行されます。

4. [Enabled] チェッ ク ボッ クスをオン/オフにして、 サーバーを使用するかど うかを指定します。 このチェッ ク ボックスで、 選択した run にどのサーバーを使用するかを指定できます。

5. run を実行する際に使用する リモート アクセス コマンドを変更する場合は、 [Launch jobs with] で指定します。

注記 : この手順はオプシ ョ ンです。

デフォルト コマンドは次のとおりです。

ssh -q -o -BatchMode=yes

重要 : このフ ィールドを変更する場合は、 細心の注意を払ってください。 たとえば、 BatchMode =yes を削除すると、 セキュア シェルでパスワードのプロンプ トが表示されるため、 プロセスが停止していまいます。

X-Ref Target - Figure A-1

図 A-1 : [Launch Selected Runs] ダイアログ ボックスの [Configure Hosts] ボタン

インプリ メンテーシ ョ ン japan.xilinx.com 87UG904 (v2013.1) 2013 年 3 月 20 日

Page 88: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

リモート Linux ホストでの run の起動

6. run の起動前に実行するスク リプ ト を定義する場合は、[Run pre-launch script] をオンにします。ログイン時に VivadoIDE が設定されていない場合に、 このオプシ ョ ンを使用してホス ト環境を設定するスク リプ ト を実行します。

7. 結果を移動またはコピーするなど、 run の完了後に実行するカスタム スク リプ ト を定義する場合は、 [Run post-completion script] をオンにします。

8. run の完了時に電子メールが送信されるよ うにする場合は、 [Send email to] をオンにします。各ジ ョブの後に通知を送信するか ([After each Job])、 すべてのジ ョブの完了後に通知を送信するか ([After all jobs] を選択できます。

9. 設定が終了したら、 [OK] をク リ ッ ク します。 .

リモート ホス トへの接続を確認するには、 次の手順に従います。

1. 1 つまたは複数のホス ト を選択します。

2. [Test] をク リ ッ ク します。

サーバーが使用可能かど うか、 コンフ ィギュレーシ ョ ンが正し く設定されているかを確認できます。

推奨 : ホス トで run を実行する前に、 各ホス ト をテス ト して正し く設定されているこ とを確認して ください。

X-Ref Target - Figure A-2

図 A-2 : リモート ホストの設定

インプリ メンテーシ ョ ン japan.xilinx.com 88UG904 (v2013.1) 2013 年 3 月 20 日

Page 89: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

SSH の設定

リモート ホストの削除

リモート ホス ト を削除するには、 次の手順に従います。

1. リモート ホス ト を選択します。

2. [Remove] をク リ ッ ク します。

SSH の設定SSH は、 Linux ターミナルまたはシェルで次のコマンドを入力して設定します。

注記 : これは一度設定しておけば、 繰り返し設定する必要はあ り ません。

1. Linux ターミナルまたはシェルで次のコマンドを実行し、プライマ リ コンピューターでパブリ ッ ク キーを生成します。必須ではあ り ませんが、セキュ リ ティ保護のため、プライベート キーを入力し、記憶しておく こ とをお勧めします。

ssh -keygen -t rsa

2. パブリ ッ ク キーを リモート マシンの authorized_keys ファ イルに追加します。remote_server をホス ト名に変更します。

cat ~/.ssh/id_rsa.pub | ssh remote_server “cat - >> ~/.ssh/authorized_keys”

3. 次のコマンドを実行して、 プライベート キーのパス フレーズの入力をプロンプ ト し、 キー転送を有効にします。

ssh -add

これで、 どの リモート マシンでもパスワードを入力せずに使用できます。 新しいマシンに初めてアクセスする場合は、 パスワードを入力するよ う求められますが、 次回からは入力する必要はあ り ません。

ヒン ト : 毎回パスワードの入力を求められる場合は、 システム管理者に連絡して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 89UG904 (v2013.1) 2013 年 3 月 20 日

Page 90: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

インプリ メンテーシ ョ ン japan.xilinx.com 90UG904 (v2013.1) 2013 年 3 月 20 日

付録 B

ISE コマンド と Vivado コマンドの対照表

Tcl コマンド とオプシ ョ ンVivado® インプ リ メンテーシ ョ ンには、ISE® ツール コマンド と 1 対 1 で対応するコマンド ラ イン オプシ ョ ンがいくつかあ り ます。

表 B-1 に、 ISE ツール コマンド ライン オプシ ョ ンと、 同等の Vivado Design Suite Tcl コマンドおよび Tcl コマンド オプシ ョ ンを示します。

注記 : Tcl コマンドの詳細は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 12] を参照するか、「<command> -help」 と入力してください。

表 B-1 : ISE コマンド と Vivado コマンドの対照表

ISE コマンド Vivado Tcl コマンド とオプシ ョ ン

ngdbuild -p partname link_design -part partname

ngdbuild -a (パッ ドを挿入) synth_design -no_iobuf (バッファーを挿入しない)

ngdbuild -u (未展開のブロ ッ クを許可) デフォルトでイネーブル、 ク リ ティカル警告メ ッセージを表示

ngdbuild -quiet link_design -quiet

map -detail opt_design -verbose

map -lc auto place_design でデフォルトでイネーブル

map -logic_opt opt_design および phys_opt_design

map -mt place_design で Linux では 4 つのプロセッサ、Windows では 2 つのプロセッサを使用して自動的にマルチスレッ ドを実行

map -ntd place_design -non_timing_driven

map -ol place_design -effort_level

map -power power_opt_design

map -u link_design -mode out_of_context、 opt_design-retarget (定数の伝搬をスキップしてスイープ)

par -pl place_design -effort_level

par -rl route_design -effort_level

par -mt route_design で Linux では 4 つのプロセッサ、Windows では 2 つのプロセッサを使用して自動的にマルチスレッ ドを実行

par -k 再配線は route_design のデフォルト モード

par -nopad -nopad の動作がデフォルト (PAR で生成されていた PAD ファ イルを取得するには report_io コマンドを使用)

par -ntd route_design -no_timing_driven

Page 91: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

付録 C

その他のリソース

ザイリンクス リソースアンサー、 資料、 ダウンロード、 フォーラムなどのサポート リ ソースは、 次のザイ リ ンクス サポート サイ ト を参照して ください。

http://japan.xilinx.com/support

ザイ リ ンクス資料で使用される用語集は、 次を参照して ください。

http://japan.xilinx.com/company/terms.htm

ソリューシ ョ ン センターデバイス、 ツール、 IP のサポートについては、 ザイ リ ンクス ソ リ ューシ ョ ン センターを参照して ください。 ト ピックには、 デザイン アシスタン ト、 アドバイザリ、 ト ラブルシュート ヒ ン ト などが含まれます。

参考資料

Vivado Design Suite ユーザー ガイド

1. 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892)

2. 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)

3. 『Vivado Design Suite ユーザー ガイ ド : Tcl スク リプ ト機能の使用』 (UG894)

4. 『Vivado Design Suite ユーザー ガイ ド : システム レベル デザイン入力』 (UG895)

5. 『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896)

6. 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901)

7. 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903)

8. 『Vivado Design Suite ユーザー ガイ ド : デザイン解析およびクロージャ テクニッ ク』 (UG906)

9. 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析および 適化』 (UG907)

10. 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908)

インプリ メンテーシ ョ ン japan.xilinx.com 91UG904 (v2013.1) 2013 年 3 月 20 日

Page 92: Vivado Design Suite - Xilinx...インプリメンテーション japan.xilinx.com 5 UG904 (v2013.1) 2013 年 3 月 20 日 第1 章 Vivado インプリメンテーション プロセス

参考資料

その他の Vivado Design Suite 関連の資料

11. 『7 シ リーズ FPGA クロ ッ ク リ ソース ユーザー ガイ ド』 (UG472)

12. 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835)

13. 『Vivado Design Suite 移行手法ガイ ド 』 (UG911)

14. 『Vivado Design Suite チュート リ アル : デザイン フローの概要』 (UG888)

Vivado Design Suite ビデオ チュート リアル

15. Vivado Design Suite ビデオ チュート リ アル : http://japan.xilinx.com/training/vivado/index.htm

Vivado Design Suite の資料

16. Vivado Design Suite 資料ページ : http://japan.xilinx.com/support/documentation/dt_vivado_vivado2013-1.htm

インプリ メンテーシ ョ ン japan.xilinx.com 92UG904 (v2013.1) 2013 年 3 月 20 日