Vivado Design Suite ユーザー ガ イ ド イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情 報につきましては、必ず最新英語版をご参照ください。 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂内容 2015 年 4 月 1 日 2015.1 第1章 10 ページの 「プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド の違い」 で非プ ロ ジ ェ ク ト ベース デザ イ ンの イ ンプ リ メ ン テーシ ョ ンの Tcl コ マ ン ド の リ ス ト に phys_opt_design コ マ ン ド を追加 11 ページの 「合成済みネ ッ ト リ ス ト の イ ン ポー ト 」 の 「重要」 を変更 第2章 全体的にマ イ ナーな ア ッ プデー ト お よ び向上 図 2-9 お よ び図 2-10 を ア ッ プデー ト 「 イ ンプ リ メ ン テーシ ョ ン run の定義」 の手順を ア ッ プデー ト 「 イ ンプ リ メ ン テーシ ョ ンの段階ご と の実行」 を ア ッ プデー ト 「合成済みデザ イ ン を開 く 」 を ア ッ プデー ト 「-directive オプシ ョ ンで指定可能なモー ド 」 で -directive オプシ ョ ンの AltWLDrivenPlacement の説明か ら 「UltraScale™ デバ イ ス でのみ使用可能」 と い う 注記を削除 ( こ の設定は現在では 7 シ リ ーズ デバ イ ス で も 使用可能) 「-directive オプシ ョ ンで指定可能なモー ド 」 で -directive オプシ ョ ンの LateBlockPlacement を削除 「-directive オプシ ョ ンの使用」 で -directive オプシ ョ ンの AlternateDelayModeling を削除 (現在ではサポー ト さ れない) phys_opt_design の -directive オプシ ョ ンで配置後お よ び配線後にサポー ト さ れ る モー ド を示 し た表を削除 ( こ の リ リ ース か ら 配置後お よ び配線後の phys_opt_design で -directive オプシ ョ ンに設定可能なモー ド は共通) 第3章 全体的にマ イ ナーな ア ッ プデー ト お よ び向上 図 3-8 を ア ッ プデー ト 113 ページの 「例 2 : デバ ッ グ ポー ト の追加」 に説明を追加 付録 C 表か ら Performance_LateBlockPlacement を削除 (廃止) イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 2 目次 改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス について. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 イ ンプ リ メ ン テーシ ョ ンの制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 IP の設定、 イ ンプ リ メ ン ト 、 お よ び検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 イ ンプ リ メ ン テーシ ョ ンでのデザ イ ン制約の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 チ ェ ッ ク ポ イ ン ト を使用 し たデザ イ ンの スナ ッ プシ ョ ッ ト の保存お よ び復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジのカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ン run の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . プ ロ セ ス のバ ッ ク グ ラ ウ ン ド への移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ンの段階ご と の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ン コ マ ン ド について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ンのサブプ ロ セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 合成済みデザ イ ン を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ロ ジ ッ ク 最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 消費電力の最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 物理最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 配線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ン ク リ メ ン タ ル コ ンパ イ ル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 19 29 34 36 36 38 38 40 44 47 49 55 61 69 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 イ ンプ リ メ ン テーシ ョ ン run の監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 イ ンプ リ メ ン テーシ ョ ン完了後の次の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 メ ッ セージの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 イ ンプ リ メ ン テーシ ョ ン レ ポー ト の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 イ ンプ リ メ ン テーシ ョ ン結果の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ロ ジ ッ ク の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 付録 A : リ モー ト ホス ト および LSF の使用 リ モー ト Linux ホ ス ト での run の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 SSH の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 付録 B : ISE コ マ ン ド と Vivado コ マ ン ド の対照表 Tcl コ マ ン ド と オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 3 付録 C : イ ン プ リ メ ン テーシ ョ ンのカ テ ゴ リ 、 ス ト ラ テ ジの説明、 お よび -directive の設定 イ ンプ リ イ ンプ リ イ ンプ リ イ ンプ リ メ ン テーシ ョ ンのカ テ ゴ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . メ ン テーシ ョ ン ス ト ラ テジの説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . メ ン テーシ ョ ン ス ト ラ テジで使用 さ れ る opt_design お よ び place_design の -directive の設定 . . . . . . . . メ ン テーシ ョ ン ス ト ラ テジで使用 さ れ る phys_opt_design お よ び route_design の -directive の設定 . . . 124 124 126 127 付録 D : その他の ソ ースお よび法的通知 ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ソ リ ュ ーシ ョ ン セ ン タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ト レーニ ン グ リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 128 128 128 129 129 4 第 1章 イ ン プ リ メ ン テーシ ョ ンの準備 Vivado イ ン プ リ メ ン テーシ ョ ン プ ロ セスについて ザ イ リ ン ク ス Vivado® Design Suite では、次の よ う な さ ま ざ ま なデザ イ ン ソ ース か ら UltraScale™ FPGA お よ びザ イ リ ン ク ス 7 シ リ ーズ FPGA デザ イ ン を イ ンプ リ メ ン テーシ ョ ン で き ます。 • RTL デザ イ ン • ネ ッ ト リ ス ト デザ イ ン • IP 中心のデザ イ ン フ ロ ー 図 1-1 に Vivado ツール フ ロ ーを示 し ます。 Vivado イ ンプ リ メ ン テーシ ョ ンは、 デザ イ ンの論理制約、 物理制約、 タ イ ミ ン グ制約を満た し なが ら ネ ッ ト リ ス ト を デバ イ ス リ ソ ース に配置配線す る ためのすべての手順を含みます。 Vivado ツールでサポー ト さ れ る デザ イ ン フ ロ ーの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの 概要』 (UG892) [参照 1] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 5 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 SDC および XDC 制約のサポー ト Vivado イ ン プ リ メ ン テーシ ョ ンは、 タ イ ミ ン グ ド リ ブ ン フ ロ ーです。 デザ イ ンの要件お よ び制限を指定す る のに、 業界標準の Synopsys デザ イ ン制約 (SDC) と ザ イ リ ン ク ス デザ イ ン制約 (XDC) がサポー ト さ れます。 X-Ref Target - Figure 1-1 &ኚዙኖ 浧⇜⚗㒟 ,3倀⚗ ኅዐኤአኦᇬ ዊንአኌᇬ'63ಹ '63ኤናኁዐ 6\VWHP*HQHUDWRU ኈኖኜኽ,3 ,3ቑኮአዙን▥ ኚዙኖ 57/ᇬ ኪአእኖእᇬ Ⓟ侓 ,3ኈኜዊኍ 57/ኔኖኣኽዉወ倀⚗ ናኁዐኌኖ,3 ኒዙኦኮዙኣኀ,3 ዃዙናዙ,3 ⚗㒟 ኁዐኴኾዐ ኣዙኔዄዐ ኤናኁዐ屲㨟 Ⓟ侓 ኔኼዂዉዙኔዄዐ ኤክአኍ ኌዊኖኴዊዙኳ (&2 ኴዊኍኽ ርቫቖኤክአኍ ; 図 1-1 : Vivado Design Suite のデザイ ン フ ロー Vivado イ ン プ リ メ ン テーシ ョ ンのサブ プ ロ セス Vivado Design Suite の イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス では、 論理ネ ッ ト リ ス ト お よ び制約が配置配線済みデザ イ ン に変換 さ れ、 ビ ッ ト ス ト リ ーム を生成で き る よ う に し ます。 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス には、 次のサブプ ロ セ ス があ り ます。 • デザ イ ンの最適化 : タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス に フ ィ ッ ト し やすい よ う に論理デザ イ ン を最適化 し ます。 • デザ イ ンの消費電力最適化 (オプシ ョ ン) : タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス の消費電力を削減す る よ う デザ イ ン エ レ メ ン ト を最適化 し ます。 • デザ イ ンの配置 : デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配置 し ます。 • 配置後のデザ イ ンの消費電力最適化 (オプシ ョ ン) : 配置後に消費電力を削減する よ う 追加の最適化を実行 し ます。 • 配置後のデザ イ ンの物理最適化 (オプシ ョ ン) : 配置に基づ く 予測 タ イ ミ ン グ を使用 し て ロ ジ ッ ク お よ び配置を最適化 し ます。 フ ァ ン ア ウ ト の大 き い ド ラ イ バー の複製 も 含まれます。 • デザ イ ンの配線 : デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配線 し ます。 • 配線後のデザ イ ンの物理最適化 (オプシ ョ ン) : 配線後の実際の遅延を使用 し て、 ロ ジ ッ ク 、 配置、 お よ び配線を最適化 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 6 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 • ビ ッ ト ス ト リ ームの生成 : ザ イ リ ン ク ス デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの ビ ッ ト ス ト リ ーム を生成 し ます。通常、イ ンプ リ メ ン テーシ ョ ンの後に ビ ッ ト ス ト リ ーム を生成 し ます。 ビ ッ ト ス ト リ ーム生成の詳細は、 『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 • 物理最適化 : 8 すべての タ ス ク に適用 さ れ る 一般的な制限 も あ り 、 OS に よ っ て異な り ます。 Windows シ ス テ ムでは こ の制限は 2 で、 Linux シ ス テ ムでは 8 です。 こ の制限は、 general.maxThreads と い う パ ラ メ ー タ ーを使用 し て変更で き ます。 制限を変 更する には、 次の Tcl コ マ ン ド を使用 し ます。 Vivado% set_param general.maxThreads <new limit> <new limit> に有効な値は、 1 ~ 8 の整数値です。 Windows シ ス テ ム での Tcl 例 : 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) [参照 16] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 7 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 イ ン プ リ メ ン テーシ ョ ンの制御 Vivado Design Suite では さ ま ざ ま なデザ イ ン フ ロ ーが提供 さ れてお り 、多種のデザ イ ン ソ ース がサポー ト さ れてい ま す。 ザ イ リ ン ク ス デバ イ ス にダ ウ ン ロ ー ド 可能な ビ ッ ト ス ト リ ーム を生成する には、 イ ンプ リ メ ン テーシ ョ ン を実行 する 必要があ り ます。 イ ンプ リ メ ン テーシ ョ ンは、 論理ネ ッ ト リ ス ト を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス の物理的な ア レ イ にマ ッ プす る ための一連の手順を指 し ます。 次の手順が含まれます。 • ロ ジ ッ ク 最適化 • ラ イ ブ ラ リ セルの配置 • セル間の接続の配線 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド Vivado Design Suite では、 イ ンプ リ メ ン テーシ ョ ン をプ ロ ジ ェ ク ト フ ァ イ ルを使用 し て (プ ロ ジ ェ ク ト モー ド )、 ま た はプ ロ ジ ェ ク ト フ ァ イ ルを使用せずに (非プ ロ ジ ェ ク ト モー ド ) 実行で き ます。 プ ロ ジ ェ ク ト モー ド プ ロ ジ ェ ク ト フ ァ イ ル (.xpr) と そのデ ィ レ ク ト リ 構造を作成す る と 、 次が可能にな り ます。 • デザ イ ン ソ ース フ ァ イ ルの管理 • 合成 run お よ び イ ンプ リ メ ン テーシ ョ ン run の結果の保存 • デザ イ ン フ ロ ーを通 し てプ ロ ジ ェ ク ト ス テー タ ス を監視 プ ロ ジ ェ ク ト モー ド での作業 プ ロ ジ ェ ク ト モー ド では、 デ ィ ス ク 上にデ ィ レ ク ト リ 構造が作成 さ れ、 それを利用 し てデザ イ ン ソ ース、 run の結果 お よ びレ ポー ト 、 プ ロ ジ ェ ク ト ス テー タ ス が管理 さ れます。 デザ イ ン デー タ 、 プ ロ セ ス、 お よ びス テー タ ス を自動管理する には、 Vivado プ ロ ジ ェ ク ト フ ァ イ ル (.xpr) に保存 さ れ る プ ロ ジ ェ ク ト イ ン フ ラ ス ト ラ ク チ ャ が必要です。 ま た、 デザ イ ン フ ロ ーの主要な段階のチ ェ ッ ク ポ イ ン ト フ ァ イ ルが、 自動的に ローカル プ ロ ジ ェ ク ト デ ィ レ ク ト リ に保存 さ れます。 プ ロ ジ ェ ク ト モー ド で イ ンプ リ メ ン テーシ ョ ン を実行する には、IDE で [Run Implementation] を ク リ ッ ク する か、Tcl コ マ ン ド で launch_runs を使用 し ます。 Vivado Design Suite でのプ ロ ジ ェ ク ト の使用に関す る 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ローの概要』 (UG892) [参照 1] の「プ ロ ジ ェ ク ト モー ド の使用」を参照し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 8 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 Flow Navigator Vivado 統合設計環境 (IDE) を使用す る と 、 完全なデザ イ ン フ ロ ーを実行で き ます。 Vivado IDE には、 Flow Navigator と い う フ ロ ーを制御する イ ン タ ーフ ェ イ ス があ り ます。 Flow Navigator は Vivado Design Suite の メ イ ン ウ ィ ン ド ウ の左側に表示 さ れ、 こ こ か ら デザ イ ンお よ び IP を作成、 イ ンプ リ メ ン ト 、 お よ び検証で き ます。 デザ イ ン フ ロ ーを簡略化す る ため、 イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス全体を コ マ ン ド を ク リ ッ ク する だけで実行で き ます。 図 1-2 に、 Flow Navigator の [Implementation] セ ク シ ョ ン を示 し ます。 X-Ref Target - Figure 1-2 図 1-2 : Flow Navigator : [Implemention] セ ク シ ョ ン 重要 : こ のガ イ ド では、 イ ンプ リ メ ン テーシ ョ ン以外の Vivado IDE の詳細は説明 し ません。 デザ イ ン フ ロ ー全体に 関連する Vivado IDE の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 3] を参照 し て く だ さ い。 非プ ロ ジ ェ ク ト モー ド プ ロ ジ ェ ク ト フ ァ イ ルお よ び ロ ーカル デ ィ レ ク ト リ を作成せずに、 メ モ リ 内のデザ イ ンで作業す る こ と も 可能です。 プ ロ ジ ェ ク ト フ ァ イ ルを使用 し ない コ ンパ イ ル形式の フ ロ ーは、 非プ ロ ジ ェ ク ト モー ド と 呼ばれます。 ソ ース フ ァ イ ルお よ びデザ イ ン制約は、 現在の場所か ら メ モ リ に読み込みます。 メ モ リ 内のデザ イ ンでデザ イ ン フ ロ ーを実行す る 際、 中間フ ァ イ ルが記述 さ れ る こ と はあ り ません。 非プ ロ ジ ェ ク ト モー ド では、 各 イ ンプ リ メ ン テーシ ョ ン Tcl コ マ ン ド を適切なオプシ ョ ン と 共に使用 し 、 各手順を個 別に実行する 必要があ り ます。 変更を保存 し た り 手順を再実行 し た り する 必要な く 、 デザ イ ンに変更を加え、 デザ イ ン フ ロ ーを続行で き ます。 デザ イ ン フ ロ ーの ど の段階で も 、 レ ポー ト を生成 し た り 、 デザ イ ン チ ェ ッ ク ポ イ ン ト (.dcp) を保存 し た り で き ます。 重要 : 非プ ロ ジ ェ ク ト モー ド では、 Vivado デザ イ ン ツールを終了す る と 、 メ モ リ 内のデザ イ ンは失われ ます。 その ため、 合成、 配置、 配線な ど の主な手順が終了 し た ら 、 デザ イ ン チ ェ ッ ク ポ イ ン ト を保存する こ と をお勧め し ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で保存で き ま す。 デザ イ ン チ ェ ッ ク ポ イ ン ト を開 く こ と がで き る のは、 非プ ロ ジ ェ ク ト モー ド のみです。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 9 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド の違い Vivado イ ンプ リ メ ン テーシ ョ ンは、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で実行で き ます。 Vivado IDE お よ び Tcl API は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で使用で き ます。 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド には、 多 く の違いがあ り ます。 次に、 非プ ロ ジ ェ ク ト モー ド では使用 で き ない機能を示 し ます。 • Flow Navigator • デザ イ ン ス テー タ ス イ ン ジケー タ ー • IP カ タ ロ グ • イ ンプ リ メ ン テーシ ョ ン run お よ び run ス ト ラ テジ • [Design Runs] ウ ィ ン ド ウ • [Messages] ウ ィ ン ド ウ • [Reports] ウ ィ ン ド ウ 注記 : こ の リ ス ト には、 非プ ロ ジ ェ ク ト モー ド でサポー ト さ れない機能がすべて含まれてい る わけではあ り ません。 非プ ロ ジ ェ ク ト ベース のデザ イ ン を イ ンプ リ メ ン ト す る には、 次の Tcl コ マン ド を個別に実行す る 必要があ り ます。 • opt_design • power_opt_design (オプシ ョ ン) • place_design • phys_opt_design (オプシ ョ ン) • route_design • phys_opt_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 コ マ ン ド が完了 し た後、 合成結果は メ モ リ 内にあ る ので、 そ こ か ら イ ンプ リ メ ン テーシ ョ ンに進む こ と がで き ます。 • 合成済みネ ッ ト リ ス ト を読み込みます。合成にサー ド パーテ ィ ツールを使用 し た場合な ど は、合成済みネ ッ ト リ ス ト を入力デザ イ ン ソ ース と し て使用で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 10 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 イ ンプ リ メ ン テーシ ョ ン を開始する には、 次の手順に従い ます。 • プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン テーシ ョ ン run を実行 し ます。 • 非プ ロ ジ ェ ク ト モー ド では、 ス ク リ プ ト を実行す る か、 コ マン ド を対話的に実行 し ます。 デザ イ ン を解析 し て制約を調整する には、 イ ンプ リ メ ン テーシ ョ ン を実行せずに合成済みデザ イ ン を読み込みます。 • プ ロ ジ ェ ク ト モー ド では、 Flow Navigator の [Open Synthesized Design] を ク リ ッ ク し て、 合成 run の結果であ る 合 成済みデザ イ ン を開き ます。 • 非プ ロ ジ ェ ク ト モー ド では、 link_design コ マン ド を使用 し てデザ イ ン を読み込みます。 非プ ロ ジ ェ ク ト モー ド では、デザ イ ン チ ェ ッ ク ポ イ ン ト を使用す る こ と も で き ます。 チ ェ ッ ク ポ イ ン ト を開 く と 、デ ザ イ ンが読み込まれてそのチ ェ ッ ク ポ イ ン ト の状態が復元 さ れます。 配置お よ び配線デー タ が含まれ る 場合 も あ り ま す。 こ れに よ り 、 配線済みデザ イ ン を読み込んで配線を変更 し た り 、 配置済みデザ イ ン を読み込んで異な る オプシ ョ ン を使用 し て配線を複数回実行する な ど、 再配線 イ ンプ リ メ ン テーシ ョ ン フ ロ ーを実行で き ます。 合成済みネ ッ ト リ ス ト のイ ンポー ト Vivado Design Suite では、 ネ ッ ト リ ス ト デザ イ ンがサポー ト さ れてお り 、 ザ イ リ ン ク ス ツールま たはサー ド パーテ ィ ツールで合成済みのネ ッ ト リ ス ト を イ ンポー ト で き ます。 サポー ト さ れ る ネ ッ ト リ ス ト フ ォーマ ッ ト は、次の と お り です。 • Structural Verilog • Structural SystemVerilog • EDIF • ザ イ リ ン ク ス NGC • 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) 重要 : NGC フ ォ ーマ ッ ト フ ァ イ ルは、 Vivado Design Suite では UltraScale デバ イ ス に対 し てはサポー ト さ れ ません。 Vivado Design Suite で IP を再生成 し 、ネ イ テ ィ ブ出力フ ァ イ ルを使用する こ と をお勧め し ます。ま たは、convert_ngc Tcl ユーテ ィ リ テ ィ を使用 し て NGC フ ァ イ ルを EDIF ま たは Verilog に変換す る こ と も で き ます。 ただ し 、 XST で生 成 さ れた NGC フ ァ イ ルを使用す る のではな く 、 ネ イ テ ィ ブ Vivado IP を使用す る こ と をお勧め し ます。 重要 : プ ロ ジ ェ ク ト モー ド ま たは非プ ロ ジ ェ ク ト モー ド で IP を使用する 場合は、DCP フ ァ イ ルではな く XCI フ ァ イ ルを使用 し て く だ さ い。 こ れに よ り 、 デザ イ ン フ ロ ーのすべての段階で IP 出力フ ァ イ ルが一貫 し て使用 さ れ ます。 IP が独立モジ ュ ール と し て合成 さ れてお り 、 関連す る DCP フ ァ イ ルが既にあ る 場合は、 その DCP フ ァ イ ルが自動的 に使用 さ れ、 IP は再合成 さ れません。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参 照 4] の 「既存 IP のプ ロ ジ ェ ク ト への追加」 を参照 し て く だ さ い。 Vivado Design Suite でサポー ト さ れ る ソ ース フ ァ イ ルお よ びプ ロ ジ ェ ク ト タ イ プの詳細は、『Vivado Design Suite ユー ザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 6] を参照 し て く だ さ い。 RTL ソ ースか ら開始 Vivado イ ンプ リ メ ン テーシ ョ ン を実行す る には、 合成済みネ ッ ト リ ス ト が必要です。 デザ イ ンは合成済みネ ッ ト リ ス ト か ら 、 ま たは RTL ソ ース フ ァ イ ルか ら 開始で き ます。 重要 : RTL ソ ー ス か ら 開始す る 場合は、 イ ン プ リ メ ン テーシ ョ ン の前に Vivado 合成 を 実行す る 必要が あ り ま す。 Vivado IDE では、 こ れが自動的に管理 さ れます。 合成 さ れていないデザ イ ン を イ ンプ リ メ ン ト し よ う と する と 、 まず 合成を実行する かど う かを選択する オプシ ョ ンが表示 さ れます。 Vivado 合成の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 8] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 11 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 非プ ロ ジ ェ ク ト モー ド で合成済みデザイ ン を作成 し て開 く 非プ ロ ジ ェ ク ト モー ド では、 Tcl コ マ ン ド synth_design を使用 し て合成を実行 し 、 合成済みデザ イ ン を作成 し て 開 く 必要が あ り ま す。 サ ポー ト さ れ て い る 入力 フ ォ ーマ ッ ト の合成済みネ ッ ト リ ス ト を 開 く には、 Tcl コ マ ン ド link_design も 使用で き ま す。 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト を開 く には、 open_checkpoint コ マ ン ド を 使用 し ます。 詳細は、 第 2 章 「デザ イ ンの イ ンプ リ メ ン テーシ ョ ン」 の 「合成済みデザ イ ン を開 く 」 を参照 し て く だ さ い。 プ ロ ジ ェ ク ト モー ド で イ ン プ リ メ ン テーシ ョ ン前にデザイ ン ネ ッ ト リ ス ト を読 み込む プ ロ ジ ェ ク ト モー ド では、 RTL デザ イ ンの合成後、 ま たはネ ッ ト リ ス ト ベース プ ロ ジ ェ ク ト を開いて、 イ ンプ リ メ ン テーシ ョ ン前のデザ イ ン ネ ッ ト リ ス ト を読み込む こ と がで き ます。 合成済みデザ イ ン を開 く には、 次のいずれかを実行 し ます。 • メ イ ン メ ニ ュ ーか ら [Flow] → [Open Synthesized Design] を ク リ ッ ク し ます。 • Flow Navigator で [Synthesis] → [Open Synthesized Design] を ク リ ッ ク し ます。 • [Design Runs] ウ ィ ン ド ウ で合成 run を右 ク リ ッ ク し、[Open Run] を ク リ ッ ク し ます。 IP の設定、 イ ン プ リ メ ン ト 、 および検証 合成前にデザ イ ン に IP を イ ン ポー ト す る 方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 4] の 「カ ス タ マ イ ズ IP の作成」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン でのデザイ ン制約の使用 推奨 : イ ンプ リ メ ン テーシ ョ ン を実行す る 際は、 デザ イ ン制約を設定 し て く だ さ い。 デザ イ ン制約には、 物理制約 と タ イ ミ ン グ制約の 2 種類があ り ます。 デザ イ ン制約には、 物理制約 と タ イ ミ ン グ制約の 2 種類があ り ます。 こ れ ら の制約を、 次に説明 し ます。 物理制約 物理制約は、 次の よ う な論理デザ イ ン オブジ ェ ク ト と デバ イ ス リ ソ ース の関係を定義 し ます。 • パ ッ ケージ ピ ンの配置 • 次の よ う なセルの絶対ま たは相対配置 ° ブ ロ ッ ク RAM ° DSP ° LUT ° フ リ ッ プフ ロ ッ プ • セルをデバ イ ス の汎用領域に割 り 当て る フ ロ アプ ラ ン制約 • デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 12 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 タ イ ミ ング制約 タ イ ミ ン グ制約は業界標準の SDC で記述 さ れ、 デザ イ ンの周波数要件を定義 し ます。 タ イ ミ ン グ制約を設定 し ない場合、 デザ イ ンが ワ イ ヤの長 さ お よ び配線の密集度にのみ基づいて最適化 さ れ、 デザ イ ン パフ ォーマン ス が評価 さ れた り 向上 し た り す る こ と はあ り ません。 UCF タ イ ミ ング制約はサポー ト さ れない 重要 : Vivado Design Suite では、 UCF フ ォーマ ッ ト はサポー ト さ れません。 UCF 制約 を XDC コ マ ン ド に変換す る 方法につい ては、 『ISE か ら Vivado Design Suite への移行ガ イ ド 』 (UG911) [参 照 17] の 「UCF 制約の XDC への移行」 を参照 し て く だ さ い。 制約セ ッ ト に よ り 複数の制約フ ァ イルをデザイ ンに適用 制約セ ッ ト は、 プ ロ ジ ェ ク ト モー ド のデザ イ ンに適用す る 制約フ ァ イ ルの リ ス ト です。 制約セ ッ ト には、 XDC ま た は Tcl フ ァ イ ルに記述 さ れたデザ イ ン制約が含まれます。 制約セ ッ ト の構造 次の制約セ ッ ト の構造がサポー ト さ れます。 • 複数の制約フ ァ イ ルを含む制約セ ッ ト • 個別の物理制約フ ァ イ ルお よ び タ イ ミ ン グ制約フ ァ イ ルを含む制約セ ッ ト • マ ス タ ー制約フ ァ イ ル • 新 し い制約フ ァ イ ルに制約の変更を保存 • 複数の制約セ ッ ト ヒ ン ト : 制約を機能に応 じ て別の制約フ ァ イ ルに分けてお く と 、 制約ス ト ラ テジ全体がわか り やす く な り 、 タ イ ミ ン グお よ び イ ンプ リ メ ン テーシ ョ ン を変更 し やす く な り ます。 複数の制約セ ッ ト プ ロ ジ ェ ク ト に複数の制約セ ッ ト を作成で き ます。 複数の制約セ ッ ト を作成す る と 、 異な る イ ンプ リ メ ン テーシ ョ ン run で異な る 制約を試す こ と がで き ます。 た と えば、 合成 と イ ンプ リ メ ン テーシ ョ ンに異な る 制約セ ッ ト を指定で き ます。 合成、 シ ミ ュ レーシ ョ ン、 イ ンプ リ メ ン テーシ ョ ンで異な る 制約を適用 し て試す こ と がで き ます。 デザ イ ン制約を複数の制約セ ッ ト を使用 し て整理する と 、 次の よ う な利点があ り ます。 • 同 じ プ ロ ジ ェ ク ト で異な る ザ イ リ ン ク ス デバ イ ス を タ ーゲ ッ ト と し て設定で き ます。 タ ーゲ ッ ト デバ イ ス が異 な る と 、 物理制約お よ び タ イ ミ ン グ制約 も 異な る も のにする 必要があ る 場合があ り ます。 • さ ま ざ ま な条件でデザ イ ン を実行で き ます。 制約セ ッ ト を使用 し て、 異な る フ ロ アプ ラ ン を適用 し た り 、 デザ イ ンの制約を厳 し く し た り で き ます。 • 制約の変更を管理 し や く すな り ま す。 マ ス タ ー制約の代わ り に、 別の制約フ ァ イ ルに保存 し た制約を使用で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 13 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 ヒ ン ト : タ イ ミ ン グ制約を検証す る には、 合成済みデザ イ ン で report_timing_summary コ マ ン ド を実行 し ます。 イ ンプ リ メ ン テーシ ョ ンの前に、 問題のあ る 制約を修正 し て く だ さ い。 配置配線に影響す る 制約の定義お よ び制約での作業の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 9] の 「物理制約」 を参照 し て く だ さ い。 制約を 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) [参照 17] を参照 し て く だ さ い。 チ ェ ッ ク ポ イ ン ト を使用 し たデザイ ンのスナ ッ プ シ ョ ッ ト の保存および復元 Vivado Design Suite では、 物理デザ イ ン デー タ ベース を使用 し て配置配線情報を格納 し ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (.dcp) を使用す る と 、デザ イ ン フ ロ ーの主要な段階で こ の物理デー タ ベース を保存お よ び復元で き ま す。 チ ェ ッ ク ポ イ ン ト は、 フ ロ ーの特定の地点におけ る デザ イ ンの ス ナ ッ プシ ョ ッ ト です。 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルには、 次の も のが含まれます。 • イ ンプ リ メ ン テーシ ョ ン中に適用 さ れた最適化を含む現在のネ ッ ト リ ス ト • デザ イ ン制約 • イ ンプ リ メ ン テーシ ョ ン結果 チ ェ ッ ク ポ イ ン ト デザ イ ンに対 し ては、 Tcl コ マン ド を使用 し てデザ イ ン フ ロ ーの残 り の段階を実行で き ます。 新 し いデザ イ ン ソ ース を使用 し て変更す る こ と はで き ません。 重要 : プ ロ ジ ェ ク ト モー ド では、 デザ イ ン フ ローの進行に応 じ て、 Vivado デザ イ ン ツールに よ り 自動的にチ ェ ッ ク ポ イ ン ト が保存お よ び復元 さ れます。非プ ロ ジ ェ ク ト モー ド では、デザ イ ン フ ロ ーの適切な段階でユーザーがチ ェ ッ ク ポ イ ン ト を保存する 必要があ り ます。 そ う し ない と 、 メ モ リ 内のデザ イ ンは失われます。 チ ェ ッ ク ポ イ ン ト フ ァ イルの保存 フ ロ ーの任意の段階におけ る デザ イ ン デー タ ベース の スナ ッ プシ ョ ッ ト を保存す る には、 [File] → [Write Checkpoint] を ク リ ッ ク し ます。 こ れに よ り 、 拡張子が .dcp の フ ァ イ ルが作成 さ れます。 こ れに相当する Tcl コ マ ン ド は write_checkpoint です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 14 第 1 章 : イ ン プ リ メ ン テーシ ョ ンの準備 チ ェ ッ ク ポ イ ン ト フ ァ イルの読み込み Vivado Design Suite でチ ェ ッ ク ポ イ ン ト を開 く には、 [File] → [Open Checkpoint] を ク リ ッ ク し ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト が別の イ ン メ モ リ デザ イ ン と し て開 き ます。 こ れに相当する Tcl コ マ ン ド は open_checkpoint です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 15 第 2章 デザイ ンのイ ン プ リ メ ン テーシ ョ ン 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ン の実行 非プ ロ ジ ェ ク ト モー ド で合成済みデザ イ ン ま たはネ ッ ト リ ス ト を タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス に イ ンプ リ メ ン ト する には、 イ ンプ リ メ ン テーシ ョ ンのサブプ ロ セ ス に対応する 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 でその ス ク リ プ ト を実行 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 16 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 非プ ロ ジ ェ ク ト モー ド のサン プル ス ク リ プ ト 次に、 非プ ロ ジ ェ ク ト モー ド で イ ン プ リ メ ン テー シ ョ ン を 実行す る ス ク リ プ ト 例 を 示 し ま す。 ス ク リ プ ト 名が run.tcl であ る と し た ら 、 Tcl シ ェ ルに 「source run.tcl」 と 入力 し て ス ク リ プ ト を呼び出 し ます。 # Step 1: read_edif # Read in read_edif read_edif Read in top-level EDIF netlist from synthesis tool c:/top.edf lower level IP core netlists c:/core1.edf c:/core2.edf # Step 2: Specify target device and link the netlists # Merge lower level cores with top level into single design link_design -part xc7k325tfbg900-1 -top top # Step 3: Read XDC constraints to specify timing requirements read_xdc c:/top_timing.xdc # Read XDC constraints that specify physical constraints such as pin locations read_xdc c:/top_physical.xdc # Step 4: Optimize the design with default settings opt_design # Step 5: Place the design using the default directive 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 options place_design -directive Default write_checkpoint post_place.dcp # Step 6: Route the design with the AdvancedSkewModeling directive. For more information # on router directives type 'route_design -help' in the Vivado Tcl Console route_design -directive AdvancedSkewModeling # Step 7: Run Timing Summary Report to see timing results report_timing_summary -file post_route_timing.rpt # Run Utilization Report for device resource utilization report_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 API write_checkpoint post_route.dcp 非プ ロ ジ ェ ク ト モー ド のサン プル ス ク リ プ ト での主要な手順 17 ページの 「非プ ロ ジ ェ ク ト モー ド のサンプル ス ク リ プ ト 」 では、 次の手順が実行 さ れます。 • 手順 1 : デザ イ ン ソ ース フ ァ イ ルの読み込み • 手順 2 : メ モ リ 内へのデザ イ ンの構築 • 手順 3 : デザ イ ン制約の読み込み • 手順 4 : ロ ジ ッ ク 最適化の実行 • 手順 5 : デザ イ ンの配置 • 手順 6 : デザ イ ンの配線 • 手順 7 : レ ポー ト の生成 • 手順 8 : デザ イ ン チ ェ ッ ク ポ イ ン ト の保存 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 17 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 手順 1 : デザイ ン ソ ース フ ァ イルの読み込み read_edif コ マ ン ド を使用 し て EDIF ネ ッ ト リ ス ト デザ イ ン ソ ース を読み込みます。 非プ ロ ジ ェ ク ト モー ド では、 RTL デザ イ ン フ ロ ー も サポー ト さ れてい ます。 その場合、 ソ ース フ ァ イ ルを読み込んで イ ンプ リ メ ン テーシ ョ ンの 前に合成を実行 し ます。 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルを ソ ース と し て追加す る には、 read_checkpoint コ マン ド を使用 し ます。 read_* Tcl コ マ ン ド は非プ ロ ジ ェ ク ト モー ド で使用す る コ マ ン ド で、 デ ィ ス ク 上の フ ァ イ ルを読み込んで メ モ リ 内 にデザ イ ン を構築 し ます。 フ ァ イ ルが コ ピー さ れた り 、 フ ァ イ ルの依存関係が作成 さ れ る こ と はあ り ません。 そのため、 非プ ロ ジ ェ ク ト モー ド は非常に柔軟です。 重要 : ユーザーが ソ ース デザ イ ン フ ァ イ ルの変更を管理 し 、 それに応 じ てデザ イ ン を ア ッ プデー ト す る 必要があ り ます。 手順 2 : メ モ リ 内へのデザイ ンの構築 link_design コ マ ン ド を使用 し てデザ イ ンの メ モ リ 内表示を構築 し ます。 こ の コ マン ド は、 ツールに読み込まれた ネ ッ ト リ ス ト ベース の ソ ース フ ァ イ ルをザ イ リ ン ク ス のデバ イ ス情報 と 結合 し て、 メ モ リ 内にデザ イ ン デー タ ベー ス を作成 し ます。 非プ ロ ジ ェ ク ト モー ド でのすべての操作は、 Vivado ツール内の イ ン メ モ リ デー タ ベース に対 し て実行 さ れます。 Vivado ツールをバ ッ チ モー ド で実行 し てい る 場合で も 、 Tcl シ ェ ル モー ド で対話的に Tcl コ マン ド を実行 し てい る 場 合で も 、グ ラ フ ィ カル モー ド でデザ イ ン デー タ を Vivado IDE で表示 し てい る 場合で も 、メ モ リ 内のデザ イ ンは Vivado ツール内に存在 し ます。 手順 3 : デザイ ン制約の読み込み Vivado Design Suite では、 デザ イ ン制約を使用 し てデザ イ ンの物理特性お よ び タ イ ミ ン グ特性を定義 し ます。 詳細は、 12 ページの 「 イ ンプ リ メ ン テーシ ョ ンでのデザ イ ン制約の使用」 を参照 し て く だ さ い。 read_xdc コ マ ン ド は、 XDC 制約フ ァ イ ルを読み込み、 メ モ リ 内のデザ イ ンに適用 し ます。 ヒ ン ト : プ ロ ジ ェ ク ト モー ド では、 異な る 目的で複数の制約フ ァ イ ルを含む制約セ ッ ト を定義で き ますが、 非プ ロ ジ ェ ク ト モー ド では、 同 じ 操作を実行す る のに複数の read_xdc コ マン ド を使用 し ます。 手順 4 : ロ ジ ッ ク 最適化の実行 配置配線の準備 と し て ロ ジ ッ ク 最適化を実行 し ます。最適化では、 タ ーゲ ッ ト デバ イ ス の物理 リ ソ ース に配置す る 前 に ロ ジ ッ ク デザ イ ンが簡略化 さ れます。 Vivado のネ ッ ト リ ス ト 最適化では、 デザ イ ン要件を満たすため、 さ ま ざ ま な最適化機能が提供 さ れてい ま す。 詳細 は、 44 ページの 「 ロ ジ ッ ク 最適化」 を参照 し て く だ さ い。 手順 5 : デザイ ンの配置 place_design コ マ ン ド を使用 し てデザ イ ン を配置 し ます。 詳細は、 49 ページの 「配置」 を参照 し て く だ さ い。 配 置後、 write_checkpoint コ マン ド を使用 し てデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルを保存 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 18 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 手順 6 : デザイ ンの配線 route_design コ マ ン ド を使用 し てデザ イ ン を配線 し ます。 詳細は、 61 ページの 「配線」 を参照 し て く だ さ い。 手順 7 : レ ポー ト の生成 report_timing_summary コ マン ド は、 タ イ ミ ン グ解析を実行 し 、 タ イ ミ ン グ違反の詳細を含む タ イ ミ ン グ レ ポー ト を生成 し ます。 report_utilization コ マ ン ド は、 使用 さ れてい る デバ イ ス リ ソ ー ス の割合 と 、 その他の使用 率統計のサマ リ を生成 し ます。 非プ ロ ジ ェ ク ト モー ド では、 各レ ポー ト を Tcl コ マン ド を使用 し て生成す る 必要があ り ます。 各レ ポー ト コ マン ド では -file オプシ ョ ンがサポー ト さ れてお り 、 レ ポー ト を フ ァ イ ルに保存で き ます。 report_timing_summary コ マ ン ド の詳細は 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参 照 16] の「report_timing_summary」、report_utilization コ マン ド の詳細は「report_utilization」 を参照 し て く だ さ い。 レ ポー ト は フ ァ イ ルに出力す る か、 Vivado IDE に表示 し て確認で き ま す。 詳細は、 89 ページの 「 イ ン プ リ メ ン テー シ ョ ン レ ポー ト の表示」 を参照 し て く だ さ い。 手順 8 : デザイ ン チ ェ ッ ク ポ イ ン ト の保存 メ モ リ 内のデザ イ ン をデザ イ ン チ ェ ッ ク ポ イ ン ト に保存 し ます。 保存 さ れたチ ェ ッ ク ポ イ ン ト デザ イ ンには、 次が 含まれます。 • 論理ネ ッ ト リ ス ト • 物理制約お よ び タ イ ミ ン グ制約 • ザ イ リ ン ク ス パーツ情報 • 配置配線情報 非プ ロ ジ ェ ク ト モー ド では、 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルを保存す る こ と で、 後でデザ イ ン を読み込んで解 析 し た り 変更 し た り で き ます。 詳細は、 14 ページの 「チ ェ ッ ク ポ イ ン ト を使用 し たデザ イ ンの ス ナ ッ プシ ョ ッ ト の保存お よ び復元」 を参照 し て く だ さ い。 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの 実行 プ ロ ジ ェ ク ト モー ド では、 次が可能です。 • 特定の合成結果お よ びデザ イ ン制約を使用する イ ンプ リ メ ン テーシ ョ ン run を定義 • 1 つのデザ イ ンに対 し て複数の ス ト ラ テジ を実行 • デザ イ ン要件を満たすため イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を カ ス タ マ イ ズ • カ ス タ マ イ ズ し た イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ をほかのデザ イ ン で使用す る ため保存 重要 : 非プ ロ ジ ェ ク ト モー ド では、定義済みの イ ンプ リ メ ン テーシ ョ ン run お よ びス ト ラ テジはサポー ト さ れません。 Tcl コ マ ン ド を 使用 し て、 イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス の各段階 を 手動で実行す る 必要が あ り ま す。 詳細は、 16 ページの 「非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 19 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン イ ン プ リ メ ン テーシ ョ ン 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. 図 2-1 に示す [Configure Implementation Runs] ページが表示 さ れます。 図の下の説明に従っ て run を設定 し ます。 X-Ref Target - Figure 2-1 図 2-1 : Create New Runs ウ ィ ザー ド : [Configure Implementation Runs] ページ a. [Name] 列に run の名前を入力す る か、 デフ ォ ル ト の ま ま に し ます。 b. [Synth Name] 列で、 イ ンプ リ メ ン テーシ ョ ンに使用す る 合成済みネ ッ ト リ ス ト を生成す る 合成 run を選択 し ます。 デフ ォル ト は、 [Design Runs] ウ ィ ン ド ウ で現在ア ク テ ィ ブな run です。 詳細は、 付録 C 「 イ ンプ リ メ ン テーシ ョ ンのカ テ ゴ リ 、 ス ト ラ テジの説明、 お よ び -directive の設定」 を参照 し て く だ さ い。 注記 : ネ ッ ト リ ス ト プ ロ ジ ェ ク ト の場合は、 [Create Runs] コ マン ド に合成 run の名前は必要あ り ません。 サー ド パーテ ィ 合成ツールか ら プ ロ ジ ェ ク ト に イ ン ポー ト さ れた合成済みネ ッ ト リ ス ト も 選択で き ます。 詳 細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 8] を参照 し て く だ さ い。 c. [Constraints Set] 列で イ ンプ リ メ ン テーシ ョ ンに適用す る 制約セ ッ ト を選択 し ます。 最適化、 配置、 お よ び配 線は、 指定 さ れた制約セ ッ ト の物理制約お よ び タ イ ミ ン グ制約に基づいて実行 さ れます。 制約セ ッ ト の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 9] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 20 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン d. [Part] 列で タ ーゲ ッ ト パーツ を選択 し ます。 デフ ォ ル ト では、 制約セ ッ ト お よ び タ ーゲ ッ ト パーツは、 [Create New Runs] コ マ ン ド 実行 し た と き のプ ロ ジ ェ ク ト 設定に基づいて定義 さ れます。 プ ロ ジ ェ ク ト 設定の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 6] の 「プ ロ ジ ェ ク ト 設定」 を参照 し て く だ さ い。 ヒ ン ト : 異な る 制約セ ッ ト ま たは タ ーゲ ッ ト パーツ を使用す る run を作成す る には、 [Create New Runs] コ マン ド を使 用 し ます。 既存の run の こ れ ら の値は、 [Design Runs] ウ ィ ン ド ウ で run を選択 し 、 [Run Properties] ウ ィ ン ド ウ で変更 で き ます。 詳細は、 24 ページの 「 イ ンプ リ メ ン テーシ ョ ン run 設定の変更」 を参照 し て く だ さ い。 e. [Strategy] 列で ス ト ラ テジ を選択 し ます。 ス ト ラ テ ジ と は、 イ ン プ リ メ ン テーシ ョ ン結果を制御す る Vivado イ ンプ リ メ ン テーシ ョ ン機能オプシ ョ ン を定義 し た設定の こ と です。 Vivado Design Suite では、 定義済みの ス ト ラ テジが提供 さ れてい ます。 ま た、 独 自の イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を作成す る こ と も 可能です。 付録 C 「 イ ンプ リ メ ン テーシ ョ ンのカ テ ゴ リ 、 ス ト ラ テジの説明、 お よ び -directive の設定」 に示すス ト ラ テジのいずれかを選択 し ます。 ス ト ラ テジは、 その目的に応 じ て カ テ ゴ リ 別に分類 さ れてお り 、 カ テ ゴ リ 名が接頭辞 と な っ てい ます。 カ テ ゴ リ は、 付録 C 「 イ ンプ リ メ ン テーシ ョ ンのカ テ ゴ リ 、 ス ト ラ テジの説明、 お よ び -directive の設定」 を参 照 し て く だ さ い。 詳細は、 31 ページの 「ス ト ラ テジの定義」 を参照 し て く だ さ い。 パ フ ォ ーマ ン ス ス ト ラ テジは、 デザ イ ン パ フ ォ ーマン ス を向上す る こ と を目的 と し てお り 、 実行時間は長 く な り ます。 パフ ォーマ ン ス ス ト ラ テジ を選択する 前に、 まず イ ンプ リ メ ン テーシ ョ ンのデフ ォ ル ト を使用 し て タ イ ミ ン グ要件を満たす よ う に し て く だ さ い。 こ の よ う にす る と 、デザ イ ンの変更に よ る タ イ ミ ン グ ク ロ ージ ャ の影響を吸収す る のに十分なマージ ンが得 ら れ ます。 ただ し 、 デザ イ ン要件が満た さ れない場合、 実行時間が長 く な る こ と が許容 さ れ る のであれば、 Performance_Explore はすべての タ イ プのデザ イ ン を網羅 し てい る ので、 最初に選ぶス ト ラ テジ と し て適 し てい ます。 重要 : 名前に SLL ま たは SLR が含まれ る ス ト ラ テジは、 SSI デバ イ ス でのみ使用可能です。 ヒ ン ト : run を実行す る 前に、 イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス の各段階の設定を、 選択 し た ス ト ラ テジのデフ ォ ル ト 設定か ら 変更で き ます。 変更 し た設定を新 し い ス ト ラ テジ と し て も 保存で き ます。 詳細は、 24 ページの 「 イ ンプ リ メ ン テーシ ョ ン run 設定の変更」 を参照 し て く だ さ い。 f. [More] を ク リ ッ ク し 、 追加の run を定義 し ます。 デフ ォ ル ト では、 シーケ ン ス の次の ス ト ラ テジが自動的に 選択 さ れます。 追加 run の名前 と ス ト ラ テジ を指定 し ます (図 2-1)。 g. [Make Active] チ ェ ッ ク ボ ッ ク ス を使用 し て、 実行す る run を選択 し ます。 h. [Next] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 21 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 4. 図 2-2 に示す [Launch Options] ページが表示 さ れます。 図の下の説明に従っ てオプシ ョ ン を設定 し ます。 X-Ref Target - Figure 2-2 図 2-2 : [Launch Options] ページ 注記 : 図 2-2 に示 さ れてい る [Launch runs on remote hosts] お よ び [Launch runs using LSF] は 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 ス ク リ プ ト は実行ま たは作成 し ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 22 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 5. [Next] を ク リ ッ ク し 、 [Create New Runs Summary] ページ を確認 し ます。 6. [Finish] を ク リ ッ ク し ます。 定義 し た run が作成 さ れ、 指定の実行オプシ ョ ンが実行 さ れます。 新 し い run が [Design Runs] ウ ィ ン ド ウ に追加 さ れます。 詳細は、 「[Design Runs] ウ ィ ン ド ウ の使用」 を参照 し て く だ さ い。 [Design Runs] ウ ィ ン ド ウの使用 [Design Runs] ウ ィ ン ド ウ には、 プ ロ ジ ェ ク ト で作成 さ れた合成 run と イ ンプ リ メ ン テーシ ョ ン run のすべてが表示 さ れ、 それ ら を設定、 管理、 実行する ための コ マ ン ド を実行で き ます。 [Design Runs] ウ ィ ン ド ウ を開 く [Design Runs] ウ ィ ン ド ウ (図 2-3) が表示 さ れていない場合は、 [Window] → [Design Runs] を ク リ ッ ク し て表示 し ます。 [Design Runs] ウ ィ ン ド ウの機能 • イ ンプ リ メ ン テーシ ョ ン run は、 合成 run の下の階層に イ ンデン ト さ れて表示 さ れます。 • 1 つの合成 run に、 複数の イ ンプ リ メ ン テーシ ョ ン run を含め る こ と がで き ます。 プ ラ ス記号 (+) やマ イ ナ ス記号 (-) を ク リ ッ ク す る と 、 合成 run の ツ リ ー表示を展開 し た り 、 閉 じ た り で き ます。 • [Design Runs] ウ ィ ン ド ウ は、 ツ リ ー形式の表で示 さ れます。 こ の ウ ィ ン ド ウ のデー タ を列を使用 し て並べ替え る 方法は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使 用』 (UG893) [参照 3] の 「デー タ 表ウ ィ ン ド ウ の使用」 を参照 し て く だ さ い。 X-Ref Target - Figure 2-3 図 2-3 : [Design Runs] ウ ィ ン ド ウ run のス テー タ ス [Design Runs] ウ ィ ン ド ウ には、 run の ス テー タ ス が表示 さ れます。 次の ス テー タ ス があ り ます。 • 実行 さ れていない • 実行中 • 完了 • 最新の状態でない [Design Runs] ウ ィ ン ド ウ には、 run の開始時間 と 経過時間が表示 さ れます。 実行時間 [Design Runs] ウ ィ ン ド ウ には、 run の開始時間 と 経過時間が表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 23 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 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] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン run 設定の変更 [Design Runs] ウ ィ ン ド ウ で run を選択す る と 、 [Run Properties] ウ ィ ン ド ウ にその run の現在の設定が表示 さ れます (図 2-4)。 [Run Properties] ウ ィ ン ド ウ では、 次のオプシ ョ ン を変更で き ます。 • [Name] : run の名前 • [Part] : タ ーゲ ッ ト パーツ • [Description] : run の説明 • [Constraints] : イ ンプ リ メ ン テーシ ョ ンで使用 し 、 新 し い制約を保存す る 制約セ ッ ト [Run Properties] ウ ィ ン ド ウ の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 3] の 「[Run Properties] ウ ィ ン ド ウ 」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 24 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン X-Ref Target - Figure 2-4 図 2-4 : [Implementation Run Properties] ウ ィ ン ド ウ デザイ ン run の設定 デザ イ ン run の設定を変更す る には、 [Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス (図 2-5) を使用 し ます。 [Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス を開 く には、 次の手順に従い ます。 1. [Design Runs] ウ ィ ン ド ウ で 1 つの run を右 ク リ ッ ク し ます。 2. ポ ッ プア ッ プ メ ニ ュ ーか ら [Change Run Settings] を ク リ ッ ク し 、[Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス (図 2-5) を開き ます。 ヒ ン ト : 設定の変更は、 run の ス テー タ ス が 「Not started」 の場合にのみ可能です。 run を右 ク リ ッ ク し て [Reset Runs] を ク リ ッ ク する と 、 run の ス テー タ ス を 「Not started」 に戻す こ と がで き ます。 詳細は、 28 ページの 「run の リ セ ッ ト 」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 25 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン X-Ref Target - Figure 2-5 図 2-5 : [Design Run Settings] ダ イ ア ログ ボ ッ ク ス [Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス には、 run に適用 さ れてい る イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階でその ス ト ラ テジに関連す る コ マン ド オプシ ョ ンが表示 さ れます。次に、 3 つの コ マ ン ド オプシ ョ ンについて説明 し ます。 [Strategy] イ ン プ リ メ ン テーシ ョ ン run に適用す る ス ト ラ テ ジ を選択 し ます。 Vivado Design Suite では、 定義済みの ス ト ラ テ ジ が提供 さ れてい ます。 ま た、 独自の イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を作成す る こ と も 可能です。 詳細は、 31 ページの 「ス ト ラ テジの定義」 を参照 し て く だ さ い。 [Description] 選択 し た イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジの説明を表示 し ます。 [Options] Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階の コ マン ド ラ イ ン オプシ ョ ン を表示 し ます。 次の コ マン ド のオプ シ ョ ンが表形式で表示 さ れます。 • opt_design (デザ イ ンの最適化) • power_opt_design (デザ イ ンの消費電力最適化) (オプシ ョ ン) • place_design (デザ イ ンの配置) • 配置後の power_opt_design (デザ イ ンの消費電力最適化) (オプシ ョ ン) • 配置後の phys_opt_design (デザ イ ンの物理最適化) (オプシ ョ ン) • route_design (デザ イ ンの配線) イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 26 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン • 配線後の phys_opt_design (デザ イ ンの物理最適化) (オプシ ョ ン) • write_bitstream (ビ ッ ト ス ト リ ームの生成) コ マ ン ド オプシ ョ ン を ク リ ッ ク す る と 、 その説明がダ イ ア ロ グ ボ ッ ク ス の下部に表示 さ れます。 各 イ ンプ リ メ ン テーシ ョ ン段階の詳細 と 設定可能なオプシ ョ ンは、 第 2 章 「デザ イ ンの イ ンプ リ メ ン テーシ ョ ン」 を 参照 し て く だ さ い。 コ マ ン ド オプ シ ョ ンの変更 コ マン ド オプシ ョ ン を変更する には、その コ マン ド オプシ ョ ンの右側の列を ク リ ッ ク し ます。次の操作を実行し ます。 • 定義済みの値か ら 選択する オプシ ョ ンは、 ド ロ ッ プダ ウ ン リ ス ト か ら 選択 し ます。 • イ ネーブル/デ ィ ス エーブルにす る オプシ ョ ンは、 チ ェ ッ ク ボ ッ ク ス のオン/オ フ を切 り 替え ます。 注記 : 各 イ ンプ リ メ ン テーシ ョ ン コ マ ン ド で よ く 使用 さ れ る コ マン ド オプシ ョ ンは、 チ ェ ッ ク ボ ッ ク ス で選択 で き ます。 その他のオプシ ョ ンは、 [More Options] フ ィ ール ド に入力 し ます。 オプシ ョ ン名の前にハ イ フ ン を付 け、 複数のオプシ ョ ンはスペース で区切 り ます。 • ユーザー定義の値を指定で き る オプシ ョ ンは、 値を入力 し ます。 • フ ァ イ ル名お よ びパ ス を指定する オプシ ョ ンは、 フ ァ イ ルを選択す る ダ イ ア ロ グ ボ ッ ク ス が開き 、 フ ァ イ ルを選 択で き ます。 • フ ッ ク ス ク リ プ ト と 呼ばれ る カ ス タ ム Tcl ス ク リ プ ト を イ ンプ リ メ ン テーシ ョ ンの各段階の前 (tcl.pre) と 後 (tcl.post) に挿入 し ます。 フ ッ ク ス ク リ プ ト を挿入す る と 、 イ ンプ リ メ ン テーシ ョ ンの各段階の前後に特定の タ ス ク を実行で き ます。 た と えば、 デザ イ ンの配置前後に タ イ ミ ン グ レ ポー ト を生成 し て、 タ イ ミ ン グ結果を比較で き ます。 Tcl フ ッ ク ス ク リ プ ト の定義方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参照 5] の 「Tcl フ ッ ク ス ク リ プ ト の定義」 を参照 し て く だ さ い。 ヒ ン ト : tcl.pre お よ び tcl.post ス ク リ プ ト 内 の パ ス は、 プ ロ ジ ェ ク ト の 関連 す る run デ ィ レ ク ト リ <project>/<project.runs>/<run_name> を基準 と し ます。 現在のプ ロ ジ ェ ク ト ま たは現在の run の DIRECTORY プ ロ パテ ィ を使用 し て、 Tcl ス ク リ プ ト 内の相対パ ス を定義で き ます。 get_property DIRECTORY [current_project] get_property DIRECTORY [current_run] [Save Design As] [Strategy] フ ィ ール ド の右側にあ る [Save Design As] ボ タ ン を ク リ ッ ク す る と 、 今後使用で き る よ う に、 ス ト ラ テジへ の変更を新 し い ス ト ラ テジ と し て保存で き ます。 注意 : [Save Design As] を使用 し ない場合、 変更は現在の イ ンプ リ メ ン テーシ ョ ン run には保存 さ れますが、 今 後使用する こ と はで き ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 27 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン run ス テー タ スの確認 Vivado IDE では、 run の ス テー タ ス に よ っ て、 run を処理 し て イ ンプ リ メ ン テーシ ョ ン を開始 し ます。 ス テー タ ス は、 [Design Runs] ウ ィ ン ド ウ に表示 さ れます (図 2-3)。 • 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) に戻 り ます。 図 2-6 に示す よ う に、 run の リ セ ッ ト を確認す る メ ッ セージ と 、 run デ ィ レ ク ト リ か ら 生成 さ れた フ ァ イ ルを削除す る オプシ ョ ンが表示 さ れます。 X-Ref Target - Figure 2-6 図 2-6 : [Reset Runs] ダ イ ア ロ グ ボ ッ ク ス ヒ ン ト : デフ ォ ル ト では、 生成 さ れた フ ァ イ ルは削除 さ れます。 生成 さ れた run フ ァ イ ルを削除 し ない場合は、 こ の オプシ ョ ン を オフ に し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 28 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン run の削除 [Design Runs] ウ ィ ン ド ウ か ら run を削除す る には、 次の手順に従い ます。 1. run を右 ク リ ッ ク し ます。 2. [Delete] を ク リ ッ ク し ます。 図 2-7 に示す よ う に、 run の削除を確認す る メ ッ セージ と 、 run デ ィ レ ク ト リ か ら 生成 さ れた フ ァ イ ルを削除す る オ プシ ョ ンが表示 さ れます。 ヒ ン ト : デフ ォ ル ト では、 生成 さ れた フ ァ イ ルは削除 さ れます。 生成 さ れた run フ ァ イ ルを削除 し ない場合は、 こ の オプシ ョ ン を オフ に し ます。 X-Ref Target - Figure 2-7 図 2-7 : [Delete Runs] ダ イ ア ログ ボ ッ ク ス イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イ ズ 新 し い イ ンプ リ メ ン テーシ ョ ン run を定義す る と 、 デフ ォ ル ト の イ ンプ リ メ ン テーシ ョ ン設定が使用 さ れます。 こ れ ら の設定は変更で き ます。 図 2-8 に、 [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Implementation] ページ を示 し ます。 こ のダ イ ア ロ グ ボ ッ ク ス は、 メ イ ン メ ニ ュ ーか ら [Tools] → [Project Settings] を ク リ ッ ク する と 開き ます。 ヒ ン ト : 非プ ロ ジ ェ ク ト モー ド を使用 し てい る 場合は、 [Project Settings] コ マ ン ド は使用で き ま せん。 イ ンプ リ メ ン テーシ ョ ン ス ト ラ テ ジ をバ ッ チ モー ド で使用可能な Tcl ス ク リ プ ト と し て定義 し て保存す る か、 Vivado IDE で対話 的に定義 し ます。 Flow Navigator から ア ク テ ィ ブ な イ ン プ リ メ ン テーシ ョ ン run のイ ン プ リ メ ン テーシ ョ ン設定にア ク セス ア ク テ ィ ブ な イ ン プ リ メ ン テーシ ョ ン run の イ ン プ リ メ ン テー シ ョ ン 設定は、 Flow Navigator で [Implemented Settings] を ク リ ッ ク し て も 開 く こ と がで き ます。 開いた [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Implementation] ページ (図 2-8) に は、 次の フ ィ ール ド があ り ます。 • [Default constraint set] : イ ンプ リ メ ン テーシ ョ ン run でデフ ォ ル ト で使用す る 制約セ ッ ト を選択 し ます。 • [Incremental compile] : イ ン ク リ メ ン タ ル コ ンパ イ ル チ ェ ッ ク ポ イ ン ト を指定 し ます (オプシ ョ ン)。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 29 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン • [Strategy] : イ ン プ リ メ ン テーシ ョ ン run に適用す る ス ト ラ テ ジ を選択 し ま す。 Vivado Design Suite では、 定義済みの ス ト ラ テジが提供 さ れてい ます。 独自の イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を作成 し 、新 し い ス ト ラ テジ と し て保存する こ と も 可能です。 詳細は、 「ス ト ラ テジの定義」 を参照 し て く だ さ い。 • [Description] : 選択 し た イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジの説明を表示 し ます。 ユーザー定義の ス ト ラ テ ジの説明は、 新 し い説明を入力 し て変更で き ます。 Vivado ツールの標準 イ ンプ リ メ ン テーシ ョ ン ス ト ラ テ ジの説明は変更で き ま せん。 X-Ref Target - Figure 2-8 図 2-8 : [Project Settings] ダ イ ア ログ ボ ッ ク スの [Implementation] ページ イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 30 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジの定義 ス ト ラ テジは、 デザ イ ンの合成ま たは イ ンプ リ メ ン テーシ ョ ンで最適な結果が得 ら れ る よ う にす る ために定義 さ れた ソ リ ュ ーシ ョ ンです。 • Vivado イ ンプ リ メ ン テーシ ョ ン機能のあ ら か じ め設定 さ れたオプシ ョ ンに よ り 定義 さ れます。 • ス ト ラ テジは、 ツールお よ びバージ ョ ン特定です。 • Vivado Design Suite の各 メ ジ ャ ー リ リ ース には、 バージ ョ ン特定の ス ト ラ テジが含まれます。 X-Ref Target - Figure 2-9 図 2-9 : デ フ ォル ト のイ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ Vivado イ ンプ リ メ ン テーシ ョ ンには、 内部ベンチマー ク でテ ス ト さ れた一般的な ス ト ラ テジが複数含まれてい ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 31 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ヒ ン ト : 定義済みの イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジに変更を保存す る こ と はで き ませんが、定義済みの ス ト ラ テ ジ を コ ピー し て変更 し 、 カ ス タ ム ス ト ラ テジ と し て保存で き ます。 定義済みス ト ラ テ ジへのア ク セス 定義済み ス ト ラ テ ジに ア ク セ ス す る には、 メ イ ン メ ニ ュ ーか ら [Tools] → [Options] を ク リ ッ ク し 、 左側のペ イ ン で [Strategies] を ク リ ッ ク し ます。 ス ト ラ テ ジの確認、 コ ピー、 変更 ス ト ラ テジ を確認、 コ ピー、 変更する には、 次の手順に従い ます。 1. [Tools] → [Options] を ク リ ッ ク し ます。 2. 左側のペ イ ンで [Strategies] を ク リ ッ ク し ます。 [Vivado Options] ダ イ ア ロ グ ボ ッ ク ス の [Strategies] ページ (図 2-9) に、 各ツール と リ リ ース バージ ョ ン用にあ ら か じ め定義 さ れた ス ト ラ テジが リ ス ト さ れます。 3. [Flow] ド ロ ッ プダ ウ ン リ ス ト か ら 、 適切なバージ ョ ンの [Vivado Implementation] を選択 し ます。 含まれてい る ス ト ラ テジが表示 さ れます。 4. 新 し い ス ト ラ テジ を作成する か、 既存の ス ト ラ テジ を コ ピー し ます。 5. 6. ° 新し い ス ト ラ テジ を作成する には、 ツールバーま たはポ ッ プア ッ プ メ ニ ューか ら [Create New Strategy] を ク リ ッ ク し ます。 ° 既存の ス ト ラ テジ を コ ピーする には、 ツールバーま たはポ ッ プア ッ プ メ ニ ュ ーか ら [Create a Copy of this Strategy] を ク リ ッ ク し ます。 次の操作が実行 さ れます。 a. 選択 し てい る ス ト ラ テジの コ ピーが作成 さ れます。 b. [User Defined Strategies] リ ス ト に追加 さ れます。 c. ダ イ ア ロ グ ボ ッ ク ス の右側に ス ト ラ テジのオプシ ョ ンが表示 さ れ、 変更で き る よ う にな り ます。 新 し い ス ト ラ テジに対 し て次の情報を入力 し ます。 ° [Name] ス ト ラ テジの名前を入力 し ます。 ° [Type] [Synthesis] ま たは [Implementation] を選択 し ます。 ° [Tool version] ツール バージ ョ ン を指定 し ます。 ° [Description] ス ト ラ テジの説明を入力 し ます。 こ こ で入力 し た説明が [Design Run] ウ ィ ン ド ウ の結果の表に表示 さ れます。 次の イ ンプ リ メ ン テーシ ョ ン手順のオプシ ョ ン を変更 し ます。 ° opt_design (デザ イ ンの最適化) ° power_opt_design (デザ イ ンの消費電力最適化) (オプシ ョ ン) ° place_design (デザ イ ンの配置) ° 配置後の power_opt_design (デザ イ ンの消費電力最適化) (オプシ ョ ン) ° 配置後の phys_opt_design (デザ イ ンの物理最適化) (オプシ ョ ン) ° route_design (デザ イ ンの配線) ° 配線後の phys_opt_design (デザ イ ンの物理最適化) (オプシ ョ ン) ° write_bitstream (ビ ッ ト ス ト リ ームの生成) イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 32 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ヒ ン ト : 特定の コ マン ド オプシ ョ ン を選択す る と 、 その説明がダ イ ア ロ グ ボ ッ ク ス の下部に表示 さ れます。 各 イ ンプ リ メ ン テーシ ョ ン段階の詳細 と 設定可能なオプシ ョ ンは、 第 2 章 「デザ イ ンの イ ンプ リ メ ン テーシ ョ ン」 を 参照 し て く だ さ い。 X-Ref Target - Figure 2-10 図 2-10 : イ ン プ リ メ ン テーシ ョ ン オプ シ ョ ンの変更 7. コ マ ン ド オプシ ョ ンの右側を ク リ ッ ク し て、 コ マン ド オプシ ョ ン を変更 し ます (図 2-10)。 次の操作を実行 し ます。 ° 定義済みの値か ら 選択する オプシ ョ ンは、 ド ロ ッ プダ ウ ン リ ス ト か ら 選択 し ます。 ° イ ネーブル/デ ィ ス エーブルにす る オプシ ョ ンは、 チ ェ ッ ク ボ ッ ク ス のオン/オ フ を切 り 替え ます。 ° テ キ ス ト 入力フ ィ ール ド のオプシ ョ ンは、 値を入力 し ます。 ° フ ァ イ ル名お よ びパ ス を指定する オプシ ョ ンは、 ダ イ ア ロ グ ボ ッ ク ス でフ ァ イ ルを選択 し ます。 ° フ ッ ク ス ク リ プ ト と 呼ばれ る カ ス タ ム Tcl ス ク リ プ ト を イ ンプ リ メ ン テーシ ョ ンの各段階の前 (tcl.pre) と 後 (tcl.post) に挿入 し ます。 フ ッ ク ス ク リ プ ト を挿入す る と 、 イ ンプ リ メ ン テーシ ョ ンの各段階の前後 に特定の タ ス ク を実行で き ます。 た と えば、 デザ イ ンの配置前後に タ イ ミ ン グ レ ポー ト を生成 し て、 タ イ ミ ン グ結果を比較で き ます。 Tcl フ ッ ク ス ク リ プ ト の定義方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使 用』 (UG894) [参照 5] の 「Tcl フ ッ ク ス ク リ プ ト の定義」 を参照 し て く だ さ い。 注記 : tcl.pre お よ び tcl.post ス ク リ プ ト 内 の パ ス は、 プ ロ ジ ェ ク ト の関連す る run デ ィ レ ク ト リ <project>/<project.runs>/<run_name> を基準 と し ます。 現在のプ ロ ジ ェ ク ト ま たは現在の run の DIRECTORY プ ロ パテ ィ を使用 し て、 ス ク リ プ ト 内の相対パ ス を定 義で き ます。 get_property DIRECTORY [current_project] get_property DIRECTORY [current_run] 8. [OK] を ク リ ッ ク し て新 し い ス ト ラ テジ を保存 し ます。 新 し い ス ト ラ テジは、 [User Defined Strategies] の下に リ ス ト さ れます。 ユーザー定義の ス ト ラ テジは、 次の場所に保 存 さ れます。 • Linux OS $HOME/.Xilinx/Vivado/strategies • Windows 7 C:\Users\<username>\AppData\Roaming\Xilinx\Vivado\strategies イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 33 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジの共有 作成 し た ス ト ラ テジ を複数のユーザーで共有する には、 ユーザー定義の ス ト ラ テジ を <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] ダ イ ア ロ グ ボ ッ ク ス (図 2-11) が開 き ます。 注記 : [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス は、 run を 右 ク リ ッ ク し て [Launch Runs] を ク リ ッ ク す る か、 [Design Runs] ウ ィ ン ド ウ の ツールバーの [Launch Selected Runs] ボ タ ン を ク リ ッ ク す る と 開 き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 34 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン X-Ref Target - Figure 2-11 図 2-11 : [Launch Selected Runs] ダ イ ア ログ ボ ッ ク ス 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 ス ク リ プ ト は実行ま たは作成 し ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 35 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン プ ロ セスのバ ッ ク グ ラ ウ ン ド への移動 Vivado IDE で合成ま たは イ ンプ リ メ ン テーシ ョ ン を実行す る プ ロ セ ス が生成 さ れ る と 、 まず実行の準備 と し てデザ イ ン フ ァ イ ル と 制約フ ァ イ ルが読み込まれます。 [Starting Run] ダ イ ア ロ グ ボ ッ ク ス (図 2-12) が表示 さ れ、 こ のプ ロ セ ス をバ ッ ク グ ラ ウ ン ド に移動する オプシ ョ ンが示 さ れます。 こ のプ ロ セ ス を バ ッ ク グ ラ ウ ン ド に移動す る と 、 バ ッ ク グ ラ ウ ン ド タ ス ク を実行 さ せた ま ま、 Vivado IDE でほかの 操作を実行で き ます。 た と えば、 レ ポー ト を表示 し た り 、 デザ イ ン フ ァ イ ルを開いた り で き ます。 こ の間、 前の run の結果を確認 し た り 、 レ ポー ト を表示 し た り し て、 時間を効率的に活用で き ます。 注意 : こ のプ ロ セ ス をバ ッ ク グ ラ ン ド に移動 し て も 、[Tcl Console] はブ ロ ッ ク さ れ る ので、Tcl コ マ ン ド を使用 し た り 、 開いてい る 別のデザ イ ンに切 り 替え る な ど の Tcl コ マ ン ド を必要 と する タ ス ク は実行で き ません。 X-Ref Target - Figure 2-12 図 2-12 : [Starting Run] ダ イ ア ログ ボ ッ ク ス イ ン プ リ メ ン テーシ ョ ンの段階ご と の実行 Vivado イ ンプ リ メ ン テーシ ョ ンは、 次のプ ロ セ ス で構成 さ れます。 • デザ イ ンの最適化 (opt_design) • デザ イ ンの消費電力最適化 (power_opt_design) (オプシ ョ ン) • デザ イ ンの配置 (place_design) • 配置後のデザ イ ンの消費電力最適化 (power_opt_design) (オプシ ョ ン) • 配置後のデザ イ ンの物理最適化 (phys_opt_design) (オプシ ョ ン) • デザ イ ンの配線 (route_design) • 配線後のデザ イ ンの物理最適化 (phys_opt_design) (オプシ ョ ン) • ビ ッ ト ス ト リ ームの生成 (write_bitstream) Vivado ツールでは、イ ンプ リ メ ン テーシ ョ ン を 1 つのプ ロ セ ス と し てではな く 、1 つずつ順に実行する こ と も 可能です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 36 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン イ ン プ リ メ ン テーシ ョ ンの段階ご と に実行する方法 イ ンプ リ メ ン テーシ ョ ンの段階ご と に実行する には、 次の手順に従い ます。 1. [Design Runs] ウ ィ ン ド ウ で run を右 ク リ ッ ク し 、 図 2-13 に示すポ ッ プア ッ プ メ ニ ュ ーか ら [Launch Next Step: <Step>] ま たは [Launch Step To] を ク リ ッ ク し ます。 X-Ref Target - Figure 2-13 図 2-13 : [Design Runs] ウ ィ ン ド ウのポ ッ プ ア ッ プ メ ニ ュ ー <Step> に有効な値は、 run 設定で イ ネーブルにな っ てい る プ ロ セ ス に よ っ て異な り ます。 イ ンプ リ メ ン テーシ ョ ン run で有効な手順は、 次の と お り です。 ° opt_design (デザ イ ンの最適化) : ザ イ リ ン ク ス デバ イ ス に フ ィ ッ ト す る よ う 論理デザ イ ン を最適化 し ます。 ° power_opt_design (デザ イ ンの消費電力最適化) : イ ンプ リ メ ン ト 済みデバ イ ス の消費電力を削減する ため、 デザ イ ン エ レ メ ン ト を最適化 し ます。 ° place_design (デザ イ ンの配置) : デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配置 し ます。 ° 配置後の power_opt_design (デザ イ ンの消費電力最適化) : 配置後に消費電力を削減する よ う 追加の最適化を実行 し ます。 ° 配置後の phys_opt_design (デザ イ ンの物理最適化) : デザ イ ンの負の ス ラ ッ ク パ ス に対 し て タ イ ミ ン グ ド リ ブンの最適化を実行 し ます。 ° route_design (デザ イ ンの配線) : デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配線 し ます。 ° 配線後の phys_opt_design (デザ イ ンの物理最適化) : 配線後の実際の遅延を使用 し て、 ロ ジ ッ ク 、 配置、 お よ び配線を最適化 し ます。 ° write_bitstream (ビ ッ ト ス ト リ ームの生成) : ザ イ リ ン ク ス デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの ビ ッ ト ス ト リ ーム を生成 し ます。 ビ ッ ト ス ト リ ーム生成 は、 厳密には イ ンプ リ メ ン テーシ ョ ン run の一部ではあ り ませんが、 次の段階 と し て実行可能です。 2. [Launch Next Step: <Step>] ま たは [Launch Step To] を繰 り 返 し 、イ ンプ リ メ ン テーシ ョ ンの段階を進めてい き ます。 3. 完了 し てい る 段階を前の段階に戻すには、 [Design Runs] ウ ィ ン ド ウ で run を右 ク リ ッ ク し て [Reset to Previous Step: <Step>] を ク リ ッ ク し ます。 選択 し た run を直前の段階に リ セ ッ ト する には、 [Reset to Previous Step] を使用 し ます。 こ の コ マン ド を使用す る と 、 次が可能にな り ます。 ° run を元に戻 し ます。 ° 必要な変更を加え ます。 ° 再び段階を進め、 run を イ ン ク リ メ ン タ ルに完了 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 37 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン イ ン プ リ メ ン テーシ ョ ン コ マ ン ド について ザ イ リ ン ク ス Vivado® Design Suite には、 プ ロ ジ ェ ク ト ベース のデザ イ ンで イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス を管理 し 、 簡略化す る 多数の機能が含まれてい ます。 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス を段階ご と に手動で実行す る 機能 も 含まれます。 詳細は、 19 ページの 「プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 非プ ロ ジ ェ ク ト モー ド では、Tcl コ マン ド を使用 し て イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階を手動で実行す る 必 要があ り ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 詳細は、 16 ページの 「非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ンのサブ プ ロ セス プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン テーシ ョ ン コ マ ン ド は決ま っ た順序で実行 さ れます。 非プ ロ ジ ェ ク ト モー ド では、 コ マ ン ド は同様の順序で実行で き ますが、 繰 り 返 し 実行 し た り 、 プ ロ ジ ェ ク ト モー ド と は異な る 順序で実行 する こ と も で き ます。 重要 : イ ンプ リ メ ン テーシ ョ ン コ マン ド は、 再配線モー ド で実行 さ れます。 イ ンプ リ メ ン テーシ ョ ン コ マ ン ド は、 再配線モー ド で実行 さ れます。 こ れは、 イ ンプ リ メ ン テーシ ョ ン コ マ ン ド を 非プ ロ ジ ェ ク ト モー ド で実行す る と 、 デザ イ ンが メ モ リ に読み込まれ、 タ ス ク が実行 さ れ、 結果のデザ イ ンが メ モ リ に書き 込まれ る こ と を意味 し ます。 こ れに よ り 、 非プ ロ ジ ェ ク ト モー ド での実行が よ り 柔軟な も のにな り ます。 次に 例を示 し ます。 • opt_design コ マ ン ド の後に opt_design -remap を実行 リ マ ッ プは opt_design コ マン ド の結果に対 し て実行 さ れます。 • 一部のセルが配置 さ れたデザ イ ンに対 し て place_design コ マン ド を実行 既存のセル配置が place_design コ マン ド の開始点 と し て使用 さ れます。 • 一部が配線 さ れたデザ イ ンに対 し て route_design コ マン ド を実行 既存の配線が route_design コ マン ド の開始点 と し て使用 さ れます。 • セルが配置 さ れていないデザ イ ンに対 し て route_design コ マン ド を実行 セルが配置 さ れてい る 必要があ る ので、 エ ラ ーが発生 し ます。 • 完全に配置配線 さ れていないデザ イ ンに対 し て opt_design コ マ ン ド を実行 ロ ジ ッ ク 最適化で論理ネ ッ ト リ ス ト が最適化 さ れ、 配置 さ れていない新 し いセルお よ び配線 さ れていない新 し い ネ ッ ト が作成 さ れ る 場合があ り ます。 イ ンプ リ メ ン テーシ ョ ン を完了す る ため配置配線を再実行す る 必要があ る 場合があ り ます。 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の ど ち ら で も 、 Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ スはい く つ かのサブプ ロ セ ス で構成 さ れてい ます。 • 合成済みデザ イ ン を開 く ネ ッ ト リ ス ト 、 デザ イ ン制約、 タ ーゲ ッ ト デバ イ ス デー タ を統合 し 、 イ ンプ リ メ ン テーシ ョ ン を実行す る デザ イ ン を メ モ リ 内に構築 し ます。 • opt_design (デザ イ ンの最適化) タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス に フ ィ ッ ト し やすい よ う に論理デザ イ ン を最適化 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 38 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン • power_opt_design (デザ イ ンの消費電力最適化) (オプシ ョ ン) タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス の消費電力を削減す る よ う デザ イ ン エ レ メ ン ト を最適化 し ます。 • place_design (デザ イ ンの配置) デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配置 し ます。 • 配置後の power_opt_design (オプシ ョ ン) 配置後に消費電力を削減する よ う 追加の最適化を実行 し ます。 • 配置後の phys_opt_design (デザ イ ンの物理最適化) (オプシ ョ ン) 配置に基づ く 予測 タ イ ミ ン グ を使用 し て ロ ジ ッ ク お よ び配置を最適化 し ます。 フ ァ ン ア ウ ト の大 き い ド ラ イ バー の複製 も 含まれます。 • route_design (デザ イ ンの配線) デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配線 し ます。 • 配線後の phys_opt_design (デザ イ ンの物理最適化) (オプシ ョ ン) 配線後の実際の遅延を使用 し て、 ロ ジ ッ ク 、 配置、 お よ び配線を最適化 し ます。 • write_bitstream (ビ ッ ト ス ト リ ームの生成) ザ イ リ ン ク ス デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの ビ ッ ト ス ト リ ーム を生成 し ます。 注記 : ビ ッ ト ス ト リ ーム生成は、 厳密には イ ン プ リ メ ン テーシ ョ ン run の一部ではあ り ませんが、 別の段階 と し て実行可能です。 こ の章では、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階 と 関連す る Tcl コ マン ド の詳細を説明 し ます。 表 2-1 に、 サブプ ロ セ ス と 関連の Tcl コ マン ド を リ ス ト し ます。 表 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 Tcl レ ポー ト コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 39 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 合成済みデザイ ン を開 く イ ンプ リ メ ン テーシ ョ ンでは、 まず最初に合成済みデザ イ ンか ら のネ ッ ト リ ス ト を メ モ リ に読み込み、 デザ イ ン制約 を適用 し ます。 合成済みのデザ イ ンは、 使用 さ れ る デザ イ ン フ ロ ーに よ っ て さ ま ざ ま な方法で開 く こ と がで き ます。 メ モ リ 内でのデザイ ンの構築 メ モ リ 内にデザ イ ン を構築す る ため、 次のプ ロ セ ス でネ ッ ト リ ス ト フ ァ イ ル、 制約フ ァ イ ル、 お よ び タ ーゲ ッ ト デ バ イ ス の情報が統合 さ れます。 1. ネ ッ ト リ ス ト を統合 し ます。 必要であれば、 複数の ソ ー ス か ら のネ ッ ト リ ス ト を統合 し ます。 デザ イ ン には、 構造 Verilog、 EDIF、 Vivado IP を含め る こ と がで き ます。 重要 : NGC フ ォーマ ッ ト フ ァ イ ルは、Vivado Design Suite では UltraScale™ デバ イ ス に対 し てはサポー ト さ れません。 Vivado Design Suite で IP を再生成 し 、ネ イ テ ィ ブ出力フ ァ イ ルを使用する こ と をお勧め し ます。ま たは、convert_ngc Tcl ユーテ ィ リ テ ィ を使用 し て NGC フ ァ イ ルを EDIF ま たは Verilog に変換す る こ と も で き ます。 ただ し 、 XST で生 成 さ れた NGC フ ァ イ ルを使用す る のではな く 、 ネ イ テ ィ ブ Vivado IP を使用す る こ と をお勧め し ます。 2. 従来のネ ッ ト リ ス ト プ リ ミ テ ィ ブ を現在サポー ト さ れ る Unisim プ リ ミ テ ィ ブに変換 し ます。 ヒ ン ト : report_transformed_primitives を使用す る と 、 変換 さ れたセルの リ ス ト を生成で き ます。 3. XDC フ ァ イ ルか ら 制約を処理 し ます。 こ れ ら の制約には、 タ イ ミ ン グ制約 と 、 パ ッ ケージ ピ ン割 り 当てやフ ロ アプ ラ ン用の Pblock な ど の物理制約が 含まれます。 重要 : 制約が満た さ れていない こ と を示す ク リ テ ィ カル警告を確認 し ます。制約が最適化で削除 さ れたデザ イ ン オブ ジ ェ ク ト に設定 さ れてい る こ と があ り ます。 Tcl コ マ ン ド write_xdc -constraints INVALID を使用 し て も 、 無 効な XDC 制約を取得で き ます。 4. 配置マ ク ロ を作成 し ます。 Vivado ツールでは、 接続ま たは配置制約に基づいてセルの配置マ ク ロ が作成 さ れ、 配置が簡略化 さ れます。 配置マ ク ロ には、 次の も のがあ り ます。 ° XDC ベース のマ ク ロ ° 相対配置マ ク ロ (RPM) 注記 : RPM は、 個別のセルではな く グループ と し て配置 さ れます。 ° 複数の CLB に配置する 必要のあ る 長いキ ャ リ ー チ ェーン 注記 : キ ャ リ ー チ ェ ーン を構成す る プ リ ミ テ ィ ブは 1 つのマ ク ロ に含め、縦方向に並ぶ複数の ス ラ イ ス に配 置 さ れ る よ う にする 必要があ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 40 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン Tcl コ マ ン ド 合成済みデザ イ ン を メ モ リ に読み込むには、 デザ イ ンの ソ ース フ ァ イ ルお よ びデザ イ ンの ス テー ト に応 じ て、 表 2-2 に示す Tcl コ マ ン ド を使用 し ます。 表 2-2 : Tcl コ マ ン ド を使用可能なモー ド コマン ド synth_design プ ロ ジ ェ ク ト モー ド X 非プ ロ ジ ェ ク ト モー ド X X open_checkpoint open_run X link_design X X 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 constraints read_vhdl -library bftLib [ glob ./Sources/hdl/bftLib/*.vhdl ] read_vhdl ./Sources/hdl/bft.vhdl read_verilog [ glob ./Sources/hdl/*.v ] read_xdc ./Sources/bft_full.xdc # Run synthesis, report utilization and timing estimates, write design checkpoint synth_design -top bft -part xc7k70tfbg484-2 -flatten rebuilt write_checkpoint -force $outputDir/post_synth synth_design サンプル ス ク リ プ ト の使用に関す る 詳細は、 『Vivado Design Suite チ ュ ー ト リ アル : デザ イ ン フ ロ ー の概要』 (UG888) [参照 18] お よ び 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 8] を参照 し て く だ さ い。 こ のサ ンプル ス ク リ プ ト では、 VHDL お よび Verilog フ ァ イ ルが読み込まれ、 指定 し たデバ イ ス でデザ イ ンが合成 さ れます。 synth_design コ マ ン ド が完了する と 、 デザ イ ンが開き 、 メ モ リ に読み込まれます。 合成が完了す る と 、 デ ザ イ ン チ ェ ッ ク ポ イ ン ト が保存 さ れます。 synth_design Tcl コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] の 「synth_design」 を参照 し て く だ さ い。 こ のガ イ ド では、 すべての Tcl コ マ ン ド お よ びそのオプシ ョ ン が詳細に説明 さ れてい ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 41 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン open_checkpoint open_checkpoint コ マン ド を使用す る と 、 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (DCP) が開 き 、 新 し い イ ン メ モ リ プ ロ ジ ェ ク ト が作成 さ れて、 新 し いプ ロ ジ ェ ク ト がチ ェ ッ ク ポ イ ン ト の内容で初期化 さ れます。 こ の コ マ ン ド では、 最上位デザ イ ン チ ェ ッ ク ポ イ ン ト ま たは独立階層 (OOC) モジ ュ ールに対 し て作成 さ れたチ ェ ッ ク ポ イ ン ト を開 く こ と がで き ます。 注記 : こ れま での リ リ ース では、 チ ェ ッ ク ポ イ ン ト デザ イ ン を読み込んで初期化す る のに read_checkpoint コ マ ン ド を 使 用 し ま し た。 バ ー ジ ョ ン 2014.1 か ら は、 こ れ に open_checkpoint コ マ ン ド を 使 用 し ま す。 read_checkpoint コ マン ド の動作は変更 さ れてお り 、 チ ェ ッ ク ポ イ ン ト フ ァ イ ルが ソ ース フ ァ イ ルの リ ス ト に追 加 さ れ る だけです。 こ の動作は、 read_verilog、 read_vhdl、 read_xdc な ど のほかの read コ マ ン ド と 一貫 し て い ま す。 read_checkpoint コ マ ン ド を 使 用 し た 場 合、 デ ザ イ ン を 初 期化 し 、 メ モ リ に 読み 込む た め に link_design コ マ ン ド も 実行する 必要があ り ます。 チ ェ ッ ク ポ イ ン ト を開 く 場合、 あ ら か じ めプ ロ ジ ェ ク ト を作成す る 必要はあ り ません。 open_checkpoint コ マン ド は、 デザ イ ン デー タ を メ モ リ に読み込み、 デザ イ ン を非プ ロ ジ ェ ク ト モー ド で開 き ます。 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) [参照 1] の 「プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド 」 を参照 し て く だ さ い。 重要 : イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ーでは、 こ れま で と 同様に 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> イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 42 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン open_run のス ク リ プ ト 例 # Open named design from completed synthesis run open_run -name synth_1 synth_1 こ のサ ンプル プ ロ ジ ェ ク ト は、 synth_1 と い う デザ イ ン を開 き 、 synth_1 と い う 完了 し た合成 run を メ モ リ に読み 込みます。 デザ イ ン が メ モ リ にあ る 場合に open_run コ マ ン ド を実行す る と 、 新 し いデザ イ ン を開 く 前に、 現在のデザ イ ンへ の変更を保存する かど う かを尋ねる メ ッ セージが表示 さ れます。 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 コ マン ド を実行 し て タ イ ミ ン グ制約をチ ェ ッ ク し 、 デザ イ ン の目標が適切で あ る か ど う か を 確認 し て く だ さ い。 report_timing_summary コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] の 「report_timing_summary」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 43 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ロ ジ ッ ク最適化 ロ ジ ッ ク 最適化は、 配置の前に効率的な ロ ジ ッ ク デザ イ ン を得る ために実行 し ます。 ロ ジ ッ ク 最適化では、 ネ ッ ト リ ス ト 接続性チ ェ ッ ク が実行 さ れ、 複数の ド ラ イ バーを持つネ ッ ト や駆動 さ れていない入力な ど の発生す る 可能性のあ る デザ イ ン問題に対 し て警告 メ ッ セージが表示 さ れます。 ブ ロ ッ ク RAM の消費電力最適化 も 実行 さ れます。 デザ イ ン の接続エ ラ ーは ロ ジ ッ ク 最適化段階に伝搬 さ れ る こ と が多 く 、 そ こ でエ ラ ーが発生 し ま す。 イ ン プ リ メ ン テーシ ョ ン を実行する 前に、 DRC レ ポー ト を使用 し て接続が有効であ る こ と を確認す る こ と が重要です。 ロ ジ ッ ク 最適化では、 DONT_TOUCH プ ロ パテ ィ の値が TRUE に設定 さ れてい る セルお よ びネ ッ ト の最適化は実行 さ れません。 ロ ジ ッ ク 最適化を実行する Tcl コ マ ン ド は opt_design です。 よ く あ るデザイ ン エ ラ ー ロ ジ ッ ク 最適化でエ ラ ーが発生する 主な原因には、 次の 2 つのデザ イ ン エ ラ ーがあ り ます。 • 駆動 さ れていない LUT 入力 (入力が LUT ロ ジ ッ ク 論理式で使用 さ れてい る )。 こ れに よ り 、 次の よ う なエ ラ ー メ ッ セージが表示 さ れます。 ERROR: [Opt 31-67] Problem: A LUT6 cell in the design is missing a connection on input pin I0, which is used by the LUT equation. こ のエ ラ ーは、 複数の ソ ース か ら ロ ジ ッ ク を統合す る 際に接続が見逃 さ れた場合に よ く 発生 し ます。 ロ ジ ッ ク 最 適化では、 ソ ース定義に ト レースする ため、 セル名 と ピ ンの両方が認識 さ れます。 • DONT_TOUCH が設定 さ れてい る 階層セル。 基にな る ロ ジ ッ ク が最適化で削除 さ れたが、 空にな っ たセルを DONT_TOUCH のために削除で き ない場合です。 こ れに よ り 、 次の よ う なエ ラ ー メ ッ セージが表示 さ れます。 ERROR: [Opt 31-120] Instance <cell name> has become an empty hierarchy during sweep, however it has constraints that do not permit its removal. こ のエ ラ ーは通常、 階層セルに DONT_TOUCH を過剰に適用 し てい る 場合に発生 し ま す。 XDC 制約で階層 タ ー ゲ ッ ト を見つけ る こ と がで き る よ う に階層を保持す る ために DONT_TOUCH を使用す る と 、 使用 し すぎにな る こ と があ り ます。 論理階層は イ ンプ リ メ ン テーシ ョ ン中には変更 さ れないので、 こ の場合 DONT_TOUCH を使用す る 必要はあ り ません。 こ の問題を解決す る には、 エ ラ ーが発生 し てい る セルか ら DONT_TOUCH プ ロ パテ ィ を削 除 し ます。 使用可能な ロ ジ ッ ク 最適化 Vivado ツールでは、 ロ ジ ッ ク 最適化は メ モ リ 内のデザ イ ンに対 し て実行 さ れます。 重要 : 特定の ロ ジ ッ ク 最適化に対応す る コ マン ド オプシ ョ ン を指定す る と 、 その最適化のみが実行 さ れます。 ほかの 最適化は、 通常デフ ォル ト で実行 さ れ る も の も 、 デ ィ ス エーブルにな り ます。 リ タ ーゲ ッ ト (デ フ ォル ト ) 最適化が し やす く な る よ う に、 セル タ イ プを別のセル タ イ プに置換 し ます。 た と えば、 MUXF7 はほかの LUT と 統 合で き る よ う に LUT3 に置換 さ れます。 ま た、 イ ンバー タ ーの よ う な単純なセルはダ ウ ン ス ト リ ーム ロ ジ ッ ク に吸収 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 44 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 定数伝搬 (デ フ ォル ト ) 定数値を ロ ジ ッ ク に伝搬する こ と で、 ロ ジ ッ ク は次の よ う にな り ます。 • 削除 : 例 : 定数 0 が入力 さ れ る AND • 縮小 : 例 : 定数 1 が入力 さ れ る 3 入力 AND を 2 入力 AND に縮小 • 冗長 : 例 :0 が入力 さ れ る 2 入力 OR を 1 本の ワ イ ヤに削減 ス イ ープ (デ フ ォル ト ) ロ ー ド のないセルを削除 し ます。 ブ ロ ッ ク RAM の消費電力最適化 (7 シ リ ーズ デバイ スのデ フ ォル ト ) ブ ロ ッ ク RAM セルに対 し て消費電力の最適化を イ ネーブルに し ます。 次を実行 し ます。 • 完全なデュ アル ポー ト RAM の読み出 さ れないポー ト の WRITE_MODE を NO_CHANGE に変更 • ブ ロ ッ ク RAM の出力に ク ロ ッ ク ゲーテ ィ ン グ を適用 リマップ 複数の 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 estimates opt_design -directive NoBramPowerOpt write_checkpoint -force $outputDir/post_opt report_timing_summary -file $outputDir/post_opt_timing_summary.rpt イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 45 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン こ のサ ンプル ス ク リ プ ト では、 メ モ リ 内のデザ イ ンに ロ ジ ッ ク 最適化を実行 し 、 メ モ リ に書 き 込みます。 最適化後に デザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し 、 タ イ ミ ン グ サマ リ レ ポー ト を生成 し て指定の フ ァ イ ルに記述 し ます。 最適化 タ イ プの制限 最適化 タ イ プを制限する には、 コ マン ド ラ イ ン オプシ ョ ン を使用 し ます。 次に、 デフ ォ ル ト のブ ロ ッ ク RAM 最適化 を実行 し ない よ う にする 別の方法を示 し ます。 opt_design -retarget -propconst -sweep -directive オプ シ ョ ンの使用 -directive オプシ ョ ン を使用す る と 、 opt_design コ マ ン ド を異な る モー ド で実行で き ます。 一度に指定で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ン と 共に使用する こ と はで き ません。 次のモー ド があ り ます。 • Explore 最適化を複数回実行 し ます。 • ExploreArea 組み合わせ ロ ジ ッ ク を縮小する こ と を優先 し て最適化を複数回実行 し ます。 • AddRemap デフ ォル ト の ロ ジ ッ ク 最適化フ ロ ーを実行 し 、 LUT 再マ ッ プを含めて ロ ジ ッ ク レベルを削減 し ます。 • ExploreSequentialArea レ ジ ス タ お よ び関連の組み合わせ ロ ジ ッ ク を縮小する こ と を優先 し て最適化を複数回実行 し ます。 • RuntimeOptimized 反復回数を少な く し 、 デザ イ ン パフ ォーマン ス よ り も 実行時間を短縮す る こ と を優先 し ます。 • NoBramPowerOpt opt_design コ マ ン ド の RAM 消費電力最適化以外のデフ ォル ト 最適化をすべて実行 し ます。 • Default opt_design をデフ ォル ト 設定で実行 し ます。 -verbose オプ シ ョ ンの使用 最適化結果を解析す る には、 -verbose オプシ ョ ン を使用 し 、 opt_design の最適化の影響を受けた ロ ジ ッ ク の詳 細を確認 し ます。 -verbose オ プ シ ョ ン を 使用す る と 大量の メ ッ セージ が表示 さ れ る の で、 デ フ ォ ル ト ではオ フ に な っ て い ま す。 -verbose オプシ ョ ンは、 有益だ と 思われ る 場合に使用 し て く だ さ い。 推奨 : 大型デザ イ ン で ツールの実行時間を短縮す る には、 -verbose オプシ ョ ンはシ ェ ル モー ド ま たはバ ッ チ モー ド でのみ使用 し 、 GUI モー ド では使用 し ないで く だ さ い。 重要 : opt_design コ マン ド は、 メ モ リ 内のデザ イ ンに対 し て実行 さ れます。 複数回実行 し た場合、 前回の run の結 果が最適化 さ れます。 そのため、 -verbose オプシ ョ ン を追加す る 前に イ ンプ リ メ ン ト 済みデザ イ ン を読み込み直す 必要があ る 場合があ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 46 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ロ ジ ッ ク 最適化制約 ロ ジ ッ ク 最適化中、 DONT_TOUCH プ ロ パテ ィ が認識 さ れ、 こ のプ ロ パテ ィ が設定 さ れてい る ネ ッ ト ま たはセルは削 除 さ れ ません。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 8] の 「合成属性」 を参照 し て く だ さ い。 DONT_TOUCH は通常、 最下位セルに設定 し 、 最適化で削除 さ れない よ う に し ます。 階層セルに DONT_TOUCH を設 定する と セルの境界は保持 さ れますが、 セル内では最適化が実行 さ れ る 可能性はあ り ます。 ツ ールは、 MARK_DEBUG プ ロ パテ ィ の値が TRUE で あ る ネ ッ ト に対 し て DONT_TOUCH プ ロ パテ ィ の値 を 自動的に TRUE に設定 し ま す。 こ れは、 ネ ッ ト を ど のデザ イ ン段階で も プ ロ ーブで き る よ う に、 イ ン プ リ メ ン テーシ ョ ン フ ロ ー中にネ ッ ト が変更 さ れない よ う に実行 さ れ ま す。 こ れが、 MARK_DEBUG の推奨 さ れ る 使用方法です。 ただ し 、 DONT_TOUCH は制限的すぎ、 定数の伝搬、 ス イ ープ、 リ マ ッ プな ど の最適化が実行 さ れな く な り 、 タ イ ミ ン グ ク ロ ー ジ ャ を 達成す る の が 困難 に な る こ と が ま れ に あ り ま す。 そ の 場合 は、 MARK_DEBUG を TRUE に 設定 し た ま ま、 DONT_TOUCH の値 FALSE に設定で き ます。 ただ し 、 MARK_DEBUG を設定 し たネ ッ ト が最適化で削除 さ れ、 プ ロ ーブ さ れな く な る 可能性があ り ます。 グ ローバル ク ロ ッ ク バ ッ フ ァ ーの挿入 ロ ジ ッ ク 最適化では、 フ ァ ン ア ウ ト の大き い リ セ ッ ト お よ び ク ロ ッ ク ネ ッ ト へのグ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの 挿入は、 デザ イ ンに含ま れ る グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの総数が 7 シ リ ーズ デザ イ ンでは 12、 UltraScale デザ イ ンでは 24 を超え ない よ う に実行 さ れます。 リ セ ッ ト ネ ッ ト ではフ ァ ン ア ウ ト が 50,000 よ り 大き く 、 ク ロ ッ ク ネ ッ ト ではフ ァ ン ア ウ ト が 30 以上であ る こ と が必要です。 自動 ク ロ ッ ク バ ッ フ ァ ー挿入は、 ボ ト ム ア ッ プ フ ローで有益です。 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの挿入は、 通常 下位モジ ュ ールでは実行 さ れません。 こ れは、 下位モジ ュ ールは独立階層モジ ュ ール (OOC) であ り 、 ブ ラ ッ ク ボ ッ ク ス であ る ためにモジ ュ ールに含まれ る ク ロ ッ ク が認識 さ れないか ら です。 消費電力の最適化 ク ロ ッ ク ゲーテ ィ ン グ を使用 し て、 ダ イ ナ ミ ッ ク 消費電力を最適化 し ます (オプシ ョ ン)。 消費電力の最適化は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で使用で き 、 ロ ジ ッ ク 最適化後ま たは配置後に実行 し てデザ イ ン の消費電力を最適化で き ます。 消費電力の最適化には、 ク ロ ッ ク や ロ ジ ッ ク を変更せずにデザ イ ンのダ イ ナ ミ ッ ク 消 費電力を削減する ク ロ ッ ク ゲーテ ィ ン グ ソ リ ュ ーシ ョ ンが含まれます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 消費電力解析お よ び最適化』 (UG907) [参照 11] を参照 し て く だ さ い。 Vivado 消費電力解析 Vivado ツールでは、 レ ガ シ IP ブ ロ ッ ク お よ びサー ド パーテ ィ IP ブ ロ ッ ク を含む、 デザ イ ン全体が解析 さ れ、 各 ク ロ ッ ク サ イ ク ルでの結果に影響 し ない レ ジ ス タ か ら の出力 ロ ジ ッ ク が特定 さ れます。 ク ロ ッ ク イ ネーブル (CE) の使用 Vivado 消費電力最適化では、 ザ イ リ ン ク ス 7 シ リ ーズ デバ イ ス の ロ ジ ッ ク に多数含ま れ る ク ロ ッ ク イ ネーブル (CE) が利用 さ れます。 細粒度 ク ロ ッ ク ゲーテ ィ ン グ ま たは ロ ジ ッ ク ゲーテ ィ ン グ信号が作成 さ れ、 余分な ス イ ッ チ イ ン グ ア ク テ ィ ビ テ ィ が除去 さ れます。 ま た、 フ リ ッ プ フ ロ ッ プ レベルでは、 CE はフ リ ッ プ フ ロ ッ プの D 入力 と フ ィ ー ド バ ッ ク Q 出力のいずれかを選択す る のではな く 、 ク ロ ッ ク を ゲーテ ィ ン グ し てい る ので、 CE 入力のパ フ ォーマ ン ス が向上す る だけではな く 、 ク ロ ッ ク の消費電力 も 削減 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 47 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ク ロ ッ ク ゲーテ ィ ング X-Ref Target - Figure 2-14 %HIRUH $IWHU 3RZHU &RQVXPSWLRQ VLJ 3RZHU &RQVXPSWLRQ VLJ &( :3 図 2-14 : ク ロ ッ ク ゲーテ ィ ング ク ロ ッ ク ゲーテ ィ ン グでは、 シ ンプル デ ュ アル ポー ト ま たは真のデ ュ アル ポー ト モー ド 両方の専用ブ ロ ッ ク RAM の消費電力 も 削減 さ れます (図 2-15)。 こ れ ら のブ ロ ッ ク には、 次の イ ネーブルが含まれます。 • ア レ イ イ ネーブル • ラ イ ト イ ネーブル • 出力レ ジ ス タ の ク ロ ッ ク イ ネーブル 節約 さ れ る 消費電力のほ と んど はア レ イ イ ネーブルの使用に よ る も ので、 デー タ が書き 込まれず、出力が使用 さ れな い と き に、 消費電力を削減する 機能が イ ンプ リ メ ン ト さ れます。 X-Ref Target - Figure 2-15 %HIRUH $IWHU DGGUHVV DGGUHVV GDWDRXW GDWDLQ GDWDRXW GDWDLQ FH 図 2-15 : ブ ロ ッ ク RAM イ ネーブルの利用 power_opt_design power_opt_design コ マン ド は、 デザ イ ン を解析 し て最適化 し ます。 デフ ォル ト では、 デザ イ ン全体が解析お よ び 最適化 さ れます。 ク ロ ッ ク ゲーテ ィ ン グ も 実行 さ れ、 消費電力が最適化 さ れます。 power_opt_design の構文 power_opt_design [-quiet] [-verbose] デザ イ ン全体を解析お よ び最適化 し ない場合は、 set_power_opt を使用 し て最適化を設定 し ます。 こ の コ マン ド を 使用する と 、 最適化にセル タ イ プ ま たは階層を含め る か、 除外す る かな ど を設定で き ます。 set_power_opt コ マン ド を使用 し て、 opt_design コ マ ン ド で最適化を実行する ブ ロ ッ ク RAM セルを指定で き ます。 set_power_opt コ マ ン ド の構文は、 次の と お り です。 set_power_opt [-include_cells <args>] [-exclude_cells <args>] [-clocks <args>] [-cell_types <args>] [-quiet] [-verbose] イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 48 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 注記 : opt_design を使用 し た場合、 ブ ロ ッ ク RAM の消費電力最適化は実行 さ れません。 推奨 : opt_design コ マ ン ド で特定のブ ロ ッ ク RAM に対 し てブ ロ ッ ク RAM 消費電力最適化が実行 さ れない よ う に する には、 set_power_opt -exclude_cells [get_cells <bram_insts>] を使用 し ます。 配置 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 セ ルは、 選択 し たザ イ リ ン ク ス デバ イ ス に特定の複雑な配置規則に よ っ て関連 し てい る こ と が よ く あ る ので、同時に配 置 さ れます。 UltraScale デバ イ ス では、 配置に よ り ク ロ ッ ク ト ラ ッ ク の割 り 当てお よ び ク ロ ッ ク の事前配線 も 実行 さ れます。IOB プ ロ パテ ィ が設定 さ れた レ ジ ス タ セルは、IOB 値が TRUE の ど の レ ジ ス タ を I/O ロ ジ ッ ク サ イ ト にマ ッ プす る か を決定す る ために こ の段階で処理 さ れ ます。 配置で IOB プ ロ パテ ィ の TRUE を適用で き ない場合は、 ク リ テ ィ カル警告が表示 さ れます。 配置の タ ーゲ ッ ト こ の時点では、 次が配置の タ ーゲ ッ ト と な り ます。 • I/O ポー ト お よ び関連 ロ ジ ッ ク • グ ロ ーバルお よ び ロ ーカル ク ロ ッ ク バ ッ フ ァ ー • ク ロ ッ ク マネージ メ ン ト タ イ ル (MMCM お よ び PLL) • ギガ ビ ッ ト ト ラ ン シーバー (GT) セル イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 49 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 固定 さ れていない ロ ジ ッ ク の配置 配置の こ の段階では、 固定 さ れていない ロ ジ ッ ク を配置する 際 LOC プ ロ パテ ィ や Pblock 割 り 当てな ど の物理制約に 従い ます。 既存の LOC 制約は、 ネ ッ ト リ ス ト の接続お よ びデバ イ ス サ イ ト に対 し て有効か ど う かがチ ェ ッ ク さ れま す。 MIG や GT の よ う な一部の IP は、 デバ イ ス専用の配置制約を使用 し て生成 さ れます。 重要 : デバ イ ス の I/O アーキ テ ク チ ャ のために、 LOC プ ロ パテ ィ で LOC が適用 さ れていないセルが制約 さ れ る こ と が よ く あ り ます。 入力ポー ト に LOC 制約が設定 さ れてい る 場合、 関連す る I/O バ ッ フ ァ ー、 IDELAY、 ILOGIC の位 置 も 固定 さ れ ます。 競合す る LOC 制約は、 入力パ ス の個々のセルには適用で き ません。 出力お よ び GT 関連のセル の場合 も 同様です。 ク ロ ッ ク リ ソ ースの配置規則 ク ロ ッ ク リ ソ ー ス の配置は、 『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472) [参照 14] お よ び 『UltraScale アーキテ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572) [参照 15] に示す配置規則に従 う 必要が あ り ます。 た と えば、 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーを駆動す る 入力は ク ロ ッ ク 兼用 I/O サ イ ト に配置す る 必要が あ り 、7 シ リ ーズ デバ イ ス ではデバ イ ス の上半分ま たは下半分の ど ち ら か同 じ 側、UltraScale デバ イ ス では同 じ ク ロ ッ ク 領域に配置する 必要があ り ます。 こ れ ら の ク ロ ッ ク 配置規則 も 、論理ネ ッ ト リ ス ト の接続お よ びデバ イ ス サ イ ト に 対 し て有効かど う かがチ ェ ッ ク さ れます。 ク ロ ッ ク お よび I/O を配置で き ない場合 ク ロ ッ ク お よ び I/O の適切な配置が見つか ら なかっ た場合は、 違反のあ っ た配置規則 と 、 影響を受けたセルの簡単な 説明が表示 さ れます。 まずサ イ ト にセルが暫定的に配置 さ れ、 その後配置問題を解決す る ために別のセルが配置 さ れ る こ と があ り ます。 暫定的な配置に よ り 、 ク ロ ッ ク お よ び I/O 配置のエ ラ ーの原因がわか る こ と が よ く あ り ます。 暫 定的な配置でエ ラ ーにな っ たセルを手動で配置する と 、 配置が改善する こ と があ り ます。 ヒ ン ト : place_ports コ マン ド を実行 し て ク ロ ッ ク お よ び I/O を配置 し てか ら 、 place_design コ マン ド を実行 し ます。 ポー ト 配置でエ ラ ーが発生 し た場合、 配置は メ モ リ に保存 さ れ、 エ ラ ーを解析で き ます。 詳細は、 Vivado Tcl プ ロ ンプ ト か ら place_ports -help を実行 し て く だ さ い。 グ ローバル配置、 詳細配置、 パ ッ キングおよび有効化 ク ロ ッ ク お よ び I/O を配置 し た後、 次の配置プ ロ セ ス が実行 さ れます。 • グ ロ ーバル配置 • 詳細配置 • パ ッ キ ン グおお よ び有効化 推奨 : 配置後に report_timing_summary を実行 し 、 ク リ テ ィ カル パ ス をチ ェ ッ ク し て く だ さ い。 負のセ ッ ト ア ッ プ ス ラ ッ ク が大 き いパ ス は、 タ イ ミ ン グ ク ロ ージ ャ を達成す る ため、 手動配置、 制約の変更、 ま たは ロ ジ ッ ク の再 構築が必要な場合があ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 50 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 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 estimates place_design write_checkpoint -force $outputDir/post_place report_timing_summary -file $outputDir/post_place_timing_summary.rpt こ のサ ンプル ス ク リ プ ト は、 メ モ リ 内のデザ イ ン を配置 し て、 配置後にデザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し 、 タ イ ミ ン グ サマ リ レ ポー ト を生成 し て指定の フ ァ イ ルに記述 し ます。 -directive オプ シ ョ ンの使用 -directive オプシ ョ ン を使用す る と 、 place_design コ マ ン ド を異な る モー ド で実行で き ます。 一度に指定で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ン と 共に使用する こ と はで き ません。 配置の -directive オプ シ ョ ン 配置は通常デザ イ ンの全体的なパフ ォーマ ン ス に最 も 影響する ので、-directive オプシ ョ ンで指定可能なモー ド が 多数あ り ます。 表 2-3 に、 ど のモー ド が ど の よ う なデザ イ ンに効果的かを示 し ます。 表 2-3 : -directive オプ シ ョ ンのガ イ ド ラ イ ン モー ド 効果が得 られるデザイ ン BlockPlacement ブ ロ ッ ク RAM ま たは DSP ブ ロ ッ ク 、 あ る いはその両方を多数含むデ ザイ ン ExtraNetDelay 遠距離のネ ッ ト 接続を含むデザ イ ンお よ び多数の異な る モジ ュ ールに フ ァ ン ア ウ ト す る ネ ッ ト を含むデザ イ ン SpreadLogic 接続が多数あ る 密集が発生 し やすいデザ イ ン ExtraPostPlacementOpt すべての タ イ プのデザ イ ン SSI 密集を緩和 し た り タ イ ミ ン グ を向上す る ため、 異な る 分割方法が有益 であ る 可能性のあ る SSI デザ イ ン イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 51 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン -directive オプ シ ョ ン で指定可能な モー ド • Explore 詳細配置お よ び配置後の最適化のエフ ォー ト を増加 し ます。 • WLDrivenBlockPlacement RAM お よ び DSP ブ ロ ッ ク を ワ イ ヤ長に基づいて配置 し ます。 タ イ ミ ン グ ド リ ブンの配置を無効に し 、 ブ ロ ッ ク と の接続距離を最短にする よ う 配置 し ます。 RAM お よ び DSP ブ ロ ッ ク へのパ スお よ び こ れ ら のブ ロ ッ ク か ら の パ ス の タ イ ミ ン グ を向上で き ます。 • AltWLDrivenPlacement ク ロ ッ ク 領域や I/O 列な ど の物理的な境界内に関連の ロ ジ ッ ク を配置す る ために、 ワ イ ヤ長ま たは接続 さ れたセ ル間の累積距離が増加する こ と があ り ます。 こ れが ワ イ ヤ長を最短にする よ り も 優先 さ れます。 • 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 最 も 高速な、 タ イ ミ ン グ ド リ ブンでない、 有効なデザ イ ン を得 る ために最低限の配置を実行 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 52 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン • Default place_design をデフ ォル ト 設定で実行 し ます。 ヒ ン ト : -directive オプシ ョ ン を使用 し て、 デザ イ ンの異な る 配置オプシ ョ ン を試 し てみて く だ さ い。 -unplace オ プ シ ョ ンの使用 -unplace オプシ ョ ンは、 デザ イ ン内で固定 さ れた ロ ケーシ ョ ン を持た ないセルお よ びポー ト の配置を解除 し ます。 固定 さ れた ロ ケーシ ョ ン を持つオブジ ェ ク ト では、 IS_LOC_FIXED プ ロ パテ ィ が TRUE に設定 さ れてい ます。 -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 オプシ ョ ンは、 有益だ と 思われ る 場合に使用 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 53 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン -post_place_opt オプ シ ョ ンの使用 配置後に最適化を実行する と 、 ク リ テ ィ カル パ ス の タ イ ミ ン グが向上 さ れ る 可能性があ り ますが、配置配線の実行時 間が増加 し ます。 こ の最適化は、 完全に配置 さ れた タ イ ミ ン グ違反を含むデザ イ ンで実行 し ます。 違反の大 き いい く つかの ク リ テ ィ カル パ ス に対 し て、 ク リ テ ィ カル セルを移動 し 、 予測遅延が向上 さ れた ら 新 し いセル配置を確定 し ます。 実行時間が長 く 、 ク リ テ ィ カル パス が比較的多いデザ イ ンでは、 こ れ ら の配置の変更に よ り タ イ ミ ン グが さ ら に向上する 場合があ り ます。 こ の最適化は配置後の ど の段階で も 実行で き 、 配線済みデザ イ ンで実行す る と 特に有益です。 配線済みデザ イ ンで こ の最適化を実行する 場合、 次の点に注意する 必要があ り ます。 • タ イ ミ ン グ デー タ は実際の配線遅延に基づいてい る ので、 最適化で最悪の ク リ テ ィ カル パ ス が確実に考慮 さ れ ます。 • 最適化中のセルの移動の評価では、セル配置に基づいて遅延が予測 さ れます。実際の配線遅延は使用 さ れません。 • 新 し いセル配置が確定 さ れ る と 、 関連のネ ッ ト の配線が解除 さ れ る ので、 こ れ ら のネ ッ ト を配線す る 必要があ り ます。 次に例を示 し ます。 1. 配置後に配置後の最適化を実行 し ます。 place_design place_design -post_place_opt 2. 配線後に配置後の最適化を実行 し ます。 place_design phys_opt_design route_design place_design -post_place_opt route_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_design phys_opt_design route_design runPPO 4 1 ; # run 4 post-route iterations and enable phys_opt_design イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 54 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 物理最適化 物理最適化では、 デザ イ ンの負の ス ラ ッ ク パ ス に対 し て タ イ ミ ン グ ド リ ブン の最適化が実行 さ れ ます。 物理最適化 には、 配置後 と 配線後の 2 つのモー ド があ り ます。 配線後モー ド では、 セル配置か ら の タ イ ミ ン グ予測に基づいて最適化が実行 さ れます。 物理最適化では、 ロ ジ ッ ク 最 適化に よ る ネ ッ ト リ ス ト の変更が自動的に組み込まれ、 必要に応 じ てセルが配置 さ れます。 配線後モー ド では、 実際の配線遅延に基づいて最適化が実行 さ れます。 ロ ジ ッ ク の変更に応 じ た自動的なネ ッ ト リ ス ト のア ッ プデー ト お よ びセルの配置に加え、 必要に応 じ て配線 も ア ッ プデー ト さ れます。 全体的な物理最適化は配置後モー ド での方が よ り 積極的に実行 さ れ る ので、 ロ ジ ッ ク が最適化 さ れ る 機会が多 く な り ます。 配線後モー ド では、 タ イ ミ ン グ ク ロ ージ ャ が達成 さ れた配線に影響を与えない よ う に、 物理最適化は控えめに 実行 さ れます。 物理最適化を実行す る 前にデザ イ ンの配線ス テー タ ス がチ ェ ッ ク さ れ、 配置後ま たは配線後の ど ち ら のモー ド を使用する かが判断 さ れます。 デザ イ ンの ス ラ ッ ク が負でな く 、 タ イ ミ ン グ ベース の最適化オプシ ョ ン を含む物理最適化が指定 さ れた場合、最適化 は実行 さ れずに コ マ ン ド が終了 し ます。 使用可能な物理最適化 Vivado ツールでは、 メ モ リ 内のデザ イ ンに対 し て表 2-4 に示す よ う に物理最適化が実行 さ れます。 表 2-4 : 配置後および配線後の物理最適化 オプ シ ョ ン名 配置後 配線後 実行可能 デ フ ォル ト 実行可能 デ フ ォル ト フ ァ ン ア ウ ト の大 き いネ ッ ト の最適化 ○ ○ × なし 配置の最適化 ○ ○ ○ ○ 配線の最適化 × なし ○ ○ リ ワ イヤ ○ ○ ○ ○ ク リ テ ィ カル セルの最適化 ○ ○ ○ ○ DSP レ ジ ス タ の最適化 ○ ○ × なし なし ブ ロ ッ ク RAM レ ジ ス タ の最適化 ○ ○ × シ フ ト レ ジ ス タ の最適化 ○ ○ × なし ク リ テ ィ カル ピ ンの最適化 ○ ○ × なし ブ ロ ッ ク RAM イ ネーブルの最適化 ○ ○ × なし ホール ド 違反の修正 ○ × × なし リ タ イ ミ ング ○ × ○ × ネ ッ ト の強制的な複製 ○ × × なし ク ロ ッ ク の最適化 × なし ○ ○ 重要 : 特定の物理最適化に対応す る コ マン ド オプシ ョ ン を指定す る と 、 その最適化のみが実行 さ れます。 ほかの最適 化は、 通常デフ ォル ト で実行 さ れ る も の も 、 デ ィ ス エーブルにな り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 55 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン フ ァ ン アウ ト の大き いネ ッ ト の最適化 フ ァ ン ア ウ ト の大き いネ ッ ト の最適化は、 次の よ う に実行 さ れます。 1. 負の ス ラ ッ ク が WNS のあ る 割合以内であ る フ ァ ン ア ウ ト の大 き いネ ッ ト は、 複製が考慮 さ れます。 2. ロー ド はその配置に よ り ク ラ ス ター化 さ れ、各ロ ー ド ク ラ ス ターに対し て ド ラ イ バーが複製お よび配置 さ れます。 3. タ イ ミ ン グが再解析 さ れ、 タ イ ミ ン グが改善 し た場合は ロ ジ ッ ク の変更が確定 さ れます。 4. 複製後、 複製が必要な フ ァ ン ア ウ ト の大 き いネ ッ ト があ る か ど う か、 デザ イ ンが再びチ ェ ッ ク さ れます。 フ ァ ン ア ウ ト の大き いネ ッ ト が ま だあ る 場合、 な く な る ま で複製プ ロ セ ス が続行 さ れます。 配置ベースの最適化 ク リ テ ィ カル パ ス のすべてのセルを ワ イ ヤ遅延を削減す る よ う に配置 し 直 し ます。 配線の最適化 ク リ テ ィ カル パ ス のネ ッ ト お よ びピ ン を遅延を小 さ く す る よ う 配線 し 直 し ます。 リ ワイヤ LUT の接続を ス ワ ッ プ し て ク リ テ ィ カル信号の ロ ジ ッ ク レベル数を削減す る こ と に よ り 、 ク リ テ ィ カル パ ス を最適 化 し ます。 LUT 論理式を変更 し てデザ イ ンの機能を保持 し ます。 ク リ テ ィ カル セルの最適化 タ イ ミ ン グが満た さ れないパ ス のセルを複製 し ます。 特定のセルの ロ ー ド 同士が離れてい る 場合、 セルが複製 さ れ、 新 し い ド ラ イ バーが ロ ー ド ク ラ ス タ ーの近 く に配置 さ れます。 こ の最適化は、 パ ス が ワ ース ト ネガテ ィ ブ ス ラ ッ ク のあ る 割合以内で タ イ ミ ン グ を満た し ていなければ、 フ ァ ン ア ウ ト が大き く な く て も 実行 さ れます。 DSP レ ジ ス タ の最適化 DSP セルの レ ジ ス タ を ロ ジ ッ ク ア レ イ に移動 し た り 、 ロ ジ ッ ク ア レ イ か ら DSP セルに移動 し た り す る こ と に よ り 、 ク リ テ ィ カル パ ス の遅延を削減 し ます。 ブ ロ ッ ク RAM レ ジ ス タ の最適化 ブ ロ ッ ク RAM セルの レ ジ ス タ を ロ ジ ッ ク ア レ イ に移動 し た り 、 ロ ジ ッ ク ア レ イ か ら ブ ロ ッ ク RAM セルに移動 し た り する こ と に よ り 、 ク リ テ ィ カル パ ス の遅延を削減 し ます。 シ フ ト レ ジ ス タ の最適化 シ フ ト レ ジ ス タ の最適化を実行す る と 、シ フ ト レ ジ ス タ セル (SRL) と ほかの ロ ジ ッ ク セル間の負の ス ラ ッ ク パ ス の タ イ ミ ン グが向上 し ます。 シ フ ト レ ジ ス タ セル (SRL16E ま たは SRLC32E) に入出力す る パ ス に タ イ ミ ン グ違反があ る 場合、 こ の最適化で SRL レ ジ ス タ チ ェ ーンの最初ま たは最後を抽出 し て ロ ジ ッ ク フ ァ ブ リ ッ ク に配置す る こ と に よ り 、 タ イ ミ ン グ を向上 し ます。 こ の最適化に よ り 、 元の ク リ テ ィ カル パ ス の ワ イ ヤ長が短 く な り ます。 こ の最適化では、 レ ジ ス タ がシ フ ト レ ジ ス タ か ら ロ ジ ッ ク フ ァ ブ リ ッ ク 移動 さ れ る だけで、 ロ ジ ッ ク フ ァ ブ リ ッ ク か ら シ フ ト レ ジ ス タ に移動 さ れ る こ と はあ り ません。 ロ ジ ッ ク フ ァ ブ リ ッ ク か ら シ フ ト レ ジ ス タ に レ ジ ス タ を移動 し て も 、 タ イ ミ ン グは向上 し ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 56 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン こ の最適化が実行 さ れ る ための必要条件は、 次の と お り です。 • SRL ア ド レ ス が 1 以上で、 SRL 外に移動で き る レ ジ ス タ 段があ る 。 • SRL ア ド レ ス が一定値であ る (論理 1 ま たは 0 で駆動)。 • SRL セルで開始ま たは終了する タ イ ミ ン グ違反が最悪の ク リ テ ィ カル パ ス の 1 つであ る 。 次の よ う な一部の回路 ト ポ ロ ジは最適化 さ れません。 • 大型シ フ ト レ ジ ス タ を構成す る ためチ ェーン接続 さ れた SRLC32E • Q31 出力ピ ン を使用す る SRLC32E • O5 お よ び O6 出力の両方を使用 し て 1 つの LUT に組み合わせ ら れた SRL16E SRL か ら ロ ジ ッ ク フ ァ ブ リ ッ ク に移動 さ れ る レ ジ ス タ は FDRE セルです。 FDRE お よ び SRL INIT プ ロ パテ ィ 、 SRL ア ド レ ス は、 それに応 じ て調整 さ れます。 次に例を示 し ます。 ク リ テ ィ カル パ ス がシ フ ト レ ジ ス タ (SRL16E) srl_inste か ら 開始する と し ます (図 2-16)。 X-Ref Target - Figure 2-16 図 2-16 : シ フ ト レ ジ ス タ srl_inste から 開始する ク リ テ ィ カル パス シ フ ト レ ジ ス タ の最適化後、 タ イ ミ ン グ を向上す る ため、 シ フ ト レ ジ ス タ の最終段が SRL16E か ら 取 り 出 さ れて ロ ジ ッ ク フ ァ ブ リ ッ ク に配置 さ れま し た (図 2-17)。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 57 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン X-Ref Target - Figure 2-17 図 2-17 : シ フ ト レ ジ ス タ 最適化後のク リ テ ィ カル パス srl_inste の SRL16E ア ド レ ス は、 内部レ ジ ス タ 段が 1 つ少な く な っ た こ と を反映 し て減少 さ れます。 srlopt レ ジ ス タ がダ ウ ン ス ト リ ーム セルの近 く に配置 さ れ、FDRE セルの clock-to-output 遅延は比較的短いので、元の ク リ テ ィ カル パ ス は短 く な り ます。 ク リ テ ィ カル ピ ンの最適化 論理 LUT 入力ピ ン を高速の物理ピ ンに再マ ッ プ し 、 ク リ テ ィ カル パ ス の タ イ ミ ン グ を向上 し ます。 A1 や A2 な ど の 低速の物理ピ ンにマ ッ プ さ れてい る ク リ テ ィ カル パ ス上の論理ピ ンが、 タ イ ミ ン グが向上する 場合に A6 や A5 な ど の 高 速 の 物理 ピ ン に 割 り 当 て 直 さ れ ま す。 LOCK_PINS プ ロ パ テ ィ が 設定 さ れ て い る セ ル は ス キ ッ プ さ れ、 LOCK_PINS で 指定 さ れ て い る ピ ン マ ッ プ が 保 持 さ れ ま す。 論理 ピ ン と 物 理 ピ ン の マ ッ プ を 取得 す る に は、 get_site_pins コ マ ン ド を使用 し ます。 ブ ロ ッ ク RAM イ ネーブルの最適化 ブ ロ ッ ク RAM イ ネーブルを最適化する と 、 消費電力最適化 さ れたブ ロ ッ ク RAM に関連す る ク リ テ ィ カル パ ス の タ イ ミ ン グ を向上で き ます。 配置前のブ ロ ッ ク RAM 消費電力最適化では、 ダ イ ナ ミ ッ ク 消費電力を削減す る ために、 ブ ロ ッ ク RAM の読み出 し お よ び書き 込み イ ネーブル入力を駆動する ロ ジ ッ ク が再構築 さ れます。 配置後、 再構築 さ れた ロ ジ ッ ク が タ イ ミ ン グ ク リ テ ィ カルにな る 可能性があ り ます。 ブ ロ ッ ク RAM イ ネーブルの最適化を実行す る と 、 イ ネーブル ロ ジ ッ ク の最 適化が元に戻 さ れ、 ク リ テ ィ カルな イ ネーブル ロ ジ ッ ク パ ス の ス ラ ッ ク が向上 し ます。 ホール ド 違反の修正 ホール ド ク リ テ ィ カル パ ス の遅延を増加す る こ と に よ り 、 ホール ド 違反の大 き いパ ス の ス ラ ッ ク を向上 し ます。 リ タ イ ミ ング レ ジ ス タ を組み合わせ ロ ジ ッ ク の前後に移動する こ と に よ り 、 ク リ テ ィ カル パ ス の遅延を向上 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 58 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン ネ ッ ト の強制的な複製 タ イ ミ ン グ ス ラ ッ ク にかかわ ら ず、 ネ ッ ト の ド ラ イ バーを強制的に複製 し ます。複製は ロ ー ド の配置に基づいて実行 さ れ、 複製が十分か ど う かを解析す る 必要があ り ます。 さ ら に複製が必要な場合は、 コ マン ド を複数回実行す る こ と に よ り ネ ッ ト を繰 り 返 し 複製で き ます。 タ イ ミ ン グは無視 さ れますが、 複製を実行する には、 ネ ッ ト が タ イ ミ ン グ制 約の設定 さ れたパ ス に含まれてい る 必要があ り ます。 ク ロ ッ ク の最適化 グ ロ ーバル バ ッ フ ァ ーを挿入 し 、 ク リ テ ィ カル パ ス の開始点 と 終点の間に有益な ス キ ュ ーを作成 し ます。セ ッ ト ア ッ プ タ イ ミ ン グ を向上す る ため、 デス テ ィ ネーシ ョ ン ク ロ ッ ク を遅延す る バ ッ フ ァ ーが挿入 さ れます。 配線の最適化 遅延を削減する ため タ イ ミ ン グ ク リ テ ィ カル ネ ッ ト に対 し て配線最適化を実行 し ます。 物理最適化レ ポー ト 物理最適化では、 最適化で処理 さ れた各ネ ッ ト と 、 実行 さ れた最適化のサマ リ が レ ポー ト さ れます。 ヒ ン ト : 複製 さ れたオブジ ェ ク ト の名前は、 元のオブジ ェ ク ト 名に _replica と 複製 さ れたオブジ ェ ク ト カ ウ ン ト が付いた も のにな り ます。 phys_opt_design デザ イ ンに対 し て物理最適化を実行 し ます。 配置後に配置後モー ド で、 ま たはデザ イ ン を完全に配置 し た後に配線後 モー ド で実行で き ます。 phys_opt_design の構文 phys_opt_design イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 [-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] japan.xilinx.com 59 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン phys_opt_design のス ク リ プ ト 例 open_checkpoint top_placed.dcp # Run post-place phys_opt_design and save results phys_opt_design write_checkpoint -force $outputDir/top_placed_phys_opt.dcp report_timing_summary -file $outputDir/top_placed_phys_opt_timing.rpt # Route the design and save results route_design write_checkpoint -force $outputDir/top_routed.dcp report_timing_summary -file $outputDir/top_routed_timing.rpt # Run post-route phys_opt_design and save results phys_opt_design write_checkpoint -force $outputDir/top_routed_phys_opt.dcp report_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 オプシ ョ ンに設定可能なモー ド を示 し ます。 • Explore 最適化を複数回実行 し 、 フ ァ ン ア ウ ト の大き いネ ッ ト の複製を含め、 異な る アルゴ リ ズ ム を実行 し ます。 • ExploreWithHoldFix 最適化を複数回実行 し 、 ホール ド 違反の修正お よ びフ ァ ン ア ウ ト の大 き いネ ッ ト の複製を含め、 異な る アルゴ リ ズ ム を実行 し ます。 • AggressiveExplore Explore と 似てい ますが、 異な る 最適化アルゴ リ ズ ム を使用 し 、 よ り 厳 し い目標を設定 し ます。 • AlternateReplication ク リ テ ィ カル セルの複製に異な る アルゴ リ ズ ム を使用 し ます。 • AggressiveFanoutOpt フ ァ ン ア ウ ト に関連する 最適化に異な る アルゴ リ ズ ム を使用 し 、 よ り 厳 し い目標を設定 し ます。 • AddRetime デフ ォル ト の phys_opt_design フ ロ ーを実行 し 、 レ ジ ス タ の リ タ イ ミ ン グ を追加 し ます。 • AlternateFlowWithRetiming 複製 と DSP お よ びブ ロ ッ ク RAM の最適化を よ り 積極的に実行 し 、 レ ジ ス タ の リ タ イ ミ ン グ を イ ネーブルに し ます。 • Default phys_opt_design をデフ ォ ル ト 設定で実行 し ます。 ヒ ン ト : -directive オプシ ョ ンに設定可能な値は、 配置後お よ び配線後の phys_opt_design で共通です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 60 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン -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 を設定す る と セルの境界は保持 さ れますが、 セ ル内では最適化が実行 さ れ る 可能性はあ り ます。 ツ ールは、 MARK_DEBUG プ ロ パテ ィ の値が TRUE で あ る ネ ッ ト に対 し て DONT_TOUCH プ ロ パテ ィ の値 を 自動的に TRUE に設定 し ま す。 こ れは、 ネ ッ ト を ど のデザ イ ン段階で も プ ロ ーブで き る よ う に、 イ ン プ リ メ ン テーシ ョ ン フ ロ ー中にネ ッ ト が変更 さ れない よ う に実行 さ れ ま す。 こ れが、 MARK_DEBUG の推奨 さ れ る 使用方法です。 ただ し 、 DONT_TOUCH は制限的すぎ、 複製や リ タ イ ミ ン グ な ど の最適化が実行 さ れな く な り 、 タ イ ミ ン グ ク ロ ージ ャ を達成 す る のが困難にな る こ と が ま れにあ り ま す。 その場合は、 MARK_DEBUG を TRUE に設定 し た ま ま、 DONT_TOUCH の 値 FALSE に設定で き ます。 ただ し 、 MARK_DEBUG を設定 し たネ ッ ト が最適化で削除 さ れ、 プ ロ ーブ さ れな く な る 可 能性があ り ます。 MARK_DEBUG ネ ッ ト を複製す る と 、 元のネ ッ ト のみに MARK_DEBUG が保持 さ れ、 複製 さ れたネ ッ ト には保持 さ れません。 配線 Vivado 配線は、 配置済みデザ イ ン に対 し て配置を実行 し 、 ホール ド タ イ ム違反を解決す る ため配線済みデザ イ ンの 最適化を実行 し ます。 配置済みデザ イ ン か ら 開始 し 、 すべてのネ ッ ト の配線を試みま す。 配置済みの次のいずれかのデザ イ ン か ら 開始 し ます。 • 未配線 • 一部配線済み • 完全に配線済み 部分的に配線 さ れてい る デザ イ ンに対 し ては、 始めか ら 配線 し 直すのではな く 、 既存の配線が開始点 と し て使用 さ れ ます。 完全に配線済みのデザ イ ンでは、 タ イ ミ ン グ違反がチ ェ ッ ク さ れ、 タ イ ミ ン グ を満たすために ク リ テ ィ カル部 分が配線 し 直 さ れます。 注記 : 再配線プ ロ セ ス では、 既存の配線が破棄 さ れて配線 し 直 さ れます。 配線では、 デザ イ ン全体を配線する オプシ ョ ン と 、 個々のネ ッ ト お よ びピ ン を配線する オプシ ョ ンがあ り ます。 デザ イ ン全体を 配線す る 場合、 フ ロ ーは タ イ ミ ン グ ド リ ブ ン で あ り 、 タ イ ミ ン グ制約に基づ く 自動 タ イ ミ ン グ バ ジ ェ ッ ト が使用 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 61 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 個々のネ ッ ト お よ びピ ンの配線は、 次の 2 つのモー ド を使用 し て実行で き ます。 • イ ン タ ラ ク テ ィ ブ配線モー ド • 自動遅延モー ド イ ン タ ラ ク テ ィ ブ配線モー ド では、 イ ン タ ラ ク テ ィ ブ セ ッ シ ョ ンの応答を よ く す る ため、 高速で軽量の タ イ ミ ン グ モデルが使用 さ れます。 一部の遅延精度が犠牲 と な り 、 見積 も り の悪い予測遅延が使用 さ れます。 こ のモー ド では タ イ ミ ン グ制約は無視 さ れますが、 配線の実行方法を選択で き ます。 • リ ソ ース ベースの配線 (デフ ォル ト ) : 使用可能な配線 リ ソ -ス か ら 選択 さ れ、 配線の実行時間は最短にな り ます。 • 最小遅延 (-delay オプシ ョ ン) : 使用可能な配線 リ ソ ース か ら 、 遅延が最小にな る よ う に選択 さ れます。 • 遅延 ド リ ブン (-max_delay お よ び -min_delay オプシ ョ ン) : 最大遅延、 最小遅延、 ま たはその両方に基づい て タ イ ミ ン グ要件が指定 さ れます。 指定の要件を満たす遅延のネ ッ ト が配線 さ れます。 自動遅延モー ド では、 タ イ ミ ン グ制約に基づ く 自動 タ イ ミ ン グ バジ ェ ッ ト を使用す る タ イ ミ ン グ ド リ ブ ンの フ ロ ー が実行 さ れますが、 デフ ォル ト フ ロ ー と は異な り 、 指定のネ ッ ト ま たはピ ンのみが配線 さ れます。 こ のモー ド は、 デ ザ イ ン全体を配線す る 前に ク リ テ ィ カル ネ ッ ト お よ びピ ン を配線す る ために使用 し ます。 こ れには、 セ ッ ト ア ッ プ ク リ テ ィ カル、 ホール ド ク リ テ ィ カル、 ま たはその両方であ る ネ ッ ト お よ びピ ンが含まれます。 自動遅延モー ド は、 多量の配線が含まれ る デザ イ ンの個々のネ ッ ト を配線する ための も のではあ り ません。 イ ン タ ラ ク テ ィ ブ配線を使用 し て く だ さ い。 多数のネ ッ ト お よ びピ ン を配線する 際に最高の結果を得る には、 優先順に配線 し て く だ さ い。 こ れに よ り 、 配線 リ ソ -ス の競合を回避で き ます。 配線では、 ネ ッ ト お よ びピ ンの配線を修正す る 場合で も 、 初期化のため、 最初の実行時間は長 く な り ます。 初期化時 間は、 デザ イ ンのサ イ ズお よ びデバ イ ス のサ イ ズが大き く な る と 長 く な り ます。 1 回初期化 さ れ る と 、 デザ イ ン を閉 じ て開き 直 さ ない限 り 、 再度初期化は実行 さ れません。 デザイ ン ルール チ ェ ッ ク 配線を開始する 前に、 次のデザ イ ン ルール チ ェ ッ ク (DRC) が実行 さ れます。 • report_drc コ マ ン ド を使用 し てユーザーが選択 し た DRC • Vivado 配線エン ジ ンに含まれ る ビル ト イ ンの DRC 配線の優先順位 Vivado 配線では、 まず次の よ う な グ ロ ーバル リ ソ ース が配線 さ れます。 • クロック • リ セッ ト • I/O • その他の専用 リ ソ ース こ のデフ ォ ル ト の優先順位は Vivado 配線に ビル ト イ ン さ れてい ます。 その後、 タ イ ミ ン グが ど れだけ ク リ テ ィ カル かに基づいて、 デー タ 信号に優先順位が付け ら れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 62 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 不適切な タ イ ミ ング制約の影響 配線後の タ イ ミ ン グ違反は、 タ イ ミ ン グが制約が不正なために発生 し てい る こ と があ り ます。 配線設定を変更 し てみ る 前に、 制約が適切であ る か ど う かを確認 し て く だ さ い。配線の前の配置済みデザ イ ンの タ イ ミ ン グ レ ポー ト を参照 し て、 タ イ ミ ン グ と 制約を確認 し ます。 次に、 よ く あ る 不適切な タ イ ミ ン グ制約の例を示 し ます。 • ク ロ ッ ク ド メ イ ン を ま たが る パ スや、 ホール ド タ イ ミ ン グに よ り 配線遅延が追加 さ れ る 複数サ イ ク ル パ ス • 密集 し てい る エ リ ア。 こ れは RTL 合成の フ ァ ン ア ウ ト 最適化や物理最適化に よ り 解決で き ます。 推奨 : 複数の配線オプシ ョ ン を試す前に、 タ イ ミ ン グ制約を確認 し て不正な も の を修正す る か、 ま たは RTL を変更す る こ と を考慮 し て く だ さ い。 配線 タ イ ミ ング サマ リ 配線プ ロ セ ス の最後に、 実際の配線遅延を使用 し て算出 さ れた予測 タ イ ミ ン グ サマ リ が レ ポー ト さ れます。 タ イ ミ ン グ サマ リ の算出には、 実行時間を短縮す る ため、 完全な タ イ ミ ン グ計算を実行す る のではな く 、 イ ン ク リ メ ン タ ル タ イ ミ ン グ ア ッ プデー ト が使用 さ れます。 そのため、 予測 WNS が実際の タ イ ミ ン グ よ り も 数ピ コ 秒ほ ど見積 も り が 悪い も のにな る 可能性があ り ます。 そのため、 実際の WNS は正であ る のに、 配線で レ ポー ト さ れ る WNS が負 と な る こ と があ り ます。 配線で レ ポー ト さ れ る 予測 WNS が負の場合、 メ ッ セージは ク リ テ ィ カル警告ではな く 警告 と な り ます。 ヒ ン ト : route_design -directive Explore を実行す る 場合は、 配線 タ イ ミ ン グ サマ リ はサ イ ンオ フ タ イ ミ ン グに基づき ます。 重要 : report_timing_summary を実行す る か、 route_design を –timing_summary オプシ ョ ン を使用 し て実 行 し 、 実際のサ イ ンオフ タ イ ミ ン グ を確認 し て く だ さ い。 route_design デザ イ ン を配線 し ます。 route_design の構文 route_design [-unroute] [-release_memory] [-nets <args>] [-physical_nets] [-pin <arg>] [-directive <arg>] [-tns_cleanup] [-no_timing_driven] [-preserve] [-delay] [-auto_delay] -max_delay <arg> -min_delay <arg> [-timing_summary] [-finalize] [-quiet] [-verbose] イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 63 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン -directive オプ シ ョ ンの使用 デザ イ ン全体を配線す る 際、 -directive オプシ ョ ン を使用する と 、 route_design コ マ ン ド を異な る モー ド で実 行で き ます。 一度に指定で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 競合す る 最適化が実行 さ れ る の を回避する ため、 ほかのほ と んど のオプシ ョ ン と は共に使用で き ません。 次のモー ド があ り ます。 • Explore 初期配線の後、 異な る ク リ テ ィ カル パ ス配線を試 し ます。 • NoTimingRelaxation 配線を完了する ために タ イ ミ ン グ を緩和 し ない よ う に し ます。 配線で タ イ ミ ン グ満たすのが困難であ る 場合、 元 の タ イ ミ ン グ制約を満たすため実行時間が長 く な り ます。 • MoreGlobalIterations 最終段階だけでな く 、 すべての段階で詳細な タ イ ミ ン グ解析を使用 し 、 タ イ ミ ン グ の向上が少 し であ っ て も グ ロ ーバル反復を実行 し ます。 • HigherDelayCost 配線の内部コ ス ト 関数を調整 し て反復実行で遅延に焦点を置き 、 実行時間が長 く な る 代わ り にパフ ォーマン ス を 向上 し ます。 • RuntimeOptimized 反復回数を少な く し 、 デザ イ ン パフ ォーマン ス よ り も 実行時間を短縮す る こ と を優先 し ます。 • Quick 最 も 高速な、 タ イ ミ ン グ ド リ ブンでない、 有効なデザ イ ン を得 る ために最低限の配置を実行 し ます。 • Default route_design をデフ ォル ト 設定で実行 し ます。 よ り よい配線結果を得る ために実行時間を長 く する 次の -directive 設定を使用す る と 、実行時間が長 く な る 代わ り に よ り よ い配線結果が得 ら れ る 可能性があ り ます。 • NoTimingRelaxation • MoreGlobalIterations • HigherDelayCost • AdvancedSkewModeling route_design コ マ ン ド のその他のオ プ シ ョ ンの使用 次に、 route_design コ マ ン ド のその他のオプシ ョ ンの詳細 と 値を示 し ます。 • -nets 指定 し たネ ッ ト の リ ス ト に対 し てのみ処理を実行 し ます。 ネ ッ ト オブジ ェ ク ト の Tcl リ ス ト を引数 と し て指定 し ます。 ネ ッ ト は、 ネ ッ ト 名の文字列値で指定す る のではな く 、 get_nets コ マ ン ド を使用 し てネ ッ ト オブジ ェ ク ト と し て指定する 必要があ り ます。 • -pin 指定し た ピ ンに対 し てのみ処理を実行 し ます。 ピ ン オブジ ェ ク ト を引数 と し て指定 し ます。 ピ ンは、 ピ ン名の文 字列値で指定する のではな く 、get_pins コ マン ド を使用 し て ピ ン オブジ ェ ク ト と し て指定する 必要があ り ます。 • -delay デフ ォ ル ト では、 個々のネ ッ ト お よ びピ ンは、 タ イ ミ ン グ ク リ テ ィ カルか ど う かにかかわ ら ず、 使用可能な リ ソ ース を使用 し て最短の実行時間で配線 さ れます。 -delay オプシ ョ ン を使用す る と 、 遅延が最小にな る よ う に 配線 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 64 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン • -min_delay お よ び -max_delay こ れ ら のオプシ ョ ンは -pin オプシ ョ ン を使用 し てい る 場合にのみ使用可能で、 タ ーゲ ッ ト 遅延を ピ コ 秒で指定 し ま す。 -max_delay オプシ ョ ンは、 指定の ピ ンの配線に使用す る 最大 slow-max コ ーナー遅延を指定 し ます。 同様に、 -min_delay オプシ ョ ンは最小 fast-min コ ーナー遅延を指定 し ます。 両方のオプシ ョ ン を使用 し て、 遅 延の範囲を指定で き ます。 • -auto_delay -nets ま たは -pin オプシ ョ ン と 共に使用 し 、 タ イ ミ ン グ制約 ド リ ブ ン モー ド で配線 し ま す。 タ イ ミ ン グ バ ジ ェ ッ ト は タ イ ミ ン グ制約か ら 自動的に算出 さ れ る ので、 -min_delay、 -max_delay、 ま たは -delay と 共に 使用する こ と はで き ません。 • -preserve 既存の配線を保持 し てデザ イ ン全体を配線 し ます。 -preserve オプシ ョ ン を使用 し ない場合、 ク リ テ ィ カル パ ス の タ イ ミ ン グ を向上す る ため、 既存の配線が解除 さ れ、 配線 し 直 さ れ る こ と があ り ます。 こ のオプシ ョ ンは、 ク リ テ ィ カル ネ ッ ト を事前に配線 し 、配線 リ ソ ース に優先的にア ク セ ス で き る よ う にす る 場合に よ く 使用 さ れま す。 こ れ ら の配線が完了 し た ら 、 -preserve オプシ ョ ン を使用 し て、 デザ イ ンの残 り の部分が配線 さ れ る と き に完了 し た配線が変更 さ れない よ う に し ます。こ のオプシ ョ ンは、FIXED_ROUTE お よ び IS_ROUTE_FIXED ネ ッ ト プ ロ パテ ィ と は無関係で、使用 し た route_design コ マン ド の実行でのみ配線が保持 さ れます。-preserve オプシ ョ ンは -directive オプシ ョ ン と 共に使用で き ますが、 -directive Explore オプシ ョ ンは配置を変 更 し 、 その結果配線 も 変更する ので、 -preserve オプシ ョ ン と 共に使用す る こ と はで き ません。 • -unroute デザ イ ン全体、 あ る いは -nets ま たは -pin オプシ ョ ン を使用 し てい る 場合はネ ッ ト お よ びピ ンの配線を解除 し ます。FIXED_ROUTE プ ロ パテ ィ が設定 さ れてい る ネ ッ ト の配線は解除 さ れません。FIXED_ROUTE プ ロ パテ ィ が設定 さ れてい る ネ ッ ト の配線を解除する には、 まずプ ロ パテ ィ を削除する 必要があ り ます。 • -timing_summary デフ ォル ト では、 内部予測 タ イ ミ ン グに基づいた タ イ ミ ン グ サマ リ が出力 さ れますが、見積 も り の悪い遅延のた め、実際の配線後の タ イ ミ ン グ と は異な る 場合があ り ます。-timing_summary オプシ ョ ン を使用す る と 、Vivado ス タ テ ィ ッ ク タ イ ミ ン グ解析機能が呼び出 さ れ、 実際の配線遅延に基づ く タ イ ミ ン グ サマ リ が レ ポー ト さ れ ま す。 ス タ テ ィ ッ ク タ イ ミ ン グ解析のため、 実行時間は長 く な り ま す。 -directive Explore オプシ ョ ン を使 用する 場合、 -timing_summary オプシ ョ ンは無視 さ れます。 -directive Explore オプシ ョ ン を使用す る と 、 -timing_summary オプシ ョ ン を使用す る か ど う かにかか わ ら ず、 最 も 正確な タ イ ミ ン グ ア ッ プデー ト を得 る ため Vivado ス タ テ ィ ッ ク タ イ ミ ン グ解析機能が呼び出 さ れ ます。 • -tns_cleanup 実行時間を最短にする ため、 配線では ト ー タ ル ネガテ ィ ブ ス ラ ッ ク (TNS) 削減す る こ と ではな く ワース ト ネガ テ ィ ブ ス ラ ッ ク (WNS) パ ス を向上す る こ と に焦点が置かれます。 -tns_cleanup オプシ ョ ン を使用す る と 、 配 線の最後に追加の フ ェ ーズが実行 さ れ、 タ イ ミ ン グが満た さ れていないすべてのパ ス を修正 し て TNS を削減す る よ う 試み ら れます。 TNS は削減 さ れ る 可能性があ り ますが、 実行時間が長 く な る こ と があ り 、 WNS には影響 し ない場合があ り ます。 配線の後に配線後の物理最適化を実行する 場合は、 配線に -tns_cleanup オプシ ョ ン を使用 し て く だ さ い。 こ のオプシ ョ ン を使用す る と 、 物理最適化で WNS パス に焦点が置かれ、 配線で修正可能 な ク リ テ ィ カ ルで な いパ ス に無駄な エ フ ォ ー ト が費や さ れ る の を 防 ぐ こ と が で き ま す。 こ の オ プ シ ョ ン は、 -directive オプシ ョ ン と 共に使用で き ます。 • -physical_nets 論理 0 お よ び論理 1 の配線のみに処理を実行 し ます。 デザ イ ンのすべての定数値に適用 さ れます。 -unroute オ プシ ョ ン と 共に使用で き ます。 定数 0 お よ び 1 を接続す る と 、 物理デバ イ ス に対応す る 論理ネ ッ ト がないので、 こ れ ら のネ ッ ト は -nets お よ び -pin オプシ ョ ン を使用 し て確実に配線ま たは配線解除で き ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 65 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン • -release_memory 配線初期化の後、 最適なパフ ォーマン ス のため、 配線デー タ は メ モ リ に保持 さ れます。 こ のオプシ ョ ン を使用す る と 、 デー タ が メ モ リ か ら 削除 さ れ、 メ モ リ がオペレーテ ィ ン グ シ ス テ ムに返 さ れます。 ほ と ん ど の場合、 こ の オプシ ョ ン を使用する 必要はあ り ません。 非常に大型のデザ イ ン を処理す る 場合な ど、 配線の メ モ リ 使用量を手 動で制御する 必要があ る 場合に使用 し ます。 • -finalize 配線を イ ン タ ラ ク テ ィ ブに実行 し てい る 場合、 route_design -finalize を指定 し て部分的に配線 さ れた接 続を完了で き ます。 • -no_timing_driven タ イ ミ ン グ ド リ ブン配線をオ フ に し ます。 主にデザ イ ンの配線性を テ ス ト す る ために使用 し ます。 ヒ ン ト : UltraScale デザ イ ン で ク ロ ッ ク ネ ッ ト が配線 さ れてい ない場合、 place_design を実行す る 前に ク ロ ッ ク ネ ッ ト を配線 し 直す必要があ り ます。 こ れに よ り 、 ク ロ ッ ク ネ ッ ト の配線が有効な も のにな り ます。 こ の制限は、 今 後の リ リ ース で削除 さ れ る 予定です。 配線のサン プル ス ク リ プ ト 1 # Route design, save results to checkpoint, report timing estimates route_design write_checkpoint -force $outputDir/post_route report_timing_summary -file $outputDir/post_route_timing_summary.rpt こ のサ ンプル ス ク リ プ ト では、 次の処理を実行 し てい ます。 • デザ イ ン を配線 し ます。 • 配線が完了 し た ら 、 デザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し ます。 • タ イ ミ ン グ サマ リ レ ポー ト を生成 し ます。 • レ ポー ト を指定 し た フ ァ イ ルに記述 し ます。 配線は、 イ ン プ リ メ ン テーシ ョ ン run の一部 と し て、 ま たは Tcl ス ク リ プ ト の一部 と し て place_design の後に route_design コ マ ン ド を使用 し て実行 し ます。 配線 ロ グに、 現在の フ ェ ーズ (初期化、 グ ロ ーバル配線反復、 タ イ ミ ン グ ア ッ プデー ト ) な ど の進捗状況を示す情報 が示 さ れます。 グ ロ ーバル配線の最後には、 配線に よ り 適切なデザ イ ン を達成す る ために試行 し てい る 間、 現在オー バー ラ ッ プ し てい る ネ ッ ト の数が定期的にア ッ プデー ト さ れます。 次に例を示 し ます。 Phase 4.1 Global Number of Nodes Number of Nodes Number of Nodes Number of Nodes Iteration 0 with overlaps with overlaps with overlaps with overlaps = = = = 435 3 1 0 フ ロ ー中 タ イ ミ ン グ ア ッ プデー ト が示 さ れ、 タ イ ミ ン グ ク ロ ージ ャ の進捗状況がわか り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 66 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン タ イ ミ ン グ サマ リ [Route 35-57] Estimated Timing Summary | WNS=0.105 | TNS=0 | WHS=0.051 | THS=0 説明 : ° WNS : ワース ト ネガテ ィ ブ ス ラ ッ ク ° TNS : ト ー タ ル ネガテ ィ ブ ス ラ ッ ク ° WHS : ワース ト ホール ド ス ラ ッ ク ° THS : ト ー タ ル ホール ド ス ラ ッ ク 注記 : 中間の配線フ ェーズでは、 ホール ド タ イ ム解析が ス キ ッ プ さ れ る 場合があ り ます。 ホール ド タ イ ム解析が実行 さ れ る 場合、 WHS お よ び THS に対 し て 「N/A」 と い う 値が示 さ れます。 配線が完了する と 、 配線 リ ソ ース の使用率サマ リ と 最終的な予測 タ イ ミ ン グ サマ リ が レ ポー ト さ れます。 次に、 配線 リ ソ ース使用率サマ リ の例を示 し ます。 配線 リ ソ ース使用率サマ リ 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 配線のサン プル ス ク リ プ ト 2 # Get the nets in the top 10 critical paths, assign to $preRoutes set preRoutes [get_nets -of [get_timing_paths -max_paths 10]] # route $preRoutes first with the smallest possible delay route_design -nets [get_nets $preRoutes] -delay # preserve the routing for $preRoutes and continue with the rest of the design route_design -preserve こ のサ ンプル ス ク リ プ ト では、 まずい く つかの ク リ テ ィ カル ネ ッ ト を配線 し 、 その後デザ イ ン全体を配線 し てい ま す。 個々のネ ッ ト お よ びピ ン ( こ の場合はネ ッ ト ) を配線す る 例を示 し てい ます。 こ れは通常、 次の よ う な場合な ど、 特定の配線問題を修正する ために実行 し ます。 • 完全に配線する 前に、 ク リ テ ィ カル ネ ッ ト お よ び ロ ッ ク ダ ウ ン リ ソ ース を事前に配線 • ク リ テ ィ カルではないネ ッ ト の配線を手動で解除 し て、ク リ テ ィ カル ネ ッ ト に よ り 多 く の配線 リ ソ ース を使用で き る よ う にする 最初の route_design コ マン ド では、配線機能が初期化 さ れてか ら 、 ク ロ ッ ク な ど の重要なネ ッ ト が配線 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 67 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 配線のサン プル ス ク リ プ ト 3 # get nets of the top 10 setup-critical paths set preRoutes [get_nets -of [get_timing_paths -max_paths 10]] # get nets of the top 10 hold-critical paths lappend preRoutes [get_nets -of [get_timing_paths -hold -max_paths 10]] # route $preRoutes based on timing constraints route_design -nets [get_nets $preRoutes] -auto_delay # preserve the routing for $preRoutes and continue with the rest of the design route_design -preserve こ のサ ンプル ス ク リ プ ト では、 サ ンプル ス ク リ プ ト 2 と 同様に、 まずい く つかの ク リ テ ィ カル ネ ッ ト を配線 し てそ の後デザ イ ン全体を配線 し てい ますが、 -delay オプシ ョ ンではな く -auto_delay オプシ ョ ン を使用 し てい る 点が 異な り ます。 ク リ テ ィ カル ネ ッ ト の タ イ ミ ン グ ド リ ブン配線が実行 さ れ、 精度は増 し ますが実行時間が長 く な り ま す。 こ れは、 ネ ッ ト がセ ッ ト ア ッ プ ク リ テ ィ カル パ ス と ホール ド ク リ テ ィ カル パ ス の両方に関連 し てお り 、 セ ッ ト ア ッ プ と ホール ド の両方の要件を満たすために配線があ る 遅延範囲内にな る 必要があ る 場合に特に有益です。 配線のサン プル ス ク リ プ ト 4 route_design # Unroute all the nets in u0/u1, and route the critical nets first route_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 ネ ッ ト は配線 し 直 さ れます。 表 2-5 に、 例の コ マン ド を ま と め ます。 中間配線結果 配線を完了で き ない場合で も 、 配線処理は継続 さ れ、 デバ ッ グに使用で き る よ う にで き る だけ完成に近いデザ イ ンが 生成 さ れます。 配線が完了 し ない場合、 手動の変更が必要な場合があ り ます。 report_route_status コ マン ド を使用す る と 、配線エ ラ ーのあ る ネ ッ ト が レ ポー ト さ れます。詳細は、『UltraFast™ 設計手法ガ イ ド (Vivado Design Suite 用)』 (UG949) [参照 13] の第 5 章の 「配線 (route_design)」 セ ク シ ョ ン を参照 し て く だ さ い。 配線の密集があ る 場合は、 「Phase 3.2 Budgeting」 中に レ ポー ト さ れます。 密集の程度は 「levels」 に示 さ れます。 最大 値は 7 です配線方向 (North (北)、 East (東)、 South (南)、 および West (西)) がレ ポー ト さ れます。 北方向の密集レベルが 7 の場合、 高 さ が 2^7 (128) 個の タ イ ルにお よぶ正方形の領域で、 北方向の配線の使用率が 100% を超えてい る こ と を 示し ます。 INT_xxx の数値は、 [Device] ウ ィ ン ド ウ で [Routing Resources] をオンに し た と き に表示 さ れ る イ ン ターコ ネ ク ト 配線 タ イ ルの座標です。 表 2-5 : 配線中のデザイ ン解析で使用 さ れる コ マ ン ド コ マン ド 機能 report_route_status ネ ッ ト の配線ス テー タ ス を レ ポー ト し ます。 report_timing パ ス エン ド ポ イ ン ト 解析を実行 し ます。 Tcl レ ポー ト コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 68 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン イ ン ク リ メ ン タ ル コ ンパイル イ ン ク リ メ ン タ ル コ ンパ イ ルは、 完成に近づいてお り 、 小 さ な変更が必要なデザ イ ンに適 し たア ド バン ス フ ロ ーで す。 少 し の変更を加え て再合成する 場合に こ の フ ロ ーを使用する と 、 次の よ う な利点があ り ます。 • 配置配線の実行時間が短縮 さ れます。 • 基準デザ イ ンか ら の配置配線が再利用 さ れ、 QoR (結果の品質) の予測性が保持 さ れます。 こ の フ ロ ーは、 変更 さ れたデザ イ ン と 基準デザ イ ンが 95% 以上類似 し てい る 場合に最 も 効果的です。 図 2-18 に、 イ ン ク リ メ ン タ ル コ ンパ イ ル デザ イ ン フ ロ ーを示 し ます。 X-Ref Target - Figure 2-18 図 2-18 : イ ン ク リ メ ン タ ル コ ンパイル デザイ ン フ ロー イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 69 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン イ ン ク リ メ ン タ ル コ ンパイル フ ローのデザイ ン イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ー (図 2-18) では、基準デザ イ ン と 現在のデザ イ ンの 2 つのデザ イ ン を使用 し ます。 基準デザイ ン 基準デザ イ ンは、 通常はデザ イ ンの合成、 配置、 配線が完了 し た以前のバージ ョ ンです。 配置、 配線、 ま たはその両方が どれだけ含まれたチ ェ ッ ク ポ イ ン ト で も 使用可能です。 基準デザ イ ンには、 タ イ ミ ン グ ク ロ ージ ャ を達成す る ために コ ー ド 変更、 フ ロ アプ ラ ン、 制約変更 し た際のデザ イ ン の実行結果であ る デザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) を使用で き ます。 現在のデザ イ ン を 読み込んだ ら 、 read_checkpoint -incremental <dcp> コ マ ン ド を 使用 し て基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込みます。 -incremental オプシ ョ ン を使用 し て基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込 む と 、 次の配置配線で イ ン ク リ メ ン タ ル コ ンパ イ ル デザ イ ン フ ロ ーが イ ネーブルにな り ます。 詳細は、 71 ページの 「基準デザ イ ン と 現在のデザ イ ンの類似性の確認」 を参照 し て く だ さ い。 現在のデザイ ン 現在のデザ イ ンは、 基準デザ イ ンに少 し だけ変更を加え た も のです。 次の よ う な変更が含まれます。 • RTL の変更 • ネ ッ ト リ ス ト の変更 • RTL の変更 と ネ ッ ト リ ス ト の変更の両方 イ ン ク リ メ ン タ ル配置配線の実行 変更 さ れた現在のデザ イ ン を最初に メ モ リ に読み込み、 その後基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込みます。 イ ン ク リ メ ン タ ル コ ンパ イ ル プ ロ セ ス の重要な要素は、 イ ン ク リ メ ン タ ル配置配線です。 基準デザ イ ン チ ェ ッ ク ポ イ ン ト は、 ネ ッ ト リ ス ト 、 制約、 配置配線を含む物理デー タ で構成 さ れます。 • 現在のデザ イ ンのネ ッ ト リ ス ト は基準デザ イ ン と 比較 さ れ、 一致する セルお よ びネ ッ ト が検出 さ れます。 • 基準デザ イ ン チ ェ ッ ク ポ イ ン ト か ら の配置は、 現在のデザ イ ンの一致セルを配置す る ために再利用 さ れます。 • 基準デザ イ ン チ ェ ッ ク ポ イ ン ト か ら の配線は、 一致ネ ッ ト を配線する ために ロ ー ド ピ ン ご と に再利用 さ れます。 ネ ッ ト リ ス ト の変更に よ り ロ ー ド ピ ンがな く な っ た場合、 その配線は破棄 さ れ る ので、配線の一部のみが再利用 さ れ る こ と も あ り ます。 イ ン ク リ メ ン タ ル配置お よ び イ ン ク リ メ ン タ ル配線では、 ネ ッ ト リ ス ト の配線性が向上す る 場合、 ま たは基準デザ イ ン と 同等のパフ ォーマ ン ス が保持 さ れ る 場合、 セルの配置お よ びネ ッ ト の配線が再利用 さ れ る 代わ り に破棄 さ れ る こ と があ り ます。 基準デザ イ ン と 現在のデザ イ ンの間で一致 し ないデザ イ ン オブジ ェ ク ト は、イ ン ク リ メ ン タ ル配置が完了 し た後に配 置 さ れ、 既存の配線が再利用 さ れた後に配線 さ れます。 複数の フ ァ ン アウ ト があ るネ ッ ト Vivado 配線では、 複数の フ ァ ン ア ウ ト があ る ネ ッ ト に対 し ては詳細な一致比較が実行 さ れ、 各配線セグ メ ン ト を適切 に再利用ま たは廃棄で き ます。 配置配線の効率的な再利用 基準デザ イ ンか ら の配置配線が効果的に再利用で き る か ど う かは、 2 つのデザ イ ンの差異に よ り ます。 小 さ な変更に よ っ て、 デザ イ ンが大幅に変わ っ て し ま う 場合 も あ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 70 第 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 は、 一致 し てい る 論理オブジ ェ ク ト の物理デー タ の再利用を示 し 、 セル、 ポー ト 、 ネ ッ ト の再利用率、 基準デザ イ ンか ら の配置お よ び配線情報が含まれます。 再利用 さ れなかっ たセルに対 し ては、 ネ ッ ト リ ス ト に含ま れ る 新規セル (基準デザ イ ン に存在 し ないセル) お よ びデザ イ ン の変更に よ り 配置が不正にな っ た ため 配置が破棄 さ れたセルが示 さ れます。 ネ ッ ト に対 し ては、 完全に再利用 さ れた配線、 一部が再利用 さ れた配線、 新規 ネ ッ ト (基準デザ イ ンに存在 し ないネ ッ ト ) が示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 71 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 次に、 再利用レ ポー ト の例を示 し ます。 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% 未満にな る と 、 イ ン ク リ メ ン タ ル配置配線を使用す る 利点はそれほ ど な く な る か、 ま っ た く な く な る 可能性があ り ます。 セルの再利用率が 70% 未満の場合は、イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ーの使用に よ る 実行時間お よ び 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. イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 72 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 実行時間の短縮に影響する要素 次の要素が実行時間の短縮に影響 し ます。 • タ イ ミ ン グ ク リ テ ィ カル エ リ アの変更量。 ク リ テ ィ カル パ ス の配置配線を再利用で き ない場合、 タ イ ミ ン グ を 保持する のにエフ ォー ト が よ り 必要 と な り ます。 ま た、 デザ イ ンの小 さ な変更に よ り 基準デザ イ ンに存在 し ない タ イ ミ ン グ問題が発生 し た場合、 エ フ ォー ト が さ ら に必要 と な っ て実行時間が長 く な る 可能性があ り 、 デザ イ ン の タ イ ミ ン グが満た さ れない こ と も あ り ます。 • 配置配線の初期化時間。 配置配線時間が短い場合、 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 design opt_design read_checkpoint -incremental <dcp_file> place_design phys_opt_design; #if used in reference design route_design イ ン ク リ メ ン タ ル配置は、 基準デザ イ ンのデザ イ ン オブジ ェ ク ト と 現在のデザ イ ン のデザ イ ン オブジ ェ ク ト を比較 する Vivado ツールの機能を利用 し ます。 ただ し 、 次の opt_design コ マ ン ド オプシ ョ ン を使用 し た場合、 基準デザ イ ン と 現在のデザ イ ンの間でセル名の一致が低 く な り 、 配置配線デー タ の一致 も 低 く な り ます。 • -resynth_area • -resynth_seq_area • -directive ExploreArea • -directive ExploreAreaSequential 推奨 : イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ーを実行する 際は、上記 4 つの opt_design コ マン ド オプシ ョ ン を使用 し ない よ う に し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 73 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン プ ロ ジ ェ ク ト モー ド でのイ ン ク リ メ ン タ ル コ ンパイルの使用 プ ロ ジ ェ ク ト モー ド では、 [Design Runs] ウ ィ ン ド ウ で イ ン ク リ メ ン タ ル コ ンパ イ ル オプシ ョ ン を設定で き ます。 イ ン ク リ メ ン タ ル コ ンパ イ ル モー ド を設定す る には、 次の手順に従い ます。 1. [Design Runs] ウ ィ ン ド ウ で 1 つの run を右 ク リ ッ ク し ます。 2. [Set Incremental Compile] を ク リ ッ ク し ます。 3. [Set Incremental Compile] ダ イ ア ロ グ ボ ッ ク ス で、 基準デザ イ ン チ ェ ッ ク ポ イ ン ト を選択 し ます。 run で イ ン ク リ メ ン タ ル コ ンパ イ ル モー ド が イ ネーブルにな り ます。 重要 : デザ イ ン run か ら チ ェ ッ ク ポ イ ン ト を選択 し た場合、 その run が リ セ ッ ト さ れ る と 削除 さ れます。 デザ イ ン run か ら チ ェ ッ ク ポ イ ン ト を選択する 場合は、 基準チ ェ ッ ク ポ イ ン ト と し て選択す る 前に、 別のデ ィ レ ク ト リ に コ ピー し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 74 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 図 2-19 に、 [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Implementation] ページで [Incremental compile] を設定 し てい る 例 を示 し ます。 X-Ref Target - Figure 2-19 図 2-19 : イ ン ク リ メ ン タ ル コ ンパイルの設定 イ ン ク リ メ ン タ ル配置配線が完了 し た ら 、 Vivado ツールで生成 さ れた メ ッ セージ を確認で き ます。 注記 : イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ーを実行 し てい る 場合、 イ ンプ リ メ ン テーシ ョ ン コ マ ン ド の -directive オプシ ョ ンお よ びス ト ラ テジは、 目的が異な る ため無視 さ れます。 現在の run で イ ン ク リ メ ン タ ル コ ンパ イ ルをデ ィ ス エーブルにする には、 次の手順に従い ます。 1. [Set Incremental Compile] ダ イ ア ロ グ ボ ッ ク ス で [Use checkpoint] フ ィ ール ド を空にする か、ま たは [Implementation Run Properties] ウ ィ ン ド ウ の [Properties] ビ ュ ーで [INCREMENTAL_CHECKPOINT] フ ィ ール ド を空に し ます。 2. Tcl コ ン ソ ールで次の コ マ ン ド を実行 し ます。 reset_property INCREMENTAL_CHECKPOINT [current_run] イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 75 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 余っ た配線セグ メ ン ト 現在のデザ イ ンか ら 削除 さ れていた り 、 配置時に移動 さ れてい る セルのため、 基準デザ イ ンか ら の配線セグ メ ン ト に 余る も のが出て し ま う こ と があ り ます。 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 design read_checkpoint -incremental reference.dcp; # apply reference data to current design write_checkpoint incr.dcp; # save a snapshot of the current design read_checkpoint incr.dcp place_design write_checkpoint top_placed.dcp; # save incremental placement result route_design read_checkpoint incr.dcp を実行す る と 、Vivado ツールで イ ン ク リ メ ン タ ル デー タ が存在す る こ と が検出 さ れ、 その後の place_design お よ び route_design コ マン ド は イ ン ク リ メ ン タ ル モー ド で実行 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 76 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 次の コ マ ン ド シーケ ン ス では、 Vivado Design Suite を終了 し て再起動 し て も 、 route_design コ マン ド は基準チ ェ ッ ク ポ イ ン ト reference.dcp を使用 し て イ ン ク リ メ ン ト モー ド で実行 さ れます。 read_checkpoint top_placed.dcp phys_opt_design route_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.*} ] -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.*} ] イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 77 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン -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 に設定 さ れます。 イ ン ク リ メ ン タ ル コ ンパイル後のア ド バン ス解析 Vivado ツールでは、 再利用のア ド バン ス解析用に レ ポー ト 、 タ イ ミ ン グ ラ ベル、 お よ びオブジ ェ ク ト プ ロ パテ ィ が 提供 さ れてい ます。 再利用レポー ト report_incremental_reuse コ マ ン ド には、 詳細な解析用に report_utilization と 同様のオプシ ョ ンがあ り ます。 -cells <list of cells> -cells オプシ ョ ン を使用す る と 、 デザ イ ン全体の再利用ではな く 、 指定のセルのみの再利用が レ ポー ト さ れます。 例 : ブ ロ ッ ク RAM のみの再利用を レ ポー ト す る 場合 report_incremental_reuse -cells [get_cells -hierarchical -filter { PRIMITIVE_TYPE =~ BMEM.bram.*} ] イ ン ク リ メ ン タ ル再利用サマ リ 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 の例を示 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 78 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 注記 : こ の レ ポー ト 例は、 ページに収め る ため、 切 り 詰め ら れてい ます。 階層イ ン プ リ メ ン テーシ ョ ン再利用サマ リ 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 最上位階層か ら 各セルの再利用ス テー タ ス が レ ポー ト さ れ、 その後各階層レベルが レ ポー ト さ れます。 最初のサブモ ジ ュ ールに含まれ る 最下位階層に到達する と 、 次のサブモジ ュ ールに進みます。 こ の例では、 最上位セルは bft で、 再利用 さ れたセルは合計 3,607 個、 新規セルは 9 個あ り ます。 bft がかっ こ で囲ま れた行は、 bft に含まれ、 そのサブモジ ュ ールに含まれていないセルの再利用ス テー タ ス を示 し ます。 3,607 個のセル の う ち、 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 (接続に ロ ケーシ ョ ンが固定 さ れた イ ン ス タ ン ス があ る ため破棄) イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 79 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン -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 | . . . タ イ ミ ング レ ポー ト イ ン ク リ メ ン タ ル配置配線が完了 し た ら 、 タ イ ミ ン グ と セルお よ びネ ッ ト の再利用に関す る 詳細を解析で き ます。 タ イ ミ ン グ レ ポー ト のオブジ ェ ク ト に、 物理デー タ が ど の よ う に再利用 さ れたかが示 さ れます。 こ れに よ り 、 デザ イ ン のア ッ プデー ト が ク リ テ ィ カル パ ス に影響 し てい る か ど う か を判断で き ます。 タ イ ミ ン グ レ ポー ト に イ ン ク リ メ ン タ ル フ ロ ーの詳細を 表示す る には、 report_timing -label_reused オプ シ ョ ン を使用 し ます。 こ のオプシ ョ ン を使用す る と 、 入力ピ ンお よび出力ピ ンに再利用 ラ ベルが表示 さ れ、 ピ ンのセ ルお よ びネ ッ ト に再利用 さ れた物理デー タ の量が示 さ れます。次に、 タ イ ミ ン グ レ ポー ト に含まれ る ラ ベルの説明を 示 し ます。 • (R) : セル配置 と ネ ッ ト 配線の両方が再利用 さ れてい ます。 • (NR) : セル配置 と ピ ン配線の ど ち ら も 再利用 さ れてい ません。 • (PNR) : セル配置は再利用 さ れてい ますが、 ピ ンへの配線は再利用 さ れてい ません。 • (N) : ピ ン、 セル、 ま たはネ ッ ト は新 し いデザ イ ン オブジ ェ ク ト で、 基準デザ イ ンには含まれません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 80 第 2 章 : デザイ ンのイ ン プ リ メ ン テーシ ョ ン 次に例を示 し ます。 ------------------------------------------------------(NR)SLICE_X46Y42 FDRE (Prop_fdre_C_Q) 0.259 -1.862 net (fo=8, estimated) 0.479 -1.383 (R)SLICE_X46Y43 (R)SLICE_X46Y43 LUT4 (Prop_lut4_I1_O) 0.043 -1.340 net (fo=32, routed) 1.325 -0.014 (R)SLICE_X44Y39 r (PNR)SLICE_X44Y39 MUXF7 (Prop_muxf7_S_O) 0.154 0.140 fftI/wbcI/wbDOut_reg[0]i1/O net (fo=1, routed) 0.000 0.140 (PNR)SLICE_X44Y39 ------------------------------------------------------- ------------------fftI/fifoSel_reg[5]/Q fftI/n_fifoSel_reg[5] r fftI/wbDOut_reg[31]i5/I1 r fftI/wbDOut_reg[31]i5/O fftI/wbDOut_reg[31]i5 fftI/wbcI/wbDOut_reg[0]i1/S r r r fftI/wbcI/wbDOut_reg[0]i1 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 (ネ ッ ト リ ス ト の変更に よ る 不正な配置を破棄) ネ ッ ト に可能な値は次の と お り です。 ° REUSED ° NON_REUSED ° PARTIALLY_REUSED イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 81 第 3章 イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 イ ン プ リ メ ン テーシ ョ ン run の監視 イ ンプ リ メ ン テーシ ョ ン run は、 次の よ う に監視で き ます。 • コ ンパ イ ル情報を読む • [Messages] ウ ィ ン ド ウ で警告お よ びエ ラ ーを確認 • プ ロ ジ ェ ク ト サマ リ を表示 • [Design Runs] ウ ィ ン ド ウ を開 く 合成 run お よ び イ ンプ リ メ ン テーシ ョ ン run の ス テー タ スは、 [Log] ウ ィ ン ド ウ で確認 し ます。 run ス テー タ ス表示 進行中の run の ス テー タ スは、 2 つの方法で表示 さ れます。 こ れ ら の ス テー タ ス表示には、 run が進行中であ る こ と が 示 さ れ る ほか、 こ こ か ら 必要に応 じ て キ ャ ンセルで き ます。 • Vivado® IDE の右上に、 プ ロ ジ ェ ク ト ス テー タ ス バーに表示 さ れ る run ス テー タ ス イ ン ジ ケー タ ーがあ り ます (図 3-1 を参照)。 run が進行中であ る こ と が動 く バーで示 さ れ ます。 [Cancel] ボ タ ン を ク リ ッ ク す る と 、 run を停 止で き ます。 X-Ref Target - Figure 3-1 図 3-1 : run ステー タ ス イ ン ジケー タ ー • run ス テー タ ス イ ン ジ ケー タ ーは、 [Design Runs] ウ ィ ン ド ウ (図 3-2) に も 表示 さ れます。 run 名の横に、 run が進 行中であ る こ と を示す円形の矢印が表示 さ れます (図の赤丸)。 run を右 ク リ ッ ク し てポ ッ プア ッ プ メ ニ ュ ーか ら [Reset Run] を ク リ ッ ク す る と 、 run を キ ャ ンセルで き ます。 X-Ref Target - Figure 3-2 図 3-2 : イ ン プ リ メ ン テーシ ョ ン run のス テー タ ス表示 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 82 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 run のキ ャ ン セル/ リ セ ッ ト 進行中の run を [Cancel] ボ タ ン ま たは [Reset Run] コ マ ン ド でキ ャ ンセルする と 、 キ ャ ンセル し た run 用に作成 さ れた run フ ァ イ ルをすべて削除す る か ど う か確認す る メ ッ セージ (図 3-3) が表示 さ れます。 X-Ref Target - Figure 3-3 図 3-3 : [Cancel Implementation] ダ イ ア ログ ボ ッ ク ス [Delete Generated Files] を オンにす る と 、 ロ ーカルのプ ロ ジ ェ ク ト デ ィ レ ク ト リ か ら run デー タ が削除 さ れます。 推奨 : キ ャ ン セル し た run で作成 さ れたデー タ はすべて削除 し て、 今後の run で競合が発生 し ない よ う にす る こ と を お勧め し ます。 [Log] ウ ィ ン ド ウのログ情報の表示 run を 実 行す る と 、 [Log] ウ ィ ン ド ウ が 開 き 、 標準 出力 メ ッ セ ー ジ が 表示 さ れ ま す。 [Log] ウ ィ ン ド ウ に は、 place_design や route_design な ど の各 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の進行状況 も 表示 さ れます。 [Log] ウ ィ ン ド ウ (図 3-4) で異な る メ ッ セージが ど こ か ら 表示 さ れてい る かを確認 し 、イ ンプ リ メ ン テーシ ョ ン run の デバ ッ グに役立て る こ と がで き ます。 X-Ref Target - Figure 3-4 図 3-4 : [Log] ウ ィ ン ド ウ 出力の停止 [Log] ウ ィ ン ド ウ で [Pause output] ボ タ ン を ク リ ッ ク す る と 、 出力を停止で き ます。 出力を停止す る と 、 イ ンプ リ メ ン テーシ ョ ンの実行中に ロ グ情報を読む こ と がで き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 83 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 プ ロ ジ ェ ク ト ス テー タ スの表示 Vivado IDE では、 プ ロ ジ ェ ク ト ス テー タ ス と 次の手順が複数の方法で示 さ れ ま す。 プ ロ ジ ェ ク ト ス テー タ ス には、 主なデザ イ ン タ ス ク の結果のみが レ ポー ト さ れます。 プ ロ ジ ェ ク ト ス テー タ ス は [Project Summary] と ス テー タ ス バーに表示 さ れ、 プ ロ ジ ェ ク ト を開いた と き 、 デザ イ ン フ ロ ー コ マン ド を実行中に、 プ ロ ジ ェ ク ト の ス テー タ ス をすばや く 判断で き ます。 次の ス テー タ ス が示 さ れます。 • RTL エ ラ ボ レーシ ョ ン • 合成 • イ ンプ リ メ ン テーシ ョ ン • ビ ッ ト ス ト リ ーム生成 プ ロ ジ ェ ク ト ス テー タ ス バー プ ロ ジ ェ ク ト ス テー タ スは、 Vivado IDE の右上の プ ロ ジ ェ ク ト ス テー タ ス バーに表示 さ れます。 合成、 イ ンプ リ メ ン ト 、 ビ ッ ト ス ト リ ームの生成を実行す る と 、 プ ロ ジ ェ ク ト ス テー タ ス バーにその結果が示 さ れます。 プ ロ セ ス でエ ラ ーが発生 し た場合は、 赤色の文字で表示 さ れます。 Out-of-Date ス テー タ ス 合成ま たは イ ンプ リ メ ン テーシ ョ ン を完了 し た状態で ソ ース フ ァ イ ルま たはデザ イ ン制約を変更す る と 、プ ロ ジ ェ ク ト ス テー タ ス が図 3-5 に示す よ う に 「Out-of-Date」 と 表示 さ れます。 こ れは、 プ ロ ジ ェ ク ト が最新でな く 、 更新が必要であ る こ と を示 し ます。 デザ イ ンの ど の部分が最新ではないのかを 確認する には、 [more info] リ ン ク を ク リ ッ ク し ます。 イ ンプ リ メ ン テーシ ョ ンのみの再実行が必要な場合や、 合成お よ び イ ンプ リ メ ン テーシ ョ ンの両方を再実行する 必要があ る 場合があ り ます。 X-Ref Target - Figure 3-5 図 3-5 : イ ン プ リ メ ン テーシ ョ ンが最新でない run のス テー タ ス を強制的に最新の状態に設定 [Force-up-to-date] リ ン ク を ク リ ッ ク す る と 、 イ ン プ リ メ ン テーシ ョ ン run ま たは合成 run の ス テー タ ス を強制的に最 新の状態にする こ と がで き ます。 こ の機能は、 デザ イ ン ま たは制約を変更 し たが、 現在の run の結果を解析す る 場合 な ど に使用 し ます。 ヒ ン ト : [Force-up-to-date] コ マ ン ド は、[Design Runs] ウ ィ ン ド ウ で最新でない run を右 ク リ ッ ク し た と き に表示 さ れ る ポ ッ プア ッ プ メ ニ ュ ーに も あ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 84 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 イ ン プ リ メ ン テーシ ョ ン完了後の次の操作 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の ど ち ら で も 、イ ンプ リ メ ン テーシ ョ ンが完了 し た後の操作は、イ ンプ リ メ ン テーシ ョ ンの結果に よ り ます。 • デザ イ ンが完全に配置配線 さ れたか、 解決が必要な問題があ る か。 • タ イ ミ ン グ制約お よ びデザ イ ン要件が満た さ れたか、 デザ イ ン を完了する のに変更が必要か。 • ザ イ リ ン ク ス パーツ用の ビ ッ ト ス ト リ ーム を生成で き る 状態であ る か。 イ ン プ リ メ ン テーシ ョ ン後に推奨 さ れる手順 イ ンプ リ メ ン テーシ ョ ン後は、 次の手順を実行する こ と をお勧め し ます。 1. イ ンプ リ メ ン テーシ ョ ン メ ッ セージ を確認 し ます。 2. イ ンプ リ メ ン テーシ ョ ン レ ポー ト を表示 し 、 次の事項を確認 し ます。 3. ° タ イ ミ ン グ制約が満た さ れてい る (report_timing_summary)。 ° リ ソ ース使用率が予測どお り であ る (report_utilization)。 ° 消費電力が予測どお り であ る (report_power)。 ビ ッ ト ス ト リ ーム フ ァ イ ルを生成 し ます。 ビ ッ ト ス ト リ ーム フ ァ イ ルの生成には、デザ イ ンがハー ド ウ ェ アのルールに違反 し ていない こ と を確認す る 最終 DRC も 含まれます。 4. 満た さ れていないデザ イ ン要件があ る 場合は、 次を実行 し ます。 a. プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン ト 済みデザ イ ン を開いて解析 し ます。 b. 非プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン テーシ ョ ン後のデザ イ ン チ ェ ッ ク ポ イ ン ト を開 き ます。 イ ンプ リ メ ン ト 済みデザ イ ンの解析の詳細は、『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 10] の 「Vivado IDE を使用 し たデザ イ ン解析」 を参照 し て く だ さ い。 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ン後の次の操作 非プ ロ ジ ェ ク ト モー ド では、デザ イ ン セ ッ シ ョ ンで生成 さ れた メ ッ セージは Vivado ロ グ フ ァ イ ル (vivado.log) に 保存 さ れ ます。 こ の ロ グ フ ァ イ ルお よ びデザ イ ン デー タ か ら の レ ポー ト を参照 し 、 プ ロ ジ ェ ク ト の状況を正確に評 価 し ます。 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ン後の次の操作 プ ロ ジ ェ ク ト モー ド では、 Vivado Design Suite で次が実行 さ れます。 • [Messages] ウ ィ ン ド ウ に ロ グ フ ァ イ ルか ら の メ ッ セージが表示 さ れます。 • さ ま ざ ま な レ ポー ト が自動的に生成 さ れます。 プ ロ ジ ェ ク ト モー ド では、 イ ン プ リ メ ン テーシ ョ ン run が完了す る と 、 図 3-6 に示すダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 次の操作を選択で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 85 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 X-Ref Target - Figure 3-6 図 3-6 : プ ロ ジ ェ ク ト モー ド : [Implementation Completed] ダ イ ア ロ グ ボ ッ ク ス [Implementation Completed] ダ イ ア ロ グ ボ ッ ク ス で、 次を実行 し ます。 1. 次のいずれかのオプシ ョ ン を オンに し ます。 ° ° ° 2. [Open Implemented Design] ネ ッ ト リ ス ト 、 デザ イ ン制約、 タ ーゲ ッ ト パーツ、 配置配線の結果を Vivado IDE に読み込み、 必要に応 じ てデザ イ ン を解析で き る よ う に し ます。 [Generate Bitstream] [Generate Bitstream] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 12] の 「ビ ッ ト ス ト リ ームの生成」 を参照 し て く だ さ い。 [View Reports] Vivado ツールで イ ンプ リ メ ン テーシ ョ ン中に生成 さ れた レ ポー ト フ ァ イ ルを選択 し て表示で き る [Reports] ウ ィ ン ド ウ を開 き ます。 詳細は、 89 ページの 「 イ ン プ リ メ ン テーシ ョ ン レ ポー ト の表示」 を参照 し て く だ さ い。 [OK] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 86 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 メ ッ セージの表示 重要 : すべての メ ッ セージ を確認 し て く だ さ い。 メ ッ セージには、 デザ イ ンのパ フ ォ ーマ ン ス、 消費電力、 エ リ ア、 配線を向上する ための推奨事項が記載 さ れ る 場合があ り ます。 ク リ テ ィ カル警告 メ ッ セージに も 、 解決すべ き タ イ ミ ン グ制約の問題が表示 さ れ る こ と があ り ます。 非プ ロ ジ ェ ク ト モー ド での メ ッ セージの表示 非プ ロ ジ ェ ク ト モー ド では、 Vivado ロ グ フ ァ イ ル (vivado.log) で次を確認 し ます。 • 1 つのデザ イ ン セ ッ シ ョ ンで使用 し た コ マ ン ド • コ マ ン ド か ら の結果お よ び メ ッ セージ 推奨 : Vivado テ キ ス ト エデ ィ タ ーで ロ グ フ ァ イ ルを開 き 、 すべての コ マ ン ド の結果を確認 し て く だ さ い。 有益な情 報が得 ら れ る こ と があ り ます。 プ ロ ジ ェ ク ト モー ド での メ ッ セージの表示 プ ロ ジ ェ ク ト モー ド では、 [Messages] ウ ィ ン ド ウ (図 3-7) に [Log] ウ ィ ン ド ウ の内容が フ ィ ル タ ー さ れた も のが表示 さ れ、 主な メ ッ セージ、 警告、 お よ びエ ラ ーのみが含まれます。 [Messages] ウ ィ ン ド ウ は機能ご と に分類 さ れてお り 、 フ ィ ル タ ーを適用する ツールバー オプシ ョ ン を使用 し て、 特定の タ イ プの メ ッ セージのみを表示で き ます。 X-Ref Target - Figure 3-7 図 3-7 : [Messages] ウ ィ ン ド ウ プ ロ ジ ェ ク ト モー ド で メ ッ セージ を表示す る 際は、 次の機能を使用で き ます。 • 横にあ る プ ラ ス記号 (+) を ク リ ッ ク し て展開 し 、 各 メ ッ セージ を表示 し ます。 • [Messages] ウ ィ ン ド ウ の上部にあ る チ ェ ッ ク ボ ッ ク ス のオン/オ フ を切 り 替え、 エ ラ ー、 ク リ テ ィ カル警 告、 警告、 情報 メ ッ セージ を表示/非表示に し ます。 • [Messages] ウ ィ ン ド ウ で リ ン ク を含む メ ッ セージ を ク リ ッ ク す る と 、 ソ ース フ ァ イ ルが開 き 、 該当す る 行がハ イ ラ イ ト さ れます。 • メ ッ セージ を右 ク リ ッ ク し て [Search for Answer Record] を ク リ ッ ク す る と 、 ザ イ リ ン ク ス ウ ェ ブサ イ ト でその メ ッ セージに関連する ア ンサー デー タ ベース を検索で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 87 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 イ ン ク リ メ ン タ ル コ ンパイルの メ ッ セージ 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 | ---------------------------------------------------------------------- イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 88 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 イ ン プ リ メ ン テーシ ョ ン レ ポー ト の表示 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, clkEn report_control_sets -verbose -sort_by {clk clkEn} -file C:/Report/cntrl_sets.rpt # Run Timing Summary Report for post implementation timing report_timing_summary -file C:/Reports/post_route_timing.rpt -name time1 # Run Utilization Report for device resource utilization report_utilization -file C:/Reports/post_route_utilization.rpt Vivado IDE で レポー ト を開 く こ れ ら の レ ポー ト は、 Vivado IDE で開 く こ と がで き ます。 上記の Tcl ス ク リ プ ト 例では、 report_timing_summary コ マ ン ド で次のオプシ ョ ン を使用 し てい ます。 • -file オプシ ョ ン : レ ポー ト を フ ァ イ ルに保存 し ます。 • -name オプシ ョ ン : レ ポー ト を Vivado IDE に表示 し ます。 図 3-9 に、 Vivado IDE で レ ポー ト を開いた例を示 し ます。 ヒ ン ト : レ ポー ト を保存す る デ ィ レ ク ト リ は、 レ ポー ト の生成を実行する 前に存在 し てい る 必要があ り ます。 デ ィ レ ク ト リ がない と フ ァ イ ルは保存 さ れず、 エ ラ ー メ ッ セージが表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 89 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 イ ン プ リ メ ン テーシ ョ ン レ ポー ト コ マ ン ド に関する情報 Vivado IDE ま たは Tcl コ マ ン ド プ ロ ンプ ト で help Tcl コ マン ド を使用す る と 、 Tcl レ ポー ト コ マン ド と そのオプシ ョ ンに関する 情報を表示で き ます。 Tcl レ ポー ト コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参照 し て く だ さ い。 プ ロ ジ ェ ク ト モー ド でのレ ポー ト 生成 プ ロ ジ ェ ク ト モー ド では、 多 く の レ ポー ト が自動的に生成 さ れます。 こ れ ら の レ ポー ト は、 [Reports] ウ ィ ン ド ウ (図 3-8) に リ ス ト さ れます。 [Reports] ウ ィ ン ド ウ は、 合成ま たは イ ンプ リ メ ン ト コ マ ン ド を実行す る と 自動的に開 き ます。 開いていない場合は、 次のいずれかの方法で開 く こ と がで き ます。 • [Project Summary] ウ ィ ン ド ウ で [Reports] リ ン ク を ク リ ッ ク し ます。 • [Window] → [Reports] を ク リ ッ ク し ます。 ヒ ン ト : イ ンプ リ メ ン テーシ ョ ン run の tcl.pre お よ び tcl.post オプシ ョ ン を使用する と 、 プ ロ セ ス の各段階で カ ス タ ム レ ポー ト を出力で き ます。 こ れ ら のカ ス タ ム レ ポー ト は [Reports] ウ ィ ン ド ウ には表示 さ れませんが、 ニー ズに合わせて カ ス タ マ イ ズで き ます。 詳細は、 24 ページの 「 イ ンプ リ メ ン テーシ ョ ン run 設定の変更」 を参照 し て く だ さ い。 X-Ref Target - Figure 3-8 図 3-8 : [Reports] ウ ィ ン ド ウの例 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 90 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 [Reports] ウ ィ ン ド ウ か ら 表示 さ れ る レ ポー ト には、 run に関す る 情報が含ま れます。 レ ポー ト は、 図 3-9 に示す よ う に Vivado IDE でテ キ ス ト 形式で開 き ます。 X-Ref Target - Figure 3-9 図 3-9 : 制御セ ッ ト レポー ト レ ポー ト から のク ロ ス プ ローブ プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の両方で、 レ ポー ト と [Device] ウ ィ ン ド ウ な ど の ウ ィ ン ド ウ に表 示 さ れ る 関連デザ イ ン デー タ の ク ロ ス プ ロ ーブがサポー ト さ れてい ます。 • メ ニ ュ ー コ マン ド ま たは Tcl コ マン ド を使用 し て レ ポー ト を生成す る 必要があ り ます。 • テ キ ス ト 形式の レ ポー ト では ク ロ ス プ ロ ーブはサポー ト さ れてい ません。 た と えば、[Reports] ウ ィ ン ド ウ には [Route Design] の下にテ キ ス ト 形式の タ イ ミ ン グ サマ リ レ ポー ト が含まれてい ま す (図 3-8)。 タ イ ミ ン グ を解析す る 際は、 ク リ テ ィ カル パ ス の配置お よ び配線 リ ソ ース な ど のデザ イ ン デー タ を [Device] ウ ィ ン ド ウ に表示する と 有益です。 Vivado IDE で [Tools] → [Timing] → [Report Timing Summary] を ク リ ッ ク する と 、タ イ ミ ン グ サマ リ レ ポー ト が再生成 さ れ、 表示 さ れた レ ポー ト か ら デザ イ ンの異な る ウ ィ ン ド ウ に ク ロ ス プ ロ ーブで き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 91 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 タ イ ミ ング レ ポー ト と [Device] ウ ィ ン ド ウの ク ロ ス プ ローブの例 図 3-10 に、 タ イ ミ ン グ サマ リ レ ポー ト と [Device] ウ ィ ン ド ウ の ク ロ ス プ ロ ーブの例を示 し ます。 こ の非プ ロ ジ ェ ク ト モー ド の例では、 次の手順が実行 さ れてい ます。 • 配線後のデザ イ ン チ ェ ッ ク ポ イ ン ト を Vivado IDE で開 き ます。 • report_timing_summary -name を使用 し て、 デザ イ ン サマ リ レ ポー ト を生成 し て開 き ます。 • [Device] ウ ィ ン ド ウ では [Routing Resources] がオンにな っ てい ます。 • タ イ ミ ン グ サマ リ レ ポー ト で タ イ ミ ン グ パ ス を選択す る と 、 パ ス の ク ロ ス プ ロ ーブに よ り [Device] ウ ィ ン ド ウ で も 選択 さ れます (図 3-10)。 X-Ref Target - Figure 3-10 図 3-10 : タ イ ミ ング レ ポー ト と [Device] ウ ィ ン ド ウのク ロ ス プ ローブ レ ポー ト の解析お よ びデザ イ ン ク ロ ージ ャ の ス ト ラ テジの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン 解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 10] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン結果の変更 こ のセ ク シ ョ ンでは、 デザ イ ンの配置、 配線、 お よ び ロ ジ ッ ク の変更方法を説明 し ます。 配置の変更 Vivado ツールでは、 配置セルが固定 さ れてい る か (Fixed)、 固定 さ れていないか (Unfixed) が検出 さ れ、 デザ イ ンの配 置 さ れたセルを ど の よ う に処理する かが判断 さ れます。 固定セル 固定 さ れたセルは、 ユーザーが配置 し たか、 XDC フ ァ イ ルか ら イ ンポー ト さ れたセルの ロ ケーシ ョ ン制約です。 • Vivado Design Suite では、 こ の よ う に配置 さ れたセルは固定 (Fixed) と し て処理 さ れます。 • 固定セルは、 指示がない限 り 移動 さ れません。 • 図 3-11 ではフ リ ッ プフ ロ ッ プがオ レ ン ジ色 (デフ ォ ル ト ) で表示 さ れてお り 、固定 さ れてい る こ と がわか り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 92 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 未固定セル 固定 さ れていないセルは、 Vivado イ ンプ リ メ ン テーシ ョ ン で place_design コ マン ド ま たは最適化 コ マン ド の 1 つ に よ り 配置 さ れた も のです。 • Vivado Design Suite では、 こ の よ う に配置 さ れたセルは未固定 (Unfixed) ま たは配置は確定 し ていない と し て処理 さ れます。 • こ れ ら のセルは、 必要に応 じ て移動 さ れます。 • 図 3-11 では LUT が青色 (デフ ォ ル ト ) で表示 さ れてお り 、 未固定であ る こ と がわか り ます。 X-Ref Target - Figure 3-11 図 3-11 : ス ラ イ スに配置 さ れた ロ ジ ッ ク 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 に含め る べ き でない こ と を示 し てい ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 93 第 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) [参照 16] を 参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 ロ ジ ッ ク の手動での配置お よび移動 ロ ジ ッ ク を手動で配置お よ び移動で き ます。 • セルが既に配置 さ れてい る 場合、 ド ラ ッ グ し て新 し い ロ ケーシ ョ ンに ド ロ ッ プ し ます。 • セルが配置 さ れていない場合は、 次の手順に従い ます。 a. [Device] ウ ィ ン ド ウ で ツールバーの [Cell Drag & Drop Modes] ボ タ ン を ク リ ッ ク し 、 [Create BEL Constraint Mode] を オンに し ます。 b. [Netlist] ウ ィ ン ド ウ ま たは [Timing] ウ ィ ン ド ウ か ら ロ ジ ッ ク を [Device] ウ ィ ン ド ウ に ド ラ ッ グ し ます。 ロ ジ ッ ク は、 有効な ロ ケーシ ョ ンに配置 さ れます。 ヒ ン ト : ロ ジ ッ ク を [Device] ウ ィ ン ド ウ に ド ラ ッ グする 場合、 ロ ジ ッ ク を ド ロ ッ プで き る のは有効な ロ ケーシ ョ ンで のみです。 ロ ケーシ ョ ンが無効な場合 (ス ラ イ ス FF での制御セ ッ ト の制限のためな ど)、[Device] ウ ィ ン ド ウ のその ロ ケーシ ョ ンには ド ロ ッ プで き ず、 ロ ジ ッ ク は配置 さ れません。 手動での ロ ジ ッ ク の配置には時間がか る ので、特定の状況でのみ使用 し て く だ さ い。制約にセル名が使用 さ れ る ので、 制約はデザ イ ンの変更の影響を受けやす く な り ます。 Tcl コ マ ン ド を使用 し た ロ ジ ッ クの配置 タ ーゲ ッ ト パーツのデバ イ ス リ ソ ース に ロ ジ ッ ク を配置す る には、place_cell Tcl コ マ ン ド を使用で き ます。 セル は、 特定の BEL サ イ ト (SLICE_X49Y60/A6LUT な ど) ま たは使用可能なサ イ ト (SLICE_X49Y60 な ど) に配置で き ま す。 サ イ ト を指定 し て BEL を指定 し ない場合、 ツールに よ り 指定 さ れた ス ラ イ ス内の適切な BEL が選択 さ れます。 place_cell コ マ ン ド は、 セルを配置す る 場合、 ま たはセルをデバ イ ス上のあ る サ イ ト か ら 別のサ イ ト に移動す る 場 合に使用で き ます。 配置 さ れていないセルを配置する 構文 も 、 配置 さ れてい る 移動する 構文 も 同 じ です。 ヒ ン ト : ロ ジ ッ ク を無効な ロ ケーシ ョ ン (ス ラ イ ス FF での制御セ ッ ト の制限のためな ど) に配置 し よ う と す る と 、[Tcl Console] ウ ィ ン ド ウ にエ ラ ー メ ッ セージが表示 さ れ、 その配置は無視 さ れます。 place_cell Tcl コ マン ド を使用 し て配置 さ れたセルは、 Vivado ツールに よ り 固定 さ れたセル と みな さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 94 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 配線の変更 デザ イ ンの配線を変更は、 [Device] ウ ィ ン ド ウ か ら 実行で き ます。 個々のネ ッ ト に対 し て配線の解除、 配線、 配線の 固定を実行で き ます。 ネ ッ ト に対 し て配線の解除、 配線、 配線の固定を実行する には、 次の手順に従い ます。 1. [Device] ウ ィ ン ド ウ を開 き ます。 2. ネ ッ ト を選択 し ます。 ° 未配線のネ ッ ト は、 赤色の フ ラ イ ラ イ ンで表示 さ れます。 ° 部分的に配線 さ れたネ ッ ト は、 黄色で表示 さ れます。 ° 配線が固定 さ れてい る ネ ッ ト は、 点線で示 さ れます。 3. 右 ク リ ッ ク し て [Unroute]、 [Route]、 ま たは [Fix Routing] を ク リ ッ ク し ます。 • [Unroute] (配線の解除) お よ び [Route] (配線) : 配線を再配線モー ド で起動 し 、 ネ ッ ト に対 し て操作を実行 し ます。 詳細は、 第 2 章の 「route_design」 を参照 し て く だ さ い。 • [Fix Routing] (配線の固定) : 配線 し 、 配線デー タ ベース で固定 と マー ク し 、 ネ ッ ト の ド ラ イ バーお よ び ロ ー ド の LOC お よ び BEL を固定 し ます。 ネ ッ ト を手動で配線す る 配線割 り 当てモー ド も 使用で き ます。 詳細は、 「手動配 線」 を参照 し て く だ さ い。 ヒ ン ト : ネ ッ ト 関連の コ マン ド はすべて、 ネ ッ ト のポ ッ プア ッ プ メ ニ ュ ーか ら 実行で き ます。 X-Ref Target - Figure 3-12 図 3-12 : 配線の変更 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 95 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 手動配線 手動配線を使用する と 、 ネ ッ ト に特定の配線 リ ソ ース を選択で き ます。 こ れに よ り 、 信号の配線パ ス を完全に制御で き ます。 手動配線では、 route_design は実行 さ れません。 配線は配線デー タ ベース で直接ア ッ プデー ト さ れます。 手動配線は、 ネ ッ ト の遅延を厳密に制御す る 場合に使用 し ます。 た と えば、 ソ ース同期 イ ン タ ーフ ェ イ ス で、 デバ イ ス の受信レ ジ ス タ ま での配線遅延の変動を最小限に抑え る 場合な ど です。 こ れには、 レ ジ ス タ お よ び I/O に LOC お よ び BEL 制約を設定 し 、 ネ ッ ト を手動配線す る こ と に よ り IOB か ら レ ジ ス タ ま での配線遅延を制御 し ます。 手動配線を実行する には、 デバ イ ス の イ ン タ ー コ ネ ク ト アーキテ ク チ ャ に関する 詳細な知識が必要です。手動配線を 実行する 信号数を制限 し 、 短い接続にのみ使用する こ と をお勧め し ます。 手動配線での規則 手動配線では、 次の規則に従っ て く だ さ い。 • ド ラ イ バーお よ び ロ ー ド に LOC 制約 と BEL 制約が必要です。 • 手動配線では分岐は使用で き ませんが、 分岐点か ら 新 し い手動配線を開始す る こ と に よ り 分岐を イ ンプ リ メ ン ト で き ます。 • LUT ロ ー ド の ピ ン を固定す る 必要があ り ます。 • ド ラ イ バーに接続 さ れていない ロ ー ド に配線する 必要があ り ます。 • 完全な接続のみが許容 さ れます。 ア ン テナは許容 さ れません。 • 既存の固定 さ れ て い な い配線済みネ ッ ト と オーバー ラ ッ プ さ せ る こ と が で き ま す。 手動配線が完了 し た 後 route_design を実行 し 、 ネ ッ ト のオーバー ラ ッ プに よ る 競合を解決 し て く だ さ い。 配線割 り 当てモー ド の開始 配線割 り 当てモー ド を開始する には、 次の手順に従い ます。 1. [Device] ウ ィ ン ド ウ を開 き ます。 2. [Routing Resources] がオンにな っ てい る こ と を確認 し ます。 3. ツールバーの [Options] ボ タ ン を ク リ ッ ク し 、 [Device Options] の [Layers] ビ ュ ーで [Unrouted Net] お よび [Partially Routed Net] を オンに し ます (図 3-13)。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 96 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 X-Ref Target - Figure 3-13 , 図 3-13 : [Device Options] の [Layers] ビ ュ ー 4. 5. 配線が必要なネ ッ ト を選択 し ます。 ° 未配線のネ ッ ト は、 赤色の フ ラ イ ラ イ ンで表示 さ れます。 ° 部分的に配線 さ れたネ ッ ト は、 黄色で表示 さ れます。 右 ク リ ッ ク し て [Enter Assign Routing Mode] を ク リ ッ ク し ます。 [Assign Routing: Target Load Cell Pin] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 6. 配線先の ロ ー ド セル ピ ン を選択 し ます (オプシ ョ ン)。 7. [OK] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 97 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 注記 : [Device] ウ ィ ン ド ウ に部分的に配線 さ れた ネ ッ ト ま たは未配線のネ ッ ト を表示す る には、 [Device Options] メ ニ ュ ーで対応する レ イ ヤーを オンにする 必要があ り ます (図 3-14)。 X-Ref Target - Figure 3-14 図 3-14 : [Device Options] プルアウ ト メ ニ ュ ー 手動配線モー ド にな り ま し た。 [Device] ウ ィ ン ド ウ の横に [Routing Assignment] ウ ィ ン ド ウ が表示 さ れます (図 3-15)。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 98 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 [Routing Assignment] ウ ィ ン ド ウ X-Ref Target - Figure 3-15 図 3-15 : [Routing Assignment] ウ ィ ン ド ウ [Routing Assignment] ウ ィ ン ド ウ には、 [Options]、 [Assigned Nodes]、 [Neighbor Nodes] の 3 つのセ ク シ ョ ンがあ り ます。 • [Options] セ ク シ ョ ン (図 3-16) では、 [Routing Assignment] ウ ィ ン ド ウ の設定を制御 し ます。 , X-Ref Target - Figure 3-16 図 3-16 : [Routing Assignment] ウ ィ ン ド ウの [Options] セ ク シ ョ ン ° ° ° [Number of hops] : 近隣 ノ ー ド の配線ホ ッ プ数を指定 し ます。 こ の設定は、 [Neighbor Nodes] セ ク シ ョ ンに表 示 さ れ る ノ ー ド に影響 し ます。 1 よ り 大 き い値に設定す る と 、 [Neighbor Nodes] セ ク シ ョ ン に配線の最後の ノ ー ド のみが表示 さ れます。 [Maximum number of neighbors] : [Neighbor Nodes] セ ク シ ョ ンに表示 さ れ る 近隣 ノ ー ド の最大数を指定 し ま す。 配線の最後の ノ ー ド のみが表示 さ れます。 [Allow overlap with unfixed nets] : 割 り 当て る 配線が固定 さ れていない既存の配線 と オーバー ラ ッ プす る のを 許容 し ます。 固定配線の割 り 当て後、 route_design コ マ ン ド を実行 し てすべてのオーバー ラ ッ プ を解決 する 必要があ り ます。 [Options] セ ク シ ョ ンはデフ ォ ル ト では非表示にな っ てい ます。 [Options] セ ク シ ョ ン を表示す る には、 [Show] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 99 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 • [Assigned Nodes] セ ク シ ョ ンは、 既に配線が割 り 当て ら れてい る モー ド を示 し ます。 割 り 当済みの各 ノ ー ド が 1 行に表示 さ れます。 割 り 当て済みの配線は、 [Device] ウ ィ ン ド ウ でオ レ ン ジ色で示 さ れます。割 り 当て済み ノ ー ド の間のギ ャ ッ プは、 [Assigned Nodes] セ ク シ ョ ンに GAP 行 と し て表示 さ れます。ギ ャ ッ プを自動配線す る には、次の手順に従い ます。 a. [Assigned Nodes] セ ク シ ョ ンでネ ッ ト ギ ャ ッ プを右 ク リ ッ ク し ます。 b. [Auto-route] を ク リ ッ ク し ます。 次の配線セ グ メ ン ト を割 り 当て る には、 ギ ャ ッ プの前ま たは後の割 り 当て済み ノ ー ド を選択す る か、 [Assigned Nodes] セ ク シ ョ ンの最後の ノ ー ド を選択 し ます。 • X-Ref Target - Figure 3-17 [Neighbor Nodes] セ ク シ ョ ンは、 選択 し た ノ ー ド の近隣にあ る 使用可能な ノ ー ド を表示 し ます。 [Device] ウ ィ ン ド ウ では、 図 3-17 に示す よ う に、 選択 さ れてい る ノ ー ド が白の実線で示 さ れ さ れ、 使用可能な近隣の ノ ー ド が白 の点線で示 さ れます。 , 図 3-17 : 配線セグ メ ン ト の割 り 当て 配線 ノ ー ド の割 り 当て 次の配線セグ メ ン ト に割 り 当て る ノ ー ド を決定 し た ら 、 次のいずれかを実行 し ます。 • [Neighbor Nodes] セ ク シ ョ ンで ノ ー ド を右 ク リ ッ ク し 、 [Assign Node] を ク リ ッ ク し ます。 • [Neighbor Nodes] セ ク シ ョ ンで ノ ー ド を ダブル ク リ ッ ク し ます。 • [Device] ウ ィ ン ド ウ で ノ ー ド を ク リ ッ ク し ます。 配線を ノ ー ド に割 り 当て る と 、 その ノ ー ド が [Assigned Nodes] セ ク シ ョ ンに表示 さ れ、 [Device] ウ ィ ン ド ウ でオ レ ン ジ色でハ イ ラ イ ト さ れます。 ロ ー ド に到達する ま で、ま たはギ ャ ッ プ を含む配線を割 り 当て る 準備がで き る ま で、ノ ー ド の割 り 当て を継続 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 100 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 配線 ノ ー ド の割 り 当て解除 ノ ー ド の割 り 当て を解除する には、 次の手順に従い ます。 1. [Routing Assignment] ウ ィ ン ド ウ の [Assigned Nodes] セ ク シ ョ ンに移動 し ます。 2. 割 り 当て を解除する ノ ー ド を選択 し ます。 3. 右 ク リ ッ ク し て [Remove] を ク リ ッ ク し ます。 ノ ー ド が割 り 当てか ら 削除 さ れます。 配線割 り 当ての確定およ び終了 配線の割 り 当て を確定 し て配線割 り 当てモー ド を終了する には、 次の操作を実行 し ます。 [Routing Assignment] ウ ィ ン ド ウ で [Assign Routing] ボ タ ン を ク リ ッ ク し ます。 [Assign Routing] ダ イ ア ロ グ ボ ッ ク ス (図 3-18) が表示 さ れます。 こ のダ イ ア ロ グ ボ ッ ク ス で、 割 り 当て ら れた ノ ー ド を確認 し ます。 X-Ref Target - Figure 3-18 図 3-18 : [Assign Routing] ダ イ ア ログ ボ ッ ク ス 配線割 り 当てのキ ャ ン セル 配線割 り 当て を確定で き ない場合は、 次のいずれかの方法を使用 し て配線割 り 当て を キ ャ ンセルで き ます。 • [Routing Assignment] ウ ィ ン ド ウ で [Exit Mode] を ク リ ッ ク し ます。 • [Device] ウ ィ ン ド ウ を右 ク リ ッ ク し て [Exit Assign Routing Mode] を ク リ ッ ク し ます。 配線を確定する と 、 ド ラ イ バーお よ び ロ ー ド の BEL お よ び LOC も 固定 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 101 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 割 り 当て済みの配線の確認 • 割 り 当て済みの配線は、 [Device] ウ ィ ン ド ウ で緑色の点線で示 さ れます。 • 部分的に割 り 当て ら れた配線は、 [Device] ウ ィ ン ド ウ で黄色の点線で示 さ れます。 図 3-19 に、 割 り 当て済み配線 と 部分的に割 り 当て ら れた配線の例を示 し ます。 X-Ref Target - Figure 3-19 図 3-19 : 割 り 当て済みの配線および部分的に割 り 当て ら れた配線 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 102 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 分岐 複数の ロ ー ド を持つネ ッ ト を配線する 場合は、 次の手順に従っ てネ ッ ト を配線 し ます。 1. 96 ページの 「配線割 り 当てモー ド の開始」 の手順に従っ て 1 つの ロ ー ド への配線を割 り 当て ます。 2. ネ ッ ト のすべての分岐への配線を割 り 当て ます。 図 3-20 に、 1 つの ロ ー ド への配線が割 り 当て ら れ、 さ ら に 2 つの ロ ー ド への配線が必要なネ ッ ト を示 し ます。 X-Ref Target - Figure 3-20 図 3-20 : 分岐配線の割 り 当て 分岐への配線の割 り 当て 分岐に配線を割 り 当て る には、 次の手順に従い ます。 1. [Device] ウ ィ ン ド ウ を表示 し ます。 2. 配線する ネ ッ ト ノ ー ド を選択 し ます。 3. 右 ク リ ッ ク し て [Enter Assign Routing Mode] を ク リ ッ ク し ます。 [Target Load Cell Pin] ダ イ ア ロ グ ボ ッ ク ス が開き 、 すべての ロ ー ド が表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 103 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 注記 : 配線が割 り 当て ら れてい る ロ ー ド には、 [Routed] 列にチ ェ ッ ク マー ク が示 さ れてい ます。 X-Ref Target - Figure 3-21 図 3-21 : [Target Load Cell Pin] ダ イ ア ロ グ ボ ッ ク ス (複数ロー ド ) 4. 配線する ロ ー ド を選択 し ます。 5. [OK] を ク リ ッ ク し ます。 図 3-22 に示す [Branch Start] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 X-Ref Target - Figure 3-22 図 3-22 : [Branch Start] ダ イ ア ログ ボ ッ ク ス 6. 選択 し た ロ ー ド の配線を分岐する ノ ー ド を選択 し ます。 7. [OK] を ク リ ッ ク し ます。 8. 100 ページの 「配線 ノ ー ド の割 り 当て」 の手順に従い ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 104 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 LUT ロー ド のセル入力の固定 配線 し よ う と し てい る LUT ロ ー ド の入力が、ほかの入力 と ス ワ ッ プ さ れていない こ と を確認す る 必要があ り ます。 こ れには、 次の手順に従っ て LUT ロ ー ド のセル入力を固定 し ます。 1. [Device] ウ ィ ン ド ウ を開 き ます。 2. ロ ー ド LUT を選択 し ます。 3. 右 ク リ ッ ク し て [Lock Cell Input Pins] を ク リ ッ ク し ます。 こ れに相当する Tcl コ マ ン ド は、 次の と お り です。 set_property LOCK_PINS {NAME:BEL_PIN} <cell object> 固定配線お よ び複数の LUT ロ ー ド があ る ネ ッ ト に対 し ては、 次の Tcl ス ク リ プ ト を使用 し てすべての LUT ロ ー ド の セル入力を固定で き ます。 set fixed_nets [get_nets -hierarchical -filter IS_ROUTE_FIXED] foreach LUT_load_pin [get_pins -leaf -of [get_nets $fixed_nets] \ -filter DIRECTION==IN&&REF_NAME=~LUT*] { set pin [get_property REF_PIN_NAME $LUT_load_pin] set BEL_pin [file tail [get_bel_pins -of [get_pins $LUT_load_pin]]] set LUT_name [get_property PARENT_CELL $LUT_load_pin] # need to handle condition when LOCK_pins property already exists on LUT set existing_LOCK_PIN [get_property LOCK_PINS [get_cells $LUT_name]] if { $existing_LOCK_PIN ne "" } { reset_property LOCK_PINS [get_cells $LUT_name] } set_property LOCK_PINS \ [lsort -unique [concat $existing_LOCK_PIN $pin:$BEL_pin]] [get_cells $LUT_name] } 指定配線制約 固定 さ れた配線割 り 当ては、 配線デー タ ベース に指定配線文字列 と し て保存 さ れます。 指定配線文字列では、 分岐は ネ ス ト さ れた中かっ こ ({ }) で示 さ れます。 た と えば、 図 3-23 に示す よ う な配線があ る と し ます。 こ の配線では、 さ ま ざ ま なエ レ メ ン ト が次の表に示す よ う に 示 さ れてい ます。 表 3-1 : 指定配線制約 エレ メ ン ト 表示方法 ド ラ イ バー と ロ ー ド オ レ ン ジ色の矩形 ノード 赤い線 ス イ ッ チボ ッ ク ス 青い矩形 こ の配線の簡略化 さ れた指定配線文字列は、 次の よ う にな り ます。 {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 です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 105 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 X-Ref Target - Figure 3-23 図 3-23 : 分岐配線の例 ロ ジ ッ クの変更 読み取 り 専用でない論理オブジ ェ ク ト のプ ロ パテ ィ は、 イ ンプ リ メ ン テーシ ョ ン後に Vivado IDE ま たは Tcl で変更で き ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 [Device] ウ ィ ン ド ウ でオブジ ェ ク ト のプ ロ パテ ィ を変更す る には、 次の手順に従い ます。 1. オブジ ェ ク ト を選択 し ます。 2. [Properties] ウ ィ ン ド ウ の [Properties] ビ ュ ーでオブジ ェ ク ト のプ ロ パテ ィ を変更 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 106 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 X-Ref Target - Figure 3-24 図 3-24 : プ ロパテ ィ の変更 変更可能なプ ロ パテ ィ には、 ブ ロ ッ ク RAM の INIT、MMCM の ク ロ ッ ク を変更す る プ ロ パテ ィ な ど があ り ます。LUT オブジ ェ ク ト の INIT を変更す る ためのダ イ ア ロ グ ボ ッ ク ス も あ り 、 LUT 論理式を指定 し て適切な INIT 値が ツール に よ り 設定 さ れ る よ う にする こ と がで き ます。 X-Ref Target - Figure 3-25 図 3-25 : LUT 論理式の指定 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 107 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 変更の保存 メ モ リ 内でデザ イ ンに対 し て加え た変更を保存する には、 デザ イ ンのチ ェ ッ ク ポ イ ン ト を保存 し ます。 割 り 当てはデザ イ ンにバ ッ ク ア ノ テー ト さ れないので、 次回の実行で適用 さ れ る よ う にす る には、 割 り 当て を XDC に追加する 必要があ り ます。 プ ロ ジ ェ ク ト モー ド で制約を制約フ ァ イ ルに保存す る には、 [File] → [Save Constraints] を ク リ ッ ク し ます。 ネ ッ ト リ ス ト の変更 機能的な ロ ジ ッ ク のバグ を修正、 タ イ ミ ン グ ク ロ ージ ャ を達成、 ま たはデバ ッ グ ロ ジ ッ ク を挿入す る ため、 ネ ッ ト リ ス ト の変更が必要な場合があ り ます。 合成後、 配置後、 お よ び配線後に Tcl コ マン ド を使用 し て、 既存のネ ッ ト リ ス ト を変更で き ます。 ネ ッ ト リ ス ト 変更 コ マ ン ド 次に、 既存のネ ッ ト リ ス ト を変更する コ マ ン ド を示 し ます。 • create_port • remove_port • create_cell • remove_cell • create_pin • remove_pin • create_net • remove_net • connect_net • disconnect_net 注記 : こ れ ら の Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参 照する か、 「<command> -help」 と 入力 し て く だ さ い。 ネ ッ ト リ ス ト 変更コ マ ン ド は、 合成後、 配置後、 お よ び配線後のネ ッ ト リ ス ト に対 し て実行 し ます。 ネ ッ ト リ ス ト を 変更する 前に、 メ モ リ に読み込んでお く 必要があ り ます。 ネ ッ ト リ ス ト を メ モ リ に読み込んだ ら 、 ネ ッ ト リ ス ト 変更 コ マ ン ド を使用 し て論理的な変更を加え る こ と がで き ます。 変更を保存す る には、 write_checkpoint コ マン ド を 使用 し ます。 ヒ ン ト : ネ ッ ト リ ス ト 変更 コ マン ド を使用す る と 、 ネ ッ ト リ ス ト に無条件に変更を加え る こ と がで き ますが、 論理的 な変更に よ り 物理的な イ ンプ リ メ ン テーシ ョ ンが無効にな る 場合があ り ます。 物理的な イ ンプ リ メ ン テーシ ョ ンに論 理的な変更を加え る プ ロ セ ス の 1 部 と し て、 DRC が実行 さ れます。 こ れ ら の DRC に よ り 、 無効なネ ッ ト リ ス ト の変 更や、 物理的な イ ンプ リ メ ン テーシ ョ ンの前に対処 し てお く べき 物理的な制限が レ ポー ト さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 108 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 ネ ッ ト リ ス ト 変更コ マ ン ド を実行する と すぐ に、 論理的な変更が回路図に反映 さ れます。 図 3-26 に、 LUT1 を基準セ ル と し て使用 し て作成 さ れたセルの例を示 し ます。 X-Ref Target - Figure 3-26 図 3-26 : LUT1 を基準セル と し て使用 し て作成 さ れたセル イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 109 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 LUT1 の出力を OBUF に接続す る と 、 こ の変更が回路図に反映 さ れ、 ECO_INV/O の出力ピ ンが 「n/c」 (未接続) ではな く な り ます。 図 3-27 に、 変更が反映 さ れた回路図を示 し ます。 X-Ref Target - Figure 3-27 図 3-27 : LUT1 を OBUF に接続 し た後の [Schematic] ウ ィ ン ド ウ 使用例 次に、 最 も 一般的なネ ッ ト リ ス ト の変更例を示 し ま す。 各例に対 し て、 元の論理ネ ッ ト リ ス ト の回路図、 使用す る ネ ッ ト リ ス ト 変更コ マ ン ド の リ ス ト 、 変更後のネ ッ ト リ ス ト の回路図を示 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 110 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 例 1 : ネ ッ ト の論理値の反転 ネ ッ ト の論理値を反転す る には、 LUTx プ リ ミ テ ィ ブの既存の LUT 論理式を変更す る だけで よ い場合 も あ り ますが、 入力か ら の出力を反転する ために LUT1 を挿入す る 必要があ る 場合 も あ り ます。 図 3-28 に、 OBUF を介 し て出力ポー ト wbOutputData[0] を駆動す る FDRE プ リ ミ テ ィ ブの回路図を示 し ます。 X-Ref Target - Figure 3-28 図 3-28 : OBUF を介 し て出力ポー ト を駆動する FDRE プ リ ミ テ ィ ブ 次の Tcl コ マ ン ド は、 FDRE の出力 と OBUF の間に イ ンバー タ ーを追加 し ます。 create_cell -reference [get_lib_cells [get_libs]/LUT1] ECO_INV set_property INIT 2'h1 [get_cells ECO_INV] disconnect_net -net {wbOutputData_OBUF[0]} -objects \ [get_pins {wbOutputData_reg[0]/Q}] connect_net -net {wbOutputData_OBUF[0]} -objects [get_pins {ECO_INV/O}] create_net ECO_INV_in connect_net -net ECO_INV_in -objects [get_pins {wbOutputData_reg[0]/Q ECO_INV/I0}] こ の ス ク リ プ ト 例は、 まず LUT1 セル ECO_INV を作成 し 、 INIT 値が反転を イ ン プ リ メ ン ト す る 2'h1 に設定 し ま す。 その後 FDRE と OBUF の間のネ ッ ト を FDRE の Q 出力ピ ンか ら 接続解除 し 、 反転 LUT1 セル ECO_INV の出力を OBUF の I 入力ピ ンに接続 し ます。 最後に、 ネ ッ ト を作成 し て FDRE の Q 出力ピ ン と 反転 LUT1 セルの I0 入力を接 続 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 111 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 図 3-29 に、 論理ネ ッ ト リ ス ト の変更が反映 さ れた回路図を示 し ます。 X-Ref Target - Figure 3-29 図 3-29 : 反転が追加 さ れたネ ッ ト リ ス ト を示す回路図 ネ ッ ト リ ス ト を変更 し た ら 、 論理的な変更を イ ンプ リ メ ン ト す る 必要があ り ます。 LUT1 セルを配置 し 、 セルに入出 力 さ れ る ネ ッ ト を配置する 必要があ り ます。 こ れは、 デザ イ ンの変更 さ れていない部分の配置配線を変更せずに実行 する 必要があ り ます。 変更 し たネ ッ ト リ ス ト の対 し て place_design を実行す る と 、 Vivado イ ンプ リ メ ン テーシ ョ ン コ マン ド は自動的に イ ン ク リ メ ン タ ル モー ド で実行 さ れ、 ロ グ フ ァ イ ルに 「Incremental Placement Summary」 ( イ ン ク リ メ ン タ ル配置サマ リ ) セ ク シ ョ ンが含まれます。 +-------------------------------------------------------------------------------+ |Incremental Placement Summary | +-------------------------------------------------------------------------------+ | Type | Count | Percentage | +-------------------------------------------------------------------------------+ | Total instances | 3834 | 100.00 | | Reused instances | 3833 | 99.97 | | Non-reused instances | 1 | 0.03 | | New | 1 | 0.03 | +-------------------------------------------------------------------------------+ 既存の配線を保持 し て変更 さ れたネ ッ ト のみを配線する には、 route_design コ マ ン ド を使用 し ます。 こ れに よ り 、 変更のみが イ ン ク リ メ ン タ ルに配線 さ れ、 ロ グ フ ァ イ ルに 「Incremental Routing Reuse Summary」 ( イ ン ク リ メ ン タ ル 配線再利用サマ リ ) セ ク シ ョ ンが含まれます。 -------------------------------------------------------|Incremental Routing Reuse Summary | -------------------------------------------------------|Type | Count | Percentage | -------------------------------------------------------|Fully reused nets | 6401| 99.97 | |Partially reused nets | 0| 0.00 | |Non-reused nets | 2| 0.03 | -------------------------------------------------------イ ン ク リ メ ン タ ル place_design お よ び route_design コ マ ン ド を使用 し て変更 し たネ ッ ト リ ス ト を自動的に配 置配線する 代わ り に、 手動配置お よ び配線制約を使用 し て論理的な変更を確定で き ます。 詳細は、 こ の章の 「配置の 変更」 お よ び 「配線の変更」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 112 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 例 2 : デバ ッ グ ポー ト の追加 ネ ッ ト リ ス ト を変更する こ と に よ り 、 内部信号を簡単にデバ ッ グ ポー ト に配線で き ます。 こ の例では、 次の回路図に 示す demuxState_reg/Q ピ ン を、 デバ イ ス の外部ポー ト で監視で き る よ う に し ます。 X-Ref Target - Figure 3-30 図 3-30 : demuxState_Reg を示す回路図 次の Tcl ス ク リ プ ト は、 既存のデザ イ ンにポー ト を追加 し 、 内部信号を追加 し たポー ト に配線 し ます。 create_port -direction out debug_port_out set_property PACKAGE_PIN AB20 [get_ports {debug_port_out}] set_property IOSTANDARD LVCMOS18 [get_ports [list debug_port_out]] create_cell -reference [get_lib_cells [get_libs]/OBUF] ECO_OBUF1 create_net ECO_OBUF1_out connect_net -net ECO_OBUF1_out -objects ECO_OBUF1/O connect_net -net ECO_OBUF1_out -objects [get_ports debug_port_out] connect_net -net [get_nets -of [get_pins demuxState_reg/Q]] -objects ECO_OBUF1/I イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 113 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 上記の Tcl ス ク リ プ ト 例は、 次を実行 し ます。 • デバ ッ グ ポー ト を作成 し ます。 ° 作成 し たデバ ッ グ ポー ト をパ ッ ケージ ピ ン AB20 に割 り 当て ます。 ° I/O 規格 LVCMOS18 を割 り 当て ます。 • ECO_OBUF1_out ネ ッ ト を介 し てデバ ッ グ ポー ト を駆動す る OBUF を作成 し ます。 • demuxState_reg レ ジ ス タ の出力を OBUF の入力に接続する ネ ッ ト を作成 し ます。 図 3-31 に、 論理ネ ッ ト リ ス ト の変更が反映 さ れた回路図を示 し ます。 X-Ref Target - Figure 3-31 図 3-31 : デバ ッ グ ポー ト を追加/配線 し た後の回路図 ネ ッ ト リ ス ト を変更 し た ら 、 論理的な変更を イ ンプ リ メ ン ト す る 必要があ り ます。 ポー ト はパ ッ ケージ ピ ンに割 り 当 て ら れ る ので、 ポー ト を駆動す る OBUF が自動的に正 し い場所に配置 さ れます。 そのため、 route_design の後に place_design を実行す る と 、 配置す る も のがない と 判断 さ れ、 イ ン ク リ メ ン タ ル コ ンパ イ ルは適用 さ れ ません。 内部信号を OBUF 入力に接続する 新 し く 追加 さ れたネ ッ ト を配線す る には、route_design -nets コ マン ド を使用 す る かネ ッ ト を手動で配線 し て、 route_design が フルで実行 さ れてほかのネ ッ ト の配線が変更 さ れ る の を回避 し て く だ さ い。 ま た は、 既存の配線 を 保持す る route_design -preserve を 使用 し ま す。 詳細は、 64 ペー ジ の 「route_design コ マ ン ド のその他のオプシ ョ ンの使用」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 114 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 例 3 : タ イ ミ ン グ を向上す る ためのパイ プ ラ イ ン段の追加 パ ス に レ ジ ス タ を追加 し て組み合わせ ロ ジ ッ ク を複数のサ イ ク ルに分割する こ と を 「パ イ プ ラ イ ン処理」 と 呼びます。 パ イ プ ラ イ ン処理する と 、 パ イ プ ラ イ ン パ ス に レ イ テ ン シが追加 さ れ る ので、 レ ジ ス タ 間のパフ ォーマン ス が向上 し ます。 パ イ プ ラ イ ン処理が機能す る か ど う かは、 デザ イ ンの レ イ テ ン シ許容度に よ り ます。 図 3-32 に、 RAMB36E1 か ら 2 つの LUT6 セルを介 し て FF に到達す る ク リ テ ィ カル パ ス の回路図を示 し ます。 パ イ プ ラ イ ン段を追加す る と 、 こ の ク リ テ ィ カル パ ス の タ イ ミ ン グ を向上で き ます。 こ れは、 ネ ッ ト リ ス ト を変更す る こ と に よ り 達成で き ます。 X-Ref Target - Figure 3-32 図 3-32 : パイ プ ラ イ ン レ ジス タ を追加する前の回路図 次の Tcl ス ク リ プ ト は、 2 つの LUT6 セルの間にパ イ プ ラ イ ン レ ジ ス タ を追加 し ます。 こ の レ ジ ス タ は、 ロ ー ド レ ジ ス タ と 同 じ 制御信号を付けて イ ンプ リ メ ン ト さ れます。 create_cell -reference [get_lib_cells -of [get_cells {wbOutputData_reg[29]}]] ECO_pipe_stage[29] foreach control_pin {C CE R} { connect_net -net [get_nets -of [get_pins wbOutputData_reg[29]/${control_pin}]] \ -objects [get_pins ECO_pipe_stage[29]/${control_pin}] } disconnect_net -net [get_nets -of [get_pins {egressLoop[5].egressFifo/O3}]] \ -objects [get_pins {egressLoop[5].egressFifo/O3}] create_net ECO_pipe_stage[29]_in connect_net -net ECO_pipe_stage[29]_in \ -objects [get_pins {egressLoop[5].egressFifo/O3 ECO_pipe_stage[29]/D}] connect_net -net [get_nets -of [get_pins {egressLoop[7].egressFifo/I7}]] \ -objects [get_pins {ECO_pipe_stage[29]/Q}] イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 115 第 3 章 : イ ン プ リ メ ン テーシ ョ ン結果の解析 と 表示 次の図 に、 論理ネ ッ ト リ ス ト の変更が反映 さ れた回路図を示 し ます。 X-Ref Target - Figure 3-33 図 3-33 : パイ プ ラ イ ン レ ジス タ を追加 し た後の回路図 ネ ッ ト リ ス ト を変更 し た ら 、 論理的な変更を確定する 必要があ り ます。 こ れには、 place_design お よ び route_design コ マ ン ド を使用 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 116 付録 A リ モー ト ホス ト お よび LSF の使用 リ モー ト Linux ホス ト での run の実行 概要 ザ イ リ ン ク ス Vivado® IDE では、 複数の Linux ホ ス ト で同時に合成お よ び イ ンプ リ メ ン テーシ ョ ン run を実行で き ま す。 こ れには、 LSF (Load Sharing Facility) を使用す る か、 手動でホ ス ト を設定 し ます。 LSF を使用 し た リ モー ト ホ ス ト の設定方法は、 118 ページの 「LSF を使用 し た リ モー ト ホ ス ト の設定」 を参照 し て く だ さ い。 リ モー ト ホ ス ト を手動で設定す る 方法は、 120 ページの 「 リ モー ト ホ ス ト の手動設定」 を参照 し て く だ さ い。 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 の設定方法は、 122 ページの 「SSH の設定」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 117 付録 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] を ク リ ッ ク し ます。 図 A-1 に、 [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス で LSF を使用す る [Launch runs using LSF] オプシ ョ ン を オンに し た と こ ろ を示 し ます。 X-Ref Target - Figure A-1 図 A-1 : [Launch Selected Runs] ダ イ ア ログ ボ ッ ク スでの LSF の設定 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 118 付録 A : リ モー ト ホス ト および LSF の使用 2. [Vivado Options] ダ イ ア ロ グ ボ ッ ク ス の [Remote Hosts] ページが開 き ます (図 A-2)。 [LSF Configuration] タ ブを ク リ ッ ク し ます。 X-Ref Target - Figure A-2 図 A-2 : [Vivado Options] ダ イ ア ログ ボ ッ ク スの [Remote Hosts] ページ 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>」 と 入力 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 119 付録 A : リ モー ト ホス ト および LSF の使用 リ モー ト ホス ト の手動設定 リ モー ト Linux ホ ス ト で合成ま たは イ ンプ リ メ ン テーシ ョ ン を実行で き る よ う に Vivado IDE を設定す る には、 次の手 順に従い ます。 1. 次のいずれかを実行 し ます。 ° メ イ ン メ ニ ュ ーか ら [Tools] → [Options] を ク リ ッ ク し 、 左側のペ イ ンで [Remote Hosts] を ク リ ッ ク し ます。 ° [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス で [Configure Hosts] を ク リ ッ ク し ます。 ° [Create New Runs] ダ イ ア ロ グ ボ ッ ク ス の [Launch Options] ページで [Configure Hosts] を ク リ ッ ク し ます。 図 A-3 に、 [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス で リ モー ト ホ ス ト で run を実行する [Launch runs on remote hosts] オプシ ョ ン を オンに し た と こ ろ を示 し ます。 X-Ref Target - Figure A-3 図 A-3 : [Launch Selected Runs] ダ イ ア ログ ボ ッ ク スでの リ モー ト ホス ト の設定 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 120 付録 A : リ モー ト ホス ト および LSF の使用 2. [Vivado Options] ダ イ ア ロ グ ボ ッ ク ス の [Remote Hosts] ページが開き ます (図 A-4)。 [Manual Configuration] タ ブを ク リ ッ ク し 、 現在定義 さ れてい る リ モー ト Linux ホ ス ト を表示 し ます。 X-Ref Target - Figure A-4 図 A-4 : リ モー ト ホス ト の設定 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 が設定 さ れていない場合に、 こ のオプシ ョ ン を使用 し て ホ ス ト 環境を設定す る ス ク リ プ ト を実行 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 121 付録 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 こ れで、ど の リ モー ト マシ ンで も パ ス ワー ド を入力せずに使用で き ます。新 し いマシ ンに初めて ア ク セ スす る 場合は、 パ ス ワ ー ド を入力す る よ う 求め ら れますが、 次回か ら は入力す る 必要はあ り ません。 ヒ ン ト : 毎回パ ス ワー ド の入力を求め ら れ る 場合は、 シ ス テ ム管理者に連絡 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 122 付録 B ISE コ マ ン ド と Vivado コ マ ン ド の対照表 Tcl コ マ ン ド と オプ シ ョ ン Vivado® イ ンプ リ メ ン テーシ ョ ンには、 ISE® ツール コ マ ン ド と 1 対 1 で対応す る コ マ ン ド ラ イ ン オプシ ョ ンがい く つかあ り ます。 表 B-1 に、 ISE ツール コ マン ド ラ イ ン オプシ ョ ン と 、 同等の Vivado Design Suite Tcl コ マン ド お よ び Tcl コ マン ド オ プシ ョ ン を示 し ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 16] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 表 B-1 : ISE コ マ ン ド と Vivado コ マ ン ド の対照表 ISE コ マ ン ド ngdbuild -p partname Vivado Tcl コ マ ン ド と オプ シ ョ ン link_design -part partname ngdbuild -a (パ ッ ド を挿入) synth_design -mode out_of_context (バ ッ フ ァ ーを挿入 し ない) 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 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 123 付録 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 を Explore に設定 し て実行 し ます。 Performance_RefinePlacement 配置後の最適化のエ フ ォ ー ト を増加 し 、 配線での タ イ ミ ン グ の緩和を デ ィ ス エーブルに し ます。 Performance_WLBlockPlacement ブ ロ ッ ク RAM お よ び DSP を配置す る 際に タ イ ミ ン グ制約を無視 し 、ワ イ ヤ長を使用 し ます。 Performance_WLBlockPlacementFanoutOpt ブ ロ ッ ク RAM お よ び DSP を配置す る 際に タ イ ミ ン グ制約を無視 し て ワ イ ヤ長を使用 し 、 フ ァ ン ア ウ ト の大 き い ド ラ イ バーの複製を積極的 に実行 し ます。 Performance_NetDelay_high 遅延を少なめに予測す る 代わ り に、 距離の長い フ ァ ン ア ウ ト の大 き い 接続の遅延 コ ス ト を増加 し ま す。 Performance_NetDelay_high で は増加量が最 も 大 き く な り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 124 付録 C : イ ン プ リ メ ン テーシ ョ ンのカ テ ゴ リ 、 ス ト ラ テ ジの説明、 および -directive の設定 表 C-2 : イ ン プ リ メ ン テーシ ョ ン ス ト ラ テジの説明 (続き) [Description] イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ名 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 を Explore に設定 し て実行 し ます。 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 数を削減 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 125 付録 C : イ ン プ リ メ ン テーシ ョ ンのカ テ ゴ リ 、 ス ト ラ テ ジの説明、 および -directive の設定 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ で使用 さ れる opt_design および place_design の -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_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 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 126 付録 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 Explore Performance_RefinePlacement デフ ォル ト NoTimingRelaxation Performance_WLBlockPlacement AlternateReplication MoreGlobalIterations Performance_WLBlockPlacementFanoutOpt AggressiveFanoutOpt HigherDelayCost Performance_NetDelay_high デフ ォル ト AdvancedSkewModeling Performance_NetDelay_medium デフ ォル ト AdvancedSkewModeling Performance_NetDelay_low デフ ォル ト AdvancedSkewModeling Performance_ExploreSLLs デフ ォル ト NoTimingRelaxation Performance_Retiming AlternateFlowWithRetim ing HigherDelayCost Area_Explore デフ ォル ト デフ ォル ト Power_DefaultOpts デフ ォル ト デフ ォル ト Flow_RunPhysOpt Explore デフ ォル ト Flow_RuntimeOptimized デ ィ ス エーブル RuntimeOptimized Flow_RunPostRoutePhysOpt Exploreb デフ ォル ト 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 デフ ォル ト デフ ォル ト a. Explore は配置後お よ び配線後の phys_opt_design 両方に適用 さ れ ます。 b. Explore は配置後お よ び配線後の phys_opt_design 両方に適用 さ れ ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 127 付録 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) 13. 『UltraFast 設計手法ガ イ ド (Vivado Design Suite 用)』 (UG949 : 英語版、 日本語版) イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 128 付録 D : その他のソ ースおよび法的通知 その他の Vivado Design Suite 関連の資料 14. 『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472 : 英語版、 日本語版) 15. 『UltraScale™ アーキテ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572 : 英語版、 日本語版) 16. 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) 17. 『ISE か ら Vivado Design Suite への移行ガ イ ド 』 (UG911) 18. 『Vivado Design Suite チ ュ ー ト リ アル : デザ イ ン フ ロ ーの概要』 (UG888) Vivado Design Suite の資料サイ ト 19. Vivado Design Suite の資料ページ ト レーニ ン グ リ ソ ース ザ イ リ ン ク ス では、本書に含まれ る コ ンセプ ト を説明す る さ ま ざ ま な ト レーニ ン グ コースお よ びオン ラ イ ン ビデオを 提供 し てい ます。 次の リ ン ク か ら 関連す る ト レーニ ン グ リ ソ ース を参照 し て く だ さ い。 1. Vivado での FPGA 設計導入 ト レーニ ン グ コ ース 2. Vivado での FPGA 設計実践 ト レーニ ン グ コ ース 3. Vivado でのア ド バン ス ド FPGA 設計 ト レーニ ン グ コ ース 4. 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 extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and conditions of 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 support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos. © Copyright 2012-2015 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの 右下にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォ ーム か ら お知 ら せ く だ さ い。 フ ィ ー ド バ ッ ク は日本語で 入力可能です。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ ス へのお問い合わせは受 け付け てお り ません。 あ ら か じ めご了承 く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2015.1) 2015 年 4 月 1 日 japan.xilinx.com 129
© Copyright 2025 Paperzz