Comments
Transcript
Vivado Design Suite ユーザー ガイド : インプリメンテーション
Vivado Design Suite ユーザー ガ イ ド イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer 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 the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:http://www.xilinx.com/warranty.htm#critapps. © Copyright 2012-2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners. 本資料は英語版 (v2013.1) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、[email protected] ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付け てお り ません。 あ ら か じ めご了承 く だ さ い。 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂内容 2013 年 3 月 20 日 2013.1 • 「-no_timing_driven オプシ ョ ンの使用」 お よ び 「-verbose オプシ ョ ンの使用」 に関す る 情報 を追加 • 「 イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ」 を大幅に拡張 • 「手動配線」 を ア ッ プデー ト • 新 し いセ ク シ ョ ン 「LUT ロ ー ド のセル入力の固定」 を追加 • 新 し いセ ク シ ョ ン 「-directive オプシ ョ ンの使用」 を追加 • 「物理合成」 セ ク シ ョ ン タ イ ト ルを コ マン ド 名に合わせて 「物理最適化」 に変更 • 「物理最適化」 に新 し い情報を追加 • 新 し いセ ク シ ョ ン 「物理最適化制約」 を追加 • 「phys_opt_design」 のオプシ ョ ンに関す る 詳細情報を追加 • 「 イ ンプ リ メ ン テーシ ョ ン コ マン ド 」 の情報を更新 • 付録 A 「 リ モー ト ホ ス ト の使用」 を大幅にア ッ プデー ト お よ び変更 • Tcl コ マン ド の用語に合わせて 「 イ ン ス タ ン ス」 を 「セル」 に、 「属性」 を 「プ ロ パテ ィ 」 に変更 (HDL キーワ ー ド を除 く ) • 第 2 章 「RPM の定義」 を削除 (XDC マ ク ロ に関す る 新 し いセ ク シ ョ ン も 含む)。 こ の章は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903)に移動 さ れます。 • 全体的にマ イ ナーな表現お よ びフ ォーマ ッ ト の編集 • さ ま ざ ま な図を ア ッ プデー ト • コ ー ド 例を修正 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 2 目次 改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 第 1 章 : Vivado イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス について. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 イ ンプ リ メ ン テーシ ョ ンの前に . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 IP の設定、 イ ンプ リ メ ン ト 、 お よ び検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 イ ンプ リ メ ン テーシ ョ ンでのデザ イ ン制約の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 デザ イ ン チ ェ ッ ク ポ イ ン ト でデザ イ ンの ス ナ ッ プシ ョ ッ ト を保存お よ び復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジのカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 イ ンプ リ メ ン テーシ ョ ン run の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 プ ロ セ ス のバ ッ ク グ ラ ウ ン ド への移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 イ ンプ リ メ ン テーシ ョ ンの段階ご と の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 イ ンプ リ メ ン テーシ ョ ン run の監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 イ ン ク リ メ ン タ ル コ ンパ イ ルを使用 し た配置配線の実行時間の短縮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 イ ンプ リ メ ン テーシ ョ ン完了後の次の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 メ ッ セージの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 イ ンプ リ メ ン テーシ ョ ン レ ポー ト の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 第 2 章 : イ ン プ リ メ ン テーシ ョ ン コ マ ン ド イ ンプ リ メ ン テーシ ョ ン コ マ ン ド について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ンのサブプ ロ セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 合成済みデザ イ ン を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ロ ジ ッ ク 最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 消費電力の最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 物理最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 配線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 55 56 59 62 64 68 71 第 3 章 : 配線および ロ ジ ッ ク の変更 配線お よ び ロ ジ ッ ク の変更について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 配線の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ロ ジ ッ ク の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 付録 A : リ モー ト ホス ト の使用 リ モー ト Linux ホ ス ト での run の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 SSH の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 付録 B : ISE コ マ ン ド と Vivado コ マ ン ド の対照表 Tcl コ マ ン ド と オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 3 付録 C : その他の リ ソ ース ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ソ リ ュ ーシ ョ ン セ ン タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 4 第 1章 Vivado イ ン プ リ メ ン テーシ ョ ン プ ロ セス Vivado イ ン プ リ メ ン テーシ ョ ン プ ロ セスについて ザ イ リ ン ク ス Vivado® Design Suite では、 次の よ う な さ ま ざ ま なデザ イ ン ソ ース か ら ザ イ リ ン ク ス 7 シ リ ーズ FPGA デザ イ ン を イ ンプ リ メ ン テーシ ョ ンで き ます。 • RTL デザ イ ン • ネ ッ ト リ ス ト デザ イ ン • IP 中心のデザ イ ン 詳細は、 図 1-1 を参照 し て く だ さ い。 Vivado イ ンプ リ メ ン テーシ ョ ンは、 デザ イ ンの論理制約、 物理制約、 タ イ ミ ン グ制約を満た し なが ら ネ ッ ト リ ス ト を FPGA デバ イ ス リ ソ ース に配置配線す る ためのすべての手順を含みます。 Vivado ツールでサポー ト さ れ る デザ イ ン フ ロ ーの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの 概要』 (UG892) [参照 1] を参照 し て く だ さ い。 Vivado イ ンプ リ メ ンテーシ ョ ンでの SDC および XDC 制約のサポー ト Vivado イ ン プ リ メ ン テーシ ョ ンは、 タ イ ミ ン グ ド リ ブ ン フ ロ ーです。 デザ イ ンの要件お よ び制限を指定す る のに、 業界標準の Synopsys デザ イ ン制約 (SDC) と ザ イ リ ン ク ス デザ イ ン制約 (XDC) がサポー ト さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 5 Vivado イ ン プ リ メ ン テーシ ョ ン プ ロ セスについて X-Ref Target - Figure 1-1 &6RXUFHV +LJK/HYHO 6\QWKHVLV 6\VWHP *HQHUDWRU '63GHVLJQ ,3,QWHJUDWLRQ (PEHGGHG /RJLF'63« ,33DFNDJLQJ ,3&DWDORJ 6RXUFHV±57/ 1HWOLVW&RQVWUDLQWV 57/6\VWHP,QWHJUDWLRQ ;LOLQ[,3 UG 3DUW\,3 8VHU,3 6\QWKHVLV ,PSOHPHQWDWLRQ 3URJUDPPLQJ DQG'HEXJ 'HVLJQ $QDO\VLV &RQVWUDLQWV 6LPXODWLRQ 'HEXJJLQJ &URVV3URELQJ (&2 ; 図 1-1 : Vivado Design Suite のデザイ ン フ ロー Vivado イ ン プ リ メ ン テーシ ョ ンのサブ プ ロ セス Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス には、デザ イ ンの論理変換お よび物理変換が含まれます。 イ ンプ リ メ ン テー シ ョ ン プ ロ セ ス には、 次のサブプ ロ セ ス があ り ます。 • opt_design (デザ イ ンの最適化) タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス に フ ィ ッ ト し やすい よ う に論理デザ イ ン を最適化 し ます。 • power_opt_design (デザ イ ンの消費電力最適化) タ ーゲ ッ ト のザ イ リ ン ク ス デバ イ ス の消費電力を削減す る よ う デザ イ ン エ レ メ ン ト を最適化 し ます。 注記 : こ の手順はオプシ ョ ンです。 • place_design (デザ イ ンの配置) デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配置 し ます。 • phys_opt_design (デザ イ ンの物理最適化) フ ァ ン ア ウ ト の大き いネ ッ ト の ド ラ イ バーを複製 し て ロ ー ド を分散する こ と に よ り 、 デザ イ ンの タ イ ミ ン グ を最 適化 し ます。 注記 : こ の手順はオプシ ョ ンです。 • route_design (デザ イ ンの配線) デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配線 し ます。 • write_bitstream (ビ ッ ト ス ト リ ームの生成) ザ イ リ ン ク ス デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの ビ ッ ト ス ト リ ーム を生成 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 6 Vivado イ ン プ リ メ ン テーシ ョ ン プ ロ セスについて Flow Navigator から デザイ ン を統合、 イ ン プ リ メ ン ト 、 検証 Vivado 統合設計環境 (IDE) を使用す る と 、 完全なデザ イ ン フ ロ ーを実行で き ます。 Vivado IDE には、 Flow Navigator と い う フ ロ ーを制御する イ ン タ ーフ ェ イ ス があ り ます。 Flow Navigator か ら 、 デザ イ ンお よ び IP を統合、 イ ンプ リ メ ン ト 、 お よ び検証で き ます。 デザ イ ン フ ロ ーを簡略化す る ため、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス全体を コ マン ド を ク リ ッ ク す る だけで実行で き ます。 詳細は、 図 1-2 を参照 し て く だ さ い。 X-Ref Target - Figure 1-2 図 1-2 : Flow Navigator : [Implemention] セ ク シ ョ ン 重要 : こ のガ イ ド では、 イ ンプ リ メ ン テーシ ョ ン以外の Vivado IDE の詳細は説明 し ません。 FPGA デザ イ ン フ ロ ー全 体に関連する Vivado IDE の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参 照 し て く だ さ い。 Tcl API によ る ス ク リ プ ト のサポー ト Vivado Design Suite には、 Tcl API が含ま れてい ます。 Tcl API を使用す る と 、 すべてのデザ イ ン フ ロ ーを ス ク リ プ ト で実行で き 、 デザ イ ン フ ロ ーを要件に合わせて カ ス タ マ イ ズで き ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 12] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 7 イ ン プ リ メ ン テーシ ョ ンの前に イ ン プ リ メ ン テーシ ョ ンの前に Vivado Design Suite では さ ま ざ ま なデザ イ ン フ ロ ーが提供 さ れてお り 、多種のデザ イ ン ソ ース がサポー ト さ れてい ま す。 FPGA デバ イ ス にダ ウ ン ロ ー ド 可能な ビ ッ ト ス ト リ ーム を生成す る には、 イ ンプ リ メ ン テーシ ョ ン を実行す る 必 要があ り ます。 イ ンプ リ メ ン テーシ ョ ンは、 論理ネ ッ ト リ ス ト を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス の物理的な ア レ イ にマ ッ プす る ための一連の手順を指 し ます。 次の手順が含まれます。 • ロ ジ ッ ク 最適化 • ラ イ ブ ラ リ セルの配置 • セル間の接続の配線 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド プ ロ ジ ェ ク ト フ ァ イ ル (.xpr) と そのデ ィ レ ク ト リ 構造を作成す る と 、 次が可能にな り ます。 • デザ イ ン ソ ース フ ァ イ ルの管理 • 合成 run お よ び イ ンプ リ メ ン テーシ ョ ン run の結果の保存 • デザ イ ン フ ロ ーを通 し てプ ロ ジ ェ ク ト ス テー タ ス を監視 ヒ ン ト : プ ロ ジ ェ ク ト フ ァ イ ルお よ び ロ ーカル デ ィ レ ク ト リ を作成せずに、 すべて メ モ リ 内で作業す る こ と も 可能 です。 プ ロ ジ ェ ク ト モー ド プ ロ ジ ェ ク ト モー ド では、 デ ィ ス ク 上にデ ィ レ ク ト リ 構造が作成 さ れ、 次が管理 さ れます。 • デザ イ ン ソ ース • run 結果 • プ ロ ジ ェ ク ト ス テー タ ス デザ イ ン デー タ 、 プ ロ セ ス、 お よ びス テー タ ス を自動管理する には、 Vivado プ ロ ジ ェ ク ト フ ァ イ ル (.xpr) に保存 さ れ る プ ロ ジ ェ ク ト イ ン フ ラ ス ト ラ ク チ ャ が必要です。 ま た、 デザ イ ン フ ロ ーの主要な段階のチ ェ ッ ク ポ イ ン ト フ ァ イ ルが、 自動的に ローカル プ ロ ジ ェ ク ト デ ィ レ ク ト リ に保存 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 8 イ ン プ リ メ ン テーシ ョ ンの前に 非プ ロ ジ ェ ク ト モー ド プ ロ ジ ェ ク ト フ ァ イ ルを使用 し ない コ ンパ イ ル形式の フ ロ ーは、 非プ ロ ジ ェ ク ト モー ド と 呼ばれ ます。 非プ ロ ジ ェ ク ト モー ド では、 デザ イ ン を メ モ リ 内ですべて操作で き ます。 ソ ース フ ァ イ ルお よ びデザ イ ン制約は、 現在の場所 か ら メ モ リ に読み込みます。 メ モ リ 内のデザ イ ンでデザ イ ン フ ロ ーを実行する 際、中間フ ァ イ ルが記述 さ れ る こ と は あ り ません。 非プ ロ ジ ェ ク ト モー ド では、Tcl コ マ ン ド を使用 し 、デザ イ ン パ ラ メ ー タ ーお よ び イ ンプ リ メ ン テーシ ョ ン オプシ ョ ン を設定 し て、 各手順を個別に実行する 必要があ り ます。 変更を保存 し た り 手順を再実行 し た り する 必要な く 、 デザ イ ンに変更を加え、 デザ イ ン フ ロ ーを続行で き ます。 デザ イ ン フ ロ ーの ど の段階で も 、 レ ポー ト を生成 し た り 、 デザ イ ン チ ェ ッ ク ポ イ ン ト (.dcp) を保存 し た り で き ます。 重要 : 非プ ロ ジ ェ ク ト モー ド では、 Vivado デザ イ ン ツールを終了す る と 、 メ モ リ 内のデザ イ ンは失われ ます。 その ため、 合成、 配置、 配線な ど の主な手順が終了 し た ら 、 デザ イ ン チ ェ ッ ク ポ イ ン ト を保存する こ と をお勧め し ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で保存で き ま す。 デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込む こ と がで き る のは、 非プ ロ ジ ェ ク ト モー ド のみです。 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド の違い Vivado イ ンプ リ メ ン テーシ ョ ンは、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で実行で き ます。 Vivado IDE お よ び Tcl API は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で使用で き ます。 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド には、 違い も 多数あ り ます。 次に、 非プ ロ ジ ェ ク ト モー ド では使用で き ない機能を示 し ます。 • Flow Navigator • デザ イ ン ス テー タ ス イ ン ジケー タ ー • IP カ タ ロ グ • イ ンプ リ メ ン テーシ ョ ン run お よ び run ス ト ラ テジ • [Design Runs] ビ ュ ー • [Messages] ビ ュ ー • [Reports] ビ ュ ー 注記 : こ の リ ス ト には、 非プ ロ ジ ェ ク ト モー ド でサポー ト さ れない機能がすべて含まれてい る わけではあ り ません。 非プ ロ ジ ェ ク ト ベース のデザ イ ン を イ ンプ リ メ ン ト す る には、 次の Tcl コ マン ド を個別に実行す る 必要があ り ます。 • opt_design • place_design • route_design イ ンプ リ メ ン テーシ ョ ンの各段階は、 Vivado IDE ま たは Tcl コ ン ソ ールか ら 対話的に実行す る か、 カ ス タ ム Tcl ス ク リ プ ト を使用 し て実行で き ます。 デザ イ ン フ ロ ーは、 必要に応 じ て レ ポー ト コ マ ン ド や最適化を追加 し て カ ス タ マ イ ズで き ます。 詳細は、 「非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 こ のガ イ ド では、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行について詳 細に説明 し ます。 プ ロ ジ ェ ク ト モー ド ま たは非プ ロ ジ ェ ク ト モー ド を使用 し た Vivado Design Suite の実行に関す る 詳細は、次の資料を 参照 し て く だ さ い。 • 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) [参照 1] • 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 9 イ ン プ リ メ ン テーシ ョ ンの前に RTL および合成済みデザイ ン Vivado Design Suite を使用 し て、 RTL 開発、 IP のカ ス タ マ イ ズ、 合成、 イ ンプ リ メ ン テーシ ョ ン、 デバ イ ス のプ ロ グ ラ ムお よ び検証ま で、 FPGA デザ イ ン フ ロ ー プ ロ セ スすべて を管理で き ます。 プ ロ ジ ェ ク ト へのオブ ジ ェ ク ト の追加 次のオブジ ェ ク ト を プ ロ ジ ェ ク ト に追加で き ます。 • Verilog、 SystemVerilog、 VHDL フ ァ イ ルな ど の HDL ソ ース フ ァ イ ル • 定義お よ びコ ン フ ィ ギ ュ レーシ ョ ン済みのザ イ リ ン ク ス IP コ ア • System Generator か ら の DSP (デジ タ ル信号処理) モジ ュ ール • Vivado 高位合成 (HLS) か ら の C ベース の DSP モジ ュ ール • Xilinx Platform Studio (XPS) か ら のエンベデ ッ ド プ ロ セ ッ サ モジ ュ ール 合成済みネ ッ ト リ ス ト のイ ンポー ト Vivado Design Suite では、 ネ ッ ト リ ス ト デザ イ ンがサポー ト さ れてお り 、 ザ イ リ ン ク ス ツールま たはサー ド パーテ ィ ツールで合成済みのネ ッ ト リ ス ト を イ ンポー ト で き ます。 サポー ト さ れ る ネ ッ ト リ ス ト フ ォーマ ッ ト は、次の と お り です。 • Structural Verilog • SystemVerilog • EDIF • ザ イ リ ン ク ス NGC Vivado Design Suite でサポー ト さ れ る ソ ース フ ァ イ ルお よ びプ ロ ジ ェ ク ト タ イ プの詳細は、『Vivado Design Suite ユー ザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 4] を参照 し て く だ さ い。 RTL ソ ースか ら開始 Vivado イ ンプ リ メ ン テーシ ョ ン を実行す る には、 合成済みネ ッ ト リ ス ト が必要です。 デザ イ ンは合成済みネ ッ ト リ ス ト か ら 、 ま たは RTL ソ ース フ ァ イ ルか ら 開始で き ます。 重要 : RTL ソ ース か ら 開始す る 場合は、 イ ンプ リ メ ン テーシ ョ ンの前に Vivado 合成ま たは XST を実行す る 必要があ り ます。 Vivado IDE では、 こ れが自動的に管理 さ れます。 合成 さ れていないデザ イ ン を イ ンプ リ メ ン ト し よ う と す る と 、 まず合成を実行する かど う かを選択する オプシ ョ ンが表示 さ れます。 Vivado 合成の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 6] を参照 し て く だ さ い。 非プ ロ ジ ェ ク ト モー ド で合成済みデザイ ン を作成 し て開 く 非プ ロ ジ ェ ク ト モー ド では、 Tcl コ マ ン ド synth_design を使用 し て合成を実行 し 、 合成済みデザ イ ン を作成 し て 開 く 必要が あ り ま す。 サ ポー ト さ れ て い る 入力 フ ォ ーマ ッ ト の合成済みネ ッ ト リ ス ト を 開 く には、 Tcl コ マ ン ド link_design も 使用で き ます。 詳細は、 第 2 章 「 イ ンプ リ メ ン テーシ ョ ン コ マン ド 」 の 「合成済みデザ イ ン を開 く 」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 10 IP の設定、 イ ン プ リ メ ン ト 、 および検証 プ ロ ジ ェ ク ト モー ド で イ ン プ リ メ ン テ ーシ ョ ン前にデザ イ ン ネ ッ ト リ ス ト を 読み込む プ ロ ジ ェ ク ト モー ド では、 RTL デザ イ ンの合成後、 ま たはネ ッ ト リ ス ト ベース プ ロ ジ ェ ク ト を開いて、 イ ンプ リ メ ン テーシ ョ ン前のデザ イ ン ネ ッ ト リ ス ト を読み込む こ と がで き ます。 合成済みデザ イ ン を開 く には、 次のいずれかを実行 し ます。 • メ イ ン メ ニ ュ ーか ら [Flow] → [Open Synthesized Design] を ク リ ッ ク し ます。 • Flow Navigator で [Synthesis] → [Open Synthesized Design] を ク リ ッ ク し ます。 • [Design Runs] ビ ュ ーで合成 run を右 ク リ ッ ク し 、 [Open Synthesized Design] を ク リ ッ ク し ます。 IP の設定、 イ ン プ リ メ ン ト 、 および検証 Vivado IP カ タ ロ グ を 使用す る と 、 IP を 設定、 イ ン プ リ メ ン ト 、 お よ び検証で き ま す。 IP は、 ス タ ン ド ア ロ ン のモ ジ ュ ール と し て、 ま たはシ ス テ ム レベル デザ イ ンの一部 と し て設定お よ び検証で き ます。 IP カ タ ログの内容 IP カ タ ロ グ には、 ザ イ リ ン ク ス LogicCORE™ IP すべて と 、 カ タ ロ グ に追加 さ れたユーザー定義の IP お よ びサー ド パーテ ィ IP が表示 さ れます。 カ タ ロ グには、 次の情報が含まれてい ます。 • IP タ イ プ • バージ ョ ン • デー タ シー ト • ラ イ セ ン ス情報 RTL デザイ ンへの IP コ アの追加 RTL デザ イ ンに IP コ ア を追加す る には、イ ン ス タ ン シエーシ ョ ン テ ンプ レー ト を シ ス テ ム レベル デザ イ ンに挿入 し ます。 IP は、 ネ ッ ト リ ス ト ではな く RTL ソ ース と し て作成 さ れます。 合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行す る と 、 デ ザ イ ンのほかの部分 と 共に IP が合成お よ び イ ンプ リ メ ン ト さ れます。 IP は、 ス タ ン ド ア ロ ン モジ ュ ール と し て合成 し 、 そのネ ッ ト リ ス ト を ネ ッ ト リ ス ト デザ イ ンに追加す る こ と も 可能 です。 表 1-1 : サポー ト さ れる IP ネ ッ ト リ ス ト フ ォ ーマ ッ ト Verilog ザイ リ ン ク ス • .xco • .xci • .ngc .v EDIF .edf Vivado ツールでサポー ト さ れ る IP 中心のデザ イ ンの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設 計』 (UG896) [参照 5] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 11 イ ン プ リ メ ン テーシ ョ ン でのデザイ ン制約の使用 イ ン プ リ メ ン テーシ ョ ン でのデザイ ン制約の使用 イ ンプ リ メ ン テーシ ョ ン を実行する 際は、 デザ イ ン制約を設定 し てお く こ と をお勧め し ます。 デザ イ ン制約には、 物 理制約 と タ イ ミ ン グ制約の 2 種類があ り ます。 こ のセ ク シ ョ ンには、 次の内容が含まれます。 • 物理制約 • タ イ ミ ン グ制約 • UCF タ イ ミ ン グ制約はサポー ト さ れない • 制約セ ッ ト に よ り 複数の制約フ ァ イ ルをデザ イ ンに適用 • 制約を attribute 文 と し て追加 物理制約 物理制約は、 次を定義 し ます。 • ピ ン配置 • 次の よ う なセルの絶対ま たは相対配置 • ° BRAM ° DSP ° LUT ° フ リ ッ プフ ロ ッ プ デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定 タ イ ミ ング制約 タ イ ミ ン グ制約は業界標準の SDC で記述 さ れ、 デザ イ ンの周波数要件を定義 し ます。 タ イ ミ ン グ制約を設定 し ない場合、 デザ イ ンが ワ イ ヤの長 さ お よ び配線の密集度にのみ基づいて最適化 さ れ、 デザ イ ン パフ ォーマン ス が評価 さ れた り 向上 し た り す る こ と はあ り ません。 UCF タ イ ミ ング制約はサポー ト さ れない 重要 : Vivado Design Suite では、 UCF フ ォーマ ッ ト はサポー ト さ れません。 UCF 制約を XDC コ マン ド に変換す る 方法については、 『Vivado Design Suite 移行手法ガ イ ド 』 (UG911) [参照 13] を参 照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 12 イ ン プ リ メ ン テーシ ョ ン でのデザイ ン制約の使用 制約セ ッ ト に よ り 複数の制約フ ァ イルをデザイ ンに適用 制約セ ッ ト は、 デザ イ ン に適用す る 制約フ ァ イ ルの リ ス ト です。 制約セ ッ ト には、 XDC フ ァ イ ルに記述 さ れたデザ イ ン制約が含まれます。 制約セ ッ ト の構造 次の制約セ ッ ト の構造がサポー ト さ れます。 • 複数の制約フ ァ イ ルを含む制約セ ッ ト • 個別の物理制約フ ァ イ ルお よ び タ イ ミ ン グ制約フ ァ イ ルを含む制約セ ッ ト • マ ス タ ー制約フ ァ イ ル • 新 し い制約フ ァ イ ルに制約の変更を保存 • 複数の制約セ ッ ト ヒ ン ト : 制約を機能に応 じ て別の制約フ ァ イ ルに分けてお く と 、 制約ス ト ラ テジ全体がわか り やす く な り 、 タ イ ミ ン グお よ び イ ンプ リ メ ン テーシ ョ ン を変更 し やす く な り ます。 複数の制約セ ッ ト プ ロ ジ ェ ク ト に複数の制約セ ッ ト を作成で き ます。 複数の制約セ ッ ト を作成す る と 、 異な る イ ンプ リ メ ン テーシ ョ ン run で異な る 制約を試す こ と がで き ます。 た と えば、 合成 と イ ンプ リ メ ン テーシ ョ ンに異な る 制約セ ッ ト を指定で き ます。 合成、 シ ミ ュ レーシ ョ ン、 イ ンプ リ メ ン テーシ ョ ンで異な る 制約を適用 し て試す こ と がで き ます。 デザ イ ン制約を複数の制約セ ッ ト を使用 し て整理する と 、 次の よ う な利点があ り ます。 • 同 じ プ ロ ジ ェ ク ト で異な る ザ イ リ ン ク ス FPGA デバ イ ス を タ ーゲ ッ ト と し て設定で き ます。 タ ーゲ ッ ト パーツ が異な る と 、 物理制約お よ び タ イ ミ ン グ制約 も 異な る も のにする 必要があ る 場合があ り ます。 • さ ま ざ ま な条件でデザ イ ン を実行で き ます。 制約セ ッ ト を使用 し て、 異な る フ ロ アプ ラ ン を適用 し た り 、 デザ イ ンの制約を厳 し く し た り で き ます。 • 制約の変更を管理 し や く すな り ま す。 マ ス タ ー制約の代わ り に、 別の制約フ ァ イ ルに保存 し た制約を使用で き ます。 ヒ ン ト : タ イ ミ ン グ制約を検証す る には、 合成済みデザ イ ン で report_timing_summary コ マ ン ド を実行 し ます。 イ ンプ リ メ ン テーシ ョ ンの前に、 問題のあ る 制約を修正 し て く だ さ い。 配置配線に影響す る 制約の定義お よ び制約での作業の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 7] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 13 デザイ ン チ ェ ッ ク ポ イ ン ト でデザイ ンのスナ ッ プ シ ョ ッ ト を保存および復元 制約を attribute 文 と し て追加 制約は、 HDL ソ ー ス に attribute 文 と し て追加で き ま す。 属性は、 Verilog お よ び VHDL ソ ー ス の両方に追加で き 、 Vivado 合成ま たは Vivado イ ンプ リ メ ン テーシ ョ ンに渡す こ と がで き ます。 RTL 属性 と し てのみ設定可能で、 XDC で は設定で き ない制約 も あ り ます。 こ の場合、 制約を HDL ソ ース フ ァ イ ルで属性 と し て指定す る 必要があ り ます。 た と えば、 相対配置マ ク ロ (RPM) は プ ロ パテ ィ と し て定義する 必要があ り ます。 RPM と は、 複数の ロ ジ ッ ク エ レ メ ン ト (FF、 LUT、 DSP、 RAM な ど) を 1 つのセ ッ ト に ま と めた も のです。 デザ イ ン エ レ メ ン ト のセ ッ ト を U_SET ま たは HU_SET 制約を使用 し て定義 し 、 相対 ロ ケーシ ョ ン制約 (RLOC) を使 用 し て、 セ ッ ト のほかのエ レ メ ン ト に対 し てそれ ら のオブジ ェ ク ト を配置で き ます。 相対 ロ ケーシ ョ ン制約の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 7] を参照 し て く だ さ い。 U_SET、 HU_SET、 お よ び RLOC 制約は、 Tcl コ マ ン ド を使用 し て XDC で指定す る こ と はで き ませんが、 HDL ソ ー ス フ ァ イ ルの属性 と し て定義で き ます。 XDC でサポー ト さ れない制約の詳細は、『Vivado Design Suite 移行手法ガ イ ド 』 (UG911) [参照 13] を参照 し て く だ さ い。 デザイ ン チ ェ ッ ク ポ イ ン ト でデザイ ンのスナ ッ プ シ ョ ッ ト を保存および復元 Vivado Design Suite では、 物理デザ イ ン デー タ ベース を使用 し て配置配線情報を格納 し ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (.dcp) を使用す る と 、デザ イ ン フ ロ ーの主要な段階で こ の物理デー タ ベース を保存お よ び復元で き ま す。 チ ェ ッ ク ポ イ ン ト は、 フ ロ ーの特定の地点におけ る デザ イ ンの ス ナ ッ プシ ョ ッ ト です。 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルには、 次の も のが含まれます。 • イ ンプ リ メ ン テーシ ョ ン中に適用 さ れた最適化を含む現在のネ ッ ト リ ス ト • デザ イ ン制約 • イ ンプ リ メ ン テーシ ョ ン結果 チ ェ ッ ク ポ イ ン ト デザ イ ンに対 し ては、 Tcl コ マン ド を使用 し てデザ イ ン フ ロ ーの残 り の段階を実行で き ます。 新 し いデザ イ ン ソ ース を使用 し て変更す る こ と はで き ません。 チ ェ ッ ク ポ イ ン ト フ ァ イルの保存 フ ロ ーの任意の段階におけ る デザ イ ン デー タ ベース の スナ ッ プシ ョ ッ ト を保存す る には、 [File] → [Write Checkpoint] を ク リ ッ ク し ます。 こ れに よ り 、 拡張子が .dcp の フ ァ イ ルが作成 さ れます。 こ れに相当する Tcl コ マ ン ド は write_checkpoint です。 チ ェ ッ ク ポ イ ン ト フ ァ イルの読み込み Vivado Design Suite でチ ェ ッ ク ポ イ ン ト を開 く には、 [File] → [Open Checkpoint] を ク リ ッ ク し ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト が別のプ ロ ジ ェ ク ト と し て開 き ます。 既存のプ ロ ジ ェ ク ト に読み込む こ と はで き ません。 こ れに相当する Tcl コ マ ン ド は read_checkpoint です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 14 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ン の実行 合成済みデザ イ ン ま たはネ ッ ト リ ス ト を タ ーゲ ッ ト のザ イ リ ン ク ス FPGA デバ イ ス に イ ンプ リ メ ン ト する には、 ネ ッ ト リ ス ト と デザ イ ン制約に対 し て次のプ ロ セ ス を実行する 必要があ り ます。 • 最適化 • 配置 • 配線 こ れ ら のプ ロ セ ス は、 ま と めて 「 イ ンプ リ メ ン テーシ ョ ン」 と 呼ばれます。 非プ ロ ジ ェ ク ト モー ド では、 複数の Tcl コ マン ド を順に実行す る か、 デザ イ ン フ ロ ーを定義 し た Tcl ス ク リ プ ト を使 用 し ます。 Tcl コ マ ン ド は、 Vivado IDE の Tcl コ ン ソ ールか ら 入力す る か、 Vivado Design Suite Tcl シ ェ ルの 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.edf # 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 place_design # Step 6:Route the design route_design # 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 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 15 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 非プ ロ ジ ェ ク ト モー ド のサン プル ス ク リ プ ト での主要な手順 「非プ ロ ジ ェ ク ト モー ド のサンプル ス ク リ プ ト 」 では、 次の手順が実行 さ れます。 • 手順 1 : デザ イ ン ソ ース フ ァ イ ルの読み込み • 手順 2 : メ モ リ 内へのデザ イ ンの構築 • 手順 3 : デザ イ ン制約の読み込み • 手順 4 : ロ ジ ッ ク 最適化の実行 • 手順 5 : ネ ッ ト リ ス ト エ レ メ ン ト の配置 • 手順 6 : デザ イ ンの配線 • 手順 7 : レ ポー ト の生成 • 手順 8 : デザ イ ン チ ェ ッ ク ポ イ ン ト の保存 手順 1 : デザイ ン ソ ース フ ァ イルの読み込み 「非プ ロ ジ ェ ク ト モー ド のサンプル ス ク リ プ ト 」 では、 デザ イ ン ソ ースは EDIF ネ ッ ト リ ス ト フ ァ イ ルです。 非プ ロ ジ ェ ク ト モー ド では、 RTL デザ イ ン フ ロ ー も サポー ト さ れてい ます。 その場合、 ソ ース フ ァ イ ルを読み込んで イ ン プ リ メ ン テーシ ョ ンの前に合成を実行 し ます。 read_* Tcl コ マ ン ド は非プ ロ ジ ェ ク ト モー ド で使用す る コ マ ン ド で、 デ ィ ス ク 上の フ ァ イ ルを読み込んで メ モ リ 内 にデザ イ ン を構築 し ます。 フ ァ イ ルが コ ピー さ れた り 、 フ ァ イ ルの依存関係が作成 さ れ る こ と はあ り ません。 そのため、 非プ ロ ジ ェ ク ト モー ド は非常に柔軟です。 重要 : ユーザーが ソ ース デザ イ ン フ ァ イ ルの変更を管理 し 、 それに応 じ てデザ イ ン を ア ッ プデー ト す る 必要があ り ます。 手順 2 : メ モ リ 内へのデザイ ンの構築 link_design コ マ ン ド を使用 し てデザ イ ンの メ モ リ 内表示を構築 し ます。 こ の コ マン ド は、 ツールに読み込まれた ネ ッ ト リ ス ト ベース の ソ ース フ ァ イ ルをザ イ リ ン ク ス のデバ イ ス情報 と 結合 し て、 メ モ リ 内にデザ イ ン デー タ ベー ス を作成 し ます。 非プ ロ ジ ェ ク ト モー ド でのすべての操作は、 Vivado ツール内の イ ン メ モ リ デー タ ベース に対 し て実行 さ れます。 Vivado ツールをバ ッ チ モー ド で実行 し てい る 場合で も 、 Tcl シ ェ ル モー ド で対話的に Tcl コ マン ド を実行 し てい る 場 合で も 、グ ラ フ ィ カル モー ド でデザ イ ン デー タ を Vivado IDE で表示 し てい る 場合で も 、メ モ リ 内のデザ イ ンは Vivado ツール内に存在 し ます。 手順 3 : デザイ ン制約の読み込み Vivado Design Suite では、 デザ イ ン制約を使用 し てデザ イ ンの物理特性お よ び タ イ ミ ン グ特性を定義 し ます。 詳細は、 12 ページの 「 イ ンプ リ メ ン テーシ ョ ンでのデザ イ ン制約の使用」 を参照 し て く だ さ い。 read_xdc コ マ ン ド は、 XDC 制約フ ァ イ ルを読み込み、 メ モ リ 内のデザ イ ンに適用 し ます。 ヒ ン ト : プ ロ ジ ェ ク ト モー ド では、 異な る 目的で複数の制約フ ァ イ ルを含む制約セ ッ ト を定義で き ますが、 非プ ロ ジ ェ ク ト モー ド では、 同 じ 操作を実行す る のに複数の read_xdc コ マン ド を使用 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 16 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 手順 4 : ロ ジ ッ ク 最適化の実行 配置配線の準備 と し て ロ ジ ッ ク 最適化を実行 し ます。最適化では、 タ ーゲ ッ ト デバ イ ス の物理 リ ソ ース に配置す る 前 に ロ ジ ッ ク デザ イ ンが簡略化 さ れます。 Vivado のネ ッ ト リ ス ト 最適化では、 デザ イ ン要件を満たすため、 さ ま ざ ま な最適化機能が提供 さ れてい ます。 詳細は、 59 ページの 「 ロ ジ ッ ク 最適化」 を参照 し て く だ さ い。 手順 5 : ネ ッ ト リ ス ト エ レ メ ン ト の配置 デザ イ ンの全体的な配置を実行 し ます。 デザ イ ンの階層お よ び配置の困難 さ に よ っ て、 配置が複数の段階で実行 さ れ る こ と も あ り ます。 詳細は、 64 ページの 「配置」 を参照 し て く だ さ い。 手順 6 : デザイ ンの配線 route_design コ マ ン ド はデザ イ ンに必要な配線を完成 さ せます。 Vivado 配線では、 すべてのデザ イ ン タ イ プで タ イ ミ ン グ ド リ ブン配線が実行 さ れます。 困難なデザ イ ンには、 再配線を使用 し て詳細な制御が可能です。 詳細は、 71 ページの 「配線」 を参照 し て く だ さ い。 手順 7 : レ ポー ト の生成 「非プ ロ ジ ェ ク ト モー ド のサ ンプル ス ク リ プ ト 」 では、 Vivado Design Suite で提供 さ れ る 多数の レ ポー ト の う ち 2 つ を生成 し ます。 非プ ロ ジ ェ ク ト モー ド では、 各レ ポー ト を Tcl コ マン ド を使用 し て生成す る 必要があ り ます。 レ ポー ト はフ ァ イ ルに出力する か、 Vivado IDE に表示 し て確認で き ます。 詳細は、 51 ページの 「 イ ンプ リ メ ン テーシ ョ ン レ ポー ト の表示」 を参照 し て く だ さ い。 手順 8 : デザイ ン チ ェ ッ ク ポ イ ン ト の保存 メ モ リ 内のデザ イ ン をデザ イ ン チ ェ ッ ク ポ イ ン ト に保存 し ます。 保存 さ れたチ ェ ッ ク ポ イ ン ト デザ イ ンには、 次が 含まれます。 • 最適化 さ れたネ ッ ト リ ス ト • 物理制約お よ び タ イ ミ ン グ制約 • ザ イ リ ン ク ス パーツ情報 • 配置配線情報 非プ ロ ジ ェ ク ト モー ド では、 デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルを保存す る こ と で、 後でデザ イ ン を読み込んで解 析 し た り 変更 し た り で き ます。 詳細は、 14 ページの 「デザ イ ン チ ェ ッ ク ポ イ ン ト でデザ イ ンの スナ ッ プシ ョ ッ ト を保存お よ び復元」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 17 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの 実行 プ ロ ジ ェ ク ト モー ド では、 次が可能です。 • 特定の合成結果お よ びデザ イ ン制約を使用する イ ンプ リ メ ン テーシ ョ ン run を定義 • 1 つのデザ イ ンに対 し て複数の ス ト ラ テジ を実行 • デザ イ ン要件を満たすため イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を カ ス タ マ イ ズ • カ ス タ マ イ ズ し た イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ をほかのデザ イ ン で使用す る ため保存 重要 : 非プ ロ ジ ェ ク ト モー ド では、定義済みの イ ンプ リ メ ン テーシ ョ ン run お よ びス ト ラ テジはサポー ト さ れません。 Tcl コ マ ン ド を 使用 し て、 イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス の各段階 を 手動で実行す る 必要が あ り ま す。 詳細は、 15 ページの 「非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン run の作成 新 し い イ ンプ リ メ ン テーシ ョ ン run を作成 し て起動 し 、 最適な結果が得 ら れ る よ う さ ま ざ ま なオプシ ョ ン を試す こ と がで き ます。 各 run は順次起動す る か、 複数の ロ ーカル CPU で同時に起動で き ます。 Linux シ ス テ ム では、 リ モー ト サーバーで run を実行す る こ と も 可能です。 詳細は、 付録 A 「 リ モー ト ホ ス ト の使 用」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン run の定義 イ ンプ リ メ ン テーシ ョ ン run を定義す る には、 次の手順に従い ます。 1. 次のいずれかを実行 し ます。 ° メ イ ン メ ニ ュ ーか ら [Flow] → [Create Runs] を ク リ ッ ク し ます。 ° Flow Navigator で [Implementation] を右 ク リ ッ ク し 、 [Create Implementation Runs] を ク リ ッ ク し ます。 ° [Design Runs] ビ ュ ーを右 ク リ ッ ク し 、 [Create Runs] を ク リ ッ ク し ます。 Create New Runs ウ ィ ザー ド が開き ます。 最初のページは、 コ マ ン ド のサマ リ です。 2. [Next] を ク リ ッ ク し ます。 注記 : [Flow] → [Create Runs] を ク リ ッ ク し た場合、Create New Runs ウ ィ ザー ド の最初のページで [Implementation] を オンに し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 18 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 X-Ref Target - Figure 1-3 図 1-3 : Create New Runs ウ ィ ザー ド : [Configure Implementation Runs] ページ 3. [Configure Implementation Runs] ページで、 [Name] 列に run の名前を入力す る か、 デフ ォル ト の ま ま に し ます。 4. [Synth Name] 列で、 イ ンプ リ メ ン テーシ ョ ンに使用する 合成済みネ ッ ト リ ス ト を選択 し ます。 5. 6. 7. ° サー ド パーテ ィ 合成ツールか ら プ ロ ジ ェ ク ト に イ ン ポー ト さ れた合成済みネ ッ ト リ ス ト も 選択で き ます。 ° 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 6] を参照 し て く だ さ い。 ° デフ ォル ト は、[Design Runs] ビ ュ ーで現在ア ク テ ィ ブな run です。詳細は、23 ページの 「[Design Runs] ビ ュ ー の使用」 を参照 し て く だ さ い。 [Constraints Set] 列で制約セ ッ ト を選択 し ます。 ° [Constraints Set] 列で、 イ ンプ リ メ ン テーシ ョ ンに適用す る 制約セ ッ ト を選択 し ます。 最適化、 配置、 お よ び 配線は、 指定 さ れた制約セ ッ ト の物理制約お よ び タ イ ミ ン グ制約に基づいて実行 さ れます。 ° 制約セ ッ ト の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 7] を参照 し て く だ さ い。 [Part] 列で タ ーゲ ッ ト パーツ を選択 し ます。 ° デフ ォル ト では、 制約セ ッ ト お よ び タ ーゲ ッ ト パーツは、 [Create New Runs] コ マン ド 実行 し た と き のプ ロ ジ ェ ク ト 設定に基づいて定義 さ れます。 ° プ ロ ジ ェ ク ト 設定の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を 参照 し て く だ さ い。 ° 異な る 制約セ ッ ト ま たは タ ーゲ ッ ト パーツ を使用す る run を作成する には、[Create New Runs] コ マン ド を使 用 し ます。 こ れ ら の値は、 [Design Runs] ビ ュ ーで run を選択 し 、 [Run Properties] ビ ュ ーで変更で き ます。 ° 詳細は、 24 ページの 「 イ ンプ リ メ ン テーシ ョ ン run 設定の変更」 を参照 し て く だ さ い。 [Strategy] 列で ス ト ラ テジ を選択 し ます。 ° ス ト ラ テジ と は、 イ ンプ リ メ ン テーシ ョ ン結果を制御する Vivado イ ンプ リ メ ン テーシ ョ ン機能オプシ ョ ン を定義 し た設定の こ と です。 Vivado Design Suite では、 定義済みの ス ト ラ テジが提供 さ れてい ます。 ま た、 独 自の イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を作成す る こ と も 可能です。 ° 詳細は、 30 ページの 「ス ト ラ テジの定義」 を参照 し て く だ さ い。 ° 次の表に示すス ト ラ テジのいずれかを選択 し ます。 ス ト ラ テ ジは、 その目的に応 じ て カ テ ゴ リ 別に分類 さ れてお り 、 カ テ ゴ リ 名が接頭辞 と な っ てい ま す。 カ テ ゴ リ を 表 1-2 に示 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 19 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 パ フ ォ ーマ ン ス ス ト ラ テジは、 デザ イ ン パフ ォーマ ン ス を向上す る こ と を目的 と し てお り 、 実行時間は長 く な り ま す。 Performance_Explore ス ト ラ テジは、 すべての タ イ プのデザ イ ン を網羅 し てい る ので、 最初に選ぶス ト ラ テジ と し て適 し てい ます。 重要 : 名前に SLL ま たは SLR が含まれ る ス ト ラ テジは、 SSI デバ イ ス でのみ使用可能です。 表 1-2 : ス ト ラ テ ジのカ テ ゴ リ カテゴ リ 目的 Performance (パフ ォーマン ス) デザ イ ン パフ ォーマ ン ス を向上 し ます。 Area (エ リ ア) LUT 数を削減 し ます。 Power (消費電力) 消費電力最適化を実行 し ます。 Flow (フ ロ ー ) フ ロ ー手順を変更 し ます。 Congestion (密集) 密集お よ び関連の問題を低減 し ます。 表 1-3 : イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ名 説明 Vivado Implementation Defaults 適度な実行時間で タ イ ミ ン グ ク ロ ージ ャ が満た さ れ る よ う に し ます。 Performance_Explore 結果を向上す る ため、 最適化、 配置、 配線に複数の アルゴ リ ズ ム を使用 し ます。 Performance_RefinePlacement 配置後の最適化のエ フ ォ ー ト を増加 し 、 配線での タ イ ミ ン グ の 緩和をデ ィ ス エーブルに し ます。 Performance_WLBlockPlacement ブ ロ ッ ク RAM お よ び DSP を配置す る 際に タ イ ミ ン グ制約を無 視 し 、 ワ イ ヤ長を使用 し ます。 Performance_WLBlockPlacementFanoutOpt ブ ロ ッ ク RAM お よ び DSP を配置す る 際に タ イ ミ ン グ制約を無 視 し て ワ イ ヤ長を使用 し 、 フ ァ ン ア ウ ト の大 き い ド ラ イ バーの 複製を積極的に実行 し ます。 Performance_LateBlockPlacement 最終的な配置段階ま で、 ブ ロ ッ ク RAM と DSP におお よ その配 置を使用 し ます。 全体的な配置が向上す る こ と があ り ます。 Performance_NetDelay_high 遅延を少なめに予測す る 代わ り に、 距離の長い フ ァ ン ア ウ ト の 大 き い接続の遅延 コ ス ト を増加 し ます。 Performance_NetDelay_high では増加量が最 も 大 き く な り ます。 Performance_NetDelay_medium 遅延を少なめに予測す る 代わ り に、 距離の長い フ ァ ン ア ウ ト の 大 き い接続の遅延 コ ス ト を増加 し ます。 Performance_NetDelay_medium では増加量が中程度にな り ます。 Performance_NetDelay_low 遅延を少なめに予測す る 代わ り に、 距離の長い フ ァ ン ア ウ ト の 大 き い接続の遅延 コ ス ト を増加 し ます。 Performance_NetDelay_low では増加量が最 も 小 さ く な り ます。 Performance_ExploreSLLs 全体的な タ イ ミ ン グ ス ラ ッ ク を向上す る ため、 SLR の再割 り 当 て を試行 し ます。 Area_Explore LUT 数を削減する ため、複数の最適化アルゴ リ ズム を使用し ます。 Power_DefaultOpt 消費電力を削減する ため、消費電力最適化 (power_opt_design) を実行し ます。 Flow_RunPhysOpt Vivado Implementation Defaults に物理最適化 (phys_opt_design) を実行 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 20 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 表 1-3 : イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ (続き) イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ名 説明 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 数を削減 し ます。 ヒ ン ト : run を実行す る 前に、 イ ン プ リ メ ン テーシ ョ ン プ ロ セ ス の各段階の設定を、 選択 し た ス ト ラ テジのデフ ォ ル ト 設定か ら 変更で き ます。 変更 し た設定を新 し い ス ト ラ テジ と し て も 保存で き ます。 詳細は、 24 ページの 「 イ ンプ リ メ ン テーシ ョ ン run 設定の変更」 を参照 し て く だ さ い。 8. [More] を ク リ ッ ク し 、 追加の run を定義 し ます。 追加 run の名前 と ス ト ラ テジ を指定 し ます (図 1-3)。 9. [Next] を ク リ ッ ク し ます。 [Launch Options] ページが開き ます (図 1-4)。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 21 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 X-Ref Target - Figure 1-4 図 1-4 : [Launch Options] ページ 10. [Lauch directory] を指定 し ます。 ° こ のデ ィ レ ク ト リ に、 イ ンプ リ メ ン テーシ ョ ン run のデー タ を作成 し て保存 し ます。 ° デフ ォル ト のデ ィ レ ク ト リ は、 ロ ーカルのプ ロ ジ ェ ク ト デ ィ レ ク ト リ 構造に含まれます。 デフ ォル ト では、 イ ンプ リ メ ン テーシ ョ ン run の フ ァ イ ルは次のデ ィ レ ク ト リ に保存 さ れます。 <project_name>/<project_name>.runs/<run_name> ヒ ン ト : プ ロ ジ ェ ク ト フ ァ イ ルには絶対パ ス が記述 さ れ る ので、 プ ロ ジ ェ ク ト デ ィ レ ク ト リ 外の場所を指定す る と 、 プ ロ ジ ェ ク ト を移動 し に く く な り ます。 11. 実行オプシ ョ ン を指定 し ます。 ° [Launch Runs on Local Host] run を ロ ーカル マシ ンで実行 し ます。 ° [Number of jobs] 複数の run を同時実行す る 際に使用す る ロ ーカル プ ロ セ ッ サの数を指定 し ます。 ° ° [Launch Runs on Remote Hosts] (Linux のみ) - リ モー ト ホ ス ト を使用 し てジ ョ ブ を実行 し ます。 - 詳細は、 付録 A 「 リ モー ト ホ ス ト の使用」 を参照 し て く だ さ い。 [Configure Hosts] リ モー ト ホ ス ト を設定 し ます。 ° [Generate scripts only] run デ ィ レ ク ト リ お よ び run ス ク リ プ ト を エ ク ス ポー ト お よ び作成 し ますが、 run は実行 し ません。 ス ク リ プ ト は、 Vivado IDE ツールの環境外で後で実行で き ます。 ° [Do not launch now] 新 し い run を保存 し ますが、 run を実行ま たは run ス ク リ プ ト は作成 し ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 22 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 12. [Next] を ク リ ッ ク し 、 [Create New Runs Summary] ページ を確認 し ます。 13. [Finish] を ク リ ッ ク し ます。 定義 し た run が作成 さ れ、 指定の実行オプシ ョ ンが実行 さ れます。 新 し い run が [Design Runs] ビ ュ ーに追加 さ れます。 [Design Runs] ビ ュ ーの使用 [Design Runs] ビ ュ ーには、 プ ロ ジ ェ ク ト で作成 さ れた合成 run と イ ン プ リ メ ン テーシ ョ ン run のすべてが表示 さ れ、 それ ら を設定、 管理、 実行する ための コ マ ン ド を実行で き ます。 [Design Runs] ビ ュ ーを開 く [Design Runs] ビ ュ ーが表示 さ れていない場合は、 [Window] → [Design Runs] を ク リ ッ ク し て表示 し ます (図 1-5)。 [Design Runs] ビ ュ ーの機能 • イ ンプ リ メ ン テーシ ョ ン run は、 合成 run の下の階層に イ ンデン ト さ れて表示 さ れます。 • 1 つの合成 run に、 複数の イ ンプ リ メ ン テーシ ョ ン run を含め る こ と がで き ます。 プ ラ ス記号 (+) やマ イ ナ ス記号 (-) を ク リ ッ ク す る と 、 合成 run の ツ リ ー表示を展開 し た り 、 閉 じ た り で き ます。 • [Design Runs] ビ ュ ーは、 ツ リ ー形式の表で示 さ れます。 こ の ビ ュ ーのデー タ を 列 を 使用 し て並べ替え る 方法は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照 し て く だ さ い。 X-Ref Target - Figure 1-5 図 1-5 : [Design Runs] ビ ュ ー run のス テー タ ス [Design Runs] ビ ュ ーには、 run の ス テー タ ス が表示 さ れます。 次の ス テー タ ス があ り ます。 • 実行 さ れていない • 実行中 • 完了 • 最新の状態でない run の タ イ ミ ング結果 [Design Runs] ビ ュ ーには、 イ ン プ リ メ ン テーシ ョ ン run の タ イ ミ ン グ結果 (WNS、 TNS、 WHS、 THS、 TPWS、 お よ び タ イ ミ ン グが満た さ れていないネ ッ ト 数) が表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 23 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 最新の状態でない run ソ ース フ ァ イ ル、 制約、 ま たはプ ロ ジ ェ ク ト 設定を変更す る と 、 run は最新の状態ではな く な り ます。 [Design Runs] ビ ュ ーでは、 run を リ セ ッ ト し た り 、 古い run のデー タ を削除 し た り で き ます。 ア ク テ ィ ブ run Vivado IDE のすべてのビ ュ ーには、 ア ク テ ィ ブな run の情報が表示 さ れます。 [Log] ビ ュ ー、 [Reports] ビ ュ ー、 ス テー タ ス バー、 [Project Summary] ビ ュ ーには、 ア ク テ ィ ブな run の情報が表示 さ れ ます。 [Project Summary] ビ ュ ーには、 ア ク テ ィ ブな run の コ ンパ イ ル、 リ ソ ース、 お よ びサマ リ 情報が表示 さ れます。 ヒ ン ト : Vivado IDE でア ク テ ィ ブにで き る のは、 1 つの合成 run と 1 つの イ ンプ リ メ ン テーシ ョ ン run のみです。 ア ク テ ィ ブな run は、 [Design Runs] ビ ュ ーに太字で示 さ れます。 run を ア ク テ ィ ブにす る には、 次の手順に従い ます。 1. [Design Runs] ビ ュ ーで 1 つの run を右 ク リ ッ ク し ます。 2. [Make Active] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン run 設定の変更 [Design Runs] ビ ュ ーで run を選択す る と 、 [Run Properties] ビ ュ ーにその run の現在の設定が表示 さ れます (図 1-6)。 [Run Properties] ビ ュ ーでは、 次のオプシ ョ ン を変更で き ます。 • [Name] : run の名前 • [Part] : タ ーゲ ッ ト パーツ • [Description] : run の説明 • [Constraints] : イ ンプ リ メ ン テーシ ョ ンで使用 し 、 新 し い制約を保存す る 制約セ ッ ト [Run Properties] ビ ュ ーの詳細は、『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照 し て く だ さ い。 X-Ref Target - Figure 1-6 図 1-6 : [Implementation Run Properties] ビ ュ ー Vivado イ ンプ リ メ ン テーシ ョ ン機能で使用 さ れ る オプシ ョ ン も 変更で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 24 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 デザイ ン run の設定 デザ イ ン run の設定を変更す る には、[Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス を使用 し ます。[Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス を開 く には、 次の手順に従い ます。 1. [Design Runs] ビ ュ ーで 1 つの run を右 ク リ ッ ク し ます。 2. [Change Run Settings] を ク リ ッ ク し ます。 図 1-7 を参照 し て く だ さ い。 ヒ ン ト : 設定の変更は、 run の ス テー タ ス が 「Not started」 の場合にのみ可能です。 run を右 ク リ ッ ク し て [Reset Runs] を ク リ ッ ク する と 、 run の ス テー タ ス を 「Not started」 に戻す こ と がで き ます。 詳細は、 27 ページの 「run の リ セ ッ ト 」 を参照 し て く だ さ い。 X-Ref Target - Figure 1-7 図 1-7 : [Design Run Settings] ダ イ ア ログ ボ ッ ク ス [Design Run Settings] ダ イ ア ロ グ ボ ッ ク ス には、 run に適用 さ れてい る イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階でその ス ト ラ テ ジに関連す る コ マ ン ド オプシ ョ ンが表示 さ れます。 次のオプシ ョ ンがあ り ます。 • [Strategy] • [Description] • [Options] [Strategy] イ ン プ リ メ ン テーシ ョ ン run に適用す る ス ト ラ テ ジ を選択 し ます。 Vivado Design Suite では、 定義済みの ス ト ラ テ ジ が提供 さ れてい ます。 ま た、 独自の イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を作成す る こ と も 可能です。 詳細は、 30 ページの 「ス ト ラ テジの定義」 を参照 し て く だ さ い。 [Description] 選択 し た イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジの説明を表示 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 25 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 [Options] Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階の コ マン ド ラ イ ン オプシ ョ ン を表示 し ます。 次の コ マン ド のオプ シ ョ ンが表形式で表示 さ れます。 • opt_design • power_opt_design • place_design • phys_opt_design • route_design • write_bitstream 特定の コ マ ン ド オプシ ョ ン を ク リ ッ ク す る と 、 その説明がダ イ ア ロ グ ボ ッ ク ス の下部に表示 さ れます。 各 イ ンプ リ メ ン テーシ ョ ン段階の詳細 と 設定可能なオプシ ョ ンは、 第 2 章 「 イ ンプ リ メ ン テーシ ョ ン コ マン ド 」 を参 照 し て く だ さ い。 コ マ ン ド オプ シ ョ ンの変更 コ マン ド オプシ ョ ン を変更する には、その コ マン ド オプシ ョ ンの右側の列を ク リ ッ ク し ます。次の操作を実行し ます。 • 定義済みの値か ら 選択する オプシ ョ ンは、 ド ロ ッ プダ ウ ン リ ス ト か ら 選択 し ます。 • イ ネーブル/デ ィ ス エーブルにす る オプシ ョ ンは、 チ ェ ッ ク ボ ッ ク ス のオン/オ フ を切 り 替え ます。 • ユーザー定義の値を指定で き る オプシ ョ ンは、 値を入力 し ます。 • フ ァ イ ル名お よ びパ ス を指定する オプシ ョ ンは、 フ ァ イ ルを選択す る ダ イ ア ロ グ ボ ッ ク ス が開き 、 フ ァ イ ルを選 択で き ます。 • フ ッ ク ス ク リ プ ト と 呼ばれ る カ ス タ ム Tcl ス ク リ プ ト を イ ンプ リ メ ン テーシ ョ ンの各段階の前 (tcl.pre) と 後 (tcl.post) に挿入 し ます。 フ ッ ク ス ク リ プ ト を挿入す る と 、 イ ンプ リ メ ン テーシ ョ ンの各段階の前後に特定の タ ス ク を実行で き ます。 た と えば、 デザ イ ンの配置前後に タ イ ミ ン グ レ ポー ト を生成 し て、 タ イ ミ ン グ結果を比較で き ます。 Tcl フ ッ ク ス ク リ プ ト の定義方法の詳細は、『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参照 3] を参照 し て く だ さ い。 ヒ ン ト : tcl.pre お よ び tcl.post ス ク リ プ ト 内 の パ ス は、 プ ロ ジ ェ ク ト の 関連 す る run デ ィ レ ク ト リ <project>/<project.runs>/<run_name> を基準 と し ます。 現在のプ ロ ジ ェ ク ト ま たは現在の run の DIRECTORY プ ロ パテ ィ を使用 し て、 Tcl ス ク リ プ ト 内の相対パ ス を定義で き ます。 get_property DIRECTORY [current_project] get_property DIRECTORY [current_run] [Save Design As] [Strategy] フ ィ ール ド の右側にあ る [Save Design As] ボ タ ン を ク リ ッ ク す る と 、 今後使用で き る よ う に、 ス ト ラ テジへ の変更を新 し い ス ト ラ テジ と し て保存で き ます。 注意 : [Save Design As] を使用 し ない場合、 変更は現在の イ ンプ リ メ ン テーシ ョ ン run には保存 さ れますが、 今後使用する こ と はで き ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 26 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ンの実行 run ス テー タ スの確認 Vivado IDE では、 run の ス テー タ ス に よ っ て、 run を処理 し て イ ンプ リ メ ン テーシ ョ ン を開始 し ます。 ス テー タ ス は、 [Design Runs] ビ ュ ーに表示 さ れます (図 1-5)。 • run の ス テー タ ス が 「Not Started」 の場合、 run はすぐ に開始 さ れます。 • run の ス テー タ ス が 「Error」 にな っ てい る 場合は、 まず run が リ セ ッ ト さ れ、 終了 し ていない run デー タ が削除 さ れてか ら 、 run が再開 さ れます。 • run の ス テー タ ス が 「Complete」 ま たは 「Out-of-Date」 にな っ てい る 場合は、 run を リ セ ッ ト す る か ど う か確認す る メ ッ セージが表示 さ れます。 run の リ セ ッ ト run を リ セ ッ ト す る には、 次の手順に従い ます。 1. [Design Runs] ビ ュ ーで 1 つの run を右 ク リ ッ ク し ます。 2. [Reset Runs] を ク リ ッ ク し ます。 イ ンプ リ メ ン テーシ ョ ン run を リ セ ッ ト す る と 、 イ ンプ リ メ ン テーシ ョ ンの最初の段階 (opt_design) に戻 り ます。 X-Ref Target - Figure 1-8 図 1-8 : [Reset Runs] ダ イ ア ログ ボ ッ ク ス run の リ セ ッ ト を確認す る メ ッ セージ と 、run デ ィ レ ク ト リ か ら 生成 さ れた フ ァ イ ルを削除す る オプシ ョ ンが表示 さ れ ます。 ヒ ン ト : デフ ォ ル ト では、 生成 さ れた フ ァ イ ルは削除 さ れます。 生成 さ れた run フ ァ イ ルを削除 し ない場合は、 こ の オプシ ョ ン を オフ に し ます。 run の削除 [Design Runs] ビ ュ ーか ら run を削除す る には、 次の手順に従い ます。 1. run を右 ク リ ッ ク し ます。 2. [Delete] を ク リ ッ ク し ます。 run の削除を確認する メ ッ セージ と 、run デ ィ レ ク ト リ か ら 生成 さ れた フ ァ イ ルを削除する オプシ ョ ンが表示 さ れます。 ヒ ン ト : デフ ォ ル ト では、 生成 さ れた フ ァ イ ルは削除 さ れます。 生成 さ れた run フ ァ イ ルを削除 し ない場合は、 こ の オプシ ョ ン を オフ に し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 27 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イズ X-Ref Target - Figure 1-9 図 1-9 : [Delete Runs] ダ イ ア ログ ボ ッ ク ス イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イ ズ 新 し い イ ンプ リ メ ン テーシ ョ ン run を定義す る と 、 デフ ォ ル ト の イ ンプ リ メ ン テーシ ョ ン設定が使用 さ れます。 こ れ ら の設定は変更で き ます。 図 1-10 に、 [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Implementation] ページ を示 し ます。 こ のダ イ ア ロ グ ボ ッ ク ス は、 メ イ ン メ ニ ュ ーか ら [Tools] → [Project Settings] を ク リ ッ ク する と 開き ます。 ヒ ン ト : 非プ ロ ジ ェ ク ト モー ド を使用 し てい る 場合は、 [Project Settings] コ マ ン ド は使用で き ま せん。 イ ンプ リ メ ン テーシ ョ ン ス ト ラ テ ジ をバ ッ チ モー ド で使用可能な Tcl ス ク リ プ ト と し て定義 し て保存す る か、 Vivado IDE で対話 的に定義 し ます。 Flow Navigator か ら ア ク テ ィ ブ な イ ン プ リ メ ン テーシ ョ ン run の イ ン プ リ メ ン テーシ ョ ン設定にア ク セ ス ア ク テ ィ ブな イ ン プ リ メ ン テーシ ョ ン run の イ ン プ リ メ ン テーシ ョ ン設定は、 Flow Navigator で [Implemented Settings] を ク リ ッ ク し て も 開 く こ と がで き ます。 次の イ ンプ リ メ ン テーシ ョ ン設定を指定で き ます。 • [Default constraint set] イ ンプ リ メ ン テーシ ョ ン run でデフ ォ ル ト で使用す る 制約セ ッ ト を選択 し ます。 • [Strategy] イ ン プ リ メ ン テーシ ョ ン run に適用す る ス ト ラ テ ジ を選択 し ます。 Vivado Design Suite では、 定義済みの ス ト ラ テジが提供 さ れてい ます。 ま た、 独自の イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ を作成す る こ と も 可能です。 詳細は、 「ス ト ラ テジの定義」 を参照 し て く だ さ い。 • [Save Design As] ス ト ラ テジへの変更を今後使用で き る よ う に新 し い ス ト ラ テジ と し て保存 し ます。 • [Description] ° 選択 し た イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジの説明を表示 し ます。 ° ユーザー定義の ス ト ラ テジの説明は、 新 し い説明を入力 し て変更で き ます。 ° Vivado ツールの標準 イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジの説明は変更で き ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 28 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イズ X-Ref Target - Figure 1-10 図 1-10 : [Project Settings] ダ イ ア ログ ボ ッ ク スの [Implementation] ページ イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 29 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イズ ス ト ラ テ ジの定義 ス ト ラ テジは、 デザ イ ンの合成ま たは イ ンプ リ メ ン テーシ ョ ンで最適な結果が得 ら れ る よ う にす る ために定義 さ れた ソ リ ュ ーシ ョ ンです。 • Vivado イ ンプ リ メ ン テーシ ョ ン機能のあ ら か じ め設定 さ れたオプシ ョ ンに よ り 定義 さ れます。 • ス ト ラ テジは、 ツールお よ びバージ ョ ン特定です。 • Vivado Design Suite の各 メ ジ ャ ー リ リ ース には、 バージ ョ ン特定の ス ト ラ テジが含まれます。 X-Ref Target - Figure 1-11 図 1-11 : デ フ ォル ト のイ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ Vivado イ ンプ リ メ ン テーシ ョ ンには、 内部ベンチマー ク でテ ス ト さ れた一般的な ス ト ラ テジが複数含まれてい ます。 ヒ ン ト : 定義済みの イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジに変更を保存す る こ と はで き ませんが、定義済みの ス ト ラ テ ジ を コ ピー し て変更 し 、 カ ス タ ム ス ト ラ テジ と し て保存で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 30 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イズ 定義済みス ト ラ テ ジへのア ク セス 定義済み ス ト ラ テ ジに ア ク セ ス す る には、 メ イ ン メ ニ ュ ーか ら [Tools] → [Options] を ク リ ッ ク し 、 左側のペ イ ン で [Strategies] を ク リ ッ ク し ます。 図 1-11 に、 Vivado ツールに含まれ る デフ ォル ト の ス ト ラ テジ を示 し ます。 ス ト ラ テ ジの確認、 コ ピー、 変更 ス ト ラ テジ を確認、 コ ピー、 変更する には、 次の手順に従い ます。 1. [Tools] → [Options] を ク リ ッ ク し ます。 2. 左側のペ イ ンで [Strategies] を ク リ ッ ク し ます。 [Vivado Options] ダ イ ア ロ グ ボ ッ ク ス の [Strategies] ページに、 各ツール と リ リ ース バージ ョ ン用に定義済みの ス ト ラ テジが リ ス ト さ れます (図 1-11)。 3. [Flow] ド ロ ッ プダ ウ ン リ ス ト で、 適切なバージ ョ ンの [Vivado Implementation] を選択 し ます。 含まれてい る ス ト ラ テジが表示 さ れます。 4. 新 し い ス ト ラ テジ を作成する には、 ツールバーま たはポ ッ プア ッ プ メ ニ ュ ーか ら [Create New Strategy] を ク リ ッ ク し ます。 5. 既存の ス ト ラ テジ を コ ピーする には、 ツールバーま たはポ ッ プア ッ プ メ ニ ュ ーか ら [Create a Copy of this Strategy] を ク リ ッ ク し ます。 次の操作が実行 さ れます。 6. a. 選択 し てい る ス ト ラ テジの コ ピーが作成 さ れます。 b. [User Defined Strategies] リ ス ト に追加 さ れます。 c. ダ イ ア ロ グ ボ ッ ク ス の右側に ス ト ラ テジのオプシ ョ ンが表示 さ れ、 変更で き る よ う にな り ます。 新 し い ス ト ラ テジに対 し て次の情報を入力 し ます。 ° [Name] ス ト ラ テジの名前を入力 し ます。 ° [Type] [Synthesize] ま たは [Implement] を選択 し ます。 ° [Tool version] ツール バージ ョ ン を指定 し ます。 ° [Description] ス ト ラ テジの説明を入力 し ます。 こ こ で入力 し た説明が [Design Run] ビ ュ ーの結果の表に表示 さ れます。 X-Ref Target - Figure 1-12 図 1-12 : [New Strategy] ダ イ ア ログ ボ ッ ク ス イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 31 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのカ ス タ マ イズ 7. 次の イ ンプ リ メ ン テーシ ョ ン手順のオプシ ョ ン を変更 し ます。 ° opt_design ° power_opt_design ° place_design ° phys_opt_design ° route_design ° write_bitstream ヒ ン ト : 特定の コ マン ド オプシ ョ ン を選択す る と 、 その説明がダ イ ア ロ グ ボ ッ ク ス の下部に表示 さ れます。 各 イ ンプ リ メ ン テーシ ョ ン段階の詳細 と 設定可能なオプシ ョ ンは、 第 2 章 「 イ ンプ リ メ ン テーシ ョ ン コ マン ド 」 を参 照 し て く だ さ い。 X-Ref Target - Figure 1-13 図 1-13 : イ ン プ リ メ ン テーシ ョ ン オプ シ ョ ンの変更 8. コ マ ン ド オプシ ョ ンの右側を ク リ ッ ク し て、 コ マン ド オプシ ョ ン を変更 し ます (図 1-13)。 次の操作を実行 し ます。 ° 定義済みの値か ら 選択する オプシ ョ ンは、 ド ロ ッ プダ ウ ン リ ス ト か ら 選択 し ます。 ° イ ネーブル/デ ィ ス エーブルにす る オプシ ョ ンは、 チ ェ ッ ク ボ ッ ク ス のオン/オ フ を切 り 替え ます。 ° テ キ ス ト 入力フ ィ ール ド のオプシ ョ ンは、 値を入力 し ます。 ° フ ァ イ ル名お よ びパ ス を指定する オプシ ョ ンは、 ダ イ ア ロ グ ボ ッ ク ス でフ ァ イ ルを選択 し ます。 ° フ ッ ク ス ク リ プ ト と 呼ばれ る カ ス タ ム Tcl ス ク リ プ ト を イ ンプ リ メ ン テーシ ョ ンの各段階の前 (tcl.pre) と 後 (tcl.post) に挿入 し ます。 フ ッ ク ス ク リ プ ト を挿入す る と 、 イ ンプ リ メ ン テーシ ョ ンの各段階の前後 に特定の タ ス ク を実行で き ます。 た と えば、 デザ イ ンの配置前後に タ イ ミ ン グ レ ポー ト を生成 し て、 タ イ ミ ン グ結果を比較で き ます。 Tcl フ ッ ク ス ク リ プ ト の定義方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使 用』 (UG894) [参照 3] を参照 し て く だ さ い。 注記 : tcl.pre お よ び tcl.post ス ク リ プ ト 内 の パ ス は、 プ ロ ジ ェ ク ト の関連す る run デ ィ レ ク ト リ <project>/<project.runs>/<run_name> を基準 と し ます。 現在のプ ロ ジ ェ ク ト ま たは現在の run の DIRECTORY プ ロ パテ ィ を使用 し て、 ス ク リ プ ト 内の相対パ ス を定 義で き ます。 get_property DIRECTORY [current_project] get_property DIRECTORY [current_run] イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 32 イ ン プ リ メ ン テーシ ョ ン run の起動 9. [OK] を ク リ ッ ク し て新 し い ス ト ラ テジ を保存 し ます。 新 し い ス ト ラ テジは、 [User Defined Strategies] の下に リ ス ト さ れます。 ユーザー定義の ス ト ラ テジは、 次の場所に保 存 さ れます。 • Linux OS $HOME/.Xilinx/Vivado/strategies • Windows 7 C:\Users\<username>\AppData\Roaming\Xilinx\Vivado\strategies • Windows XP C:\Documents and Settings\username\Application Data\Xilinx\Vivado\strategies ス ト ラ テ ジの共有 作成 し た ス ト ラ テジ を複数のユーザーで共有する には、 ユーザー定義の ス ト ラ テジ を <InstallDir>/Vivado/<version>/strategies デ ィ レ ク ト リ に コ ピー し ます。 説明 : • <InstallDir> : ザ イ リ ン ク ス ソ フ ト ウ ェ アの イ ン ス ト ール デ ィ レ ク ト リ • <version> : リ リ ース バージ ョ ン番号 イ ン プ リ メ ン テーシ ョ ン run の起動 ア ク テ ィ ブ イ ンプ リ メ ン テーシ ョ ン run を実行する には、 次のいずれかを実行 し ます。 • Flow Navigator で [Run Implementation] を ク リ ッ ク し ます。 • [Flow] → [Run Implementation] を ク リ ッ ク し ます。 • ツールバーの [Run Implementation] ボ タ ン を ク リ ッ ク し ます。 • [Design Runs] ビ ュ ーで run を右 ク リ ッ ク し 、 ポ ッ プア ッ プ メ ニ ュ ーか ら [Launch Runs] を ク リ ッ ク し ます。 1 つの イ ンプ リ メ ン テーシ ョ ン run を実行す る と 、 その イ ンプ リ メ ン テーシ ョ ンに別のプ ロ セ ス が生成 さ れます。 ヒ ン ト : [Design Runs] ビ ュ ーか ら は、 ア ク テ ィ ブ でない run を選択 し て実行で き ます。 [Design Runs] ビ ュ ーで複数の run を選択す る と 、 複数の run を同時に実行で き ます。 1. 複数の run を選択す る には、 Shift キーま たは Ctrl キーを押 し なが ら ク リ ッ ク し ます。 注記 : [Design Runs] ビ ュ ーで複数 run を選択す る 際、合成 run と イ ンプ リ メ ン テーシ ョ ン run の両方を選択で き ま す。 Vivado IDE では、 run の依存性が管理 さ れ、 run が正 し い順序で実行 さ れます。 2. [Launch Runs] を ク リ ッ ク す る と 、 [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス が開き ます (図 1-14)。 注記 : [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス は、 run を 右 ク リ ッ ク し て [Launch Runs] を ク リ ッ ク す る か、 [Design Runs] ビ ュ ーの ツールバーの [Launch Selected Runs] ボ タ ン を ク リ ッ ク す る と 開 き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 33 イ ン プ リ メ ン テーシ ョ ン run の起動 X-Ref Target - Figure 1-14 図 1-14 : [Launch Selected Runs] ダ イ ア ログ ボ ッ ク ス 3. [Launch Directory] を選択 し ます。 デフ ォル ト の実行デ ィ レ ク ト リ は、 ロ ーカルのプ ロ ジ ェ ク ト デ ィ レ ク ト リ 構造に含まれます。 イ ンプ リ メ ン テーシ ョ ン run の フ ァ イ ルは、 次のデ ィ レ ク ト リ に保存 さ れます。 <project_name>/<project_name>.runs/<run_name> ヒ ン ト : プ ロ ジ ェ ク ト フ ァ イ ルには絶対パ ス が記述 さ れ る ので、 プ ロ ジ ェ ク ト デ ィ レ ク ト リ 外の場所を指定す る と 、 プ ロ ジ ェ ク ト を移動 し に く く な り ます。 4. 次のオプシ ョ ン を設定 し ます。 a. [Launch Runs on Local Host] run を ロ ーカル マシ ンで実行 し ます。 b. [Number of jobs] 複数の run を同時実行す る 際に使用す る ロ ーカル プ ロ セ ッ サの数を指定 し ます。 各 run が各プ ロ セ ッ サで実 行 さ れます。 c. [Launch Runs on Remote Hosts] (Linux のみ) リ モー ト ホ ス ト を使用 し てジ ョ ブ を実行 し ます。 詳細は、 付録 A 「 リ モー ト ホ ス ト の使用」 を参照 し て く だ さ い。 d. [Configure Hosts] リ モー ト ホ ス ト を設定 し ます。 e. [Generate scripts only] run デ ィ レ ク ト リ お よ び run ス ク リ プ ト を エ ク ス ポー ト お よ び作成 し ますが、 run は実行 し ません。 ス ク リ プ ト は、 Vivado ツールの環境外で後で実行で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 34 プ ロ セスのバ ッ ク グ ラ ウン ド への移動 プ ロ セスのバ ッ ク グ ラ ウ ン ド への移動 Vivado IDE で合成ま たは イ ンプ リ メ ン テーシ ョ ン を実行す る プ ロ セ ス が生成 さ れ る と 、 まず実行の準備 と し てデザ イ ン フ ァ イ ル と 制約フ ァ イ ルが読み込まれます。 [Starting Run] ダ イ ア ロ グ ボ ッ ク ス (図 1-15) が表示 さ れ、 こ のプ ロ セ ス をバ ッ ク グ ラ ウ ン ド に移動する オプシ ョ ンが示 さ れます。 こ のプ ロ セ ス を バ ッ ク グ ラ ウ ン ド に移動す る と 、 バ ッ ク グ ラ ウ ン ド タ ス ク を実行 さ せた ま ま、 Vivado IDE で レ ポー ト を表示 し た り 、 デザ イ ン フ ァ イ ルを開いた り と い っ た別の操作を実行で き ます。 こ の間、 前の run の結果を確認 し た り 、 レ ポー ト を表示 し た り し て、 時間を効率的に活用で き ます。 注意 : こ のプ ロ セ ス をバ ッ ク グ ラ ン ド に移動 し て も 、[Tcl Console] はブ ロ ッ ク さ れ る ので、Tcl コ マ ン ド を使用 し た り 、 開いてい る 別のデザ イ ンに切 り 替え る な ど の Tcl コ マ ン ド を必要 と する タ ス ク は実行で き ません。 X-Ref Target - Figure 1-15 図 1-15 : [Starting Run] ダ イ ア ログ ボ ッ ク ス イ ン プ リ メ ン テーシ ョ ンの段階ご と の実行 Vivado イ ンプ リ メ ン テーシ ョ ンは、 次の よ う な複数のプ ロ セ ス で構成 さ れます。 • ロ ジ ッ ク 最適化 • 配置 • 配線 Vivado ツールでは、イ ンプ リ メ ン テーシ ョ ン を 1 つのプ ロ セ ス と し てではな く 、1 つずつ順に実行する こ と も 可能です。 イ ン プ リ メ ン テーシ ョ ンの段階ご と に実行する方法 イ ンプ リ メ ン テーシ ョ ンの段階ご と に実行する には、 次の手順に従い ます。 1. [Design Runs] ビ ュ ーで 1 つの run を右 ク リ ッ ク し ます。 2. [Launch Next Step: <Step>] ま たは [Launch Step To] を ク リ ッ ク し ます。 <Step> に有効な値は、 run 設定で イ ネーブルにな っ てい る プ ロ セ ス に よ っ て異な り ます。 イ ンプ リ メ ン テーシ ョ ン run で有効な手順は、 次の と お り です。 ° opt_design (デザ イ ンの最適化) ザ イ リ ン ク ス FPGA デバ イ ス に フ ィ ッ ト す る よ う 論理デザ イ ン を最適化 し ます。 ° power_opt_design (デザ イ ンの消費電力最適化) イ ンプ リ メ ン ト 済み FPGA デバ イ ス の消費電力を削減す る ため、 デザ イ ン エ レ メ ン ト を最適化 し ます。 ° place_design (デザ イ ンの配置) デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配置 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 35 イ ン プ リ メ ン テーシ ョ ン run の監視 ° phys_opt_design (デザ イ ンの物理最適化) デザ イ ンの負の ス ラ ッ ク パ ス に対 し て タ イ ミ ン グ ド リ ブンの最適化を実行 し ます。 ° route_design (デザ イ ンの配線) デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配線 し ます。 ° write_bitstream (ビ ッ ト ス ト リ ームの生成) ザ イ リ ン ク ス デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの ビ ッ ト ス ト リ ーム を生成 し ます。 ビ ッ ト ス ト リ ーム生成 は、 厳密には イ ンプ リ メ ン テーシ ョ ン run の一部ではあ り ませんが、 次の段階 と し て実行可能です。 3. [Launch Next Step: <Step>] ま たは [Launch Step To] を繰 り 返 し 、イ ンプ リ メ ン テーシ ョ ンの段階を進めてい き ます。 イ ンプ リ メ ン テーシ ョ ン段階の間で必要に応 じ て レ ポー ト 生成ま たは解析を実行 し 、デザ イ ン オプシ ョ ンの結果 を確認で き ます。 4. 完了 し てい る 段階を前の段階に戻すには、 [Design Runs] ビ ュ ーで run を右 ク リ ッ ク し て [Reset to Previous Step: <Step>] を ク リ ッ ク し ます。 選択 し た run を直前の段階に リ セ ッ ト する には、 [Reset to Previous Step] を使用 し ます。 こ の コ マン ド を使用す る と 、 次が可能にな り ます。 ° run を元に戻 し ます。 ° 必要な変更を加え ます。 ° 再び段階を進め、 run を イ ン ク リ メ ン タ ルに完了 し ます。 イ ン プ リ メ ン テーシ ョ ン run の監視 イ ンプ リ メ ン テーシ ョ ン run は、 次の よ う に監視で き ます。 • コ ンパ イ ル情報を読む • [Messages] ビ ュ ーで警告お よ びエ ラ ーを確認 • プ ロ ジ ェ ク ト サマ リ を表示 • [Design Runs] ビ ュ ーを開 く 合成 run お よ び イ ンプ リ メ ン テーシ ョ ン run の ス テー タ スは、 [Log] ビ ュ ーで確認 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 36 イ ン プ リ メ ン テーシ ョ ン run の監視 run ス テー タ ス表示 進行中の run の ス テー タ スは、 2 つの方法で表示 さ れます。 こ れ ら の ス テー タ ス表示には、 run が進行中であ る こ と が 示 さ れ る ほか、 こ こ か ら 必要に応 じ て キ ャ ンセルで き ます (図 1-16)。 X-Ref Target - Figure 1-16 図 1-16 : イ ン プ リ メ ン テーシ ョ ン run のステー タ ス表示 Vivado IDE の右上にあ る プ ロ ジ ェ ク ト ス テー タ ス バーに表示 さ れ る run ス テー タ ス イ ン ジ ケー タ ーでは、run が進行 中であ る こ と が動 く バーで示 さ れます。 [Cancel] ボ タ ン を ク リ ッ ク す る と 、 run を停止で き ます。 [Design Runs] ビ ュ ーには、 図 1-16 に示す よ う に、 run の横に run が進行中であ る こ と を示す円形の矢印が表示 さ れま す。 run を右 ク リ ッ ク し てポ ッ プア ッ プ メ ニ ュ ーか ら [Reset Run] を ク リ ッ ク す る と 、 run を キ ャ ン セルで き ます。 run のキ ャ ン セル/ リ セ ッ ト 進行中の run を [Cancel] ボ タ ン ま たは [Reset Run] コ マ ン ド でキ ャ ンセルする と 、 キ ャ ンセル し た run 用に作成 さ れた run フ ァ イ ルをすべて削除す る か ど う か確認す る メ ッ セージが表示 さ れます (図 1-17)。 X-Ref Target - Figure 1-17 図 1-17 : [Cancel Implementation] ダ イ ア ログ ボ ッ ク ス [Delete Generated Files] を オンにす る と 、 ロ ーカルのプ ロ ジ ェ ク ト デ ィ レ ク ト リ か ら run デー タ が削除 さ れます。 推奨 : キ ャ ン セル し た run で作成 さ れたデー タ はすべて削除 し て、 今後の run で問題が発生 し ない よ う にす る こ と を お勧め し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 37 イ ン プ リ メ ン テーシ ョ ン run の監視 [Log] ビ ュ ーのログ情報の表示 run を実行す る と 、 [Log] ビ ュ ーが開 き 、 標準出力 メ ッ セージが表示 さ れます。 [Log] ビ ュ ーには、 place_design や route_design な ど の各 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の進行状況 も 表示 さ れます。 異な る メ ッ セージが ど こ か ら 表示 さ れてい る かを確認 し 、 イ ンプ リ メ ン テーシ ョ ン run のデバ ッ グに役立て る こ と が で き ます。 図 1-18 に、 [Log] ビ ュ ーの例を示 し ます。 ヒ ン ト : [Log] ビ ュ ーで異な る メ ッ セージが ど こ か ら 表示 さ れてい る か を確認 し 、 イ ン プ リ メ ン テーシ ョ ン run のデ バ ッ グに役立て る こ と がで き ます。 X-Ref Target - Figure 1-18 図 1-18 : [Log] ビ ュ ー 出力の停止 [Log] ビ ュ ーで [Pause output] ボ タ ン を ク リ ッ ク す る と 、 出力を停止で き ます。 出力を停止す る と 、 イ ンプ リ メ ン テーシ ョ ンの実行中に ロ グ情報を読む こ と がで き ます。 プ ロ ジ ェ ク ト ス テー タ スの表示 Vivado IDE では、 プ ロ ジ ェ ク ト ス テー タ ス と 次の手順が複数の方法で示 さ れ ま す。 プ ロ ジ ェ ク ト ス テー タ ス には、 主なデザ イ ン タ ス ク の結果のみが レ ポー ト さ れます。 プ ロ ジ ェ ク ト ス テー タ ス は [Project Summary] ビ ュ ー と ス テー タ ス バーに表示 さ れ、 プ ロ ジ ェ ク ト を開いた と き 、 デ ザ イ ン フ ロ ー コ マ ン ド を実行中に、 プ ロ ジ ェ ク ト の ス テー タ ス をすばや く 判断で き ます。 次の ス テー タ ス が示 さ れ ます。 • RTL エ ラ ボ レーシ ョ ン • 合成 • イ ンプ リ メ ン テーシ ョ ン • ビ ッ ト ス ト リ ーム生成 プ ロ ジ ェ ク ト ス テー タ ス バー プ ロ ジ ェ ク ト ス テー タ ス は、 Vivado IDE の右上の プ ロ ジ ェ ク ト ス テー タ ス バーに表示 さ れます。 合成、 イ ンプ リ メ ン ト 、 ビ ッ ト ス ト リ ームの生成を実行す る と 、 プ ロ ジ ェ ク ト ス テー タ ス バーにその結果が示 さ れます。プ ロ セ ス でエ ラ ーが発生 し た場合は、 赤色の文字で表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 38 イ ン プ リ メ ン テーシ ョ ン run の監視 Out-of-Date ス テー タ ス 合成ま たは イ ンプ リ メ ン テーシ ョ ン を完了 し た状態で ソ ース フ ァ イ ルま たはデザ イ ン制約を変更す る と 、プ ロ ジ ェ ク ト ス テー タ ス が 「Out-of-Date」 と な り ます (図 1-19)。 こ れは、 プ ロ ジ ェ ク ト が最新でな く 、 更新が必要であ る こ と を示 し ます。 デザ イ ンの ど の部分が最新ではないのかを 確認する には、 [more info] リ ン ク を ク リ ッ ク し ます。 イ ンプ リ メ ン テーシ ョ ンのみの再実行が必要な場合や、 合成お よ び イ ンプ リ メ ン テーシ ョ ンの両方を再実行する 必要があ る 場合があ り ます。 X-Ref Target - Figure 1-19 図 1-19 : イ ン プ リ メ ン テーシ ョ ンが最新でない run のス テー タ ス を強制的に最新の状態に設定 [Force-up-to-date] リ ン ク を ク リ ッ ク す る と 、 イ ン プ リ メ ン テーシ ョ ン run ま たは合成 run の ス テー タ ス を強制的に最 新の状態にする こ と がで き ます。 こ の機能は、 デザ イ ン ま たは制約を変更 し たが、 現在の run の結果を解析す る 場合 な ど に使用 し ます。 ヒ ン ト : [Force-up-to-date] コ マ ン ド は、[Design Runs] ビ ュ ーで最新でない run を右 ク リ ッ ク し た と き に表示 さ れ る ポ ッ プア ッ プ メ ニ ュ ーに も あ り ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 39 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の 実行時間の短縮 イ ン ク リ メ ン タ ル コ ンパ イ ルは、 完成に近づいてお り 、 タ イ ミ ン グ ク ロ ージ ャ を達成す る ために労力が必要なデザ イ ンに適 し た ア ド バン ス フ ロ ーです。 多少の変更を加え て再合成する 場合に こ のフ ロ ーを使用する と 、基準デザ イ ン か ら の配置配線が再利用 さ れ、 配置配線の実行時間が短縮 さ れ、 タ イ ミ ン グが保持 さ れます。 こ の フ ロ ーは、 変更 さ れたデザ イ ン と 基準デザ イ ンが 95% 以上類似 し てい る 場合に最 も 効果的です。 注記 : 変更 さ れた部分のみが配置配線 さ れます。 イ ン ク リ メ ン タ ル コ ンパイル フ ロー X-Ref Target - Figure 1-20 図 1-20 : イ ン ク リ メ ン タ ル コ ンパイル フ ロー イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 40 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 イ ン ク リ メ ン タ ル コ ンパイル フ ローのデザイ ン イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ーでは、 次の 2 つのデザ イ ン を使用 し ます。 • 基準デザ イ ン • 現在のデザ イ ン 図 1-20 を参照 し て く だ さ い。 基準デザイ ン 最初の イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ー デザ イ ンは基準デザ イ ンです。 基準デザ イ ンは、 通常はデザ イ ンの合成、 配置、 配線が完了 し た以前のバージ ョ ンです。 基準デザ イ ンには、 タ イ ミ ン グ ク ロージ ャ を達成す る ために コ ー ド 変更、 フ ロ アプ ラ ン、 制約変更 し た際のデザ イ ン の反復実行結果であ る デザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) を使用で き ます。 現在のデザ イ ン を 読み込んだ ら 、 read_checkpoint -incremental <dcp> コ マ ン ド を 使用 し て基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込みます。 -incremental オプシ ョ ン を使用 し て基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込 む と 、 次の配置配線で イ ン ク リ メ ン タ ル コ ンパ イ ル デザ イ ン フ ロ ーが イ ネーブルにな り ます。 詳細は、 42 ページの 「基準デザ イ ン と 現在のデザ イ ンの類似性の確認」 を参照 し て く だ さ い。 現在のデザイ ン 2 つ目の イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ー デザ イ ンは現在のデザ イ ンです。 現在のデザ イ ンは、 基準デザ イ ンに少 し だけ変更を加え た も のです。 次の よ う な変更が含まれます。 • RTL の変更 • ネ ッ ト リ ス ト の変更 • RTL の変更 と ネ ッ ト リ ス ト の変更の両方 イ ン ク リ メ ン タ ル配置配線の実行 変更 さ れた現在のデザ イ ン を最初に メ モ リ に読み込み、 その後基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込みます。 イ ン ク リ メ ン タ ル コ ンパ イ ル プ ロ セ ス の重要な要素は、 イ ン ク リ メ ン タ ル配置配線です。 基準デザ イ ン チ ェ ッ ク ポ イ ン ト は、 ネ ッ ト リ ス ト 、 制約、 配置配線を含む物理デー タ で構成 さ れます。 • 現在のデザ イ ンのネ ッ ト リ ス ト は基準デザ イ ン と 比較 さ れ、 一致する セルお よ びネ ッ ト が検出 さ れます。 • 基準デザ イ ン チ ェ ッ ク ポ イ ン ト か ら の配置は、 現在のデザ イ ンの一致セルを配置す る ために再利用 さ れます。 • 基準デザ イ ン チ ェ ッ ク ポ イ ン ト か ら の配線は、 一致ネ ッ ト を配線す る ために再利用 さ れます。 複数の フ ァ ン アウ ト があ るネ ッ ト Vivado 配線では、 複数の フ ァ ン ア ウ ト があ る ネ ッ ト に対 し ては詳細な一致比較が実行 さ れ、 各配線セグ メ ン ト を適切 に再利用ま たは廃棄で き ます。 基準デザ イ ン と 現在のデザ イ ンの間で一致 し ないデザ イ ン オブジ ェ ク ト は、イ ン ク リ メ ン タ ル配置が完了 し た後に配 置 さ れ、 既存の配線が再利用 さ れた後に配線 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 41 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 配置配線の効率的な再利用 基準デザ イ ンか ら の配置配線が効果的に再利用で き る か ど う かは、 2 つのデザ イ ンの差異に よ り ます。 少 し の変更に よ っ て、 デザ イ ンが大幅に変わ っ て し ま う 場合 も あ り ます。 少 し の RTL の変更に よ る影響 合成はネ ッ ト リ ス ト 名がで き る だけ変更 さ れない よ う に実行 さ れますが、 次の よ う な少 し の RTL の変更に よ っ てデ ザ イ ンが大幅に変わ っ て し ま う 場合があ り ます。 • 推論 さ れ る メ モ リ のサ イ ズ を大き く する 。 • 内部バ ス の幅を広 く する 。 • デー タ 型を符号な し か ら 符号付き に変え る 。 制約お よび合成オプ シ ョ ンの変更に よ る影響 同様に、 次の よ う な制約お よ び合成オプシ ョ ン の変更が、 イ ン ク リ メ ン タ ル配置配線に大 き く 影響す る こ と があ り ます。 • タ イ ミ ン グ制約の変更お よ び再合成 • 論理階層の保持ま たは解除 • レ ジ ス タ の リ タ イ ミ ン グの イ ネーブル 基準デザイ ン と 現在のデザイ ンの類似性の確認 report_incremental_reuse コ マン ド を使用す る と 、 基準デザ イ ン チ ェ ッ ク ポ イ ン ト と 現在のデザ イ ンの類似性 を レ ポー ト で き ます。 こ の コ マ ン ド は、基準デザ イ ン チ ェ ッ ク ポ イ ン ト か ら のネ ッ ト リ ス ト を メ モ リ 内の現在のデザ イ ン と 比較 し 、 セル、 ネ ッ ト 、 ポー ト の一致量をパーセ ン ト で レ ポー ト し ます。 注記 : 以前のバージ ョ ンの Vivado に含まれていた report_design_similarity コ マ ン ド が、現在のバージ ョ ンで report_incremental_reuse コ マ ン ド に置 き 換え ら れてい ます。新 し い report_incremental_reuse コ マン ド では、 report_design_similarity コ マ ン ド と は異な り 、 引数は指定 し ません。 その代わ り 、 こ の コ マ ン ド を実 行する 前に、read_checkpoint -incremental <dcp> を実行 し てデザ イ ン チ ェ ッ ク ポ イ ン ト を指定す る 必要があ り ま す。 そ の後で あ れば、 いつで も report_incremental_reuse を 実行で き ま す。 メ モ リ 内に あ る デザ イ ン と read_checkpoint -incremental で読み込まれたデザ イ ン チ ェ ッ ク ポ イ ン ト が自動的に比較 さ れます。 デザ イ ン間の差異が少ないほど、 基準デザ イ ンか ら の配置配線の再利用が効率的に実行 さ れます。 次に、 メ モ リ 内の 合成済みデザ イ ン を配線済みデザ イ ン チ ェ ッ ク ポ イ ン ト と 比較 し た report_incremental_reuse レ ポー ト の例を 示し ます。 +-----------------------+-------+-------+------------+ | Type | Count | Total | Percentage | +-----------------------+-------+-------+------------+ | Reused Cells | 3591 | 3821 | 93.98 | | Reused Ports | 71 | 71 | 100.00 | | Reused Nets | 6142 | 6564 | 93.57 | | | | | | | Reused Cells | 3591 | | | | Non-Reused Cells | 230 | | | | New | 230 | | | | Fully reused nets | 5383 | | | | Partially reused nets | 759 | | | | New nets | 422 | | | +-----------------------+-------+-------+------------+ 通常、 一致パーセ ン ト が高いほど、 配置配線が多 く 再利用 さ れ、 配置配線の実行が高速にな り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 42 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 推奨 : report_incremental_reuse コ マ ン ド は、 現在のデザ イ ン の イ ン ク リ メ ン タ ル配置配線 を 実行す る のに、 チ ェ ッ ク ポ イ ン ト が基準デザ イ ン と し て使用する のに適 し てい る かを判断する のに使用 し ます。 イ ン ク リ メ ン タ ル配置配線 メ ト リ ッ ク デザ イ ン間でセル、 ネ ッ ト 、 ポー ト が 95% 以上一致 し ていれば、 Vivado Design Suite の イ ン ク リ メ ン タ ル配置配線に よ り 実行時間が平均で通常の配置配線の 1/3 にな り ます。 基準デザ イ ン と 現在のデザ イ ンの間の一致パーセ ン ト が低 く な る と 実行時間の短縮度 も 低 く な り ます。 80% 未満にな る と 、 イ ン ク リ メ ン タ ル配置配線を使用す る 利点はそれほ ど な く な る か、 ま っ た く な く な る 可能性があ り ます。 実行時間の短縮に影響する要素 ほかに、 次の要素 も 実行時間の短縮に影響 し ます。 • タ イ ミ ン グ ク リ テ ィ カル エ リ アの変更量。 ク リ テ ィ カル パ ス の配置配線を再利用で き ない場合、 タ イ ミ ン グ を 満たすのにエフ ォー ト が よ り 必要 と な り ます。 つま り 、 イ ン ク リ メ ン タ ル配置配線を実行する 利点が、 デザ イ ン の単純な部分のみに使用 さ れ る こ と にな り ます。 • phys_opt_design コ マン ド は タ イ ミ ン グ ド リ ブンの ロ ジ ッ ク 変換を実行 し ますが、 イ ン ク リ メ ン タ ル フ ロ ー と 標準フ ロ ーでは異な る 結果を生成す る こ と があ り ます。 デザ イ ンの変更が phys_opt_design の影響を受け る ク リ テ ィ カル タ イ ミ ン グ エ リ アに集中 し てい る 場合、 配線の再利用に よ り 予測 さ れ る 効果が得 ら れない可能 性があ り ます。 • 配置配線の初期化時間。 配置配線時間が短い場合、 Vivado 配置配線の初期化のオーバーヘ ッ ド に よ り イ ン ク リ メ ン タ ル配置配線プ ロ セ ス の効果が相殺 さ れて し ま う 可能性があ り ます。 実行時間が長いデザ イ ン では、 実行時間 占め る 初期化時間の割合は小 さ く な り ます。 イ ン ク リ メ ン タ ル コ ンパイルの使用 プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド の ど ち ら で も 、 read_checkpoint -incremental <dcp_file> コ マ ン ド (<dcp_file> は基準デザ イ ン チ ェ ッ ク ポ イ ン ト のパ ス と フ ァ イ ル名) を使用 し て基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込む と 、 イ ン ク リ メ ン タ ル配置配線モー ド にな り ます。 -incremental オプシ ョ ン を使用 し て基準デザ イ ン チ ェ ッ ク ポ イ ン ト を読み込む と 、 次の配置配線で イ ン ク リ メ ン タ ル コ ンパ イ ル デザ イ ン フ ロ ーが イ ネーブルに な り ます。非プ ロ ジ ェ ク ト モー ド では、read_checkpoint -incremental は opt_design の後、place_design の前に実行 し ます。 イ ン ク リ メ ン タ ル コ ンパ イ ル モー ド を終了す る には、 次のいずれかを実行 し ます。 • -incremental オプシ ョ ン を使用せずにチ ェ ッ ク ポ イ ン ト を読み込みます。 • プ ロ ジ ェ ク ト を使用 し てい る 場合は、 イ ン ク リ メ ン タ ル コ ンパ イ ル チ ェ ッ ク ポ イ ン ト の設定を削除 し ます。 基準デザ イ ン と し て使用す る デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (DCP) を指定 し て イ ン ク リ メ ン タ ル配置を実行す る には、 次の手順に従い ます。 1. 現在のデザ イ ン を読み込みます。 2. opt_design を実行 し ます。 3. read_checkpoint -incremental <dcp_file> を実行 し ます。 4. place_design を実行 し ます。 link_design; # to load the current design opt_design read_checkpoint -incremental <dcp_file> place_design イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 43 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 イ ン ク リ メ ン タ ル配置は、 基準デザ イ ンのデザ イ ン オブジ ェ ク ト と 現在のデザ イ ン のデザ イ ン オブジ ェ ク ト を比較 する Vivado ツールの機能を利用 し ます。 opt_design -resynth_area コ マン ド オプシ ョ ン を使用 し た場合、 ま た は -directive ExploreArea を使用 し た場合は、 基準デザ イ ン と 現在のデザ イ ンの間でセル名の一致が低 く な り 、 配置配線デー タ と の一致 も 低 く な り ます。 推奨 : そのため、 イ ン ク リ メ ン タ ル コ ンパ イ ル フ ロ ーを実行す る 際は、 opt_design -resynth_area コ マ ン ド の 使用は制限 し て く だ さ い。 read_checkpoint -incremental <dcp_file> コ マ ン ド で基準デザ イ ン と し て使用す る デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (DCP) を指定 し た後 route_design を実行す る と 、 イ ン ク リ メ ン タ ル配線が実行 さ れます。 イ ン ク リ メ ン タ ル チ ェ ッ ク ポ イ ン ト が place_design で既に読み込まれてい る 場合は、 Vivado は イ ン ク リ メ ン タ ル モー ド の ま ま であ り 、 route_design の前に -incremental は必要あ り ませんん。 配線では、 チ ェ ッ ク ポ イ ン ト が読み込まれ る と 、 基準デザ イ ンか ら の配線接続が適用 さ れます。 余っ た配線セグ メ ン ト 現在のデザ イ ンか ら 削除 さ れていた り 、 配置時に移動 さ れてい る セルのため、 基準デザ イ ンか ら の配線セグ メ ン ト に 余る も のが出て し ま う こ と があ り ます。 Vivado IDE で実行 し てい る 場合、 問題が発生す る 可能性のあ る ネ ッ ト が見 ら れ る こ と があ り ますが、 こ れ ら の余っ た配線セグ メ ン ト や不適切に接続 さ れた配線セグ メ ン ト は、 Vivado 配線の イ ン ク リ メ ン タ ル配線時に ク リ ーン ア ッ プ さ れます。 配置中に、 次の よ う な情報 メ ッ セージが表示 さ れます。 INFO: [Place 46-2] During incremental compilation, routing data from the original checkpoint is applied during place_design.As a result, dangling route segments and route conflicts may appear in the post place_design implementation due to changes between the original and incremental netlists.These routes can be ignored as they will be subsequently resolved by route_design.This issue will be cleaned up automatically in place_design in a future software release. プ ロ ジ ェ ク ト モー ド でのイ ン ク リ メ ン タ ル コ ンパイルの使用 プ ロ ジ ェ ク ト モー ド では、 [Design Runs] ビ ュ ーで イ ン ク リ メ ン タ ル コ ンパ イ ル オプシ ョ ン を設定で き ます。 イ ン ク リ メ ン タ ル コ ンパ イ ル モー ド を設定す る には、 次の手順に従い ます。 1. [Design Runs] ビ ュ ーで 1 つの run を右 ク リ ッ ク し ます。 2. [Set Incremental Compile] を ク リ ッ ク し ます。 3. [Set Incremental Compile] ダ イ ア ロ グ ボ ッ ク ス で、 基準デザ イ ン チ ェ ッ ク ポ イ ン ト を選択 し ます。 run で イ ン ク リ メ ン タ ル コ ンパ イ ル モー ド が イ ネーブルにな り ます。 重要 : デザ イ ン run か ら チ ェ ッ ク ポ イ ン ト を選択 し た場合、 その run が リ セ ッ ト さ れ る と 削除 さ れます。 デザ イ ン run か ら チ ェ ッ ク ポ イ ン ト を選択する 場合は、 基準チ ェ ッ ク ポ イ ン ト と し て選択す る 前に、 別のデ ィ レ ク ト リ に コ ピー し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 44 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 図 1-21 を参照 し て く だ さ い。 X-Ref Target - Figure 1-21 図 1-21 : デザイ ン run の [Set Incremental Compile] コ マ ン ド run の イ ン ク リ メ ン タ ル コ ンパ イ ル モー ド をデ ィ ス エーブルにする には、[Use checkpoint] フ ィ ール ド を空白に し ます (図 1-22)。 X-Ref Target - Figure 1-22 図 1-22 : イ ン ク リ メ ン タ ル コ ンパイルの設定 イ ン ク リ メ ン タ ル配置配置配線が完了 し た ら 、 Vivado ツールで生成 さ れた メ ッ セージ を確認で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 45 イ ン ク リ メ ン タ ル コ ンパイルを使用 し た配置配線の実行時間の短縮 イ ン ク リ メ ン タ ル コ ンパイル後の解析 イ ン ク リ メ ン タ ル配置配線が完了 し た ら 、 タ イ ミ ン グ と セルお よ びネ ッ ト の再利用に関す る 詳細を解析で き ます。 タ イ ミ ン グ レ ポー ト のオブジ ェ ク ト に、 物理デー タ が ど の よ う に再利用 さ れたかが示 さ れます。 こ れに よ り 、 デザ イ ン のア ッ プデー ト が ク リ テ ィ カル パ ス に影響 し てい る か ど う か を判断で き ます。 タ イ ミ ン グ レ ポー ト に イ ン ク リ メ ン タ ル フ ロ ーの詳細 を 表示す る には、 report_timing -label_reused オプ シ ョ ン を使用 し ます。 こ のオプシ ョ ン を使用す る と 、 入力ピ ンお よび出力ピ ンに再利用 ラ ベルが表示 さ れ、 ピ ンのセ ルお よ びネ ッ ト に再利用 さ れた物理デー タ の量が示 さ れます。 • (R) : セル配置 と ネ ッ ト 配線の両方が再利用 さ れてい ます。 • (NR) : セル配置 と ネ ッ ト 配線の ど ち ら も 再利用 さ れてい ません。 • (PNR) : セル配置は再利用 さ れてい ますが、 ネ ッ ト 配線は再利用 さ れてい ません。 • (N) : ピ ン、 セル、 ま たはネ ッ ト は新 し いデザ イ ン オブジ ェ ク ト で、 基準デザ イ ンには含まれません。 次に例を示 し ます。 ------------------------------------------------------(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 to improve timing (タ イ ミ ン グ を向上する ため破棄) イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 46 イ ン プ リ メ ン テーシ ョ ン完了後の次の操作 イ ン プ リ メ ン テーシ ョ ン完了後の次の操作 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の ど ち ら で も 、イ ンプ リ メ ン テーシ ョ ンが完了 し た後の操作は、イ ンプ リ メ ン テーシ ョ ンの結果に よ り ます。 • デザ イ ンが完全に配置配線 さ れたか、 解決が必要な問題があ る か。 • タ イ ミ ン グ制約お よ びデザ イ ン要件が満た さ れたか、 デザ イ ン を完了する のに変更が必要か。 • ザ イ リ ン ク ス パーツ用の ビ ッ ト ス ト リ ーム を生成で き る 状態であ る か。 イ ン プ リ メ ン テーシ ョ ン後に推奨 さ れる手順 イ ンプ リ メ ン テーシ ョ ン後は、 次の手順を実行する こ と をお勧め し ます。 1. イ ンプ リ メ ン テーシ ョ ン メ ッ セージ を確認 し ます。 2. イ ンプ リ メ ン テーシ ョ ン レ ポー ト を表示 し 、 次の事項を確認 し ます。 3. ° タ イ ミ ン グ制約が満た さ れてい る (report_timing_summary)。 ° リ ソ ース使用率が予測どお り であ る (report_utilization)。 ° 消費電力が予測どお り であ る (report_power)。 ビ ッ ト ス ト リ ーム フ ァ イ ルを生成 し ます。 ビ ッ ト ス ト リ ーム フ ァ イ ルの生成には、デザ イ ンがハー ド ウ ェ アのルールに違反 し ていない こ と を確認す る 最終 DRC も 含まれます。 4. 満た さ れていないデザ イ ン要件があ る 場合は、 次を実行 し ます。 a. プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン ト 済みデザ イ ン を開いて解析 し ます。 b. 非プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン テーシ ョ ン後のデザ イ ン チ ェ ッ ク ポ イ ン ト を開 き ます。 イ ンプ リ メ ン ト 済みデザ イ ンの解析の詳細は、『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 8] を参照 し て く だ さ い。 非プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ン後の次の操作 非プ ロ ジ ェ ク ト モー ド では、デザ イ ン セ ッ シ ョ ンで生成 さ れた メ ッ セージは Vivado ロ グ フ ァ イ ル (vivado.log) に 保存 さ れ ます。 こ の ロ グ フ ァ イ ルお よ びデザ イ ン デー タ か ら の レ ポー ト を参照 し 、 プ ロ ジ ェ ク ト の状況を正確に評 価 し ます。 プ ロ ジ ェ ク ト モー ド でのイ ン プ リ メ ン テーシ ョ ン後の次の操作 プ ロ ジ ェ ク ト モー ド では、 Vivado Design Suite で次が実行 さ れます。 • [Messages] ビ ュ ーに ロ グ フ ァ イ ルか ら の メ ッ セージが表示 さ れます。 • さ ま ざ ま な レ ポー ト が自動的に生成 さ れます。 プ ロ ジ ェ ク ト モー ド では、 イ ンプ リ メ ン テーシ ョ ン run が完了す る と 、 図 1-23 に示すダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 次の操作を選択で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 47 イ ン プ リ メ ン テーシ ョ ン完了後の次の操作 X-Ref Target - Figure 1-23 図 1-23 : プ ロ ジ ェ ク ト モー ド : [Implementation Completed] ダ イ ア ログ ボ ッ ク ス [Implementation Completed] ダ イ ア ロ グ ボ ッ ク ス で、 次を実行 し ます。 1. 次のいずれかのオプシ ョ ン を オンに し ます。 • [Open Implemented Design] ネ ッ ト リ ス ト 、 デザ イ ン制約、 タ ーゲ ッ ト パーツ、 配置配線の結果を Vivado IDE に読み込み、 必要に応 じ てデ ザ イ ン を解析で き る よ う に し ます。 • • 2. [Generate Bitstream] ° [Generate Bitstream] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 ° 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 10] を参照 し て く だ さ い。 [View Reports] ° Vivado ツールで イ ンプ リ メ ン テーシ ョ ン中に生成 さ れた レ ポー ト フ ァ イ ルを選択 し て表示で き る [Reports] ビ ュ ーを開き ます。 ° 詳細は、 51 ページの 「 イ ンプ リ メ ン テーシ ョ ン レ ポー ト の表示」 を参照 し て く だ さ い。 [OK] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 48 メ ッ セージの表示 メ ッ セージの表示 重要 : すべての メ ッ セージ を確認 し て く だ さ い。 メ ッ セージには、 デザ イ ンのパ フ ォ ーマ ン ス、 消費電力、 エ リ ア、 配線を向上する ための推奨事項が記載 さ れ る 場合があ り ます。 ク リ テ ィ カル警告 メ ッ セージに も 、 解決すべ き タ イ ミ ン グ制約の問題が表示 さ れ る こ と があ り ます。 非プ ロ ジ ェ ク ト モー ド での メ ッ セージの表示 非プ ロ ジ ェ ク ト モー ド では、 Vivado ロ グ フ ァ イ ル (vivado.log) で次を確認 し ます。 • 1 つのデザ イ ン セ ッ シ ョ ンで使用 し た コ マ ン ド • コ マ ン ド か ら の結果お よ び メ ッ セージ 推奨 : Vivado テ キ ス ト エデ ィ タ ーで ロ グ フ ァ イ ルを開 き 、 すべての コ マ ン ド の結果を確認 し て く だ さ い。 有益な情 報が得 ら れ る こ と があ り ます。 プ ロ ジ ェ ク ト モー ド での メ ッ セージの表示 プ ロ ジ ェ ク ト モー ド では、 [Messages] ビ ュ ーに [Log] ビ ュ ーの内容が フ ィ ル タ ー さ れた も のが表示 さ れ主な メ ッ セー ジ、 警告、 お よ びエ ラ ーのみが含まれます。 [Messages] ビ ュ ーは機能ご と に分類 さ れてお り 、 フ ィ ル タ ーを適用す る ツールバー オプシ ョ ン を使用 し て、 特定の タ イ プの メ ッ セージのみを表示で き ます。 図 1-24 に例を示 し ます。 X-Ref Target - Figure 1-24 図 1-24 : [Messages] ビ ュ ー イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 49 メ ッ セージの表示 プ ロ ジ ェ ク ト モー ド で メ ッ セージ を表示す る 際は、 次の機能を使用で き ます。 • 横にあ る プ ラ ス記号 (+) を ク リ ッ ク し て展開 し 、 各 メ ッ セージ を表示 し ます。 • [Messages] ビ ュ ーの上部にあ る チ ェ ッ ク ボ ッ ク ス のオン/オフ を切 り 替え、 エ ラ ー、 ク リ テ ィ カル警告、 警告、 情報 メ ッ セージ を表示/非表示に し ます。 • [Messages] ビ ュ ーで リ ン ク を含む メ ッ セージ を ク リ ッ ク す る と 、 ソ ース フ ァ イ ルが開 き 、 該当す る 行が ハ イ ラ イ ト さ れます。 • メ ッ セージ を右 ク リ ッ ク し て [Search for Answer Record] を ク リ ッ ク す る と 、 ザ イ リ ン ク ス ウ ェ ブサ イ ト でその メ ッ セージに関連する ア ンサー デー タ ベース を検索で き ます。 イ ン ク リ メ ン タ ル コ ンパイルの メ ッ セージ Vivado ツールでは、 イ ン ク リ メ ン タ ル コ ンパ イ ルか ら の次のサマ リ 結果が ロ グ フ ァ イ ルに レ ポー ト さ れます。 • 「 イ ン ク リ メ ン タ ル配置サマ リ 」 • 「 イ ン ク リ メ ン タ ル配線サマ リ 」 イ ン ク リ メ ン タ ル配置サマ リ 次に、 イ ン ク リ メ ン タ ル配置サマ リ の例を示 し ます。 次の情報が含まれます。 • セル配置の再利用の最終的な評価 • ラ ン タ イ ム統計 +-----------------------------------------------------------------+ |Incremental Placement Summary | +-----------------------------------------------------------------+ | Reused instances | 40336| | Non-reused instances | 1158| | %similarity | 97.21| +-----------------------------------------------------------------+ |Incremental Placement Runtime Summary | +-----------------------------------------------------------------+ | Initialization time(elapsed secs) | 87.54| | Incremental Placer time(elapsed secs) | 50.42| +-----------------------------------------------------------------+ イ ン ク リ メ ン タ ル配線サマ リ イ ン ク リ メ ン タ ル配線サマ リ には、 ネ ッ ト フ ァ ン ア ウ ト の分散に基づ く 再利用統計が示 さ れます。 レ ポー ト さ れ る カ テ ゴ リ は、 次の と お り です。 • Fully Reused ネ ッ ト の配線全体が基準デザ イ ンか ら 再利用 さ れてい ます。 • Partially Reused ネ ッ ト の配線の一部が基準デザ イ ンか ら 再利用 さ れてい ます。 セル、 セルの配置、 ま たはその両方が変更 さ れた こ と に よ り 、 一部のセグ メ ン ト は再配線 さ れてい ます。 • New/Unmatched 現在のデザ イ ンに含まれ る ネ ッ ト が基準デザ イ ンの も の と 一致 し てい ません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 50 イ ン プ リ メ ン テーシ ョ ン レポー ト の表示 +----------------------------------------------------------+ |Incremental Routing Reuse Summary: +----------+-----------+-----------+-----------+-----------+ # | Fully | Partially | New / | | # Fanout | Reused | Reused | Unmatched | Total | +----------+-----------+-----------+-----------+-----------+ | == 2 | 15749 | 12 | 387 | 16136 | +----------+-----------+-----------+-----------+-----------+ | < 50 | 16061 | 31 | 375 | 16467 | +----------+-----------+-----------+-----------+-----------+ | [50,100] | 249 | 3 | 20 | 272 | +----------+-----------+-----------+-----------+-----------+ | [100,500]| 32 | 0 | 7 | 39 | +----------+-----------+-----------+-----------+-----------+ | >= 500 | 8 | 1 | 0 | 9 | +----------+-----------+-----------+-----------+-----------+ | Total | 32099 | 47 | 789 | 32923 | +----------+-----------+-----------+-----------+-----------+ +----------+-----------+-----------+ | % | Fully | Partially | | Reuse | Reused | Reused | +----------+-----------+-----------+ | Net | 97.49 | 0.14 | | Pin | 100.00 | 0.00 | +----------+-----------+-----------+ イ ン プ リ メ ン テーシ ョ ン レ ポー ト の表示 Vivado Design Suite では、 次の情報を含む さ ま ざ ま な レ ポー ト を生成で き ます。 • タ イ ミ ン グ、 タ イ ミ ン グの密集度、 タ イ ミ ン グ サマ リ • ク ロ ッ ク 、 ク ロ ッ ク ネ ッ ト ワー ク 、 ク ロ ッ ク 使用率 • 消費電力、 ス イ ッ チン グ ア ク テ ィ ビ テ ィ 、 ノ イ ズ解析 レ ポー ト を表示する と 、 次を実行で き ます。 • ス ク ロ ール バーを使用 し て レ ポー ト フ ァ イ ルを参照 • [Find] ま たは [Find in Files] ボ タ ン を ク リ ッ ク し 、 特定テ キ ス ト を検索 • [Go to the Beginning] を ク リ ッ ク し て フ ァ イ ルの冒頭に移動 • [Go to the End] を ク リ ッ ク し て フ ァ イ ルの最後に移動 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 51 イ ン プ リ メ ン テーシ ョ ン レポー ト の表示 非プ ロ ジ ェ ク ト モー ド でのレポー ト 生成 非プ ロ ジ ェ ク ト モー ド では、 レ ポー ト を手動で生成す る 必要があ り ます • 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 に表示 し てい ます。 図 1-26 に、 Vivado IDE で レ ポー ト を開いた例を示 し ます。 ヒ ン ト : レ ポー ト を保存す る デ ィ レ ク ト リ は、 レ ポー ト の生成を実行する 前に存在 し てい る 必要があ り ます。 デ ィ レ ク ト リ がない と フ ァ イ ルは保存 さ れず、 エ ラ ー メ ッ セージが表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン レ ポー ト コ マ ン ド に関する情報 Vivado IDE ま たは Tcl コ マ ン ド プ ロ ンプ ト で help Tcl コ マン ド を使用す る と 、 Tcl レ ポー ト コ マン ド と そのオプシ ョ ンに関する 情報を表示で き ます。 Tcl レ ポー ト コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 12] を参照 し て く だ さ い。 プ ロ ジ ェ ク ト モー ド でのレ ポー ト 生成 プ ロ ジ ェ ク ト モー ド では、 多 く の レ ポー ト が自動的に生成 さ れます。 こ れ ら の レ ポー ト は、 [Reports] ビ ュ ー (図 1-25) に リ ス ト さ れます。 [Reports] ビ ュ ーは、 合成ま たは イ ンプ リ メ ン ト コ マ ン ド を実行する と 自動的に開き ます。 開いていない場合は、 次の いずれかの方法で開 く こ と がで き ます。 • [Project Summary] ビ ュ ーで [Reports] リ ン ク を ク リ ッ ク し ます。 • [Window] → [Reports] を ク リ ッ ク し ます。 ヒ ン ト : イ ンプ リ メ ン テーシ ョ ン run の tcl.pre お よ び tcl.post オプシ ョ ン を使用す る と 、プ ロ セ ス の各段階でカ ス タ ム レ ポー ト を出力で き ます。 こ れ ら のカ ス タ ム レ ポー ト は [Reports] ビ ュ ーには表示 さ れませんが、 ニーズに合わせて イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 52 イ ン プ リ メ ン テーシ ョ ン レポー ト の表示 カ ス タ マ イ ズで き ます。 詳細は、 「 イ ンプ リ メ ン テーシ ョ ン run 設定の変更」 を参照 し て く だ さ い。 X-Ref Target - Figure 1-25 図 1-25 : [Reports] ビ ュ ー [Reports] ビ ュ ーか ら 表示 さ れ る レ ポー ト には、 run に関す る 情報が含まれます。 レ ポー ト は、 Vivado IDE でテ キ ス ト 形式で開き ます (図 1-26)。 X-Ref Target - Figure 1-26 図 1-26 : 制御セ ッ ト レポー ト イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 53 イ ン プ リ メ ン テーシ ョ ン レポー ト の表示 レ ポー ト から のク ロ ス プ ローブ プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の両方で、 レ ポー ト と [Device] ビ ュ ーな ど の ビ ュ ーに表示 さ れ る 関連デザ イ ン デー タ の ク ロ ス プ ロ ーブがサポー ト さ れてい ます。 • メ ニ ュ ー コ マン ド ま たは Tcl コ マン ド を使用 し て レ ポー ト を生成す る 必要があ り ます。 • テ キ ス ト 形式の レ ポー ト では ク ロ ス プ ロ ーブはサポー ト さ れてい ません。 た と えば [Reports] ビ ュ ー (図 1-25) には、 [Route Design] の下にテ キ ス ト 形式の タ イ ミ ン グ サマ リ レ ポー ト が含ま れ てい ます。 タ イ ミ ン グ を解析す る 際は、 ク リ テ ィ カル パ ス の配置お よ び配線 リ ソ ース な ど のデザ イ ン デー タ を [Device] ビ ュ ー に表示する と 有益です。 Vivado IDE で [Tools] → [Timing] → [Report Timing Summary] を ク リ ッ ク する と 、タ イ ミ ン グ サマ リ レ ポー ト が再生成 さ れ、 表示 さ れた レ ポー ト か ら デザ イ ンの異な る ビ ュ ーに ク ロ ス プ ロ ーブで き ます。 タ イ ミ ング レ ポー ト と [Device] ビ ュ ーの ク ロ ス プ ローブの例 図 1-27 に、 タ イ ミ ン グ サマ リ レ ポー ト と [Device] ビ ュ ーの ク ロ ス プ ロ ーブの例を示 し ま す。 こ の非プ ロ ジ ェ ク ト モー ド の例では、 次の手順が実行 さ れてい ます。 • 配線後のデザ イ ン チ ェ ッ ク ポ イ ン ト を Vivado IDE で開 き ます。 • report_timing_summary -name を使用 し て、 デザ イ ン サマ リ レ ポー ト を生成 し て開 き ます。 • [Device] ビ ュ ーでは [Routing Resources] がオンにな っ てい ます。 • タ イ ミ ン グ サマ リ レ ポー ト で タ イ ミ ン グ パ ス を選択す る と 、 [Device] ビ ュ ーで も 選択 さ れます。 次の図を参照 し て く だ さ い。 X-Ref Target - Figure 1-27 図 1-27 : タ イ ミ ング レ ポー ト と [Device] ビ ュ ーのク ロ ス プ ローブ レ ポー ト の解析お よ びデザ イ ン ク ロ ージ ャ の ス ト ラ テジの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン 解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 8] を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 54 第 2章 イ ン プ リ メ ン テーシ ョ ン コ マ ン ド イ ン プ リ メ ン テーシ ョ ン コ マ ン ド について ザ イ リ ン ク ス Vivado® 統合設計環境 (IDE) には、 プ ロ ジ ェ ク ト ベース のデザ イ ンで イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス を管理 し 、 簡略化す る 多数の機能が含まれてい ます。 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス を段階ご と に手動で実行す る 機能 も 含まれます。 詳細は、 第 1 章 「Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス」 の 18 ページの 「プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 非プ ロ ジ ェ ク ト モー ド では、Tcl コ マン ド を使用 し て イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階を手動で実行す る 必 要があ り ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 12] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 詳細は、 第 1 章 「Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス」 の 15 ページの 「非プ ロ ジ ェ ク ト モー ド での イ ンプ リ メ ン テーシ ョ ンの実行」 を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ンのサブ プ ロ セス プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の ど ち ら で も 、 Vivado イ ンプ リ メ ン テーシ ョ ン プ ロ セ スはい く つ かのサブプ ロ セ ス で構成 さ れてい ます。 • 合成済みデザ イ ン を開 く : ネ ッ ト リ ス ト 、 デザ イ ン制約、 タ ーゲ ッ ト デバ イ ス デー タ を統合 し 、 イ ンプ リ メ ン テーシ ョ ン を実行する デザ イ ン を メ モ リ 内に構築 し ます。 • opt_design (デザ イ ンの最適化) : ザ イ リ ン ク ス FPGA デバ イ ス に フ ィ ッ ト す る よ う 論理デザ イ ン を最適化 し ます。 • power_opt_design (デザ イ ンの消費電力最適化) : イ ンプ リ メ ン ト 済み FPGA デバ イ ス の消費電力を削減す る ため、 デザ イ ン エ レ メ ン ト を最適化 し ます。 注記 : こ の手順はオプシ ョ ンです。 • place_design (デザ イ ンの配置) : デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配置 し ます。 • phys_opt_design (デザ イ ンの物理最適化) : さ ま ざ ま な物理最適化手法を使用 し て、 デザ イ ンの ス ラ ッ ク が負 のパ ス の タ イ ミ ン グ を最適化 し ます。 注記 : こ の手順はオプシ ョ ンです。 • route_design (デザ イ ンの配線) : デザ イ ン を タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス に配線 し ます。 • write_bitstream (ビ ッ ト ス ト リ ームの生成) : ザ イ リ ン ク ス デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの ビ ッ ト ス ト リ ーム を生成 し ます。 注記 : ビ ッ ト ス ト リ ーム生成は、 厳密には イ ン プ リ メ ン テーシ ョ ン run の一部ではあ り ませんが、 別の段階 と し て実行可能です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 55 合成済みデザイ ン を開 く こ の章では、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の各段階 と 関連す る Tcl コ マン ド の詳細を説明 し ます。 Tcl レ ポー ト コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) を参照 し て く だ さ い。 合成済みデザイ ン を開 く イ ンプ リ メ ン テーシ ョ ンでは、 まず最初に合成済みデザ イ ンか ら のネ ッ ト リ ス ト を メ モ リ に読み込み、 デザ イ ン制約 を適用 し ます。 合成済みのデザ イ ンは、 使用 さ れ る デザ イ ン フ ロ ーに よ っ て さ ま ざ ま な方法で開 く こ と がで き ます。 メ モ リ 内でのデザイ ンの構築 メ モ リ 内にデザ イ ン を構築す る ため、 次のプ ロ セ ス でネ ッ ト リ ス ト フ ァ イ ル、 制約フ ァ イ ル、 お よ び タ ーゲ ッ ト デ バ イ ス の情報が統合 さ れます。 1. ネ ッ ト リ ス ト を統合 し ます。 必要であれば、 複数の ソ ース か ら のネ ッ ト リ ス ト を統合 し ます。 デザ イ ンには、 構造 Verilog、 EDIF、 NGC を含 め る こ と がで き ます。 2. 従来のネ ッ ト リ ス ト プ リ ミ テ ィ ブ を現在サポー ト さ れ る Unisim プ リ ミ テ ィ ブに変換 し ます。 ヒ ン ト : report_transformed_primitives を使用す る と 、 変換 さ れたセルの リ ス ト を生成で き ます。 3. セルの形を作成 し ます。 • Vivado ツールでは、 接続ま たは配置制約に基づいてセルの非明示的な形が作成 さ れ、 配置が簡略化 さ れます。 • 非明示的な形の例は、 次の と お り です。 ° 相対配置マ ク ロ (RPM) 注記 : RPM は、 個別のセルではな く グループ と し て配置 さ れます。 ° 複数の ス ラ イ ス に配置する 必要のあ る 長いキ ャ リ ー チ ェーン 注記 : キ ャ リ ー チ ェ ーン を構成す る CARRY4 エ レ メ ン ト は 1 つの形に含め、 縦方向に並ぶ複数の ス ラ イ ス に配置 さ れ る よ う にする 必要があ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 56 合成済みデザイ ン を開 く Tcl コ マ ン ド デザ イ ンの ソ ース フ ァ イ ルお よ びス テー ト に応 じ て、 次の Tcl コ マン ド を使用 し て合成済みデザ イ ン を メ モ リ に読み 込む こ と がで き ます。 • synth_design • read_checkpoint • open_run • link_design 表 2-1 : Tcl コ マ ン ド を使用可能なモー ド コマン ド synth_design プ ロ ジ ェ ク ト モー ド 非プ ロ ジ ェ ク ト モー ド X X X read_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>] [-effort_level <arg>] [-rtl] [-no_iobuf] [-bufg <arg>] [-fanout_limit <arg>] [-mode <arg>] [-fsm_extraction <arg>] [-keep_equivalent_registers] [-quiet] [-verbose] synth_design のス ク リ プ ト 例 次の コ ー ド は、 Vivado ツールの イ ン ス ト ール デ ィ レ ク ト リ の examples/Vivado_Tutorials デ ィ レ ク ト リ に含ま れ る create_bft_batch.tcl ス ク リ プ ト か ら の抜粋です。 # Setup design sources and 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) を参照 し て く だ さ い。 こ のサ ンプル ス ク リ プ ト では、 VHDL お よび Verilog フ ァ イ ルが読み込まれ、 指定 し たデバ イ ス でデザ イ ンが合成 さ れます。 synth_design コ マ ン ド が完了する と 、 デザ イ ンが開き 、 メ モ リ に読み込まれます。 合成が完了す る と 、 デ ザ イ ン チ ェ ッ ク ポ イ ン ト が保存 さ れます。 Tcl コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 57 合成済みデザイ ン を開 く read_checkpoint read_checkpoint コ マン ド は、 非プ ロ ジ ェ ク ト モー ド でのみ使用で き ます。 非プ ロ ジ ェ ク ト モー ド で合成済みデ ザ イ ン チ ェ ッ ク ポ イ ン ト を開 き ます。 read_checkpoint の構文 read_checkpoint [-part <arg>] [-quiet] [-verbose] <file> read_checkpoint のス ク リ プ ト 例 # Read the specified design checkpoint and create an in-memory design. read_checkpoint C:/Data/post_synth.dcp こ のサ ンプル ス ク リ プ ト では、 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルが開 き ます。 open_run 合成済みま たは イ ンプ リ メ ン ト 済み run を開 き 、 メ モ リ に読み込みます。 重要 : open_run コ マン ド は、 プ ロ ジ ェ ク ト モー ド でのみ使用で き ます。 デザ イ ン run は非プ ロ ジ ェ ク ト モー ド では サポー ト さ れません。 open_run コ マン ド を イ ンプ リ メ ン テーシ ョ ン前の RTL デザ イ ンに使用 し 、 完了 し た Vivado 合成ま たは XST run を 開いて、 合成済みネ ッ ト リ ス ト を メ モ リ に読み込みます。 ヒ ン ト : メ モ リ 内のデザ イ ンは自動的にア ッ プデー ト さ れ る ので、 synth_design の後 open_run を使用す る 必要 はあ り ません。open_run コ マン ド は、以前のデザ イ ン セ ッ シ ョ ンで完了 し た合成 run を開 く 場合にのみ使用 し ます。 open_run コ マ ン ド は、 RTL デザ イ ン用です。 ネ ッ ト リ ス ト ベース のデザ イ ン を開 く には、 link_design コ マン ド を使用 し ます。 open_run の構文 open_run [-name <arg>] [-quiet] [-verbose] <run> open_run のス ク リ プ ト 例 # Open named design from completed synthesis run open_run -name synth_1 synth_1 こ のサ ンプル プ ロ ジ ェ ク ト は、 synth_1 と い う デザ イ ン を開 き 、 synth_1 と い う 完了 し た合成 run を メ モ リ に読み込み ます。 デザ イ ン が メ モ リ にあ る 場合に open_run コ マ ン ド を実行す る と 、 新 し いデザ イ ン を開 く 前に、 現在のデザ イ ンへ の変更を保存する かど う かを尋ねる メ ッ セージが表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 58 ロ ジ ッ ク 最適化 link_design サー ド パーテ ィ 合成ツールな ど で生成 さ れたネ ッ ト リ ス ト ソ ース か ら メ モ リ にデザ イ ン を作成 し 、ネ ッ ト リ ス ト と 合 成制約を タ ーゲ ッ ト デバ イ ス に リ ン ク し ます。 ヒ ン ト : link_design コ マ ン ド は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の両方でネ ッ ト リ ス ト デザ イ ン を作成する 場合にサポー ト さ れます。 link_design の構文 link_design [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>] [-mode <arg>] [-quiet] [-verbose] link_design のス ク リ プ ト 例 # Open named design from netlist sources. link_design -name netDriven -constrset constrs_1 -part xc7k325tfbg900-1 デザ イ ンが メ モ リ にあ る 場合に link_design コ マン ド を実行す る と 、 新 し いデザ イ ン を開 く 前に、 現在のデザ イ ン への変更を保存する かど う かを尋ねる メ ッ セージが表示 さ れます。 推奨 : メ モ リ に合成済みデザ イ ン を作成 し た後、 エ ラ ーお よ び ク リ テ ィ カル警告を調べて、 不足 し てい る 制約や不正 な制約がないか ど う か を確認 し て く だ さ い。 デザ イ ンが問題な く 作成 さ れた ら 、 解析、 レ ポー ト 生成、 制約の適用、 ま たは イ ンプ リ メ ン テーシ ョ ン を実行で き ます。 メ モ リ に合成済みデザ イ ン を開いた ら 、 report_timing_summary コ マン ド を実行 し て タ イ ミ ン グ制約をチ ェ ッ ク し 、 デザ イ ンの目標が適切であ る かど う かを確認 し て く だ さ い。 ロ ジ ッ ク最適化 ロ ジ ッ ク 最適化は、 配置の前に効率的な ロ ジ ッ ク デザ イ ン を得る ために実行 し ます。 ロ ジ ッ ク 最適化では、 ネ ッ ト リ ス ト 接続性チ ェ ッ ク が実行 さ れ、 複数の ド ラ イ バーを持つネ ッ ト や駆動 さ れていない入力な ど の潜在的なデザ イ ン問 題に対 し て警告 メ ッ セージが表示 さ れます。 ブ ロ ッ ク RAM の消費電力最適化 も 実行 さ れます。 使用可能な ロ ジ ッ ク 最適化 Vivado ツールでは、 メ モ リ 内のデザ イ ンに対 し て次の ロ ジ ッ ク 最適化を実行で き ます。 • リ タ ーゲ ッ ト (デフ ォ ル ト ) • 定数伝搬 (デフ ォ ル ト ) • ス イ ープ (デフ ォ ル ト ) • ブ ロ ッ ク RAM の消費電力最適化 (デフ ォ ル ト ) • リ マップ • エ リ ア モー ド での再合成 重要 : 特定の最適化を明示的に指定す る と 、 ほかの最適化はデ ィ ス エーブルにな り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 59 ロ ジ ッ ク 最適化 リ タ ーゲ ッ ト (デ フ ォル ト ) 最適化が し やす く な る よ う に、 セル タ イ プを別のセル タ イ プに置換 し ます。 た と えば、 MUXF7 はほかの LUT と 統 合で き る よ う に LUT3 に置換 さ れます。 ま た、 イ ンバー タ ーの よ う な単純なセルはダ ウ ン ス ト リ ーム ロ ジ ッ ク に吸収 さ れます。 定数伝搬 (デ フ ォル ト ) 定数値を ロ ジ ッ ク に伝搬する こ と で、 ロ ジ ッ ク は次の よ う にな り ます。 • 削除 例 : 定数 0 が入力 さ れ る AND • 縮小 例 : 定数 1 が入力 さ れ る 3 入力 AND を 2 入力 AND に縮小 • 冗長 例 : 0 が入力 さ れ る 2 入力 OR を 1 本の ワ イ ヤに削減 ス イ ープ (デ フ ォル ト ) ロ ー ド のないセルを削除 し ます。 ブ ロ ッ ク RAM の消費電力最適化 (デ フ ォル ト ) ブ ロ ッ ク RAM セルに対 し て消費電力の最適化を イ ネーブルに し ます。 次を実行 し ます。 • 完全なデュ アル ポー ト RAM の読み出 さ れないポー ト の WRITE_MODE を NO_CHANGE に変更 • ブ ロ ッ ク RAM の出力に ク ロ ッ ク ゲーテ ィ ン グ を適用 リマップ 複数の LUT を 1 つの LUT に ま と めて ロ ジ ッ ク の深 さ を削減 し ます。 エ リ ア モー ド での再合成 エ リ ア モー ド で合成を再実行 し 、 LUT の数を削減 し ます。 重要 : 各 ロ ジ ッ ク 最適化は メ モ リ 内のデザ イ ンに適用 さ れ、 元の合成済みデザ イ ンには適用 さ れません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 60 ロ ジ ッ ク 最適化 opt_design 現在のネ ッ ト リ ス ト を最適化 し ます。 メ モ リ 内のデザ イ ン を読み込み、 最適化 し て、 最適化 さ れたデザ イ ン を メ モ リ に戻 し ます。 opt_design の構文 opt_design [-retarget] [-propconst] [-sweep] [-bram_power_opt] [-remap] [-resynth_area] [-directive <arg>] [-quiet] [-verbose] opt_design のス ク リ プ ト 例 # Run logic optimization, save results in a checkpoint, report timing estimates opt_design -retarget -propconst -sweep write_checkpoint -force $outputDir/post_opt report_timing_summary -file $outputDir/post_opt_timing_summary.rpt こ のサ ンプル ス ク リ プ ト では、 メ モ リ 内のデザ イ ンに ロ ジ ッ ク 最適化を実行 し 、 メ モ リ に書 き 込みます。 最適化後に デザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し 、 タ イ ミ ン グ サマ リ レ ポー ト を生成 し て指定の フ ァ イ ルに記述 し ます。 最適化 タ イ プの制限 最適化 タ イ プを制限する には、 コ マン ド ラ イ ン オプシ ョ ン を使用 し ます。 た と えば、 デフ ォ ル ト のブ ロ ッ ク RAM 最 適化を実行 し ない よ う にする には、 次の コ マ ン ド を使用 し ます。 opt_design -retarget -propconst -sweep -directive オプ シ ョ ンの使用 -directive オプシ ョ ン を使用す る と 、 opt_design コ マ ン ド を異な る モー ド で実行で き ます。 一度に指定で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ン と 共に使用す る こ と はで き ません。 次の設定 があ り ます。 • Explore : 最適化を複数回実行 し ます。 • ExploreArea : エ リ ア を縮小す る こ と を優先 し て最適化を複数回実行 し ます。 • AddRemap : デフ ォ ル ト の ロ ジ ッ ク 最適化フ ロ ーを実行 し 、LUT 再マ ッ プを含めて ロ ジ ッ ク レベルを削減 し ます。 -verbose オプ シ ョ ンの使用 最適化結果を解析す る には、 -verbose オプシ ョ ン を使用 し 、 opt_design の最適化の影響を受けた ロ ジ ッ ク の詳 細を確認 し ます。 -verbose オ プ シ ョ ン を 使用す る と 大量の メ ッ セージ が表示 さ れ る の で、 デ フ ォ ル ト ではオ フ に な っ て い ま す。 -verbose オプシ ョ ンは、 有益だ と 思われ る 場合に使用 し て く だ さ い。 重要 : opt_design コ マン ド は、 メ モ リ 内のデザ イ ンに対 し て実行 さ れます。 複数回実行 し た場合、 前回の run の結 果が最適化 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 61 消費電力の最適化 ロ ジ ッ ク 最適化制約 1. ロ ジ ッ ク 最適化中、 DONT_TOUCH お よ び MARK_DEBUG プ ロ パテ ィ が認識 さ れ、 こ れ ら のプ ロ パテ ィ が設定 さ れてい る ネ ッ ト は削除 さ れません。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) を参照 し て く だ さ い。 MARK_DEBUG は、 Vivado ロ ジ ッ ク 解析を使用 し てプ ロ ーブす る 予定のネ ッ ト に設定 し ます。 MARK_DEBUG の設 定 さ れたネ ッ ト はス ラ イ ス境界に接続 さ れ、 プ ロ ーブで き る 状態にな り ます。 DONT_TOUCH は最下位セルに設定 し 、 最適化 さ れない よ う に し ます。 階層セルに DONT_TOUCH を設定す る と セル の境界は保持 さ れますが、 セル内で最適化が実行 さ れ る 可能性はあ り ます。 重要 : ISE Design Suite か ら デ ザ イ ン を 移 行 し た 場 合、 KEEP お よ び KEEP_HIERARCHY 制約 が 自 動的 に DONT_TOUCH 制約に変換 さ れます。 消費電力の最適化 ク ロ ッ ク ゲーテ ィ ン グ を使用 し て、 ダ イ ナ ミ ッ ク 消費電力を最適化 し ます (オプシ ョ ン)。 消費電力の最適化は、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で使用で き 、 ロ ジ ッ ク 最適化後ま たは配置後に実行 し てデザ イ ン の消費電力を最適化で き ま す。 消費電力の最適化には、 ク ロ ッ ク や ロ ジ ッ ク を変更せずに FPGA デザ イ ン のダ イ ナ ミ ッ ク 消費電力を削減する ク ロ ッ ク ゲーテ ィ ン グ ソ リ ュ ーシ ョ ンが含まれます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 消費電力解析お よ び最適化』 (UG907)を参照 し て く だ さ い。 Vivado 消費電力解析 Vivado ツールでは、 レ ガ シ IP ブ ロ ッ ク お よ びサー ド パーテ ィ IP ブ ロ ッ ク を含む、 デザ イ ン全体が解析 さ れ、 各 ク ロ ッ ク サ イ ク ルでの結果に影響 し ない レ ジ ス タ か ら の出力 ロ ジ ッ ク が特定 さ れます。 ク ロ ッ ク イ ネーブル (CE) の使用 Vivado 消費電力最適化では、 ザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス の ロ ジ ッ ク に多数含ま れ る ク ロ ッ ク イ ネーブ ル (CE) が利用 さ れます。 細粒度 ク ロ ッ ク ゲーテ ィ ン グ ま たは ロ ジ ッ ク ゲーテ ィ ン グ信号が作成 さ れ、 余分な ス イ ッ チ イ ン グ ア ク テ ィ ビ テ ィ が除去 さ れます。 ま た、 フ リ ッ プ フ ロ ッ プ レベルでは、 CE はフ リ ッ プ フ ロ ッ プの D 入力 と フ ィ ー ド バ ッ ク Q 出力のいずれかを選択す る のではな く 、 ク ロ ッ ク を ゲーテ ィ ン グ し てい る ので、 CE 入力のパ フ ォーマ ン ス が向上す る だけではな く 、 ク ロ ッ ク の消費電力 も 削減 さ れます。 ク ロ ッ ク ゲーテ ィ ング X-Ref Target - Figure 2-1 %HIRUH VLJ $IWHU 3RZHU &RQVXPSWLRQ 3RZHU &RQVXPSWLRQ VLJ &( :3 図 2-1 : ク ロ ッ ク ゲーテ ィ ング イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 62 消費電力の最適化 ク ロ ッ ク ゲーテ ィ ン グ では、 シ ン プル デ ュ アル ポー ト ま たは完全なデ ュ アル ポー ト モー ド 両方の専用ブ ロ ッ ク RAM の消費電力 も 削減 さ れます (図 2-2)。 こ れ ら のブ ロ ッ ク には、 次の イ ネーブルが含まれます。 • ア レ イ イ ネーブル • ラ イ ト イ ネーブル • 出力レ ジ ス タ の ク ロ ッ ク イ ネーブル 節約 さ れ る 消費電力のほ と んど はア レ イ イ ネーブルの使用に よ る も ので、 デー タ が書き 込まれず、出力が使用 さ れな い と き に、 消費電力を削減する 機能が イ ンプ リ メ ン ト さ れます。 X-Ref Target - Figure 2-2 %HIRUH $IWHU DGGUHVV DGGUHVV GDWDRXW GDWDLQ GDWDRXW GDWDLQ FH 図 2-2 : BRAM イ ネーブルの利用 power_opt_design power_opt_design コ マン ド は、 デザ イ ン を解析 し て最適化 し ます。 デフ ォル ト では、 デザ イ ン全体が解析お よ び 最適化 さ れます。 ク ロ ッ ク ゲーテ ィ ン グ も 実行 さ れ、 消費電力が最適化 さ れます。 power_opt_design の構文 power_opt_design [-quiet] [-verbose] デザ イ ン全体を解析お よ び最適化 し ない場合は、 set_power_opt を使用 し て最適化を設定 し ます。 こ の コ マン ド を使用 する と 、 最適化にセル タ イ プ ま たは階層を含め る か、 除外す る かな ど を設定で き ます。 set_power_opt コ マン ド の構文は、 次の と お り です。 set_power_opt [-include_cells <args>] [-exclude_cells <args>] [-clocks <args>] [-cell_types <args>] [-quiet] [-verbose] 注記 : opt_design を使用 し た場合、 ブ ロ ッ ク RAM の消費電力最適化は実行 さ れません。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 63 配置 配置 Vivado 配置エ ン ジ ンに よ り ネ ッ ト リ ス ト のセルが タ ーゲ ッ ト デバ イ ス の特定サ イ ト に配置 さ れます。 ほかの イ ンプ リ メ ン テーシ ョ ン コ マン ド と 同様、 メ モ リ 内のデザ イ ンに対 し て処理が実行 さ れます。 デザイ ン配置の最適化 Vivado の配置エン ジ ンでは、 次を最適化す る よ う 配置が実行 さ れます。 • タ イ ミ ン グ ス ラ ッ ク : タ イ ミ ン グ ク リ テ ィ カルなパ ス のセルの配置は、負の ス ラ ッ ク が最小限にな る よ う 選択 さ れます。 • 配線長 : 配線長を最小限に抑え る よ う に、 全体的な配置が実行 さ れます。 • 密集 : ピ ンの密集度が監視 さ れ、 配線の密集を削減す る ためセルが分散 さ れます。 デザイ ン ルール チ ェ ッ ク 配置を開始す る 前に、 デザ イ ン ルール チ ェ ッ ク (DRC) (report_drc で選択 さ れた DRC お よ びビ ル ト イ ン の内部 DRC) が実行 さ れます。 内部 DRC では、 LOC 制約の設定 さ れていない Memory Interface Generator (MIG) セル、 競合す る IOSTANDARD が設定 さ れた I/O バン ク な ど、 多数の問題が レ ポー ト さ れます。 ク ロ ッ ク および I/O 配置 DRC の実行後、 ク ロ ッ ク お よ び I/O セルが配置 さ れてか ら その他の ロ ジ ッ ク セルが配置 さ れます。 ク ロ ッ ク と I/O セ ルは、 選択 し たザ イ リ ン ク ス デバ イ ス に特定の複雑な配置規則に よ っ て関連 し てい る こ と が よ く あ る ので、同時に配 置 さ れます。 配置の タ ーゲ ッ ト こ の時点では、 次が配置の タ ーゲ ッ ト と な り ます。 • I/O ポー ト お よ び ロ ジ ッ ク • グ ロ ーバルお よ び ロ ーカル ク ロ ッ ク バ ッ フ ァ ー • ク ロ ッ ク マネージ メ ン ト タ イ ル (MMCM お よ び PLL) • ギガ ビ ッ ト ト ラ ン シーバー (GT) セル 固定 さ れていない ロ ジ ッ ク の配置 配置の こ の段階では、 固定 さ れていない ロ ジ ッ ク を配置する 際 LOC プ ロ パテ ィ や Pblock 割 り 当てな ど の物理制約に 従い ます。 既存の LOC 制約は、 ネ ッ ト リ ス ト の接続お よ びデバ イ ス サ イ ト に対 し て有効か ど う かがチ ェ ッ ク さ れま す。 MIG や GT の よ う な一部の IP は、 デバ イ ス専用の配置制約を使用 し て生成 さ れます。 重要 : デバ イ ス の I/O アーキ テ ク チ ャ のために、 LOC プ ロ パテ ィ で LOC が適用 さ れていないセルが制約 さ れ る こ と が よ く あ り ます。 入力ポー ト に LOC 制約が設定 さ れてい る 場合、 関連す る I/O バ ッ フ ァ ー、 IDELAY、 ILOGIC の位 置 も 固定 さ れ ます。 競合す る LOC 制約は、 入力パ ス の個々のセルには適用で き ません。 出力お よ び GT 関連のセル の場合 も 同様です。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 64 配置 ク ロ ッ ク リ ソ ースの配置規則 ク ロ ッ ク リ ソ ース の配置は、『7 シ リ ーズ FPGA ク ロ ッ ク リ ソ ース ユーザー ガ イ ド 』 (UG472) [参照 11] に示す配置規 則に従 う 必要があ り ます。 た と えば、 グ ロ ーバル ク ロ ッ ク を駆動する 入力は ク ロ ッ ク 兼用 I/O サ イ ト に配置す る 必要 があ り 、デバ イ ス の上半分ま たは下半分の ど ち ら か同 じ 側に配置する 必要があ り ます。 こ れ ら の ク ロ ッ ク 配置規則 も 、 論理ネ ッ ト リ ス ト の接続お よ びデバ イ ス サ イ ト に対 し て有効か ど う かがチ ェ ッ ク さ れます。 ク ロ ッ ク お よび I/O を配置で き ない場合 ク ロ ッ ク お よ び I/O の適切な配置が見つか ら なかっ た場合は、 違反のあ っ た配置規則 と 、 影響を受けたセルの簡単な 説明が表示 さ れます。 まずサ イ ト にセルが暫定的に配置 さ れ、 その後配置問題を解決す る ために別のセルが配置 さ れ る こ と があ り ます。 暫定的な配置に よ り 、 ク ロ ッ ク お よ び I/O 配置のエ ラ ーの原因がわか る こ と が よ く あ り ます。 暫 定的な配置でエ ラ ーにな っ たセルを手動で配置する と 、 配置が改善する こ と があ り ます。 ヒ ン ト : place_ports コ マ ン ド を実行 し て ク ロ ッ ク お よ び I/O を配置 し てか ら 、place_design コ マ ン ド を実行 し ます。 ポー ト 配置でエ ラ ーが発生 し た場合、 配置は メ モ リ に保存 さ れ、 エ ラ ーを解析で き ます。 詳細は、 Vivado Tcl プ ロ ン プ ト か ら place_ports -help を実行 し て く だ さ い。 グ ローバル配置、 詳細配置、 パ ッ キングおよび有効化 ク ロ ッ ク お よ び I/O を配置 し た後、 次の配置プ ロ セ ス が実行 さ れます。 • グ ロ ーバル配置 • 詳細配置 • パ ッ キ ン グおお よ び有効化 配置後、 タ イ ミ ン グ サマ リ (概算) が ロ グ フ ァ イ ルに出力 さ れます。 Phase 12 Placer Reporting INFO: [Place-100] Post Placement Timing Summary | WNS=-0.08836| TNS=-1.479 | 説明 : ° WNS : ワース ト ネガテ ィ ブ ス ラ ッ ク ° TNS : ト ー タ ル ネガテ ィ ブ ス ラ ッ ク 推奨 : 配置後に report_timing を実行 し 、 ク リ テ ィ カル パ ス をチ ェ ッ ク し て く だ さ い。 ネガテ ィ ブ ス ラ ッ ク が大 き いパ ス は、 タ イ ミ ン グ ク ロ ージ ャ を達成す る ため、 手動配置、 制約の変更、 ま たは ロ ジ ッ ク の再構築が必要な場合 があ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 65 配置 place_design place_design コ マ ン ド は、 ポー ト お よ びセルを自動的に配置 し ます。 ほかの イ ンプ リ メ ン テーシ ョ ン コ マ ン ド と 同様、 place_design コ マ ン ド は イ ン ク リ メ ン タ ルに実行 さ れます。 部分的に配置 さ れてい る デザ イ ンに対 し ては、 始めか ら 配置 し 直すのではな く 、 既存の配置が開始点 と し て使用 さ れます。 place_design の構文 place_design [-directive <arg>] [-no_timing_driven] [-quiet] [-verbose] place_design のス ク リ プ ト 例 # Run placement, save results to checkpoint, report timing estimates place_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-2 に、 ど のモー ド が ど の よ う なデザ イ ンに効果的かを示 し ます。 表 2-2 : -directive オプ シ ョ ンのガ イ ド ラ イ ン モー ド 効果が得ら れるデザイ ン BlockPlacement ブ ロ ッ ク RAM ま たは DSP ブ ロ ッ ク 、 あ る いはその両方を多数含むデザ イ ン NetDelay 遠距離のネ ッ ト 接続を含むデザ イ ンお よ び多数の異な る モジ ュ ールに フ ァ ン ア ウ ト す る ネ ッ ト を含むデザ イ ン SpreadLogic 接続が多数あ る 密集が発生 し やすいデザ イ ン ExtraPostPlacementOpt すべての タ イ プのデザ イ ン SSI 密集を緩和 し た り タ イ ミ ン グ を向上する ため、異な る 分割方法が有益であ る 可能性のあ る SSI デ ザイ ン イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 66 配置 -directive オプ シ ョ ン で指定可能な モー ド • Explore : 詳細配置お よ び配置後の最適化のエ フ ォー ト を増加 し ます。 • WLDrivenBlockPlacement : RAM お よび DSP ブ ロ ッ ク を ワ イ ヤ長に基づいて配置 し ます。 タ イ ミ ン グ ド リ ブンの 配置を無効に し 、 ブ ロ ッ ク と の接続距離を最短にする よ う 配置 し ます。 • LateBlockPlacement : RAMB お よ び DSP ブ ロ ッ ク の詳細配置を、 配置の最終段階で実行 し ます。 通常、 ブ ロ ッ ク は配置プ ロ セ ス の初期段階で有効なサ イ ト に割 り 当て ら れます。 その代わ り 、 まず大ま かなブ ロ ッ ク 配置を実行 し (適切な列に揃っ ていない可能性 も あ り )、 詳細配置中にブ ロ ッ ク を有効なサ イ ト に配置 し ます。 • ExtraNetDelay_high : フ ァ ン ア ウ ト が大 き く 距離の長いネ ッ ト の予測遅延を増加 し ます。 high、 medium、 low の 3 つの レベルがサポー ト さ れます。 ExtraNetDelay_high では増加量が最 も 大 き く な り ます。 • ExtraNetDelay_medium : フ ァ ン ア ウ ト が大 き く 距離の長いネ ッ ト の予測遅延を増加 し ます。 high、 medium、 low の 3 つの レベルがサポー ト さ れます。 ExtraNetDelay_medium はデフ ォル ト レベルの増加量を適用 し ます。 • ExtraNetDelay_low : フ ァ ン ア ウ ト が大 き く 距離の長いネ ッ ト の予測遅延を増加 し ます。 high、 medium、 low の 3 つの レベルがサポー ト さ れます。 ExtraNetDelay_low では増加量が最 も 小 さ く な り ます。 • SpreadLogic_high : ロ ジ ッ ク をデバ イ ス全体に分散 し ます。 high、 medium、 low の 3 つの レベルがサポー ト さ れま す。 SpreadLogic_high では分散度が最 も 高 く な り ます。 • SpreadLogic_medium : ロ ジ ッ ク をデバ イ ス全体に分散 し ます。 high、 medium、 low の 3 つの レベルがサポー ト さ れます。 SpreadLogic_medium では分散度が中程度にな り ます。 • SpreadLogic_low : ロ ジ ッ ク をデバ イ ス全体に分散 し ます。 high、 medium、 low の 3 つの レベルがサポー ト さ れま す。 SpreadLogic_low では分散度が最 も 低 く な り ます。 • ExtraPostPlacementOpt : 配置後の最適化のエフ ォー ト を増加 し ます。 • SSI_ExtraTimingOpt : SLR 間での タ イ ミ ン グ ド リ ブンの分割に代替アルゴ リ ズ ム を使用 し ます。 • SSI_SpreadSLLs : SLR 間で分割を実行 し 、 接続の多い領域に追加のエ リ ア を割 り 当て ます。 • SSI_BalanceSLLs : SLR 間で SLL のバ ラ ン ス が取 ら れ る よ う に SLR 間で分割を実行 し ます。 • SSI_BalanceSLRs : SLR 間でセルの数のバ ラ ン ス が取 ら れ る よ う に SLR 間で分割を実行 し ます。 • SSI_HighUtilSLRs : 各 SRL で ロ ジ ッ ク を近 く に配置す る よ う 指定 し ます。 • RuntimeOptimized : 反復回数を少な く し 、デザ イ ン パフ ォーマ ン ス よ り も 実行時間を短縮す る こ と を優先 し ます。 • Quick : 最 も 高速な、 タ イ ミ ン グ ド リ ブンでない、 有効なデザ イ ン を得る ために最低限の配置を実行 し ます。 • Default : place_design をデフ ォル ト 設定で実行 し ます。 ヒ ン ト : -directive オプシ ョ ン を使用 し て、 デザ イ ンの異な る 配置オプシ ョ ン を試 し てみて く だ さ い。 -no_timing_driven オプ シ ョ ンの使用 -no_timing_driven オプシ ョ ンは、 デフ ォ ル ト の タ イ ミ ン グ ド リ ブン配置アルゴ リ ズ ム をデ ィ ス エーブルに し ま す。 こ のオプシ ョ ン を使用す る と ワ イ ヤの長 さ に基づいて高速な配置が実行 さ れますが、 タ イ ミ ン グ制約は無視 さ れ ます。 -verbose オプ シ ョ ンの使用 配置結果を よ り 詳細に解析す る には、 -verbose オプシ ョ ン を使用 し て、 place_design コ マ ン ド に よ る セルお よ び I/O 配置の詳細を確認 し ます。 -verbose オ プ シ ョ ン を 使用す る と 大量の メ ッ セージ が表示 さ れ る の で、 デ フ ォ ル ト ではオ フ に な っ て い ま す。 -verbose オプシ ョ ンは、 有益だ と 思われ る 場合に使用 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 67 物理最適化 物理最適化 物理最適化では、 デザ イ ンの負の ス ラ ッ ク パ ス に対 し て タ イ ミ ン グ ド リ ブンの最適化が実行 さ れます。 複製、 リ タ イ ミ ン グ、 ホール ド 違反の修正、 お よ び配置の向上が実行 さ れます。 物理最適化では、 ネ ッ ト リ ス ト お よ び配置の必 要な変更が自動的に実行 さ れます。 使用可能な物理最適化 Vivado ツールでは、 メ モ リ 内のデザ イ ンに対 し て次の物理最適化を実行で き ます。 • フ ァ ン ア ウ ト の大き いネ ッ ト の最適化 (デフ ォ ル ト ) • 配置ベース の最適化 (デフ ォ ル ト ) • リ ワ イ ヤ (デフ ォ ル ト ) • ク リ テ ィ カル セルの最適化 (デフ ォ ル ト ) • DSP レ ジ ス タ の最適化 (デフ ォ ル ト ) • BRAM レ ジ ス タ の最適化 (デフ ォル ト ) • ホール ド 違反の修正 • リ タ イ ミ ング • ネ ッ ト の強制的な複製 重要 : 特定の最適化を明示的に指定す る と 、 ほかの最適化はデ ィ ス エーブルにな り ます。 フ ァ ン アウ ト の大き いネ ッ ト の最適化 (デ フ ォル ト ) フ ァ ン ア ウ ト の大き いネ ッ ト の最適化は、 次の よ う に実行 さ れます。 1. 負の ス ラ ッ ク が WNS のあ る 割合以内であ る フ ァ ン ア ウ ト の大 き いネ ッ ト は、 複製が考慮 さ れます。 2. ロー ド はその配置に よ り ク ラ ス ター化 さ れ、各ロ ー ド ク ラ ス ターに対し て ド ラ イ バーが複製お よび配置 さ れます。 3. タ イ ミ ン グが再解析 さ れ、 タ イ ミ ン グが改善 し た場合は ロ ジ ッ ク の変更が確定 さ れます。 4. 複製後、 複製が必要な フ ァ ン ア ウ ト の大 き いネ ッ ト があ る か ど う か、 デザ イ ンが再びチ ェ ッ ク さ れます。 フ ァ ン ア ウ ト の大き いネ ッ ト が ま だあ る 場合、 な く な る ま で複製プ ロ セ ス が続行 さ れます。 配置ベースの最適化 (デ フ ォル ト ) ク リ テ ィ カル パ ス のすべてのセルを ワ イ ヤ遅延を削減す る よ う に配置 し 直 し ます。 リ ワ イ ヤ (デ フ ォル ト ) LUT の接続を ス ワ ッ プ し て ク リ テ ィ カル信号の ロ ジ ッ ク レベル数を削減す る こ と に よ り 、 ク リ テ ィ カル パ ス を最適 化 し ます。 LUT 論理式を変更 し てデザ イ ンの機能を保持 し ます。 ク リ テ ィ カル セルの最適化 (デ フ ォル ト ) タ イ ミ ン グが満た さ れないセルを複製 し ます。 特定のセルの ロ ー ド 同士が離れてい る 場合、 セルが複製 さ れ、 新 し い ド ラ イ バーが ロ ー ド ク ラ ス タ ーの近 く に配置 さ れます。 こ の最適化は、 パ ス が ワ ース ト ネガテ ィ ブ ス ラ ッ ク のあ る 割合以内で タ イ ミ ン グ を満た し ていなければ、 フ ァ ン ア ウ ト が大き く な く て も 実行 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 68 物理最適化 DSP レ ジ ス タ の最適化 (デ フ ォル ト ) DSP セルの レ ジ ス タ を ロ ジ ッ ク ア レ イ に移動 し た り 、 ロ ジ ッ ク を DSP セルに移動 し た り する こ と に よ り 、 ク リ テ ィ カル パ ス の遅延を削減 し ます。 BRAM レ ジ ス タ の最適化 (デ フ ォル ト ) BRAM セルの レ ジ ス タ を ロ ジ ッ ク ア レ イ に移動 し た り 、 ロ ジ ッ ク を BRAM セルに移動 し た り す る こ と に よ り 、 ク リ テ ィ カル パ ス の遅延を向上 し ます。 ホール ド 違反の修正 ホール ド ク リ テ ィ カル パ ス の遅延を増加す る こ と に よ り 、 ホール ド 違反の大 き いパ ス の ス ラ ッ ク を向上 し ます。 リ タ イ ミ ング レ ジ ス タ を組み合わせ ロ ジ ッ ク の前後に移動する こ と に よ り 、 ク リ テ ィ カル パ ス の遅延を向上 し ます。 ネ ッ ト の強制的な複製 タ イ ミ ン グ ス ラ ッ ク にかかわ ら ず、 ネ ッ ト の ド ラ イ バーを強制的に複製 し ます。複製は ロ ー ド の配置に基づいて実行 さ れ、 複製が十分か ど う かを解析す る 必要があ り ます。 さ ら に複製が必要な場合は、 コ マン ド を複数回実行す る こ と に よ り ネ ッ ト を繰 り 返 し 複製で き ます。 タ イ ミ ン グは無視 さ れますが、 複製を実行する には、 ネ ッ ト が タ イ ミ ン グ制 約の設定 さ れたパ ス に含まれてい る 必要があ り ます。 物理最適化レ ポー ト 物理最適化では、 最適化で処理 さ れた各ネ ッ ト と 、 実行 さ れた最適化のサマ リ が レ ポー ト さ れます。 ヒ ン ト : 複製 さ れたオブジ ェ ク ト の名前は、 元のオブジ ェ ク ト 名に _replica と 複製 さ れたオブジ ェ ク ト カ ウ ン ト が付いた も のにな り ます。 phys_opt_design 重要 : フ ァ ン ア ウ ト の大 き いネ ッ ト の タ イ ミ ン グ ド リ ブン複製な ど の物理最適化を実行 し 、 タ イ ミ ン グ結果を向上 し ます (オプシ ョ ン)。 配線済みデザ イ ンに対 し て phys_opt_design を実行する こ と はで き ません。 phys_opt_design の構文 phys_opt_design [-fanout_opt] [-placement_opt] [-rewire] [-critical_cell_opt] [-dsp_register_opt] [-bram_register_opt] [-hold_fix] [-retime] [-force_replication_on_nets <args>] [-directive <arg>] [-quiet] [-verbose] phys_opt_design のス ク リ プ ト 例 # Run physical optimization, save results to checkpoint, report timing estimates phys_opt_design write_checkpoint -force $outputDir/post_phys_opt.dcp report_timing_summary -file $outputDir/post_phys_opt_timing_summary.rpt イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 69 物理最適化 こ のサ ンプル ス ク リ プ ト は、 メ モ リ 内のデザ イ ンに物理最適化を実行 し 、 メ モ リ に書き 込みます。 物理最適化後にデ ザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し 、 タ イ ミ ン グ サマ リ レ ポー ト を生成 し て指定の フ ァ イ ルに記述 し ます。 -directive オプ シ ョ ンの使用 -directive オプシ ョ ン を使用す る と 、 phys_opt_design コ マ ン ド を異な る モー ド で実行で き ます。 一度に指定 で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ン と 共に使用する こ と はで き ません。 次 の設定があ り ます。 • Explore : 最適化を複数回実行 し 、 ホール ド 違反の修正お よ びフ ァ ン ア ウ ト の大 き いネ ッ ト の複製を含め、 異な る アルゴ リ ズ ム を実行 し ます。 • AggressiveExplore : Explore と 似てい ますが、異な る 最適化アルゴ リ ズ ム を使用 し 、 よ り 厳 し い目標を設定 し ます。 • AlternateReplication : ク リ テ ィ カル セルの複製に異な る アルゴ リ ズ ム を使用 し ます。 • AggressiveFanoutOpt : フ ァ ン ア ウ ト に関連す る 最適化に異な る アルゴ リ ズ ム を使用 し 、 よ り 厳 し い目標を設定 し ます。 • AlternateDelayModeling : ネ ッ ト 遅延の予測に代替アルゴ リ ズ ム を使用 し て、 すべての最適化を実行 し ます。 • AddRetime : デフ ォ ル ト の phys_opt_design フ ロ ーを実行 し 、 レ ジ ス タ の リ タ イ ミ ン グ を追加 し ます。 • Default : phys_opt_design をデフ ォ ル ト 設定で実行 し ます。 -verbose オプ シ ョ ンの使用 物理最適化の結果を解析す る には、 -verbose オプシ ョ ン を使用 し 、 phys_opt_design で実行 さ れた最適化の詳 細を確認 し ます。 -verbose オ プ シ ョ ン を 使用す る と 大量の メ ッ セージ が表示 さ れ る の で、 デ フ ォ ル ト ではオ フ に な っ て い ま す。 -verbose オプシ ョ ンは、 有益だ と 思われ る 場合に使用 し て く だ さ い。 重要 : phys_opt_design コ マン ド は、 メ モ リ 内のデザ イ ンに対 し て実行 さ れます。 2 回実行 し た場合、 1 回目の run の結果が最適化 さ れます。 物理最適化制約 物理最適化中、 DONT_TOUCH お よ び MARK_DEBUG プ ロ パテ ィ が認識 さ れ、 こ れ ら のプ ロ パテ ィ が設定 さ れてい る ネ ッ ト ま たはセルには最適化は実行 さ れません。 ま た、 Pblock の割 り 当てに従い、 複製 さ れた ロ ジ ッ ク で も 元の ロ ジ ッ ク の Pblock 割 り 当てが適用 さ れます。 タ イ ミ ン グ例外 も 、 元のセルか ら 複製セルに コ ピー さ れます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) を参照 し て く だ さ い。 MARK_DEBUG は、 Vivado ロ ジ ッ ク 解析を使用 し てプ ロ ーブす る 予定のネ ッ ト に設定 し ます。 MARK_DEBUG の設 定 さ れたネ ッ ト はス ラ イ ス境界に接続 さ れ、 プ ロ ーブで き る 状態にな り ます。 DONT_TOUCH は最下位セルに設定 し 、 最適化 さ れない よ う に し ます。 階層セルに DONT_TOUCH を設定す る と セル の境界は保持 さ れますが、 セル内で最適化が実行 さ れ る 可能性はあ り ます。 重要 : ISE Design Suite か ら デ ザ イ ン を 移 行 し た 場 合、 KEEP お よ び KEEP_HIERARCHY 制約 が 自 動的 に DONT_TOUCH 制約に変換 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 70 配線 配線 Vivado 配線は、 配置済みデザ イ ン に対 し て配置を実行 し 、 ホール ド タ イ ム違反を解決す る ため配線済みデザ イ ンの 最適化を実行 し ます。 デフ ォル ト では タ イ ミ ン グ ド リ ブン ですが、 こ れはデ ィ ス エーブルにで き ます。 配線モー ド 配線ツールは、 次の 2 つモー ド で実行で き ます。 • 通常モー ド • 再配線モー ド 通常モー ド こ れがデフ ォル ト です。 配置済みデザ イ ンか ら 開始 し 、 すべてのネ ッ ト の配線を試みます。 配線済みの次のいずれかのデザ イ ンか ら 開始 し ます。 • 未配線 • 一部配線済み • 完全に配線済み route_design コ マ ン ド は イ ン ク リ メ ン タ ルに実行 さ れ、 部分的に配線 さ れてい る デザ イ ン に対 し ては、 始めか ら 配線 し 直すのではな く 、 既存の配線が開始点 と し て使用 さ れます。 再配線モー ド ほかの イ ンプ リ メ ン テーシ ョ ン コ マン ド と 同様、 配線は イ ン ク リ メ ン タ ルに実行 さ れ、既存の配線を破棄 し て最初か ら 配線 し 直すのではな く 、 既存の配線を保持 し て続行 し ます。 推奨 : 配線初期化には時間がかか る ので、 再配線モー ド は配線を複数回実行す る 際に使用 し ます。 再配線モー ド を使用 し ない場合、 各配線後に配線機能が終了 し て メ モ リ が ク リ ア さ れ、 配線を実行す る ご と に配線機 能が初期化 さ れます。 配線を複数回実行する 場合、 こ れは時間がかか り ます。 再配線モー ド では、 配線が再び実行 さ れ る こ と を考慮 し て、 メ モ リ にデー タ構造が保持 さ れ る ので、 ネ ッ ト の配線解 除お よ び配線な ど の コ マ ン ド をすぐ に実行で き ます。 デザイ ン ルール チ ェ ッ ク 配線を開始する 前に、 次のデザ イ ン ルール チ ェ ッ ク (DRC) が実行 さ れます。 • report_drc で選択 さ れた DRC • Vivado 配線エン ジ ンに含まれ る ビル ト イ ンの DRC イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 71 配線 配線の優先順位 Vivado 配線では、 まず次の よ う な グ ロ ーバル リ ソ ース が配線 さ れます。 • クロック • リ セッ ト • I/O • その他の専用 リ ソ ース こ のデフ ォ ル ト の優先順位は Vivado 配線に ビル ト イ ン さ れてい ます。 その後、 タ イ ミ ン グが ど れだけ ク リ テ ィ カル かに基づいて、 デー タ 信号に優先順位が付け ら れます。 不適切な タ イ ミ ング制約の影響 配線前の フ ロ ーや固定配線制約を使用する 場合、 タ イ ミ ン グ制約が適切でない と 、 一部の信号が最適に配線 さ れない こ と があ る ので、 注意が必要です。 次に、 よ く あ る 不適切な タ イ ミ ン グ制約の例を示 し ます。 • ク ロ ッ ク ド メ イ ン を ま たが る パ スや、 ホール ド タ イ ミ ン グに よ り 配線遅延が追加 さ れ る 複数サ イ ク ル パ ス • 密集 し てい る エ リ ア。 こ れは RTL 合成の フ ァ ン ア ウ ト 最適化や物理最適化に よ り 解決で き ます。 最適に配線 さ れていないネ ッ ト があ る 場合、 問題は多 く の場合間違っ た タ イ ミ ン グ制約です。 配線設定を変更 し てみ る 前に、 制約が適切であ る か ど う かを確認 し て く だ さ い。配線の前の配置済みデザ イ ンの タ イ ミ ン グ レ ポー ト を参照 し て、 タ イ ミ ン グ と 制約を確認 し ます。 推奨 : 単に配線 リ ソ ース を増やすのではな く 、 制約を ク リ ーン ア ッ プす る こ と 、 ま たは RTL を変更す る こ と を考慮 し て く だ さ い。 route_design 現在のデザ イ ンに含まれ る ネ ッ ト を配線 し 、 タ ーゲ ッ ト パーツ での ロ ジ ッ ク 接続を完成 さ せます。 route_design の構文 route_design [-unroute] [-re_entrant <arg>] [-nets <args>] [-physical_nets] [-pin <arg>] [-directive <arg>] [-no_timing_driven][-preserve] [-delay] [-free_resource_mode] -max_delay <arg> -min_delay <arg> [-quiet] [-verbose] -directive オプ シ ョ ンの使用 -directive オプシ ョ ン を使用す る と 、 route_design コ マ ン ド を異な る モー ド で実行で き ます。 一度に指定で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ン と 共に使用する こ と はで き ません。 次の設 定があ り ます。 • Explore : 初期配線の後、 異な る ク リ テ ィ カル パス配線を試 し ます。 • NoTimingRelaxation : 配線を完了す る ために タ イ ミ ン グ を緩和 し ない よ う に し ます。配線で タ イ ミ ン グ満たすのが 困難であ る 場合、 元の タ イ ミ ン グ制約を満たすため実行時間が長 く な り ます。 • MoreGlobalIterations : 最終段階だけでな く 、 すべての段階で詳細な タ イ ミ ン グ解析を使用 し 、 タ イ ミ ン グの向上 が少 し であ っ て も グ ロ ーバル反復を実行 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 72 配線 • HigherDelayCost : 配線の内部 コ ス ト 関数を調整 し て反復実行で遅延に焦点を置 き 、 実行時間が長 く な る 代わ り に パフ ォーマ ン ス を向上 し ます。 • AdvancedSkewModeling : 配線のすべての段階で よ り 正確な ス キ ュ ー モデルを使用 し ます。 ス キ ュ ーの大 き い ク ロ ッ ク ネ ッ ト ワー ク でデザ イ ンのパフ ォーマン ス が向上す る 場合があ り ます。 • RuntimeOptimized : 反復回数を少な く し 、デザ イ ン パフ ォーマ ン ス よ り も 実行時間を短縮す る こ と を優先 し ます。 • Quick : 最 も 高速な、 タ イ ミ ン グ ド リ ブンでない、 有効なデザ イ ン を得る ために最低限の配置を実行 し ます。 • Default : route_design をデフ ォル ト 設定で実行 し ます。 よ り よい配線結果を得る ために実行時間を長 く する 次の -directive 設定を使用す る と 、実行時間が長 く な る 代わ り に よ り よ い配線結果が得 ら れ る 可能性があ り ます。 • NoTimingRelaxation • MoreGlobalIterations • HigherDelayCost • AdvancedSkewModeling 通常モー ド 配線のサン プル ス ク リ プ ト # 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 コ マン ド を使用 し て実行 し ます。 ス ク リ プ ト の 一部 と し て 配線が終了する と 、 リ ソ ース タ イ プ別に使用 さ れ る 配線 リ ソ ース の統計お よ び タ イ ミ ン グ サマ リ が表示 さ れます。 [Route-20] Post Routing Timing Summary | WNS=0.0585 | TNS=0 | WHS=0 | THS=0 | 説明 : ° WNS : ワース ト ネガテ ィ ブ ス ラ ッ ク ° TNS : ト ー タ ル ネガテ ィ ブ ス ラ ッ ク ° WHS : ワース ト ホール ド ス ラ ッ ク ° THS : ト ー タ ル ホール ド ス ラ ッ ク 再配線モー ド 配線のサン プル ス ク リ プ ト 1 # route a few critical nets route_design -delay -nets [get_nets myPreRoutes*] # Complete full route route_design -nets ま たは -pin の よ う な再配線オプシ ョ ン を使用す る と 、 再配線モー ド にな り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 73 配線 再配線モー ド の配線は通常、 次の よ う な特定の配線問題を修正する ために イ ン タ ラ ク テ ィ ブに実行 し ます。 • 完全に配線する 前に、 ク リ テ ィ カル ネ ッ ト お よ び ロ ッ ク ダ ウ ン リ ソ ース を事前に配線 • ク リ テ ィ カルではないネ ッ ト の配線を手動で解除 し て、ク リ テ ィ カル ネ ッ ト に よ り 多 く の配線 リ ソ ース を使用で き る よ う にする 最初の再配線コ マ ン ド では、 配線機能が初期化 さ れてか ら 、 ク ロ ッ ク な ど の重要なネ ッ ト が配線 さ れます。 こ れに よ り 、 配線で次が実行で き る よ う にな り ます。 • タ イ ミ ン グ解析 • タ イ ミ ン グ ド リ ブンの配線 • ホール ド 違反の修正 再配線モー ド がオンにな っ た後は、 実行 さ れた配線お よ び未配線の結果が メ モ リ に保存 さ れます。 再配線モー ド の終了 再配線モー ド を終了する には、完全な route_design コ マン ド を実行する か、次の コ マン ド を使用 し てオフ に し ます。 route_design -re_entrant off 再配線モー ド 配線のサン プル ス ク リ プ ト 2 # Get the nets in the top 10 critical paths, assign to $preRoutes % set preRoutes [get_nets -of [get_timing_paths -max_paths 10]] % route_design -nets [get_nets $preRoutes] -delay # Unroute all the nets in u0/u1, and route the critical nets first route_design -unroute [get_nets u0/u1/*] % route_design -delay -nets [get_nets $myCritNets] route_design -effort_level high こ のサ ンプル ス ク リ プ ト は、 次を実行 し ます。 • get_timing_paths を使用 し て上位 10 個の ク リ テ ィ カル パ ス を特定 し ます。 • get_cells -of を使用 し てそれ ら の ク リ テ ィ カル パ ス のネ ッ ト オブジ ェ ク ト ($preRoutes) を作成 し ます。 • こ れ ら のネ ッ ト を最初に配線 し ます。 そ れ ら の ネ ッ ト の 配線 が 完了 し た 後、 セ ル u0/u1 の すべ て の ネ ッ ト の 配線 を 解除 し て、 ク リ テ ィ カ ル ネ ッ ト myCritNets を配線 し 直 し 、 最後に残 り の未配線ネ ッ ト を配線 し ます。 表 2-3 : 配線中のデザイ ン解析で使用 さ れる コ マ ン ド コ マン ド 機能 report_route_status ネ ッ ト の配線ス テー タ ス を レ ポー ト し ます。 report_timing パ ス エン ド ポ イ ン ト 解析を実行 し ます。 Tcl レ ポー ト コ マ ン ド お よ びそのオプシ ョ ンの詳細な説明は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) を参照 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 74 第 3章 配線お よびロ ジ ッ ク の変更 配線お よびロ ジ ッ ク の変更について ザ イ リ ン ク ス Vivado® Design Suite では、 イ ンプ リ メ ン テーシ ョ ン フ ロ ーで配線お よ び ロ ジ ッ ク を変更す る のにい く つかの方法があ り ます。 こ れ ら の方法を使用す る と 、 配線お よび遅延を厳密に制御で き 、 ロ ジ ッ ク をすばや く 変更で き ます。 • 配線の変更 • ロ ジ ッ ク の変更 配線の変更 デザ イ ンの配線を変更は、 [Device] ビ ュ ーか ら 実行で き ます。 個々のネ ッ ト に対 し て配線の解除、 配線、 配線の固定 を実行で き ます。 • 配線の解除お よ び配線 : 配線を再配線モー ド で起動 し 、 ネ ッ ト に対 し て操作を実行 し ます。 詳細は、 第 2 章 「 イ ンプ リ メ ン テーシ ョ ン コ マン ド 」 の 72 ページの 「route_design」 を参照 し て く だ さ い。 • 配線の固定 : 配線 し 、配線デー タ ベース で固定 と マー ク し 、ネ ッ ト の ド ラ イ バーお よ び ロ ー ド の LOC お よ び BEL を固定 し ます。 ネ ッ ト を手動で敗戦す る 配線割 り 当てモー ド も 使用で き ます。 詳細は、 76 ページの 「手動配線」 を参照 し て く だ さ い。 ヒ ン ト : ネ ッ ト 関連の コ マン ド はすべて、 ネ ッ ト のポ ッ プア ッ プ メ ニ ュ ーか ら 実行で き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 75 配線の変更 X-Ref Target - Figure 3-1 図 3-1 : 配線の変更 手動配線 手動配線を使用する と 、 ネ ッ ト に特定の配線 リ ソ ース を選択で き ます。 こ れに よ り 、 信号の配線パ ス を完全に制御で き ます。 手動配線では、 route_design は実行 さ れません。 配線は配線デー タ ベース で直接ア ッ プデー ト さ れます。 手動配線は、 ネ ッ ト の遅延を厳密に制御す る 場合に使用 し ます。 た と えば、 ソ ース同期 イ ン タ ーフ ェ イ ス で、 デバ イ ス の受信レ ジ ス タ ま での配線遅延の変動を最小限に抑え る 場合な ど です。 こ れには、 レ ジ ス タ お よ び I/O に LOC お よ び BEL 制約を設定 し 、 ネ ッ ト を手動配線す る こ と に よ り IOB か ら レ ジ ス タ ま での配線遅延を制御 し ます。 手動配線を実行する には、 デバ イ ス の イ ン タ ー コ ネ ク ト アーキテ ク チ ャ に関する 詳細な知識が必要です。手動配線を 実行する 信号数を制限 し 、 短い接続にのみ使用する こ と をお勧め し ます。 手動配線での規則 手動配線では、 次の規則に従っ て く だ さ い。 • ド ラ イ バーお よ び ロ ー ド に LOC 制約 と BEL 制約が必要です。 • 手動配線では分岐は使用で き ませんが、 分岐点か ら 新 し い手動配線を開始す る こ と に よ り 分岐を イ ンプ リ メ ン ト で き ます。 • LUT ロ ー ド の ピ ン を固定す る 必要があ り ます。 • ド ラ イ バーに接続 さ れていない ロ ー ド に配線する 必要があ り ます。 • 完全な接続のみが許容 さ れます。 ア ン テナは許容 さ れません。 • 既存の固定 さ れ て い な い配線済みネ ッ ト と オーバー ラ ッ プ さ せ る こ と が で き ま す。 手動配線が完了 し た 後 route_design を実行 し 、 ネ ッ ト のオーバー ラ ッ プに よ る 競合を解決 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 76 配線の変更 配線割 り 当てモー ド の開始 配線割 り 当てモー ド を開始する には、 次の手順に従い ます。 1. [Device] ビ ュ ーを開 き ます。 2. 配線が必要なネ ッ ト を選択 し ます。 3. ° 未配線のネ ッ ト は、 赤色の フ ラ イ ラ イ ンで表示 さ れます。 ° 部分的に配線 さ れたネ ッ ト は、 黄色で表示 さ れます。 右 ク リ ッ ク し て [Enter Assign Routing Mode] を ク リ ッ ク し ます。 [Target Load Cell Pin] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 4. 配線先の ロ ー ド セル ピ ン を選択 し ます (オプシ ョ ン)。 5. [OK] を ク リ ッ ク し ます。 手動配線モー ド にな り ま し た。 [Device] ビ ュ ーの横に [Routing Assignment] ウ ィ ン ド ウ が表示 さ れます (図 3-2)。 [Routing Assignment] ウ ィ ン ド ウ X-Ref Target - Figure 3-2 図 3-2 : [Routing Assignment] ウ ィ ン ド ウ [Routing Assignment] ウ ィ ン ド ウ には、 次の 2 つのセ ク シ ョ ンがあ り ます。 • [Assigned Nodes] • [Neighbor Nodes] [Assigned Nodes] には、 既に配線が割 り 当て ら れてい る モー ド を示 し ます。 割 り 当済みの各 ノ ー ド が 1 行に表示 さ れ ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 77 配線の変更 割 り 当て済みの配線は、[Device] ビ ュ ーでオ レ ン ジ色で示 さ れます。割 り 当て済み ノ ー ド の間のギ ャ ッ プは、[Assigned Nodes] セ ク シ ョ ンに GAP 行 と し て表示 さ れます。 次の配線セグ メ ン ト を割 り 当て る には、 ギ ャ ッ プの前ま たは後の割 り 当て済み ノ ー ド を選択す る か、 [Assigned Nodes] セ ク シ ョ ンの最後の ノ ー ド を選択 し ます。 ノ ー ド を選択す る と 、 [Neighbor Nodes] セ ク シ ョ ンに近 く にあ る 可能な ノ ー ド が表示 さ れます。 選択 さ れてい る ノ ー ド が白で示 さ れ さ れ、 可能な ノ ー ド が白の点線で示 さ れます (図 3-3)。 X-Ref Target - Figure 3-3 図 3-3 : 配線セグ メ ン ト の割 り 当て 配線 ノ ー ド の割 り 当て 次の配線セグ メ ン ト に割 り 当て る ノ ー ド を決定 し た ら 、 次のいずれかを実行 し ます。 • [Neighbor Nodes] セ ク シ ョ ンで ノ ー ド を右 ク リ ッ ク し 、 [Assign Node] を ク リ ッ ク し ます。 • [Neighbor Nodes] セ ク シ ョ ンで ノ ー ド を ダブル ク リ ッ ク し ます。 • [Device] ビ ュ ーで ノ ー ド を ク リ ッ ク し ます。 配線を ノ ー ド に割 り 当て る と 、 その ノ ー ド が [Assigned Nodes] セ ク シ ョ ンに表示 さ れ、 [Device] ビ ュ ーでオ レ ン ジ色 でハ イ ラ イ ト さ れます。 ロ ー ド に到達する ま で、ま たはギ ャ ッ プ を含む配線を割 り 当て る 準備がで き る ま で、ノ ー ド の割 り 当て を継続 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 78 配線の変更 配線 ノ ー ド の割 り 当て解除 ノ ー ド の割 り 当て を解除する には、 次の手順に従い ます。 1. [Routing Assignment] ウ ィ ン ド ウ の [Assigned Nodes] セ ク シ ョ ンに移動 し ます。 2. 割 り 当て を解除する ノ ー ド を選択 し ます。 3. 右 ク リ ッ ク し て [Remove] を ク リ ッ ク し ます。 ノ ー ド が割 り 当てか ら 削除 さ れます。 配線割 り 当ての確定 配線の割 り 当て を確定 し て配線割 り 当てモー ド を終了する には、 次のいずれかを実行 し ます。 • [Routing Assignment] ウ ィ ン ド ウ で [Assign Routing] ボ タ ン を ク リ ッ ク し ます。 • [Device] ビ ュ ーでネ ッ ト を右 ク リ ッ ク し て [Assign Routing] を ク リ ッ ク し ます。 [Assign Routing] ダ イ ア ロ グ ボ ッ ク ス (図 3-4) が表示 さ れ ます。 こ のダ イ ア ロ グ ボ ッ ク ス で、 割 り 当て ら れた ノ ー ド を確認 し ます。 X-Ref Target - Figure 3-4 図 3-4 : [Assign Routing] ダ イ ア ログ ボ ッ ク ス 配線割 り 当てのキ ャ ン セル 配線割 り 当て を確定で き ない場合は、 次のいずれかの方法を使用 し て配線割 り 当て を キ ャ ンセルで き ます。 • [Routing Assignment] ウ ィ ン ド ウ で [Exit Mode] を ク リ ッ ク し ます。 • [Device] ビ ュ ーを右 ク リ ッ ク し て [Exit Assign Routing Mode] を ク リ ッ ク し ます。 配線を確定する と 、 ド ラ イ バーお よ び ロ ー ド の BEL お よ び LOC も 固定 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 79 配線の変更 割 り 当て済みの配線の確認 • 割 り 当て済みの配線は、 [Device] で緑色の点線で示 さ れます。 • 部分的に割 り 当て ら れた配線は、 [Device] で黄色の点線で示 さ れます。 次の図に、 割 り 当て済み配線 と 部分的に割 り 当て ら れた配線の例を示 し ます。 X-Ref Target - Figure 3-5 図 3-5 : 割 り 当て済みの配線および部分的に割 り 当て ら れた配線 LUT ロー ド のセル入力の固定 配線 し よ う と し てい る LUT ロ ー ド の入力が、 ほかの入力 と ス ワ ッ プ さ れていない こ と を確認す る 必要があ り ます。 こ れには、 次の手順に従っ て LUT ロ ー ド のセル入力を固定 し ます。 1. [Device] ビ ュ ーを開き ます。 2. ロ ー ド LUT を選択 し ます。 3. 右 ク リ ッ ク し て [Lock Cell Input Pins] を ク リ ッ ク し ます。 分岐 複数の ロ ー ド を持つネ ッ ト を配線す る 場合は、 次の手順に従っ てネ ッ ト を配線 し ます。 1. 77 ページの 「配線割 り 当てモー ド の開始」 の手順に従っ て 1 つの ロ ー ド への配線を割 り 当て ます。 2. ネ ッ ト のすべての分岐への配線を割 り 当て ます。 次の図に、 1 つの ロ ー ド への配線が割 り 当て ら れ、 さ ら に 2 つの ロ ー ド への配線が必要なネ ッ ト を示 し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 80 配線の変更 X-Ref Target - Figure 3-6 図 3-6 : 分岐配線の割 り 当て 分岐への配線の割 り 当て 分岐に配線を割 り 当て る には、 次の手順に従い ます。 1. [Device] ビ ュ ーを表示 し ます。 2. 配線する ネ ッ ト ノ ー ド を選択 し ます。 3. 右 ク リ ッ ク し ます。 4. [Enter Assign Routing Mode] を ク リ ッ ク し ます。 [Target Load Cell Pin] ダ イ ア ロ グ ボ ッ ク ス が開き 、 すべての ロ ー ド が表示 さ れます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 81 配線の変更 注記 : 配線が割 り 当て ら れてい る ロ ー ド には、 [Routed] 列にチ ェ ッ ク マー ク が示 さ れてい ます。 X-Ref Target - Figure 3-7 図 3-7 : [Target Load Cell Pin] ダ イ ア ログ ボ ッ ク ス (複数ロー ド ) 5. 配線する ロ ー ド を選択 し ます。 6. [OK] を ク リ ッ ク し ます。 [Branch Start] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 図 3-8 を参照 し て く だ さ い。 7. 選択 し た ロ ー ド の配線を分岐する ノ ー ド を選択 し ます。 8. [OK] を ク リ ッ ク し ます。 9. 78 ページの 「配線 ノ ー ド の割 り 当て」 の手順に従い ます。 X-Ref Target - Figure 3-8 図 3-8 : [Branch Start] ダ イ ア ログ ボ ッ ク ス イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 82 配線の変更 指定配線制約 固定 さ れた配線割 り 当ては、 配線デー タ ベース に指定配線文字列 と し て保存 さ れます。 指定配線文字列では、 分岐は ネ ス ト さ れた中かっ こ ({ }) で示 さ れます。 た と えば、 図 3-9 に示す よ う な配線があ る と し ます。 こ の配線では、 さ ま ざ ま なエ レ メ ン ト が次の表に示す よ う に示 さ れてい ます。 表 3-1 : 指定配線制約 エレ メ ン ト 表示方法 ド ラ イ バー と ロ ー ド オ レ ン ジ色の矩形 ノード 赤い線 ス イ ッ チボ ッ ク ス 青い矩形 こ の配線の簡略化 さ れた指定配線文字列は、 次の よ う にな り ます。 {A B { D E L } C { F G H I M N } {O P Q} R J K L S } 配線は B と C で分岐 し ます。 メ イ ンの配線は A B C R J K L S です。 X-Ref Target - Figure 3-9 図 3-9 : 分岐配線の例 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 83 ロ ジ ッ ク の変更 ロ ジ ッ クの変更 読み取 り 専用でない論理オブジ ェ ク ト のプ ロ パテ ィ は、 イ ンプ リ メ ン テーシ ョ ン後に Vivado IDE GUI ま たは Tcl で変 更で き ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 12] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 [Device] ビ ュ ーでオブジ ェ ク ト のプ ロ パテ ィ を変更す る には、 次の手順に従い ます。 1. オブジ ェ ク ト を選択 し ます。 2. [Properties] ビ ュ ーの [Properties] タ ブでオブジ ェ ク ト のプ ロ パテ ィ を変更 し ます。 X-Ref Target - Figure 3-10 図 3-10 : プ ロパテ ィ の変更 変更可能なプ ロ パテ ィ には、 ブ ロ ッ ク RAM の INIT、MMCM の ク ロ ッ ク を変更す る プ ロ パテ ィ な ど があ り ます。LUT オブジ ェ ク ト の INIT を変更す る ためのダ イ ア ロ グ ボ ッ ク ス も あ り 、 LUT 論理式を指定 し て適切な INIT 値が ツール に よ り 設定 さ れ る よ う にする こ と がで き ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 84 ロ ジ ッ ク の変更 X-Ref Target - Figure 3-11 図 3-11 : LUT 論理式の指定 変更の保存 メ モ リ 内でデザ イ ンに対 し て加え た変更を保存する には、 デザ イ ンのチ ェ ッ ク ポ イ ン ト を保存 し ます。 割 り 当てはデザ イ ンにバ ッ ク ア ノ テー ト さ れないので、 次回の実行で適用 さ れ る よ う にす る には、 割 り 当て を XDC に追加する 必要があ り ます。 プ ロ ジ ェ ク ト モー ド で制約を制約フ ァ イ ルに保存す る には、 [File] → [Save Constraints] を ク リ ッ ク し ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 85 付録 A リ モー ト ホス ト の使用 リ モー ト Linux ホス ト での run の起動 ザ イ リ ン ク ス Vivado® IDE では、 複数の Linux ホ ス ト で同時に合成お よ び イ ンプ リ メ ン テーシ ョ ン run を実行で き ま す。 こ れは、 Oracle 社の Grid Engine や IBM® 社の Platform™ LSF な ど の簡易版を使用 し た機能です。 リ モー ト ホ ス ト は、 次の理由か ら Linux でのみサポー ト さ れます。 • Linux の方がセキ ュ リ テ ィ が優れてい る 。 • Microsoft Windows シ ス テ ムに リ モー ト シ ェ ル機能がない。 ジ ョ ブ投入アルゴ リ ズ ムは、Linux OS のサービ ス であ る セキ ュ ア シ ェ ル (SSH) 内の Tcl パ イ プを使用 し た ラ ウ ン ド ロ ビ ン形式で イ ンプ リ メ ン ト さ れてい ます。 推奨 : Vivado IDE で複数の Linux ホ ス ト で run を起動す る 前に、 リ モー ト run を起動す る たびにパ ス ワ ー ド を入力 し な く て済む よ う に SSH を設定す る 必要があ り ます。 SSH の設定方法は、 89 ページの 「SSH の設定」 を参照 し て く だ さ い。 リ モー ト ホス ト の実行要件 リ モー ト Linux ホ ス ト で合成お よ び イ ンプ リ メ ン テーシ ョ ン run を実行す る 際の要件は、 次の と お り です。 • Vivado ツールの イ ン ス ト ールが ロ グ イ ン シ ェ ルか ら 使用で き る と 想定 さ れ る ので、 $XILINX_VIVADO お よ び $PATH 環境変数が .cshrc/.bashrc セ ッ ト ア ッ プ ス ク リ プ ト で正 し く 設定 さ れます。 リ モー ト マシ ンに ロ グ イ ン し 、 ほかの ス ク リ プ ト を ソ ース と せずに 「vivado -help」 と 入力で き る 場合、 こ の フ ロ ーは機能 し ます。 ロ グ イ ン時に .cshrc ま たは .bashrc で Vivado が設定 さ れていない場合、 [Run pre-launch script] を使用 し て、 環境設 定ス ク リ プ ト をすべてのジ ョ ブ前に実行で き ます。 • Vivado IDE の イ ン ス ト ールが リ モー ト マシ ンの割 り 当て ら れたネ ッ ト ワ ー ク か ら 表示で き る よ う にす る 必要が あ り ます。 Vivado IDE がマシ ンの ロ ーカル デ ィ ス ク に イ ン ス ト ール さ れてい る 場合は、 リ モー ト マシ ン か ら は 表示で き ない可能性があ り ます。 • Vivado IDE のプ ロ ジ ェ ク ト フ ァ イ ル (.xpr) お よ びデ ィ レ ク ト リ (.dita お よ び .runs) が、 リ モー ト マシ ンの 割 り 当て ら れたネ ッ ト ワ ー ク か ら 表示で き る よ う にす る 必要があ り ます。 デザ イ ン デー タ が ロ ーカル デ ィ ス ク に保存 さ れてい る と 、 リ モー ト マシ ンか ら は表示で き ない可能性があ り ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 86 リ モー ト Linux ホス ト での run の起動 リ モー ト ホス ト の設定 リ モー ト Linux ホ ス ト で合成ま たは イ ンプ リ メ ン テーシ ョ ン を実行で き る よ う に Vivado IDE を設定す る には、次の手 順に従い ます。 1. 次のいずれかを実行 し ます。 ° メ イ ン メ ニ ュ ーか ら [Tools] → [Options] を ク リ ッ ク し 、 左側のペ イ ンで [Remote Hosts] を ク リ ッ ク し ます。 ° Flow Navigator で [Synthesis] を右 ク リ ッ ク し て [Launch Synthesis Runs] を ク リ ッ ク し 、 [Configure Hosts] を ク リ ッ ク し ます。 ° Flow Navigator で [Implementation] を右 ク リ ッ ク し て [Launch Implementation Runs] を ク リ ッ ク し 、 [Configure Hosts] を ク リ ッ ク し ます。 ° [Design Runs] ビ ューでツールバーの [Launch Selected Runs] を ク リ ッ ク し 、[Configure Hosts] を ク リ ッ ク し ます。 図 A-1 を参照 し て く だ さ い。 X-Ref Target - Figure A-1 図 A-1 : [Launch Selected Runs] ダ イ ア ログ ボ ッ ク スの [Configure Hosts] ボ タ ン [Vivado Options] ダ イ ア ロ グ ボ ッ ク ス の [Remote Hosts] ページが開 き 、定義 さ れてい る リ モー ト Linux ホ ス ト が表 示 さ れます (図 A-2)。 2. [Add] ボ タ ン を ク リ ッ ク し 、 リ モー ト サーバー名を入力 し ます。 3. [Jobs] 列で、 リ モー ト マシ ン で同時実行に使用で き る プ ロ セ ッ サの数を指定 し ます。 各 run は個別のプ ロ セ ッ サ で実行 さ れます。 4. [Enabled] チ ェ ッ ク ボ ッ ク ス を オン/オ フ に し て、 サーバーを使用す る か ど う か を指定 し ます。 こ のチ ェ ッ ク ボ ッ ク ス で、 選択 し た run に ど のサーバーを使用す る かを指定で き ます。 5. run を実行す る 際に使用す る リ モー ト ア ク セ ス コ マ ン ド を変更する 場合は、 [Launch jobs with] で指定 し ます。 注記 : こ の手順はオプシ ョ ンです。 デフ ォル ト コ マン ド は次の と お り です。 ssh -q -o -BatchMode=yes 重要 : こ の フ ィ ール ド を変更す る 場合は、 細心の注意を払っ て く だ さ い。 た と えば、 BatchMode =yes を削除す る と 、 セキ ュ ア シ ェ ルでパ ス ワー ド のプ ロ ンプ ト が表示 さ れ る ため、 プ ロ セ ス が停止 し てい ま い ます。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 87 リ モー ト Linux ホス ト での run の起動 X-Ref Target - Figure A-2 6. run の起動前に実行する ス ク リ プ ト を定義する 場合は、[Run pre-launch script] をオンに し ます。ロ グ イ ン時に Vivado IDE が設定 さ れていない場合に、 こ のオプシ ョ ン を使用し てホ ス ト 環境を設定する ス ク リ プ ト を実行し ます。 7. 結果を移動ま たは コ ピーする な ど、 run の完了後に実行する カ ス タ ム ス ク リ プ ト を定義す る 場合は、 [Run postcompletion script] を オンに し ます。 8. run の完了時に電子 メ ールが送信 さ れ る よ う にす る 場合は、 [Send email to] を オンに し ます。 各ジ ョ ブの後に通知 を送信する か ([After each Job])、 すべてのジ ョ ブの完了後に通知を送信す る か ([After all jobs] を選択で き ます。 9. 設定が終了 し た ら 、 [OK] を ク リ ッ ク し ます。 . 図 A-2 : リ モー ト ホス ト の設定 リ モー ト ホ ス ト への接続を確認す る には、 次の手順に従い ます。 1. 1 つま たは複数のホ ス ト を選択 し ます。 2. [Test] を ク リ ッ ク し ます。 サーバーが使用可能かど う か、 コ ン フ ィ ギ ュ レーシ ョ ンが正 し く 設定 さ れてい る かを確認で き ます。 推奨 : ホ ス ト で run を実行す る 前に、 各ホ ス ト を テ ス ト し て正 し く 設定 さ れてい る こ と を確認 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 88 SSH の設定 リ モー ト ホス ト の削除 リ モー ト ホ ス ト を削除す る には、 次の手順に従い ます。 1. リ モー ト ホ ス ト を選択 し ます。 2. [Remove] を ク リ ッ ク し ます。 SSH の設定 SSH は、 Linux タ ー ミ ナルま たはシ ェ ルで次の コ マン ド を入力 し て設定 し ます。 注記 : こ れは一度設定 し ておけば、 繰 り 返 し 設定す る 必要はあ り ません。 1. Linux タ ー ミ ナルま たはシ ェ ルで次の コ マン ド を実行 し 、プ ラ イ マ リ コ ン ピ ュ ー タ ーでパブ リ ッ ク キーを生成 し ます。 必須ではあ り ませんが、 セキ ュ リ テ ィ 保護のため、 プ ラ イ ベー ト キーを入力 し 、 記憶 し てお く こ と をお勧 め し ます。 ssh -keygen -t rsa 2. パブ リ ッ ク キーを リ モー ト マシ ンの authorized_keys フ ァ イ ルに追加 し ます。remote_server を ホ ス ト 名 に変更 し ます。 cat ~/.ssh/id_rsa.pub | ssh remote_server “cat - >> ~/.ssh/authorized_keys” 3. 次の コ マ ン ド を実行 し て、 プ ラ イ ベー ト キーのパ ス フ レーズの入力を プ ロ ンプ ト し 、 キー転送を有効に し ます。 ssh -add こ れで、 ど の リ モー ト マシ ン で も パ ス ワ ー ド を入力せずに使用で き ます。 新 し いマシ ン に初めて ア ク セ スす る 場合 は、 パ ス ワ ー ド を入力する よ う 求め ら れますが、 次回か ら は入力する 必要はあ り ません。 ヒ ン ト : 毎回パ ス ワ ー ド の入力を求め ら れ る 場合は、 シ ス テ ム管理者に連絡 し て く だ さ い。 イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 89 付録 B ISE コ マ ン ド と Vivado コ マ ン ド の対照表 Tcl コ マ ン ド と オプ シ ョ ン Vivado® イ ンプ リ メ ン テーシ ョ ンには、ISE® ツール コ マ ン ド と 1 対 1 で対応す る コ マ ン ド ラ イ ン オプシ ョ ンがい く つかあ り ます。 表 B-1 に、 ISE ツール コ マン ド ラ イ ン オプシ ョ ン と 、 同等の Vivado Design Suite Tcl コ マン ド お よ び Tcl コ マン ド オ プシ ョ ン を示 し ます。 注記 : Tcl コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 12] を参照す る か、 「<command> -help」 と 入力 し て く だ さ い。 表 B-1 : ISE コ マ ン ド と Vivado コ マ ン ド の対照表 ISE コ マ ン ド Vivado Tcl コ マ ン ド と オプ シ ョ ン ngdbuild -p partname link_design -part partname ngdbuild -a (パ ッ ド を挿入) synth_design -no_iobuf (バ ッ フ ァ ーを挿入 し ない) ngdbuild -u (未展開のブ ロ ッ ク を許可) デフ ォ ル ト で イ ネーブル、 ク リ テ ィ カル警告 メ ッ セージ を表示 ngdbuild -quiet link_design -quiet map -detail opt_design -verbose map -lc auto place_design でデフ ォ ル ト で イ ネーブル map -logic_opt opt_design お よ び phys_opt_design map -mt place_design で Linux では 4 つのプ ロ セ ッ サ、Windows では 2 つ のプ ロ セ ッ サ を使用 し て自動的にマルチ ス レ ッ ド を実行 map -ntd place_design -non_timing_driven map -ol place_design -effort_level map -power power_opt_design map -u link_design -mode out_of_context、 opt_design -retarget (定数の伝搬を ス キ ッ プ し て ス イ ープ) par -pl place_design -effort_level par -rl route_design -effort_level par -mt route_design で Linux では 4 つのプ ロ セ ッ サ、Windows では 2 つ のプ ロ セ ッ サ を使用 し て自動的にマルチ ス レ ッ ド を実行 par -k 再配線は route_design のデフ ォ ル ト モー ド par -nopad -nopad の動作がデフ ォ ル ト (PAR で生成 さ れていた PAD フ ァ イ ル を取得す る には report_io コ マン ド を使用) par -ntd route_design -no_timing_driven イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 90 付録 C その他の リ ソ ース ザイ リ ン ク ス リ ソ ース ア ンサー、 資料、 ダ ウ ン ロ ー ド 、 フ ォー ラ ム な ど のサポー ト リ ソ ースは、 次のザ イ リ ン ク ス サポー ト サ イ ト を参照 し て く だ さ い。 http://japan.xilinx.com/support ザ イ リ ン ク ス資料で使用 さ れ る 用語集は、 次を参照 し て く だ さ い。 http://japan.xilinx.com/company/terms.htm ソ リ ュ ーシ ョ ン セ ン タ ー デバ イ ス、 ツール、 IP のサポー ト については、 ザ イ リ ン ク ス ソ リ ュ ーシ ョ ン セ ン タ ーを参照 し て く だ さ い。 ト ピ ッ ク には、 デザ イ ン ア シ ス タ ン ト 、 ア ド バ イ ザ リ 、 ト ラ ブルシ ュ ー ト ヒ ン ト な ど が含まれます。 参考資料 Vivado Design Suite ユーザー ガ イ ド 1. 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) 2. 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) 3. 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) 4. 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) 5. 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) 6. 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) 7. 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) 8. 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) 9. 『Vivado Design Suite ユーザー ガ イ ド : 消費電力の解析お よ び最適化』 (UG907) 10. 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 91 参考資料 その他の Vivado Design Suite 関連の資料 11. 『7 シ リ ーズ FPGA ク ロ ッ ク リ ソ ース ユーザー ガ イ ド 』 (UG472) 12. 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) 13. 『Vivado Design Suite 移行手法ガ イ ド 』 (UG911) 14. 『Vivado Design Suite チ ュ ー ト リ アル : デザ イ ン フ ロ ーの概要』 (UG888) Vivado Design Suite ビデオ チ ュ ー ト リ アル 15. Vivado Design Suite ビデオ チ ュ ー ト リ アル : http://japan.xilinx.com/training/vivado/index.htm Vivado Design Suite の資料 16. Vivado Design Suite 資料ページ : http://japan.xilinx.com/support/documentation/dt_vivado_vivado2013-1.htm イ ン プ リ メ ン テーシ ョ ン UG904 (v2013.1) 2013 年 3 月 20 日 japan.xilinx.com 92