Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション...

120
Vivado Design Suite ユー ザー ガイド インプリメンテーション UG904 (v2014.1) 2014 4 2

Transcript of Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション...

Page 1: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

Vivado Design Suite ユーザー ガイド

インプリ メンテーシ ョ ン

UG904 (v2014.1) 2014 年 4 月 2 日

Page 2: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

インプリ メンテーシ ョ ン japan.xilinx.com 2UG904 (v2014.1) 2014 年 4 月 2 日

改訂履歴

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

日付 バージョ ン 改訂内容

2014 年 4 月 2 日 2014.1 第 1 章 :• Vivado デザイン フローの図 (6 ページの図 1-1) をアップデート

• 7 ページの 「Vivado ツールでのマルチスレッ ド」 セクシ ョ ンで配置および配線の 大スレッ ド数を変更

• 8 ページの 「インプ リ メ ンテーシ ョ ンの制御」 、 プロジェク トおよび非プロジェク トモードの説明をアップデート

• 15 ページの 「制約を attribute 文と して追加」 をアップデート

• 15 ページの「デザイン チェッ クポイン ト を使用したデザインのスナップシ ョ ッ トの保存および復元」 をアップデート

• 16 ページの 「非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行」 および19 ページの「プロジェク ト モードでのインプリ メンテーシ ョ ンの実行」をアップデート

• 29 ページの 「インプ リ メンテーシ ョ ン ス ト ラテジのカスタマイズ」 をアップデート

• 35 ページの 「インプ リ メンテーシ ョ ン run の起動」 をアップデート

• 37 ページの 「インプ リ メンテーシ ョ ンの段階ごとの実行」 をアップデート

• 39 ページの 「インプ リ メンテーシ ョ ン run の監視」 をアップデート

• 42 ページの 「インク リ メンタル コンパイル」 をアップデート

• 59 ページの 「インプ リ メンテーシ ョ ン レポートの表示」 をアップデート

第 2 章 :• 64 ページの 「インプ リ メンテーシ ョ ンのサブプロセス」 をアップデート

• サブプロセス と関連の Tcl コマンドを リ ス トする表 2-1 を追加

• 66 ページの 「合成済みデザインを開く」 をアップデート (コード例の変更を含む)• 70 ページの 「ロジッ ク 適化」 をアップデート

• 75 ページ以降の 「配置」、 「物理 適化」、 および 「配線」 をアップデート

108 ページの付録 A 「 リ モート ホス トおよび LSF の使用」 : LSF (Load Sharing Facility) を使用した リモート Linux ホス トの使用に関する情報を追加

全体で次を変更 :• インプリ メンテーシ ョ ン プロセスおよびサブプロセスの説明をアップデート配線後のphys_opt_design コマンドおよびその他のインプ リ メ ンテーシ ョ ン コマンド オプシ ョ ンを追加 (例 : 第 1 章 6 ページの「Vivado インプリ メンテーシ ョ ンのサブプロセス」)

• 関連の箇所に LSF に関する情報を追加

• 必要に応じて UltraScale™ デバイス サポートに関する記述を追加

• 技術内容を向上するためのアップデート

Page 3: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

目次

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

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

インプリ メンテーシ ョ ンの制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

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

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

デザイン チェッ クポイン ト を使用したデザインのスナップシ ョ ッ トの保存および復元 . . . . . . . . . . . . . . . . . . . . . 15

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

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

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

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

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

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

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

インク リ メンタル コンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

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

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

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

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

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

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

ロジッ ク 適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

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

配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

物理 適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

配線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

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

配置の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

配線の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

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

付録 A : リモート ホス トおよび LSF の使用リモート Linux ホス トでの run の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

SSH の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

インプリ メンテーシ ョ ン japan.xilinx.com 3UG904 (v2014.1) 2014 年 4 月 2 日

Page 4: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

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

付録 C : インプリ メンテーシ ョ ンのカテゴリ、 ス ト ラテジの説明、 および -directive の設定インプリ メンテーシ ョ ンのカテゴ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

インプリ メンテーシ ョ ン ス ト ラテジの説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

インプリ メンテーシ ョ ン ス ト ラテジで使用される opt_design および place_design の -directive の設定 . . . . . . . . 117

インプリ メンテーシ ョ ン ス ト ラテジで使用される phys_opt_design および route_design の -directive の設定 . . . 118

付録 D : その他のリソースおよび法的通知ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

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

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

インプリ メンテーシ ョ ン japan.xilinx.com 4UG904 (v2014.1) 2014 年 4 月 2 日

Page 5: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章

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

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

• RTL デザイン

• ネッ ト リ ス ト デザイン

• IP 中心のデザイン

図 1-1 に Vivado ツール フローを示します。

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 5UG904 (v2014.1) 2014 年 4 月 2 日

Page 6: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

Vivado Design Suite のインプリ メンテーシ ョ ン プロセスでは、 論理ネッ ト リ ス トおよび制約が配置配線済みデザインに変換され、 ビッ ト ス ト リームを生成できるよ うにします。 インプ リ メンテーシ ョ ン プロセスには、次のサブプロセスがあ り ます。

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

• power_opt_design (デザインの消費電力 適化) (オプシ ョ ン) : ターゲッ トのザイ リ ンクス デバイスの消費電力を削減するよ うデザイン エレ メン ト を 適化します。

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

• 配置後の power_opt_design (オプシ ョ ン) : 配置後に消費電力を削減するするよ う追加の 適化を実行します。

• 配置後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン) : 配置に基づく予測タイ ミ ングを使用してロジッ クおよび配置を 適化します。ファンアウ トの大きいド ライバーの複製も含まれます。

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

• 配線後の phys_opt_design (オプシ ョ ン) : 配線後の実際の遅延を使用して、 ロジッ ク、 配置、 および配線を 適化します。

X-Ref Target - Figure 1-1

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

インプリ メンテーシ ョ ン japan.xilinx.com 6UG904 (v2014.1) 2014 年 4 月 2 日

Page 7: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

• write_bitstream (ビッ ト ス ト リームの生成) : ザイ リ ンクス デバイス コンフ ィギュレーシ ョ ンのビッ ト ス ト リームを生成します。通常、インプ リ メンテーシ ョンの後にビッ ト ス ト リームを生成します。

ビッ ト ス ト リーム生成の詳細は、『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 12] を参照してください。

注記 : Vivado Design Suite では、デザインの一部をインプ リ メン ト してパフォーマンスを予測するモジュール解析がサポート されています。 このフローでは、 I/O が過剰に使用されないよ うにするため、 I/O バッファーは挿入されません。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 階層デザイン』 (UG905) [参照 2] を参照して ください。

Vivado ツールでのマルチスレッ ド

マルチプロセッサ システムでは、 DRC レポート、 スタティ ッ ク タイ ミ ング解析、 配置、 配線などのプロセスを高速化するため、 マルチスレッ ドが使用されます。同時に使用される 大スレッ ド数は、 OS、 プロセッサの数、 タスクによって異なり ます。 タスクによって使用される 大スレッ ド数は、 次のとおりです。

• DRC レポート : 8

• スタティ ッ ク タイ ミ ング解析 : 8

• 配置 : 8

• 配線 : 8

すべてのタスクに適用される一般的な制限もあ り、 OS によって異なり ます。 Windows システムではこの制限は 2 で、Linux システムでは 8 です。 この制限は、 general.maxThreads とい うパラ メーターを使用して変更できます。 制限を変更するには、 次のコマンドを使用します。

Vivado% set_param general.maxThreads <new limit>

<new limit> に有効な値は、 1 ~ 8 の整数値です。 次に、 Windows システムでの例を示します。

Vivado% get_param general.maxThreads 2

この場合、 プロセッサ数または実行されるタスクにかかわらず、 すべてのタスクで使用されるスレッ ドの 大数は 2です。 システムに 8 個以上のプロセッサがある場合、 タスクで使用される 大スレッ ド数を 8 に設定できます。

Vivado% set_param general.maxThreads 8

同時に使用可能なスレッ ド数は、 次の 小の値になり ます。

• プロセッサの 大数

• タスクの制限スレッ ド数

• 一般制限スレッ ド数

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 7UG904 (v2014.1) 2014 年 4 月 2 日

Page 8: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

• ロジッ ク 適化

• ラ イブラ リ セルの配置

• セル間の接続の配線

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

Vivado Design Suite では、 インプ リ メンテーシ ョ ンをプロジェク ト ファ イルを使用して (プロジェク ト モード )、 またはプロジェク ト ファ イルを使用せずに (非プロジェク ト モード ) 実行できます。

プロジェク ト モード

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

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

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

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

プロジェク ト モードでの作業

プロジェク ト モードでは、ディ スク上にディ レク ト リ構造が作成され、 それを利用してデザイン ソース、 run の結果およびレポート、 プロジェク ト ステータスが管理されます。

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

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

プロジェク ト モードでインプ リ メンテーシ ョ ンを実行するには、 IDE で [Run Implementation] をク リ ッ ク してインプリ メンテーシ ョ ン run を実行するか、 Tcl コマンドで launch_runs を使用するだけです。 Vivado でのプロジェク トの使用に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892) [参照 1] を参照してください。

インプリ メンテーシ ョ ン japan.xilinx.com 8UG904 (v2014.1) 2014 年 4 月 2 日

Page 9: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

Flow Navigator

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

Flow Navigator は Vivado Design Suite のメ イン ウ ィンド ウの左側に表示され、 こ こからデザインおよび IP を作成、 インプ リ メン ト、 および検証できます。 デザイン フローを簡略化するため、 インプ リ メ ンテーシ ョ ン プロセス全体をコマンドをク リ ッ クするだけで実行できます。 次の図に、 Flow Navigator の [Implementation] セクシ ョ ンを示します。

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

非プロジェク ト モード

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

非プロジェク ト モードでは、各インプリ メンテーシ ョ ン Tcl コマンドを適切なオプシ ョ ンと共に使用し、各手順を個別に実行する必要があ り ます。

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

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

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

X-Ref Target - Figure 1-2

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

インプリ メンテーシ ョ ン japan.xilinx.com 9UG904 (v2014.1) 2014 年 4 月 2 日

Page 10: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

• Flow Navigator

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

• IP カタログ

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

• [Design Runs] ビュー

• [Messages] ビュー

• [Reports] ビュー

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

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

• opt_design

• power_opt_design (オプシ ョ ン)

• place_design

• phys_opt_design (オプシ ョ ン)

• route_design

• write_bitstream

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

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

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

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

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

インプリ メンテーシ ョ ン フローの開始

インプリ メンテーシ ョ ン フローは通常、 メモ リに合成済みデザインを読み込むこ とによ り開始します。その後、 インプリ メンテーシ ョ ン フローを実行するか、デザインを解析してデザインと制約を調整し、アップデート後に再読み込みできます。

合成済みデザインでインプリ メンテーシ ョ ン フローを開始するには、 次の 2 つの方法があ り ます。

• Vivado 合成を実行します。プロジェク ト モードでは、合成 run に合成結果が含まれ、 これらの結果が自動的にインプ リ メンテーシ ョ ン run の入力と して使用されます。 非プロジェク ト モードでは、 synth_design コマンドが完了した後、 合成結果はメモリ内にあるので、 そこからインプリ メンテーシ ョ ンに進むこ とができます。

• 合成済みネッ ト リ ス ト を読み込みます。合成にサードパーティ ツールを使用した場合などは、合成済みネッ ト リス ト を入力デザイン ソース と して使用できます。

インプリ メンテーシ ョ ン japan.xilinx.com 10UG904 (v2014.1) 2014 年 4 月 2 日

Page 11: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

• プロジェク ト モードでは、 インプ リ メンテーシ ョ ン run を実行します。

• 非プロジェク ト モードでは、 スク リプ ト を実行するか、 コマンドを対話的に実行します。

デザインを解析して制約を調整するには、 インプリ メンテーシ ョ ンを実行せずに合成済みデザインを読み込みます。

• プロジェク ト モードでは、Flow Navigator の [Open Synthesized Design] をク リ ッ ク して、合成 run の結果である合成済みデザインを開きます。

• 非プロジェク ト モードでは、 link_design コマンドを使用してデザインを読み込みます。

非プロジェク ト モードでは、デザイン チェッ クポイン ト を使用するこ と もできます。チェッ クポイン ト を開く と、デザインが読み込まれてそのチェッ クポイン トの状態が復元されます。配置および配線データが含まれる場合もあ り ます。 これによ り、 配線済みデザインを読み込んで配線を変更したり、 配置済みデザインを読み込んで異なるオプシ ョンを使用して配線を複数回実行するなど、 再配線インプリ メンテーシ ョ ン フローを実行できます。

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

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

• Structural Verilog

• Structural SystemVerilog

• EDIF

• ザイ リ ンクス NGC

• 合成済みデザイン チェッ クポイン ト (DCP)

重要 : プロジェク ト モードまたは非プロジェク ト モードで IP を使用する場合は、DCP ファ イルではなく XCI ファ イルを使用して ください。 これによ り、 デザイン フローのすべての段階で IP 出力ファ イルが一貫して使用されます。IP が独立モジュールと して合成されており、関連する DCP ファ イルが既にある場合は、 その DCP ファ イルが自動的に使用され、 IP は再合成されません。詳細は、『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896) [参照 4] を参照して ください。

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

RTL ソースから開始

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 11UG904 (v2014.1) 2014 年 4 月 2 日

Page 12: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

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

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

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

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

IP の設定、 インプリ メン ト、 および検証合成前にデザインに IP をインポートする方法の詳細は、 『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』(UG896) [参照 4] を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 12UG904 (v2014.1) 2014 年 4 月 2 日

Page 13: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

推奨 : インプ リ メンテーシ ョ ンを実行する際は、 デザイン制約を設定して ください。

デザイン制約には、 物理制約と タイ ミ ング制約の 2 種類があ り ます。 これらの制約を、 次に説明します。

物理制約 物理制約は、 次のよ うな論理デザイン オブジェク ト とデバイス リ ソースの関係を定義します。

• パッケージ ピンの配置

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

° ブロッ ク RAM

° DSP

° LUT

° フ リ ップフロップ

• セルをデバイスの汎用領域に割り当てるフロアプラン制約

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

タイ ミ ング制約

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

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

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 13UG904 (v2014.1) 2014 年 4 月 2 日

Page 14: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

制約セッ トの構造

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

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

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

• マスター制約ファイル

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

• 複数の制約セッ ト

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

複数の制約セッ ト

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

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

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

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

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

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 14UG904 (v2014.1) 2014 年 4 月 2 日

Page 15: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

制約を attribute 文として追加

制約は、 HDL ソースに attribute 文と して追加できます。 属性は、 Verilog および VHDL ソースの両方に追加でき、Vivado 合成または Vivado インプリ メンテーシ ョ ンに渡すこ とができます。

HDL 属性と してのみ設定可能で、 XDC では設定できない制約もあ り ます。 この場合、 制約を HDL ソース ファ イルで属性と して指定する必要があ り ます。 たとえば、 相対配置マクロ (RPM) は HDL 属性と して定義する必要があ り ます。 RPM とは、 複数のロジッ ク エレ メン ト (FF、 LUT、 DSP、 RAM など) の相対的な配置を指定したものです。

U_SET および HU_SET 属性を使用して RPM を定義し、 相対ロケーシ ョ ン属性を使用して相対配置を定義できます。

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

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

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

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

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

• デザイン制約

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

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

重要 : プロジェク ト モードでは、 デザイン フローの進行に応じて、 Vivado デザイン ツールによ り自動的にチェッ クポイン トが保存および復元されます。非プロジェク ト モードでは、デザイン フローの適切な段階でユーザーがチェックポイン ト を保存する必要があ り ます。 そ う しないと、 メモ リ内のデザインは失われます。

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

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

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

デザイン チェッ クポイン トが別のプロジェク ト と して開きます。

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

インプリ メンテーシ ョ ン japan.xilinx.com 15UG904 (v2014.1) 2014 年 4 月 2 日

Page 16: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

• power_opt_design (デザインの消費電力 適化) (オプシ ョ ン) : ターゲッ トのザイ リ ンクス デバイスの消費電力を削減するよ うデザイン エレ メン ト を 適化します。

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

• 配置後の power_opt_design (オプシ ョ ン) : 配置後に消費電力を削減するするよ う追加の 適化を実行します。

• 配置後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン) : 配置に基づく予測タイ ミ ングを使用してロジックおよび配置を 適化します。 ファンアウ トの大きいド ラ イバーの複製も含まれます。

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

• 配線後の phys_opt_design (オプシ ョ ン) : 配線後の実際の遅延を使用して、 ロジッ ク、 配置、 および配線を 適化します。

• write_bitstream (ビッ ト ス ト リームの生成) : ザイ リ ンクス デバイス コンフ ィギュレーシ ョ ンのビッ ト ス ト リームを生成します。 通常、 インプリ メンテーシ ョ ンの後にビッ ト ス ト リームを生成します。 ビッ ト ス ト リーム生成の詳細は、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 12] を参照してください。

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

コマンドは、 次のいずれかの方法で実行します。

• Vivado IDE の Tcl コンソールから

• Vivado Design Suite Tcl シェルの Tcl プロンプ トから

• インプリ メンテーシ ョ ン コマンドを含む Tcl スク リプ ト を使用し、 Vivado Design Suite でそのスク リプ ト を実行

インプリ メンテーシ ョ ン japan.xilinx.com 16UG904 (v2014.1) 2014 年 4 月 2 日

Page 17: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

次に、 非プロジェ ク ト モードでインプ リ メ ンテーシ ョ ンを実行するス ク リ プ ト 例を示し ます。 ス ク リ プ ト 名がrun.tcl である と したら、 Tcl シェルに 「source run.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

# 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 design and save a checkpoint# It is recommended to save progress at certain intermediate steps# The placed checkpoint can also be routed in multiple runs using different optionsplace_designwrite_checkpoint post_place.dcp

# 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

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

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

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

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

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

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

• 手順 5 : デザインの配置

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 17UG904 (v2014.1) 2014 年 4 月 2 日

Page 18: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

合成済みデザイン チェッ クポイン ト ファ イルをソースと して追加するには、 read_checkpoint コマンドを使用します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vivado のネッ ト リ ス ト 適化では、 デザイン要件を満たすため、 さまざまな 適化機能が提供されています。 詳細は、 70 ページの 「ロジッ ク 適化」 を参照してください。

手順 5 : デザインの配置

place_design コマンドを使用してデザインを配置します。 詳細は、 75 ページの 「配置」 を参照して ください。 配置後、 write_checkpoint コマンドを使用してデザイン チェッ クポイン ト ファ イルを保存します。

インプリ メンテーシ ョ ン japan.xilinx.com 18UG904 (v2014.1) 2014 年 4 月 2 日

Page 19: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

手順 6 : デザインの配線

route_design コマンドを使用してデザインを配線します。 詳細は、 87 ページの 「配線」 を参照して ください。

手順 7 : レポートの生成

report_timing_summary コマンドは、 タイ ミ ング解析を実行し、 タイ ミ ング違反の詳細を含むタイ ミ ング レポート を生成します。 report_utilization コマンドは、 使用されているデバイス リ ソースの割合と、 その他の使用率統計のサマリ を生成します。非プロジェク ト モードでは、各レポート を Tcl コマンドを使用して生成する必要があり ます。 各レポート コマンドでは -file オプシ ョ ンがサポート されており、 レポート をファ イルに保存できます。レポート コマンドの詳細は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 15] を参照してください。

レポートはファ イルに出力するか、 Vivado IDE に表示して確認できます。 詳細は、 59 ページの 「インプ リ メ ンテーシ ョ ン レポートの表示」 を参照して ください。

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

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

• 論理ネッ ト リ ス ト

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

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

• 配置配線情報

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

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

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

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

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

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 19UG904 (v2014.1) 2014 年 4 月 2 日

Page 20: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

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

または、 Flow Navigator で [Implementation] を右ク リ ッ ク して [Create Implementation Runs] を ク リ ッ クするか、[Design Runs] ビューを右ク リ ッ クして [Create Runs] をク リ ッ ク します。

Create New Runs ウ ィザードが開きます。

2. Create New Runs ウ ィザードの 初のページで [Implementation] をオンにし、 [Next] をク リ ッ ク します。

3. 次の図に示す [Configure Implementation Runs] ページが表示されます。 図の下の説明に従って run を設定します。

a. [Name] 列に run の名前を入力するか、 デフォルトのままにします。

b. [Synth Name] 列で、 インプ リ メンテーシ ョ ンに使用する合成済みネッ ト リ ス ト を生成する合成 run を選択します。 ネッ ト リ ス ト プロジェク トの場合は、 [Create Runs] コマンドに合成 run の名前は必要あ り ません。

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

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

デフォルトは、 [Design Runs] ビューで現在アクティブな run です。 詳細は、 付録 C 「インプ リ メンテーシ ョンのカテゴ リ、 ス ト ラテジの説明、 および -directive の設定」 を参照してください。

X-Ref Target - Figure 1-3

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

インプリ メンテーシ ョ ン japan.xilinx.com 20UG904 (v2014.1) 2014 年 4 月 2 日

Page 21: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

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

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

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

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

付録 C 「インプ リ メンテーシ ョ ンのカテゴ リ、 ス ト ラテジの説明、 および -directive の設定」 に示すス ト ラテジのいずれかを選択します。

ス ト ラテジは、 その目的に応じてカテゴ リ別に分類されており、 カテゴ リ名が接頭辞となっています。 カテゴ リは、 付録 C 「インプ リ メンテーシ ョ ンのカテゴ リ、 ス ト ラテジの説明、 および -directive の設定」 を参照して ください。

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

パフォーマンス ス ト ラテジは、 デザイン パフォーマンスを向上するこ とを目的と しており、 実行時間は長くな り ます。パフォーマンス ス ト ラテジを選択する前に、まずインプ リ メンテーシ ョ ンのデフォルト を使用してタイ ミ ング要件を満たすよ うにして ください。このよ うにする と、デザインの変更によるタイ ミ ング クロージャの影響を吸収するのに十分なマージンが得られます。 ただし、 デザイン要件が満たされない場合、実行時間が長くなるこ とが許容されるのであれば、 Performance_Explore はすべてのタイプのデザインを網羅しているので、 初に選ぶス ト ラテジと して適しています。

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

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

f. [More] をク リ ッ ク し、 追加の run を定義します。 デフォルトでは、 シーケンスの次のス ト ラテジが自動的に選択されます。 追加 run の名前とス ト ラテジを指定します (図 1-3)。

g. [Make Active] チェッ ク ボッ クスを使用して、 実行する run を選択します。

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

インプリ メンテーシ ョ ン japan.xilinx.com 21UG904 (v2014.1) 2014 年 4 月 2 日

Page 22: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

4. 次の図に示す [Launch Options] ページが表示されます。 図の下の説明に従ってオプシ ョ ンを設定します。

注記 : 上図に示されている [Launch runs on remote hosts] は Linux でのみ表示されます。 Windows では表示されません。

a. [Launch directory] でインプ リ メンテーシ ョ ン run データを作成し、 保存する場所を指定します。

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

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

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

b. ラジオ ボタンおよびド ロ ップダウン リ ス ト を使用して、 プロジェク トに適切な設定を指定します。 次のいずれかを選択します。

- [Launch runs on local host] : ローカル マシンで run を実行します。

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

- [Launch runs on remote hosts] (Linux のみ) : ジ ョブを起動するのにリモート ホス ト を使用します。

- [Configure Hosts] : リモート ホス ト を設定します。詳細は、付録 A 「 リモート ホス トおよび LSF の使用」を参照して ください。

- [Launch runs using LSF] (Linux のみ) : LSF (Load Sharing Facility) の bsub コマンドを使用してジ ョブを起動します。 bsub コマンド オプシ ョ ンを設定して LSF 接続をテス トするには、 [Configure LSF] ボタンをク リ ッ ク します。

ヒン ト : LSF は、 ク ラスターの複数の計算サーバー間でバッチ ジ ョ ブを送信、 スケジュール、 実行、 監視、 ワークロード制御するためのサブシステムです。

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

- [Do not launch now] : 新しい run を保存しますが、 run スク リプ トは実行または作成しません。

X-Ref Target - Figure 1-4

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

インプリ メンテーシ ョ ン japan.xilinx.com 22UG904 (v2014.1) 2014 年 4 月 2 日

Page 23: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

新しい run が [Design Runs] ビューに追加されます。 詳細は、 「[Design Runs] ビューの使用」 を参照してください。

[Design Runs] ビューの使用

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

[Design Runs] ビューを開く

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

[Design Runs] ビューの機能

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

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

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

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

run のステータス

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

• 実行されていない

• 実行中

• 完了

• 新の状態でない

[Design Runs] ビューには、 run の開始時間と経過時間が表示されます。

実行時間

[Design Runs] ビューには、 run の開始時間と経過時間が表示されます。

X-Ref Target - Figure 1-5

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

インプリ メンテーシ ョ ン japan.xilinx.com 23UG904 (v2014.1) 2014 年 4 月 2 日

Page 24: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

run のタイ ミング結果

[Design Runs] ビューには、 インプ リ メンテーシ ョ ン run のタイ ミ ング結果 (WNS、 TNS、 WHS、 THS、 TPWS) が表示されます。

最新の状態でない 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] をク リ ッ ク します。

インプリ メンテーシ ョ ン japan.xilinx.com 24UG904 (v2014.1) 2014 年 4 月 2 日

Page 25: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

インプリ メンテーシ ョ ン 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) [参照 3] を参照して ください。

X-Ref Target - Figure 1-6

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

インプリ メンテーシ ョ ン japan.xilinx.com 25UG904 (v2014.1) 2014 年 4 月 2 日

Page 26: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

デザイン run の設定

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

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

2. ポップアップ メニューから [Change Run Settings] をク リ ッ ク し、[Design Run Settings] ダイアログ ボッ クスを開きます。

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

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

[Strategy]

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

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

[Description]

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

X-Ref Target - Figure 1-7

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

インプリ メンテーシ ョ ン japan.xilinx.com 26UG904 (v2014.1) 2014 年 4 月 2 日

Page 27: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

[Options]

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

• opt_design (デザインの 適化)

• power_opt_design (デザインの消費電力 適化) (オプシ ョ ン)

• place_design (デザインの配置)

• 配置後の power_opt_design (デザインの消費電力 適化) (オプシ ョ ン)

• 配置後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン)

• route_design (デザインの配線)

• 配線後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン)

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

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

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

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

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

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

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

注記 : 各インプ リ メンテーシ ョ ン コマンドでよ く使用されるコマンド オプシ ョ ンは、 チェッ ク ボッ クスで選択できます。 その他のオプシ ョ ンは、 [More Options] フ ィールドに入力します。 オプシ ョ ン名の前にハイフンを付け、 複数のオプシ ョ ンはスペースで区切り ます。

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

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

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

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

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

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

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

get_property DIRECTORY [current_project]get_property DIRECTORY [current_run]

インプリ メンテーシ ョ ン japan.xilinx.com 27UG904 (v2014.1) 2014 年 4 月 2 日

Page 28: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

[Save Design As]

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

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

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 ディ レク ト リから生成されたファイルを削除するオプシ ョ ンが表示されます (図 1-8)。

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

X-Ref Target - Figure 1-8

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

インプリ メンテーシ ョ ン japan.xilinx.com 28UG904 (v2014.1) 2014 年 4 月 2 日

Page 29: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

run の削除

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

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

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

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

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

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

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

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

X-Ref Target - Figure 1-9

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

インプリ メンテーシ ョ ン japan.xilinx.com 29UG904 (v2014.1) 2014 年 4 月 2 日

Page 30: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

開いた [Project Settings] ダイアログ ボッ ク スの [Implementation] ページ (図 1-10)には、 次のフ ィールドがあ り ます。

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

• [Incremental compile] :インク リ メンタル コンパイル チェッ クポイン ト を指定します (オプシ ョ ン)。

• [Strategy] :インプ リ メンテーシ ョ ン run に適用するス ト ラテジを選択します。 Vivado Design Suite では、 定義済みのス ト ラテジが提供されています。独自のインプ リ メンテーシ ョ ン ス ト ラテジを作成し、新しいス ト ラテジと して保存するこ と も可能です。 詳細は、 「ス ト ラテジの定義」 を参照してください。

• [Description] :選択したインプ リ メンテーシ ョ ン ス ト ラテジの説明を表示します。 ユーザー定義のス ト ラテジの説明は、 新しい説明を入力して変更できます。 Vivado ツールの標準インプ リ メ ンテーシ ョ ン ス ト ラテジの説明は変更できません。

インプリ メンテーシ ョ ン japan.xilinx.com 30UG904 (v2014.1) 2014 年 4 月 2 日

Page 31: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

スト ラテジの定義

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

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

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

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

X-Ref Target - Figure 1-10

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

インプリ メンテーシ ョ ン japan.xilinx.com 31UG904 (v2014.1) 2014 年 4 月 2 日

Page 32: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

X-Ref Target - Figure 1-11

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

インプリ メンテーシ ョ ン japan.xilinx.com 32UG904 (v2014.1) 2014 年 4 月 2 日

Page 33: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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] ビューの結果の表に表示されます。

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

° opt_design (デザインの 適化)

° power_opt_design (デザインの消費電力 適化) (オプシ ョ ン)

° place_design (デザインの配置)

° 配置後の power_opt_design (デザインの消費電力 適化) (オプシ ョ ン)

° 配置後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン)

° route_design (デザインの配線)

° 配線後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン)

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 33UG904 (v2014.1) 2014 年 4 月 2 日

Page 34: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

次の操作を実行します。

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

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

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

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

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

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

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

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

get_property DIRECTORY [current_project]get_property DIRECTORY [current_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

X-Ref Target - Figure 1-12

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

インプリ メンテーシ ョ ン japan.xilinx.com 34UG904 (v2014.1) 2014 年 4 月 2 日

Page 35: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

スト ラテジの共有

作成したス ト ラテジを複数のユーザーで共有するには、 ユーザー定義のス ト ラテジを <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-13)。

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

インプリ メンテーシ ョ ン japan.xilinx.com 35UG904 (v2014.1) 2014 年 4 月 2 日

Page 36: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

° [Launch runs on local host] : ローカル マシンで run を実行します。

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

° [Launch runs on remote hosts] (Linux のみ) : ジ ョブを起動するのにリモート ホス ト を使用します。

° [Configure Hosts] : リモート ホス ト を設定します。 詳細は、 付録 A 「 リモート ホス トおよび LSF の使用」 を参照して ください。

° [Launch runs using LSF] (Linux のみ) : LSF (Load Sharing Facility) の bsub コマンドを使用してジ ョブを起動します。 bsub コマンド オプシ ョ ンを設定して LSF 接続をテス トするには、 [Configure LSF] ボタンをク リ ッ クします。

ヒン ト : LSF は、 ク ラスターの複数の計算サーバー間でバッチ ジ ョ ブを投入、 スケジュール、 実行、 監視、 ワークロード制御するためのサブシステムです。

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

° [Do not launch now] : 新しい run を保存しますが、 run スク リプ トは実行または作成しません。

X-Ref Target - Figure 1-13

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

インプリ メンテーシ ョ ン japan.xilinx.com 36UG904 (v2014.1) 2014 年 4 月 2 日

Page 37: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

このプロセスをバッ クグラウンドに移動する と、 バッ クグラウンド タス クを実行させたまま、 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 (デザインの配置) :デザインをターゲッ ト ザイ リ ンクス デバイスに配置します。

° 配置後の power_opt_design (デザインの消費電力 適化) :配置後に消費電力を削減するするよ う追加の 適化を実行します。

X-Ref Target - Figure 1-14

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

インプリ メンテーシ ョ ン japan.xilinx.com 37UG904 (v2014.1) 2014 年 4 月 2 日

Page 38: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

° 配置後の phys_opt_design (デザインの物理 適化) :デザインの負のスラ ッ ク パスに対してタイ ミ ング ド リブンの 適化を実行します。

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

° 配線後の phys_opt_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 をインク リ メンタルに完了します。

インプリ メンテーシ ョ ン japan.xilinx.com 38UG904 (v2014.1) 2014 年 4 月 2 日

Page 39: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

• コンパイル情報を読む

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

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

• [Design Runs] ビューを開く

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

run ステータス表示

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

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

• run ステータス インジケーターは、 [Design Runs] ビューにも表示されます (図 1-16)。 run 名の横に、 run が進行中であるこ とを示す円形の矢印が表示されます (図 1-16 の赤丸)。 run を右ク リ ッ ク してポップアップメニューから[Reset Run] をク リ ッ クする と、 run をキャンセルできます。

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

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

X-Ref Target - Figure 1-15

図 1-15 : run ステータス インジケーター

X-Ref Target - Figure 1-16

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

X-Ref Target - Figure 1-17

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

インプリ メンテーシ ョ ン japan.xilinx.com 39UG904 (v2014.1) 2014 年 4 月 2 日

Page 40: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

出力の停止

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

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

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

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

• RTL エラボレーシ ョ ン

• 合成

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

• ビッ ト ス ト リーム生成

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

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

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

X-Ref Target - Figure 1-18

図 1-18 : [Log] ビュー

インプリ メンテーシ ョ ン japan.xilinx.com 40UG904 (v2014.1) 2014 年 4 月 2 日

Page 41: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

Out-of-Date ステータス

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

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

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

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

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

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

X-Ref Target - Figure 1-19

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

インプリ メンテーシ ョ ン japan.xilinx.com 41UG904 (v2014.1) 2014 年 4 月 2 日

Page 42: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

インクリ メンタル コンパイルインク リ メ ンタル コンパイルは、 完成に近づいており、 小さな変更が必要なデザインに適したアドバンス フローです。 少しの変更を加えて再合成する場合にこのフローを使用する と、 次のよ うな利点があ り ます。

• 配置配線の実行時間が短縮されます。

• 基準デザインからの配置配線が再利用され、 QoR (結果の品質) の予測性が保持されます。 このフローは、変更されたデザインと基準デザインが 95% 以上類似している場合に も効果的です。

図 1-20 に、 インク リ メンタル コンパイル デザイン フローを示します。

X-Ref Target - Figure 1-20

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

インプリ メンテーシ ョ ン japan.xilinx.com 42UG904 (v2014.1) 2014 年 4 月 2 日

Page 43: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

インク リ メンタル コンパイル フロー (図 1-20) では、基準デザインと現在のデザインの 2 つのデザインを使用します。

基準デザイン

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

配置、 配線、 またはその両方がどれだけ含まれたチェッ クポイン トでも使用可能です。 基準デザインには、 タイ ミ ング ク ロージャを達成するためにコード変更、 フロアプラン、 制約変更した際のデザインの実行結果であるデザインチェッ クポイン ト (DCP) を使用できます。

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

現在のデザイン

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

• RTL の変更

• ネッ ト リ ス トの変更

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

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

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

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

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

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

• 基準デザイン チェッ クポイン トからの配線は、一致ネッ ト を配線するためにロード ピンごとに再利用されます。ネッ ト リ ス トの変更によ り ロード ピンがなくなった場合、その配線は破棄されるので、配線の一部のみが再利用されるこ と もあ り ます。

インク リ メンタル配置およびインク リ メンタル配線では、 ネッ ト リ ス トの配線性が向上する場合、 または基準デザインと同等のパフォーマンスが保持される場合、セルの配置およびネッ トの配線が再利用される代わりに破棄されることがあ り ます。

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 43UG904 (v2014.1) 2014 年 4 月 2 日

Page 44: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

RTL の小さな変更による影響

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

• HDL コードの定数値を変更する。

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

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

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

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

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

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

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

phys_opt_design の使用

基準チェッ クポイン ト を phys_opt_design を使用して作成した場合は、インク リ メンタル run でも phys_opt_designを使用してください。 このよ うにする と、 基準デザインで phys_opt_design によ り実行された配置の 適化がキャプチャされ、 関連の配線が再利用されます。 phys_opt_design には place_design および route_design のよ うにインク リ メンタル モードはあり ませんが、 変更されたデザインで基準デザインと同様のロジック変換が実行されます。

配線後の基準デザインと現在のデザインのネッ ト リ ス ト類似性を記録します。ネッ ト リ ス トの一致パーセン トが低い場合、 phys_opt_design オプシ ョ ンでロジッ ク 適化で多量の 適化が実行されたためである可能性があ り ます。そのため、配線後のチェッ クポイン ト よ り も配置後のチェッ クポイン トの方が基準デザインと して適しているこ と もあ り ます。

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

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

デザイン間の差異が少ないほど、基準デザインからの配置配線の再利用が効率的に実行されます。基準デザインと現在のデザインの一致パーセン トが高い方が、 配置配線が再利用される確率が高くな り ます。

インクリ メンタル再利用サマリ

再利用リポートには、Netlist Similarity Summary (ネッ ト リ ス トの類似性サマリ ) と Implementation Reuse Summary (インプリ メンテーシ ョ ン再利用サマリ ) の 2 つのセクシ ョ ンがあ り ます。 Netlist Similarity Summary は、 現在のデザインに含まれる論理オブジェク トで基準デザインのオブジェク トに一致するものの数を示します。 これは、デザインに変更を加えてアップデート した後に、 論理的にどれだけ類似しているかを示します。

Implementation Reuse Summary は、一致している論理オブジェク トの物理データの再利用を示し、セル、ポート、ネットの再利用率、 基準デザインからの配置および配線情報が含まれます。 再利用されなかったセルに対しては、 ネッ トリ ス トに含まれる新規セル (基準デザインに存在しないセル) およびデザインの変更によ り配置が不正になったため配置が破棄されたセルが示されます。 ネッ トに対しては、 完全に再利用された配線、 一部が再利用された配線、 新規ネッ ト (基準デザインに存在しないネッ ト ) が示されます。

インプリ メンテーシ ョ ン japan.xilinx.com 44UG904 (v2014.1) 2014 年 4 月 2 日

Page 45: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

次に、 再利用レポートの例を示します。

1. Netlist Similarity Summary-----------------------------

+---------------+-------+-------+------------+| Type | Count | Total | Percentage |+---------------+-------+-------+------------+| Matched Cells | 3609 | 3618 | 99.75 || Matched Ports | 71 | 71 | 100.00 || Matched Nets | 6154 | 6171 | 99.72 |+---------------+-------+-------+------------+

2. Implementation Reuse Summary-------------------------------

+------------------------------------------------------+-------+-------+------------+| Type | Count | Total | Percentage |+------------------------------------------------------+-------+-------+------------+| Reused Cells | 3607 | 3618 | 99.69 || Reused Ports | 71 | 71 | 100.00 || Reused Nets | 5135 | 5155 | 99.61 || | | | || Non-Reused Cells | 11 | 3618 | 0.30 || New | 9 | 3618 | 0.24 || Discarded illegal placement due to netlist changes | 2 | 3618 | 0.05 || Fully Reused nets | 4776 | 5155 | 92.64 || Partially reused nets | 359 | 5155 | 6.96 || Non-Reused nets | 20 | 5155 | 0.38 |+------------------------------------------------------+-------+-------+------------+

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

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

基準デザインと現在のデザインの 95% のセルが一致している場合、 通常の配置配線と比較して実行時間が半分になり、 インク リ メンタル配置配線の使用によ り QoR の予測性を保持できます。

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

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

セルの再利用率が低く、 インク リ メンタル コンパイル フローの使用による実行時間および QoR 予測性の利点が得られない場合は、 デフォルトの配置配線が実行されます。 この場合、 次のよ うなク リ ティカル警告が表示されます。

CRITICAL WARNING: [Vivado_Tcl 4-208] Running default Place and Route flow, as design objects reuse percentage is too low.Clearing placement and routing information, reused from last 'read_checkpoint -incremental' command.

インプリ メンテーシ ョ ン japan.xilinx.com 45UG904 (v2014.1) 2014 年 4 月 2 日

Page 46: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

次の要素が実行時間の短縮に影響します。

• タイ ミ ング ク リ ティカル エリ アの変更量。 ク リ ティカル パスの配置配線を再利用できない場合、 タイ ミ ングを保持するのにエフォートがよ り必要とな り ます。 また、デザインの小さな変更によ り基準デザインに存在しないタイ ミ ング問題が発生した場合、 エフォートがさ らに必要となって実行時間が長くなる可能性があ り、デザインのタイ ミ ングが満たされないこ と もあ り ます。

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

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

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

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

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

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

2. opt_design を実行します。

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

4. place_design を実行します。

5. phys_opt_design を実行します (オプシ ョ ン)。 基準デザインで phys_opt_design が使用されている場合に実行します。

6. route_design を実行します。

link_design; # to load the current designopt_designread_checkpoint -incremental <dcp_file>place_design phys_opt_design; #if used in reference designroute_design

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

• -resynth_area

• -resynth_seq_area

• -directive ExploreArea

• -directive ExploreAreaSequential

推奨 : インク リ メンタル コンパイル フローを実行する際は、上記 4 つの opt_design コマンド オプシ ョ ンを使用しないよ うにして ください。

インプリ メンテーシ ョ ン japan.xilinx.com 46UG904 (v2014.1) 2014 年 4 月 2 日

Page 47: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

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

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

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

図 1-21 に、 [Project Settings] ダイアログ ボッ クスの [Implementation] ページで [Incremental compile] を設定している例を示します。

インプリ メンテーシ ョ ン japan.xilinx.com 47UG904 (v2014.1) 2014 年 4 月 2 日

Page 48: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

注記 : インク リ メンタル コンパイル フローを実行している場合、 インプ リ メンテーシ ョ ン コマンドの -directiveオプシ ョ ンおよびス ト ラテジは、 目的が異なるため無視されます。

現在の run でインク リ メンタル コンパイルをディ スエーブルにするには、 次の手順に従います。

1. [Set Incremental Compile] ダイアログ ボッ クスで [Use checkpoint] フ ィールドを空にするか、または [ImplementationRun Properties] ビューの [Properties] タブで [INCREMENTAL_CHECKPOINT] フ ィールドを空にします。

2. Tcl コンソールで次のコマンドを実行します。

reset_property INCREMENTAL_CHECKPOINT [current_run]

X-Ref Target - Figure 1-21

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

インプリ メンテーシ ョ ン japan.xilinx.com 48UG904 (v2014.1) 2014 年 4 月 2 日

Page 49: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

余った配線セグメン ト

現在のデザインから削除されていたり、配置時に移動されているセルのため、基準デザインからの配線セグメン トに余るものが出てしま う こ とがあ り ます。 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.

Synplify コンパイル ポイン トの使用

インク リ メンタル コンパイル フローは、基準デザインと変更されたデザインがほとんど同じである (理想的にはセルが 95% 以上一致している ) 場合に も効果的です。 Synplify コンパイル ポイン ト などの合成フローは、 RTL の変更によるネッ ト リ ス トの変更量を 小限に抑えます。コンパイル ポイン トは論理的な境界で、この境界を越える 適化は実行されません。 これがデザイン パフォーマンスに影響する可能性はあ り ますが、 インク リ メンタル コンパイルと共に使用する と、 よ り実行時間が短縮され、 予測性が向上します。

Synplify では、 自動と手動の 2 つのコンパイル ポイン ト フローを使用できます。 自動コンパイル ポイン ト モードでは、既存の階層および使用率予測に基づいて、合成によ り コンパイル ポイン トが自動的に選択されます。 これはプッシュボタン モードです。 フローをイネーブルにする以外は、ユーザーの操作は必要あ り ません。 このフローをイネーブルにするには、GUI で [Auto Compile Point] チェッ ク ボッ クスをオンにするか、Synplify プロジェク トで次を設定します。

set_option -automatic_compile_point 1

手動コンパイル ポイン ト フローは、 柔軟性があ り ますが、 ユーザーがコンパイル ポイン ト を選択する必要があ り ます。デザインをコンパイルした後、SCOPE エディ ターの [Compile Points] タブを使用するか、define_compile_point設定を使用します。 コンパイル ポイン ト フローの詳細は、 Synplify のオンライン ヘルプを参照してください。

インクリ メンタル フローでのチェ ックポイン トの保存

read_checkpoint -incremental で現在のデザインに基準チェッ クポイン ト を適用する と、インク リ メンタル再利用データがフローを通して保持されます。 チェッ クポイン ト を保存し、 同じ Vivado Design Suite セッシ ョ ンまたは異なる Vivado Design Suite セッシ ョ ンに読み込み直すと、インク リ メンタル コンパイル モードが保持されます。次のよ うなコマンド シーケンスを実行する と します。

opt_design; # optimize the current designread_checkpoint -incremental reference.dcp; # apply reference data to current designwrite_checkpoint incr.dcp; # save a snapshot of the current designread_checkpoint incr.dcpplace_designwrite_checkpoint top_placed.dcp; # save incremental placement resultroute_design

read_checkpoint incr.dcp を実行する と、Vivado ツールでインク リ メンタル データが存在するこ とが検出され、その後の place_design および route_design コマンドはインク リ メンタル モードで実行されます。

インプリ メンテーシ ョ ン japan.xilinx.com 49UG904 (v2014.1) 2014 年 4 月 2 日

Page 50: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

次のコマンド シーケンスでは、Vivado Design Suite を終了して再起動しても、route_design コマンドは基準チェックポイン ト reference.dcp を使用してインク リ メン ト モードで実行されます。

read_checkpoint top_placed.dcpphys_opt_designroute_design

制約の競合

変更したデザインの制約が基準チェッ クポイン トの物理データ と競合するこ とがあ り ます。競合が発生した場合、変更したデザインの制約が優先されます。 この例を次に示します。

制約競合の例

セル cell_A を固定ロ ケーシ ョ ン RAMB36_X0Y0 に割 り 当て る制約があ る と し ます。 基準チェ ッ ク ポ イ ン トreference.dcp では、 cell_A は RAMB36_X0Y1 に配置されており、 RAMB36_X0Y0 には別のセル cell_B が配置されています。

read_checkpoint -incremental reference.dcp を実行する と、cell_A が RAMB36_X0Y0 に配置され、cell_Bの配置は解除されます。 セル cell_B は、 インク リ メンタル配置で配置されます。

重要 : インク リ メンタル コンパイルを使用する場合、 Pblock は使用できません。 Pblock を使用する と、処理不可能な配置の競合が発生する可能性があ り ます。

インクリ メンタル コンパイルのアドバンス制御

read_checkpoint コマンドには、基準チェッ クポイン トからのセル配置の再利用を制御する 3 つのオプシ ョ ンがあり ます。 これらのオプシ ョ ンは read_checkpoint -incremental オプシ ョ ンと共に使用する必要があ り ます。

-only_reuse オプシ ョ ン

-only_reuse <cell objects>

-only_reuse オプシ ョ ンは、 セル配置の再利用を指定のセルのみに制限します。 下位セルまたは階層セルを指定できます。 次に例を示します。

• routed.dcp の 上位インスタンス mem_ctrl_inst からの配置のみを再利用する場合 :

read_checkpoint -incremental routed.dcp -only_reuse [get_cells mem_ctrl_inst]

• routed.dcp 内のブロ ッ ク RAM の配置のみを再利用する場合 :

read_checkpoint -incremental routed.dcp -only_reuse [get_cells -hier -filter { PRIMITIVE_TYPE =~ BMEM.bram.* } ]

インプリ メンテーシ ョ ン japan.xilinx.com 50UG904 (v2014.1) 2014 年 4 月 2 日

Page 51: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

-dont_reuse オプシ ョ ン

-dont_reuse <cell objects>

-dont_reuse オプシ ョ ンは、 指定のセル以外のセルすべての配置を再利用します。 下位セルまたは階層セルを指定できます。 次に例を示します。

• routed.dcp に含まれる 上位インスタンス mem_ctrl_inst 以外のすべてのセルの配置を再利用する場合 :

read_checkpoint -incremental routed.dcp -dont_reuse [get_cells mem_ctrl_inst]

• routed.dcp に含まれるブロ ッ ク RAM 以外のすべての配置を再利用する場合 :

read_checkpoint -incremental routed.dcp -dont_reuse [get_cells -hier -filter { PRIMITIVE_TYPE =~ BMEM.bram.* } ]

-fix_reuse オプシ ョ ン

-fix_reuse オプシ ョ ンは、-only_reuse または -dont_reuse オプシ ョ ンと共に使用し、再利用されたセルの配置を固定します。 次に例を示します。

• routed.dcp 内のブロ ッ ク RAM の配置のみを再利用し、 再利用されたセルの配置を固定する場合 :

read_checkpoint -incremental routed.dcp -only_reuse [get_cells -hier -filter { PRIMITIVE_TYPE =~ BMEM.bram.* } ] -fix_reuse

通常、 再利用された配置および配線は変更可能です。 変更されないよ うにする場合に、 -fix_reuse を指定します。

RAM セルのロケーシ ョ ンが適用された後、 セルの IS_LOC_FIXED プロパティが TRUE に設定されます。

インクリ メンタル コンパイル後のアドバンス解析

再利用のアドバンス解析用に、 レポート、 タイ ミ ング ラベル、 およびオブジェク ト プロパティを使用できます。

再利用レポート

report_incremental_reuse コマンドには、詳細な解析用に report_utilization と同様のオプシ ョ ンがあ ります。

-cells <list of cells>

-cells オプシ ョ ンを使用する と、 デザイン全体の再利用ではなく、 指定のセルのみの再利用がレポート されます。

例 : ブロ ッ ク RAM のみの再利用をレポートする場合

report_incremental_reuse -cells [get_cells -hierarchical -filter { PRIMITIVE_TYPE =~ BMEM.bram.* } ]

インプリ メンテーシ ョ ン japan.xilinx.com 51UG904 (v2014.1) 2014 年 4 月 2 日

Page 52: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

インクリ メンタル再利用サマリ

1. Netlist Similarity Summary-----------------------------+---------------+-------+-------+------------+| Type | Count | Total | Percentage |+---------------+-------+-------+------------+| Matched Cells | 16 | 16 | 100.00 || Matched Ports | 71 | 71 | 100.00 || Matched Nets | 6154 | 6171 | 99.72 |+---------------+-------+-------+------------+

2. Implementation Reuse Summary-------------------------------

+------------------+-------+-------+------------+| Type | Count | Total | Percentage |+------------------+-------+-------+------------+| Reused Cells | 16 | 16 | 100.00 || Non-Reused Cells | 0 | 16 | 0.00 |+------------------+-------+-------+------------+

-hierarchical オプシ ョ ンを使用する と、 各階層レベルでのセルの再利用が表示されます。次に、 report_incremental_reuse -hierarchical の例を示します。

注記 : このレポート例は、 ページに収めるため、 切り詰められています。

階層インプリ メンテーシ ョ ン再利用サマリ

1. Summary----------

+--------------------------+------------------+--------+-----+---------------------+| Instance | Module | Reused | New | Discarded(Illegal)* | ...+--------------------------+------------------+--------+-----+---------------------+| bft | (top) | 3607 | 9 | 2 || (bft) | (top) | 210 | 9 | 2 || arnd1 | round_1 | 256 | 0 | 0 || transformLoop[0].ct | coreTransform_43 | 32 | 0 | 0 || transformLoop[1].ct | coreTransform_38 | 32 | 0 | 0 || transformLoop[2].ct | coreTransform_42 | 32 | 0 | 0 || transformLoop[3].ct | coreTransform_40 | 32 | 0 | 0 || transformLoop[4].ct | coreTransform_45 | 32 | 0 | 0 |

...

+--------------------------+------------------+--------+-----+---------------------+* Discarded illegal placement due to netlist changes** Discarded to improve timing*** Discarded placement by user**** Discarded due to its control set source is unguided***** Discarded due to its connectivity has Loc Fixed Insts

上位階層から各セルの再利用ステータスがレポート され、 その後各階層レベルがレポート されます。 初のサブモジュールに含まれる 下位階層に到達する と、 次のサブモジュールに進みます。

インプリ メンテーシ ョ ン japan.xilinx.com 52UG904 (v2014.1) 2014 年 4 月 2 日

Page 53: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

この例では、 上位セルは bft で、 再利用されたセルは合計 3607 個、 新規セルは 9 個あり ます。 bft がかっこで囲まれた行は、 bft に含まれ、 そのサブモジュールに含まれていないセルの再利用ステータスを示します。 3607 個のセルのうち、 210 個が bft に含まれ、 その他はサブモジュールに含まれます。 新規セル 9 個は、 すべて bft 内にあり ます。 bft 内では、 サブモジュール arnd1 で 256 個のセルが再利用されていますが、 arnd1 自体には再利用されたセルは含まれず、 サブモジュール transformLoop[0].ct、 transformLoop[1].ct などのみに含まれます。

各レベルでのセルの再利用ステータスを示す 5 つの列があ り ますが、 上記の例には [Discarded(Illegal)] のみが示されています。 これらの列に対しては注記があ り、 配置が破棄された理由が示されます。

* Discarded illegal placement due to netlist changes (ネッ ト リ ス ト変更によ り不正になった配置を破棄)

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

*** Discarded placement by user (ユーザーの指定によ り配置を破棄)

**** Discarded due to its control set source is unguided (制御セッ ト ソースがガイ ド されてないため破棄)

***** Discarded due to its connectivity has Loc Fixed Insts (接続にロケーシ ョ ンが固定されたインスタンスがあるため破棄)

-hierarchical_depth オプシ ョ ンを使用する と、 レポートするサブモジュールのレベル数を制限できます。次に、先ほどの例で -hierarchical_depth を 1 に設定した場合に得られるレポートの例を示します。

report_incremental_reuse -hierarchical -hierarchical_depth 1

1. Summary----------

+----------+--------+--------+-----+---------------------+| Instance | Module | Reused | New | Discarded(Illegal)* | ...+----------+--------+--------+-----+---------------------+| bft | (top) | 3607 | 9 | 2 |+----------+--------+--------+-----+---------------------+

この場合、 レポート されるのは 上位 bft のみにな り ます。 -hierarchical_depth を 2 に設定する と、 bft とbft に含まれる階層のみがレポート され、 それよ り下の階層セルはレポート されません。

階層インプリ メンテーシ ョ ン再利用サマリ

1.Summary----------

+--------------------------------+---------------+--------+-----+---------------------+| Instance | Module | Reused | New | Discarded(Illegal)* |+--------------------------------+---------------+--------+-----+---------------------+| bft | (top) | 3607 | 9 | 2 || (bft) | (top) | 210 | 9 | 2 || arnd1 | round_1 | 256 | 0 | 0 || arnd2 | round_2 | 256 | 0 | 0 || arnd3 | round_3 | 256 | 0 | 0 || arnd4 | round_4 | 256 | 0 | 0 || egressLoop[0].egressFifo | FifoBuffer_6 | 173 | 0 | 0 |...

インプリ メンテーシ ョ ン japan.xilinx.com 53UG904 (v2014.1) 2014 年 4 月 2 日

Page 54: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 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 placement to improve timing (タイ ミ ングを向上するため配置を破棄)

° Discarded illegal placement due to netlist changes (ネッ ト リ ス トの変更による不正な配置を破棄)

インプリ メンテーシ ョ ン japan.xilinx.com 54UG904 (v2014.1) 2014 年 4 月 2 日

Page 55: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

ネッ トに可能な値は次のとおりです。

• REUSED

• NON_REUSED

• PARTIALLY_REUSED

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 55UG904 (v2014.1) 2014 年 4 月 2 日

Page 56: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

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

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

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

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

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

[Implementation Completed] ダイアログ ボッ クスで、 次を実行します。

1. 次のいずれかのオプシ ョ ンをオンにします。

° [Open Implemented Design]ネッ ト リ ス ト 、 デザイン制約、 ターゲッ ト パーツ、 配置配線の結果を Vivado IDE に読み込み、 必要に応じてデザインを解析できるよ うにします。

° [Generate Bitstream][Generate Bitstream] ダイアログ ボッ クスを開きます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 12] を参照して ください。

° [View Reports]Vivado ツールでインプ リ メ ンテーシ ョ ン中に生成されたレポート ファ イルを選択して表示できる [Reports]ビューを開きます。 詳細は、 59 ページの 「インプリ メンテーシ ョ ン レポートの表示」 を参照して ください。

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

X-Ref Target - Figure 1-22

図 1-22 : プロジェク ト モード : [Implementation Completed] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 56UG904 (v2014.1) 2014 年 4 月 2 日

Page 57: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

メ ッセージの表示

重要 : すべてのメ ッセージを確認して ください。 メ ッセージには、 デザインのパフォーマンス、 消費電力、 エ リ ア、配線を向上するための推奨事項が記載される場合があ り ます。 ク リ ティカル警告メ ッセージにも、解決すべきタイ ミング制約の問題が表示されるこ とがあ り ます。

非プロジェク ト モードでのメ ッセージの表示

非プロジェク ト モードでは、 Vivado ログ ファ イル (vivado.log) で次を確認します。

• 1 つのデザイン セッシ ョ ンで使用したコマンド

• コマンドからの結果およびメ ッセージ

推奨 : Vivado テキス ト エディ ターでログ ファ イルを開き、 すべてのコマンドの結果を確認して ください。 有益な情報が得られるこ とがあ り ます。

プロジェク ト モードでのメ ッセージの表示

プロジェ ク ト モードでは、 [Messages] ビューに [Log] ビューの内容がフ ィルターされたものが表示され、 主なメ ッセージ、 警告、 およびエラーのみが含まれます (図 1-23)。 [Messages] ビューは機能ごとに分類されており、 フ ィルターを適用するツールバー オプシ ョ ンを使用して、 特定のタイプのメ ッセージのみを表示できます。

プロジェク ト モードでメ ッセージを表示する際は、 次の機能を使用できます。

• 横にあるプラス記号 (+) をク リ ッ ク して展開し、 各メ ッセージを表示します。

• [Messages] ビューの上部にあるチェッ ク ボッ クスのオン/オフを切り替え、 エラー、 ク リ ティカル警告、警告、 情報メ ッセージを表示/非表示にします。

• [Messages] ビューでリ ンクを含むメ ッセージをク リ ッ クする と、 ソース ファイルが開き、 該当する行がハイライ ト されます。

• メ ッセージを右ク リ ッ ク して [Search for Answer Record] をク リ ッ クする と、 ザイ リ ンクス ウェブサイ トでそのメ ッセージに関連するアンサー データベースを検索できます。

X-Ref Target - Figure 1-23

図 1-23 : [Messages] ビュー

インプリ メンテーシ ョ ン japan.xilinx.com 57UG904 (v2014.1) 2014 年 4 月 2 日

Page 58: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

インクリ メンタル コンパイルのメ ッセージ 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

現在のデザインに含まれるネッ トが基準デザインのものと一致していません。

----------------------------------------------------------------------|Incremental Routing Reuse Summary |----------------------------------------------------------------------|Type | Count | Total | Percentage |----------------------------------------------------------------------|Fully reused nets | 13468| 13654| 98.64 ||Partially reused nets | 82| 13654| 0.60 ||Non Reused nets | 104| 13654| 0.76 |----------------------------------------------------------------------

インプリ メンテーシ ョ ン japan.xilinx.com 58UG904 (v2014.1) 2014 年 4 月 2 日

Page 59: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

インプリ メンテーシ ョ ン レポートの表示Vivado Design Suite では、 次の情報を含むさまざまなレポート を生成できます。

• タイ ミ ング、 タイ ミ ングの密集度、 タイ ミ ング サマリ

• ク ロ ッ ク、 ク ロ ッ ク ネッ ト ワーク、 クロ ッ ク使用率

• 消費電力、 スイ ッチング アクティビティ、 ノ イズ解析

レポート を表示する と、 次を実行できます。

• スク ロール バーを使用してレポート ファ イルを参照

• [Find] または [Find in Files] ボタンをク リ ッ ク し、 特定テキス ト を検索

• [Go to the Beginning] をク リ ッ ク してファ イルの冒頭に移動

• [Go to the End] をク リ ッ ク してファ イルの 後に移動

非プロジェク ト モードでのレポート生成

非プロジェク ト モードでは、 レポート を手動で生成する必要があ り ます

• 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

インプリ メンテーシ ョ ン japan.xilinx.com 59UG904 (v2014.1) 2014 年 4 月 2 日

Page 60: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

Vivado IDE でレポート を開く

これらのレポートは、Vivado IDE で開く こ とができます。上記の Tcl スク リプ ト例では、report_timing_summaryコマンドで次のオプシ ョ ンを使用しています。

• -file オプシ ョ ン : レポート をファ イルに保存します。

• -name オプシ ョ ン : レポート を Vivado IDE に表示します。

図 1-25 に、 Vivado IDE でレポート を開いた例を示します。

ヒン ト : レポート を保存するディレク ト リは、 レポートの生成を実行する前に存在している必要があ り ます。 ディ レク ト リがないとファ イルは保存されず、 エラー メ ッセージが表示されます。

インプリ メンテーシ ョ ン レポート コマンドに関する情報

Vivado IDE または Tcl コマンド プロンプ トで help Tcl コマンド を使用する と、 Tcl レポート コマンド とそのオプシ ョンに関する情報を表示できます。

Tcl レポート コマンドおよびそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』(UG835) [参照 15] を参照してください。

インプリ メンテーシ ョ ン japan.xilinx.com 60UG904 (v2014.1) 2014 年 4 月 2 日

Page 61: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

プロジェク ト モードでのレポート生成

プロジェク ト モードでは、多くのレポートが自動的に生成されます。 これらのレポートは、 [Reports] ビュー (図 1-24)にリ ス ト されます。

[Reports] ビューは、合成またはインプリ メン ト コマンドを実行する と自動的に開きます。開いていない場合は、次のいずれかの方法で開く こ とができます。

• [Project Summary] ビューで [Reports] リ ンクをク リ ッ ク します。

• [Window] → [Reports] をク リ ッ ク します。

ヒン ト : インプ リ メ ンテーシ ョ ン run の tcl.pre および tcl.post オプシ ョ ンを使用する と、 プロセスの各段階でカスタム レポート を出力できます。 これらのカスタム レポートは [Reports] ビューには表示されませんが、 ニーズに合わせてカスタマイズできます。 詳細は、 「インプ リ メンテーシ ョ ン run 設定の変更」 を参照して ください。

X-Ref Target - Figure 1-24

図 1-24 : [Reports] ビューの例

インプリ メンテーシ ョ ン japan.xilinx.com 61UG904 (v2014.1) 2014 年 4 月 2 日

Page 62: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

[Reports] ビューから表示されるレポートには、 run に関する情報が含まれます。 レポートは、 Vivado IDE でテキス ト形式で開きます (図 1-25)。

レポートからのクロスプローブ

プロジェク ト モードおよび非プロジェク ト モードの両方で、 レポート と [Device] ビューなどのビューに表示される関連デザイン データのクロスプローブがサポート されています。

• メニュー コマンドまたは Tcl コマンドを使用してレポート を生成する必要があ り ます。

• テキス ト形式のレポートではクロスプローブはサポート されていません。

たとえば、 [Reports] ビューには [Route Design] の下にテキス ト形式のタイ ミ ング サマリ レポートが含まれています (図 1-24)。

タイ ミ ングを解析する際は、 ク リ ティカル パスの配置および配線リ ソースなどのデザイン データを [Device] ビューに表示する と有益です。

Vivado IDE で [Tools] → [Timing] → [Report Timing Summary] をク リ ッ クする と、タイ ミ ング サマリ レポートが再生成され、 表示されたレポートからデザインの異なるビューにクロスプローブできます。

X-Ref Target - Figure 1-25

図 1-25 : 制御セッ ト レポート

インプリ メンテーシ ョ ン japan.xilinx.com 62UG904 (v2014.1) 2014 年 4 月 2 日

Page 63: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 1 章 : Vivado インプリ メンテーシ ョ ン プロセス

タイ ミ ング レポート と [Device] ビューのクロスプローブの例

図 1-26 に、 タ イ ミ ング サマ リ レポート と [Device] ビューのク ロスプローブの例を示します。 この非プロジェ ク トモードの例では、 次の手順が実行されています。

• 配線後のデザイン チェッ クポイン ト を Vivado IDE で開きます。

• report_timing_summary -name を使用して、 デザイン サマリ レポート を生成して開きます。

• [Device] ビューでは [Routing Resources] がオンになっています。

• タイ ミ ング サマリ レポートでタイ ミ ング パスを選択する と、 [Device] ビューでも選択されます (図 1-26)。

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

X-Ref Target - Figure 1-26

図 1-26 : タイ ミング レポート と [Device] ビューのクロスプローブ

インプリ メンテーシ ョ ン japan.xilinx.com 63UG904 (v2014.1) 2014 年 4 月 2 日

Page 64: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章

インプリ メンテーシ ョ ン コマンド

インプリ メンテーシ ョ ン コマンドについてザイ リ ンクス Vivado® Design Suite には、プロジェク ト ベースのデザインでインプ リ メンテーシ ョ ン プロセスを管理し、簡略化する多数の機能が含まれています。インプ リ メンテーシ ョ ン プロセスを段階ごとに手動で実行する機能も含まれます。

詳細は、 第 1 章の 19 ページの 「プロジェク ト モードでのインプリ メンテーシ ョ ンの実行」 を参照して ください。

非プロジェク ト モードでは、Tcl コマンドを使用してインプ リ メンテーシ ョ ン プロセスの各段階を手動で実行する必要があ り ます。

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

詳細は、 第 1 章の 16 ページの 「非プロジェク ト モードでのインプリ メンテーシ ョ ンの実行」 を参照して ください。

インプリ メンテーシ ョ ンのサブプロセスプロジェク ト モードでは、 インプ リ メンテーシ ョ ン コマンドは決まった順序で実行されます。 非プロジェク ト モードでは、 コマンドは同様の順序で実行できますが、繰り返し実行したり、プロジェク ト モード とは異なる順序で実行するこ と もできます。

重要 : インプ リ メンテーシ ョ ン コマンドは、 再配線モードで実行されます。

インプ リ メ ンテーシ ョ ン コマンドは、 再配線モードで実行されます。 これは、 インプ リ メ ンテーシ ョ ン コマンドを非プロジェク ト モードで実行する と、デザインがメモリに読み込まれ、 タスクが実行され、結果のデザインがメモ リに書き込まれるこ とを意味します。 これによ り、非プロジェク ト モードでの実行がよ り柔軟なものになり ます。次に例を示します。

• opt_design コマンドの後に opt_design -remap を実行リマップは opt_design コマンドの結果に対して実行されます。

• 一部のセルが配置されたデザインに対して place_design コマンドを実行既存のセル配置が place_design コマンドの開始点と して使用されます。

• 一部が配線されたデザインに対して route_design コマンドを実行既存の配線が route_design コマンドの開始点と して使用されます。

• セルが配置されていないデザインに対して route_design コマンドを実行セルが配置されている必要があるので、 エラーが発生します。

インプリ メンテーシ ョ ン japan.xilinx.com 64UG904 (v2014.1) 2014 年 4 月 2 日

Page 65: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

• 完全に配置配線されていないデザインに対して opt_design コマンドを実行ロジッ ク 適化で論理ネッ ト リ ス トが 適化され、配置されていない新しいセルおよび配線されていない新しいネッ トが作成される場合があ り ます。インプ リ メンテーシ ョ ンを完了するため配置配線を再実行する必要がある場合があ り ます。

プロジェク ト モードおよび非プロジェク ト モードのどちらでも、 Vivado インプ リ メンテーシ ョ ン プロセスはいくつかのサブプロセスで構成されています。

• 合成済みデザインを開くネッ ト リ ス ト 、 デザイン制約、 ターゲッ ト デバイス データを統合し、 インプ リ メンテーシ ョ ンを実行するデザインを メモリ内に構築します。

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

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

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

• 配置後の power_opt_design (オプシ ョ ン)配置後に消費電力を削減するするよ う追加の 適化を実行します。

• 配置後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン)配置に基づく予測タイ ミ ングを使用してロジッ クおよび配置を 適化します。ファンアウ トの大きいド ライバーの複製も含まれます。

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

• 配線後の phys_opt_design (デザインの物理 適化) (オプシ ョ ン)配線後の実際の遅延を使用して、 ロジッ ク、 配置、 および配線を 適化します。

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

注記 : ビッ ト ス ト リーム生成は、 厳密にはインプリ メンテーシ ョ ン run の一部ではあ り ませんが、 別の段階と して実行可能です。

この章では、 インプリ メンテーシ ョ ン プロセスの各段階と関連する Tcl コマンドの詳細を説明します。

次の表に、 サブプロセス と関連の Tcl コマンドを リ ス ト します。

Tcl レポート コマンドおよびそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』(UG835) [参照 15] を参照してください。

表 2-1 : インプリ メンテーシ ョ ンのサブプロセスと関連の Tcl コマンド

サブプロセス Tcl コマンド

合成済みデザインを開く synth_design

open_checkpoint

open_run

link_design

デザインの 適化 opt_design

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

デザインの配置 place_design

デザインの物理 適化 phys_opt_design

デザインの配線 route_design

ビッ ト ス ト リームの生成 write_bitstream

インプリ メンテーシ ョ ン japan.xilinx.com 65UG904 (v2014.1) 2014 年 4 月 2 日

Page 66: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

合成済みデザインを開くインプリ メンテーシ ョ ンでは、 まず 初に合成済みデザインからのネッ ト リ ス ト を メモ リに読み込み、デザイン制約を適用します。合成済みのデザインは、使用されるデザイン フローによってさまざまな方法で開く こ とができます。

メモリ内でのデザインの構築

メモ リ内にデザインを構築するため、 次のプロセスでネッ ト リ ス ト ファ イル、 制約ファイル、 およびターゲッ ト デバイスの情報が統合されます。

1. ネッ ト リ ス ト を統合します。

必要であれば、 複数のソースからのネッ ト リ ス ト を統合します。 デザインには、 構造 Verilog、 EDIF、 NGC を含めるこ とができます。

2. 従来のネッ ト リ ス ト プリ ミ ティブを現在サポート される Unisim プリ ミ ティブに変換します。

ヒン ト : report_transformed_primitives を使用する と、 変換されたセルのリ ス ト を生成できます。

3. 配置マクロを作成します。

• Vivado ツールでは、 接続または配置制約に基づいてセルの配置マクロが作成され、 配置が簡略化されます。

• 配置マクロには、 次のものがあ り ます。

° XDC ベースのマクロ

° 相対配置マクロ (RPM)

注記 : RPM は、 個別のセルではなくグループと して配置されます。

° 複数の CLB に配置する必要のある長いキャ リー チェーン

注記 : キャ リー チェーンを構成するプリ ミ ティブは 1 つのマクロに含め、縦方向に並ぶ複数のスライスに配置されるよ うにする必要があ り ます。

Tcl コマンド

合成済みデザインを メモリに読み込むには、デザインのソース ファ イルおよびデザインのステートに応じて、次の表に示す Tcl コマンドを使用します。

表 2-2 : Tcl コマンドを使用可能なモード

コマンド プロジェク ト モード 非プロジェク ト モード

synth_design X X

open_checkpoint X

open_run X

link_design X X

インプリ メンテーシ ョ ン japan.xilinx.com 66UG904 (v2014.1) 2014 年 4 月 2 日

Page 67: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

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>] [-directive <arg>] [-rtl] [-bufg <arg>] [-no_lc] [-fanout_limit <arg>] [-shreg_min_size <arg>] [-mode <arg>] [-fsm_extraction <arg>] [-keep_equivalent_registers] [-resource_sharing <arg>] [-control_set_opt_threshold <arg>] [-max_bram <arg>] [-max_dsp <arg>] [-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) [参照 17] および 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 8] を参照して ください。

このサンプル スク リプ トでは、 VHDL および Verilog ファ イルが読み込まれ、 指定したデバイスでデザインが合成されます。 synth_design コマンドが完了する と、デザインが開き、 メモ リに読み込まれます。合成が完了する と、デザイン チェッ クポイン トが保存されます。

Tcl コマンドおよびそのオプシ ョ ンの詳細な説明は、 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835)[参照 15] を参照してください。

open_checkpoint

これまでのリ リースでは、チェッ クポイン ト デザインを読み込んで初期化するのに read_checkpoint コマンドを使用しました。バージ ョ ン 2014.1 からは、 これに open_checkpoint コマンドを使用します。read_checkpoint コマンドの動作は変更されており、 チェッ クポイン ト ファイルがソース ファイルのリ ス トに追加されるだけです。 この動作は、read_verilog、read_vhdl、read_xdc などのほかの read コマンド と一貫しています。read_checkpointコマンドを使用した場合、 デザインを初期化し、 メモ リに読み込むために link_design コマンド も実行する必要があり ます。

open_checkpoint コマンドを使用する と、 デザイン チェッ クポイン ト ファ イル (DCP) が開き、 新しいイン メモ リプロジェク トが作成されて、 新しいプロジェク トがチェッ クポイン トの内容で初期化されます。 このコマンドでは、上位デザイン チェッ クポイン ト または独立階層 (OOC) モジュールに対して作成されたチェッ クポイン ト を開く こ

とができます。

チェッ クポイン ト を開く場合、あらかじめプロジェク ト を作成する必要はあ り ません。open_checkpoint コマンドは、 デザイン データを メモ リに読み込み、 デザインを非プロジェク ト モードで開きます。 プロジェク ト モードおよび非プロジェク ト モードの詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892) [参照 17]を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 67UG904 (v2014.1) 2014 年 4 月 2 日

Page 68: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

重要 : インク リ メンタル コンパイル フローでは、 これまでと同様に read_checkpoint コマンドを使用して基準デザイン チェッ クポイン ト を指定します。

open_checkpoint の構文

open_checkpoint [-part <arg>] [-quiet] [-verbose] <file>

open_checkpoint のスクリプ ト例

# Read the specified design checkpoint and create an in-memory design.open_checkpoint C:/Data/post_synth.dcp

このサンプル スク リプ トでは、 合成済みデザイン チェッ クポイン ト ファ イルが開きます。

open_run

合成済みまたはインプリ メン ト済み run を開き、 メモ リに読み込みます。

重要 : open_run コマンドは、プロジェク ト モードでのみ使用できます。デザイン run は非プロジェク ト モードではサポート されません。

open_run コマンドをインプ リ メンテーシ ョ ン前の RTL デザインに使用し、 完了した Vivado 合成 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 68UG904 (v2014.1) 2014 年 4 月 2 日

Page 69: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

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 コマンドを実行してタイ ミ ング制約をチェッ クし、 デザインの目標が適切であるかど うかを確認してください。 Tcl コマンドの詳細は、 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 15] を参照して ください。

インプリ メンテーシ ョ ン japan.xilinx.com 69UG904 (v2014.1) 2014 年 4 月 2 日

Page 70: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

ロジック最適化ロジッ ク 適化は、配置の前に効率的なロジッ ク デザインを得るために実行します。 ロジッ ク 適化では、ネッ ト リス ト接続性チェッ クが実行され、複数のド ライバーを持つネッ トや駆動されていない入力などの発生する可能性のあるデザイン問題に対して警告メ ッセージが表示されます。 ブロ ッ ク RAM の消費電力 適化も実行されます。

デザインの接続エラーはロジッ ク 適化段階に伝搬される こ とが多く、 そこでエラーが発生します。 インプ リ メ ンテーシ ョ ンを実行する前に、 DRC レポート を使用して接続が有効であるこ とを確認するこ とが重要です。

ロジッ ク 適化では、 DONT_TOUCH プロパティの値が TRUE に設定されているセルおよびネッ トの 適化は実行されません。

ロジッ ク 適化を実行する Tcl コマンドは opt_design です。

使用可能なロジック最適化

Vivado ツールでは、 ロジッ ク 適化はメモ リ内のデザインに対して実行されます。

重要 : 特定のロジッ ク 適化に対応するコマンド オプシ ョ ンを指定する と、その 適化のみが実行されます。ほかの適化は、 通常デフォルトで実行されるものも、 ディ スエーブルになり ます。

リ ターゲッ ト (デフォルト )

適化がしやすくなるよ うに、 セル タイプを別のセル タイプに置換します。 たとえば、 MUXF7 はほかの LUT と統合できるよ うに LUT3 に置換されます。また、 インバーターのよ うな単純なセルはダウンス ト リーム ロジッ クに吸収されます。

定数伝搬 (デフォルト )

定数値をロジッ クに伝搬するこ とで、 ロジッ クは次のよ うにな り ます。

• 削除 :例 : 定数 0 が入力される AND

• 縮小 :例 : 定数 1 が入力される 3 入力 AND を 2 入力 AND に縮小

• 冗長 :例 : 0 が入力される 2 入力 OR を 1 本のワイヤに削減

スイープ (デフォルト )

ロードのないセルを削除します。

ブロック RAM の消費電力最適化 (デフォルト )

ブロッ ク RAM セルに対して消費電力の 適化をイネーブルにします。 次を実行します。

• 完全なデュアル ポート RAM の読み出されないポートの WRITE_MODE を NO_CHANGE に変更

• ブロッ ク RAM の出力にクロ ッ ク ゲーティングを適用

インプリ メンテーシ ョ ン japan.xilinx.com 70UG904 (v2014.1) 2014 年 4 月 2 日

Page 71: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

リマップ

複数の LUT を 1 つの LUT にま とめてロジッ クの深さを削減します。

エリア モードでの再合成

エリ ア モードで合成を再実行し、 LUT の数を削減します。

順序エリアの再合成

組み合わせロジッ クおよび順序ロジッ クを削減するよ う再合成を実行します。エ リア モードでの再合成 適化のスーパーセッ ト を実行します。

重要 : 各ロジッ ク 適化はメモ リ内のデザインに適用され、 元の合成済みデザインには適用されません。

opt_design

ロジッ ク 適化を実行します。

opt_design の構文

opt_design [-retarget] [-propconst] [-sweep] [-bram_power_opt] [-remap] [-resynth_area] [-resynth_seq_area] [-directive <arg>] [-quiet] [-verbose]

opt_design のスクリプ ト例

# Run logic optimization with block RAM Power Optimization disabled, save results in a checkpoint, report timing estimatesopt_design -directive NoBramPowerOptwrite_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 再マップを含めてロジッ ク レベルを削減します。

インプリ メンテーシ ョ ン japan.xilinx.com 71UG904 (v2014.1) 2014 年 4 月 2 日

Page 72: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

• ExploreSequentialArea

レジスタおよび関連の組み合わせロジッ クを縮小するこ とを優先して 適化を複数回実行します。

• RuntimeOptimized

反復回数を少なく し、 デザイン パフォーマンスよ り も実行時間を短縮するこ とを優先します。

• NoBramPowerOpt

opt_design コマンドの RAM 消費電力 適化以外のデフォルト 適化をすべて実行します。

-verbose オプシ ョ ンの使用

適化結果を解析するには、 -verbose オプシ ョ ンを使用し、 opt_design の 適化の影響を受けたロジッ クの詳細を確認します。

-verbose オプシ ョ ンを使用する と大量のメ ッセージが表示されるので、 デフォル ト ではオフになっています。-verbose オプシ ョ ンは、 有益だと思われる場合に使用して ください。

推奨 : 大型デザインでツールの実行時間を短縮するには、 -verbose オプシ ョ ンはシェル モードまたはバッチ モードでのみ使用し、 GUI モードでは使用しないでください。

重要 : opt_design コマンドは、 メモ リ内のデザインに対して実行されます。 複数回実行した場合、 前回の run の結果が 適化されます。 そのため、 -verbose オプシ ョ ンを追加する前にインプ リ メン ト済みデザインを読み込み直す必要がある場合があ り ます。

ロジック最適化制約

ロジッ ク 適化中、 DONT_TOUCH プロパティが認識され、 このプロパティが設定されているネッ トは削除されません。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 8] を参照して ください。

DONT_TOUCH は 下位セルに設定します。 階層セルに DONT_TOUCH を設定する とセルの境界は保持されますが、 セル内では 適化が実行される可能性はあ り ます。

グローバル クロック バッファーの挿入

ロジッ ク 適化では、 ファンアウ トの大きいリセッ トおよびクロ ッ ク ネッ トへのグローバル ク ロ ッ ク バッファーの挿入は、デザインに含まれるグローバル クロ ッ ク バッファーの総数が 12 を超えないよ うに実行されます。 リセッ トネッ トではファンアウ トが 50,000 よ り大き く、 ク ロ ッ ク ネッ トではファンアウ トが 30 以上であるこ とが必要です。

自動クロッ ク バッファー挿入は、 ボ ト ムアップ フローで有益です。 グローバル ク ロ ッ ク バッファーの挿入は、 通常下位モジュールでは実行されません。 これは、 下位モジュールは独立階層モジュール (OOC) であ り、 ブラ ッ ク ボックスであるためにモジュールに含まれるク ロ ッ クが認識されないからです。

インプリ メンテーシ ョ ン japan.xilinx.com 72UG904 (v2014.1) 2014 年 4 月 2 日

Page 73: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

消費電力の最適化ク ロ ッ ク ゲーティングを使用して、 ダイナミ ッ ク消費電力を 適化します (オプシ ョ ン)。消費電力の 適化は、プロジェク ト モードおよび非プロジェク ト モード両方で使用でき、 ロジッ ク 適化後または配置後に実行してデザインの消費電力を 適化できます。 消費電力の 適化には、 ク ロ ッ クやロジッ クを変更せずに FPGA デザインのダイナミ ッ ク消費電力を削減するク ロ ッ ク ゲーティング ソ リ ューシ ョ ンが含まれます。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力解析および 適化』 (UG907) [参照 11] を参照して ください。

Vivado 消費電力解析

Vivado ツールでは、 レガシ IP ブロ ッ クおよびサードパーテ ィ IP ブロ ッ クを含む、 デザイン全体が解析され、 各クロッ ク サイクルでの結果に影響しないレジスタからの出力ロジッ クが特定されます。

クロック イネーブル (CE) の使用

Vivado 消費電力 適化では、 ザイ リ ンクス 7 シ リーズ FPGA デバイスのロジッ クに多数含まれるク ロ ッ ク イネーブル (CE) が利用されます。細粒度クロッ ク ゲーティングまたはロジッ ク ゲーティング信号が作成され、 余分なスイ ッチイング アクティビティが除去されます。

また、フ リ ップフロ ップ レベルでは、CE はフ リ ップフロ ップの D 入力とフ ィードバッ ク Q 出力のいずれかを選択するのではなく、 ク ロ ッ クをゲーティングしているので、 CE 入力のパフォーマンスが向上するだけではなく、 ク ロ ックの消費電力も削減されます。

クロック ゲーティング

ク ロ ッ ク ゲーティングでは、 シンプル デュアル ポート または真のデュアル ポート モード両方の専用ブロ ッ ク RAMの消費電力も削減されます (図 2-2)。

これらのブロッ クには、 次のイネーブルが含まれます。

• アレイ イネーブル

• ラ イ ト イネーブル

• 出力レジスタのク ロッ ク イネーブル

節約される消費電力のほとんどはアレイ イネーブルの使用によるもので、データが書き込まれず、出力が使用されないと きに、 消費電力を削減する機能がインプリ メン ト されます。

X-Ref Target - Figure 2-1

図 2-1 : クロッ ク ゲーティ ング

インプリ メンテーシ ョ ン japan.xilinx.com 73UG904 (v2014.1) 2014 年 4 月 2 日

Page 74: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 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 : ブロック RAM イネーブルの利用

インプリ メンテーシ ョ ン japan.xilinx.com 74UG904 (v2014.1) 2014 年 4 月 2 日

Page 75: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

配置Vivado Design Suite 配置によ りネッ ト リ ス トのセルがターゲッ ト デバイスの特定サイ トに配置されます。 ほかのインプリ メンテーシ ョ ン コマンド と同様、 メモ リ内のデザインに対して処理が実行されます。

デザイン配置の最適化

Vivado の配置では、 次を 適化するよ う配置が実行されます。

• タイ ミ ング スラ ッ ク : タイ ミ ング ク リ ティカルなパスのセルの配置は、負のスラ ッ クが 小限になるよ う選択されます。

• 配線長 : 配線長を 小限に抑えるよ うに、 全体的な配置が実行されます。

• 密集 : ピンの密集度が監視され、 配線の密集を削減するためセルが分散されます。

デザイン ルール チェ ック

配置を開始する前に、 デザイン ルール チェ ッ ク (DRC) (report_drc で選択された DRC およびビル ト インの内部DRC) が実行されます。内部 DRC では、LOC 制約の設定されていない Memory Interface Generator (MIG) セル、競合する IOSTANDARD が設定された I/O バンクなどの不正な配置がレポート されます。

クロックおよび I/O 配置

DRC の実行後、 ク ロ ッ クおよび I/O セルが配置されてからその他のロジッ ク セルが配置されます。 ク ロ ッ ク と I/O セルは、選択したザイ リ ンクス デバイスに特定の複雑な配置規則によって関連しているこ とがよ くあるので、同時に配置されます。 IOB プロパティが設定されたレジスタ セルは、 IOB 値が TRUE のどのレジスタを I/O ロジッ ク サイ トにマップするかを決定するためにこの段階で処理されます。 配置で IOB プロパティの TRUE を適用できない場合は、ク リ ティカル警告が表示されます。

配置のターゲッ ト

この時点では、 次が配置のターゲッ ト とな り ます。

• 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 75UG904 (v2014.1) 2014 年 4 月 2 日

Page 76: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

クロック リソースの配置規則

ク ロ ッ ク リ ソースの配置は、 『7 シ リーズ FPGA ク ロ ッキング リ ソース ユーザー ガイ ド』 (UG472) [参照 13] および『UltraScale アーキテクチャ ク ロ ッキング リ ソース ユーザー ガイ ド』 (UG572) [参照 14] に示す配置規則に従う必要があ り ます。 たとえば、 グローバル ク ロ ッ ク バッファーを駆動する入力はクロ ッ ク兼用 I/O サイ トに配置する必要があ り、 デバイスの上半分または下半分のどちらか同じ側に配置する必要があ り ます。 これらのク ロ ッ ク配置規則も、論理ネッ ト リ ス トの接続およびデバイス サイ トに対して有効かど うかがチェッ ク されます。

クロックおよび I/O を配置できない場合

ク ロ ッ クおよび I/O の適切な配置が見つからなかった場合は、 違反のあった配置規則と、 影響を受けたセルの簡単な説明が表示されます。 まずサイ トにセルが暫定的に配置され、 その後配置問題を解決するために別のセルが配置されるこ とがあ り ます。 暫定的な配置によ り、 ク ロ ッ クおよび I/O 配置のエラーの原因がわかるこ とがよ くあ り ます。 暫定的な配置でエラーになったセルを手動で配置する と、 配置が改善するこ とがあ り ます。

ヒン ト : place_ports コマンドを実行してクロ ッ クおよび I/O を配置してから、 place_design コマンドを実行します。 ポート配置でエラーが発生した場合、 配置はメモ リに保存され、 エラーを解析できます。 詳細は、 Vivado Tclプロンプ トから place_ports -help を実行してください。

グローバル配置、 詳細配置、 パッキングおよび有効化

ク ロ ッ クおよび I/O を配置した後、 次の配置プロセスが実行されます。

• グローバル配置

• 詳細配置

• パッキングおおよび有効化

推奨 : 配置後に report_timing を実行し、 ク リ ティカル パスをチェッ ク して ください。 ネガティブ スラ ッ クが大きいパスは、 タイ ミ ング クロージャを達成するため、手動配置、制約の変更、 またはロジッ クの再構築が必要な場合があ り ます。

place_designデザインを配置します。 ほかのインプリ メンテーシ ョ ン コマンド と同様、 place_design コマンドはインク リ メンタルに実行されます。 部分的に配置されているデザインに対しては、 始めから配置し直すのではなく、 既存の配置が開始点と して使用されます。

place_design の構文

place_design [-directive <arg>] [-no_timing_driven] [-timing_summary] [-unplace] [-post_place_opt] [-quiet] [-verbose]

place_design のスクリプ ト例

# Run placement, save results to checkpoint, report timing estimatesplace_designwrite_checkpoint -force $outputDir/post_placereport_timing_summary -file $outputDir/post_place_timing_summary.rpt

このサンプル スク リプ トは、 メモ リ内のデザインを配置して、 配置後にデザイン チェッ クポイン ト を保存し、 タイミ ング サマリ レポート を生成して指定のファイルに記述します。

インプリ メンテーシ ョ ン japan.xilinx.com 76UG904 (v2014.1) 2014 年 4 月 2 日

Page 77: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

-directive オプシ ョ ンの使用

-directive オプシ ョ ンを使用する と、 place_design コマンドを異なるモードで実行できます。 一度に指定できるモードは 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ンと共に使用するこ とはできません。

配置は、どのタイプのデザインにどのモードを使用するかが全体的なデザイン パフォーマンスに も大き く影響するので、 -directive のモード設定がもっと も多数あ り ます。

• 名前に BlockPlacement が含まれるモードは、 ブロ ッ ク RAM または DSP ブロ ッ ク、 あるいはその両方を多数含むデザインに適しています。

• 名前に NetDelay が含まれるモードは、 遠距離のネッ ト接続を含むデザインおよび多数の異なるモジュールにファンアウ トするネッ ト を含むデザインに適しています。

• 名前に SpreadLogic が含まれるモードは、 接続が多数ある密集が発生しやすいデザインに適しています。

• ExtraPostPlacementOpt は、 すべてのタイプのデザインに適しています。

• 名前に SSI が含まれるモードは、 密集を緩和したり タイ ミ ングを向上するため、 異なる分割方法が有益である可能性のある SSI デザインに適しています。

配置の -directive オプシ ョ ンで指定可能なモード

重要 : 配置の -directive オプシ ョ ンは現在のと ころ UltraScale™ デバイス アーキテクチャではサポート されていません。 配置で -directive オプシ ョ ンを指定しても無視され、 デフォルト設定で配置が続行されます。

配置は通常デザインの全体的なパフォーマンスに も影響するので、-directive オプシ ョ ンで指定可能なモードが多数あ り ます。 表 2-3 に、 どのモードがどのよ う なデザインに効果的かを示します。

-directive オプシ ョ ンで指定可能なモード

• Explore

詳細配置および配置後の 適化のエフォート を増加します。

• WLDrivenBlockPlacement

RAM および DSP ブロ ッ クをワイヤ長に基づいて配置します。 タイ ミ ング ド リブンの配置を無効にし、ブロ ッ クとの接続距離を 短にするよ う配置します。 RAM および DSP ブロ ッ クへのパスおよびこれらのブロ ッ クからのパスのタイ ミ ングを向上できます。

• LateBlockPlacement

RAMB および DSP ブロ ッ クの詳細配置を、 配置の 終段階で実行します。 通常、 ブロ ッ クは配置プロセスの初期段階で有効なサイ トに割り当てられます。 その代わり、 まず大まかなブロ ッ ク配置を実行し (適切な列に揃っていない可能性もあ り )、 詳細配置中にブロッ クを有効なサイ トに配置します。

表 2-3 : -directive オプシ ョ ンのガイド ライン

モード 効果が得られるデザイン

BlockPlacement ブロ ッ ク RAM または DSP ブロ ッ ク、 あるいはその両方を多数含むデザイン

ExtraNetDelay 遠距離のネッ ト接続を含むデザインおよび多数の異なるモジュールにファンアウ トするネッ ト を含むデザイン

SpreadLogic 接続が多数ある密集が発生しやすいデザイン

ExtraPostPlacementOpt すべてのタイプのデザイン

SSI 密集を緩和したり タイ ミ ングを向上するため、異なる分割方法が有益である可能性のある SSI デザイン

インプリ メンテーシ ョ ン japan.xilinx.com 77UG904 (v2014.1) 2014 年 4 月 2 日

Page 78: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

• ExtraNetDelay_high

ファンアウ トが大き く距離の長いネッ トの予測遅延を増加します。 place_design コマンドの後にはタイ ミ ングが満たされていたが、 過剰に良く見積もられた遅延のために route_design コマンドの後タイ ミ ングが満たされなくなったク リ ティカル パスのタイ ミ ングを向上できます。high、medium、low の 3 つのレベルがサポート されます。 ExtraNetDelay_high では増加量が も大き くな り ます。

• ExtraNetDelay_medium

ファンアウ トが大き く距離の長いネッ トの予測遅延を増加します。 place_design コマンドの後にはタイ ミ ングが満たされていたが、 過剰に良く見積もられた遅延のために route_design コマンドの後タイ ミ ングが満たされなくなったク リ ティカル パスのタイ ミ ングを向上できます。high、medium、low の 3 つのレベルがサポート されます。 ExtraNetDelay_medium はデフォルト レベルの増加量を適用します。

• ExtraNetDelay_low

ファンアウ トが大き く距離の長いネッ トの予測遅延を増加します。 place_design コマンドの後にはタイ ミ ングが満たされていたが、 過剰に良く見積もられた遅延のために route_design コマンドの後タイ ミ ングが満たされなくなったク リ ティカル パスのタイ ミ ングを向上できます。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

も高速な、 タイ ミ ング ド リブンでない、 有効なデザインを得るために 低限の配置を実行します。

• Defaults

place_design をデフォルト設定で実行します。

ヒン ト : -directive オプシ ョ ンを使用して、 デザインの異なる配置オプシ ョ ンを試してみてください。

-unplace オプシ ョ ンの使用

-unplace オプシ ョ ンは、 デザイン内で固定されたロケーシ ョ ンを持たないセルおよびポートの配置を解除します。固定されたロケーシ ョ ンを持つオブジェク トでは、 IS_LOC_FIXED プロパティが TRUE に設定されています。

インプリ メンテーシ ョ ン japan.xilinx.com 78UG904 (v2014.1) 2014 年 4 月 2 日

Page 79: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

-no_timing_driven オプシ ョ ンの使用

-no_timing_driven オプシ ョ ンは、 デフォルトのタイ ミ ング ド リブン配置アルゴ リ ズムをディ スエーブルにします。 このオプシ ョ ンを使用する と ワイヤの長さに基づいて高速な配置が実行されますが、 タイ ミ ング制約は無視されます。

-timing_summary オプシ ョ ンの使用

配置後、 タイ ミ ング サマリ (概算) がログ ファ イルに出力されます。 デフォルトでは、 数値は配置の内部予測に基づきます。 次に例を示します。

INFO: [Place 30-746] Post Placement Timing Summary WNS=0.022. For the most accurate timing information please run report_timing.

実行時間が多少長くなるがよ り正確な結果を得るには、-timing_summary オプシ ョ ンを使用する と、スタティ ッ クタイ ミ ング エンジンからの結果に基づく タイ ミ ング サマリがレポート されます。

INFO: [Place 30-100] Post Placement Timing Summary | WNS=0.236 | TNS=0.000 |

説明 :

° WNS : ワース ト ネガティブ スラ ッ ク

° TNS : トータル ネガティブ スラ ッ ク

-verbose オプシ ョ ンの使用

配置結果をよ り詳細に解析するには、 -verbose オプシ ョ ンを使用して、 place_design コマンドによるセルおよび I/O 配置の詳細を確認します。

-verbose オプシ ョ ンを使用する と大量のメ ッセージが表示されるので、 デフォル ト ではオフになっています。-verbose オプシ ョ ンは、 有益だと思われる場合に使用して ください。

-post_place_opt オプシ ョ ンの使用

配置後に 適化を実行する と、 ク リ ティカル パスのタイ ミ ングが向上される可能性があ り ますが、配置配線の実行時間が増加します。 この 適化は、 完全に配置されたタイ ミ ング違反を含むデザインで実行します。 違反の大きいいくつかのク リ ティカル パスに対して、 ク リ ティカル セルを移動し、 予測遅延が向上されたら新しいセル配置を確定します。実行時間が長く、 ク リ ティカル パスが比較的多いデザインでは、 これらの配置の変更によ り タイ ミ ングがさ らに向上する場合があ り ます。

この 適化は配置後のどの段階でも実行でき、配線済みデザインで実行する と特に有益です。配線済みデザインでこの 適化を実行する場合、 次の点に注意する必要があ り ます。

• タイ ミ ング データは実際の配線遅延に基づいているので、 適化で 悪のク リティカル パスが確実に考慮されます。

• 適化中のセルの移動の評価では、セル配置に基づいて遅延が予測されます。実際の配線遅延は使用されません。

• 新しいセル配置が確定される と、関連のネッ トの配線が解除されるので、 これらのネッ ト を配線する必要があ ります。

インプリ メンテーシ ョ ン japan.xilinx.com 79UG904 (v2014.1) 2014 年 4 月 2 日

Page 80: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

次に例を示します。

1. 配置後に配置後の 適化を実行します。

place_designplace_design -post_place_opt

2. 配線後に配置後の 適化を実行します。

place_designphys_opt_designroute_designplace_design -post_place_optroute_design

3. 配線後に配置後の 適化をループで複数回実行します。 簡単に実行できるよ うにするため、 インプ リ メ ンテーシ ョ ン コマンドを runPPO とい う Tcl プロシージャにま とめ、 引数で実行回数と各実行で phys_opt_designをイネーブルにするかど うかを指定します。

proc runPPO { {numIters 1} {enablePhysOpt 1} } { for {set i 0} {$i < $numIters} {incr i} { place_design -post_place_opt if {$enablePhysOpt != 0} { phys_opt_design } route_design if {[get_property SLACK [get_timing_paths ]] >= 0} {break}; #stop if timing is met }}

...place_designphys_opt_designroute_designrunPPO 4 1 ; # run 4 post-route iterations and enable phys_opt_design

物理最適化物理 適化では、 デザインの負のスラ ッ ク パスに対してタイ ミ ング ド リブンの 適化が実行されます。 物理 適化には、 配置後と配線後の 2 つのモードがあ り ます。

配線後モードでは、 セル配置からのタイ ミ ング予測に基づいて 適化が実行されます。 物理 適化では、 ロジッ ク適化によるネッ ト リ ス トの変更が自動的に組み込まれ、 必要に応じてセルが配置されます。

配線後モードでは、実際の配線遅延に基づいて 適化が実行されます。 ロジッ クの変更に応じた自動的なネッ ト リ ストのアップデートおよびセルの配置に加え、 必要に応じて配線もアップデート されます。

全体的な物理 適化は配置後モードでの方がよ り積極的に実行されるので、ロジッ クが 適化される機会が多くなります。配線後モードでは、 タイ ミ ング ク ロージャが達成された配線に影響を与えないよ うに、物理 適化は控えめに実行されます。物理 適化を実行する前にデザインの配線ステータスがチェッ ク され、配置後または配線後のどちらのモードを使用するかが判断されます。

デザインのスラ ッ クが負でなく、タイ ミ ング ベースの 適化オプシ ョ ンを含む物理 適化が指定された場合、 適化は実行されずにコマンドが終了します。

インプリ メンテーシ ョ ン japan.xilinx.com 80UG904 (v2014.1) 2014 年 4 月 2 日

Page 81: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

使用可能な物理最適化

Vivado ツールでは、 物理 適化はメモ リ内のデザインに対して実行されます。

重要 : 特定の物理 適化に対応するコマンド オプシ ョ ンを指定する と、その 適化のみが実行されます。ほかの 適化は、 通常デフォルトで実行されるものも、 ディ スエーブルになり ます。

ファンアウトの大きいネッ トの最適化

ファンアウ トの大きいネッ トの 適化は、 次のよ うに実行されます。

1. 負のスラ ッ クが WNS のある割合以内であるファンアウ トの大きいネッ トは、 複製が考慮されます。

2. ロードはその配置によ り クラスター化され、各ロード ク ラスターに対してド ライバーが複製および配置されます。

3. タイ ミ ングが再解析され、 タイ ミ ングが改善した場合はロジッ クの変更が確定されます。

4. 複製後、 複製が必要なファンアウ トの大きいネッ トがあるかど うか、 デザインが再びチェッ ク されます。 ファンアウ トの大きいネッ トがまだある場合、 な くなるまで複製プロセスが続行されます。

配置ベースの最適化

ク リ ティカル パスのすべてのセルをワイヤ遅延を削減するよ うに配置し直します。

配線の最適化

ク リ ティカル パスのネッ トおよびピンを遅延を小さ くするよ う配線し直します。

表 2-4 : 配置後および配線後の物理最適化

オプシ ョ ン名配置後 配線後

実行可能 デフォルト 実行可能 デフォルト

ファンアウ トの大きいネッ トの 適化 ○ ○ × なし

配置の 適化 ○ ○ ○ ○

配線の 適化 × なし ○ ○

リ ワイヤ ○ ○ ○ ○

ク リティカル セルの 適化 ○ ○ ○ ○

DSP レジスタの 適化 ○ ○ × なし

ブロ ッ ク RAM レジスタの 適化 ○ ○ × なし

シフ ト レジスタの 適化 ○ ○ × なし

ク リ ティカル ピンの 適化 ○ ○ × なし

ブロ ッ ク RAM イネーブルの 適化 ○ ○ × なし

ホールド違反の修正 ○ × × なし

リ タイ ミ ング ○ × ○ ×

ネッ トの強制的な複製 ○ × × なし

クロ ッ クの 適化 × なし ○ ○

インプリ メンテーシ ョ ン japan.xilinx.com 81UG904 (v2014.1) 2014 年 4 月 2 日

Page 82: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

リワイヤ

LUT の接続をスワップしてク リ ティカル信号のロジッ ク レベル数を削減するこ とによ り、 ク リ ティカル パスを 適化します。 LUT 論理式を変更してデザインの機能を保持します。

ク リテ ィ カル セルの最適化

タイ ミ ングが満たされないパスのセルを複製します。 特定のセルのロード同士が離れている場合、 セルが複製され、新しいド ラ イバーがロード ク ラスターの近くに配置されます。 この 適化は、 パスがワース ト ネガティブ スラ ッ クのある割合以内でタイ ミ ングを満たしていなければ、 ファンアウ トが大き くな くても実行されます。

DSP レジスタの最適化

DSP セルのレジスタをロジッ ク アレイに移動したり、 ロジッ ク アレイから DSP セルに移動したりするこ とによ り、ク リ ティカル パスの遅延を削減します。

ブロック RAM レジスタの最適化

ブロッ ク RAM セルのレジスタをロジッ ク アレイに移動したり、ロジッ ク アレイからブロ ッ ク RAM セルに移動したりするこ とによ り、 ク リ ティカル パスの遅延を削減します。

シフ ト レジスタの最適化

シフ ト レジスタの 適化を実行する と、シフ ト レジスタ セル (SRL) とほかのロジッ ク セル間の負のスラ ッ ク パスのタイ ミ ングが向上します。

シフ ト レジスタ セル (SRL16E または SRLC32E) に入出力するパスにタイ ミ ング違反がある場合、 この 適化で SRLレジスタ チェーンの 初または 後を抽出してロジッ ク ファブ リ ッ クに配置するこ とによ り、 タ イ ミ ングを向上します。 この 適化によ り、 元のク リ ティカル パスのワイヤ長が短くな り ます。

この 適化では、 レジスタがシフ ト レジスタからロジッ ク ファブリ ッ ク移動されるだけで、 ロジッ ク ファブ リ ッ クからシフ ト レジスタに移動されるこ とはあ り ません。 ロジッ ク ファブリ ッ クからシフ ト レジスタにレジスタを移動しても、 タイ ミ ングは向上しません。

この 適化が実行されるための必要条件は、 次のとおりです。

• SRL アドレスが 1 以上で、 SRL 外に移動できるレジスタ段がある。

• SRL アドレスが一定値である (論理 1 または 0 で駆動)。

• SRL セルで開始または終了するタイ ミ ング違反が 悪のク リティカル パスの 1 つである。

次のよ うな一部の回路トポロジは 適化されません。

• 大型シフ ト レジスタを構成するためチェーン接続された SRLC32E

• Q31 出力ピンを使用する SRLC32E

• O5 および O6 出力の両方を使用して 1 つの LUT に組み合わせられた SRL16E

SRL からロジッ ク ファブリ ッ クに移動されるレジスタは FDRE セルです。 FDRE および SRL INIT プロパティ、 SRLアドレスは、 それに応じて調整されます。 次に例を示します。

インプリ メンテーシ ョ ン japan.xilinx.com 82UG904 (v2014.1) 2014 年 4 月 2 日

Page 83: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

ク リ ティカル パスがシフ ト レジスタ (SRL16E) srl_inste から開始する と します (図 2-3)。

シフ ト レジスタの 適化後、 タイ ミ ングを向上するため、 シフ ト レジスタの 終段が SRL16E から取り出されてロジッ ク ファブ リ ッ クに配置されました (図 2-4)。

srl_inste の SRL16E アドレスは、 内部レジスタ段が 1 つ少なくなったこ とを反映して減少されます。 srlopt レジスタがダウンス ト リーム セルの近くに配置され、FDRE セルの clock-to-output 遅延は比較的短いので、元のク リ ティカル パスは短くな り ます。

X-Ref Target - Figure 2-3

図 2-3 : シフ ト レジスタ srl_inste から開始するクリテ ィ カル パス

X-Ref Target - Figure 2-4

図 2-4 : シフ ト レジスタ最適化後のクリティ カル パス

インプリ メンテーシ ョ ン japan.xilinx.com 83UG904 (v2014.1) 2014 年 4 月 2 日

Page 84: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

ク リテ ィ カル ピンの最適化

論理 LUT 入力ピンを高速の物理ピンに再マップし、 ク リ ティカル パスのタイ ミ ングを向上します。 A1 や A2 などの低速の物理ピンにマップされているク リ ティカル パス上の論理ピンが、 タイ ミ ングが向上する場合に A6 や A5 などの高速の物理ピンに割 り 当て直されます。 LOCK_PINS プロパテ ィ が設定されているセルはスキ ッ プされ、LOCK_PINS で指定されている ピン マ ッ プが保持されます。 論理ピン と物理ピンのマ ッ プを取得するには、get_site_pins コマンドを使用します。

ブロック RAM イネーブルの最適化

ブロッ ク RAM イネーブルを 適化する と、 消費電力 適化されたブロ ッ ク RAM に関連するク リ ティカル パスのタイ ミ ングを向上できます。

配置前のブロ ッ ク RAM 消費電力 適化では、 ダイナミ ッ ク消費電力を削減するために、 ブロ ッ ク RAM の読み出しおよび書き込みイネーブル入力を駆動するロジッ クが再構築されます。配置後、再構築されたロジッ クがタイ ミ ングク リ ティカルになる可能性があ り ます。ブロ ッ ク RAM イネーブルの 適化を実行する と、 イネーブル ロジッ クの適化が元に戻され、 ク リ ティカルなイネーブル ロジッ ク パスのスラ ッ クが向上します。

ホールド違反の修正

ホールド ク リ ティカル パスの遅延を増加するこ とによ り、 ホールド違反の大きいパスのスラ ッ クを向上します。

リ タイ ミ ング

レジスタを組み合わせロジッ クの前後に移動するこ とによ り、 ク リ ティカル パスの遅延を向上します。

ネッ トの強制的な複製

タイ ミ ング スラ ッ クにかかわらず、ネッ トのド ラ イバーを強制的に複製します。複製はロードの配置に基づいて実行され、 複製が十分かど うかを解析する必要があ り ます。 さ らに複製が必要な場合は、 コマンドを複数回実行するこ とによ りネッ ト を繰り返し複製できます。 タイ ミ ングは無視されますが、 複製を実行するには、 ネッ トがタイ ミ ング制約の設定されたパスに含まれている必要があ り ます。

クロックの最適化

グローバル バッファーを挿入し、ク リ ティカル パスの開始点と終点の間に有益なスキューを作成します。セッ ト アップ タイ ミ ングを向上するため、 デスティネーシ ョ ン クロ ッ クを遅延するバッファーが挿入されます。

配線の最適化

遅延を削減するためタイ ミ ング ク リ ティカル ネッ トに対して配線 適化を実行します。

物理最適化レポート

物理 適化では、 適化で処理された各ネッ ト と、 実行された 適化のサマリがレポート されます。

ヒン ト : 複製されたオブジェク トの名前は、 元のオブジェク ト名に _replica と複製されたオブジェク ト カウン トが付いたものになり ます。

インプリ メンテーシ ョ ン japan.xilinx.com 84UG904 (v2014.1) 2014 年 4 月 2 日

Page 85: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

phys_opt_designデザインに対して物理 適化を実行します。配置後に配置後モードで、 またはデザインを完全に配置した後に配線後モードで実行できます。

phys_opt_design の構文

phys_opt_design [-fanout_opt] [-placement_opt] [-routing_opt] [-rewire] [-critical_cell_opt] [-dsp_register_opt] [-bram_register_opt] [-bram_enable_opt] [-shift_register_opt] [-hold_fix] [-retime] [-force_replication_on_nets <args>] [-directive <arg>] [-critical_pin_opt] [-clock_opt] [-quiet] [-verbose]

phys_opt_design のスクリプ ト例

open_checkpoint top_placed.dcp

# Run post-place phys_opt_design and save resultsphys_opt_designwrite_checkpoint -force $outputDir/top_placed_phys_opt.dcpreport_timing_summary -file $outputDir/top_placed_phys_opt_timing.rpt

# Route the design and save resultsroute_designwrite_checkpoint -force $outputDir/top_routed.dcpreport_timing_summary -file $outputDir/top_routed_timing.rpt

# Run post-route phys_opt_design and save resultsphys_opt_designwrite_checkpoint -force $outputDir/top_routed_phys_opt.dcpreport_timing_summary -file $outputDir/top_routed_phys_opt_timing.rpt

上記の例では、 配置後および配線後の両方で物理 適化が実行されます。 まず、 配置済みデザインがチェッ クポイントから読み込まれ、 配置後の phys_opt_design が実行されます。 チェッ クポイン トおよびタイ ミ ングの結果が保存されます。 次にデザインが配線され、 保存されます。 その後、 配線後の phys_opt_design が実行され、 結果が保存されます。配置後および配線後の物理 適化の両方で、同じ phys_opt_design コマンドが使用されます。モードを指定するためにオプシ ョ ンを使用する必要はあ り ません。

-directive オプシ ョ ンの使用

-directive オプシ ョ ンを使用する と、 phys_opt_design コマンドを異なるモードで実行できます。 一度に指定できるモードは 1 つのみです。-directive オプシ ョ ンは、ほかのオプシ ョ ンと共に使用するこ とはできません。次に -directive オプシ ョ ンに設定可能な値を示し、 表 2-5 に配置後および配線後のサポート をま とめています。

• Explore

適化を複数回実行し、 ファンアウ トの大きいネッ トの複製を含め、 異なるアルゴ リズムを実行します。

• ExploreWithHoldFix

適化を複数回実行し、 ホールド違反の修正およびファンアウ トの大きいネッ トの複製を含め、異なるアルゴ リズムを実行します。

• AggressiveExplore

Explore と似ていますが、 異なる 適化アルゴ リ ズムを使用し、 よ り厳しい目標を設定します。

• AlternateReplication

ク リ ティカル セルの複製に異なるアルゴ リズムを使用します。

• AggressiveFanoutOpt

ファンアウ トに関連する 適化に異なるアルゴ リズムを使用し、 よ り厳しい目標を設定します。

インプリ メンテーシ ョ ン japan.xilinx.com 85UG904 (v2014.1) 2014 年 4 月 2 日

Page 86: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

• AlternateDelayModeling

ネッ ト遅延の予測に代替アルゴ リズムを使用して、 すべての 適化を実行します。

• AddRetime

デフォルトの phys_opt_design フローを実行し、 レジスタの リ タイ ミ ングを追加します。

• AlternateFlowWithRetiming

複製と DSP およびブロ ッ ク RAM の 適化をよ り積極的に実行し、 レジスタの リ タイ ミ ングをイネーブルにします。

• Defaults

phys_opt_design をデフォルト設定で実行します。

-verbose オプシ ョ ンの使用

物理 適化の結果を解析するには、 -verbose オプシ ョ ンを使用し、 phys_opt_design で実行された 適化の詳細を確認します。

-verbose オプシ ョ ンを使用する と大量のメ ッセージが表示されるので、 デフォル ト ではオフになっています。-verbose オプシ ョ ンは、 有益だと思われる場合に使用して ください。

重要 : phys_opt_design コマンドは、 メモ リ内のデザインに対して実行されます。 2 回実行した場合、 1 回目の runの結果が 適化されます。

物理最適化制約

物理 適化中、DONT_TOUCH プロパティが認識され、これらのプロパティが設定されているネッ ト またはセルには適化は実行されません。 また、 Pblock の割り当てに従い、 複製されたロジッ クでも元のロジッ クの Pblock 割り当てが適用されます。 タイ ミ ング例外も、 元のセルから複製セルにコピーされます。

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

DONT_TOUCH は 下位セルに設定します。 階層セルに DONT_TOUCH を設定する とセルの境界は保持されますが、 セル内では 適化が実行される可能性はあ り ます。

表 2-5 : phys_opt_design コマンドの -directive オプシ ョ ンのサポート

-directive オプシ ョ ンの値 配置後 配線後

Defaults ○ ○

Explore ○ ○

ExploreWithHoldFix ○ ×

AggressiveExplore ○ ○

AlternateReplication ○ ×

AggressiveFanoutOpt ○ ×

AlternateDelayModeling ○ ○

AddRetime ○ ○

AlternateFlowWithRetiming ○ ×

インプリ メンテーシ ョ ン japan.xilinx.com 86UG904 (v2014.1) 2014 年 4 月 2 日

Page 87: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

配線Vivado 配線は、 配置済みデザインに対して配置を実行し、 ホールド タイム違反を解決するため配線済みデザインの適化を実行します。

配置済みデザインから開始し、 すべてのネッ ト の配線を試みます。 配置済みの次のいずれかのデザインから開始します。

• 未配線

• 一部配線済み

• 完全に配線済み

部分的に配線されているデザインに対しては、始めから配線し直すのではなく、既存の配線が開始点と して使用されます。 完全に配線済みのデザインでは、 タイ ミ ング違反がチェッ ク され、 タイ ミ ングを満たすためにク リティカル部分が配線し直されます。

注記 : 再配線プロセスでは、 既存の配線が破棄されて配線し直されます。

配線では、デザイン全体を配線するオプシ ョ ンと、個々のネッ トおよびピンの配線を修正するオプシ ョ ンがあ り ます。デザイン全体を配線する場合、 フローはタイ ミ ング ド リブンであ り、 タイ ミ ング制約に基づく タイ ミ ング バジェット全体が使用されます。 ネッ トおよびピンの配線を修正する場合、 反復セッシ ョ ンの反応をよ くするため、 高速で軽量のタイ ミ ング モデルが使用されます。

推奨 : 実行時間を短縮するためにパフォーマンスが低下するのを回避するため、 report_timing コマンドを実行するか、 または配線を修正した後にデザイン全体を配線し、 タイ ミ ング制約が満たされるよ うにするのが 良です。

配線では、 ネッ トおよびピンの配線を修正する場合でも、 初期化のため、 初の実行時間は長くな り ます。 初期化時間は、 デザインのサイズおよびデバイスのサイズが大き くなる と長くな り ます。 1 回初期化される と、 デザインを閉じて開き直さない限り、 再度初期化は実行されません。

デザイン ルール チェ ック 配線を開始する前に、 次のデザイン ルール チェッ ク (DRC) が実行されます。

• report_drc コマンドを使用してユーザーが選択した DRC

• Vivado 配線エンジンに含まれるビルト インの DRC

配線の優先順位

Vivado 配線では、 まず次のよ うなグローバル リ ソースが配線されます。

• ク ロ ッ ク

• リセッ ト

• I/O

• その他の専用リ ソース

このデフォル トの優先順位は Vivado 配線にビルト インされています。 その後、 タイ ミ ングがどれだけク リ ティカルかに基づいて、 データ信号に優先順位が付けられます。

インプリ メンテーシ ョ ン japan.xilinx.com 87UG904 (v2014.1) 2014 年 4 月 2 日

Page 88: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

不適切なタイ ミング制約の影響

配線後のタイ ミ ング違反は、 タイ ミ ングが制約が不正なために発生しているこ とがあ り ます。配線設定を変更してみる前に、制約が適切であるかど うかを確認してください。配線の前の配置済みデザインのタイ ミ ング レポート を参照して、 タイ ミ ングと制約を確認します。

次に、 よ くある不適切なタイ ミ ング制約の例を示します。

• ク ロ ッ ク ド メ インをまたがるパスや、 ホールド タイ ミ ングによ り配線遅延が追加される複数サイ クル パス

• 密集しているエリ ア。 これは RTL 合成のファンアウ ト 適化や物理 適化によ り解決できます。

推奨 : 複数の配線オプシ ョ ンを試す前に、 タイ ミ ング制約を確認して不正なものを修正するか、 または RTL を変更するこ とを考慮して ください。

route_designデザインを配線します。

route_design の構文

route_design [-unroute] [-release_memory] [-nets <args>] [-physical_nets] [-pin <arg>] [-directive <arg>] [-tns_cleanup] [-no_timing_driven] [-preserve] [-delay] -max_delay <arg> -min_delay <arg> [-timing_summary] [-quiet] [-verbose]

-directive オプシ ョ ンの使用

デザイン全体を配線する際、 -directive オプシ ョ ンを使用する と、 route_design コマンドを異なるモードで実行できます。一度に指定できるモードは 1 つのみです。-directive オプシ ョ ンは、競合する 適化が実行されるのを回避するため、 ほかのほとんどのオプシ ョ ンとは共に使用できません。 次のモードがあ り ます。

• Explore

初期配線の後、 異なるク リ ティカル パス配線を試します。

• NoTimingRelaxation

配線を完了するためにタイ ミ ングを緩和しないよ うにします。配線でタイ ミ ング満たすのが困難である場合、元のタイ ミ ング制約を満たすため実行時間が長くな り ます。

• MoreGlobalIterations

終段階だけでな く、 すべての段階で詳細なタイ ミ ング解析を使用し、 タイ ミ ングの向上が少しであってもグローバル反復を実行します。

• HigherDelayCost

配線の内部コス ト関数を調整して反復実行で遅延に焦点を置き、実行時間が長くなる代わりにパフォーマンスを向上します。

• AdvancedSkewModeling

配線のすべての段階でよ り正確なスキュー モデルを使用します。 スキューの大きいクロ ッ ク ネッ ト ワークでデザインのパフォーマンスが向上する場合があ り ます。

• RuntimeOptimized

反復回数を少なく し、 デザイン パフォーマンスよ り も実行時間を短縮するこ とを優先します。

• Quickも高速な、 タイ ミ ング ド リブンでない、 有効なデザインを得るために 低限の配置を実行します。

• Defaultsroute_design をデフォルト設定で実行します。

インプリ メンテーシ ョ ン japan.xilinx.com 88UG904 (v2014.1) 2014 年 4 月 2 日

Page 89: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

よりよい配線結果を得るために実行時間を長くする

次の -directive 設定を使用する と、実行時間が長くなる代わりによ り よい配線結果が得られる可能性があ り ます。

• NoTimingRelaxation

• MoreGlobalIterations

• HigherDelayCost

• AdvancedSkewModeling

route_design コマンドのその他のオプシ ョ ンの使用

次に、 route_design コマンドのその他のオプシ ョ ンの詳細と値を示します。

• -nets

指定したネッ トの リ ス トに対してのみ処理を実行します。ネッ ト オブジェク トの Tcl リ ス ト を引数と して指定します。 ネッ トは、 ネッ ト名の文字列値で指定するのではな く、 get_nets コマンドを使用してネッ ト オブジェク ト と して指定する必要があ り ます。

• -pin

指定したピンに対してのみ処理を実行します。 ピン オブジェク ト を引数と して指定します。 ピンは、 ピン名の文字列値で指定するのではなく、get_pins コマンドを使用してピン オブジェク ト と して指定する必要があり ます。

• -delay

デフォルト では、 個々のネッ トおよびピンは、 タイ ミ ング ク リ テ ィカルかど うかにかかわらず、 使用可能な リソースを使用して 短の実行時間で配線されます。 -delay オプシ ョ ンを使用する と、 遅延が 小になるよ うに配線されます。

• -min_delay および -max_delayこれらのオプシ ョ ンは -pin オプシ ョ ンを使用している場合にのみ使用可能で、 ターゲッ ト遅延をピコ秒で指定します。 -max_delay オプシ ョ ンは、 指定のピンの配線に使用する 大 slow-max コーナー遅延を指定します。同様に、 -min_delay オプシ ョ ンは 小 fast-min コーナー遅延を指定します。両方のオプシ ョ ンを使用して、遅延の範囲を指定できます。

• -preserve

既存の配線を保持してデザイン全体を配線します。 -preserve オプシ ョ ンを使用しない場合、 ク リ ティカル パスのタイ ミ ングを向上するため、 既存の配線が解除され、 配線し直されるこ とがあ り ます。 このオプシ ョ ンは、ク リ ティカル ネッ ト を事前に配線し、配線リ ソースに優先的にアクセスできるよ うにする場合によ く使用されます。 これらの配線が完了したら、 -preserve オプシ ョ ンを使用して、 デザインの残りの部分が配線される と きに完了した配線が変更されないよ うにします。このオプシ ョ ンは、FIXED_ROUTE および IS_ROUTE_FIXED ネット プロパティ とは無関係で、 使用した route_design コマンドの実行でのみ配線が保持されます。

• -unroute

デザイン全体、 あるいは -nets または -pin オプシ ョ ンを使用している場合はネッ トおよびピンの配線を解除します。FIXED_ROUTE プロパティが設定されているネッ トの配線は解除されません。FIXED_ROUTE プロパティが設定されているネッ トの配線を解除するには、 まずプロパティを削除する必要があ り ます。

• -timing_summary

デフォルトでは、内部予測タイ ミ ングに基づいたタイ ミ ング サマリが出力されますが、見積も りの悪い遅延のため、実際の配線後のタイ ミ ングとは異なる場合があ り ます。-timing_summary オプシ ョ ンを使用する と、Vivadoスタティ ッ ク タイ ミ ング解析機能が呼び出され、 実際の配線遅延に基づく タイ ミ ング サマ リがレポート されます。 スタティ ッ ク タイ ミ ング解析のため、 実行時間は長くな り ます。

• -tns_cleanup

実行時間を 短にするため、配線ではトータル ネガティブ スラ ッ ク (TNS) ではなく ワース ト ネガティブ スラ ック (WNS) パスに焦点が置かれます。 -tns_cleanup オプシ ョ ンを使用する と、 配線の 後に追加のフェーズが実行され、 WNS パス以外にタイ ミ ングが満たされていない TNS パスの修正が試みられます。 TNS は削減される可能性があ り ますが、 実行時間が長くなるこ とがあ り ます。 WNS には影響しません。 配線後の物理 適化を実行する場合は、 配線で修正可能な TNS パスに無駄な絵フォーとを費やさず、 WNS パスに焦点が置かれるよ うにするため、 -tns_cleanup オプシ ョ ンを使用するこ とをお勧めします。 このオプシ ョ ンは、 -directive オプシ ョ ンと共に使用できます。

インプリ メンテーシ ョ ン japan.xilinx.com 89UG904 (v2014.1) 2014 年 4 月 2 日

Page 90: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

• -physical_nets

論理 0 および論理 1 の配線のみに処理を実行します。デザインのすべての定数値に適用されます。 -unroute オプシ ョ ンと共に使用できます。 定数 0 および 1 を接続する と、 物理デバイスに対応する論理ネッ トがないので、これらのネッ トは -nets および -pin オプシ ョ ンを使用して確実に配線または配線解除できません。

• -release_memory

配線初期化の後、 適なパフォーマンスのため、 配線データはメモリに保持されます。 このオプシ ョ ンを使用する と、データがメモリから削除され、 メモ リがオペレーティング システムに返されます。ほとんどの場合、 このオプシ ョ ンを使用する必要はあ り ません。非常に大型のデザインを処理する場合など、配線のメモ リ使用量を手動で制御する必要がある場合に使用します。

• -no_timing_driven

タイ ミ ング ド リブン配線をオフにします。 主にデザインの配線性をテス トするために使用します。

配線のサンプル スクリプ ト 1

# 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 コマンドを使用して実行します。

配線が完了する と、 配線リ ソースの使用率サマリ と予測タイ ミ ング サマ リがレポート されます。 次に、 これらのレポートの例を示します。

配線リソース使用率サマリ

Global Vertical Routing Utilization = 15.3424 % Global Horizontal Routing Utilization = 16.3981 % Routable Net Status* *Does not include unroutable nets such as driverless and loadless. Run report_route_status for detailed report. Number of Failed Nets = 0 Number of Unrouted Nets = 0 Number of Partially Routed Nets = 0 Number of Node Overlaps = 0

タイ ミ ング サマリ

[Route 35-57] Estimated Timing Summary | WNS=0.105 | TNS=0 | WHS=0.051 | THS=0

説明 :

° WNS : ワース ト ネガティブ スラ ッ ク

° TNS : トータル ネガティブ スラ ッ ク

° WHS : ワース ト ホールド スラ ッ ク

° THS : トータル ホールド スラ ッ ク

インプリ メンテーシ ョ ン japan.xilinx.com 90UG904 (v2014.1) 2014 年 4 月 2 日

Page 91: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 2 章 : インプリ メンテーシ ョ ン コマンド

配線のサンプル スクリプ ト 2

# Get the nets in the top 10 critical paths, assign to $preRoutesset preRoutes [get_nets -of [get_timing_paths -max_paths 10]]

# route $preRoutes first with the smallest possible delayroute_design -nets [get_nets $preRoutes] -delay

# preserve the routing for $preRoutes and continue with the rest of the designroute_design -preserve

このサンプル スク リプ トでは、 まずいくつかのク リ ティカル ネッ ト を配線し、 その後デザイン全体を配線しています。 個々のネッ トおよびピン (この場合はネッ ト ) を配線する例を示しています。 これは通常、 次のよ う な場合など、特定の配線問題を修正するために実行します。

• 完全に配線する前に、 ク リ ティカル ネッ トおよびロ ッ ク ダウン リ ソースを事前に配線

• ク リ ティカルではないネッ トの配線を手動で解除して、ク リ ティカル ネッ トによ り多くの配線リ ソースを使用できるよ うにする

初の route_design コマンドでは、配線機能が初期化されてから、ク ロ ッ クなどの重要なネッ トが配線されます。

配線のサンプル スクリプ ト 3

route_design# 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 -preserve

このサンプル スク リプ トでは、密集によるタイ ミ ング エラーを解決する方法の 1 つを示しています。 $myCritNetsで表されたク リ ティカル ネッ トには、インスタンス u0/u1 のネッ ト と同じデバイス領域の配線リ ソースが必要です。u0/u1 のネッ トはタイ ミ ング ク リ ティカルではないので配線を解除し、 ク リ ティカル ネッ ト $myCritNets が 初に 小の遅延で配線されるよ うにしています。 その後、 route_design -preserve コマンドを使用してデザイン全体を配線しています。 -preserve オプシ ョ ンによ り、 $myCritNets の配線が保持され、 配線解除された u0/u1ネッ トは配線し直されます。

Tcl レポート コマンドおよびそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』(UG835) [参照 15] を参照してください。

表 2-6 : 配線中のデザイン解析で使用されるコマンド

コマンド 機能

report_route_status ネッ トの配線ステータスをレポート します。

report_timing パス エンドポイン ト解析を実行します。

インプリ メンテーシ ョ ン japan.xilinx.com 91UG904 (v2014.1) 2014 年 4 月 2 日

Page 92: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章

配置、 配線、 およびロジックの変更

配置、 配線、 およびロジックの変更についてザイ リ ンクス Vivado® Design Suite では、 インプ リ メンテーシ ョ ン フローで配置、 配線、 およびロジッ クを変更するのにいくつかの方法があ り ます。 これらの方法を使用する と、 配置、 配線、 および遅延を厳密に制御でき、 ロジッ クをすばやく変更できます。

配置の変更Vivado ツールでは、 配置セルが固定されているか (Fixed)、 固定されていないか (Unfixed) が検出され、 デザインの配置されたセルをどのよ うに処理するかが判断されます。

固定セル

固定されたセルは、 設計者が配置したか、 制約ファイルからインポート されています。

• Vivado Design Suite では、 このよ うに配置されたセルは固定 (Fixed) と して処理されます。

• 固定セルは、 指示がない限り移動されません。

• 図 3-1 ではフ リ ップフロ ップがオレンジ色 (デフォルト ) で表示されており、 固定されているこ とがわかり ます。

インプリ メンテーシ ョ ン japan.xilinx.com 92UG904 (v2014.1) 2014 年 4 月 2 日

Page 93: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

未固定セル

固定されていないセルは、 Vivado インプ リ メンテーシ ョ ンで place_design コマンドまたは 適化コマンドの 1 つによ り配置されたものです。

• Vivado Design Suite では、 このよ うに配置されたセルは未固定 (Unfixed) または配置は確定していないと して処理されます。

• これらのセルは、 必要に応じて移動されます。

• 図 3-1 では LUT が青色 (デフォルト ) で表示されており、 未固定であるこ とがわかり ます。

LOC および BEL のどちらも固定できます。 上図の配置では、 次の制約が生成されます。

set_property BEL BFF [get_cells {fftEngine/control_reg_reg[1]}]set_property LOC SLICE_X1Y199 [get_cells {fftEngine/control_reg_reg[1]}]

LUT には配置制約は設定されていません。 LUT の配置は未固定であ り、配置は XDC に含めるべきでないこ とを示しています。

X-Ref Target - Figure 3-1

図 3-1 : スライスに配置されたロジック

インプリ メンテーシ ョ ン japan.xilinx.com 93UG904 (v2014.1) 2014 年 4 月 2 日

Page 94: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

配置機能で配置されたロジックの固定

Vivado IDE の Vivado 配置で配置されたセルを固定するには、 次の手順に従います。

1. セルを選択します。

2. 右ク リ ッ ク して [Fix Cells] をク リ ッ ク します。

Tcl でセルの配置を固定するには、 次のコマンドを使用します。

set_property is_bel_fixed TRUE [get_cells [list {fftEngine/control_reg_reg[1]_i_1}]]set_property is_loc_fixed TRUE [get_cells [list {fftEngine/control_reg_reg[1]_i_1}]]

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

ロジックの手動での配置および移動

ロジッ クを手動で配置および移動できます。

• セルが既に配置されている場合、 ド ラ ッグして新しいロケーシ ョ ンにド ロ ップします。

• セルが配置されていない場合は、 次の手順に従います。

a. [Device] ビューでツールバーの [Cell Drag & Drop Modes] ボタンをク リ ッ ク し、 [Create BEL Constraint Mode]をオンにします。

b. [Netlist] ビューまたは [Timing] ビューからロジッ クを [Device] ビューにド ラ ッグします。

ロジッ クは、 有効なロケーシ ョ ンに配置されます。

手動でのロジッ クの配置には時間がかかり ます。制約にセル名が使用されるので、制約はデザインの変更の影響を受けやすくな り ます。

配線の変更デザインの配線を変更は、 [Device] ビューから実行できます。 個々のネッ トに対して配線の解除、 配線、 配線の固定を実行できます。

ネッ トに対して配線の解除、 配線、 配線の固定を実行するには、 次の手順に従います。

1. [Device] ビューを開きます。

2. ネッ ト を選択します。

° 未配線のネッ トは、 赤色のフライラ インで表示されます。

° 部分的に配線されたネッ トは、 黄色で表示されます。

3. 右ク リ ッ ク して [Unroute]、 [Route]、 または [Fix Routing] をク リ ッ ク します。

• [Unroute] (配線の解除) および [Route] (配線) : 配線を再配線モードで起動し、 ネッ トに対して操作を実行します。詳細は、 第 2 章の 88 ページの 「route_design」 を参照してください。

• [Fix Routing] (配線の固定) : 配線し、 配線データベースで固定とマークし、 ネッ トのド ライバーおよびロードのLOC および BEL を固定します。 ネッ ト を手動で配線する配線割り当てモード も使用できます。詳細は、 「手動配線」 を参照して ください。

ヒン ト : ネッ ト関連のコマンドはすべて、 ネッ トのポップアップ メニューから実行できます。

インプリ メンテーシ ョ ン japan.xilinx.com 94UG904 (v2014.1) 2014 年 4 月 2 日

Page 95: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

手動配線

手動配線を使用する と、 ネッ トに特定の配線リ ソースを選択できます。 これによ り、 信号の配線パスを完全に制御できます。手動配線では、 route_design は実行されません。配線は配線データベースで直接アップデート されます。

手動配線は、 ネッ トの遅延を厳密に制御する場合に使用します。 たとえば、 ソース同期インターフェイスで、 デバイスの受信レジスタまでの配線遅延の変動を 小限に抑える場合などです。 これには、 レジスタおよび I/O に LOC および BEL 制約を設定し、 ネッ ト を手動配線するこ とによ り IOB からレジスタまでの配線遅延を制御します。

手動配線を実行するには、デバイスのインターコネク ト アーキテクチャに関する詳細な知識が必要です。手動配線を実行する信号数を制限し、 短い接続にのみ使用するこ とをお勧めします。

手動配線での規則

手動配線では、 次の規則に従ってください。

• ド ラ イバーおよびロードに LOC 制約と BEL 制約が必要です。

• 手動配線では分岐は使用できませんが、分岐点から新しい手動配線を開始するこ とによ り分岐をインプ リ メン トできます。

• LUT ロードのピンを固定する必要があ り ます。

• ド ラ イバーに接続されていないロードに配線する必要があ り ます。

• 完全な接続のみが許容されます。 アンテナは許容されません。

• 既存の固定されていない配線済みネッ ト とオーバーラ ップさせる こ とができます。 手動配線が完了した後route_design を実行し、 ネッ トのオーバーラ ップによる競合を解決して ください。

X-Ref Target - Figure 3-2

図 3-2 : 配線の変更

インプリ メンテーシ ョ ン japan.xilinx.com 95UG904 (v2014.1) 2014 年 4 月 2 日

Page 96: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

配線割り当てモードの開始

配線割り当てモードを開始するには、 次の手順に従います。

1. [Device] ビューを開きます。

2. [Routing Resources] がオンになっているこ とを確認します。

3. ツールバーの [Options] ボタンをク リ ッ ク し、 [Device Options] の [Layers] タブで [Unrouted Net] および [PartiallyRouted Net] をオンにします (図 3-3)。

,

4. 配線が必要なネッ ト を選択します。

° 未配線のネッ トは、 赤色のフライラ インで表示されます。

° 部分的に配線されたネッ トは、 黄色で表示されます。

5. 右ク リ ッ ク して [Enter Assign Routing Mode] をク リ ッ ク します。

[Assign Routing: Target Load Cell Pin] ダイアログ ボッ クスが開きます。

6. 配線先のロード セル ピンを選択します (オプシ ョ ン)。

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

X-Ref Target - Figure 3-3

図 3-3 : [Device Options] の [Layers] タブ

インプリ メンテーシ ョ ン japan.xilinx.com 96UG904 (v2014.1) 2014 年 4 月 2 日

Page 97: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

注記 : [Device] ビューに部分的に配線されたネッ ト または未配線のネッ ト を表示するには、 [Device Options] メニューで対応するレイヤーをオンにする必要があ り ます (図 3-4)。

手動配線モードになり ました。 [Device] ビューの横に [Routing Assignment] ウ ィンド ウが表示されます (図 3-5)。

X-Ref Target - Figure 3-4

図 3-4 : [Device Options] プルアウト メニュー

インプリ メンテーシ ョ ン japan.xilinx.com 97UG904 (v2014.1) 2014 年 4 月 2 日

Page 98: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

[Routing Assignment] ウ ィンド ウには、 次の 3 つのセクシ ョ ンがあ り ます。

[Options] セクシ ョ ン

[Options] セクシ ョ ン (図 3-6) では、 [Routing Assignment] ウ ィンド ウの設定を制御します。

,

• [Number of hops] : 近隣ノードの配線ホップ数を指定します。 この設定は、 [Neighbor Nodes] セクシ ョ ンに表示される ノードに影響します。1 よ り大きい値に設定する と、 [Neighbor Nodes] セクシ ョ ンに配線の 後のノードのみが表示されます。

• [Maximum number of neighbors] : [Neighbor Nodes] セクシ ョ ンに表示される近隣ノードの 大数を指定します。 配線の 後のノードのみが表示されます。

• [Allow overlap with unfixed nets] : 割り当て済み配線と既存の未固定配線のオーバーラ ップを許容するかど うかを指定します。 固定配線の割り当て後、 route_design コマンドを実行してすべてのオーバーラ ップを解決する必要があ り ます。

[Options] セクシ ョ ンはデフォルトでは非表示になっています。[Options] セクシ ョ ンを表示するには、[Show] をク リ ック します。

X-Ref Target - Figure 3-5

図 3-5 : [Routing Assignment] ウィンドウ

X-Ref Target - Figure 3-6

図 3-6 : [Routing Assignment] ウィンドウの [Options] セクシ ョ ン

インプリ メンテーシ ョ ン japan.xilinx.com 98UG904 (v2014.1) 2014 年 4 月 2 日

Page 99: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

[Assigned Nodes] セクシ ョ ン

[Assigned Nodes] には、 既に配線が割り当てられているモードを示します。 割り当済みの各ノードが 1 行に表示されます。

割り当て済みの配線は、[Device] ビューでオレンジ色で示されます。割り当て済みノードの間のギャップは、[AssignedNodes] セクシ ョ ンに GAP 行と して表示されます。 ギャ ップを自動配線するには、 次の手順に従います。

1. [Assigned Nodes] セクシ ョ ンでネッ ト ギャ ップを右ク リ ッ ク します。

2. [Auto-route] をク リ ッ ク します。

次の配線セグメン ト を割り当てるには、ギャ ップの前または後の割り当て済みノードを選択するか、 [Assigned Nodes]セクシ ョ ンの 後のノードを選択します。

[Neighbor Nodes] セクシ ョ ン

選択したノードの近隣にある使用可能なノードを表示します。 [Device] ビューでは、 選択されている ノードが白で示されされ、 使用可能な近隣のノードが白の点線で示されます (図 3-7)。

,X-Ref Target - Figure 3-7

図 3-7 : 配線セグメン トの割り当て

インプリ メンテーシ ョ ン japan.xilinx.com 99UG904 (v2014.1) 2014 年 4 月 2 日

Page 100: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

配線ノードの割り当て

次の配線セグメン トに割り当てる ノードを決定したら、 次のいずれかを実行します。

• [Neighbor Nodes] セクシ ョ ンでノードを右ク リ ッ ク し、 [Assign Node] をク リ ッ ク します。

• [Neighbor Nodes] セクシ ョ ンでノードをダブルク リ ッ クします。

• [Device] ビューでノードをク リ ッ ク します。

配線をノードに割り当てる と、 そのノードが [Assigned Nodes] セクシ ョ ンに表示され、 [Device] ビューでオレンジ色でハイライ ト されます。

ロードに到達するまで、またはギャ ップを含む配線を割り当てる準備ができるまで、ノードの割り当てを継続します。

配線ノードの割り当て解除

ノードの割り当てを解除するには、 次の手順に従います。

1. [Routing Assignment] ウ ィンド ウの [Assigned Nodes] セクシ ョ ンに移動します。

2. 割り当てを解除する ノードを選択します。

3. 右ク リ ッ ク して [Remove] をク リ ッ ク します。

ノードが割り当てから削除されます。

配線割り当ての確定

配線の割り当てを確定して配線割り当てモードを終了するには、 次の操作を実行します。

[Routing Assignment] ウ ィンド ウで [Assign Routing] ボタンをク リ ッ ク します。

[Assign Routing] ダイアログ ボッ クス (図 3-8) が表示されます。 このダイアログ ボッ クスで、 割り当てられたノードを確認します。

X-Ref Target - Figure 3-8

図 3-8 : [Assign Routing] ダイアログ ボックス

インプリ メンテーシ ョ ン japan.xilinx.com 100UG904 (v2014.1) 2014 年 4 月 2 日

Page 101: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

配線割り当てのキャンセル

配線割り当てを確定できない場合は、 次のいずれかの方法を使用して配線割り当てをキャンセルできます。

• [Routing Assignment] ウ ィンド ウで [Exit Mode] をク リ ッ ク します。

• [Device] ビューを右ク リ ッ ク して [Exit Assign Routing Mode] をク リ ッ ク します。

配線を確定する と、 ド ラ イバーおよびロードの BEL および LOC も固定されます。

割り当て済みの配線の確認

• 割り当て済みの配線は、 [Device] で緑色の点線で示されます。

• 部分的に割り当てられた配線は、 [Device] で黄色の点線で示されます。

図 3-9 に、 割り当て済み配線と部分的に割り当てられた配線の例を示します。

X-Ref Target - Figure 3-9

図 3-9 : 割り当て済みの配線および部分的に割り当てられた配線

インプリ メンテーシ ョ ン japan.xilinx.com 101UG904 (v2014.1) 2014 年 4 月 2 日

Page 102: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

LUT ロードのセル入力の固定

配線しよ う と している LUT ロードの入力が、ほかの入力とスワ ップされていないこ とを確認する必要があ り ます。これには、 次の手順に従って LUT ロードのセル入力を固定します。

1. [Device] ビューを開きます。

2. ロード LUT を選択します。

3. 右ク リ ッ ク して [Lock Cell Input Pins] をク リ ッ ク します。

これに相当する Tcl コマンドは、 次のとおりです。

set_property LOCK_PINS {NAME:BEL_PIN} <cell object>

分岐 複数のロードを持つネッ ト を配線する場合は、 次の手順に従ってネッ ト を配線します。

1. 96 ページの 「配線割り当てモードの開始」 の手順に従って 1 つのロードへの配線を割り当てます。

2. ネッ トのすべての分岐への配線を割り当てます。

図 3-10 に、 1 つのロードへの配線が割り当てられ、 さ らに 2 つのロードへの配線が必要なネッ ト を示します。

X-Ref Target - Figure 3-10

図 3-10 : 分岐配線の割り当て

インプリ メンテーシ ョ ン japan.xilinx.com 102UG904 (v2014.1) 2014 年 4 月 2 日

Page 103: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

分岐への配線の割り当て

分岐に配線を割り当てるには、 次の手順に従います。

1. [Device] ビューを表示します。

2. 配線するネッ ト ノードを選択します。

3. 右ク リ ッ ク して [Enter Assign Routing Mode] をク リ ッ ク します。

[Target Load Cell Pin] ダイアログ ボッ クスが開き、 すべてのロードが表示されます。

注記 : 配線が割り当てられているロードには、 [Routed] 列にチェッ ク マークが示されています。

4. 配線するロードを選択します。

X-Ref Target - Figure 3-11

図 3-11 : [Target Load Cell Pin] ダイアログ ボックス (複数ロード )

インプリ メンテーシ ョ ン japan.xilinx.com 103UG904 (v2014.1) 2014 年 4 月 2 日

Page 104: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

5. [OK] をク リ ッ ク します。 [Branch Start] ダイアログ ボッ クス (図 3-12) が開きます。

6. 選択したロードの配線を分岐する ノードを選択します。

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

8. 100 ページの 「配線ノードの割り当て」 の手順に従います。

指定配線制約

固定された配線割り当ては、 配線データベースに指定配線文字列と して保存されます。 指定配線文字列では、 分岐はネス ト された中かっこ ({ }) で示されます。

たとえば、 図 3-13 に示すよ う な配線がある と します。 この配線では、 さまざまなエレ メン トが次の表に示すよ うに示されています。

この配線の簡略化された指定配線文字列は、 次のよ うにな り ます。

{A B { D E T } 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 です。

X-Ref Target - Figure 3-12

図 3-12 : [Branch Start] ダイアログ ボックス

表 3-1 : 指定配線制約

エレメン ト 表示方法

ド ライバーと ロード オレンジ色の矩形

ノード 赤い線

スイ ッチボッ クス 青い矩形

インプリ メンテーシ ョ ン japan.xilinx.com 104UG904 (v2014.1) 2014 年 4 月 2 日

Page 106: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

ロジックの変更読み取り専用でない論理オブジェク トのプロパティは、インプ リ メンテーシ ョ ン後に Vivado IDE または Tcl で変更できます。

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

[Device] ビューでオブジェク トのプロパティを変更するには、 次の手順に従います。

1. オブジェク ト を選択します。

2. [Properties] ビューの [Properties] タブでオブジェク トのプロパティを変更します。

変更可能なプロパティには、ブロッ ク RAM の INIT、MMCM のクロ ッ クを変更するプロパティなどがあ り ます。LUTオブジェク トの INIT を変更するためのダイアログ ボッ クスもあ り、 LUT 論理式を指定して適切な INIT 値がツールによ り設定されるよ うにするこ とができます。

X-Ref Target - Figure 3-14

図 3-14 : プロパティの変更

インプリ メンテーシ ョ ン japan.xilinx.com 106UG904 (v2014.1) 2014 年 4 月 2 日

Page 107: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

第 3 章 : 配置、 配線、 およびロジックの変更

変更の保存

メモ リ内でデザインに対して加えた変更を保存するには、 デザインのチェッ クポイン ト を保存します。

割り当てはデザインにバッ クアノテート されないので、 次回の実行で適用されるよ うにするには、 割り当てを XDCに追加する必要があ り ます。

プロジェク ト モードで制約を制約ファイルに保存するには、 [File] → [Save Constraints] をク リ ッ ク します。

X-Ref Target - Figure 3-15

図 3-15 : LUT 論理式の指定

インプリ メンテーシ ョ ン japan.xilinx.com 107UG904 (v2014.1) 2014 年 4 月 2 日

Page 108: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 A

リモート ホストおよび LSF の使用

リモート Linux ホストでの run の起動

概要

ザイ リ ンクス Vivado® IDE では、 複数の Linux ホス トで同時に合成およびインプ リ メンテーシ ョ ン run を実行できます。 これには、 LSF (Load Sharing Facility) を使用するか、 手動でホス ト を設定します。

LSF を使用した リモート ホス トの設定方法は、 109 ページの 「LSF を使用した リモート ホス トの設定」 を参照してください。

リモート ホス ト を手動で設定する方法は、 111 ページの 「リモート ホス トの手動設定」 を参照して ください。

LSF について

LSF は、 ク ラスターの複数の計算サーバー間でバッチ ジ ョブを投入、 スケジュール、実行、 監視、 ワークロード制御するためのサブシステムです。 LSF を介して Vivado Design Suite で合成 run およびインプ リ メンテーシ ョ ンを実行するには、 bsub コマンドを使用します。

Linux およびリモート ホストのサポート

リモート ホス トは、 次の理由から Linux でのみサポート されます。

• Linux の方がセキュ リティが優れている。

• Microsoft Windows システムにリモート シェル機能がない。

ジ ョ ブ投入アルゴリズムと SSH

ジ ョブ投入アルゴ リズムは、Linux OS のサービスであるセキュア シェル (SSH) 内の Tcl パイプを使用したラウンド ロビン形式でインプリ メン ト されています。

推奨 : 複数の Linux ホス ト を手動で設定して Vivado IDE で run を起動する前に、 リモート run を起動するたびにパスワードを入力しな くて済むよ うに SSH を設定する必要があ り ます。

SSH の設定方法は、 113 ページの 「SSH の設定」 を参照してください。

インプリ メンテーシ ョ ン japan.xilinx.com 108UG904 (v2014.1) 2014 年 4 月 2 日

Page 109: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 A : リモート ホストおよび LSF の使用

リモート ホストの実行要件

リモート Linux ホス トで合成およびインプ リ メンテーシ ョ ン run を実行する際の要件は、 次のとおりです。

• Vivado ツールのインス トールがログイン シェルから使用できる と想定されるので、 $XILINX_VIVADO および$PATH 環境変数を .cshrc/.bashrc セッ ト アップ スク リプ トで正し く設定する必要があ り ます。

手動設定では、 ログイン時に .cshrc または .bashrc で Vivado が設定されていない場合、 [Run pre-launch script] を使用して、 環境設定スク リプ ト をすべてのジ ョブ前に実行できます。

• Vivado IDE のインス トールがリモート マシンの割り当てられたネッ ト ワークから表示できるよ うにする必要があ り ます。 Vivado IDE がマシンのローカル ディ スクにインス トールされている場合は、 リモート マシンからは表示できない可能性があ り ます。

• Vivado IDE のプロジェク ト ファ イル (.xpr) およびディ レク ト リ (.dita および .runs) が、 リモート マシンの割り当てられたネッ ト ワークから表示できるよ うにする必要があ り ます。デザイン データがローカル ディ スクに保存されている と、 リモート マシンからは表示できない可能性があ り ます。

LSF を使用したリモート ホストの設定

LSF 設定を使用して リモート Linux ホス トで合成またはインプリ メンテーシ ョ ンを実行できるよ うに Vivado IDE を設定するには、 次の手順に従います。

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

° メ イン メニューから [Tools] → [Options] をク リ ッ ク し、 左側のペインで [Remote Hosts] をク リ ッ ク します。

° [Launch Selected Runs] ダイアログ ボッ クスで [Configure LSF] をク リ ッ ク します。

° [Create New Runs] ダイアログ ボッ クスの [Launch Options] ページで [Configure LSF] をク リ ッ ク します。

次の図に、 [Launch Selected Runs] ダイアログボ ッ クスで LSF を使用する [Launch runs using LSF] オプシ ョ ンをオンにしたと ころを示します。

X-Ref Target - Figure A-1

図 A-1 : [Launch Selected Runs] ダイアログ ボックスでの LSF の設定

インプリ メンテーシ ョ ン japan.xilinx.com 109UG904 (v2014.1) 2014 年 4 月 2 日

Page 110: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 A : リモート ホストおよび LSF の使用

2. [Vivado Options] ダイアログ ボッ クスの [Remote Hosts] ページが開きます (図 A-2)。 [LSF Configuration] タブをクリ ッ ク します。

3. (オプシ ョ ン) [Command line] で bsub コマンドのオプシ ョ ンを変更します。

デフォルト コマンドは次のとおりです。

bsub -R select[type=X86_64] -N -q medium

4. (オプシ ョ ン) [Test Connection] をク リ ッ ク して LSF への接続をテス ト します。

これによ り、 特別な bsub プロシージャが実行され、 次が確認されます。

- Vivado が LSF を介してジ ョブを投入できる。

- リモート ホス トが runs ディ レク ト リにアクセスできる。

注記 : run をキャンセルする と、 通常は Vivado ツールから bkill コマンドがジ ョブ ID と共に送信されます。 これが実行されない場合は、 コマンド ラ インから手動で run をキャンセルできます。 「bkill <jobID>」 と入力します。

X-Ref Target - Figure A-2

図 A-2 : [Vivado Options] ダイアログ ボックスの [Remote Hosts] ページ

インプリ メンテーシ ョ ン japan.xilinx.com 110UG904 (v2014.1) 2014 年 4 月 2 日

Page 111: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 A : リモート ホストおよび LSF の使用

リモート ホストの手動設定

リモート Linux ホス トで合成またはインプ リ メンテーシ ョ ンを実行できるよ うに Vivado IDE を設定するには、次の手順に従います。

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

° メ イン メニューから [Tools] → [Options] をク リ ッ ク し、 左側のペインで [Remote Hosts] をク リ ッ ク します。

° [Launch Selected Runs] ダイアログ ボッ クスで [Configure Hosts] をク リ ッ ク します。

° [Create New Runs] ダイアログ ボッ クスの [Launch Options] ページで [Configure Hosts] をク リ ッ ク します。

次の図に、 [Launch Selected Runs] ダイアログボ ッ クスで リモート ホス トで run を実行する [Launch runs on remotehosts] オプシ ョ ンをオンにしたと ころを示します。

X-Ref Target - Figure A-3

図 A-3 : [Launch Selected Runs] ダイアログ ボックスでのリモートホス トの設定

インプリ メンテーシ ョ ン japan.xilinx.com 111UG904 (v2014.1) 2014 年 4 月 2 日

Page 112: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 A : リモート ホストおよび LSF の使用

2. [Vivado Options] ダイアログ ボッ クスの [Remote Hosts] ページが開きます (図 A-4)。 [Manual Configuration] タブをク リ ッ ク し、 現在定義されている リモート Linux ホス ト を表示します。

3. [Add] ボタンをク リ ッ ク し、 リモート サーバー名を入力します。

4. [Jobs] 列で、 リモート マシンで同時実行に使用できるプロセッサの数を指定します。 各 run は個別のプロセッサで実行されます。

5. [Enabled] チェッ ク ボッ クスをオン/オフにして、 サーバーを使用するかど うかを指定します。 このチェッ ク ボックスで、 選択した run にどのサーバーを使用するかを指定できます。

6. (オプシ ョ ン) [Launch jobs with] で run を実行する際に使用する リモート アクセス コマンドを変更します。デフォルト コマンドは次のとおりです。

ssh -q -o BatchMode=yes

重要 : このフ ィールドを変更する場合は、 細心の注意を払って ください。 たとえば、 BatchMode =yes を削除すると、 セキュア シェルでパスワードのプロンプ トが表示されるため、 プロセスが停止していまいます。

7. (オプシ ョ ン) [Run pre-launch script] をオンにて、 run の起動前に実行するスク リプ ト を定義します。 ログイン時に Vivado IDE が設定されていない場合に、 このオプシ ョ ンを使用してホス ト環境を設定するスク リプ ト を実行します。

X-Ref Target - Figure A-4

図 A-4 : リモート ホストの設定

インプリ メンテーシ ョ ン japan.xilinx.com 112UG904 (v2014.1) 2014 年 4 月 2 日

Page 113: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 A : リモート ホストおよび LSF の使用

8. (オプシ ョ ン) [Run post-completion script] をオンにして、結果を移動またはコピーするなど、 run の完了後に実行するカスタム スク リプ ト を定義します。

9. (オプシ ョ ン) [Send email to] をオンにし、 run の完了時に電子メールが送信されるよ うにします。各ジ ョブの後に通知を送信するか ([After each Job])、 すべてのジ ョブの完了後に通知を送信するか ([After all jobs]) を選択できます。

10. 設定が終了したら、 [OK] をク リ ッ ク します。

11. 1 つまたは複数のホス ト を選択します。

12. [Test] をク リ ッ ク します。

サーバーが使用可能かど うか、 コンフ ィギュレーシ ョ ンが正し く設定されているかが確認されます。

推奨 : ホス トで run を実行する前に、 各ホス ト をテス ト して正し く設定されているこ とを確認してください。

リモート ホストの削除

リモート ホス ト を削除するには、 次の手順に従います。

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 113UG904 (v2014.1) 2014 年 4 月 2 日

Page 114: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

インプリ メンテーシ ョ ン japan.xilinx.com 114UG904 (v2014.1) 2014 年 4 月 2 日

付録 B

ISE コマンド と Vivado コマンドの対照表

Tcl コマンド とオプシ ョ ンVivado® インプ リ メンテーシ ョ ンには、ISE® ツール コマンド と 1 対 1 で対応するコマンド ラ イン オプシ ョ ンがいくつかあ り ます。

表 B-1 に、 ISE ツール コマンド ライン オプシ ョ ンと、 同等の Vivado Design Suite Tcl コマンドおよび Tcl コマンド オプシ ョ ンを示します。

注記 : Tcl コマンドの詳細は、『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 15] を参照するか、「<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 を自動的にマルチスレ ッ ドで実行 (7 ページの「Vivado ツールでのマルチスレッ ド」 を参照)

map -ntd place_design -non_timing_driven

map -power power_opt_design

map -u link_design -mode out_of_context、opt_design -retarget (定数の伝搬をスキップしてスイープ)

par -mt route_design を自動的にマルチスレ ッ ドで実行 (7 ページの「Vivado ツールでのマルチスレッ ド」 を参照)

par -k route_design を常に再配線モードで実行

par -nopad Vivado ツールでは -nopad の動作がデフォル ト (PAR で生成されていた PAD ファ イルを取得するには report_io コマンドを使用)

par -ntd route_design -no_timing_driven

Page 115: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 C

インプリ メンテーシ ョ ンのカテゴリ、 ス トラテジの説明、 および -directive の設定

インプリ メンテーシ ョ ンのカテゴリI

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

表 C-1 : インプリ メンテーシ ョ ンのカテゴリ

カテゴリ 目的

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

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

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

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

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

表 C-2 : インプリ メンテーシ ョ ン スト ラテジの説明

インプリ メンテーシ ョ ン スト ラテジ名 [Description]

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

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

Performance_ExplorePostRoutePhysOpt Peformance_Explore と同様ですが、 配線後に物理 適化 (phys_opt_design) を -directive を Explorer に設定して実行します。

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

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

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

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

インプリ メンテーシ ョ ン japan.xilinx.com 115UG904 (v2014.1) 2014 年 4 月 2 日

Page 116: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 C : インプリ メンテーシ ョ ンのカテゴリ、 ス ト ラテジの説明、 および -directive の設定

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

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

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

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

Performance_Retiming phys_opt_design の リ タイ ミ ングに加えて、 追加の配置 適化を実行し、 配線遅延コス ト を大き く します。

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

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

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

Flow_RunPostRoutePhysOpt Vivado Implementation Defaults と同様ですが、 配線の前後に物理 適化(phys_opt_design) を -directive を Explorer に設定して実行します。

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 数を削減します。

表 C-2 : インプリ メンテーシ ョ ン スト ラテジの説明 (続き)

インプリ メンテーシ ョ ン スト ラテジ名 [Description]

インプリ メンテーシ ョ ン japan.xilinx.com 116UG904 (v2014.1) 2014 年 4 月 2 日

Page 117: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 C : インプリ メンテーシ ョ ンのカテゴリ、 ス ト ラテジの説明、 および -directive の設定

インプリ メンテーシ ョ ン スト ラテジで使用される opt_design および place_design の -directive の設定

重要 : 配置の -directive オプシ ョ ンは現在のと ころ UltraScale™ デバイス アーキテクチャではサポート されていません。 配置で -directive オプシ ョ ンを指定しても無視され、 デフォルト設定で配置が続行されます。

表 C-3 : インプリ メンテーシ ョ ン スト ラテジで使用される opt_design および place_design の -directive の設定

スト ラテジ opt_design -directive place_design -directive

Performance_Explore Explore Explore

Performance_ExplorePostRoutePhysOpt Explore Explore

Performance_RefinePlacement デフォルト ExtraPostPlacementOpt

Performance_WLBlockPlacement デフォルト WLDrivenBlockPlacement

Performance_WLBlockPlacementFanoutOpt デフォルト WLDrivenBlockPlacement

Performance_LateBlockPlacement デフォルト LateBlockPlacement

Performance_NetDelay_high デフォルト ExtraNetDelay_high

Performance_NetDelay_medium デフォルト ExtraNetDelay_medium

Performance_NetDelay_low デフォルト ExtraNetDelay_low

Performance_ExploreSLLs デフォルト SSI_ExtraTimingOpt

Performance_Retiming デフォルト ExtraPostPlacementOpt

Area_Explore ExploreArea デフォルト

Power_DefaultOpts デフォルト デフォルト

Flow_RunPhysOpt デフォルト デフォルト

Flow_RunPostRoutePhysOpt デフォルト デフォルト

Flow_RuntimeOptimized RuntimeOptimized RuntimeOptimized

Flow_Quick デフォルト Quick

Congestion_SpreadLogic_high デフォルト SpreadLogic_high

Congestion_SpreadLogic_medium デフォルト SpreadLogic_medium

Congestion_SpreadLogic_low デフォルト SpreadLogic_low

Congestion_SpreadLogicSLLs デフォルト SSI_SpreadSLLs

Congestion_BalanceSLLs デフォルト SSI_BalanceSLLs

Congestion_BalanceSLRs デフォルト SSI_BalanceSLRs

Congestion_CompressSLR デフォルト SSI_HighUtilSLRs

インプリ メンテーシ ョ ン japan.xilinx.com 117UG904 (v2014.1) 2014 年 4 月 2 日

Page 118: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 C : インプリ メンテーシ ョ ンのカテゴリ、 ス ト ラテジの説明、 および -directive の設定

インプリ メンテーシ ョ ン スト ラテジで使用される phys_opt_design および route_design の -directive の設定表 C-4 : インプリ メンテーシ ョ ン スト ラテジで使用される phys_opt_design および route_design の -directive の設定

スト ラテジ phys_opt_design -directive route_design -directive

Performance_Explore Explore Explore

Performance_ExplorePostRoutePhysOpt Explorea

a. Explore は配置後および配線後の phys_opt_design 両方に適用されます。

Explore

Performance_RefinePlacement デフォルト NoTimingRelaxation

Performance_WLBlockPlacement AlternateReplication MoreGlobalIterations

Performance_WLBlockPlacementFanoutOpt AggressiveFanoutOpt HigherDelayCost

Performance_LateBlockPlacement AlternateReplication HigherDelayCost

Performance_NetDelay_high デフォルト AdvancedSkewModeling

Performance_NetDelay_medium デフォルト AdvancedSkewModeling

Performance_NetDelay_low デフォルト AdvancedSkewModeling

Performance_ExploreSLLs デフォルト NoTimingRelaxation

Performance_Retiming AlternateFlowWithRetiming route_design

HigherDelayCost

Area_Explore デフォルト デフォルト

Power_DefaultOpts デフォルト デフォルト

Flow_RunPhysOpt Explore デフォルト

Flow_RuntimeOptimized ディ スエーブル RuntimeOptimized

Flow_RunPostRoutePhysOpt Exploreb

b. Explore は配置後および配線後の phys_opt_design 両方に適用されます。

デフォルト

Flow_Quick ディ スエーブル Quick

Congestion_SpreadLogic_high AggressiveFanoutOpt MoreGlobalIterations

Congestion_SpreadLogic_medium AggressiveFanoutOpt HigherDelayCost

Congestion_SpreadLogic_low デフォルト NoTimingRelaxation

Congestion_SpreadLogicSLLs デフォルト NoTimingRelaxation

Congestion_BalanceSLLs デフォルト NoTimingRelaxation

Congestion_BalanceSLRs デフォルト デフォルト

Congestion_CompressSLR デフォルト デフォルト

インプリ メンテーシ ョ ン japan.xilinx.com 118UG904 (v2014.1) 2014 年 4 月 2 日

Page 119: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

付録 D

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

ザイリンクス リソースアンサー、 資料、 ダウンロード、 フォーラムなどのサポート リ ソースは、 ザイ リ ンクス サポート サイ ト を参照してください。

ソリューシ ョ ン センターデバイス、 ツール、 IP のサポートについては、 ザイ リ ンクス ソ リ ューシ ョ ン センターを参照して ください。 デザイン アシスタン ト、 アドバイザリ、 ト ラブルシューティングのヒン ト などが含まれます。

参考資料

Vivado® Design Suite ユーザー ガイ ド

1. 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892)

2. 『Vivado Design Suite ユーザー ガイ ド : 階層デザイン』 (UG905)

3. 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)

4. 『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896)

5. 『Vivado Design Suite ユーザー ガイ ド : Tcl スク リプ ト機能の使用』 (UG894)

6. 『Vivado Design Suite ユーザー ガイ ド : システム レベル デザイン入力』 (UG895)

7. 『Vivado Design Suite ユーザー ガイ ド : IP インテグレーターを使用した IP サブシステムの設計』 (UG994)

8. 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901)

9. 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903)

10. 『Vivado Design Suite ユーザー ガイ ド : デザイン解析およびクロージャ テクニッ ク』 (UG906)

11. 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析および 適化』 (UG907)

12. 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908)

インプリ メンテーシ ョ ン japan.xilinx.com 119UG904 (v2014.1) 2014 年 4 月 2 日

Page 120: Vivado Design Suite ユー ザー ガイド - Xilinx...インプリメンテーション japan.xilinx.com 2 UG904 (v2014.1) 2014 年 4 月 2 日 改訂履歴 次の表に、この文書の改訂履歴を示します

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

その他の Vivado Design Suite 関連の資料

13. 『7 シ リーズ FPGA クロ ッキング リ ソース ユーザー ガイ ド』 (UG472)

14. 『UltraScale アーキテクチャ ク ロ ッキング リ ソース ユーザー ガイ ド』 (UG572)

15. 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835)

16. 『ISE から Vivado Design Suite への移行ガイ ド』 (UG911)

17. 『Vivado Design Suite チュート リ アル : デザイン フローの概要』 (UG888)

Vivado Design Suite の資料サイ ト

18. Vivado Design Suite 資料ページ

Vivado Design Suite ビデオ チュート リアル

19. Vivado Design Suite ビデオ チュート リ アル ページ

法的通知The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products. To the maximum extentpermitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES ANDCONDITIONS, 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 connectionwith, 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 suchdamage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct anyerrors 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 Xilinx’s limited warranty,please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and supportterms 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 applicationrequiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in such critical applications, please refer to Xilinx’sTerms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos.

© Copyright 2012-2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brandsincluded herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

本資料は英語版 (v2014.1) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] までお知らせください。

いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アド レスへのお問い合わせは受け付けており ま

せん。 あらかじめご了承ください。

インプリ メンテーシ ョ ン japan.xilinx.com 120UG904 (v2014.1) 2014 年 4 月 2 日