UltraFast 設計手法ガイド (Viv do Design Suite 用)...

198
UltraFast 設計手法ガ イ ド (Vivado Design Suite ) UG949 (v2016.2) 2016 6 8 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新 情報につきましては、必ず最新英語版をご参照ください。

Transcript of UltraFast 設計手法ガイド (Viv do Design Suite 用)...

Page 1: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

UltraFast 設計手法ガイ ド (Vivado Design Suite 用)

UG949 (v2016.2) 2016 年 6 月 8 日

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

Page 2: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

UltraFast 設計手法ガイ ド 2UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

改訂履歴

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

日付 バージ ョ ン 改訂内容

2016 年 6 月 8 日 2016.2 第 1 章 「概要」 の構成を変更UltraFast 設計手法の全体的な概要を追加

ガイ ド全体で内容の構成を変更し、 ツールの使用法に関する内容を該当する Vivado Design Suite ユーザー ガイ ド に移動、 それらのユーザー ガイ ド に既に含まれている重複した情報を削除

第 2 章 「Vivado Design Suite の使用」 を削除し、 その内容を 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) に移動

「ソース管理および リ ビジ ョ ン管理の推奨事項」 セ ク シ ョ ンを 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) に移動

第 5 章 「イ ンプ リ メ ンテーシ ョ ン」 を第 4 章 「イ ンプ リ メ ンテーシ ョ ン」 と第 5 章 「デザイ ン ク ロージャ」 に分割

第 4 章 「イ ンプ リ メ ンテーシ ョ ン」 にア ド バン ス合成に関する内容を追加

新のデザイ ン解析およびク ロージ ャ機能を第 3 章 「デザイ ンの作成」、 第 4 章 「イ ンプリ メ ンテーシ ョ ン」、 および第 5 章 「デザイ ン ク ロージャ」 に追加

第 6 章 「コ ンフ ィ ギュ レーシ ョ ンおよびデバッ グ」 を削除し、 その内容を第 5 章 「デザイン ク ロージャ」 に移動

Page 3: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

目次

第 1 章 : 概要UltraFast 設計手法について. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

UltraFast 設計手法のコ ンセプ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Vivado Design Suite の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

その他の資料および ト レーニングへのア ク セス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 2 章 : ボー ド およびデバイス プ ラ ンニングボードおよびデバイ ス プラ ンニングの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

PCB レ イ アウ ト に関する推薦事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

ク ロ ッ ク リ ソースのプラ ンニングおよび割 り 当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

I/O プラ ンニング デザイ ン フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

SSI デバイ スでの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

FPGA の消費電力およびシステムの依存性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

コ ンフ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

第 3 章 : デザイ ンの作成デザイ ンの作成の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

適切なデザイ ン階層の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

RTL コード記述のガイ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

ク ロ ッ キング ガイ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

IP (Intellectual Property) の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

制約の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

第 4 章 : イ ンプ リ メ ンテーシ ョ ンイ ンプ リ メ ンテーシ ョ ンの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

合成属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

ボ ト ムア ッ プ フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

合成後の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

デザイ ンのイ ンプ リ メ ンテーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

第 5 章 : デザイ ン ク ロージャデザイ ン ク ロージャの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

タ イ ミ ング ク ロージャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

タ イ ミ ング違反の解析および解決 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

一般的な タ イ ミ ング ク ロージャ手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

消費電力解析および 適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

コ ンフ ィ ギ ュ レーシ ョ ンおよびデバッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

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

UltraFast 設計手法ガイ ド 3UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 4: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

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

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

ト レーニング リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

お読み く ださ い : 重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

UltraFast 設計手法ガイ ド 4UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 5: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章

概要

UltraFast 設計手法について

ザイ リ ン ク ス UltraFast™ 設計手法は、 All Programmable デバイ スのデザイ ン プロセス を効率的にする ためのベス ト プラ ク テ ィ ス を ま と めた ものです。 これらの大型で複雑なデザイ ンで、 設計の各段階が問題な く 処理される よ う にするには、 特定の手順 とデザイ ン タ ス ク が必要と な り ます。 これらの手順およびベス ト プラ ク テ ィ スに従 う と、 デザイ ン目標を短期間で効率的に達成する こ と ができ ます。

ザイ リ ン ク スが提供する次の リ ソース を使用する と、 UltraFast 設計手法の利点を生かすこ と ができ ます。

• 本書 : さ まざまなデザイ ン タ ス ク、 解析 と レポー ト 機能、 デザイ ンの作成 と ク ロージャのベス ト プラ ク テ ィ スを説明し ます。

• UltraFast 設計手法チェ ッ ク リ ス ト : Xilinx Documentation Navigator から使用可能なほか、 ス タ ン ド ア ロ ンのスプレ ッ ド シー ト と し て も提供されています。 このチェ ッ ク リ ス ト を使用する と、 設計プロセス中のよ く あ る ミ スや決定事項を特定でき ます。

• 各デザイ ン段階の設計手法関連のデザイ ン ルール チェ ッ ク (DRC) : Vivado® Design Suite で Tcl コマン ド の report_methodology を使用し ます。

• UltraFast 設計手法のシステム レベルのデザイ ン フ ロー図 : Vivado Design Suite デザイ ン フ ロー全体を示す図で、Xilinx Documentation Navigator から使用でき ます。 図の設計段階を ク リ ッ クする と、 それに関連する資料、 フ ァイル、 FAQ などを開 く こ と ができ ます。

このユーザー ガイ ド について

本書には、 システム統合およびデザイ ン イ ンプ リ メ ンテーシ ョ ンの両方で生産性を 大限に高めるベス ト プラ クテ ィ スが含まれます。 次の ト ピ ッ ク に関し て、 概要、 設計ガイ ド ラ イ ン、 デザイ ン決定事項の ト レード オフなどが示されます。

• 第 2 章 「ボードおよびデバイ ス プラ ンニング」 : デザイ ン作成前に達成し てお く こ と が推奨される決定事項とデザイ ン タ ス ク について説明し ます。 I/O およびク ロ ッ ク プラ ンニング、 PCB レ イ ア ウ ト の考慮事項、 デバイ ス容量、 スループ ッ ト 評価、 代替デバイ スの定義、 消費電力の見積も り 、 デバッ グなどが含まれます。

• 第 3 章 「デザイ ンの作成」 : RTL 定義、 IP 設定 と管理、 制約の割 り 当てなどのベス ト プラ ク テ ィ スについて説明し ます。

• 第 4 章 「イ ンプ リ メ ンテーシ ョ ン」 : デザイ ンを合成およびイ ンプ リ メ ン ト するために使用可能なオプシ ョ ン とベス ト プラ ク テ ィ スについて説明し ます。

• 第 5 章 「デザイ ン ク ロージ ャ」 : デザイ ンのタ イ ミ ング ク ロージ ャや消費電力の削減に使用する さ まざまなデザイ ン解析およびイ ンプ リ メ ンテーシ ョ ン手法について説明し ます。 ハード ウ ェ ア検証用のデバッ グ ロ ジ ッ ク を追加する際の注意事項について も説明し ます。

このガイ ド には、Vivado Design Suite ユーザー ガイ ド、Vivado Design Suite チュー ト リ アル、および QuickTake ビデオ チュー ト リ アルなどのその他の資料への リ フ ァ レ ン ス も含まれます。 このガイ ド はそれらの資料に置き換わる ものではあ り ません。 ツールの使用方法および設計手法を含む詳細および 新情報は、 これらの資料を参照し て く ださい。 参考資料はすべて付録 A 「その他の リ ソースおよび法的通知」 に リ ス ト されています。

UltraFast 設計手法ガイ ド 5UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 6: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章 : 概要

注記 : こ の情報は Vivado® Design Suite 用に記述されていますが、ほ と んどの概念的な情報は ISE® Design Suite にも応用でき ます。

UltraFast 設計手法チ ェ ッ ク リ ス ト の使用

このガイ ド は、 UltraFast 設計手法チェ ッ ク リ ス ト と合わせて使用する こ と をお勧めし ます。 チェ ッ ク リ ス ト は、Xilinx Documentation Navigator から使用可能なほか、 ス タ ン ド ア ロ ンのスプレ ッ ド シー ト (XTP301) と し て も提供されています。

注記 : 日本語版のチェ ッ ク リ ス ト は、 Documentation Navigator からは使用でき ません。 スプレ ッ ド シー ト バージ ョ ンを参照し て く ださい。

UltraFast 設計手法チェ ッ ク リ ス ト の質問は、 後の段階に悪影響を及ぼす可能性のあ るデザイ ンの決定事項に関するもので、 見逃された り 、 無視されて し まいがちな問題が含まれます。 チェ ッ ク リ ス ト の各タブには、 次のよ う な特徴があ り ます。

• 典型的なデザイ ン チーム内の特定の役割を ターゲ ッ ト にし ています。

• 各デザイ ン フ ロー段階 (プロ ジェ ク ト プラ ンニング、 ボードおよびデバイ ス プラ ンニング、 IP およびサブモジュールの作成、 上位デザイ ンのク ロージャ ) における、 よ く あ る質問 と で推奨される操作が含まれます。

• デザイ ン フ ロー段階に関連する リ ソース を リ ス ト する資料および ト レーニング セ ク シ ョ ンが含まれます。

• 本書の内容やその他のザイ リ ン ク ス資料への リ ン ク が含まれます。 これらの参考資料は、 質問に関連し たデザインの考慮事項に対処するためのガイ ダン ス と し てご使用 く ださい。

ビデオ : チェ ッ ク リ ス ト の詳細は、 Vivado Design Suite QuickTake ビデオ : UltraFast 設計手法チェ ッ ク リ ス ト の説明を参照し て く ださい。

UltraFast 設計手法 DRC の使用

Vivado Design Suite には、 Tcl コマン ド の report_methodology を使用し て実行可能な設計手法関連の DRC のセ ット が含まれます。 このコマン ド は、 次の各設計段階で実行でき ます。

• エラ ボレー ト 済み RTL デザイ ンで合成前に実行し て、 RTL のコ ン ス ト ラ ク ト を検証

• 合成後に実行し て、 ネ ッ ト リ ス ト および制約を検証

• イ ンプ リ メ ンテーシ ョ ン後に実行し て、 制約およびタ イ ミ ング関連の問題を検証

推奨 : 各設計段階で設計手法 DRC を実行し、 次の段階に進む前に問題を解決し てお く のが も効果的です。

設計手法 DRC に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンおよび『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガイ ド』 (UG835) [参照 13] の 「report_methodology」 を参照し て く ださい。

UltraFast 設計手法ガイ ド 6UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 7: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章 : 概要

UltraFast 設計手法のシステム レベルのデザイ ン フ ロー図の使用

次の図は、 Vivado Design Suite に含まれる さ まざまな設計段階と機能を示し ています。 Xilinx Documentation Navigator からは、 この図のイ ン タ ラ ク テ ィ ブなバージ ョ ンにア ク セスでき ます。 各段階の リ ン ク を ク リ ッ クする と、 関連 リソース を参照でき ます。

X-Ref Target - Figure 1-1

図 1-1 : UltraFast 設計手法のシステム レベルのデザイ ン フ ロー

UltraFast 設計手法ガイ ド 7UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 8: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章 : 概要

UltraFast 設計手法のコ ンセプ ト

初から正しいアプローチを使用し、 初期段階から RTL、 ク ロ ッ ク、 ピン、 および PCB プラ ンニングなどのデザイン目標に注意する こ と が重要です。 各設計段階でデザイ ンを正し く 定義および検証する と、 その後のイ ンプ リ メ ンテーシ ョ ン段階でタ イ ミ ング ク ロージ ャ、 配線ク ロージ ャ、 および消費電力の問題を軽減でき ます。

開発サイ クルの初期段階の影響

次の図に示すよ う に、 デザイ ン フ ローの初期段階 (C、 C++、 RTL 合成) の方が、 後のイ ンプ リ メ ンテーシ ョ ン階よ りもデザイ ン パフ ォーマン ス、 集積度、 消費電力への影響が大き く な り ます。 こ のため、 デザイ ンのタ イ ミ ング目標が満た されない場合は、 イ ンプ リ メ ンテーシ ョ ン段階のみを繰 り 返し て ソ リ ューシ ョ ンを見つけ よ う とするのではな く 、 合成段階 (HDL および制約など) を見直すこ と をお勧めし ます。

各設計段階での検証

UltraFast 設計手法では、 初期段階からデザイ ン バジェ ッ ト (エ リ ア、 消費電力、 タ イ ミ ングなど) を監視し てデザインを修正する こ と が重要です。

• ザイ リ ン ク ス テンプレー ト を使用し て 適な RTL コ ン ス ト ラ ク ト を作成し、 合成前に設計手法 DRC を使用して RTL を検証

Vivado ツールではフ ロー全体でタ イ ミ ング ド リ ブン アルゴ リ ズムが使用されるので、 デザイ ンにはデザイ ン フローの 初から制約を正し く 設定する必要があ り ます。

X-Ref Target - Figure 1-2

図 1-2 : フ ローの各段階におけるデザイ ン変更の影響

UltraFast 設計手法ガイ ド 8UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 9: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章 : 概要

• 合成後にタ イ ミ ング解析を実行

正しいタ イ ミ ングを指定するには、 まず各マス ター ク ロ ッ ク と それらに関連する生成ク ロ ッ ク間の関係を解析する必要があ り ます。 Vivado ツールでは、 非同期またはフ ォルス パス と し て明確に定義されていない限 り 、 すべてのク ロ ッ ク間のタ イ ミ ングが解析されます。

• 次の設計段階に進む前に正しい制約を使用し て タ イ ミ ングを満たす

この推奨事項に従い、 Vivado Design Suite のイ ン タ ラ ク テ ィ ブな解析環境を使用する こ と によ り 、 全体的なタ イミ ングおよびイ ンプ リ メ ンテーシ ョ ンの収束期間が短縮されます。

ヒ ン ト : これらの推奨事項と このガイ ド の HDL 設計ガイ ド ラ イ ンを合わせて使用する こ と で、 設計期間を さ らに短縮でき ます。

次の図は、 この推奨される設計手法を示し ています。

X-Ref Target - Figure 1-3

図 1-3 : タ イ ミ ング ク ロージャ を短期間で達成するための設計手法

UltraFast 設計手法ガイ ド 9UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 10: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章 : 概要

合成段階は、 デザイ ン目標が正のマージン (または比較的小さい負のタ イ ミ ング マージン) で満た されれば、 完了した と考え る こ と ができ ます。 合成後のタ イ ミ ングが満た されない場合、 配置配線結果でタ イ ミ ングが満た されない可能性が高 く な り ます。 ただし、 タ イ ミ ングが満た されない場合でも、 残 り のフ ローを実行する こ と は可能です。イ ンプ リ メ ンテーシ ョ ン ツールでエラーのあったパスに 適な リ ソースが割 り 当て られ、 タ イ ミ ングが満た される可能性も あ り ます。 また、 フ ローを進める と、 負のス ラ ッ ク の大き さ を よ り 正確に理解でき、 合成後の WNS (ワース ト ネガテ ィ ブ ス ラ ッ ク ) をどれ く らい改善する必要があ るのかを判断しやす く な り ます。 これらの情報は、 HDL および制約を改善するために合成に戻った と きに使用でき ます。

短時間検証

本書では、 次のよ う なシステム アーキテ クチャおよびマイ ク ロ アーキテ クチャの選択に関する短時間検証の概念も紹介し ています。

° システム デザイ ンでは、 デザイ ン全体を イ ンプ リ メ ン ト する前に、 I/O 帯域幅がシステムで検証されます。I/O 帯域幅の検証によ り 、 I/O を 終決定する前に、 システム アーキテ クチャ と イ ン ターフ ェ イ スの選択を見直す必要があ るかど う かがわか り ます。 詳細は、 第 2 章の 「イ ン ターフ ェ イ スの帯域幅の検証」 を参照し て く ださい。

° デザイ ン イ ンプ リ メ ンテーシ ョ ンでは、 も単純な制約セ ッ ト (ベース ラ イ ン制約) を作成し、 内部デバイス タ イ ミ ングの課題を特定し ます。 ベース ラ イ ンを使用する と、 イ ンプ リ メ ンテーシ ョ ン段階に進む前に、RTL のマイ ク ロ アーキテ クチャ を見直す必要があ るかど う かがわかる こ と があ り ます。 詳細は、 第 5 章の「ベース ラ イ ン制約の作成」 を参照し て く ださい。

Vivado Design Suite の使用

Vivado Design Suite には柔軟な使用モデルがあ り 、 さ まざまな開発フ ローやデザイ ン タ イプに対応でき ます。 Vivado Design Suite でのこれらの機能の使用方法については、『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) [参照 5] およびその他の Vivado Design Suite 資料を参照し て く ださい。

リ ビジ ョ ン管理システムを使用し た Vivado Design Suite ソースの管理

ほ と んどの設計チームがデザイ ン ソース と結果を市販の リ ビジ ョ ン管理システムを使用し て管理し ています。Vivado Design Suite では、 デザイ ン と IP データ を管理するためのさ まざまな使用モデルに対応し ています。 Vivado でリ ビジ ョ ン管理システムを使用する方法については、『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) [参照 5] のこのセ ク シ ョ ンを参照し て く ださい。

Vivado Design Suite の新規リ リースへのア ッ プグレー ド

Vivado Design Suite の新規バージ ョ ンには、 ザイ リ ン ク ス IP のア ップデー ト が含まれる こ と がよ く あ り ます。 IP をア ップグレード をする とデザイ ンが変更されるので、 ア ップグレードするかど う か決めるにはかな り の注意が必要です。 また、 前の リ リ ース を使用して設計した IP を今後使用する場合は、 特定の規則に従 う 必要があ り ます。 詳細は、『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896) [参照 9] のこのセク シ ョ ンを参照して く ださい。

UltraFast 設計手法ガイ ド 10UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 11: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 1 章 : 概要

その他の資料および ト レーニングへのアクセス

本書は、 ユーザー ガ イ ド、 リ フ ァ レ ン ス ガイ ド、 チュー ト リ アル、 および QuickTake ビデオ などの Vivado Design Suite 資料の情報を補足する ものです。 Xilinx Documentation Navigator を使用する と、 情報をフ ィ ルター、 検索し てザイ リ ン ク スの資料およびサポー ト リ ソースにア ク セスでき ます。 Xilinx Documentation Navigator (DocNav) を開 く には、 次のいずれかを実行し ます。

• Vivado IDE で [Help] → [Documentation and Tutorials] を ク リ ッ ク し ます。

• Windows で [ス ター ト ] → [すべてのプロ グ ラ ム] → [Xilinx Design Tools] → [DocNav] を ク リ ッ ク し ます。

• Linux コマン ド プロ ンプ ト に 「docnav」 と入力し ます。

ザイ リ ン ク ス デザイ ン ハブでは資料やビデオへの リ ン ク がデザイ ン タ ス クおよび ト ピ ッ ク ご と にま と められており 、 これら を使用する と キーコ ンセプ ト を学ぶこ と ができ、 よ く あ る質問を解決でき ます。 デザイ ン ハブにア ク セスするには、 次のいずれかを実行し ます。

• Xilinx Documentation Navigator で [Design Hubs View] タブを ク リ ッ ク し ます。

• ザイ リ ン ク ス ウ ェブサイ ト のデザイ ンハブ ページを参照し ます。

ヒ ン ト : Vivado IDE の異な る部分の詳細にすばや く ア ク セスするには、 そのウ ィ ン ド ウやダ イ ア ロ グ ボ ッ ク スで クイ ッ ク ヘルプ ボタ ン を ク リ ッ ク し ます。 Tcl コマン ド の詳細を取得するには、 [Tcl Console] ウ ィ ン ド ウでそのコマン ド に -help を付けて入力し ます。

UltraFast 設計手法ガイ ド 11UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 12: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章

ボー ド およびデバイス プ ラ ンニング

ボー ド およびデバイス プ ラ ンニングの概要

ボード上に FPGA を正し く 配置し、 信号を特定のピンに割 り 当てる と、 システム全体のパフ ォーマン スが大幅に向上し、 消費電力およびデザイ ン サイ クルにかかる時間が削減でき ます。 FPGA デバイ ス と プ リ ン ト 回路基板 (PCB) 間の物理的および論理的な通信を把握する こ と によ り 、 デバイ ス上でのデータ フ ローを効率的な ものにする こ と ができ ます。

I/O コ ンフ ィ ギュ レーシ ョ ンが適切にプラ ンニング されていない と、 システム パフ ォーマン スが低下し、 デザイ ン ク ロージャに時間がかか り ます。 ザイ リ ン ク スでは、 I/O プラ ンニングをボード プラ ンニング と共に考慮する こ と を強 く お勧めし ます。

詳細は、 次を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4]

• Vivado Design Suite QuickTake ビデオ : I/O 配置の概要

PCB レ イアウ ト に関する推薦事項

ボード上の FPGA デバイ ス と それと通信する コ ンポーネン ト のレ イ アウ ト は、 I/O プラ ンニングに大き く 影響し ます。

PCB 上の物理コ ンポーネン ト に対する配置

まず、 PCB 上の FPGA デバイ スの配置を決定する必要があ り ます。 固定されている PCB コ ンポーネン ト および内部 FPGA リ ソース両方の位置を考慮し ます。 た と えば、 FPGA パッ ケージ上の GT イ ン ターフ ェ イ ス を、 それ と通信する PCB 上のコ ンポーネン ト の近 く に配置する と、 PCB ト レース長が短 く な り 、 PCB ビア数を削減でき ます。

重要な イ ン ターフ ェ イ ス を含む PCB の図を使用する と、 PCB 上での FPGA デバイ スの向きおよび PCB コ ンポーネント の配置を決定するのに役立ちます。 FPGA デバイ スの配置を決定し た ら、 FPGA I/O イ ン ターフ ェ イ ス をプラ ンニングでき ます。

メ モ リ などの高速イ ン ターフ ェ イ スは、 それ と通信する PCB コ ンポーネン ト と短距離で直接接続でき る と有益です。 これらの PCB ト レースは通常一致し た長さにする必要があ り 、 可能な限 り PCB ビアを使用し ないよ う にし ます。 この場合、 接続を短 く し、 BGA ピンの大きなマ ト リ ッ ク ス内から配線を取 り 出すのを回避するため、 デバイ スのエ ッ ジに も近いパッ ケージ ピンが適し ています。

この段階で Vivado IDE の [I/O Planning] レ イ ア ウ ト を使用する と、 デバイ スの上面と下面の両方が表示されるので、物理的なデバイ スの寸法に対し て I/O 接続を視覚化でき るので便利です。

次の図に、 [I/O Planning] レ イ アウ ト を示し ます。

UltraFast 設計手法ガイ ド 12UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 13: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

電源分配システム

FPGA 設計において電源分配システム (PDS) を設計する際は、 独特のタ ス ク が必要と な り ます。 大型マイ ク ロプロセ ッ サなど、 ほかの大型で集積度の高い回路のほ と んどには、 特定のバイパス キ ャパシ タ要件があ り ます。 これらのデバイ スはハード シ リ コ ンで特定のタ ス ク を イ ンプ リ メ ン ト する ために設計されているので、 それらの電源要件は固定し てお り 、 あ る一定の範囲内でしか変動し ません。

FPGA デバイ スには、 こ のよ う な特性はあ り ません。 FPGA デバイ スには、 複数のク ロ ッ ク ド メ イ ンを使用し た不定の周波数で動作する アプ リ ケーシ ョ ンをほぼ無制限にイ ンプ リ メ ン ト でき ます。 そのため、 該当するデバイ スの PCB デザイ ン ガイ ド [参照 35] を参照し て、 デバイ スの PDS を十分に理解し てお く こ と が重要です。

PDS の設計では、 主に次の事項を考慮する必要があ り ます。

• 消費電力見積も り に基づき、 ノ イ ズおよび電流の要件を満たすために適切な電圧レギュ レータ を選択し ます。詳細は、 第 5 章の 「消費電力解析および 適化」 を参照し て く ださい。

• XADC 電源 (Vrefp および Vrefn ピン) を設定し ます。

• PDN シ ミ ュ レーシ ョ ンを実行し ます。 FPGA デバイ スには任意の機能を イ ンプ リ メ ン ト でき るので、 PCB デザイ ン ガイ ド [参照 35] で推奨されるデカ ッ プ リ ング キ ャパシ タの容量はワース ト ケースの条件に基づいています。 PDN シ ミ ュ レーシ ョ ンを実行する と、 電源が確実に推奨される動作範囲内になる ために必要なデカ ッ プ リング キ ャパシ タの容量を削減でき る場合があ り ます。

PDN シ ミ ュ レーシ ョ ンの詳細は、 『S パラ メ ーター モデルを使用し た FPGA のパワー イ ンテグ リ テ ィ のシ ミ ュ レーシ ョ ン』 (WP411) [参照 49] を参照し て く ださい。

X-Ref Target - Figure 2-1

図 2-1 : [I/O Planning] レ イアウ ト

UltraFast 設計手法ガイ ド 13UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 14: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

PCB デザイ ン特定の考慮事項

PCB は、 FPGA デバイ ス と の信号イ ン ターフ ェ イ スが 速 と なる よ う に設計する必要があ り ます。 高速信号は、 トレースの形状、 ビア、 損失、 およびク ロ ス ト ーク に大き く 影響されます。 これは、 特に多層 PCB で顕著です。 高速イ ン ターフ ェ イ スに対し ては、 シグナル イ ンテグ リ テ ィ シ ミ ュ レーシ ョ ンを実行し ます。 必要なパフ ォーマン ス を得るため、 よ り よい PCB 材料を使用し た り 、 ト レースの形状を変更する など、 ボード の再設計が必要な場合も あ ります。

PCB を設計する際は、 次の手順に従 う こ と をお勧めし ます。

1. 次のデバイ ス資料を確認し ます。

° 該当するデバイ スのPCB デザイ ン ガイ ド [参照 35]

° 該当するデバイ スの ト ラ ンシーバー ユーザー ガイ ド [参照 40]

2. IP の製品ガ イ ド で メ モ リ IP および PCIe® デザイ ンのガイ ド ラ イ ンを確認し ます。

3. Vivado® ツールを使用し て I/O プラ ンニングを検証し ます。

° 同時ス イ ッチ ノ イ ズ (SSN) 解析を実行

° ビルイ ン DRC を実行

° IBIS (I/O Buffer Information Specification) モデルをエク スポー ト

4. 次のよ う にシグナル イ ンテグ リ テ ィ 解析を実行し ます。

° ギガビ ッ ト ト ラ ンシーバー (GT) の場合、 チャネル パラ メ ーターを使用し て SPICE または IBIS-AMI シ ミ ュレーシ ョ ンを実行

° パフ ォーマン スの低いイ ン ターフ ェ イ スの場合、 IBIS シ ミ ュ レーシ ョ ンを実行し てオーバーシュー ト やアンダーシュー ト の問題がないかど う かをチェ ッ ク

5. Xilinx Power Estimator (XPE) を使用し てデザイ ンの消費電力の初期見積も り を生成し ます。

6. 終了し てデバイ スの回路図チェ ッ ク リ ス ト に従います。

ク ロ ッ ク リ ソースのプ ラ ンニングおよび割り当て

デザイ ンの 初の段階の 1 つと し て、 ピン配置を選択する前に、 ク ロ ッ ク リ ソース を選択する こ と をお勧めし ます。特に SSI テ ク ノ ロ ジ デバイ スの場合、 ク ロ ッ ク の選択によ り 、 特定のピン配置が必要 と なった り 、 そのロ ジ ッ ク の配置が決定される場合があ り ます。 適切な ク ロ ッ ク を選択する こ と で、 優れた結果を得る こ と ができ ます。 注意点は次の とお り です。

• リ ソース使用率の高い大型デバイ スでは特に、 ク ロ ッ ク プラ ンニング と同時に制約を作成し ます。

• デザイ ン ク ロージ ャで必要な場合は、 ク ロ ッ ク リ ソース を手動で配置し ます。 手動配置が必要な場合は、第 3 章の 「ク ロ ッ キング ガ イ ド ラ イ ン」 にク ロ ッ ク リ ソースの詳細が説明されています。

• デバイ ス特有の機能には、 問題を回避し てデバイ ス機能を利用する ために、 前も ってプラ ンニング し てお く 必要があ る ものも あ り ます。 これらの機能については、 次を参照し て く ださい。

° 7 シ リ ーズ デバイ ス : 『7 シ リ ーズ FPGA ク ロ ッ キング リ ソース ユーザー ガイ ド』 (UG472) [参照 39] の 「クロ ッ ク兼用入力ピンの配置規則」 と 「複数の領域における ク ロ ッ キング」

° UltraScale アーキテ クチャ デバイ ス : 『UltraScale アーキテ クチャ ク ロ ッ キング リ ソース ユーザー ガイ ド』 (UG572) [参照 39] の 「ク ロ ッ キング リ ソース」

UltraFast 設計手法ガイ ド 14UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 15: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

I/O プ ラ ンニング デザイ ン フ ロー

Vivado IDE では、 デザイ ンの I/O ポー ト およびク ロ ッ ク ロ ジ ッ ク を イ ン タ ラ ク テ ィ ブに確認、 表示、 割 り 当て、 および検証でき ます。 こ の環境では、 I/O を割 り 当てた と きにそれが正しいかど う かが検証されます。 外部パッ ケージ ピン と内部ダ イ パッ ド の関係も表示されます。

デバイ ス内のデータ フ ローを表示でき、 外部および内部の視点から I/O を適切にプラ ンニングでき ます。 Vivado IDE で I/O を割 り 当ておよび設定する と、 イ ンプ リ メ ンテーシ ョ ン用に制約が自動的に作成されます。

Vivado Design Suite の I/O およびク ロ ッ ク プラ ンニング機能の詳細は、 次の資料を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4]

• 『Vivado Design Suite チュー ト リ アル : I/O およびク ロ ッ ク プラ ンニング』 (UG935) [参照 31]

• Vivado Design Suite QuickTake ビデオ : I/O 配置の概要

I/O プ ラ ンニングの実行可能な Vivado Design Suite プロジ ェ ク ト タ イプ

I/O プラ ンニングは、 次のいずれかのプロ ジェ ク ト タ イプで実行でき ます。

• I/O プラ ンニング プロ ジェ ク ト

I/O プラ ンニング プロ ジェ ク ト は簡単なエン ト リ ポイ ン ト で、 一部の I/O 制約を指定し て、 定義し たピンから上位 RTL フ ァ イルを生成でき ます。

• RTL プロ ジェ ク ト

RTL プロ ジェ ク ト では、 合成およびイ ンプ リ メ ンテーシ ョ ンが可能であ り 、 よ り 包括的なデザイ ン ルール チェ ッ ク (DRC) を実行でき ます。 また、 IP コ ア も生成でき ます。 これは、 メ モ リ イ ン ターフ ェ イ スのピン配置プラ ンニングおよび GT を使用する コ アで重要です。

ヒ ン ト : I/O プラ ンニング プロ ジェ ク ト から開始し て、 後で RTL プロ ジェ ク ト に変換する こ と も でき ます。

合成後のネ ッ ト リ ス ト では、 さ らに包括的な DRC を実行でき ます。 イ ンプ リ メ ンテーシ ョ ンおよびビ ッ ト ス ト リ ーム生成後も同様です。 このため、 ク ロ ッ ク コ ンポーネン ト と一部の基本的な ロ ジ ッ ク を含むス ケル ト ン デザイ ンを使用し て、 DRC を実行する こ と をお勧めし ます。 これによ り 、 後でボード で問題が発生し ないピン定義を作成できます。

推奨されるサイ ンオフ プロセスは、 RTL プロ ジェ ク ト をビ ッ ト ス ト リ ーム生成まで実行し、 すべての DRC を実行する方法です。 ただし、 デザイ ン サイ クルによ ってはそれほど時間がな く 、 合成可能な RTL が作成される前に I/O コンフ ィ ギュ レーシ ョ ンを定義する こ と が必要な場合も あ り ます。 Vivado ツールでは RTL 作成前に I/O プラ ンニングを実行でき ますが、 この時点で実行可能な DRC チェ ッ クは限られます。 また、 I/O 規格と ピン割 り 当てを含むダミ ーの 上位デザイ ンを作成する と、 バン ク規則に関連する DRC を実行するのに役立ちます。

RTL 作成前の I/O プ ラ ンニング

合成済みネ ッ ト リ ス ト を生成する前に I/O コ ンフ ィ ギ ュ レーシ ョ ンを定義する必要があ る場合は、 関連するすべての規則に従っている こ と を確認し て く ださい。 Vivado ツールにはピン プラ ンニング プロ ジェ ク ト 環境があ り 、 CSV または XDC フ ォーマ ッ ト の I/O 定義フ ァ イルを イ ンポー ト でき ます。 ポー ト 宣言のみを定義し たダ ミ ー RTL を作成する こ と も でき ます。 入力信号 と出力信号の同時ス イ ッチ ノ イ ズ (SSN) への影響は異なるので、 ポー ト の方向が指定されている と SSN 解析がよ り 正確な ものにな り ます。

I/O ポー ト はイ ン タ ラ ク テ ィ ブに作成および設定する こ と も可能です。 基本的な I/O バン ク DRC ルールも提供されています。

UltraFast 設計手法ガイ ド 15UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 16: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

該当するデバイ スのPCB デザイ ン ガイ ド [参照 35] を参照し て、 I/O コ ンフ ィ ギュ レーシ ョ ンが適切であ る こ と を確認し て く ださい。詳細は、 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4] のこのセ ク シ ョ ンを参照し て く ださい。

ネ ッ ト リ ス ト ベースの I/O プ ラ ンニング

I/O およびク ロ ッ ク ロ ジ ッ ク制約を設定するのに推奨されるデザイ ン段階は、 デザイ ンの合成後です。 ネ ッ ト リ ス トでは、 制約を設定するためにク ロ ッ ク ロ ジ ッ ク パスが作成されています。 I/O およびク ロ ッ ク ロ ジ ッ ク の DRC も、よ り 包括的です。

該当するデバイ スのPCB デザイ ン ガイ ド [参照 35] を参照し て、 I/O コ ンフ ィ ギュ レーシ ョ ンが適切であ る こ と を確認し て く ださい。詳細は、『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4] のこのセ ク シ ョ ンを参照し て く ださい。

代替デバイスの定義

デザイ ンの初期プラ ンニングでは、 終的なデバイ スのサイ ズを予測するのは困難です。 デザイ ン サイ クルの過程でロ ジ ッ ク が追加または削除され、 デバイ ス サイ ズの変更が必要と なる場合があ り ます。

Vivado ツールでは代替デバイ ス を定義でき、 パッ ケージが同じであれば、 I/O コ ンフ ィ ギ ュ レーシ ョ ンが選択されたデバイ スすべてで互換し た ものになる よ う 定義されます。

重要 : デバイ スは、 同じパッ ケージに含まれる ものであ る必要があ り ます。

デザイ ンを移行する際の リ ス ク を軽減するには、 デザイ ン プロセスの初期段階でデバイ スの選択、 ピン配置の選択、およびデザイ ンの基準を注意深 く 計画し ます。 同じパッ ケージのサイ ズの異なるデバイ スに移行する際は、 ピン配置、 ク ロ ッ ク、 および リ ソース管理を考慮し ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ック プラ ンニング』 (UG899) [参照 4] のこのセ ク シ ョ ンを参照し て く ださい。

ピン割り当て

適切なピン配置を選択する こ と は、 デザイ ン ロ ジ ッ ク の適切な配置につなが り ます。 不適切な配置は、 配線が長 くな り 、 消費電力が増加し、 パフ ォーマン スが低下する原因 と な り ます。 特に大型 FPGA デバイ スの場合などは、 ピン配置が分散し ている と関連の信号の伝送距離が長 く なって し まいます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4] のこ のセ ク シ ョ ンを参照し て く ださい。

ピン配置にザイ リ ン ク ス ツールを使用

ザイ リ ン ク ス ツールでは、 イ ン タ ラ ク テ ィ ブにデザイ ン プラ ンニングおよびピン選択を実行でき ます。 ツールがどれだけ効率的であ るかは、 供給する情報によ って決ま り ます。 Vivado デザイ ン解析機能は、 ピン配置に役立ちます。これらの機能では、 I/O 配置をグ ラ フ ィ カルに表示し た り 、 ク ロ ッ ク と I/O コ ンポーネン ト の関係を表示でき、 ピンの選択を解析するデザイ ン ルール チェ ッ ク (DRC) も提供されています。

デザイ ン バージ ョ ンを使用でき る場合は、 上位フ ロ アプラ ンを作成し てデバイ ス内のデータ フ ローをすばや く 解析でき ます。詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] を参照し て く ださい。

必要な情報

ツールが効果的に機能するためには、 I/O の特性および ト ポロ ジに関する情報をでき るだけ多 く 供給する必要があ ります。 I/O 規格、 駆動電流、 スルー レー ト 、 I/O の方向などの電気特性を指定する必要があ り ます。

また、 ク ロ ッ ク の ト ポロ ジやタ イ ミ ング制約などの関連情報も考慮する必要があ り ます。 第 3 章の 「ク ロ ッ キング ガイ ド ラ イ ン」 で示し た よ う に、 ク ロ ッ キングはピン配置に、 ピン配置はク ロ ッ キングに大き く 影響し ます。

UltraFast 設計手法ガイ ド 16UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 17: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

「ピン配置の選択」 で説明する よ う に、 ト ラ ンシーバー、 PCIe、 メ モ リ イ ン ターフ ェ イ スなどの I/O 要件を持つ IP の場合は、 I/O ピン割 り 当てを終了する前に IP を コ ンフ ィ ギュ レーシ ョ ン し てお く 必要があ り ます。 I/O の電気特性の指定方法は、 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4] のこのセ クシ ョ ンを参照し て く ださい。

ピン配置の選択

一部の信号ピン配置は、 次に説明する よ う に、 注意し て選択する こ と をお勧めし ます。

イ ン ターフ ェ イス データ ピン、 ア ド レス ピン、 および制御ピン

同じ イ ン ターフ ェ イ スのデータ ピン、 ア ド レ ス ピン、 制御ピンを同じバン ク にグループ化し ます。 これらのコ ンポーネン ト を同じバン ク にグループ化でき ない場合、 隣接するバン クにグループ化し ます。 ス タ ッ ク ド シ リ コ ン イン ターコネ ク ト (SSI) テ ク ノ ロ ジ デバイ スでは、隣接するバン ク も同じ SLR (Super Logic Region) 内に配置する必要があ り ます。

イ ン ターフ ェ イス制御信号

イ ン ターフ ェ イ ス制御信号 (ク ロ ッ ク、 イ ネーブル、 リ セ ッ ト 、 ス ト ローブ) を、 制御の対象と なるデータ バスの中央に配置し ます。

デザイ ン全体で使用される フ ァ ンアウ ト の大きい制御信号

デザイ ン全体で使用される フ ァ ンアウ ト の大きい制御信号を、 デバイ ス中央に配置し ます。

SSI テ ク ノ ロ ジ デバイ スでは、 これらの信号は、 駆動先の SLR コ ンポーネン ト の中央にあ る SLR に配置し ます。

コ ン フ ィ ギュ レーシ ョ ン ピン

効率の良いシステムを設計するには、 システム要件に 適な FPGA コ ンフ ィ ギュ レーシ ョ ン モード を選択する必要があ り ます。 次の事項を考慮し て く ださい。

• 専用または多目的コ ンフ ィ ギュ レーシ ョ ン ピン

どのコ ンフ ィ ギュ レーシ ョ ン モード でも、 一部の FPGA ピンを専用ピン と し て使用し、 多目的ピンを コ ンフ ィギュ レーシ ョ ン中に一時的に使用でき ます。 多目的ピンは、 コ ンフ ィ ギュ レーシ ョ ンが完了する と、 汎用ピンにな り ます。

• コ ンフ ィ ギュ レーシ ョ ン モード によ り 、 一部の FPGA I/O バン ク の電圧が制限される こ と があ り ます。

• 異なる コ ンフ ィ ギュ レーシ ョ ン ピンに適し た終端を選択し ます。

• コ ンフ ィ ギュ レーシ ョ ン ピンのプルア ッ プまたはプルダウ ン抵抗に推奨される値を使用し ます。

推奨 : コ ンフ ィ ギュ レーシ ョ ン ク ロ ッ クは低速ですが、 ボード上でシグナル イ ンテグ リ テ ィ 解析を実行し て信号にノ イ ズがないこ と を確認し て く ださい。

コ ンフ ィ ギュ レーシ ョ ン オプシ ョ ンは複数あ り 、 柔軟性があ り ますが、 各システムに 適な ソ リ ューシ ョ ンがあ るのが一般的です。 コ ンフ ィ ギュ レーシ ョ ン オプシ ョ ンを選択する際は、 次を考慮し ます。

• セ ッ ト ア ッ プ

• ス ピード

• コ ス ト

• 複雑さ

UltraFast 設計手法ガイ ド 17UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 18: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

詳細は、 「コ ンフ ィ ギュ レーシ ョ ン」 を参照し て く ださい。 FPGA コ ンフ ィ ギュ レーシ ョ ン オプシ ョ ンの詳細は、『Vivado Design Suite ユーザー ガイ ド : プロ グ ラ ムおよびデバッ グ』 (UG908) [参照 24] を参照し て く ださい。

メ モ リ イ ン ターフ ェ イス

ザイ リ ン ク ス メ モ リ IP を使用する場合は、 追加の I/O ピン プラ ンニング手順が必要です。 IP をカス タマイ ズ し た後、 Vivado IDE でエラ ボレー ト 済みデザイ ン または合成済みデザイ ンを開いて 上位 IP ポー ト を物理的なパッ ケージ ピンに割 り 当てます。

各 メ モ リ IP に関連するポー ト はすべて I/O ポー ト イ ン ターフ ェ イ ス と し てグループ化されてお り 、 簡単に特定および割 り 当てでき ます。 メ モ リ バン ク /バイ ト プラ ンナーが提供されてお り 、 メ モ リ I/O ピン グループを物理的なデバイ ス ピンのバイ ト レーンに割 り 当てる こ と ができ ます。

詳細は、『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899) [参照 4] のこのセ ク シ ョ ンを参照し て く ださい。

中央に I/O 列があ るデバイ スの場合は特に、 メ モ リ イ ン ターフ ェ イ ス を割 り 当てる際に注意し て、 でき るだけ密集が起こ ら ないよ う にし て く ださい。 メ モ リ イ ン ターフ ェ イ ス を ま と める と、 デバイ ス中で配線ボ ト ルネ ッ ク が発生し て し ま う 可能性も あ り ます。 デザイ ンおよびピン配置のガイ ド ラ イ ンについては、 『Zynq-7000 AP SoC および 7 シリ ーズ FPGA メ モ リ イ ン ターフ ェ イ ス ソ リ ューシ ョ ン ユーザー ガイ ド』 (UG586) [参照 47] および 『UltraScale アーキテ クチャ FPGA メ モ リ IP LogiCORE IP 製品ガイ ド』 (PG150) [参照 48] を参照し て く ださい。 これらのガイ ド で推奨される ト レース長を使用し、 正しい終端が使用されている こ と を確認し て、 メ モ リ IP I/O 割 り 当ての後 DRC を実行し てピン配置を検証し て く ださい。

ギガビ ッ ト ト ラ ンシーバー (GT)

ギガビ ッ ト ト ラ ンシーバー (GT) には、 特定のピン配置要件があ り ますので、 次に注意する必要があ り ます。

• 基準ク ロ ッ ク の共有

• 同じ ク ワ ッ ド内での PLL の共有

• PCIe などのハード ブロ ッ ク の配置と、 それらの ト ラ ンシーバーへの近さ

• SSI テ ク ノ ロ ジ デバイ スの場合は、 SLR 境界のク ロ ッ シング

コ アの生成には GT ウ ィ ザード を使用する こ と をお勧めし ます。 または、 こ のプロ ト コルにはザイ リ ン ク ス IP を使用でき ます。 推奨される ピン配置は、 該当する製品ガイ ド を参照し て く ださい。

ク ロ ッ ク リ ソース をバラ ン ス よ く 使用する ため、 Vivado 配置で GT 出力ク ロ ッ ク (TXOUTCLK または RXOUTCLK) が供給される ロード をそのク ロ ッ ク を ソース とする GT の横に制約する よ う 試みられます。 ス タ ッ ク ド シ リ コ ン イン ターコネ ク ト (SSI) テ ク ノ ロ ジ デバイ スでは、 GT が別の SLR に隣接する ク ロ ッ ク領域に配置されている場合、SLL に入力される信号または SLL から出力される信号 と GT 出力ク ロ ッ ク ロード の間で配線 リ ソ-ス を取 り 合 う こと な り ます。 そのため、 SLR を またぐ部分の横にあ る ク ロ ッ ク領域に GT が配置されている と、 これらのク ロ ッ ク領域内にあ る SLL への配線接続および SLL からの配線接続が削減される可能性があ り ます。

高速 I/O

HP (High Performance) バン ク と HR (High Range) バン クは、 信号を送受信する速度が異な り ます。 I/O の速度によ って、 HP バン ク または HR バン ク を選択し ます。

内部 VREF および DCI カスケー ド制約

DCI カスケードおよび内部 VREF の設定に基づいて、 ピンを通常の I/O と し て使用する よ う 解放でき ます。 これらの設定によ り 、 関連の DRC チェ ッ ク が実行され、 制約が有効であ る こ と も確認されます。 詳細は、 該当するデバイ スの SelectIO リ ソース ユーザー ガイ ド [参照 38] を参照し て く ださい。

UltraFast 設計手法ガイ ド 18UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 19: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

イ ン ターフ ェ イスの帯域幅の検証

小型のコネ ク テ ィ ビテ ィ デザイ ンを作成し、 FPGA 上の各イ ン ターフ ェ イ ス を検証し ます。 このよ う な小型のデザイ ンでは、 特定のハード ウ ェ ア イ ン ターフ ェ イ スのみが使用され、 次が有効にな り ます。

• ピン配置、 ク ロ ッ キング、 およびタ イ ミ ングのフル DRC チェ ッ ク

• ボード が戻された場合のハード ウ ェ ア テス ト デザイ ン

• Vivado ツールを使用し た短時間イ ンプ リ メ ンテーシ ョ ン ( 速のイ ン ターフ ェ イ ス デバッ グ方法)

これらのイ ン ターフ ェ イ ス用にテス ト データ を生成するには、 複数のオプシ ョ ンがあ り ます。 一部のイ ン ターフ ェイ ス IP コ アでは、 Vivado ツールで次のテス ト デザイ ンを生成でき ます。

• SerDes の IBERT

• IP コ ア内のサンプル デザイ ン

ヒ ン ト : テス ト デザイ ンがない場合は、 AXI ト ラ フ ィ ッ ク ジェネレーターの使用を考慮し て く ださい。

プロ ダ ク シ ョ ン環境では、 システム レベルのテス ト 用に別のデザイ ンを作成する必要があ る こ と も あ り ます。 これは通常、 テス ト 済みイ ン ターフ ェ イ ス と オプシ ョ ンでプロセ ッ サを含む 1 つのデザイ ンです。 このデザイ ンは、 小さ なコネ ク テ ィ ビテ ィ デザイ ンを使用し てデザイ ンの再利用を活用する こ と によ り 構築でき ます。 こ のデザイ ンはフ ローの初期段階では必要あ り ませんが、 Vivado IP イ ンテグレーターを使用し てすばや く 作成でき、 使用する と より 多 く の DRC チェ ッ ク が有効にな り 、 ソ フ ト ウ ェアを早期開発でき る よ う にな り ます。

SSI デバイスでの設計

SSI のピン配置に関する注意事項

特定の SLR に配置されている コ ンポーネン ト のピンは、 同じ SLR 内に配置し ます。 た と えば、 外部イ ン ターフ ェ イスの一部 と し てデバイ スの DNA 情報を使用する場合は、 そのイ ン ターフ ェ イ スのピンを DNA_PORT が存在するマス ター SLR に配置し ます。 そのほかに、 次の事項を考慮する必要があ り ます。

• 1 つのイ ン ターフ ェ イ スに含まれるすべてのピンを同じ SLR にグループ化し ます。

• 複数の SLR のコ ンポーネン ト を駆動する信号は、 中央の SLR に配置し ます。

• SLR 間で CCIO または CMT コ ンポーネン ト をバラ ン ス よ く 使用し ます。

• SLR を またぐ状況を削減し ます。

SLR (Super Logic Region)

SLR (Super Logic Region) は、 SSI テ ク ノ ロ ジ デバイ スに含まれる 1 つの FPGA ダ イ ス ラ イ スです。 各 SLR には、 スラ イ ス、 RAM、 DSP ス ラ イ ス、 GT などの メ イ ン FPGA 回路が含まれます。

複数の SLR コ ンポーネン ト が縦に積み重ねられ、 イ ン ターポーザーを介し て接続されて、 1 つの SSI テ ク ノ ロ ジ デバイ ス を構成し ています。 一番下の SLR は SLR0 で、 上に行 く ほど番号が増加し ます。 た と えば、 図 2-2 に示すよ うに、 XC7V2000T デバイ スには 4 つの SLR コ ンポーネン ト があ り ます。 一番下の SLR は SLR0 で、 その上が SLR1、さ らにその上が SRL2 で、 一番上の SLR は SLR3 にな り ます。

注記 : ザイ リ ン ク ス ツールではグ ラ フ ィ カル ユーザー イ ン ターフ ェ イ ス (GUI) およびレポー ト で SLR コ ンポーネント が明確に識別されます。

UltraFast 設計手法ガイ ド 19UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 20: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

SLR の名前

ターゲ ッ ト デバイ スで SLR の名前がどのよ う に付け られているかを理解する こ と は、 次の作業で重要と な り ます。

• ピンの選択

• フ ロ アプラ ン

• タ イ ミ ングおよびその他のレポー ト の解析

• ロ ジ ッ ク の位置、 そのロ ジ ッ ク のソース またはデステ ィ ネーシ ョ ンの特定

Vivado Tcl コマン ド get_slrs を使用する と、 特定のデバイ スの SLR に関する特定の情報を取得でき ます。 た と えば、 次のコマン ド を使用し ます。

° デバイ スの SLR 数を取得するには、 llength [get_slrs] を使用し ます。

° my_cell が配置されている SLR を取得するには、get_slrs -of_objects [get_cells my_cell] を使用し ます。

マス ター SLR各 SSI テ ク ノ ロ ジ デバイ スには、 マス ター SLR が 1 つあ り ます。 マス ター SLR には、 デバイ スのコ ンフ ィ ギュ レーシ ョ ンを開始するプラ イマ リ コ ンフ ィ ギュ レーシ ョ ン ロ ジ ッ ク と、 すべての SLR コ ンポーネン ト が含まれています。 マス ター SLR には、 コ ンフ ィ ギュ レーシ ョ ンに使用される DNA_PORT および EFUSE_USE が含まれます。 これらのコ ンポーネン ト を使用する と、 配置配線によ り 関連のピンおよびロ ジ ッ クが適切な SLR に割 り 当て られます。通常、 追加の操作は必要あ り ません。

ヒ ン ト : Vivado Design Suite でどの SLR がマス ター SLR であ るかを確認するには、Tcl コマン ド get_slrs -filter IS_MASTER を使用し ます。

UltraFast 設計手法ガイ ド 20UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 21: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

次の図は、 XC7V2000T デバイ スのマス ター SLRを示し ています。

シ リ コ ン イ ン ターポーザー

シ リ コ ン イ ン ターポーザーは、 SSI テ ク ノ ロ ジ デバイ ス内の不動態層で、 次の SLR コ ンポーネン ト 間が配線されます。

• コ ンフ ィ ギュ レーシ ョ ン

• グ ローバル ク ロ ッ ク

• 汎用イ ン ターコネ ク ト

X-Ref Target - Figure 2-2

図 2-2 : XC7V2000T デバイスのマス ター SLR

UltraFast 設計手法ガイ ド 21UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 22: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

SLL (Super Long Line) 配線

SLL (Super Long Line) 配線では、 1 つの SLR から そのデバイ ス内の別の SLR までの信号が接続されます。

ヒ ン ト : 2 つの SLR 間の SLL 数および使用可能な リ ソース数は、 小限のロ ジ ッ ク を含む小さ な合成済みデザイ ンに対し て Tcl コマン ド の report_utilization -slr を実行する と わか り ます。

伝搬の制限

ヒ ン ト : SLR 間の高速伝搬では、 SLR 境界を またぐ信号にレジス タ を付け る こ と を考慮し て く ださい。

SLR コ ンポーネン ト 間では、 SLL 信号が唯一のデータ接続です。

次のものは SLR コ ンポーネン ト 間では伝搬されません。

• キ ャ リ ー チェーン

• DSP カスケード

• ブロ ッ ク RAM ア ド レ スのカスケード

• DCI カスケードやブロ ッ ク RAM カス ケード などのその他の専用接続

ツールでは通常、 伝搬に関する この制限が考慮されます。 長い DSP カ スケード を構築し、 それらのロ ジ ッ ク を SLR 境界の近 く に手動配線する場合やデザイ ンのピン配置を指定する場合に、 デザイ ンが適切に配線され、 デザイ ン要件が満た される よ う にするには、 この制限を考慮する必要があ り ます。

SLR の使用に関する考慮事項

Vivado イ ンプ リ メ ンテーシ ョ ン ツールでは、 ロ ジ ッ ク を複数の SLR に分割するための特別なアルゴ リ ズムが使用されます。 SSI テ ク ノ ロ ジ デバイ ス を ターゲ ッ ト にするデザイ ンのタ イ ミ ング ク ロージャが困難な場合は、 次のガイド ラ イ ンを使用する こ と で改善でき ます。

タ イ ミ ング ク ロージ ャおよびコ ンパイル時間を改善するには、 Pblock を使用し て ロ ジ ッ ク を各 SLR に割 り 当てて、その各 SRL 内でフ ァブ リ ッ ク リ ソース タ イプすべての中から過度に使用率が高いものがないよ う にし ます。 た と えば、 BRAM 使用率 70% のデザイ ンで、BRAM リ ソースが SLR 全体でバラ ン ス よ く 配置されておらず、 1 つの SLR で BRAM の 85% 以上が使用されている場合、 タ イ ミ ング ク ロージ ャ問題が発生する可能性があ り ます。

UltraFast 設計手法ガイ ド 22UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 23: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

次の vu160 の使用率レポー ト の例は、 全体の BRAM 使用率は 56% なのに、 SLR0 の BRAM 使用率が 89% (使用可能な 1008 個中 897 個使用) であ る こ と を示し ています。 SLR 間で BRAM 使用率のバラ ン スが良いデザイ ン よ り も、SLR0 のデザイ ンの方がタ イ ミ ング ク ロージ ャ を達成するのが困難と なる可能性があ り ます。

3. BLOCKRAM-----------+-------------------+------+-------+-----------+-------+| Site Type | Used | Fixed | Available | Util% |+-------------------+------+-------+-----------+-------+| Block RAM Tile | 1843 | 0 | 3276 | 56.26 || RAMB36/FIFO* | 1820 | 1 | 3276 | 55.56 || FIFO36E2 only | 78 | | | || RAMB36E2 only | 1742 | | | || RAMB18 | 46 | 0 | 6552 | 0.70 || RAMB18E2 only | 46 | | | |+-------------------+------+-------+-----------+-------+ 14. SLR CLB Logic and Dedicated Block Utilization-------------------------------------------------+-----------+--------+---------+------------+-------------+---------------+-----------+-------+------+| SLR Index | CLBs | (%)CLBs | Total LUTs | Memory LUTs | (%)Total LUTs | Registers | BRAMs | DSPs |+-----------+--------+---------+------------+-------------+---------------+-----------+-------+------+| SLR2 | 40109 | 89.61 | 167520 | 156 | 46.78 | 327600 | 512 | 0 || SLR1 | 42649 | 95.28 | 205484 | 2297 | 57.38 | 355918 | 434 | 0 || SLR0 | 35379 | 97.62 | 163188 | 24 | 56.29 | 313392 | 897 | 0 |+-----------+--------+---------+------------+-------------+---------------+-----------+-------+------+| Total | 118137 | | 536192 | 2477 | | 996910 | 1843 | 0 |+-----------+--------+---------+------------+-------------+---------------+-----------+-------+------+

SLR Pblock には BRAM および DSP グループを割 り 当て、 共有信号が SLR を またぐのを 小限に抑え る こ と をお勧めし ます。 た と えば、 複数の SLR に分散し ている BRAM グループにフ ァ ンア ウ ト する ア ド レ ス バスがあ る と、 タ イミ ング ク ロージ ャが達成しに く く な り ます。 これは、 SLR を またぐ こ と によ り によ り タ イ ミ ング ク リ テ ィ カルな信号に遅延が追加されるためです。

IP は、 デバイ ス リ ソースの位置やユーザー I/O の選択によ り SLR に固定されます (例 : GT、 ILKN、 PCIe、 および CMAC 専用ブロ ッ ク または メ モ リ イ ン ターフ ェ イ ス コ ン ト ローラー )。 ザイ リ ン ク スでは、 次を推奨し ています。

• データ フ ローが SLR の境界を何度も またがる こ と がないよ う に、 専用ブロ ッ クの位置と ピン配置の選択には特に注意し て く ださい。

• 密に相互接続されたモジュール と IP は、 同じ SLR 内に配置し ます。 これが不可能な場合は、 パイプラ イ ン レジス タ を追加し てよ り 柔軟な配置が実行される よ う にし、 ロ ジ ッ ク グループ間の接続が SLR を またぐ場合でも適切な ソ リ ューシ ョ ンが見つけ られる よ う にし て く ださい。

• ク リ テ ィ カル ロ ジ ッ クは同じ SLR 内に配置し ます。 主なモジュールがそれらのイ ン ターフ ェ イ スで適切にパイプラ イ ン処理される よ う にする と、 配置で SLR を またぐ部分がフ リ ッ プフ ロ ッ プから フ リ ッ プフ ロ ッ プの接続になる SLR を見つける こ と ができ る よ う にな り ます。

次の図では、 SLR0 に制約された メ モ リ イ ン ターフ ェ イ スが SLR1 のユーザー ロ ジ ッ ク を駆動する必要があ り ます。AXI4-Lite ス レーブ イ ン ターフ ェ イ スは メ モ リ IP バッ クエン ド に接続されてお り 、 メ モ リ IP と AXI4-Lite ス レーブ イ ン ターフ ェ イ ス間の境界が適切に定義されているため、 SLR0 から SLR1 への遷移が問題な く 実行されます。

UltraFast 設計手法ガイ ド 23UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 24: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

幅の広いバスが SLR をまたぐ場合

幅の広いバスが SLR を またぐデータ フ ロー要件があ る場合は、 パイプラ イ ン ス ト ラ テジを使用し て タ イ ミ ング クロージャ を改善し、 長い リ ソースの配線密集を軽減し ます。 250MHz を超え る周波数で動作する幅の広いバスの場合は、 3 段のパイプラ ン (SLR の一番上に 1 段、 一番下に 1 段、 真ん中に 1 段) を使用し て、 SLR を またぐ よ う にする必要があ り ます。 非常にパフ ォーマン スの高いバスの場合や、 水平方向に横切った り 、 垂直方向に縦断し た り する場合は、 さ らに多 く のパイプラ イ ン段が必要になる こ と も あ り ます。

次の図は、 vu190-2 デバイ スで SLR を またぐ ワース ト ケースの状況を示し ています。 この例では、 SLR0 の左下の Interlaken 専用ブロ ッ ク から、 SLR2 の右上に割 り 当て られたパケ ッ ト モニ ター ブロ ッ ク に到達し ています。 パケ ット モニ ターを行き来するデータ バスに対し てパイプラ イ ン レジス タがない と、 デザイ ンはタ イ ミ ング要件であ る 300MHz を大差で満たすこ と ができ ません。

X-Ref Target - Figure 2-3

図 2-3 : SLR0 のメ モ リ イ ン ターフ ェ イスが SLR1 のユーザー ロジ ッ ク を駆動

UltraFast 設計手法ガイ ド 24UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 25: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

X-Ref Target - Figure 2-4

図 2-4 : SLR をまたがるデータ パス (パイプラ イ ン フ リ ッ プ フ ロ ッ プな し )

UltraFast 設計手法ガイ ド 25UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 26: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

SLR0 から SLR2 に遷移しやすいよ う にする ため 7 段のパイプラ イ ンを追加する と、 デザイ ンのタ イ ミ ング要件が満た される よ う にな り ます。 これによ り 、 次の図に示すよ う に、 垂直および水平方向の長い配線 リ ソースの使用も減り ます。

FPGA の消費電力およびシステムの依存性

PCB をプラ ンニングする際は、 消費電力を考慮する必要があ り ます。

• FPGA デバイ ス と ユーザー デザイ ンによ り 、 システム電源と放熱の要件が決定し ます。

• 電源は 大消費電力要件を満たすこ と ができ る よ う に、 デバイ スは動作中に推奨される電圧および温度動作条件内に収ま る よ う にし てお く 必要があ り ます。 そのデバイ スがこれらの制限内に収ま る よ う にするには、 消費電力の見積も り と熱モデルが必要な こ と も あ り ます。

そのため、 FPGA デバイ スの電力要件および冷却要件を理解し、 ボード設計に組み込む必要があ り ます。

FPGA デバイスの電源パス

FPGA デバイ スに電源を供給するには、 複数の電源が必要です。 一部の電源は、 特定の順序で投入する必要があ り ます。 FPGA デバイ ス、 GT、 およびその他のア ク テ ィ ブ コ ンポーネン ト に正しい順序で電源を投入する ため、 電源モニターまたはシーケン ス回路を使用する こ と を考慮し て く ださい。 よ り 複雑な環境では、 マイ ク ロ コ ン ト ローラー、MBUS や PMBUS などのパワー マネージ メ ン ト バス を使用し て電源および リ セ ッ ト プロセス を制御する と有益な場合があ り ます。 電源のオン/オフ シーケン スの詳細は、 デバイ スのデータ シー ト を参照し て く ださい。

個別の電源から、 異なる FPGA リ ソースに必要な電力が供給されます。 これによ り 、 さ まざまな リ ソース を異なる電圧レベルで動作させる こ と ができ るので、 ノ イ ズや寄生効果に対し て高い耐性を保ちながら、 パフ ォーマン スおよび信号強度を向上でき ます。

X-Ref Target - Figure 2-5

図 2-5 : SLR をまたがるデータ パス (パイプラ イ ン フ リ ッ プ フ ロ ッ プを追加)

UltraFast 設計手法ガイ ド 26UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 27: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

電力モー ド

FPGA デバイ スは、 電源を投入し てから切る までの間に、 電力要件の異なるい く つかの電力フ ェーズを経ます。

• 「電源投入」

• 「ス ター ト ア ッ プ電力」

• 「ス タ ンバイ電力」

• 「ア ク テ ィ ブ電力」

電源投入

電源投入電力は、 FPGA デバイ スに 初に電力を投入し た と きに発生する過渡スパイ ク電流です。 この電流は、 各電圧電源で異な り 、 FPGA デバイ スの構造、 電源ソースが公称電圧に上昇する能力、 温度や電源シーケン スなどのデバイ スの動作条件に依存し ます。

現代の FPGA デバイ ス アーキテ クチャでは、 電源投入シーケン スのガイ ド ラ イ ンに従えば、 スパイ ク電流は発生しません。

ス ター ト ア ッ プ電力

ス ター ト ア ッ プ電力は、 デバイ スの初期の立ち上げおよびコ ンフ ィ ギュ レーシ ョ ンに必要な電力です。 この電力は通常短期間に発生するので放熱を考慮する必要はあ り ませんが、 電流要件は満たす必要があ り ます。 ほ と んどの場合、 動作中のデザイ ンのア ク テ ィ ブ電流の方が高いので、 変更は必要あ り ません。 ただし、 ア ク テ ィ ブ電流が低い低消費電力デザイ ンでは、 この期間電流要件を高 く する こ と が必要な場合があ り ます。 Xilinx Power Estimator (XPE) を使用し て、 この要件を理解でき ます。 [Process] を [Maximum] に設定し た場合、 各電圧レールの電流要件が動作電流かス ター ト ア ッ プ電流の高い方に指定されます。 ス ター ト ア ッ プ電流の方が高い場合、 XPE に電流値が青で表示されます。

ス タ ンバイ電力

ス タ ンバイ電力 (デザイ ンのス タ テ ィ ッ ク消費電力) は、 デバイ スがデザイ ンでコ ンフ ィ ギュ レーシ ョ ン された と きに供給される電力で、 外部から適用される ア ク テ ィ ビテ ィ や内部で生成される ア ク テ ィ ビテ ィ はあ り ません。

ス タ ンバイ電力は、 デザイ ンの動作中に供給する必要があ る 小継続電力を示し ます。

アク テ ィ ブ電力

ア ク テ ィ ブ電力 (デザイ ンのダ イナ ミ ッ ク消費電力) は、 アプ リ ケーシ ョ ンの実行中にデバイ スで必要な電力です。ア ク テ ィ ブ電力には、 ス タ ンバイ電力 (すべてのス タ テ ィ ッ ク消費電力) とデザイ ン ア ク テ ィ ビテ ィ によ り 生成される電力 (デザイ ンのダ イナ ミ ッ ク消費電力) を加算し た ものです。 この電力は、 入力データ パターンおよびデザイ ンの内部ア ク テ ィ ビテ ィ によ り ク ロ ッ ク サイ クルご と に変化し ます。

消費電力に影響する環境要因

デザイ ン自体だけでな く 、 環境要因も消費電力に影響し ます。 これらの要因は、 デバイ スの電圧およびジャ ン クシ ョ ン温度に影響するので、 消費電力に影響し ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこ のセ ク シ ョ ンを参照し て く ださい。

消費電力モデルの精度

ツールに組み込まれている特性データの精度は、 デバイ スの入手可能性や製造プロセスの成熟度を反映し て しだいに進化し ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこのセク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 27UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 28: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 2 章 : ボー ド およびデバイス プ ラ ンニング

FPGA デバイスの消費電力と全般的なシステム設計プロセス

プロ ジェ ク ト 考案から完成まで、 さ まざまなデザイ ン プロセスの側面が消費電力に影響し ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこ のセ ク シ ョ ンを参照し て く ださい。

Xilinx Power Estimator (XPE) を使用し たワース ト ケース消費電力解析

ワース ト ケースの消費電力のボード を設計する こ と をお勧めし ます。詳細は、『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析 と 適化』 (UG907) [参照 22] のこ のセ ク シ ョ ンを参照し て く ださい。

コ ン フ ィ ギュ レーシ ョ ン

コ ンフ ィ ギュ レーシ ョ ンは、 アプ リ ケーシ ョ ン特定のデータ を FPGA デバイ スの内部メ モ リ に読み込むプロセスです。

ザイ リ ン ク ス FPGA コ ンフ ィ ギュ レーシ ョ ン データは CMOS コ ンフ ィ ギュ レーシ ョ ン ラ ッチ (CCL) に格納されるので、 コ ンフ ィ ギュ レーシ ョ ン データには揮発性があ り 、 FPGA デバイ スに電源を投入するたびに読み込み直す必要があ り ます。

ザイ リ ン ク ス FPGA デバイ スは、 外部不揮発性 メ モ リ デバイ スから コ ンフ ィ ギュ レーシ ョ ン ピンを介し て読み込むこ と ができ ます。 次のよ う な外部スマー ト ソースから コ ンフ ィ ギュ レーシ ョ ンする こ と も可能です。

• マイ ク ロプロセ ッ サ

• DSP プロセ ッ サ

• マイ ク ロ コ ン ト ローラー

• パソ コ ン (PC)

• ボード テス ター

ボード プラ ンニングでは、 初期段階でコ ンフ ィ ギュ レーシ ョ ンを考慮する必要があ り ます。 これによ り 、 コ ンフ ィギュ レーシ ョ ンだけでな く デバッ グ しやす く な り ます。

サポー ト される コ ンフ ィ ギュ レーシ ョ ン モードおよびそのピン数、 パフ ォーマン ス、 コ ス ト におけ る ト レード オフの詳細は、 各 FPGA デバイ ス フ ァ ミ リ のコ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド [参照 37] を参照し て く ださい。

ボー ド設計でのヒ ン ト

ボード設計の際は、 コ ンフ ィ ギュ レーシ ョ ンだけでな く 、 どのイ ン ターフ ェ イ スおよびピンがデバッ グに役立つかを考慮する こ と が重要です。 た と えば、 JTAG が主なコ ンフ ィ ギ ュ レーシ ョ ン モード でない場合でも、 ボード の JTAG イ ン ターフ ェ イ スにア ク セスでき る よ う にし てお く こ と をお勧めし ます。 JTAG イ ン ターフ ェ イ ス を使用すると、 デバイ ス ID およびデバイ ス DNA 情報を確認でき、 プロ ト タ イプ時にこ のイ ン ターフ ェ イ ス を使用し て間接プロ グ ラ ム ソ リ ューシ ョ ンを イネーブルにでき ます。

また、 INIT_B や DONE などの信号は、 FPGA コ ンフ ィ ギュ レーシ ョ ン デバッ グには非常に重要です。 INIT_B 信号には複数の機能があ り ます。 電源投入時の初期化の完了を示し、 CRC エラーが発生し た こ と を示すこ と もでき ます。INIT_B および DONE 信号を LED ド ラ イバーおよびプルア ッ プを使用し て LED に接続する こ と をお勧めし ます。 推奨されるプルア ッ プ値は、 該当する FPGA デバイ ス フ ァ ミ リ のコ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド を参照し てく ださい。

回路図チェ ッ ク リ ス ト に、 これらおよびその他の主な推奨事項が含まれています。 これらのチェ ッ ク リ ス ト を使用し て、 ボード レベルのピン接続の推奨事項を確認し て く ださい。

• 7 シ リ ーズ回路図レ ビ ュー推奨事項 (XMP277) [参照 50]

• UltraScale アーキテ クチャ回路図レ ビ ュー チェ ッ ク リ ス ト (XTP344) [参照 51]

UltraFast 設計手法ガイ ド 28UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 29: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章

デザイ ンの作成

デザイ ンの作成の概要

デバイ スの I/O プラ ンニングを実行し、 PCB のレ イ アウ ト をプラ ンニング し、 Vivado® Design Suite の使用モデルを決定し た ら、 デザイ ンの作成を開始でき ます。 デザイ ンの作成には、 次が含まれます。

• デザイ ン階層をプラ ンニング

• デザイ ン内で使用およびカ ス タマイ ズする IP コ アを特定

• 適切な IP が見つから なかった場合は、 イ ン ターコネ ク ト ロ ジ ッ クおよび機能を記述し たカ ス タ ム RTL を作成

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

• 合成およびイ ンプ リ メ ンテーシ ョ ンで使用される追加の制約、 属性、 およびその他の要素を指定

デザイ ンを作成する際の主な考慮点は、 次の とお り です。

• 必要な機能を達成する

• 必要な周波数で動作する

• 必要な信頼度で動作する

• シ リ コ ン リ ソースおよび消費電力を要件内に収める

この段階での決定事項が、 終的な製品に影響し ます。 この段階で間違った決定をする と、 後の段階で問題と な り 、デザイ ン サイ クル全体で問題が発生する可能性があ り ます。 プロセスの初期段階で時間をかけてデザイ ンを注意深く プラ ンニングする と、 デザイ ン要件を満た し、 ラ ボでのデバッ グ時間を 小限に抑え る こ と ができ ます。

UltraFast 設計手法ガイ ド 29UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 30: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

適切なデザイ ン階層の定義

デザイ ンの作成では、 まずデザイ ンをどのよ う に論理的に分割するかを決定し ます。 階層を考慮する際は、 特定のフ ァ ン ク シ ョ ンを含むデザイ ンの部分を分割する こ と を考えます。 これによ り 、 特定の設計者が IP を個別に設計でき るほか、 コード を別にし て再利用する こ と もでき ます。

ただし、 機能のみに基づいて階層を定義する場合、 タ イ ミ ング ク ロージ ャ、 実行時間、 およびデバッ グのためにどのよ う に 適化するかは考慮されません。 階層プラ ンニングの際に次について も考慮する と、 タ イ ミ ング ク ロージャ を達成しやす く な り ます。

I/O コ ンポーネン ト を 上位付近で推論

可能であれば、 I/O コ ンポーネン ト を 上位付近で推論し、 デザイ ンを解読しやす く し ます。 推論可能なコ ンポーネン ト は、 単純なシングルエン ド I/O (IBUF、 OBUF、 OBUFT、 および IOBUF) および I/O のシングル データ レー ト のレジス タです。 差動 I/O (IBUFDS、 OBUFDS)、 ダブル データ レー ト レジス タ (IDDR、 ODDR、 ISERDES、OSERDES) などのイ ン ス タ ンシエー ト する必要があ る I/O コ ンポーネン ト も、 上位付近でイ ン ス タ ンシエー ト する必要があ り ます。

上位階層にク ロ ッ ク エレ メ ン ト を配置

ク ロ ッ ク エレ メ ン ト をでき るだけ 上位の近 く に配置する と、 モジュール間で ク ロ ッ ク を共有しやす く な り ます。ク ロ ッ ク の共有によ り 必要な ク ロ ッ ク リ ソースが削減され、 リ ソース使用量、 パフ ォーマン ス、 および消費電力が改善する可能性があ り ます。

ク ロ ッ ク が作成されるモジュール以外では、 ク ロ ッ ク パスはモジュールのみを駆動する必要があ り ます。 上位から ダウ ン ス ト リ ームのモジュールを介し て 上位にまた戻る よ う なパスは、 VHDL シ ミ ュ レーシ ョ ンでデバッ グが困難で時間がかかるデルタ サイ クル問題の原因と な り ます。

データ パスの論理境界にレジス タ を付ける

階層境界の出力にレジス タ を付けて、 ク リ テ ィ カル パスが 1 つのモジュールまたは境界内に含まれる よ う にし ます。階層境界でも入力にレジス タ を付ける こ と を考慮し て く ださい。 タ イ ミ ング パスが 1 つのモジュール内にあ る と、複数モジュールにまたがっている よ り も解析および修正が簡単です。 階層境界でレジス タが付いていないパスはすべて階層を再構築 (rebuild) またはフ ラ ッ ト 化 (flat) するオプシ ョ ンを使用し て合成し、 階層間で 適化が実行されるよ う にする必要があ り ます。 データパスの論理境界にレジス タ を付ける と、 階層間の 適化が 小限に抑え られ、ロ ジ ッ ク がモジュール間で移動し ないので、 デザイ ン プロセス全体でデバッ グの際に ト レース しやす く な り ます。

フ ロアプ ラ ンに関する考慮事項

フ ロ アプラ ンでは、 デザイ ン ネ ッ ト リ ス ト の特定部分に属するセルをデバイ スの特定箇所に配置でき ます。 手動フロ アプラ ンを使用する と、 次を達成でき ます。

• SSI テ ク ノ ロ ジ デバイ ス を使用する場合に、 ロ ジ ッ ク を分割し て特定の SLR に配置

• 標準フ ローでタ イ ミ ングが満た されない場合にデザイ ンのタ イ ミ ング ク ロージ ャ を達成

セルが 1 つの階層レベルに含まれない場合は、 すべてのオブジェ ク ト を個別にフ ロ アプラ ン制約に含める必要があり ます。 合成によ り これらのオブジェ ク ト 名が変更される場合は、 制約をア ッ プデー ト する必要があ り ます。 フ ロアプラ ンを 1 つの階層レベル内に収める と、 必要な制約は 1 行のみにな るので、 推奨されます。

フ ロ アプラ ンは常に必要なわけではあ り ません。 必要な場合にのみフ ロ アプラ ン し て く ださい。

フ ロ アプラ ンの詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906) [参照 21] のこ のセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 30UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 31: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

推奨 : Vivado ツールでは階層を またぐ フ ロ アプラ ンが可能ですが、 さ らに メ ンテナン スが必要と な り ます。 可能な限 り 、 階層を またぐ フ ロ アプラ ンは避けて く ださい。

フ ァ ン クシ ョ ンおよびタ イ ミ ング デバッ グ用の階層の 適化

このセ ク シ ョ ンの前半で説明し た よ う に、 ク リ テ ィ カル パスが同じ階層境界内に含まれる よ う にし てお く と、 タ イミ ングをデバッ グおよび修正しやす く な り ます。 同様に、 フ ァ ン ク シ ョ ン デバッ グ (および修正) のためにも、 関連する信号は同じ階層に含めてお く 必要があ り ます。 関連の信号を 1 つの階層レベルに含める と、 合成で 適化される信号名を見つけやす く な り 、 関連信号を比較的簡単にプローブおよび修正でき る よ う にな り ます。

モジュール レベルの属性の適用

モジュール レベルで属性を適用する と、 コード がシンプルにな り 、 拡張性も増し ます。 属性を信号レベルではな くモジュール レベルで適用する と、 その領域で宣言された信号すべてにその属性が伝搬されます。 属性をモジ ュール レベルで適用する と、 グ ローバル合成オプシ ョ ンを無効にする こ と もでき るので、 RTL にモジュール レベルの制約を適用するために階層レベルを追加する と有益な場合があ り ます。

注意 : 属性の中には、 モジュールからモジュール内のすべての信号には伝搬されないものも あ り ます (DONT_TOUCH など)。

ア ドバンス設計手法のための階層の 適化

ボ ト ムア ッ プ合成、 パーシ ャル リ コ ンフ ィ ギュ レーシ ョ ン、 アウ ト オブ コ ンテキス ト (OOC) デザイ ンなどのア ド バン ス設計手法を使用する場合、 階層レベルでのプラ ンニングが必要 と な り ます。 デザイ ンには、 使用される手法に適し た階層レベルを選択する必要があ り ます。 これらの手法については、 本書では説明されていません。 詳細は、『Vivado Design Suite ユーザー ガイ ド : 階層デザイ ン』 (UG905) [参照 20] のこのセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 31UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 32: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

高速 DSP デザイ ンでの階層プ ラ ンニング例

次の例はすべてのデザイ ンに適用でき るわけではあ り ませんが、 階層を使用し て何が達成でき るかを示し ています。DSP デザイ ンでは、 通常デザイ ンにレ イ テンシを追加でき るので、 レジス タ を追加し てパフ ォーマン ス を 適化でき ます。 レジス タは、 配置を柔軟にするためにも使用でき ます。 高速動作では 1 ク ロ ッ ク サイ クルでダ イ を通過する こ と は不可能なので、 これは重要です。 レジス タ を追加する こ と で、 到達しに く いエ リ アが使用される よ う になり ます。 次の図に、 効果的な階層プラ ンニングによ り 、 タ イ ミ ング ク ロージ ャにかかる時間を短縮でき る こ と を示し ます。

デザイ ンのこの部分には、 次の 3 つのレベルがあ り ます。

• DSP_i

DSP_i アルゴ リ ズム ブロ ッ クには、 入力と出力の両方にレジス タが付いています。 FPGA デバイ スにはレジス タが多数含まれるので、 この方法を使用し て タ イ ミ ング バジェ ッ ト を改善する こ と をお勧めし ます。

• floorplanning_wrapper_i

floorplanning_wrapper_i には、 CE 信号が含まれます。 CE 信号は通常負荷が高 く 、 タ イ ミ ングを満たすのが困難なので、 フ ロ アプラ ンに含めてお く 必要があ り ます。 フ ロ アプラ ン ラ ッパーを作成し てお く と、 こ のモジュールを後で必要に応じ て手動でフ ロ アプラ ンでき ます。

また、 モジュール レベルに KEEP_HIERARCHY を追加し てお く と、 その他のグ ローバル合成オプシ ョ ンに関係な く 、 階層がフ ロ アプラ ン用に保持されます。

• placement_flexibility_wrapper_i

placement_flexibility_wrapper_i では、 DATA_IN、 VALID_IN、 DATA_OUT、 および VALID_OUT 信号にレジス タが付いています。 これらの信号はフ ロ アプラ ンの一部になる よ う には意図されていないので、placement_flexibility_wrapper_i 外にあ り ます。 フ ロ アプラ ンに含める と、 配置の柔軟性に必要な条件が満た されません。

また、 DATA_IN と VALID_IN または DATA_OUT と VALID_OUT がペア と し て処理されていれば、 後でさ らにレジス タ を追加でき ます。 さ らにレジス タ を追加する と、 合成ツールで SRL が推論され、 すべてのレジス タが強制的に 1 つのコ ンポーネン ト に配置され、 配置に柔軟性がな く なる可能性があ り ます。 これを回避するには、モジュール レベルに SHREG_EXTRACT を追加し て NO に設定し ます。

X-Ref Target - Figure 3-1

図 3-1 : 効果的な階層プラ ンニングの例

placement_flexibility_wrapper_i

floorplanning_wrapper_i

DSP_i

DSPAlgorithm

attribute KEEP_HIERARCHY = “yes”

attribute SHREG_EXRACT = “no”

CE

DATA_OUT

VALID_OUT

DATA_IN

VALID_IN

X13500

UltraFast 設計手法ガイ ド 32UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 33: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

RTL コー ド記述のガイ ド ラ イ ン

グルー ロ ジ ッ ク機能を イ ンプ リ メ ン ト し た り 、 適切な IP が見つから ないフ ァ ン ク シ ョ ンを イ ンプ リ メ ン ト するため、 カ ス タ ム RTL の記述が必要な場合があ り ます。 FPGA における RTL コーデ ィ ング ス タ イルの考慮事項が多数あり ます。 追加のガイ ド ラ イ ンは、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16] のこのセ ク シ ョ ンを参照し て く ださい。

Vivado Design Suite HDL テンプレー ト の使用

RTL を作成またはザイ リ ン ク ス プ リ ミ テ ィ ブを イ ン ス タ ンシエー ト する際は、 Vivado Design Suite 言語テンプレー トを使用し て く ださい。 言語テンプレー ト には、 ザイ リ ン ク ス デバイ ス アーキテ クチャに対し て 適な推論が実行される よ う にするために推奨される コード構文が含まれます。 言語テンプレー ト を使用する と、 設計プロセスが簡単にな り 、 結果が向上し ます。 Vivado IDE で言語テンプレー ト を開 く には、 Flow Navigator で [Language Templates] をク リ ッ ク し、 必要なテンプレー ト を選択し ます。

制御信号および制御セ ッ ト

制御セ ッ ト と は、 SRL、 LUTRAM、 またはレジス タ を駆動する制御信号 (セ ッ ト / リ セ ッ ト 、 ク ロ ッ ク イネーブル、ク ロ ッ ク ) を ま と めた もので、 制御信号の固有の組み合わせに対し て固有の制御セ ッ ト が作成されます。 7 シ リ ーズ ス ラ イ ス内ではすべてのレジス タで制御信号が共有され、 同じ ス ラ イ スにパッ ク でき るのは共通の制御セ ッ ト を使用する レジス タのみなので、 この概念は重要です。 た と えば、 あ る制御セ ッ ト を持つレジス タのロード が 1 つのレジス タのみの場合、 そのレジス タが含まれる ス ラ イ スにあ る残 り 7 個のレジス タが使用でき な く な り ます。

デザイ ンに制御セ ッ ト が多数含まれる と、 無駄な リ ソースが多 く 含まれた り 、 配置オプシ ョ ンが少な く なった り する こ と があ るので、 消費電力が増加し、 パフ ォーマン スが低下し ます。 制御セ ッ ト を少な く する と、 配置のオプシ ョ ンが多 く な り 、 柔軟性も向上するので、 通常結果は改善し ます。

UltraScale™ デバイ スでは、 CLB 内での制御セ ッ ト のマ ッ プの柔軟性は高 く な り ます。 駆動されない リ セ ッ ト はス ライ ス内でローカルに接続されるので、 制御セ ッ ト には含まれませんが、 ロ ジ ッ クのグループを 大限に柔軟に配置でき る よ う にするため、 固有の制御セ ッ ト の数を制限する こ と をお勧めし ます。

リ セ ッ ト

リ セ ッ ト は、 も よ く 使用される重要な制御信号の 1 つです。 リ セ ッ ト は、 デザイ ンのパフ ォーマン ス、 エ リ ア、および消費電力に大き く 影響し ます。

推論された同期コード には、 次のよ う な リ ソースが使用されます。

• LUT

• レジス タ

• シフ ト レジス タ LUT (SRL)

• ブロ ッ ク または LUT メ モ リ

• DSP48 レジス タ

リ セ ッ ト の選択および使用がこれらのコ ンポーネン ト の選択にも影響し、 デザイ ンに対し て 適な リ ソースが使用されないこ と があ り ます。 リ セ ッ ト を誤って配列に配置する と、 1 つのブロ ッ ク RAM が推論される代わ り に、 何千個ものレジス タが推論されて し ま う 可能性があ り ます。

乗算器の入力または出力に非同期 リ セ ッ ト を記述する と、 レジス タが DSP ブロ ッ ク ではな く 、 ス ラ イ スに配置される こ と があ り ます。 このよ う な状況は リ ソース量に影響し、 全体的な消費電力 と パフ ォーマン スにもかな り 影響します。 ほ と んどの場合、 これはパフ ォーマン スに影響し、 デバイ ス使用率および消費電力にも悪影響を与えます。

UltraFast 設計手法ガイ ド 33UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 34: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

リ セ ッ ト を使用する状況と使用する場所

FPGA デバイ スには、 専用のグ ローバル セ ッ ト / リ セ ッ ト 信号 (GSR) が含まれます。 これらの信号は、 デバイ ス コ ンフ ィ ギュ レーシ ョ ンの 後にすべてのレジス タ を HDL コード で指定し た初期値に初期化し ます。

初期値が指定されていない場合は、 デフ ォル ト で 0 にな り ます。 これによ り 、 HDL コード で指定し た リ セ ッ ト ト ポロ ジに関係な く 、 すべてのレジス タがコ ンフ ィ ギュ レーシ ョ ン終了時に既知のステー ト にな り ます。 電源投入時にデバイ ス を初期化する目的のためだけに、 グ ローバル リ セ ッ ト のコード を記述する必要はあ り ません。

デザイ ンが リ セ ッ ト を必要 とする状況 と必要 と し ない状況を判断する際は、 特に注意が必要です。 適切に動作させるために制御パス ロ ジ ッ ク に リ セ ッ ト が必要な場合が多 く あ り ますが、 データパス ロ ジ ッ ク には通常 リ セ ッ ト が必要でない場合が多いです。 リ セ ッ ト の使用を抑え る と、 次のよ う にな り ます。

• リ セ ッ ト ネ ッ ト の全体的なフ ァ ンア ウ ト が制限される

• リ セ ッ ト の配線に必要な イ ン ターコネ ク ト の量が削減される

• リ セ ッ ト パスのタ イ ミ ングが簡潔になる

• パフ ォーマン ス、 エ リ ア、 消費電力が全体的に改善する こ と が多い

推奨 : 各同期ブロ ッ ク を評価し て、 適な動作に リ セ ッ ト が必要かど う かを判断し てみて く ださい。 リ セ ッ ト が実際に必要かど う かを確認せずにデフ ォル ト で記述し ないで く ださい。

リ セ ッ ト が必要かど う かは、 論理シ ミ ュ レーシ ョ ンで簡単に判断でき ます。

リ セ ッ ト を記述し ないロ ジ ッ ク では、 ロ ジ ッ ク をマ ッ プする FPGA リ ソース を選択する際の柔軟性が増し ます。

た と えば次を考慮する こ と によ り 、 合成ツールでそのコード に 適な リ ソースが選択され、 結果が改善する こ と があ り ます。

• リ ク エス ト された機能

• パフ ォーマン ス要件

• 使用可能なデバイ ス リ ソース

• 消費電力

同期リ セ ッ ト vs 非同期リ セ ッ ト

リ セ ッ ト が必要な場合は、 同期 リ セ ッ ト を記述する こ と をお勧めし ます。 同期 リ セ ッ ト には、 非同期 リ セ ッ ト よ りも多 く の利点があ り ます。

• 同期 リ セ ッ ト を使用する と、 FPGA デバイ ス アーキテ クチャのよ り 多 く の リ ソース エレ メ ン ト に直接マ ッ プでき ます。

• 非同期 リ セ ッ ト は、 一般的なロ ジ ッ ク構造のパフ ォーマン スにも影響し ます。 ザイ リ ン ク ス FPGA の汎用レジス タはセ ッ ト / リ セ ッ ト を非同期または同期のいずれかにプロ グ ラ ムでき るので、 非同期 リ セ ッ ト を使用し て も問題ない と思われがちですが、 これは間違いです。 グ ローバル非同期 リ セ ッ ト が使用される と、 制御セ ッ ト は増加し ませんが、 この リ セ ッ ト 信号をすべてのレジス タ エレ メ ン ト に配線する必要があ るので、 タ イ ミ ングはよ り 複雑にな り ます。

• 非同期 リ セ ッ ト を使用する場合は、 非同期 リ セ ッ ト のデ ィ アサー ト を同期する よ う にし て く ださい。

• 集積度の高い配置や精度の高い配置が必要な場合は、 同期 リ セ ッ ト の方が制御セ ッ ト を柔軟にマ ッ プし直すこと ができ ます。 適に配置されたス ラ イ ス内で互換性のない リ セ ッ ト が検出された場合、 同期 リ セ ッ ト であればレジス タのデータ パスにマ ッ プし直すこ と ができ ます。 これによ り 、 ワ イヤ長が短 く な り 、 集積度が増加して、 適切なフ ィ ッ ト およびパフ ォーマン スの向上が可能にな り ます。

• 回路を適切に リ セ ッ ト し て安定化させるため、 非同期 リ セ ッ ト にマルチサイ クル アサー ト が必要な場合があ ります。 同期 リ セ ッ ト では、 タ イ ミ ング制約が適切に設定されていれば、 この要件は必要あ り ません。

• 非同期 リ セ ッ ト によ り BRAM、 LUTRAM、 および SRL の メ モ リ の内容が破損する可能性があ る場合は、 同期 リセ ッ ト を使用し て く ださい。

UltraFast 設計手法ガイ ド 34UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 35: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• DSP48 およびブロ ッ ク RAM のよ う な一部の リ ソースには、 ブロ ッ ク内のレジス タ エレ メ ン ト に同期 リ セ ッ トしかあ り ません。 これらのエレ メ ン ト に関連する レジス タ エレ メ ン ト に非同期 リ セ ッ ト が使用される と、 これらのレジス タがこれらのブロ ッ ク に直接推論されない可能性があ り ます。

リ セ ッ ト のコー ド例 1 : 非同期リ セ ッ ト を使用する乗算器

次の例では、 専用 DSP リ ソース を ターゲ ッ ト とする ロ ジ ッ ク に同期 リ セ ッ ト を使用する レジス タ を使用する こ と が重要であ る こ と を示し ます。 図 3-2 に、 非同期 リ セ ッ ト を使用し たパイプラ イ ン レジス タ を含む 16x16 ビ ッ ト の DSP48 ベース乗算器を示し ます。 この場合、 入力段 と、 外部レジス タおよび 32 個の LUT2 (赤色のマーカーで示す) に通常のフ ァブ リ ッ ク レジス タ を使用し、 DSP 出力の非同期 リ セ ッ ト をエ ミ ュ レー ト する必要があ り ます (DSP48 の P レジス タはイネーブルだが リ セ ッ ト には接続されていない)。 これによ り 65 個のレジス タ と 32 個の LUT が余分に使用され、 DSP48 の設定が AREG/BREG=0、 MREG=0、 PREG=1 にな り ます。

次の図に示すよ う に リ セ ッ ト 定義を変更するだけで、 乗算器のパイプラ イ ン レジス タに同期 リ セ ッ ト が使用され、DSP48 の内部レジス タが使用されます (AREG/BREG=1、 MREG=1、 PREG=1)。

フ ァブ リ ッ ク リ ソースが節約され、 すべての DSP48 の内部レジス タが利用されるので、 デザイ ン パフ ォーマン スおよび電力効率が 適な ものにな り ます。

X-Ref Target - Figure 3-2

図 3-2 : 非同期リ セ ッ ト を使用するパイプ ラ イ ン レジス タ を含む乗算器

X-Ref Target - Figure 3-3

図 3-3 : 乗算器の非同期リ セ ッ ト を同期リ セ ッ ト に変更

UltraFast 設計手法ガイ ド 35UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 36: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

リ セ ッ ト のコー ド例 2 : 同期リ セ ッ ト を使用する乗算器

既存の DSP プ リ ミ テ ィ ブの機能を活用するため、 上記の例で非同期 リ セ ッ ト を同期 リ セ ッ ト に記述し直すと、 次のよ う にな り ます。

この回路では、 DSP48 プ リ ミ テ ィ ブが推論され、 すべてのパイプラ イ ン レジス タが DSP48 プ リ ミ テ ィ ブ内にパッ クされます (AREG/BREG=1、 MREG=1、 PREG=1)。

2 つ目のコード例のイ ンプ リ メ ンテーシ ョ ンには、 1 つ目のコード例と比較し て次の利点があ り ます。

• リ ソース使用量が 適

• パフ ォーマン スが高 く 、 消費電力が少ない

• 終点の数が少ない

また、 2 つ目のコード例の方が簡潔です。

HDL コー ド で リ セ ッ ト を削除する際の問題

コード を 適化し て リ セ ッ ト を削除する場合、 リ セ ッ ト 宣言で条件を コ メ ン ト アウ ト するだけでは適切な構造は作成されず、 問題が発生し ます。 た と えば、 次の図に示すよ う に、 3 段のパイプラ イ ンでそれぞれに非同期 リ セ ッ ト が使用されている と し ます。 リ セ ッ ト 条件のコード を コ メ ン ト アウ ト し てパイプラ イ ンの 2 段で リ セ ッ ト 条件を削除し よ う とする と、 非同期 リ セ ッ ト がイネーブルにな り ます (rst の反転ロ ジ ッ ク )。

X-Ref Target - Figure 3-4

図 3-4 : 同期リ セ ッ ト を使用するパイプラ イ ン レジス タ を含む乗算器

X-Ref Target - Figure 3-5

図 3-5 : リ セ ッ ト 条件を含むコー ド を コ メ ン ト アウ ト

CE CE CLR

UltraFast 設計手法ガイ ド 36UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 37: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

リ セ ッ ト を削除するには、 次の図に示すよ う に、 リ セ ッ ト 条件用の順序ロ ジ ッ ク プロ シージ ャ と リ セ ッ ト 以外の条件用の順序ロ ジ ッ ク プロ シージ ャ を作成するのが 適な方法です。

ヒ ン ト : リ セ ッ ト を使用する場合は、 プロ シージャ文のすべてのレジス タが リ セ ッ ト であ る こ と を確認し ます。

ク ロ ッ ク イネーブル

ク ロ ッ ク イ ネーブルは、 う ま く 使用する と、 エ リ アやパフ ォーマン スにほ と んど影響を与える こ と な く デザイ ンの消費電力を削減でき ますが、 間違って使用する と、 次のよ う な問題が発生する こ と があ り ます。

• エ リ アの増加

• 集積度の減少

• 消費電力の増加

• パフ ォーマン スの悪化

多 く の制御セ ッ ト を含むデザイ ンでは、 フ ァ ンアウ ト の小さいク ロ ッ ク イネーブルが制御セ ッ ト 数が多 く な る主な原因 と なっている こ と がよ く あ り ます。

ク ロ ッ ク イネーブルの作成

ク ロ ッ ク イ ネーブルは、 不完全な条件文が同期ブロ ッ ク に記述される と作成されます。 ク ロ ッ ク イネーブルは、 前の条件が満た されない場合に、 後の値を保持する よ う に推論されます。 これが必要な機能であればこのよ う にコード を記述し て も問題あ り ませんが、 前の条件値が満た されない場合に出力が ド ン ト ケア と なる こ と があ り ます。このよ う な場合は、 定義された定数 (信号に 1 か 0 を代入) を使用し て、 条件を閉じ る (else 文を使用) こ と をお勧めし ます。

ほ と んどのイ ンプ リ メ ンテーシ ョ ンでは、 これによ って ロ ジ ッ ク が追加される こ と はな く 、 ク ロ ッ ク イネーブルも不要ですが、 幅の広いバスでは値が保持される ク ロ ッ ク イネーブルを推論する と、 消費電力が削減される こ と があり ます。 基本的には、 推論される レジス タの数が少ない と きにはク ロ ッ ク イネーブルを使用する と制御セ ッ ト 数が増加するので有害 と なる可能性があ り ますが、 レジス タ数が多い場合は利点が多いので、 ク ロ ッ ク イネーブルの使用をお勧めし ます。

リ セ ッ ト と ク ロ ッ ク イネーブルの優先順位

ザイ リ ン ク ス FPGA デバイ スでは、 非同期または同期セ ッ ト / リ セ ッ ト のどち らが記述されていて も、 セ ッ ト / リ セ ット がク ロ ッ ク イ ネーブルよ り も優先される よ う に全レジス タが構築されています。 適な結果を取得するには、 同期ブロ ッ ク内の if/else 文で常にク ロ ッ ク イネーブル (必要と判断し た場合) よ り も前にセ ッ ト / リ セ ッ ト を記述する こ と をお勧めし ます。 ク ロ ッ ク イネーブルを 初に記述する と、 リ セ ッ ト がデータパスに接続され、 追加ロ ジ ック が作成されます。

ク ロ ッ キングの詳細は、 「ク ロ ッ キング ガ イ ド ラ イ ン」 を参照し て く ださい。

X-Ref Target - Figure 3-6

図 3-6 : リ セ ッ ト を含むレジス タ と リ セ ッ ト を含まないレジス タのプロシージャ文

UltraFast 設計手法ガイ ド 37UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 38: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

合成属性を使用し たイネーブル/リ セ ッ ト の抽出の制御

DIRECT_RESET、 DIRECT_ENABLE、 EXTRACT_RESET、 EXTRACT_ENABLE 属性を使用する と、 指定の構造における制御セ ッ ト のマ ッ プを制御でき ます。

デザイ ンに同期 リ セ ッ ト /イネーブルが含まれている と、 ロード数が -control_set_opt_threshold 合成オプシ ョ ンで設定された し きい値以上であ る場合は CE/R/S ピンを介し てマ ッ プ された ロ ジ ッ ク コーンが作成され、 し きい値未満であ る場合は D ピンを介し てマ ッ プされた ロ ジ ッ ク コーンが作成されます。 デフ ォル ト のし きい値は次のとお り です。

• 7 シ リ ーズ デバイ ス : 4

• UltraScale デバイ ス : 2

DIRECT_ENABLE および DIRECT_RESET の使用

制御セ ッ ト のマ ッ プを使用するには、 イネーブル/ リ セ ッ ト 信号に接続されているネ ッ ト に属性を適用でき ます。 これによ り 、 CE/R ピンが使用されます。

次の図では、 レジス タ (dout) は 1 ビ ッ ト 幅であ り 、 イネーブル信号 (en) のフ ァ ンアウ ト は 1 です。 この場合、 イネーブル ロ ジ ッ クはデータパス、 つま り レジス タの D ピンにマ ッ プされます。 CE ピンは 1 に接続されます。

X-Ref Target - Figure 3-7F

図 3-7 : データパス ロジ ッ ク を使用し たク ロ ッ ク イネーブルのイ ンプ リ メ ンテーシ ョ ン

UltraFast 設計手法ガイ ド 38UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 39: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

このデフ ォル ト の動作を変更するには、 DIRECT_ENABLE 属性を使用でき ます。 た と えば次の図では、DIRECT_ENABLE 属性をポー ト /信号に追加する こ と によ り 、 イネーブル信号 (en) を レジス タの CE ピンに接続する方法を示し ています。

DIRECT_RESET 属性を使用する と、 制御信号のセ ッ ト 内の優先順位を指定でき ます。 た と えば次の図では、 複数のリ セ ッ ト 条件 (global_rst、 int_rst) を含むデザイ ンの RTL コード のデフ ォル ト マ ッ プを示し ます。

X-Ref Target - Figure 3-8

図 3-8 : direct_enable を使用し た専用ク ロ ッ ク イネーブルのイ ンプ リ メ ンテーシ ョ ン

X-Ref Target - Figure 3-9

図 3-9 : データパス ロジ ッ ク を介し てマ ッ プ された複数のリ セ ッ ト 条件

UltraFast 設計手法ガイ ド 39UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 40: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の図では、 DIRECT_RESET 属性を使用し てネ ッ ト を R ピンに接続する方法を示し ます。 この場合、 R ピンへの接続で global_rst が int_rst よ り も優先されます。

ロジ ッ ク を制御ピンからデータ ピンに移動

ク リ テ ィ カル パスの解析で、 複数のパスが制御ピンで終了し ている こ と が検出される場合があ り ます。 これらのパス を解析し、 ロ ジ ッ ク レベルなどのペナルテ ィ を発生させずにロ ジ ッ ク をデータパスに移動でき るかを調べる必要があ り ます。 後の LUT の出力から フ リ ッ プフ ロ ッ プの D 入力に直接接続があ るので、 ロ ジ ッ ク レベル数が同じであれば、 D ピンへのパスの遅延は CE/R/S ピンへのパス よ り 小さ く な り ます。 次に、 ロ ジ ッ ク を制御ピンから レジスタのデータ ピンに移動する方法を示し ます。

次の例では、 イネーブル ピンのロ ジ ッ ク レベル数は 2 であ り 、 データ ピンのロ ジ ッ ク レベル数は 0 です。 イネーブル ロ ジ ッ ク には 10 ビ ッ ト フ ァ ン ク シ ョ ンがあ り 、 データ ピン ロ ジ ッ ク に移動でき ます。

X-Ref Target - Figure 3-10

図 3-10 : DIRECT_RESET 属性を使用し た専用リ セ ッ ト ピンへの接続

X-Ref Target - Figure 3-11

図 3-11 : レジス タの制御ピン (イネーブル) で終了する ク リ テ ィ カル パス

UltraFast 設計手法ガイ ド 40UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 41: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の例では、 組み合わせロ ジ ッ ク と順序ロ ジ ッ ク を分離し、 ロ ジ ッ ク全体をデータパスにマ ッ プし ています。 これによ り ロ ジ ッ ク が D ピンに挿入され、 ロ ジ ッ ク レベル数は 2 のま まにな り ます。

同じ構造は、 EXTRACT_ENABLE 属性を no に設定し て も達成でき ます。 EXTRACT_ENABLE 属性の詳細は、『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16] を参照し て く ださい。

制御信号に関する ヒ ン ト

• グ ローバル リ セ ッ ト が本当に必要かど う かを確認

• 非同期制御信号は避ける

• ク ロ ッ ク、 イネーブル、 リ セ ッ ト の極性を統一する

• セ ッ ト および リ セ ッ ト を同じ レジス タ エレ メ ン ト に記述し ない

• 非同期 リ セ ッ ト が絶対に必要な場合は、 そのデ ィ アサー ト を同期する

X-Ref Target - Figure 3-12

図 3-12 : レジス タの制御ピンで終了する ク リ テ ィ カル パス (イネーブルの抽出をデ ィ スエーブル)

UltraFast 設計手法ガイ ド 41UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 42: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

推論の理解

コード は、 終的にデバイ スに存在する リ ソースにマ ッ プされます。 ターゲ ッ ト アーキテ クチャの主な演算、 ス トレージ、 ロ ジ ッ ク エレ メ ン ト について理解し、 デザイ ンの機能を記述し ながら コード がマ ッ プされるハード ウ ェア リ ソース を予測し て く ださい。 コー ト がどのハード ウ ェ ア リ ソースにマ ッ プされるかを理解し てお く と、 発生する可能性のあ る問題を早期に特定でき ます。

次の例に、 ハード ウ ェ ア リ ソース と マ ッ プを理解する こ と によ り 、 次のよ う なデザイ ンに関する決定を下すこ と ができ る こ と を示し ます。

• 4 ビ ッ ト を超え る加算、 減算、 加減算には、 通常キ ャ リ ー チェーン と 2 ビ ッ ト の加算ご と に 1 つの LUT が使用されます (8 ビ ッ ト X 8 ビ ッ ト 加算は 8 個の LUT と関連する キ ャ リ ー チェーンを使用)。 三項加算または加算器の結果がレジス タ を間に挟まずに別の値に追加される場合、 3 ビ ッ ト 加算ご と に 1 つの LUT が使用されます (8 ビ ッ ト X 8 ビ ッ ト X 8 ビ ッ ト 加算でも 8 個の LUT と関連のキ ャ リ ー チェーンを使用)。

複数の加算が必要な場合、 加算 2 段ご と にレジス タ を指定する と、 3 項のイ ンプ リ メ ンテーシ ョ ンを生成でき るよ う にな り 、 デバイ ス使用量を半分に抑え る こ と ができ ます。

• 通常、 乗算は DSP ブロ ッ ク を ターゲ ッ ト にし ます。 18x25 未満 (UltraScale デバイ スでは 18x27 未満) の符号付きビ ッ ト 幅は、 1 つの DSP ブロ ッ ク にマ ッ プ されます。 大き な積を必要 とする乗算は、 複数の DSP ブロ ッ ク にマ ッ プ される可能性があ り ます。 DSP ブロ ッ クには、 内部にパイプラ イ ン リ ソースが含まれます。

DSP ブロ ッ クに推論される ロ ジ ッ クが正し く パイプラ イ ン処理されている と、 パフ ォーマン スおよび消費電力が大幅に改善されます。 乗算を記述する際には、 その周囲に 3 段のパイプラ イ ンを使用する と、 適なセ ッ トア ッ プ、 clock-to-out、 および消費電力特性が生成されます。 パイプラ イ ンが極端に少ない と (1 段またはな し )、タ イ ミ ング問題が発生し、 これらのブロ ッ ク の消費電力が増加する こ と があ り ますが、 DSP 内のパイプラ イ ン レジス タは未使用のま まにな り ます。

• 16 ビ ッ ト 以下の深さ の 2 つの SRL は 1 つの LUT に、 32 ビ ッ ト までの 1 つの SRL も 1 つの LUT にマ ッ プ されます。

• 条件付き コード は、 次のよ う な標準マルチプレ ク サー コ ンポーネン ト にな り ます。

° 4:1 マルチプレ ク サーは 1 つの LUT にイ ンプ リ メ ン ト でき、 ロ ジ ッ ク レベルは 1 段にな り ます。

° 8:1 マルチプレ ク サーは 2 つの LUT と MUXF7 コ ンポーネン ト にイ ンプ リ メ ン ト でき、 ロ ジ ッ ク (LUT) レベルは 1 段にな り ます。

° 16:1 マルチプレ ク サーは 4 つの LUT と MUXF7 および MUXF8 リ ソース を組み合わせた ものにイ ンプ リ メン ト でき、 ロ ジ ッ ク (LUT) レベルは 1 段にな り ます。

同じ CLB/ス ラ イ ス構造内の LUT、 MUXF7、 および MUXF8 を組み合わせて使用し た場合、 組み合わせ遅延はかな り小さ く な り 、 1 ロ ジ ッ ク レベル と同等と考え られます。 これを理解し てお く と、 リ ソース制御を改善でき、 データパスのロ ジ ッ ク レベルを理解および制御するのに役立ちます。

汎用ロ ジ ッ ク では、 レジス タへの入力の数を考慮し、 その数から LUT と ロ ジ ッ ク レベルの数を見積も る こ と ができます。 一般的には、 6 個以下の入力は、 常にロ ジ ッ ク レベル数 1 にな り ます。 理論上はロ ジ ッ ク レベル数 2 で 大 36 個の入力を処理でき ますが、 実際には 大約 20 個までの入力しか処理でき ない と考えて く ださい。 通常、 入力の数が多い と、 論理式が複雑にな り 、 必要な LUT およびロ ジ ッ ク レベルの数が増加し ます。

重要 : 使用可能なハード ウ ェ ア リ ソース を把握し、 それらがどれだけ効率的に使用されているか、 無駄になっていないかを、 設計の初期段階で理解し てお く と、 デザイ ン プロセスの後半のタ イ ミ ング ク ロージャでそれらが判明する よ り も、 修正し て結果を改善するのが簡単です。

UltraFast 設計手法ガイ ド 42UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 43: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

RAM および ROM の推論

RAM および ROM は複数の方法で指定でき ます。 それぞれに利点 と欠点があ り ます。

• 推論

利点 :

° 移植性が高い

° 読みやす く 理解しやすい

° 自己文書化

° シ ミ ュ レーシ ョ ンが高速

欠点 :

° 使用可能な RAM コ ンフ ィ ギュ レーシ ョ ンすべてにア ク セスでき ない可能性あ り

° 適な結果にな ら ない可能性あ り

推論は通常良い結果が得られるので推奨される方法ですが、 使用方法がサポー ト されない場合や、 パフ ォーマン ス、 エ リ ア、 または消費電力の結果が 適にな ら ない場合などは例外です。 このよ う な場合は、 別の方法を使用し て く ださい。

RAM を推論する場合は、 Vivado ツールに含まれる HDL テンプレー ト の使用をお勧めし ます。 前述し た よ う に、非同期 リ セ ッ ト を使用する と RAM の推論に影響が出るので、 使用し ないよ う にし て く ださい。 詳細は、「Vivado Design Suite HDL テンプレー ト の使用」 を参照し て く ださい。

• ザイ リ ン ク ス パラ メ ーター指定マ ク ロ (XPM) の使用

利点 :

° ザイ リ ン ク ス フ ァ ミ リ 間で移植可能

° シ ミ ュ レーシ ョ ンが高速

° 対称幅をサポー ト

° 予測可能な QoR

欠点 :

° 2016.2 リ リ ースではすべての機能がサポー ト されない (ECC および メ モ リ 初期化は使用不可)

XPM は、 ユーザーが変更でき ない固定のテンプレー ト を使用する こ と によ り 推論されます。 そのため、 テス トし て QoR を確実にする こ と が簡単であ り 、 標準の推論ではサポー ト でき ない機能をサポー ト でき ます。 標準の推論で必要な機能がサポー ト されない場合は、 XPM を使用する こ と をお勧めし ます。

• RAM プ リ ミ テ ィ ブの直接イ ン ス タ ンシエーシ ョ ン

利点 :

° イ ンプ リ メ ンテーシ ョ ンを詳細に制御可能

° ブロ ッ ク のすべての機能にア ク セス可能

欠点 :

° コード の移植性が低い

° 文字数が多 く 、 機能および意図を理解しに く い

UltraFast 設計手法ガイ ド 43UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 44: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• IP カ タ ロ グからのコ アの使用

利点 :

° 複数コ ンポーネン ト を使用する場合によ り 適な結果が得られる

° 指定および設定がシンプル

欠点 :

° コード の移植性が低い

° コ アを管理する必要があ る

RAM を イ ンプ リ メ ン ト する際のパフ ォーマンスに関する考慮事項

メ モ リ エレ メ ン ト を効率的に推論するには、 パフ ォーマン スに影響する次の要因について考慮する必要があ り ます。

• 専用ブロ ッ ク RAM か分散 RAM の使用

RAM は、 専用ブロ ッ ク RAM 内、 または分散 RAM を使用し て LUT 内にイ ンプ リ メ ン ト でき ます。 この選択は、リ ソース選択に影響するだけでな く 、 パフ ォーマン スおよび消費電力にも大き く 影響する こ と があ り ます。

通常、 RAM に必要なワード数が 初の基準と な り 、 64 ビ ッ ト のワード数までの メ モ リ 配列は通常 LUT RAM にイ ンプ リ メ ン ト されます (32 ビ ッ ト 以下のワード数は LUT ご と に 2 ビ ッ ト をマ ッ プ、 64 ビ ッ ト までのワード数は LUT と ごに 1 ビ ッ ト をマ ッ プ可能)。 使用可能な リ ソースおよび合成ツールの割 り 当てによ って、 よ り ワード数の多い RAM も LUT RAM にイ ンプ リ メ ン ト でき ます。

256 よ り も ワード数の多い メ モ リ 配列は、 通常ブロ ッ ク RAM メ モ リ にイ ンプ リ メ ン ト されます。 ザイ リ ン ク ス FPGA デバイ スには柔軟性があ るので、 このよ う な構造を さ まざまな幅およびワード数の組み合わせでマ ッ プでき ます。 コード の大容量 メ モ リ 配列宣言に使用されるブロ ッ ク RAM の数および構造を理解する ため、 これらの構成を知ってお く 必要があ り ます。

• 出力パイプラ イ ン レジス タの使用

出力レジス タの使用は優れたパフ ォーマン スのデザイ ンには必須で、 すべてのデザイ ンに推奨されます。 これによ り 、 ブロ ッ ク RAM の clock-to-out タ イ ミ ングが改善されます。 また、 ス ラ イ スの出力レジス タの clock-to-out タ イ ミ ングはブロ ッ ク RAM レジス タ よ り も高速なので、 2 つ目の出力レジス タがあ る と有益です。両方のレジス タ を使用する と、 読み出し レ イ テンシの合計は 3 にな り ます。 これらのレジス タ を推論する場合は、 レジス タが RAM 配列 と同じ階層レベルにあ る必要があ り ます。 これによ り 、 ツールでブロ ッ ク RAM 出力レジス タがプ リ ミ テ ィ ブに統合される よ う にな り ます。

• 入力パイプラ イ ン レジス タの使用

RAM 配列が大き く 、 多数のプ リ ミ テ ィ ブにマ ッ プ される場合、 ダ イのかな り のエ リ アに広がる可能性があ り 、これがア ド レ スおよび制御ラ イ ンでのパフ ォーマン ス問題につながる こ と があ り ます。 これらの信号の生成後、RAM の前にレジス タ を追加する こ と を考慮し て く ださい。 タ イ ミ ングを さ らに向上させるため、 フ ローの後の方で phys_opt_design を使用し て このレジス タ を複製し ます。 入力にロ ジ ッ クのないレジス タの方が簡単に複製でき ます。

UltraFast 設計手法ガイ ド 44UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 45: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ブロ ッ ク RAM 出力レジス タが推論されない状況

ザイ リ ン ク スでは、 メ モ リ と出力レジス タ をすべて 1 つの階層レベルに推論する こ と をお勧めし ます。 これが、 意図し たどお り に推論される よ う にするために も簡単な方法です。 ブロ ッ ク RAM 出力レジス タが推論されない状況が 2 つあ り ます。 1 つ目は出力に余分なレジス タが存在する状況、 2 つ目は読み出し ア ド レ ス レジス タが メ モ リ 配列の周囲で リ タ イ ミ ング される状況です。 これは、 シングル ポー ト RAM を使用し ている場合にのみ発生し ます。 これを次の図に示し ます。

これらの例の一部のバ リ エーシ ョ ンでも、 出力レジス タは推論されません。

X-Ref Target - Figure 3-13

図 3-13 : ブロ ッ ク RAM 出力レジス タの推論を妨げる余分な読み出し レジス タ を含む RAM

X-Ref Target - Figure 3-14

図 3-14 : ア ド レス レジス タのリ タ イ ミ ング前の RAM

UltraFast 設計手法ガイ ド 45UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 46: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

読み出しデータ レジス タの出力のフ ァ ンアウ ト を確認

2 つ目のレジス タが RAM プ リ ミ テ ィ ブに含まれる よ う にするには、 メ モ リ 配列からのデータ出力ビ ッ ト のフ ァ ンアウ ト を 1 にする必要があ り ます。 これを次の図に示し ます。

ア ド レス/読み出しデータ レジス タのリ セ ッ ト 信号を確認

メ モ リ 配列は リ セ ッ ト にし ないで く ださい。 RAM の出力にのみ リ セ ッ ト を使用でき ます。 出力レジス タ を RAM プリ ミ テ ィ ブ内に推論するには、 リ セ ッ ト は同期であ る必要があ り ます。 非同期 リ セ ッ ト を使用する と、 レジス タが RAM プ リ ミ テ ィ ブ内に推論されな く な り ます。 また、 出力信号は 0 にのみ リ セ ッ ト でき ます。

次の図に、 RAM および出力レジス タが正し く 推論される よ う にするために回避する必要のあ る状況を示し ます。

X-Ref Target - Figure 3-15

図 3-15 : 複数のフ ァ ンアウ ト によ り ブロ ッ ク RAM 出力レジス タが推論されない状況

X-Ref Target - Figure 3-16

図 3-16 : ア ド レス/読み出しデータ レジス タのリ セ ッ ト を確認

UltraFast 設計手法ガイ ド 46UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 47: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

レジス タのフ ィ ー ドバッ ク構造を確認

レジス タに次の図に示すよ う にフ ィ ード バッ ク が含まれないよ う にし ます。 加算器にレジス タの現在の値が必要なので、 このロ ジ ッ クは リ タ イ ミ ングできず、 ブロ ッ ク RAM に配置でき ません。 生成される回路は、 出力レジス タのないブロ ッ ク RAM です (DOA_REG および DOB_REG が 0)。

メ モ リ を UltraRAM ブロ ッ クにマ ッ プ

UltraRAM は、 1 つの ク ロ ッ ク を使用する 2 つのポー ト を持つ 4Kx72 メ モ リ ブロ ッ ク です。 こ のプ リ ミ テ ィ ブは、 一部の UltraScale+ デバイ スでのみ使用可能です。 これらのデバイ スでは、 ブロ ッ ク RAM リ ソースに加えて UltraRAM が含まれています。

デザイ ンで UltraRAM を使用するには、 次のいずれかの方法を使用し ます。

• HDL の メ モ リ 宣言に ram_style = "ultra" 属性を設定し て合成で UltraRAM が推論される よ う にする

• ザイ リ ン ク ス XPM_MEMORY プ リ ミ テ ィ ブを イ ン ス タ ンシエー ト する

• UltraRAM UNISIM プ リ ミ テ ィ ブを イ ン ス タ ンシエー ト する

下に示すコード例は、 HDL 言語テンプレー ト に含まれる XPM メ モ リ のイ ン ス タ ンシエーシ ョ ンです。 ハイ ラ イ トされている MEMORY_PRIMITIVE および READ_LATENCY が、 高パフ ォーマン スのために メ モ リ を UltraRAM に推論するための主要なパラ メ ーターです。

• MEMORY_PRIMITIVE = "ultra" は、 メ モ リ を UltraRAM と し て推論する よ う 指定し ます。

• READ_LATENCY は、 メ モ リ の出力に存在するパイプラ イ ン レジス タの数を定義し ます。

大型 メ モ リ は、 複数の UltraRAM セルを行 x 列の構造に構成し た UltraRAM マ ト リ ッ ク スにマ ッ プ されます。

マ ト リ ッ ク スは、 ワード数によ って、 1 列または複数列で作成でき ます。 URAM 列の高さのデフ ォル ト し きい値は 8 ですが、 CASCADE_HEIGHT 属性を使用し て制御でき ます。

1 列と複数列 UltraRAM マ ト リ ッ ク スの違いは、 次の とお り です。

• 1 列 UltraRAM マ ト リ ッ ク スでは、 フ ァ ブ リ ッ ク ロ ジ ッ ク を使用せずにビル ト イ ンのハード ウ ェア カス ケードが使用されます。

• 複数列 UltraRAM マ ト リ ッ ク スでは、 各列にビル ト イ ンのハード ウ ェ ア カス ケード が使用され、 列同士を接続するためにフ ァブ リ ッ ク ロ ジ ッ ク が使用されます。 パフ ォーマン ス を維持する ため、 パイプラ イ ンを追加する必要があ る場合があ り ます。 これは、 読み出し レ イ テンシを増加する こ と によ り 推論されます。 Vivado では、必要に応じ て これらのレジス タが UltraRAM に自動的に挿入されます。

X-Ref Target - Figure 3-17

図 3-17 : RAM ブロ ッ クの周辺にフ ィ ー ドバッ クがあるかど うかを確認

UltraFast 設計手法ガイ ド 47UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 48: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

上記の例では、 8 つの URAM を使用する 32K x 72 メ モ リ 構造が使用されています。 UltraRAM のパフ ォーマン ス を向上するには、 カ スケード チェーンにさ らにパイプラ イ ン レジス タ を追加する必要があ り ます。 これは、 読み出し レイ テンシを増加する こ と によ り 達成されます。

DSP および演算ブロ ッ ク を 適に推論するためのコー ド記述

ザイ リ ン ク ス FPGA DSP ブロ ッ ク では、 次のよ う な さ まざまなフ ァ ン ク シ ョ ンを実行でき ます。

• 乗算

• 加算および除算

• コ ンパレータ

• カ ウ ン ター

• 汎用ロ ジ ッ ク

DSP ブロ ッ クは複数のレジス タ段を使用し てパイプラ イ ン処理されてお り 、 全体的な リ ソースの消費電力を削減しながら高速動作が可能です。 コード を完全にパイプラ イ ン処理し て DSP48 にマ ッ プされる よ う にし、 すべてのパイプラ ン段が使用される よ う にする こ と をお勧めし ます。 この追加 リ ソースが柔軟に使用される よ う にするには、セ ッ ト 条件をフ ァ ン ク シ ョ ン内に含めないよ う にし て、 DSP48 に正し く マ ッ プされる よ う にし ます。

X-Ref Target - Figure 3-18

図 3-18 : RTL コー ド での UltraRAM の指定 (XPM を使用)

UltraFast 設計手法ガイ ド 48UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 49: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ザイ リ ン ク ス デバイ ス内の DSP48 ス ラ イ ス レジス タには、 リ セ ッ ト のみが含まれ、 セ ッ ト は含まれません。 そのため、 必要でない限 り 、 DSP48 ス ラ イ ス内にイ ンプ リ メ ン ト 可能な乗算器、 加算器、 カ ウ ン ター、 またはその他のロジ ッ ク の付近にセ ッ ト (信号適用時の値が 1) は記述し ないよ う にし て く ださい。 また、 DSP ス ラ イ スでは同期 リセ ッ ト 動作しかサポー ト されないので、 非同期 リ セ ッ ト は使用し ないで く ださい。 セ ッ ト または非同期 リ セ ッ ト を生成する コード では、 エ リ ア、 パフ ォーマン ス、 または消費電力の面で 適な結果が得られない可能性があ り ます。

多 く の DSP デザイ ンは、 ザイ リ ン ク ス アーキテ クチャに適し ています。 アーキテ クチャが 適に使用される よ う にするには、 アーキテ クチャの機能について理解し、 デザイ ン入力コード でこれらの リ ソースが活用される よ う にする必要があ り ます。

DSP48 ブロ ッ ク では、 符号付き演算のイ ンプ リ メ ンテーシ ョ ンが使用されます。 ザイ リ ン ク スでは、 リ ソース機能に適し た も効率的なマ ッ プを達成でき る よ う に、 HDL ソースに符号付きの値を記述する こ と をお勧めし ます。 符号な しのバス値がコード で使用された場合でも、 合成ツールでこの リ ソース を使用でき る可能性はあ り ますが、 符号な しから符号付きへの変換があ るため、 そのコ ンポーネン ト の完全なビ ッ ト 精度を得られない可能性があ り ます。

ターゲ ッ ト デザイ ンに多数の加算器が含まれる場合は、 デザイ ンを評価し て、 DSP48 ス ラ イ スの前置加算器と後置加算器がよ り 多 く 使用される よ う にし ます。 た と えば、 FIR フ ィ ルターを使用する場合は、 複数の加算器を連続し て使用する (加算器ツ リ ー ) よ り も、 加算器カスケード を使用し てシス ト リ ッ ク (対称) フ ィ ルターを構築でき ます。フ ィ ルターが対称の場合は、 専用の前置加算器を使用し て、 フ ァ ン ク シ ョ ンを よ り 少ない数の LUT と フ リ ッ プフロ ッ プに、 また、 よ り 少ない数の DSP ス ラ イ ス (ほ と んどの場合 リ ソース量は半分) に統合でき るかど う かを確認します。

加算器ツ リ ーが必要な場合は、 6 入力 LUT アーキテ クチャで、 単純な 2 入力加算と同じ リ ソース量を使用するだけで三項加算 (A + B + C = D) を効率的に作成でき ます。 これによ り 、 キ ャ リ ー ロ ジ ッ ク リ ソース を節約でき ます。 多く の場合、 これらの方法を使用する必要はあ り ません。

これらの機能を知ってお く と、 ト レード オフを前も って認識でき るので、 イ ンプ リ メ ンテーシ ョ ンが 初から よ りス ムーズで効率的に実行される よ う に RTL コード を記述でき ます。 ほ と んどの場合、 DSP リ ソース を推論する こ とをお勧めし ます。

DSP48 ス ラ イ スの機能に関する詳細、 およびデザイ ンの要件に合わせた この リ ソースの利用方法は、 『7 シ リ ーズ DSP48E1 ス ラ イ ス ユーザー ガイ ド』 (UG479) [参照 43] および 『UltraScale アーキテ クチャ DSP ス ラ イ ス ユーザー ガイ ド』 (UG579) [参照 44] を参照し て く ださい。

シフ ト レジス タおよび遅延ラ イ ンのコー ド記述

シフ ト レジス タには、 通常次の制御信号およびデータ信号の一部またはすべてが含まれます。

• ク ロ ッ ク

• シ リ アル入力

• 非同期セ ッ ト / リ セ ッ ト

• 同期セ ッ ト / リ セ ッ ト

• 同期/非同期パラ レル ロード

• ク ロ ッ ク イ ネーブル

• シ リ アル/パラ レル出力

ザイ リ ン ク ス FPGA デバイ スには専用の SRL16 および SRL32 リ ソース (LUT に組み込まれている ) が含まれてお り 、フ リ ッ プフ ロ ッ プ リ ソース を使用せずにシフ ト レジス タ を効率的に生成でき ます。 ただし、 これらのエレ メ ン ト ではレ フ ト シフ ト しかサポー ト されておらず、 使用可能な次の I/O 信号の数も制限されます。

• ク ロ ッ ク

• ク ロ ッ ク イ ネーブル

• シ リ アル データ入力

• シ リ アルデータ出力

UltraFast 設計手法ガイ ド 49UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 50: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

SRL には、 上記の信号に加え、 シフ ト レジス タの長さ を決定する ア ド レ ス入力 (SRL16 では A3、 A2、 A1、 A0 入力) があ り ます。 シフ ト レジス タの長さは、 固定する こ と も変動させる こ と もでき ます。

可変長モード では、 新しいア ド レ スが 4 ビ ッ ト の入力ア ド レ ス ピンに読み込まれる と、 LUT にア ク セスする時間分遅れて、 Q に新しいビ ッ ト 位置の値が出力されます。 SLR プ リ ミ テ ィ ブでは、 同期および非同期セ ッ ト / リ セ ッ ト 制御信号は使用でき ません。 ただし、 RTL コード に リ セ ッ ト が含まれる場合は、 ザイ リ ン ク ス合成ツールで SRL の周り に追加のロ ジ ッ ク が推論され、 リ セ ッ ト 機能が提供されます。

SRL を使用する際に 適なパフ ォーマン ス を達成するには、 シフ ト レジス タの 後の段を専用ス ラ イ ス レジス タにイ ンプ リ メ ン ト する こ と をお勧めし ます。 ス ラ イ ス レジス タ を使用し た方が SRL よ り も clock-to-out 時間が短 く なり 、 シフ ト レジス タ ロ ジ ッ ク からのパスにス ラ ッ ク が追加されます。 このレジス タがイ ン ス タ ンシエー ト されているか、 属性または階層境界を越え る 適化の制限によ り そのよ う なレジス タが推論でき ない場合を除き、 このレジス タは合成で自動的に推論されます。

ザイ リ ン ク スでは、 Vivado Design Suite の HDL テンプレー ト に記述されている HDL コーデ ィ ング ス タ イルを使用する こ と をお勧めし ます。

チッ プの配置を柔軟にするためにレジス タ を使用する場合は、 次の属性を指定し て SRL の推論をオフにし ます。

SHREG_EXTRACT = “no”

合成属性に関する詳細 と これらの属性の HDL コード での指定方法は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16] を参照し て く ださい。

推論されたレジス タ、 SRL、 および メ モ リの初期化

GSR ネ ッ ト は、 すべてのレジス タ を HDL コード で指定された初期値に初期化し ます。 初期値が指定されていない場合、 合成ツールによ り 初期ステー ト が 0 か 1 のいずれかに割 り 当て られます。 Vivado 合成では通常デフ ォル ト で 0 にな り ますが、 ワ ンホ ッ ト ステー ト マシン エン コード のよ う な例外も あ り ます。

推論された SRL メ モ リ またはその他の同期エレ メ ン ト にも定義された初期ステー ト があ り 、 コ ンフ ィ ギュ レーシ ョン時に関連するエレ メ ン ト にプロ グ ラ ム されます。

同期エレ メ ン ト はすべて適切に初期化される よ う にし て く ださい。 レジス タの初期化は、 主な FPGA 合成ツールすべてで完全に推論でき ます。 これによ り 、 初期化目的のみに リ セ ッ ト を追加する必要がな く な り 、 FPGA デバイ スでコ ンフ ィ ギュ レーシ ョ ン後にすべての同期エレ メ ン ト が既知の値で開始するので、 RTL コード が論理シ ミ ュ レーシ ョ ンのイ ンプ リ メ ン ト 済みデザイ ン と さ らに一致する よ う にな り ます。

レジス タおよびラ ッチの初期ステー ト を指定する VHDL コード例 1

signal reg1 : std_logic := ‘0’; -- specifying register1 to start as a zerosignal reg2 : std_logic := ‘1’; -- specifying register2 to start as a onesignal reg3 : std_logic_vector(3 downto 0):=“1011”; -- specifying INIT value for 4-bit register

レジス タおよびラ ッチの初期ステー ト を指定する Verilog コード例 1

reg register1 = 1’b0; // specifying regsiter1 to start as a zeroreg register2 = 1’b1; // specifying register2 to start as a onereg [3:0] register3 = 4’b1011; //specifying INIT value for 4-bit register

レジス タおよびラ ッチの初期ステー ト を指定する Verilog コード例 2

Verilog では、 initial 文も使用でき ます。

reg [3:0] register3;initial beginregister3= 4’b1011;

end

UltraFast 設計手法ガイ ド 50UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 51: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

イ ンス タ ンシエー ト するか推論するかの判断

ザイ リ ン ク スでは、 デザイ ンを RTL で記述し、 合成ツールでコード が FPGA デバイ スで使用可能な リ ソースにマ ップ される よ う にする こ と をお勧めし ています。 コード が移植しやす く なるだけでな く 、 合成ツールで推論された ロジ ッ クすべてが認識され、 フ ァ ン ク シ ョ ン間の 適化が実行される よ う にな り ます。 これらの 適化には、 ロ ジ ック複製、 再構築 と統合、 レジス タ間のロ ジ ッ ク遅延のバラ ン ス を取る ための リ タ イ ミ ングなどが含まれます。

合成ツールの 適化

デバイ スのラ イブラ リ セルがイ ン ス タ ンシエー ト される場合、 合成ツールではそれらはデフ ォル ト では 適化されません。 デバイ スのラ イブラ リ セルを 適化する よ う 指定し た場合でも、 合成ツールで RTL を使用し た場合と同じレベルの 適化は実行でき ません。 通常はこれらのセルに入力されるパスおよびセルから出力されるパスの 適化のみが実行され、 セルを通過するパスは 適化されません。

た と えば、 SRL がイ ン ス タ ンシエー ト されていて、 それが長いパスの一部であ る場合、 こ のパスがボ ト ルネ ッ ク となる可能性があ り ます。 SRL の clock-to-out 遅延は通常のレジス タの遅延よ り も大き く な り ます。 SRL によ るエ リ ア削減を保持し ながら clock-to-out パフ ォーマン ス を改善する ため、 実際に必要な遅延よ り も遅延が 1 つ少ない SRL が作成され、 後の段は標準フ リ ッ プフ ロ ッ プにイ ンプ リ メ ン ト されます。

イ ンス タ ンシエーシ ョ ンが必要な場合

合成ツールのマ ッ プでタ イ ミ ング、 消費電力、 エ リ ア制約が満た されない場合、 または FPGA デバイ ス内の特定機能を推論でき ない場合は、 イ ン ス タ ンシエーシ ョ ンが推奨されます。

イ ン ス タ ンシエーシ ョ ンする と、 ユーザーが合成ツールを完全に制御でき ます。 た と えば、 パフ ォーマン ス を改善するために、 通常合成ツールで選択される LUT と キ ャ リ ー チェーン エレ メ ン ト の組み合わせではな く 、 LUT のみを使用する コ ンパレータ を イ ンプ リ メ ン ト でき ます。

デバイ スで使用可能な複雑な リ ソース を使用でき る よ う にするには、 イ ン ス タ ンシエーシ ョ ンが唯一の方法であ るこ と も あ り ます。 これは、 次が原因です。

• HDL 言語の制限

た と えば、 VHDL でダブル データ レー ト (DDR) 出力を記述する こ と はでき ません。 これは、 2 つの別のプロセスで同じ信号を駆動する必要があ るからです。

• ハード ウ ェ アの複雑さ

合成可能なコード を作成する よ り も、 I/O SerDes エレ メ ン ト を イ ン ス タ ンシエー ト する方が簡単です。

• 合成ツールの推論の制限

た と えば、 合成ツールには現在の と こ ろ RTL 記述からハード FIFO を推論する機能はないので、 イ ン ス タ ンシエー ト する必要があ り ます。

ザイ リ ン ク ス プ リ ミ テ ィ ブを イ ン ス タ ンシエー ト する と決めた場合は、 ターゲ ッ ト アーキテ クチャ用のユーザー ガイ ドおよびラ イブラ リ ガイ ド を参照し、 コ ンポーネン ト の機能、 コ ンフ ィ ギュ レーシ ョ ン、 接続を完全に理解し て く ださい。

推論 と イ ン ス タ ンシエー ト のどち らでも、 Vivado Design Suite 言語テンプレー ト からのテンプレー ト を使用するこ と をお勧めし ます。

ヒ ン ト : - 可能なかぎ り 機能を推論し て く ださい。- 合成可能な RTL コード で要件が満た されない場合は、 コード をデバイ ス ラ イブラ リ コ ンポーネン ト のイ ン ス タ ン

シエーシ ョ ン と置き換え る前に、 要件を見直し て く ださい。- 一般的な Verilog および VHDL ビヘイ ビアー構文を記述する場合や、 プ リ ミ テ ィ ブを イ ン ス タ ンシエー ト する必要

があ る場合は、 Vivado Design Suite 言語テンプレー ト を考慮し て く ださい。

UltraFast 設計手法ガイ ド 51UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 52: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

パフ ォーマンスを向上するためのコーデ ィ ング ス タ イル

高パフ ォーマン スのデザイ ンでは、 このセ ク シ ョ ンで説明される コーデ ィ ング手法を使用する こ と によ り 、 発生する可能性のあ る タ イ ミ ング問題を軽減でき ます。

ク リ テ ィ カル パスでのフ ァ ンアウ ト の大きいネ ッ ト

フ ァ ンア ウ ト の大きいネ ッ ト は、 デザイ ン プロセスの初期段階での方が簡単に処理でき ます。 フ ァ ンア ウ ト が大きすぎ る原因は、 パフ ォーマン ス要件およびパスの構造にあ る こ と がよ く あ り ます。 フ ァ ンアウ ト が大きいネ ッ ト の問題を解決するには、 次の手法を使用でき ます。

推奨 : ロード が何千も あ る よ う なネ ッ ト を早期に調べ、 デザイ ン全体への影響を評価し て く ださい。

ネ ッ ト を必要と し ないデザイ ン部分でのロー ドの削減

フ ァ ンア ウ ト の大きい制御信号の場合、 デザイ ンのコード記述されたすべての部分でそのネ ッ ト が必要かど う かを判断し ます。 ロード を減らす と、 タ イ ミ ング問題を大幅に改善でき る こ と があ り ます。

レジス タの複製

レジス タ を複製する と、 レジス タのコ ピーを作成する こ と によ り 信号のフ ァ ンアウ ト が削減され、 ク リ テ ィ カル パス を高速化でき ます。 これによ り 、 イ ンプ リ メ ンテーシ ョ ン ツールでのさ まざまな ロードおよび関連ロ ジ ッ ク の配置配線が柔軟にな り ます。 合成ツールでは、 この手法が広範に使用されます。

タ イ ミ ング レポー ト に配線遅延が大き く フ ァ ンア ウ ト の大きいネ ッ ト がク リ テ ィ カル パス と し てレポー ト されたら、 合成ツールで複製制約を指定するか、 レジス タの手動複製を考慮し てみて く ださい。 手動で複製し たレジス タが合成ツールの 適化で削除されないよ う にするには、 別の合成制約を追加する必要のあ る こ と がよ く あ り ます。

ほ と んどの合成ツールでは、 フ ァ ンアウ ト し きい値制限を使用し て、 レジス タ を複製するかど う かが自動的に決定されます。 このグ ローバルし きい値を調整する と、 フ ァ ンアウ ト の大きいネ ッ ト が自動的に複製される よ う にな りますが、 どのレジス タ を複製するかなどの詳細な制御はでき ません。 特定のレジス タ または階層レベルに属性を適用し て、 複製可能なレジス タ と不可能なレジス タ を指定する こ と をお勧めし ます。 レジス タではな く LUT1 が複製された場合は、 属性または制約が間違って適用されています。

ク ロ ッ ク ド メ イ ンを またがる信号を同期するのに使用されたレジス タは複製し ないよ う にし て く ださ い。 これらのレジス タに ASYNC_REG 属性を適用する と、 ツールでこれらのレジス タが複製されな く な り ます。 同期チェーンのフ ァ ンア ウ ト が大き く 、 タ イ ミ ングを満たすために複製が必要な場合は、 後のフ リ ッ プフ ロ ッ プの ASYNC_REG 属性を削除し て、 複製でき る よ う にし ます。 ただし、 このレジス タは、 同期チェーンの一部ではな く な り ます。

UltraFast 設計手法ガイ ド 52UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 53: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の表に、 デザイ ンで許容される フ ァ ンアウ ト 数のガイ ド ラ イ ンを示し ます。

ヒ ン ト : フ ァ ンアウ ト の大きい信号によ り デザイ ン パフ ォーマン スが制限されている と タ イ ミ ング レポー ト に示される場合は、 それら を複製する こ と を考慮し て く ださい。 phys_opt_design コマン ド を使用し た方がレジス タ を複製する よ り も良い結果が得られる こ と があ り ます。 詳細は、 第 4 章の 「MAX_FANOUT」 を参照し て く ださい。

ヒ ン ト : レジス タ を複製する際は、 <original_name>_a、 <original_name>_b のよ う な名前を付けて複製された ものであ る こ と がわかる よ う にし、 RTL コード が管理しやす く なる よ う にし て く ださい。

パイプ ラ イ ンに関する注意事項

パフ ォーマン ス を向上するには、 長いデータパス を数段のロ ジ ッ ク レベルを使用し て再構築し、 複数のク ロ ッ ク サイ クルに分散する と い う 方法も あ り ます。 この方法を使用する と、 ク ロ ッ ク サイ クルが速 く な り 、 データ スループ ッ ト が増加し ますが、 レ イ テンシが増加し、 パイプラ イ ン オーバーヘッ ド ロ ジ ッ ク の管理が必要にな り ます。

FPGA デバイ スにはレジス タが多 く 含まれるので、 追加レジス タおよびロ ジ ッ クは通常問題と な り ません。 ただし、データパスは複数サイ クルにまたがるので、 残 り のデザイ ンに特に注意し て、 追加されたパス レ イ テンシを把握する必要があ り ます。

SSI デバイスのパイプ ラ イ ンを考慮

SLR の境界を またぐ レジス タ間の接続を高パフ ォーマン スにするには、 HDL コード に適切なパイプラ イ ン処理を記述し て、 合成で制御する必要があ り ます。 これによ り 、 シフ ト レジス タ LUT (SRL) の推論およびその他の 適化が、SLR 境界を またぐ必要のあ る ロ ジ ッ ク パスでは実行されな く な り ます。 この方法でコード を変更し、 Pblock を適切に使用する こ と によ り 、 SLR の境界を超え る箇所が定義されます。

パイプ ラ イ ンを前も って考慮

パイプラ イ ンについて後で考慮するのではな く 、 前も って考慮し てお く こ と で、 タ イ ミ ング ク ロージ ャ を改善しやす く な り ます。 特定のパスに後の段階でパイプラ イ ンを追加する と、 通常はレ イ テンシの差が回路全体に伝搬されます。 そのため、 少し と思われた変更によ り 、 コード の一部を大き く 設計し直す必要が出て く る こ と があ り ます。

パイプラ イ ンを使用するかど う かをデザイ ンの初期段階で判断し てお く と、 タ イ ミ ング ク ロージ ャ、 イ ンプ リ メ ンテーシ ョ ンの実行時間 (タ イ ミ ング問題を解決しやす く なる )、およびデバイ ス消費電力 (ロ ジ ッ ク の切 り 替えが減る ) が大幅に改善される こ と がよ く あ り ます。

表 3-1 : フ ァ ンアウ ト のガイ ド ラ イ ン

条件 フ ァ ンアウ ト < 5000 フ ァ ンアウ ト < 200 フ ァ ンアウ ト < 100

低周波数 1 ~ 125MHz

同期ロ ジ ッ ク間のロ ジ ッ ク レベルは少数

大周波数でのロ ジ ッ ク レベル数は 13 未満

N/A N/A

中周波数 125 ~ 250MHz

デザイ ンでタ イ ミ ングが満たされない場合、 フ ァ ンア ウ トまたはロ ジ ッ ク レベル数を削減する必要があ る場合あ り

大周波数でのロ ジ ッ ク レベル数は 6 未満 ( ド ラ イバーおよびロード タ イプがパフ ォーマン スに影響)

N/A

高周波数 > 250 MHz

ほ と んどのデザイ ンで推奨されない

高速の場合、 通常ロ ジ ッ ク レベル数を少な く する こ と が 必要

ア ド バン ス パイプラ イ ン手法が必要。 注意し て ロ ジ ッ ク複製。 コ ンパク ト なフ ァ ン クシ ョ ン。 ロ ジ ッ ク レベル数を少な く する こ と が必要 ( ド ライバーおよびロード タ イプがパフ ォーマン スに影響)

UltraFast 設計手法ガイ ド 53UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 54: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

推論ロジ ッ ク をチ ェ ッ ク

デザイ ンを コード記述する際には、 推論される ロ ジ ッ ク に注意し て く ださい。 次の状況で、 パイプラ イ ンを さ らに考慮する必要があ るかど う かを調べます。

• フ ァ ン イ ンの大きいロ ジ ッ ク コーン

た と えば、 出力の算出に大き なバスや複数の組み合わせ信号を必要 とする コード です。

• 配置に制限があ る、 clock-to-out が遅い、 またはセ ッ ト ア ッ プ要件が大きいブロ ッ ク

た と えば、 出力レジス タのないブロ ッ ク RAM または正し く パイプラ イ ン されていない演算コード です。

• 長い配線の原因 と なる指定配線

た と えば、 ピン配置によ り 配線がチッ プを横断する必要があ る場合、 高速動作を可能にする ためにパイプラ インが必要です。

次の図では、 ク ロ ッ ク速度が次によ って制限されます。

• ソース フ リ ッ プフ ロ ッ プの clock-to-out タ イ ム

• 4 つのロ ジ ッ ク レベルを介し た ロ ジ ッ ク遅延

• 4 個のフ ァ ン ク シ ョ ン ジェネレーターに関連し た配線

• デステ ィ ネーシ ョ ン レジス タのセ ッ ト ア ッ プ タ イ ム

次の図は図 3-19 と同じデータパスの例です。 フ リ ッ プフ ロ ッ プがフ ァ ン ク シ ョ ン ジェネレーターと同じ ス ラ イ スに含まれているので、 ク ロ ッ ク速度はソース フ リ ッ プフ ロ ッ プの clock-to-out 時間、 1 つのロ ジ ッ ク レベルを介する ロジ ッ ク遅延、 配線遅延、 デステ ィ ネーシ ョ ン レジス タのセ ッ ト ア ッ プ タ イ ムによ って制限されます。 この例では、パイプラ イ ン処理前よ り システム ク ロ ッ ク が高速にな り ます。

X-Ref Target - Figure 3-19

図 3-19 : パイプラ イ ン処理前

D QFunction

GeneratorFunction

GeneratorFunction

GeneratorFunction

GeneratorD Q

Slow_ClockX13429

X-Ref Target - Figure 3-20

図 3-20 : パイプ ラ ン処理後

D Q FunctionGenerator

FunctionGenerator

FunctionGenerator

FunctionGenerator

D Q

Fast_Clock

D Q D Q D Q

X13430

UltraFast 設計手法ガイ ド 54UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 55: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

パイプ ラ イ ン処理が必要かど うかの決定

大き な組み合わせロ ジ ッ ク パス を特定し、 よ り 小さ なパスに分割し、 これらのパス間にレジス タ段を挿入し て、 各パイプラ イ ン段をバラ ン ス調整するのが、 よ く 使用されるパイプラ イ ン処理手法です。

デザイ ンにパイプラ イ ン処理が必要かど う かを決定するには、 ク ロ ッ クの周波数 と各ク ロ ッ ク グループに分散される ロ ジ ッ ク量を確認し ます。 Tcl コマン ド の report_design_analysis を使用する と、 各ク ロ ッ ク グループのロジ ッ ク レベルの分散を判断でき ます。

ヒ ン ト : デザイ ン解析レポー ト には、 0 ロ ジ ッ ク レベルのパス数も示されるので、 コード のどの部分を修正すればいいかを判断でき ます。

レ イテンシのバラ ンス

レ イ テンシのバラ ン ス を調整するには、 パイプラ イ ン段をデータ パスではな く 、 制御パスに追加し ます。 データ パスには、 よ り 幅の広いバスが含まれるので、 使用される フ リ ッ プフ ロ ッ プ と レジス タ リ ソースの数が増えます。

た と えば、 128 ビ ッ ト のデータ パス と 2 段のレジス タがあ り 、 レ イ テンシ要件が 5 サイ クルの場合は、 レジス タ を 3 段 (3 x 128 = 384 フ リ ッ プフ ロ ッ プ) 追加でき ます。 または、 制御ロ ジ ッ ク を使用し てデータ パス を イネーブルにします。 5 段の単一ビ ッ ト のパイプラ イ ンを使用し て、 データ パスのフ リ ッ プフ ロ ッ プを イネーブルにし ます。

注記 : こ の例は、 特定のデザイ ンの場合にのみ可能です。 た と えば、 中間データ パス フ リ ッ プフ リ ッ プからのフ ァンア ウ ト があ る場合、 2 段だけでは動作し ません。

推奨 : FPGA の 適な LUT:FF 比は 1:1 です。 デザイ ンのフ リ ッ プフ ロ ッ プの比率が大幅に高い場合、 ス ラ イ スにパッ ク される未関係ロ ジ ッ ク の量が増え、 配線の複雑性が増し、 QoR (結果の品質) が低下し ます。

パイプ ラ ン段数と SRL の使用量のバラ ンス

パイプラ イ ン段が多い場合は、 でき るだけ多 く を SRL にマ ッ プし ます。 この方法では、 デバイ スのフ リ ッ プフ ロ ップ/レジス タが保持されます。 た と えば、 深さ 9 のパイプラ イ ン段 (データ幅 32) の場合、 各ビ ッ ト に 9 個のフ リ ッ プフ ロ ッ プ/レジス タ、 合計 32 x 9 = 288 個のフ リ ッ プフ ロ ッ プが使用されます。 同じ構造を SRL にマ ッ プする と、 32 個の SRL が使用されます。 各 SRL には、 5’b01000 に接続されたア ド レ ス ピン (A4A3A2A1A0) があ り ます。

合成で SRL を推論する方法は、 次のよ う に複数あ り ます。

• SRL

• REG -> SRL

• SRL -> REG

• REG -> SRL -> REG

これらの構造は、 次のよ う に RTL コード で srl_style 属性を使用する と作成でき ます。

• (* srl_style = “srl” *)

• (* srl_style = “reg_srl” *)

• (* srl_style = “srl_reg” *)

• (* srl_style = “reg_srl_reg” *)

よ り 深いパイプラ イ ン段で異なる イネーブル/ リ セ ッ ト 制御信号を使用し て し ま う と い う のが、 よ く あ る間違いです。次は、 深さ 9 のパイプラ イ ン段で使用される リ セ ッ ト (3、 4、 8 つ目のパイプラ イ ン段に接続) の例です。 この構造では、 SRL プ リ ミ テ ィ ブに リ セ ッ ト ピンがあ るので、 パイプラ イ ン段はレジス タのみにマ ッ プ されます。

FF->FF->FF(reset) -> FF->FF(reset)->FF->FF->FF(reset)->FF

UltraFast 設計手法ガイ ド 55UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 56: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

SRL 推論の利点を生かすには、 次を実行し ます。

• パイプラ イ ン段用の リ セ ッ ト がないよ う にし ます。

• リ セ ッ ト が本当に必要かど う かを解析し ます。

• フ リ ッ プフ ロ ッ プの 1 つ (た と えばパイプラ イ ンの 初または 後の段) で リ セ ッ ト を使用し ます。

不要なパイプ ラ イ ンを回避

使用率の高いデザイ ンの場合、 パイプラ イ ン処理が多い と問題 と なる こ と があ り ます。 た と えば、 不要なパイプライ ン段があ る と、 フ リ ッ プフ ロ ッ プ と配線 リ ソースの数が増加し、 使用率が高い場合に配置配線が制限される こ とがあ り ます。

注記 : 0/1 レベルのロ ジ ッ ク を含むパスが多 く あ る場合は、 それが意図し た ものであ る こ と を確認し て く ださい。

パイプ ラ イ ン マク ロ プ リ ミ テ ィ ブを考慮

ターゲ ッ ト アーキテ クチャに基づいて、 パイプラ イ ン処理が十分使用されている場合は、 ブロ ッ ク RAM や DSP などの専用プ リ ミ テ ィ ブは 500MHz 以上で動作でき ます。 周波数が高いデザイ ンでは、 これらのブロ ッ ク内のすべてのパイプラ イ ンを使用する こ と をお勧めし ます。

消費電力を向上するためのコーデ ィ ング ス タ イル

消費電力を向上するためのコーデ ィ ング ス タ イルは、 次の とお り です。

ク ロ ッ ク またはデータパスにゲー ト を付ける

ク ロ ッ ク またはデータパスにゲー ト を付けるのは、 これらのパスの結果が使用されない場合に、 遷移を停止する ためによ く 使用される方法です。 ク ロ ッ ク にゲー ト を付ける と、 駆動されているすべての同期ロード が停止され、データパス信号が切 り 替わら な く な り 、 グ リ ッチが伝搬されな く な り ます。

ツールは、 記述およびネ ッ ト リ ス ト を解析し て問題を検出し ます。 ただし、 ツールでは認識されず、 設計者のみが指定可能なアプ リ ケーシ ョ ン、 データ フ ロー、 および依存性に関する情報があ る場合も あ り ます。

ゲー ト で制御するエレ メ ン ト の数を 大にする

ゲーテ ィ ング信号によ り 制御するエレ メ ン ト の数を 大限にし ます。 た と えば、 各ロード を ク ロ ッ ク イネーブル信号でゲーテ ィ ングする よ り も、 ク ロ ッ ク ド メ イ ンをその駆動ソース をゲーテ ィ ングする方が消費電力の節約量が多く な り ます。

専用ク ロ ッ ク バッ フ ァーのク ロ ッ ク イネーブル ピンを使用する

ア ク テ ィ ビテ ィ またはク ロ ッ ク ツ リ ーの使用を 小限に抑える ためにク ロ ッ ク をゲーテ ィ ング し た り ク ロ ッ ク にマルチプレ ク サーを付ける場合は、 専用ク ロ ッ ク バッ フ ァーのク ロ ッ ク イネーブル ポー ト を使用し ます。 LUT を挿入し た り 、 その他の方法でク ロ ッ ク信号をゲーテ ィ ングする と、 消費電力 と タ イ ミ ングの面で効率的ではあ り ません。

制御セ ッ ト に注意する

前述し た よ う に、 制御セ ッ ト 数は 小限にする必要があ り ます。 ザイ リ ン ク スでは、 ゲーテ ッ ド ク ロ ッ ク が多数の同期エレ メ ン ト を駆動する場合にのみ、 ク ロ ッ ク ゲーテ ィ ングを推奨し ています。 そ う でない場合、 フ リ ッ プフロ ッ プが無駄になる可能性があ り ます。 ゲーテ ィ ング信号を追加し てデータ またはク ロ ッ ク パス を停止するには、追加のロ ジ ッ クおよび配線 (そし てそれらの消費電力) が必要と な る可能性があ り ます。 追加構造の数を 小限に抑えて、 本来の目的に反し ないよ う にし ます。

UltraFast 設計手法ガイ ド 56UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 57: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

推奨 : 粒度が細かすぎ る ク ロ ッ ク ゲーテ ィ ングは使用し ないで く ださい。 各ゲーテ ッ ド ク ロ ッ クは、 多数の同期エレ メ ン ト に影響し ます。

プ ラ イオ リ テ ィ エン コーダーが不要な場合は case ブロ ッ ク を使用する

プラ イオ リ テ ィ エン コーデ ィ ングが不要な場合は、 if-then-else ブロ ッ クや三項演算の代わ り に case ブロ ッ クを使用し ます。

効率の悪いコード例

if (reg1) val = reg_in1;else if (reg2) val = reg_in2;else if (reg3) val = reg_in3;else val = reg_in4;

正しいコード例

(* parallel_case *) casex ({reg1, reg2, reg3})1xx: val = reg_in1 ;01x: val = reg_in2 ;001: val = reg_in3 ;default: val = reg_in4 ;endcase

ブロ ッ ク RAMでのパフ ォーマンス と消費電力の ト レー ド オフ

特定の要件に対応するため、 メ モ リ 構造を分割する方法が複数あ り ます。 デザイ ンの要件は、 パフ ォーマン ス、 消費電力、 またはその両方の組み合わせです。

次の例では、 要件を達成するために生成可能な異なる構造を示し ます。 UltraScale 以降のデバイ スでは、 パフ ォーマン ス と消費電力の ト レード オフのため、 CASCADE_HEIGHT 属性を使用し てブロ ッ ク RAMのカス ケード を制限できます。 この属性の使用方法および引数は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16] を参照し てく ださい。

次の図に、 高パフ ォーマン ス を達成するための 32K x 32 メ モ リ 構造の例を示し ます。

X-Ref Target - Figure 3-21

図 3-21 : 1K x 32 と CASCADE_HEIGHT=1 を使用し た 32K x 32 の RTL記述

UltraFast 設計手法ガイ ド 57UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 58: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

このイ ンプ リ メ ンテーシ ョ ンでは、 各読み出し または書き込みですべてのブロ ッ ク RAM が常にイ ネーブルになっているので、 消費電力が増加し ます。

次の図に、 低消費電力を達成するためにすべてのブロ ッ ク RAMをカ スケード接続し た例を示し ます。

このイ ンプ リ メ ンテーシ ョ ンでは、 各ユニ ッ ト から一度に選択されるブロ ッ ク RAM は 1 つなので、 ダ イナ ミ ッ ク な消費電力はほぼ半分にな り ます。 UltraScale デバイ スのブロ ッ ク RAM には専用のカ スケード MUX と配線構造があり 、 複数のブロ ッ ク RAM プ リ ミ テ ィ ブを必要とする幅が広 く ワード数の多い メ モ リ を、 電力効率の高い構造で作成でき ます。

次の図に、 カ スケード接続を制限し、 消費電力 と パフ ォーマン スの両方を達成する例を示し ます。

このイ ンプ リ メ ンテーシ ョ ンでは、 一度に選択されるブロ ッ ク RAMは 8 個なので、 ダ イナ ミ ッ ク消費電力は高パフ ォーマン ス構造よ り も低 く な り ますが、 低消費電力構造よ り は高 く な り ます。 この構造の利点は、 ク リ テ ィ カル パスに 32 個のブロ ッ ク RAM が含まれている低消費電力構造 と比較し て、 カ スケード パスに使用されるブロ ッ ク RAMは 4 つのみであ り 、 ターゲ ッ ト 周波数が高 く なる こ と です。

X-Ref Target - Figure 3-22

図 3-22 : 1K x 32 と CASCADE_HEIGHT=32 を使用し た 32K x 32 の RTL記述

X-Ref Target - Figure 3-23

図 3-23 : 8K x 4 と CASCADE_HEIGHT=4 を使用し た 32K x 32 の RTL記述

UltraFast 設計手法ガイ ド 58UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 59: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

RTL DRC の実行

HDL で発生する可能性のあ る コード の問題を特定する ための RTL DRC ルールがあ り ます。 これらの DRC チェ ッ クを実行するには、 Flow Navigator で [Elaborated Design] → [Report Methodology] を ク リ ッ クするか、 Tcl コマン ド プロンプ ト で report_methodology を実行し ます。 これらのチェ ッ クは、 Flow Navigator の [Open Elaborated Design] をク リ ッ ク し て開いたエラ ボレー ト 済みデザイ ンで実行でき ます。

ク ロ ッキング ガイ ド ラ イ ン

FPGA アーキテ クチャには、 それぞれク ロ ッ ク専用の リ ソースがい く つか含まれています。 ご使用の FPGA アーキテクチャのク ロ ッ ク リ ソース を理解し てお く と、 これらの リ ソース を 適に使用でき る よ う にク ロ ッ キングをプラ ンニングでき ます。 ほ と んどのデザイ ンではこれらの詳細に注意する必要はあ り ませんが、 ユーザーが配置を制御し、各ク ロ ッ ク ド メ イ ンのフ ァ ンア ウ ト について理解し ている場合は、 次のク ロ ッ ク の詳細に基づいて、 さ まざまな選択肢を試すこ と ができ ます。 これらのク ロ ッ ク リ ソースのいずれかを使用する場合は、 対応する ク ロ ッ ク エレ メ ント を明示的にイ ン ス タ ンシエー ト する必要があ り ます。

UltraScale デバイスのク ロ ッキング

UltraScale デバイ スには、 それ以前のデバイ ス アーキテ クチャ と は異なる ク ロ ッ キング構造が含まれてお り 、 グ ローバル ク ロ ッ ク と リ ージ ョ ナル ク ロ ッ ク の違いがあいまいになっています。 UltraScale デバイ スには 7 シ リ ーズのよ うに リ ージ ョ ナル ク ロ ッ ク バッ フ ァーはな く 、 ロード がローカル/ リ ージ ョ ナルかグ ローバルかにかかわらず、 共通のバッ フ ァーおよびク ロ ッ ク配線構造が使用されます。

UltraScale デバイ スには、 よ り 小さい固定サイ ズのク ロ ッ ク領域が含まれ、 ク ロ ッ ク領域の幅はデバイ ス幅の半分ではあ り ません。 各行のク ロ ッ ク領域の数は、 UltraScale デバイ ス ご と に異な り ます。 各ク ロ ッ ク領域には、 24 の縦方向/横方向の配線 ト ラ ッ ク と 24 の縦方向/横方向の分配 ト ラ ッ ク に分割される ク ロ ッ ク ネ ッ ト ワーク配線が含まれます。 次の図に、 36 個の ク ロ ッ ク領域 (6 列 x 6 行) を含むデバイ ス を表示し ます。 同等の 7 シ リ ーズ デバイ スには、 12 個のク ロ ッ ク領域 (2 列 x 6 行) が含まれます。

UltraFast 設計手法ガイ ド 59UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 60: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ キング アーキテ クチャは、 あ る配置のク ロ ッ ク バッ フ ァー と ロード を接続するのに必要な ク ロ ッ ク リ ソースのみが使用される よ う に設計されているので、 ロード のないク ロ ッ ク領域で リ ソースが無駄に使用される こ と はあり ません。 ク ロ ッ ク リ ソースが効率的に使用される と、 アーキテ クチャでよ り 多 く のデザイ ン ク ロ ッ ク をサポー トでき る よ う になるほか、 パフ ォーマン スおよび消費電力のためにク ロ ッ ク特性も改善されます。 ク ロ ッ ク タ イプおよび関連のク ロ ッ ク構造は、 ド ラ イバーおよび使用法によ って次の主なカテゴ リ に分類されます。

• 高速 I/O ク ロ ッ ク

これらのク ロ ッ クは高速 SelectIO™ イ ン ターフ ェ イ スのビ ッ ト ス ラ イ ス ロ ジ ッ ク に関連付け られてお り 、 PLL によ り 生成され、 専用の低ジ ッ ターの リ ソース を介し て高速 I/O イ ン ターフ ェ イ スのビ ッ ト ス ラ イ ス ロ ジ ッ クに配線されます。 通常、 こ のク ロ ッ キング構造は メ モ リ IP や High Speed SelectIO Wizard などのザイ リ ン ク ス IP で作成されて制御され、 ユーザーは指定し ません。

• 汎用ク ロ ッ ク

これらのク ロ ッ クは、 ほ と んどのク ロ ッ ク ツ リ ー構造で使用され、 GCIO パッ ケージ ピン、 MMCM/PLL、 またはフ ァブ リ ッ ク ロ ジ ッ ク セル (通常は推奨されない) によ り 供給されます。 汎用ク ロ ッ キング ネ ッ ト ワークは、I/O 列を含むどのク ロ ッ ク領域でも使用可能な BUFGCE/BUFGCE_DIV/BUFGCTRL バッ フ ァーで駆動する必要があ り ます。 各ク ロ ッ ク領域で 24 個までの固有のク ロ ッ ク をサポー ト でき、 ほ と んどの UltraScale デバイ スでク ロ ッ ク ト ポロ ジ、 フ ァ ンア ウ ト 、 ロード配置によ って 100 個以上の ク ロ ッ ク ツ リ ーをサポー ト 可能です。

X-Ref Target - Figure 3-24

図 3-24 : UltraScale デバイスのク ロ ッ ク領域タ イル

UltraFast 設計手法ガイ ド 60UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 61: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• ギガビ ッ ト ト ラ ンシーバー (GT) ク ロ ッ ク

ギガビ ッ ト ト ラ ンシーバー (GTH または GTY) の送信ク ロ ッ ク、 受信ク ロ ッ ク、 および基準ク ロ ッ ク では、 GT を含むク ロ ッ ク領域の専用ク ロ ッ キングが使用されます。 GT ク ロ ッ ク を使用する と、 次を達成でき ます。

° BUFG_GT バッ フ ァーを使用して汎用ク ロ ッ キング ネ ッ ト ワーク を駆動し、 フ ァブ リ ッ ク内のロード を接続

° 同じ または異なる ク ワ ッ ド の複数 ト ラ ンシーバー間でク ロ ッ ク を共有

ク ロ ッ ク プ リ ミ テ ィ ブ

ほ と んどのク ロ ッ クは、 グ ローバル ク ロ ッ ク兼用 I/O (GCIO) ピンを介し てデバイ スに入力されます。 これらのクロ ッ クは、 ク ロ ッ ク バッ フ ァーを介し て ク ロ ッ ク ネ ッ ト ワーク を直接駆動するか、 I/O 列に隣接する ク ロ ッ ク マネージ メ ン ト タ イル (CMT) にあ る PLL または MMCM によ り 変換されます。

CMT には、 次のク ロ ッ キング リ ソースが含まれます。

• ク ロ ッ ク生成ブロ ッ ク

° 2 つの PLL

° 1 つの MMCM

• グ ローバル ク ロ ッ ク バッ フ ァー

° 24 個の BUFGCE

° 8 個の BUFGCTRL

° 4 個の BUFGCE_DIV

注記 : ボンデ ィ ング されていない I/O を含む I/O 列に隣接する CMT 内のク ロ ッ キング リ ソースは、 使用可能です。

GT ユーザー ク ロ ッ クは、 BUFG_GT バッ フ ァーを介し てグ ローバル ク ロ ッ ク ネ ッ ト ワーク を駆動し ます。GTH/GTY 列に隣接する ク ロ ッ ク領域ご と に 24 個の BUFG_GT バッ フ ァーがあ り ます。

次は、 各 UltraScale デバイ ス ク ロ ッ ク バッ フ ァーのサマ リ 情報です。

• BUFGCE

も よ く 使用されるバッ フ ァーです。 ク ロ ッ ク イネーブル/デ ィ スエーブル機能を持つ汎用ク ロ ッ ク バッ フ ァーで、 7 シ リ ーズの BUFHCE と同等のバッ フ ァーです。

• BUFGCE_DIV

ク ロ ッ ク の単純な分周が必要な場合に便利です。 単純な ク ロ ッ ク分周には、 MMCM または PLL を使用する よ りも BUFGCE_DIV を使用し た方が簡単で消費電力も低 く な り ます。 また、 正し く 使用すれば、 ク ロ ッ ク乗せ換えにおいて、 MMCM または PLL を使用する よ り も ク ロ ッ ク ド メ イ ン間のスキ ューが小さ く な る こ と があ り ます。BUFGCE_DIV は、 7 シ リ ーズ デバイ スの BUFR フ ァ ン ク シ ョ ンの代わ り によ く 使用されますが、 グ ローバル クロ ッ ク ネ ッ ト ワーク を駆動でき るので、 BUFR コ ンポーネン ト よ り も多 く の機能があ り ます。 .

• BUFGCTRL (および BUFGMUX)

BUFGCTRL は BUFGMUX と し て イ ン ス タ ンシエー ト でき、 通常は複数のク ロ ッ ク ソース を 1 つのク ロ ッ ク ネ ッ ト ワーク に多重化する際に使用されます。 BUFGCE および BUFGCE_DIV と同様に、 リ ージ ョ ナル ク ロ ッキングまたはグ ローバル ク ロ ッ キングのいずれかのク ロ ッ ク ネ ッ ト ワーク を駆動でき ます。

• BUFG_GT

GT で生成された ク ロ ッ ク を使用する場合、 BUFG_GT ク ロ ッ ク バッ フ ァーを使用する と ク ロ ッ ク ネ ッ ト ワークへの接続が可能にな り ます。 ほ と んどの場合、 BUFG_GT は 1 つまたは 2 つの隣接ク ロ ッ ク領域にあ る ロード を駆動する リ ージ ョ ナル バッ フ ァーと し て使用されます。 BUFG_GT にはビル ト イ ンのダ イナ ミ ッ ク ク ロ ッ ク分周機能があ り 、 MMCM の代わ り にク ロ ッ ク レー ト を変更する ために使用でき ます。

UltraFast 設計手法ガイ ド 61UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 62: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

BUFGCE、 BUFGCE_DIV、 および BUFGCTRL の詳細は、 『UltraScale アーキテ クチャ ク ロ ッ キング リ ソース ユーザー ガイ ド』 (UG572) [参照 39] を参照し て く ださい。 BUFG_GT バッ フ ァーの接続および使用の詳細は、 『UltraScale アーキテ クチャ ト ラ ンシーバー ユーザー ガイ ド』 [参照 40] を参照し て く ださ い。

グローバル ク ロ ッ ク バッ フ ァーの接続および配線 ト ラ ッ ク

ク ロ ッ ク領域の 24 個の BUFGCE バッ フ ァーは、 それぞれ特定のク ロ ッ ク配線 ト ラ ッ ク のみを駆動でき ますが、BUFGCTRL および BUFGCE_DIV 出力は MUX 構造を介し て 24 の ト ラ ッ ク のどれでも使用でき ます。 各 BUFGCE_DIV は特定の BUFGCE サイ ト と入力接続を共有し、各 BUFGCTRL は 2 つの特定の BUFGCE サイ ト と入力接続を共有し ます。 このため、 ク ロ ッ ク領域で BUFGCE_DIV または BUFGCTRL バッ フ ァーを使用する場合、BUFGCE バッ フ ァーの使用が制限されます。 次の図は、 ク ロ ッ ク領域の一番下の 6 つの BUFGCE が ク ロ ッ ク領域内で 4 回複製される と こ ろを示し ています。

注記 : グ ローバル ク ロ ッ ク ネ ッ ト は、 ク ロ ッ ク が使用するすべての縦方向配線、 横方向配線、 および分配 リ ソースに対し て、 デバイ ス内の特定の ト ラ ッ ク ID に割 り 当て られます。 ク ロ ッ クは、 ク ロ ッ ク が別のク ロ ッ ク バッ フ ァーを介さ ない限 り 、 ト ラ ッ ク ID を変更でき ません。

X-Ref Target - Figure 3-25

図 3-25 : BUFGCE、 BUFGCE_DIV、 BUFGCTRL の入力の共有と MUX を介し た出力

UltraFast 設計手法ガイ ド 62UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 63: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ クの配線、 ルー ト 、 および分配

UltraScale デバイ スのク ロ ッ キング機能とデザイ ンのク ロ ッ キングの使用を正し く 理解するには、 ク ロ ッ ク配線で専用配線 リ ソースがどのよ う に使用されるかを知ってお く こ と が重要です。

• ク ロ ッ ク バッ フ ァーから ク ロ ッ ク ルー ト までは、 ク ロ ッ ク信号は縦方向配線および横方向配線の 1 つまたは複数セグ メ ン ト を通過し ます。 各セグ メ ン ト は、 同じ ト ラ ッ ク ID (0 ~ 23) を使用する必要があ り ます。

• ク ロ ッ ク ルー ト では、 ク ロ ッ ク信号が配線 ト ラ ッ ク か ら同じ ト ラ ッ ク ID の分配 ト ラ ッ ク に遷移し ます。 スキ ューを削減する ために、 ク ロ ッ ク ルー ト は通常ク ロ ッ ク領域の真ん中 ( ク ロ ッ ク ウ ィ ン ド ウの中央) に配置されます。 ク ロ ッ ク ウ ィ ン ド ウは、 ク ロ ッ ク ネ ッ ト のロー ド が配置される ク ロ ッ ク領域すべてを含む長方形のエ リ アです。 ス キ ュー 適化の理由か ら、 Vivado IDE によ り ク ロ ッ ク ルー ト が中心か らずら される こ と があり ます。

• ク ロ ッ ク信号は、 ク ロ ッ ク ルー ト から ロード が配置されている CLB 列に向かって、 まず縦方向 (必要に応じてデバイ スの上下両方の方向) に分配された後、 横方向 (必要に応じてデバイ スの左右両方の方向) に分配されます。

• CLB 列は、 横方向分配 リ ソースの上下にあ る 2 つの半分に分割されます。 CLB 列の半分にはそれぞれ、 横方向の分配 ト ラ ッ ク のいずれかで到達可能な複数の リ ーフ ク ロ ッ ク配線 リ ソースが含まれます。

場合によ っては、 ク ロ ッ ク バッ フ ァーで ク ロ ッ ク分配 ト ラ ッ ク を直接駆動でき ます。 これは通常、 ク ロ ッ ク ルー トがク ロ ッ ク バッ フ ァーと同じ ク ロ ッ ク領域にあ る場合、 またはク ロ ッ ク バッ フ ァーがク ロ ッ ク以外のピン (フ ァ ンア ウ ト の大きいネ ッ ト など) のみを駆動する場合に発生し ます。

ク ロ ッ ク配線 リ ソースはセグ メ ン ト に分割されるので、 ク ロ ッ ク領域を横切る ため、 またはク ロ ッ ク領域のロードに到達するために使用される配線セグ メ ン ト および分配セグ メ ン ト のみが消費されます。

UltraFast 設計手法ガイ ド 63UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 64: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の図は、 ク ロ ッ ク領域 X2Y1 にあ る ク ロ ッ ク バッ フ ァーがク ロ ッ ク ウ ィ ン ド ウ (長方形で囲まれた X1Y3 から X5Y5 のク ロ ッ ク領域) 内にあ る ロード に到達する と こ ろを示し ています。

X-Ref Target - Figure 3-26

図 3-26 : UltraScale デバイスでのド ラ イバーから ロー ド までのク ロ ッ ク配線

UltraFast 設計手法ガイ ド 64UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 65: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の図の配線済みデバイ ス表示は、 デバイ スのほぼ全体に分配される グ ローバル ク ロ ッ ク の例を示し ています。ネ ッ ト ワーク を駆動する ク ロ ッ ク バッ フ ァーは、 ク ロ ッ ク領域 X2Y0 に青色で表示されてお り 、 そのク ロ ッ ク領域内の横方向配線を駆動し ています。 この後ネ ッ ト は横方向配線から ク ロ ッ ク領域 X2Y0 の縦方向配線に遷移し、 クロ ッ ク領域 X2Y5 のク ロ ッ ク ルー ト に到達し ます。 すべてのク ロ ッ ク配線は青色でハイ ラ イ ト されています。 クロ ッ ク ルー ト は、 ク ロ ッ ク領域 X2Y5 に赤色でハイ ラ イ ト されています。 X2Y5 の ク ロ ッ ク ルー ト からは、 ネ ッ トが縦分配に遷移し た後、 横方向分配に遷移し、 ク ロ ッ ク リ ーフ ピンに到達し ます。 分配レ イヤーと CLB 列の リ ーフ ク ロ ッ ク配線 リ ソースは、 赤色でハイ ラ イ ト されています。

X-Ref Target - Figure 3-27

図 3-27 : 配線済みク ロ ッ ク ネ ッ ト ワーク を示す [Device] ウ ィ ン ド ウ

• • • • • • •• • • • • •

UltraFast 設計手法ガイ ド 65UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 66: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ ク ツ リーの配置配線

次の段階では、 Vivado 配置で物理的な XDC 制約を保持し ながら、 MMCM/PLL、 グ ローバル ク ロ ッ ク バッ フ ァー、およびク ロ ッ ク ルー ト の配置が決定されます。

1. I/O およびク ロ ッ ク配置

配置ツールで接続規則 と ユーザー制約に基づいて I/O バッ フ ァーと MMCM/PLL が配置されます。 配置ツールでは、 ク ロ ッ ク バッ フ ァーがク ロ ッ ク領域に割 り 当て られますが、 LOC プロパテ ィ を使用し て制約されない限り 、 個別のサイ ト には割 り 当て られません。 詳細は、 表 3-2 を参照し て く ださい。 ク ロ ッ ク以外のロード のみを駆動する ク ロ ッ ク バッ フ ァーだけが、 その ド ラ イバーと ロード の配置に基づいてフ ローの後の段階で別のクロ ッ ク領域に移動でき ます。

この段階の配置ツール エラーは、 接続規則と ユーザー制約のいずれかまたは両方が競合するために発生し ます。ロ グ フ ァ イルにエラーの根本的な原因と考え られる要因に関する情報が表示されるので、 詳細に確認し てデザイ ン または制約を適切に変更する必要があ り ます。

2. SLR 分割 (SSI テ ク ノ ロ ジ デバイ スのみ) およびグ ローバル配置

配置ツールでは、 早期の ド ラ イバーおよびロード の配置に基づいて、 初期ク ロ ッ ク ツ リ ー イ ンプ リ メ ンテーシ ョ ンが実行されます。 各ク ロ ッ ク ネ ッ ト はク ロ ッ ク ウ ィ ン ド ウに関連付け られます。 ク ロ ッ ク ウ ィ ン ド ウが過剰に重なる場合、 ク ロ ッ ク配線の競合が予測され、 配置ツール エラーが発生する可能性があ り ます。

ク ロ ッ ク分割エラーが発生し た場合、 ロ グ フ ァ イルに各ク ロ ッ ク ネ ッ ト の 後のク ロ ッ ク バジェ ッ ト ソリ ューシ ョ ン と、 各ク ロ ッ ク領域に存在する固有のク ロ ッ ク ネ ッ ト の数が表示されます。 ロ グ フ ァ イルを詳細に確認し、 過剰に使用されている ク ロ ッ ク領域から どのク ロ ッ ク を削除するかを判断し ます。 ク ロ ッ ク を削除するには、 次の手法を使用でき ます。

° 同じ同期ク ロ ッ ク同士を組み合わせるか、 不要な MMCM フ ィ ード バッ ク ク ロ ッ ク を削除するか、 フ ァ ンンア ウ ト の小さいク ロ ッ ク をフ ァ ンアウ ト の大きいク ロ ッ クにま と めて、 デザイ ンの ク ロ ッ ク数を削除します。

° ク ロ ッ ク プ リ ミ テ ィ ブを別のク ロ ッ ク領域、 特に接続ベースの配置規則のない領域に移動し ます。

° ク ロ ッ ク ロード にフ ロ アプラ ン制約を追加し て、 フ ァ ンア ウ ト の小さい ク ロ ッ ク をそれらの ド ラ イバー近く に配置するか、 使用率の高いク ロ ッ ク領域から離し ます。

配置ツールは、 ク ロ ッ ク ツ リ ー イ ンプ リ メ ンテーシ ョ ンを何度も改良し て、 タ イ ミ ングの QoR (結果の品質) を向上し ます。 た と えば、 後の配置 適化段階で、 困難な ク ロ ッ クが解析され、 よ り 適し た ク ロ ッ ク ルー ト の位置が決定されます。

3. ク ロ ッ ク ツ リ ーの事前配線

配置ツールで、 後続のイ ンプ リ メ ンテーシ ョ ン段階がガイ ド され、 配置後のタ イ ミ ング解析用に正確な遅延が見積も られます。

UltraFast 設計手法ガイ ド 66UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 67: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

配置後は、 Vivado ツールで ク ロ ッ ク ツ リ ー イ ンプ リ メ ンテーシ ョ ンを次のよ う に変更でき ます。

• Vivado 物理 適化では、 セルを複製し て、 関連ク ロ ッ ク な しで ク ロ ッ ク領域に移動でき ます。

• Vivado 配線では、 タ イ ミ ング QoR (結果の品質) を改善し て ク ロ ッ ク配線を有効にするための調整を実行でき ます。 配線指示子の EXPLORE を使用する と、 Vivado 配線で ク ロ ッ ク ルー ト の位置を変更し て タ イ ミ ング QoR (結果の品質) を改善する こ と もでき ます。

次の表では、 主な ク ロ ッ ク ト ポロ ジの配置規則と制約がこれらの規則にど う 影響するかを ま と めています。

表 3-2 : 配置規則のある場合と ない場合の ト ポロジ

制約付き ソース 制約な しのデステ ィ ネーシ ョ ン 結果

GCIO BUFGCE、 BUFGCTRL、BUFGCE_DIV、 PLL/MMCM

同じ ク ロ ッ ク領域に自動的に配置されます。

PLL/MMCM BUFGCE、 BUFGCTRL、 BUFGCE_DIV 同じ ク ロ ッ ク領域に自動的に配置されます。

GT*_CHANNEL BUFG_GT 同じ ク ロ ッ ク領域に自動的に配置されます。

BUFGCTRL BUFGCTRL 同じ ク ロ ッ ク領域に自動的に配置されます。

注記 : 同じ ク ロ ッ ク領域内の配置は、 CLOCK_REGION 制約を使用し て無効にでき ます。

BUFG* BUFG* 制約の付いていないデステ ィ ネーシ ョ ンの BUFG は予測不可能な配置にな り ます。

デステ ィ ネーシ ョ ン BUFG* に CLOCK_REGION 制約を設定する こ と を推奨し ます。

注記 : BUFGCTRL -> BUFGCTRL は例外です。

BUFG* MMCM/PLL 制約の付いていないデステ ィ ネーシ ョ ン MMCM/PLL. は予測不可能な配置にな り ます。

MMCM/PLL に LOC 制約を設定する こ と を推奨します。

配線が隣接する ク ロ ッ ク領域または複数のク ロ ック領域にまたがる場合は、CLOCK_DEDICATED_ROUTE 制約を推奨し ます。

UltraFast 設計手法ガイ ド 67UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 68: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ キング機能

ク ロ ッ ク プラ ンニングは、 ターゲ ッ ト デバイ スのフ ァ ンアウ ト の大きいク ロ ッ ク と フ ァ ンアウ ト の小さい ク ロ ッ クの総数に基づいて実行する必要があ り ます。

フ ァ ンアウ ト の大きいク ロ ッ ク

フ ァ ンア ウ ト の大きいク ロ ッ クは、 SSI テ ク ノ ロ ジ デバイ スの SLR のほ と んど全体に分配されるか、 モ ノ リ シ ッ ク デバイ スのほ と んどすべてのク ロ ッ ク領域に分配されます。 次の図は、 SLR のぼぼ全体に分配される フ ァ ンア ウ トの大きいク ロ ッ ク を示し ています。 BUFGCE ド ラ イバーは赤色で示し ています。

注記 : デザイ ンで使用される ク ロ ッ ク が 24 個を超え る場合は、 特別なデザイ ン考慮事項やその他の事前プラ ンニングが必要 と なる よ う な問題が発生する こ と があ り ます。

重要 : ZHOLD および BUF_IN 補正モード では、 MMCM フ ィ ード バッ ク ク ロ ッ ク パスは、 配線 ト ラ ッ ク、 ク ロ ッ ク ルー ト の位置、 分配 ト ラ ッ ク などが CLKOUT0 ク ロ ッ ク パス と同じにな り ます。 そのため、 ク ロ ッ ク バッ フ ァーとク ロ ッ ク ルー ト が離れている場合、 フ ィ ード バッ ク ク ロ ッ クはフ ァ ンアウ ト の大きいク ロ ッ ク と考え られます。MMCM 補正 メ カニズムの詳細は、 「MMCM ZHOLD/BUF_IN 補正を使用し た I/O タ イ ミ ング」 を参照し て く ださい。

X-Ref Target - Figure 3-28

図 3-28 : SLR 全体に分配される フ ァ ンアウ ト の大きいク ロ ッ ク

UltraFast 設計手法ガイ ド 68UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 69: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

フ ァ ンアウ ト の小さいク ロ ッ ク

フ ァ ンア ウ ト の小さいク ロ ッ クは、 ほ と んどの場合、 横方向に隣接する 3 つ以下のク ロ ッ ク領域に配置された 5000 個未満のク ロ ッ ク ピンに接続される ク ロ ッ ク ネ ッ ト です。 ク ロ ッ ク配線、 ク ロ ッ ク ルー ト 、 およびク ロ ッ ク分配は、 すべて限られたエ リ ア内に含まれます。 配置ツールでは、 フ ァ ンアウ ト の小さい ク ロ ッ クが特定されるはずですが、 でき ないこ と も あ り ます。 これは、 デザイ ン サイ ズ、 デバイ ス サイ ズ、 または LOC 制約や Pblock などの物理的な XDC 制約が原因で、 配置ツールでロード を ローカル エ リ アに配置できないこ と があ るからです。 この問題を修正するには、 手動で Pblock を作成し て、 既存の物理制約を変更する必要があ る こ と があ り ます。

フ ァ ンア ウ ト の小さいク ロ ッ クは、 た と えば FG_GT で駆動される ク ロ ッ ク です。 Vivado 配置ツールでは、 自動的にこれらのク ロ ッ ク ネ ッ ト が認識され、 GT イ ン ターフ ェ イ スに隣接する ク ロ ッ ク領域にロード を含めます。 次の図に、 2 つの ク ロ ッ ク領域に含まれる フ ァ ンア ウ ト の小さい ク ロ ッ ク を示し ます。 BUFG_GT ド ラ イバーは赤色で示されています。

フ ァ ンアウ ト の大きいク ロ ッ ク と小さいク ロ ッ クのバラ ンス

UltraScale デバイ スでは、 それ以前のザイ リ ン ク ス FPGA フ ァ ミ リ よ り も多 く のク ロ ッ ク がサポー ト されてお り 、 次のよ う な さ まざまな ク ロ ッ キング手法が使用でき る よ う になっています。

• 24 個以下の ク ロ ッ ク

競合するユーザー制約がなければ、 すべてのク ロ ッ ク を配置または配線競合の リ ス ク な しにフ ァ ンアウ ト の大きいク ロ ッ ク と し て扱 う こ と ができ ます。

• ほぼ 300 個のク ロ ッ ク

6 つの ク ロ ッ ク領域行を含むデバイ ス を ターゲ ッ ト にし ていて、 各ク ロ ッ ク が 大 3 つの ク ロ ッ ク領域に含まれる フ ァ ンア ウ ト の小さいク ロ ッ ク しか含まれないデザイ ンの場合は、6 行 x 各行 2 ク ロ ッ ク ウ ィ ン ド ウ x 各領域 24 ク ロ ッ ク = 288 ク ロ ッ ク が必要と な り ます。

フ ァ ンア ウ ト の小さいク ロ ッ ク のウ ィ ン ド ウには決ま ったサイ ズはあ り ませんが、 通常は 1 ~ 3 ク ロ ッ ク領域です。フ ァ ンア ウ ト の大きいク ロ ッ ク がデバイ ス全体や SLR 全体に分配される こ と はまれです。

X-Ref Target - Figure 3-29

図 3-29 : 2 つのク ロ ッ ク領域に含まれる フ ァ ンアウ ト の小さいク ロ ッ ク

UltraFast 設計手法ガイ ド 69UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 70: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の手法は、 フ ァ ンアウ ト の大きいク ロ ッ ク と小さいク ロ ッ ク のバラ ン ス を取る方法を示し ています。 フ ァ ンア ウト の小さいク ロ ッ ク の う ち数個は I/O イ ン ターフ ェ イ スから、 ほ と んどは GT イ ン ターフ ェ イ スからのものであ る と想定し ています。 SSI テ ク ノ ロ ジ デバイ スの各 SLR にも同じ手法を使用でき ます。

• フ ァ ンア ウ ト の大きいク ロ ッ ク

° モ ノ リ シ ッ ク デバイ スの場合は 大 12 個

° SSI テ ク ノ ロ ジ デバイ スの場合は 大 24 個 (フ ァ ンア ウ ト の大きい ク ロ ッ ク の一部は 1 つの SLR 内にのみ存在する と想定し た場合)

• フ ァ ンア ウ ト の小さいク ロ ッ ク

° 大 12 個 + GT を使用する ク ワ ッ ド ご と に 8 個

° または 大 12 個 + GT イ ン ターフ ェ イ ス (RXUSRCLK および TXUSRCLK を共有する GT チャネルのグループ) ご と に 6 個

ク ロ ッ ク制約

物理 XDC 制約は、 ク ロ ッ ク ツ リ ーのイ ンプ リ メ ンテーシ ョ ンを指示し、 フ ァ ンア ウ ト の大きいク ロ ッ キング リソースの使用を制御し ます。 UltraScale デバイ スのク ロ ッ キングはそれ以前のアーキテ クチャのク ロ ッ キング よ り も柔軟性があ り 、 よ り 多 く のアーキテ クチャ制約が含まれるので、 イ ンプ リ メ ンテーシ ョ ンのために ク ロ ッ ク を正しく 制約する方法を理解し てお く こ と が重要です。

IO/MMCM/PLL/GT の LOC 制約

ク ロ ッ ク を制約するには、 次のよ う に配置制約を割 り 当てる こ と ができ ます。

• I/O ポー ト のク ロ ッ ク入力に使用

GCIO のク ロ ッ クに PACKAGE_PIN 制約を割 り 当てた り 、 IOB に LOC を割 り 当てた り する と、 ク ロ ッ ク ネ ッ トワーク に影響し ます。 入力ポー ト に直接接続される MMCM/PLL およびク ロ ッ ク バッ フ ァーは、 同じ ク ロ ッ ク領域に配置する必要があ り ます。

• MMCM または PLL に使用

MMCM または PLL 出力に直接接続される ク ロ ッ ク バッ フ ァーと MMCM または PLL 入力に接続される入力クロ ッ ク ポー ト は、 同じ ク ロ ッ ク領域に自動的に配置されます。 入力ク ロ ッ ク ポー ト と MMCM または PLL が直接接続されてお り 、 別のク ロ ッ ク領域に制約されている場合、 ク ロ ッ ク バッ フ ァーを手動で挿入し、 MMCM または PLL に接続されたネ ッ ト に CLOCK_DEDICATED_ROUTE 制約を設定する必要があ り ます。

• GT*_CHANNEL または IBUFDS_GTE3 セルに使用

セルで駆動される BUFG_GT は、 同じ ク ロ ッ ク領域に配置されます。

注意 : ク ロ ッ ク バッ フ ァー セルに LOC 制約を使用するのは、 推奨されません。 ク ロ ッ ク が特定の ト ラ ッ ク ID に指定され、 配線でき な く なる よ う な配置になる こ と があ り ます。 UltraScale デバイ スでは、 デザイ ンのク ロ ッ ク ツ リ ー全体を理解し ていて、 配置がデザイ ンで一貫し ている場合に、 フ ァ ンアウ ト の大きいバッ フ ァーを配置する ためにのみ LOC 制約を使用し て く ださい。 こ のよ う に注意を払って も、 デザイ ンや制約の変更によ り 、 イ ンプ リ メ ンテーシ ョ ンで競合が発生する こ と があ り ます。

ク ロ ッ ク バッ フ ァーでの CLOCK_REGION プロパテ ィ の使用

サイ ト を指定せずにク ロ ッ ク バッ フ ァーを ク ロ ッ ク領域に割 り 当てるには、 CLOCK_REGION 制約を使用でき ます。この制約を使用する と、 すべてのク ロ ッ ク ツ リ ーを 適化する際、 および適切なバッ フ ァー サイ ト を決定する際に、 配置がさ らに柔軟に実行される よ う にな り 、 すべてのク ロ ッ ク を問題な く 配線でき る よ う にな り ます。

CLOCK_REGION 制約は、 カ スケード ク ロ ッ ク バッ フ ァーや、 フ ァブ リ ッ ク ロ ジ ッ ク などの ク ロ ッ ク以外のプ リ ミテ ィ ブで駆動される ク ロ ッ ク バッ フ ァーの配置にガ イ ド ラ イ ンを提供する ために使用する こ と もでき ます。

UltraFast 設計手法ガイ ド 70UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 71: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次のコマン ド例では、 XDC 制約で clkgen/clkout2_buf ク ロ ッ ク バッ フ ァーが CLOCK_REGION X2Y2 に割 り 当て られます。

set_property CLOCK_REGION X2Y2 [get_cells clkgen/clkout2_buf]

注記 : ほ と んどの場合、 ク ロ ッ ク バッ フ ァーは、 既に ク ロ ッ ク領域に制約された入力ク ロ ッ ク ポー ト 、 MMCM、PLL、 または GT*_CHANNEL で直接駆動されます。 この場合、 ク ロ ッ ク バッ フ ァーが自動的に同じ ク ロ ッ ク領域に配置されるので、 CLOCK_REGION 制約を使用する必要はあ り ません。

Pblock を使用し てク ロ ッ ク バッ フ ァーの配置を制限

ク ロ ッ ク バッ フ ァーを特定のク ロ ッ ク領域に配置する必要がない場合は、 Pblock を使用し て ク ロ ッ ク領域の範囲を指定でき ます。 た と えば、 別のエ リ アにあ る 2 つのク ロ ッ ク を多重化する ために BUFGCTRL が必要な場合に Pblock を使用し ます。 BUFGCTRL を 2 つのク ロ ッ ク ド ラ イバー間のク ロ ッ ク領域を含む Pblock に割 り 当て、 有効な配置が見つけ られる よ う にでき ます。

注記 : 1 つのク ロ ッ ク領域に Pblock を使用する こ と はお勧めし ません。

ク ロ ッ ク ネ ッ ト への USER_CLOCK_ROOT プロパテ ィ の使用

USER_CLOCK_ROOT プロパテ ィ を使用する と、 ク ロ ッ ク バッ フ ァーで駆動される ク ロ ッ ク のク ロ ッ ク ルー ト の位置を指定でき ます。 USER_CLOCK_ROOT プロパテ ィ を指定する と、 ク ロ ッ ク配線が変更されて挿入遅延と スキ ューの両方に影響するため、 デザイ ンの配置に影響し ます。 USER_CLOCK_ROOT 値はク ロ ッ ク領域に対応するので、 このプロパテ ィ はフ ァ ンアウ ト の大きいク ロ ッ ク バッ フ ァーで直接駆動されるネ ッ ト セグ メ ン ト に設定する必要があ り ます。 次に例を示し ます。

set_property USER_CLOCK_ROOT X2Y3 [get_nets clkgen/wbClk_o]

X-Ref Target - Figure 3-30

図 3-30 : ク ロ ッ ク バッ フ ァーで駆動されるネ ッ ト セグ メ ン ト に適用された USER_CLOCK_ROOT

UltraFast 設計手法ガイ ド 71UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 72: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

配置後は、 次の例に示すよ う に、 CLOCK_ROOT を使用し て実際のク ロ ッ ク ルー ト を ク エ リ でき ます。CLOCK_ROOT では、 割 り 当て られたルー ト がユーザーによ って割 り 当て られた ものであ るか、 Vivado ツールで自動的に割 り 当て られた ものであ るかがレポー ト されます。

get_property CLOCK_ROOT [get_nets clkgen/wbClk_o]

=> X2Y3

イ ンプ リ メ ン ト し たデザイ ンのク ロ ッ ク ルー ト 割 り 当てを確認するには、 Tcl コマン ド の report_clock_utilization を使用する方法も あ り ます。 次に例を示し ます。

report_clock_utilization [-clock_roots_only]

次の図は、 このレポー ト を示し ています。

複数のク ロ ッ ク ネ ッ ト での CLOCK_DELAY_GROUP 制約の使用

CLOCK_DELAY_GROUP 制約を使用する と、 異なる ク ロ ッ ク バッ フ ァーで駆動される複数の関連する ク ロ ッ ク ネ ット ワーク の挿入遅延を同じにでき ます。 この制約は、 同じ MMCM または PLL ソースからのク ロ ッ ク間の同期 CDC タ イ ミ ング パスのスキ ューを 小限に抑え る ためによ く 使用されます。 CLOCK_DELAY_GROUP 制約は、 ク ロ ッ ク バッ フ ァーに直接接続されたネ ッ ト セグ メ ン ト に設定する必要があ り ます。 次は、 ク ロ ッ ク バッ フ ァーで直接駆動される ク ロ ッ ク ネ ッ ト 、 clk1_net および clk2_net を示し ています。

set_property CLOCK_DELAY_GROUP grp12 [get_nets {clk1_net clk2_net}]

ク ロ ッ ク間のパスにこの制約を使用する方法は、 「同期 CDC」 を参照し て く ださい。

X-Ref Target - Figure 3-31

図 3-31 : report_clock_utilization による ク ロ ッ ク ルー ト 割り当ての確認

UltraFast 設計手法ガイ ド 72UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 73: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

CLOCK_DEDICATED_ROUTE 制約の使用

CLOCK_DEDICATED_ROUTE 制約は、 1 つのク ロ ッ ク領域のク ロ ッ ク バッ フ ァーで別のク ロ ッ ク領域の MMCM または PLL を駆動する場合に通常使用されます。 デフ ォル ト では、 CLOCK_DEDICATED_ROUTE 制約は TRUE に設定され、 バッ フ ァー /MMCM または PLL のペアは同じ ク ロ ッ ク領域に配置されます。

1 つの ク ロ ッ ク領域のク ロ ッ ク バッ フ ァーで縦方向に隣接し た ク ロ ッ ク領域の MMCM または PLL を駆動する場合は、 CLOCK_DEDICATED_ROUTE を BACKBONE に設定する必要があ り ます。 これによ り 、 イ ンプ リ メ ンテーシ ョン エラーが発生し な く な り 、 ク ロ ッ ク がグ ローバル ク ロ ッ ク リ ソースのみを使用し て配線される よ う にな り ます。次の例は、 縦方向に隣接し た ク ロ ッ ク領域にあ る 2 つの PLL を駆動する ク ロ ッ ク バッ フ ァーを示し ています。

set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets clk_buf]

次の図は、 CLOCK_DEDICATED_ROUTE 制約が BACKBONE に設定され、 縦方向に隣接する ク ロ ッ ク領域の MMCM または PLL が駆動される と こ ろを示し ています。

X-Ref Target - Figure 3-32

図 3-32 : CLOCK_DEDICATED_ROUTE 制約をBACKBONE に設定

• • • • • • •• • • • • •

UltraFast 設計手法ガイ ド 73UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 74: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ ク バッ フ ァーで縦方向に隣接し ないその他のク ロ ッ ク領域を駆動する場合は、 CLOCK_DEDICATED_ROUTE を FALSE に設定する必要があ り ます。 これによ り 、 イ ンプ リ メ ンテーシ ョ ン エラーが発生し な く な り 、 ク ロ ッ クがグ ローバル ク ロ ッ ク リ ソースのみを使用し て配線される よ う にな り ます。 次の例 と図は、 縦に隣接し ない 2 つの PLL を駆動する BUFGCE を示し ています。

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_buf]

X-Ref Target - Figure 3-33

図 3-33 : CLOCK_DEDICATED_ROUTE 制約を FALSE に設定

UltraFast 設計手法ガイ ド 74UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 75: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ キング ト ポロジの推奨事項

ザイ リ ン ク スでは、 デザイ ンに必要な 低限の数のク ロ ッ ク バッ フ ァーを含む単純な ク ロ ッ ク ツ リ ー ト ポロ ジを使用する こ と をお勧めし ています。 余分な ク ロ ッ ク バッ フ ァーを使用する と、 必要と なる配線 ト ラ ッ ク が増え るので、ク ロ ッ ク領域で配置エラーまたは配線競合が発生する可能性があ り 、 ク ロ ッ ク配線要件も厳し く な り 、 大容量に近 く なって し まいます。

次に、 BUFGCE/BUFGCTRL/BUFGCE_DIV 接続に関する ク ロ ッ キング ト ポロ ジの推奨事項を示し ます。

並列ク ロ ッ ク バッ フ ァー

並列ク ロ ッ ク バッ フ ァーを使用する と、 次を達成でき ます。

• イ ンプ リ メ ンテーシ ョ ン run 間で予測可能な配置

並列ク ロ ッ ク バッ フ ァーを同じ入力ク ロ ッ ク ポー ト 、 MMCM、 PLL、 または GT*_CHANNEL で直接駆動すると、 ネ ッ ト リ ス ト の変更またはロ ジ ッ ク配置のバ リ エーシ ョ ンに関係な く 、 バッ フ ァーは常にその ド ラ イバーと同じ ク ロ ッ ク領域に配置されます。

• ク ロ ッ ク ツ リ ーの並列分岐間の挿入遅延を一致させる

分岐間に同期パスがあ る場合は、 カ スケード ク ロ ッ ク バッ フ ァーよ り も並列バッ フ ァーをお勧めし ます。 カスケード されたバッ フ ァーを使用する と、 CLOCK_DELAY_GROUP または USER_CLOCK_ROOT 制約を使用する場合でも、 ク ロ ッ ク ツ リ ーの分岐間で ク ロ ッ ク挿入遅延が一致し ません。 こ の結果、 ク ロ ッ ク スキ ューが大きく な り 、 タ イ ミ ング ク ロージ ャが困難にな り ます。

次の図は、 MMCM CLKOUT0 ポー ト で駆動される 3 つの並列 BUFGCE バッ フ ァーを示し ています。

X-Ref Target - Figure 3-34

図 3-34 : MMCM 出力の並列 BUFGCE

UltraFast 設計手法ガイ ド 75UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 76: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

カスケー ド ク ロ ッ ク バッ フ ァー

通常は、 カ スケード バッ フ ァーを使用し て遅延を人工的に増加し、 関連し ない ク ロ ッ ク ツ リ ー分岐間のスキ ューを削減する こ と はお勧めし ません。 BUFGCTRL 間の接続と は違い、 ほかのク ロ ッ ク バッ フ ァー接続にはアーキテ クチャ内に専用パスがあ り ません。 このため、 ク ロ ッ ク バッ フ ァーの相対配置は予測できず、 すべての配置規則が制約されていないカ スケード バッ フ ァーの配置よ り も優先されます。

ただし、 次を達成するためにはカ スケード ク ロ ッ ク バッ フ ァーを使用でき ます。

• ク ロ ッ ク を異なる ク ロ ッ ク領域にあ る別のク ロ ッ ク バッ フ ァーに配線する

この方法は、 異なる ク ロ ッ ク領域にあ る MMCM で生成された ク ロ ッ ク に対し て ク ロ ッ ク マルチプレ ク サーを使用する場合に通常使用し ます。 MMCM の 1 つは BUFGCTRL (BUFGMUX) を直接駆動でき ますが、 も う 一方の MMCM はク ロ ッ ク信号をそれ以外の領域に配線する ために中間ク ロ ッ ク を必要と し ます。 次の図に例を示します。

X-Ref Target - Figure 3-35

図 3-35 : ク ロ ッ ク を別のク ロ ッ ク領域に配線

• •• • • •• • • •• • •• • • • • • • • • • • • • • •

• •• • • •• • • •• • •• • • • • • • • • • • • • • •

• • • • • • •• • • • • •

UltraFast 設計手法ガイ ド 76UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 77: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• 分岐間に同期パスがあ る場合は、 ク ロ ッ ク ツ リ ー分岐間で ク ロ ッ ク バッ フ ァーのレベル数のバラ ン ス を調整します。

た と えば、 グループ A (異なる ク ロ ッ ク領域にあ る BUFGCTRL を介し て駆動される シーケンシ ャル セル) と グループ B (シーケンシ ャル セル) の両方を駆動する clk0 と い う MMCM ク ロ ッ ク があ る と し ます。 分岐間の遅延を よ り 一致させるには、 グループ B 用に BUFGCE を挿入し、 BUFGCTRL と同じ ク ロ ッ ク領域に配置し ます。これによ り 、 グループ A と グループ B 間の同期パスのスキ ューの量が制御されます。 次の図に例を示し ます。

注記 : ク ロ ッ ク ツ リ ー分岐間に非同期パス しかない場合、 受信ク ロ ッ ク ド メ イ ンに適切な同期回路があれば、これらの分岐間でバラ ン ス を調整する必要はあ り ません。

• 「ク ロ ッ ク マルチプレ クサー」 に示すよ う にク ロ ッ ク マルチプレ ク サーを構築する

挿入遅延 と スキ ューの変動を削減するには、 カ スケード ク ロ ッ ク バッ フ ァーを使用する場合に次を実行する こ と をお勧めし ます。

• カ スケード バッ フ ァーを同じ ク ロ ッ ク領域または隣接する ク ロ ッ ク領域に配置する

• ク ロ ッ ク ツ リ ー分岐のバラ ン スが調整されている場合は、 同じ レベルのク ロ ッ ク バッ フ ァーすべてを同じ クロ ッ ク領域に割 り 当てる

注記 : 絶対に必要な場合は、 カ スケード BUFGCE の代わ り に 2 つのカス ケード BUFGCTRL を使用する こ と をお勧めし ます。 専用配線を使用する と、 両方の BUFGCTRL が同じ ク ロ ッ ク領域内に配置される場合に、 小限の遅延で 2 つの隣接する BUFGCTRL をカスケード でき ます。

X-Ref Target - Figure 3-36

図 3-36 : ク ロ ッ ク領域間の同期パスのク ロ ッ ク ツ リーのバラ ンス調整

• •• • • •• • • • • • • •

• •• • • •• • • • • • • •

• •• • • •• • • •• • •• • •

• •• • • •• • • •• • •• • •

•••••••••••••

•••••••••••••••••••••

• • • • • • •• • • • • •

UltraFast 設計手法ガイ ド 77UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 78: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ ク マルチプレ クサー

並列 BUFGCTRL と カスケード BUFGCTRL を組み合わせて使用する と、 ク ロ ッ ク マルチプレ クサーを構築でき ます。 配置ツールでは、 使用可能な ク ロ ッ ク バッ フ ァー サイ ト に基づいて、 適な配置が検出されます。 可能であれば、 BUFGCTR が同じ ク ロ ッ ク領域に配置され、 専用カスケード パスが活用されます。 可能でない場合は、 隣接する ク ロ ッ ク領域の同じ レベルからの BUFGCTRL が配置されます。

次の図は、 バラ ン ス調整されてカ スケード された 4:1 MUX を示し ています。 BUFGCTRL バッ フ ァーの 初のレベルは、 両方 と も 後の BUFGCTRL (X0Y1) に直接隣接する ク ロ ッ ク領域 (X0Y2、 X0Y0) に配置されます。 こ のコ ンフ ィ ギュ レーシ ョ ンによ り 、 後の BUFGCTRL に到達するすべてのク ロ ッ ク に同じ挿入遅延が使用されます。 同等の構造は 3:1 MUX にも使用でき ます。

X-Ref Target - Figure 3-37

図 3-37 : 並列 BUFGCTRL を使用し た 4:1 MUX

UltraFast 設計手法ガイ ド 78UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 79: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

5:1 またはそれ以上のク ロ ッ ク MUX 構造を作成する場合は、 次の図に示すよ う な対称的な ク ロ ッ ク構造を作成する方法がよ く 使用されますが、 これは 適な ソ リ ューシ ョ ンであ り ません。 各 BUFGCTRL には 2 つの隣接する BUFGCTRL へのカ スケード パスが 1 つしかな く 、 BUFGCTRL 間のすべての接続に 低限の遅延が提供されないからです。

X-Ref Target - Figure 3-38

図 3-38 : 推奨されないバラ ンス調整済み 8:1 ク ロ ッ ク MUX 構造

UltraFast 設計手法ガイ ド 79UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 80: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

大型のク ロ ッ ク マルチプレ クサー (5:1 ~ 8:1 MUX) をサポー ト するため、ザイ リ ン ク スでは次の図に示すよ う なカ スケード BUFGCTRL を使用する こ と をお勧めし ています。 こ の図は、 7 つの BUFGCTRL を使用する 適な 8:1 MUX を示し ています。

注記 : 幅の広い BUFGCTRL ベースのク ロ ッ ク マルチプレ クサーを使用する場合、 一部のパスがハード ウ ェアのほかのパス よ り も長いので、 ク ロ ッ ク挿入遅延のバラ ン ス を調整でき ません。 このため、 この方法は非同期ク ロ ッ ク を多重化する場合にのみ推奨されます。

PLL/MMCM フ ィ ー ドバッ ク パス と補正モー ド

PLL では遅延補正がサポー ト されず、 常に INTERNAL 補正モード で動作するので、 フ ィ ード バッ ク パスは必要あ りません。 同様に、 MMCM が INTERNAL 補正モード に設定される場合も フ ィ ード バッ ク パスは必要あ り ません。 どち らの場合も、 Vivado ツールで常に不要なフ ィ ード バッ ク ク ロ ッ ク バッ フ ァーが自動的に削除されるわけではあ りません。 フ ァ ンアウ ト の大きいク ロ ッ ク リ ソースの使用量を減らすには、 ク ロ ッ ク バッ フ ァーを手動で削除する必要があ り ます。 これは、 特にク ロ ッ ク競合が発生する可能性のあ る ク ロ ッ キング使用の多いデザイ ンで重要です。

MMCM 補正が ZHOLD または BUF_IN に設定される場合、 同じ ク ロ ッ ク ルー ト がフ ィ ード バッ ク バッ フ ァーと CLKOUT0 ピンに直接接続されるすべてのバッ フ ァーで駆動されるネ ッ ト に割 り 当て られます。 これによ り 、 挿入遅延が同じにな り 、 CLKOUT0 に接続される I/O ポー ト と シーケンシ ャル セルが位相ア ラ イ メ ン ト されて、 ホール ド タ イ ムがデバイ ス イ ン ターフ ェ イ スで満た される よ う にな り ます。 Vivado ツールでは、 ク ロ ッ ク ルー ト が 適に定義される よ う にこれらのツールのロード がすべて考慮されます。

Vivado ツールでは、 挿入遅延がその他の MMCM 出力と一致する よ う に自動的に処理される こ と はあ り ません。 その他の MMCM 出力バッ フ ァーで駆動されるネ ッ ト の挿入遅延を一致させるには、 次のプロパテ ィ を使用し ます。

• CLOCK_DELAY_GROUP

必要に応じ て、 同じ CLOCK_DELAY_GROUP プロパテ ィ 値をフ ィ ード バッ ク ク ロ ッ ク バッ フ ァー、 CLKOUT0 バッ フ ァー、 およびその他の MMCM 出力バッ フ ァーで直接駆動されるネ ッ ト に適用し ます。 これは、 推奨される方法です。

• USER_CLOCK_ROOT

必要に応じ て、 特定ク ロ ッ ク ルー ト を指定する必要があ る場合は、 フ ィ ード バッ ク ク ロ ッ ク バッ フ ァー、CLKOUT0 バッ フ ァー、 その他の MMCM 出力バッ フ ァーで直接駆動されるネ ッ ト に同じ USER_CLOCK_ROOT プロパテ ィ 値を使用し ます。

X-Ref Target - Figure 3-39

図 3-39 : カスケー ド BUFGCTRL を使用し た 8:1 MUX

UltraFast 設計手法ガイ ド 80UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 81: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

BUFG_GT 分周器

BUFG_GT バッ フ ァーはフ ァブ リ ッ ク のどのロード でも駆動でき、 GT*_CHANNEL から ク ロ ッ ク を分周する ために使用でき るオプシ ョ ンの分周器を含みます。 これによ り 、 ク ロ ッ ク を分周する ために余分な MMCM または BUFG_DIV を使用する必要はな く な り ます。

MMCM ZHOLD/BUF_IN 補正を使用し た I/O タ イ ミ ング

ク ロ ッ ク挿入遅延は、 ク ロ ッ ク ルー ト の位置によ って異な り 、 ク ロ ッ ク ルー ト 配置はロード の配置によ って異なるので、 run 間でばらつきがあ り ます。 このばらつきによ り 、 FPGA 内のタ イ ミ ング と I/O タ イ ミ ング も変わ り ます。

高周波数の I/O を使用する場合は、 I/O タ イ ミ ングをユーザーがさ らに詳細に制御し、 run 間のばらつきがあま り ないよ う にし ます。 これを達成する方法の 1 つと し て、 ク ロ ッ ク ルー ト 配置を指定する方法があ り ます。 ツールは自動モード で実行し て、 ク ロ ッ ク ルー ト 領域を確認し ます。 I/O タ イ ミ ングが問題なければ、 I/O タ イ ミ ングに関連するバッ フ ァー ネ ッ ト にク ロ ッ ク ルー ト が配置される よ う にでき ます。 ク ロ ッ ク ルー ト の配置を決定するには、 Tcl コマン ド の report_clock_utilization [-clock_roots_only] を使用し ます。

次の例の場合、 I/O ポー ト は X0Y0 領域にあ り ます。 Vivado 配置では、 I/O 配置と その他のロード の配置に基づいてク ロ ッ ク ルー ト が X1Y2 に配置される よ う に決定されま し た。

次のサマ リ は、 ク ロ ッ ク ルー ト に制約が付いていない場合の I/O タ イ ミ ングを示し ています。

次の例の場合、 ク ロ ッ ク ルー ト が X0Y0 の I/O レジス タの隣に移動され、 ク ロ ッ ク挿入遅延と タ イ ミ ングの不必要に悪い見積も り 部分が減るので、 I/O タ イ ミ ングが改善されます。

次のサマ リ は、 ク ロ ッ ク ルー ト が移動された場合の I/O タ イ ミ ングを示し ています。

X-Ref Target - Figure 3-40

図 3-40 : ク ロ ッ ク ルー ト に制約が付いていない場合のク ロ ッ ク使用量のサマ リ

X-Ref Target - Figure 3-41

図 3-41 : ク ロ ッ ク ルー ト に制約の付いていない場合のタ イ ミ ング サマ リ

X-Ref Target - Figure 3-42

図 3-42 : ク ロ ッ ク ルー ト にユーザー制約が付いている場合のク ロ ッ ク使用量のサマ リ

X-Ref Target - Figure 3-43

図 3-43 : ク ロ ッ ク ルー ト にユーザー制約が付いている場合のタ イ ミ ング サマ リ

UltraFast 設計手法ガイ ド 81UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 82: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

同期 CDC

デザイ ンに同じ MMCM/PLL からの ク ロ ッ ク間の同期 CDC パスが含まれる場合、 次の方法を使用し て、 ク ロ ッ ク挿入遅延 と スキ ューを さ らに制御し て、 これらのパスのス ラ ッ ク を制御でき ます。

重要 : CDC パスが異な る MMCM/PLL からのク ロ ッ ク間にあ る場合は、 MMCM/PLL のク ロ ッ ク挿入遅延の方が制御するのが困難です。 この場合、 これらのク ロ ッ ク乗せ換えを非同期 と し て扱って、 デザイ ンをそのよ う に変更するこ と をお勧めし ます。

同じ MMCM/PLL の異なる出力ピンからの 2 つの ク ロ ッ ク間のパスにタ イ ミ ングが付いている と、 MMCM/PLL 位相エラーによ り そのパスにク ロ ッ ク のばらつきが追加されます。 高周波数の ク ロ ッ ク を使用するデザイ ンの場合は、位相エラーによ り セ ッ ト ア ッ プ と ホール ド の両方でタ イ ミ ング ク ロージ ャ問題が発生する こ と があ り ます。

次の図は、 位相エラーのあ る場合 と ない場合のパスの例を示し ています。 パス 1 は、 同じ MMCM 出力に接続された 2 つのバッ フ ァーから ク ロ ッ ク が供給されている CDC パスで、 位相エラーは含まれていません。 パス 2 には、 2 つの異なる MMCM 出力から 2 つのク ロ ッ クが供給されてお り 、 位相エラーが含まれます。

同じ MMCM/PLL からの 2 つの同期ク ロ ッ ク がシンプルな周期比 (/2 /4 /8) になっている場合は、2 つの BUFGCE_DIV バッ フ ァーに接続される 1 つの MMCM/PLL 出力を使用する と、 2 つのク ロ ッ ク ド メ イ ン間の位相エラーが発生し ないよ う にでき ます。 BUFGCE_DIV バッ フ ァーでは、 ク ロ ッ ク分周 (/1、 /2、 /4、 /8) が実行されます。 その他の周期比 (/3、 /5、 /7) も使用でき ますが、 ク ロ ッ ク デューテ ィ サイ クルを変更する必要があ り 、 混合エ ッ ジのタ イ ミ ング パスがさ らに困難にな り ます。

注記 : BUFGCE および BUFGCE_DIV には同じセル遅延がないので、 両方の同期ク ロ ッ ク に対し て同じ ク ロ ッ ク バッフ ァー (2 つの BUFGCE または 2 つの BUFGCE_DIV バッ フ ァー ) を使用する こ と をお勧めし ます。

X-Ref Target - Figure 3-44

図 3-44 : MMCM および位相エラー

• • •• •• • • • • • •

• • •• •• • • • • • •• • • • • • •• • • • • •

UltraFast 設計手法ガイ ド 82UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 83: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

次の図は、 CLKOUT0 ク ロ ッ ク を 1 と 2 でそれぞれ分周する 2 つの BUFGCE_DIV を示し ています。

注記 : 次の図では並列で 2 つの BUFGCE_DIV しか使用していませんが、 ク ロ ッ ク領域内で 大 4 つまで使用でき ます。

同じ MMCM または PLL からの複数のク ロ ッ ク間のバラ ン スが自動的に調整される よ う にするには、 バラ ン ス調整する必要のあ る ク ロ ッ ク バッ フ ァーで駆動されるネ ッ ト に同じ CLOCK_DELAY_GROUP プロパテ ィ 値を設定し ます。 次はその他の推奨事項です。

• CLOCK_DELAY_GROUP を多 く の ク ロ ッ クに設定しすぎないよ う にし ます。 設定しすぎ る と、 ク ロ ッ ク配置ツールに負荷がかか り 、 ソ リ ューシ ョ ンが 適でな く なるか、 エラーが発生し ます。

• タ イ ミ ング サマ リ レポー ト でク リ テ ィ カル同期 CDC パス を確認し、 タ イ ミ ングを満たすためにどのク ロ ッ クの遅延を一致させる必要があ るかを決定し ます。

• 要件が厳し く 、 ク ロ ッ ク ト ポロ ジが同じの場合は、 同期ク ロ ッ ク のグループへの CLOCK_DELAY_GROUP の使用は抑えて く ださい。

X-Ref Target - Figure 3-45

図 3-45 : 1 つの MMCM 出力に接続された BUFGCE_DIV を使用する MMCM 同期 CDC

UltraFast 設計手法ガイ ド 83UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 84: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

GT イ ン ターフ ェ イス ク ロ ッ キング

各 GT イ ン ターフ ェ イ スには複数のク ロ ッ ク が必要です。 この ク ロ ッ クの中には 1 つまたは複数の GT ク ワ ッ ド内のボンデ ィ ング された GT*_CHANNEL セル間で共有される ク ロ ッ ク が含まれます。 UltraScale デバイ スには、 大 128 個の GT*_CHANNEL サイ ト が提供されるので、 デザイ ンに数百個のク ロ ッ ク が使用される こ と があ り ます。 ほ と んどの GT ク ロ ッ ク には、 関連する GT*_CHANNEL の隣のク ロ ッ ク領域内に配置された ロード が使用され、 フ ァ ンアウ ト は少な く なっています。 GT ク ロ ッ クの中には、 デバイ ス全体でロード を駆動し、 多 く の ク ロ ッ ク領域で ク ロ ック配線 リ ソース を使用する必要があ る ものがあ り ます。 UltraScale アーキテ クチャには、 必要な多 く の GT ク ロ ッ クを効率的にサポー ト するために、 次のよ う な機能が提供されています。

ダイナ ミ ッ ク ド ラ イバーの付いた BUFG_GT

UltraScale デバイ スでは、 BUFG_GT バッ フ ァーによ り GT ク ロ ッ キングが単純化されています。 BUFG_GT にはダ イナ ミ ッ ク分周機能が含まれるので、 MMCM で GT 出力ク ロ ッ ク の単純な整数除算を実行する必要はな く なっています。 これによ り 、 ク ロ ッ ク リ ソースが節約でき、 分周された GT*_CHANNEL 出力ク ロ ッ ク と フルレー ト のク ロ ッ クの両方が必要な場合に、 ク ロ ッ ク パスのスキ ューを小さ く でき ます。

内部 PCS ロ ジ ッ ク の半分のク ロ ッ ク周期でユーザー ロ ジ ッ ク が動作する GT イ ン ターフ ェ イ スの場合、 または GT*_CHANNEL が user_clk、 sys_clk、 pipe_clk 用に複数の ク ロ ッ ク周波数を生成する必要があ る PCIe® イ ン ターフ ェイ スの場合は、 BUFG_GT グ ローバル ク ロ ッ ク バッ フ ァーを使用でき ます。 次の図では、 TXUSRCLK2 の周波数が TXUSRCLK の周波数の半分であ る単一レーンの GT イ ン ターフ ェ イ スにおける、 7 シ リ ーズ と UltraScale デバイ スのク ロ ッ キング要件を比較し ています。

ク ワ ッ ド内の GT*_CHANNEL の出力ク ロ ッ ク またはク ワ ッ ド内の IBUFDS_GTE3/ODIV2 ピンで生成される基準クロ ッ ク のどれを使用し て も、 同じ ク ロ ッ ク領域内の 24 個の BUFG_GT バッ フ ァーのどれでも駆動でき ます。BUFG_GT_SYNC は、 共有ク ロ ッ ク ソースで駆動される BUFG_GT の リ セ ッ ト と ク リ アを同期する ために常に必要です。

注記 : BUFG_GT_SYNC プ リ ミ テ ィ ブがデザイ ンに含まれない場合、 Vivado ツールで自動的に追加されます。

X-Ref Target - Figure 3-46

図 3-46 : ク ロ ッキング要件の比較

Design inFPGA

Design in UltraScale

Architecture

+1

+2

UltraFast 設計手法ガイ ド 84UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 85: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

アプ リ ケーシ ョ ンの中には、 GT 出力ク ロ ッ ク または IBUFDS_GTE3/ODIV2 基準ク ロ ッ ク の複雑な非整数ク ロ ッ ク分周を生成するために MMCM を使用する必要のあ る ものがあ り ます。 こ の場合、 BUFG_GT が MMCM を直接駆動する必要があ り ます。 デフ ォル ト では、 MMCM は BUFG_GT と同じ ク ロ ッ ク領域の行に配置されます。 ほかの MMCM が 同じ MMCM サイ ト を使用し よ う とする場合は、 自動配置された MMCM が BUFG_GT のでき るだけ近 くに配置されているかを確認し、 長い配線によ り ク ロ ッ キング リ ソースが無駄に使用されないよ う にする必要があ ります。

シングル クワ ッ ド vs. マルチ クワ ッ ド イ ン ターフ ェ イス

マルチチャネル イ ン ターフ ェ イ スの場合、 マス ター チャネルでそのイ ン ターフ ェ イ スの GT*CHANNE すべてに対し て [RT]XUSRCLK[2] を生成でき ます。 マルチチャネル イ ン ターフ ェ イ スが複数のク ワ ッ ド にまたがる場合、 基準ク ロ ッ ク ソースからの GT*CHANNEL の 大許容距離は上下 2 ク ロ ッ ク領域です。

GTイ ン ターフ ェ イ スが 1 つのク ワ ッ ド内に含まれる場合は、 配置で BUFG_GT ク ロ ッ ク がローカル ク ロ ッ ク と し て扱われます。 この場合、 BUFG_GT の横方向に隣接し た ク ロ ッ ク領域に BUFG_GT ク ロ ッ ク ロード が配置される よう 試みられます (BUFG_GT を含むク ロ ッ ク領域から開始し、 デバイ スの半分の幅まで使用される可能性あ り )。

[RT]XUSRCLK/[RT]XUSRCLK2 スキューの一致

[RT]XUSRCLK2 が [RT]XUSRCLK の半分の周波数で動作する場合 (1 で分周する BUFG_GT と 2 で分周する BUFG_GT)、 GT イ ン ターフ ェ イ スの各 GT*CHANNEL の [RT]XUSRCLK/[RT]XUSRCLK2 ペア間のスキ ュー要件は厳し く な り ます。 このスキ ュー要件を満たすには、 [RT]XUSRCLK/[RT]XUSRCLK2 ペアを生成するマス ター チャネルの 大 2 ク ロ ッ ク領域上または下までに GT*CHANNEL を配置し ます。 また、 配置ツールでは、 スキ ューが次のよう に厳し く 制御されます。

• BUFG_GT ペアを ク ワ ッ ド の上部または下部 12 個の BUFG_GT に割 り 当てます。

• BUFG_GT を含むク ロ ッ ク領域に両方のク ロ ッ ク のク ロ ッ ク ルー ト を割 り 当てます。

推奨 : スキ ュー違反を避ける ため、 [RT]XUSRCLK2 が [RT]XUSRCLK の半分の周波数で動作する場合は、 この クロ ッ キング ト ポロ ジに従 う よ う にし て く ださい。

PCI Express の CORECLK/PIPECLK/USERCLK スキューを一致させるための統合ブロ ッ ク

UltraScale Integrated Block for PCI Express® には、 CORECLK、 USERCLK、 および PIPECLK の 3 つのク ロ ッ ク が必要です。 この 3 つのク ロ ッ クは、 物理イ ン ターフ ェ イ スの 1 つの GT*_CHANNEL の TXOUTCLK ピンで駆動される BUFG_GT から供給されます。 CORCLK ピン と PIPECLK ピン間、 および CORECLK ピン と USERCLK ピン間には、厳しいスキ ュー要件があ り ます。 スキ ュー要件を満たすため、 配置ツールで次のよ う にスキ ューが厳し く 制御されます。

• グループ内の 3 つの PCIe ク ロ ッ ク を駆動する BUFG_GT を、 ク ワ ッ ド の上部または下部 12 個の BUFG_GT に割り 当てます。

• 3 つすべての ク ロ ッ ク のク ロ ッ ク ルー ト を同じ ク ロ ッ ク領域に割 り 当てます。

注記 : PCIe のク ロ ッ キング要件については、 『UltraScale Architecture Gen3 Integrated Block for PCI Express LogiCORE IP 製品ガ イ ド』 (PG156) [参照 41] を参照し て く ださい。

UltraFast 設計手法ガイ ド 85UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 86: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

7 シ リーズ デバイスのク ロ ッ キング

このセ ク シ ョ ンでは、 Virtex®-7 のク ロ ッ ク リ ソース を例と し て使用し ます。 Virtex-6 デバイ スのク ロ ッ ク リ ソースも同様です。 別のアーキテ クチャ を使用する場合は、 該当デバイ スの ク ロ ッ キング リ ソース ユーザー ガ イ ド [参照 39] を参照し て く ださい。

Virtex-6 および Virtex-7 デバイ スには、 BUFG と い う 32 個のグ ローバル ク ロ ッ ク バッ フ ァーが含まれます。 BUFG は、 ク ロ ッ ク に関する次の要件を満たすのに 適なバッ フ ァーです。

• ク ロ ッ ク数

• デザイ ン パフ ォーマン ス

• 低消費電力

• 次のよ う なその他のク ロ ッ ク特性

° ク ロ ッ ク ゲー ト

° マルチプレ ク サー

° 分周

° その他のク ロ ッ ク制御

BUFG コ ンポーネン ト は合成で推論され、 制限が少な く 、 ほ と んどの汎用ク ロ ッ ク に使用でき ます。

推奨 : 使用可能な BUFG の数よ り 多 く の BUFG が必要な場合、 または全体的な ク ロ ッ ク特性を改善する必要があ る場合は、 使用可能な ク ロ ッ ク リ ソースに対し て ク ロ ッ ク の要件を解析し、 タ ス ク に 適な リ ソース を選択し て く ださい。

グローバル ク ロ ッ ク リ ソース

このセ ク シ ョ ンでは、 次のグ ローバル ク ロ ッ ク リ ソースについて説明し ます。

• BUFG

BUFG エレ メ ン ト は、 ク ロ ッ キングによ く 使用されます。 グ ローバル ク ロ ッ ク バッ フ ァーには追加の機能があり ますが、 これらの機能を使用するにはデザイ ン コード または合成に手動で変更を加える必要があ り ます。

• BUFGCE

BUFGCE プ リ ミ テ ィ ブを使用する と、 追加のロ ジ ッ クや リ ソース を使用せずに、 グ リ ッチのない同期ク ロ ッ ク イネーブル (ゲーテ ィ ング) 機能にア ク セスでき ます。 BUFGCE は、 異なる時間の回路動作に異なる周波数が必要な場合に、 ク ロ ッ ク を一定期間停止し た り 、 高周波数ク ロ ッ ク から 1/2 または 1/4 の周波数など、 スキ ューおよび消費電力の少ない分周ク ロ ッ ク を作成でき ます。

• BUFGMUX

BUFGMUX を使用する と、 1 つのク ロ ッ ク ソースから別の ク ロ ッ ク ソースに、 グ リ ッチまたはその他の問題なしに安全に切 り 替え る こ と ができ ます。 これは、 時間および動作条件によ って 2 つの異なる ク ロ ッ ク周波数が必要な場合に使用でき ます。

• BUFGCTRL

BUFGCTRL を使用する と、 グ ローバル ク ロ ッ ク ネ ッ ト ワーク の機能すべてを利用でき、 ク ロ ッ ク が失われたり 停止し た り し た場合の切 り 替え回路など、 複雑な ク ロ ッ ク条件で ク ロ ッ ク を非同期制御でき ます。

このコ ンポーネン ト は、 ほ と んどの場合コード にイ ン ス タ ンシエー ト する必要があ り 、 必要な ク ロ ッ ク動作を得るため適切に接続する必要があ り ます。

UltraFast 設計手法ガイ ド 86UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 87: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

状況によ っては、 IP および合成でこれらのア ド バン ス ク ロ ッ ク機能が使用される こ と も あ り ます。 た と えば、Memory Interface Generator (MIG) を使用する場合、 I/O での高速データの送受信に特別な ク ロ ッ ク バッ フ ァーが使用される こ と があ り ます。 常に必要な ク ロ ッ ク リ ソースおよび各 IP に使用される ク ロ ッ ク リ ソース を認識し、 全体的な ク ロ ッ ク アーキテ クチャおよびプラ ンニングで考慮する こ と をお勧めし ます。

これらのコ ンポーネン ト の詳細は、 ク ロ ッ キング リ ソース ユーザー ガ イ ドおよびラ イブラ リ ガイ ド を参照して く ださい。

リージ ョ ナル ク ロ ッ ク リ ソース

グ ローバル ク ロ ッ ク リ ソースだけでな く 、 次の リ ージ ョ ナル ク ロ ッ ク リ ソース も あ り ます。

• 水平ク ロ ッ ク領域バッ フ ァー (BUFH、 BUFHCE)

水平ク ロ ッ ク領域バッ フ ァー (BUFH、 BUFHCE) は、 ス タ ン ド ア ロ ン または BUFG と組み合わせて使用でき ます。 これらのバッ フ ァーを使用する と、 ク ロ ッ クおよびそのク ロ ッ クに接続される関連ロ ジ ッ クの配置を さ らに詳細に制御でき、 ク ロ ッ ク ド メ イ ンの多いデザイ ンに追加のク ロ ッ ク リ ソース を提供し ます。

BUFH および BUFHCE リ ソース を使用する と、 任意のク ロ ッ ク領域に接続される グ ローバル ク ロ ッ ク ネ ッ トワーク (BUFG) の一部を使用でき る よ う にな り ます。 ク ロ ッ ク領域内に配置される小さ な ク ロ ッ ク ド メ イ ンでは、 これによ り グ ローバル ク ロ ッ ク ネ ッ ト ワーク の未使用部分にあ る スキ ューの小さい リ ソースにア ク セスでき る よ う にな り ます。 BUFHCE には同じ グ リ ッチのない ク ロ ッ ク イネーブルが含まれ、 特定のク ロ ッ ク ド メ インのク ロ ッ ク ゲーテ ィ ングを よ り シンプルで安全な ものにでき ます。

BUFHCE を BUFG で駆動する と、 中粒度のク ロ ッ ク ゲーテ ィ ング フ ァ ン ク シ ョ ン と し て使用でき ます。 ク ロ ック ド メ イ ンの数百から数千個のロード を含む部分で ク ロ ッ ク を断続的に停止する必要があ る場合は、 BUFHCE が効率的な ク ロ ッ ク リ ソース と なる こ と があ り ます。 BUFG は同じ または異なる ク ロ ッ ク領域内の複数の BUFH を駆動でき るので、 スキ ューの小さいク ロ ッ ク ド メ イ ンが複数可能と な り 、 それぞれで ク ロ ッ ク を個別に制御でき ます。

BUFH を単独で使用する場合は、 BUFH に接続されている ロード はすべて同じ ク ロ ッ ク領域に含まれる必要があり ます。 これは、 高速で細粒度の (ロード が少ない) ク ロ ッ ク が必要な場合に適し ています。 BUFHCE は、 特定ク ロ ッ ク領域内で中粒度のク ロ ッ ク ゲーテ ィ ングを達成する ために使用でき ます。 BUFH で駆動される リ ソースがク ロ ッ ク領域で使用可能な リ ソース を超えないよ う にし、 また、 その他の競合が発生し ないよ う にし て ください。

ヒ ン ト : この問題は、 これらのネ ッ ト ワークのロード を少な く する と回避でき ます。

X-Ref Target - Figure 3-47

図 3-47 : 水平ク ロ ッ ク領域バッ フ ァー

GatedLogic

Non-gatedLogic

BUFHCEBUFG

Enable

Clock

CE

OI

OI

X13496

UltraFast 設計手法ガイ ド 87UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 88: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

BUFH と、 BUFG、 ほかの BUFH、 またはほかのク ロ ッ ク リ ソースで駆動される ク ロ ッ ク ド メ イ ン間で、 位相関係が異なる可能性があ り ます。 ただし、 2 つの BUFH が水平方向に隣接し た領域を駆動する場合は例外です。 この場合、 両方の BUFH が同じ ク ロ ッ ク ソースで駆動される と、 左のク ロ ッ ク領域 と右のク ロ ッ ク領域の間のスキ ューは厳密に制御された位相関係にな り 、 データ を安全に 2 つの BUFH ク ロ ッ ク ド メ イ ン間で転送でき ます。BUFH は、 ク ロ ッ ク入力または GT の反対側の領域の MMCM または PLL にア ク セスする ために使用でき ますが、 その場合は MMCM または PLL が使用可能であ る こ と を確認し て く ださ い。

• リ ージ ョ ナル ク ロ ッ ク バッ フ ァー (BUFR)

リ ージ ョ ナル ク ロ ッ ク バッ フ ァー (BUFR) は、 よ り 低速の I/O およびフ ァブ リ ッ ク ク ロ ッ ク と し て通常使用され、 よ り 高速の I/O データ を送受信し ます。 BUFR には、 ク ロ ッ ク を イネーブルまたはデ ィ スエーブル (ゲー ト ) する機能があ るほか、 一般的な ク ロ ッ ク分周を実行する機能も あ り ます。 Virtex-7 デバイ スの場合、 BUFR は存在する ク ロ ッ ク領域のみ駆動でき ます。 このため、 このバッ フ ァーは小規模な ク ロ ッ ク ネ ッ ト ワーク に適し ています。

BUFR のパフ ォーマンスは BUFG および BUFH よ り も劣るので、 高速のク ロ ッ クには使用しないよ う にして く ださい。 ただし、 中速から低速のク ロ ッ クが必要な場合には、 使用をお勧めし ます。 ビル ト イ ンのク ロ ッ ク分周機能が追加されているので、 高速 I/O イ ン ターフ ェ イ ス ク ロ ッ ク などの外部ク ロ ッ ク ソースからの分周された クロ ッ ク ネ ッ ト ワークに向いています。 BUFR はグ ローバル配線は消費せず、 BUFH の代わ り に使用でき ます。

• I/O ク ロ ッ ク バッ フ ァー (BUFIO)

I/O ク ロ ッ ク バッ フ ァー (BUFIO) は、 入力ロ ジ ッ クへの I/O データ を受信するためだけに使用され、 デバイ スからの出力ロ ジ ッ ク に出力ク ロ ッ ク を供給し ます。 BUFIO は、 通常次のために使用されます。

° バン ク内で高速のソース同期データ を受信する

° BUFR および ISERDES または OSERDES ロ ジ ッ ク と共に使用される場合に、 データ速度をデバイ ス内で管理可能な速度に落 とす

重要 : BUFIO は、 IDDR、 ODDR、 ISERDES、 OSERDES、 シンプルな専用入力または出力レジス タ などの ILOGIC および OLOGIC 構造にあ る入力および出力コ ンポーネン ト のみを駆動でき ます。

BUFIO を使用する場合は、 I/O ロ ジ ッ ク と フ ァブ リ ッ ク間でデータ を確実に転送する必要があ る こ と を考慮し てく ださい。

• マルチ リ ージ ョ ナル ク ロ ッ ク バッ フ ァー (BUFMR)

マルチ リ ージ ョ ナル ク ロ ッ ク バッ フ ァー (BUFMR) を使用する と、 1 つのク ロ ッ ク ピン (MRCC) でそのバン ク内の BUFIO および BUFR を駆動でき るほか、 その上下の I/O バン ク (存在する場合) も駆動でき ます。

ザイ リ ン ク ス 7 シ リ ーズ FPGA デバイ スのク ロ ッ キング リ ソースの詳細は、 『7 シ リ ーズ FPGA ク ロ ッ キング リソース ユーザー ガイ ド』 (UG472) [参照 39] を参照し て く ださい。

SSI デバイスのク ロ ッ クに関する追加の考慮事項

通常、 前述のク ロ ッ ク に関する考慮事項はすべて SSI テ ク ノ ロ ジ デバイ スにも当てはま り ますが、 これらのデバイス を ターゲ ッ ト にする場合、 その構造から、 追加の考慮事項があ り ます。 BUFMR を使用する場合は、 SLR の境界をまたぐ ク ロ ッ ク リ ソースは駆動でき ません。 そのため、 BUFMR を駆動する ク ロ ッ ク を、 SLR 内の中央ク ロ ッ ク領域にあ るバン ク または ク ロ ッ ク領域に配置する こ と をお勧めし ます。 これによ り 、 SLR の左側または右側にあ る 3 つすべてのク ロ ッ ク領域にア ク セスでき る よ う にな り ます。

グ ローバル ク ロ ッ キングに関し ては、 デザイ ンに必要なグ ローバル ク ロ ッ ク (BUFG) が 16 個以下の場合は、 競合が発生し ないよ う にツールで自動的に BUFG が割 り 当て られるので、 これ以上考慮する事項はあ り ません。 必要な BUFG が 16 個を超えるが 32 個未満の場合は、 ピンの選択および配置に注意を払い、 グ ローバル ク ロ ッ ク ラ イ ンの競合やク ロ ッ ク ロード の配置によ って リ ソースの競合が発生し ないよ う にする必要があ り ます。

UltraFast 設計手法ガイ ド 88UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 89: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

その他すべてのザイ リ ン ク ス 7 シ リ ーズ デバイ ス と同様、 CCIO (ク ロ ッ ク兼用 I/O) およびそれに関連する CMT (クロ ッ ク マネージ メ ン ト タ イル) は、 SRL 内で駆動でき る BUFG に制限があ り ます。 SLR の上半分または下半分にある CCIO は、 その SLR の上半分または下半分にあ る BUFG のみを駆動でき ます。 このため、 ピンおよび関連する CMT は、 すべての SLR の上半分または下半分で必要な BUFG が合計 16 個以下になる よ う に選択する必要があ り ます。 こ う する こ と で、 すべてのク ロ ッ ク が競合な しですべての SLR を駆動でき る よ う に、 ツールですべての BUFG が自動的に割 り 当て られます。

32 個を超え る グ ローバル ク ロ ッ ク が必要なデザイ ンの場合は、小さいク ロ ッ ク ド メ イ ンには BUFR および BUFH を使用し て、 必要なグ ローバル ク ロ ッ ク ド メ イ ンの数を減らせるかど う か確認する こ と をお勧めし ます。 BUFR と BUFMR を一緒に使用する と、 SLR の半分 (Virtex-7 ク ラ スの SLR の場合、 約 25 万個のロ ジ ッ ク セル) にまたがる 3 つのク ロ ッ ク領域内の リ ソース を駆動でき ます。 垂直方向に隣接し た ク ロ ッ ク領域では、 左側と右側の BUFH 両方を小さいスキ ューで駆動でき るので、 SLR の 1/3 (約 16 万 7 千個のロ ジ ッ ク セル) のク ロ ッ ク ド メ イ ンがイネーブルにな り ます。

これらの リ ソース をでき るだけ使用する と、 ク ロ ッ ク リ ソースの競合に関する考慮事項が減るだけでな く 、 全体的な配置も改善される こ と が多いので、 パフ ォーマン スおよび消費電力も改善されます。

SLR 半分以上または複数の SLR を駆動する必要のあ る ク ロ ッ ク が 32 個よ り 多 く 必要な場合は、BUFG グ ローバル クロ ッ ク スパイ ンを分割でき ます。 SLR 周辺の垂直グ ローバル ク ロ ッ ク ラ イ ンには絶縁バッ フ ァーが存在するので、異なる SLR の同じ垂直グ ローバル ク ロ ッ ク ト ラ ッ ク にあ る 2 つの BUFG を競合な く 使用でき ます。 この機能を使用するには、 ユーザーの制御および操作がさ らに必要 と な り ます。 次の図では、 3 つの SLR にあ る BUFG0 から BUFG2 が絶縁されているので、 それぞれの SLR 内に独立し た ク ロ ッ ク が含まれます。 BUFG31 ラ イ ンは絶縁されていないので、 同じ BUFG31 (図の SLR2 内) が 3 つすべての SLR のク ロ ッ ク ラ イ ンを駆動する よ う にし、 ほかの SLR の BUFG31 はデ ィ スエーブルにする必要があ り ます。

BUFG を注意深 く 選択し、 手動配置 (LOC) する必要があ り ます。 各ク ロ ッ ク ド メ イ ンのすべてのロード を手動でグループ化し、 適切な SLR に配置し て ク ロ ッ ク競合が発生し ないよ う にする必要があ り ます。 すべてのグ ローバル クロ ッ ク が配置され、 すべてのロード がク ロ ッ ク競合がないよ う に管理され、 ク ロ ッ クがすべてのロード に到達できる よ う になっている と、 32 個を超え る グ ローバル リ ソース を使用でき る よ う にな り ます。

UltraFast 設計手法ガイ ド 89UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 90: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

X-Ref Target - Figure 3-48

図 3-48 : SSI デバイスのク ロ ッ ク ラ イ ンの絶縁 (オプシ ョ ン)

X14051

UltraFast 設計手法ガイ ド 90UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 91: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

SSI デバイスのグローバル ク ロ ッ ク リ ソースのク ロ ッ ク スキュー

高集積度 FPGA デバイ スのク ロ ッ ク スキ ューが、 パスの全体的な タ イ ミ ング バジェ ッ ト のかな り の部分を占めて しま う こ と があ り ます。 ク ロ ッ ク スキ ューが大きすぎる と、 大ク ロ ッ ク速度で問題が発生するだけでな く 、 ホールド タ イ ム要件も厳し く な り ます。 デバイ スに複数のダ イがあ る と、 PVT 式のプロセス部分が悪化し ますが、 ザイ リン ク スのアセンブ リ プロセスで管理されてお り 、 同じ よ う な速度のダ イのみが一緒にパッ ケージ化される よ う になっています。

このよ う に余分な操作はあ り ますが、 ザイ リ ン ク ス タ イ ミ ング ツールではこれらの差異がタ イ ミ ング レポー ト の一部 と し て考慮されます。 パス解析中には、 これらの面がセ ッ ト ア ッ プおよびホール ド 算出の一部と し て解析され、指定し た要件に対するパス遅延の一部 と し てレポー ト されます。 SSI テ ク ノ ロ ジ デバイ スでも、 これらはタ イ ミ ング解析ツールで考慮されるので、 別に算出し た り 考慮し た り する必要はあ り ません。

一番上または一番下の SLR を使用する と、 距離が遠いほど遅延差も大き く な るので、 スキ ューが増加し ます。 このため、 複数の SLR を駆動する必要のあ る グ ローバル ク ロ ッ クは中央の SLR に配置する こ と をお勧めし ます。 これによ り 、 パーツ全体にク ロ ッ ク ネ ッ ト ワーク がよ り 均一に分配され、 全体的な ク ロ ッ ク スキ ューが削減されます。

UltraScale デバイ ス を ターゲ ッ ト とする と ク ロ ッ ク配置への影響は小さ く な り ますが、 ク ロ ッ ク挿入遅延およびクロ ッ ク の消費電力を削減するため、 ク ロ ッ ク ソース を ク ロ ッ ク ロード の中央のでき るだけ近 く に配置する こ と を強く お勧めし ます。

ク ロ ッ ク構造の設計

こ こ まででク ロ ッ ク の決定に関する主な考慮事項について説明し たので、 次にデザイ ンに必要な ク ロ ッ ク を達成する方法について説明し ます。

推論

Vivado 合成では、 ユーザーが指定し な く て も、 すべてのク ロ ッ ク構造に対し てアーキテ クチャで許容される 大数までのグ ローバル バッ フ ァー (BUFG) が自動的に指定されます (特に指定し た場合または合成ツールで制御される場合を除 く )。 前述のよ う に、 BUFG を使用する と、 ほ と んどのク ロ ッ キングのニーズに合った、 詳細に制御されたスキ ューの小さいネ ッ ト ワーク が提供されます。 デザイ ン ク ロ ッ ク がそのパーツの BUFG の数または機能を超えていなければ、 これ以上の操作は必要あ り ません。

ただし、 ク ロ ッ ク構造の制御を さ らに追加する と、 ジ ッ ター、 スキ ュー、 配置、 消費電力、 パフ ォーマン ス、 またはその他の特性などを改善でき る こ と があ り ます。

合成制約および属性

ク ロ ッ ク リ ソース を制御する単純な方法は、 CLOCK_BUFFER_TYPE 合成制約または属性を使用する こ と です。 合成制約は、 次のために使用でき ます。

• BUFG の推論を回避

• BUFG を代替ク ロ ッ ク構造 と置換

• 存在し ない場合にク ロ ッ ク バッ フ ァーを指定

合成制約を使用する と、 コード を変更する必要な く 、 これらの制御を実行でき ます。

属性は、 次のいずれかで指定でき ます。

• HDL コード に直接 (コード内に存続可能)

• XDC フ ァ イルの制約と し て (HDL ソース コード に変更を加え る必要な し )

UltraFast 設計手法ガイ ド 91UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 92: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

IP の使用

IP の中には、 ク ロ ッ ク構造を作成でき る ものも あ り ます。 特に Clocking Wizard および I/O Wizard を使用する と、 次を含むク ロ ッ ク リ ソースおよび構造を選択および作成しやす く な り ます。

• BUFG

• BUFGCE

• BUFGCE_DIV (UltraScale デバイ ス)

• BUFGCTRL

• BUFIO (7 シ リ ーズ デバイ ス)

• BUFR (7 シ リ ーズ デバイ ス)

• 次のよ う な ク ロ ッ ク調整ブロ ッ ク :

° MMCM (Mixed Mode Clocking Manager)

° 位相ロ ッ ク ループ (PLL) コ ンポーネン ト

Memory Interface Generator (MIG)、 PCIe、 または Transceiver Wizard などのさ らに複雑な IP にも、 その IP の一部 と して ク ロ ッ ク構造が含まれるので、 正し く 考慮すれば、 ク ロ ッ ク リ ソースがさ らに追加されます。 正し く 考慮し ない場合、 デザイ ンの残 り の部分でク ロ ッ ク オプシ ョ ンの一部が制限される可能性があ り ます。

すべてのイ ン ス タ ンシエー ト 済み IP に対し て、 ク ロ ッ ク要件、 機能、 リ ソースについて よ く 理解し、 でき るだけデザイ ンのほかの部分で利用でき る よ う にし てお く こ と をお勧めし ます。

詳細は、 「IP (Intellectual Property) の使用」 を参照し て く ださい。

イ ンス タ ンシエーシ ョ ン

ク ロ ッ ク構造を簡単に直接的な方法で制御するには、 必要な ク ロ ッ ク リ ソース を HDL デザイ ンにイ ン ス タ ンシエート し ます。 これによ り 、 デバイ スで使用可能な機能すべてにア ク セスでき、 それら を完全に制御でき ます。BUFGCE、 BUFGMUX、 BUFHCE、 または追加のロ ジ ッ クおよび制御を必要 とするその他のク ロ ッ ク構造を使用する場合、 通常イ ン ス タ ンシエー ト が唯一のオプシ ョ ンにな り ます。 単純なバッ フ ァーでも、 デザイ ンに直接イ ン スタ ンシエー ト するのが必要な結果を取得するための も迅速な方法であ る こ と があ り ます。

ク ロ ッ ク リ ソース を管理する効率的な方法は、 特にイ ン ス タ ンシエー ト する場合は、 ク ロ ッ ク リ ソース を別のエンテ ィ テ ィ か、 コード の 上位またはその付近にイ ン ス タ ンシエー ト されたモジュールに含める こ と です。 コード の

上位に記述する と、 デザイ ン内の複数モジュールに分配しやす く な り ます。

ク ロ ッ ク リ ソースが共有でき る箇所および共有すべき箇所に注意し て く ださい。 ク ロ ッ ク リ ソース を重複し て作成する と、 リ ソースが無駄になるだけでな く 、 通常消費電力が増加し、 競合が発生する可能性が高 く な り 、 全体的なイ ンプ リ メ ンテーシ ョ ン ツールの実行時間が長 く な り 、 タ イ ミ ング条件がさ らに複雑にな り ます。 これが、 ク ロ ック リ ソース を 上位モジュールの近 く に含めるのが重要であ る も う 1 つの理由です。

ヒ ン ト : 特定の ク ロ ッ ク プ リ ミ テ ィ ブを イ ン ス タ ンシエー ト するには、 Vivado HDL テンプレー ト を使用でき ます。詳細は、 「Vivado Design Suite HDL テンプレー ト の使用」 を参照し て く ださい。

UltraFast 設計手法ガイ ド 92UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 93: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ クの位相、 周波数、 デューテ ィ サイ クル、 およびジ ッ ターの制御

このセ ク シ ョ ンでは、 ク ロ ッ ク特性を詳細に調整する手法について説明し ます。

ク ロ ッ ク調整ブロ ッ ク (MMCM および PLL) の使用

MMCM または PLL を使用する と、 入力ク ロ ッ クの全体的な特性を変更でき ます。

MMCM は、 ク ロ ッ ク の挿入遅延を削除する (入力システム同期データに ク ロ ッ ク の位相を揃え る ) のに も よ く 使用されます。

MMCM は、 次のためにも使用でき ます。

• 位相を さ らに厳し く 制御

• ク ロ ッ ク のジ ッ ターをフ ィ ルター

• ク ロ ッ ク周波数を変更

• ク ロ ッ ク のデューテ ィ サイ クルを修正または変更

MMCM または PLL は、 ク ロ ッ ク特性を調整および制御する ためによ く 使用されます。

MMCM または PLL を使用するには、 MMCM が仕様範囲内で動作し、 出力に必要な ク ロ ッ ク特性を提供でき る よ うに、 複数の属性を調整する必要があ り ます。 このため、 Clocking Wizard を使用し て この リ ソース を正し く 設定するこ と を強 く お勧めし ます。

MMCM または PLL は直接イ ン ス タ ンシエー ト し て、 さ らに詳細に制御でき ますが、 適切な設定を使用する よ う にして く ださい。 MMCM または PLL の設定が正し く ない と、 次のよ う になる可能性があ り ます。

• ジ ッ ターの増加によ り ク ロ ッ ク のばらつきが増加する

• 間違った位相関係が構築される

• タ イ ミ ングがさ らに困難になる

重要 : MMCM または PLL を設定するのに Clocking Wizard を使用する と、 妥当な消費電力特性が使用され、 出力ジ ッターの小さい MMCM をデフ ォル ト で生成でき ます。

目標によ って、 Clocking Wizard の設定を次のよ う に変更でき ます。

• ジ ッ ターを さ らに削減し、 タ イ ミ ングを改善し ます。 ただし、 消費電力は悪化し ます。

• 消費電力を削減する よ う にし ます。 ただし、 出力ジ ッ ターは増加し ます。

MMCM または PLL を使用する場合は、 次に注意し て く ださい。

• 入力を未接続のま まにし ないで く ださい。 合成ツールまたはその他の 適化ツールで未接続の入力が接続される よ う にする と、 接続される値が必要な値 と異なる可能性があ るので、 推奨されません。

• RST はユーザー ロ ジ ッ ク に接続し、 信頼性のあ る ク ロ ッ ク ソースで制御される ロ ジ ッ ク でアサー ト でき る よ うにする必要があ り ます。 RST をグ ラ ン ド接続する と、 ク ロ ッ クに割 り 込みがあった場合に問題と なる こ と があり ます。

• LOCKED 出力は、 リ セ ッ ト のイ ンプ リ メ ンテーシ ョ ンに使用する必要があ り ます。 た と えば、 PLL からのクロ ッ ク が供給される同期ロ ジ ッ クは、 LOCKED がアサー ト される まで リ セ ッ ト のま まにし てお く 必要があ り ます。 LOCKED 信号は、 デザイ ンの同期部分で使用する前に同期する必要があ り ます。 LOCKED 信号をプロセ ッサ マ ッ プに追加し、 デバッ グする と きに表示される よ う にする こ と をお勧めし ます。

• フ ィ ード バッ ク パスの BUFG は、 PLL/MMCM 出力ク ロ ッ ク の位相と入力基準ク ロ ッ ク の位相がア ラ イ メ ン トされる必要があ る場合にのみ必要です。

UltraFast 設計手法ガイ ド 93UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 94: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• CLKFBIN および CLKFBOUT 間の接続を確認し て く ださい。

推奨 : Clocking Wizard 内でさ まざまな設定を試し て、 全体的なデザイ ン目標を達成するために も必要と される コ ンフ ィ ギュ レーシ ョ ンが作成される よ う にし て く ださい。

ク ロ ッ クに IDELAY を使用し た位相制御

7 シ リ ーズ デバイ スでは、 位相を少しだけ調整する必要があ る場合は、 MMCM または PLL の代わ り に IDELAY または ODELY を使用し て遅延を追加でき ます。 これによ り 、 関連データに対する ク ロ ッ ク の位相オフセ ッ ト が増加し ます。 UltraScale デバイ スでは、 入力ク ロ ッ ク ソースに IDELAY を使用する こ と はでき ません。 位相の調整が必要な場合は、 MMCM を使用する こ と をお勧めし ます。

ゲーテ ッ ド ク ロ ッ クの使用

ザイ リ ン ク ス FPGA デバイ スには、 フ ァ ンア ウ ト が大き く 、 スキ ューの小さいク ロ ッ ク リ ソース を提供可能な専用ク ロ ッ ク ネ ッ ト ワーク が含まれています。 HDL コード で細粒度ク ロ ッ ク ゲーテ ィ ング手法が暗示される と、 その機能およびこの専用 リ ソースへのマ ッ プが妨害される こ と があ り ます。 このため、 FPGA デバイ ス を直接ターゲ ッ ト する よ う に記述する場合、 ク ロ ッ ク ゲーテ ィ ングの構文を ク ロ ッ ク パスに記述するのはお勧めし ません。 機能または消費電力の目的でデザイ ンの特定の部分を停止するには、 ク ロ ッ ク イネーブルを推論する コード手法を使用し て クロ ッ ク供給を制御し ます。

コード に既にク ロ ッ ク ゲーテ ィ ング構文が含まれる場合、 またはそのよ う なコーデ ィ ング ス タ イルを必要 とする別のテ ク ノ ロ ジ用であ る場合は、 合成ツールを使用し て、 ク ロ ッ ク パス内に配置されたゲー ト をそのデータ パスの クロ ッ ク イ ネーブルにマ ッ プし直すこ と をお勧めし ます。 これによ り 、 ク ロ ッ ク リ ソースへのマ ッ プが改善され、データのゲー ト 付き ド メ イ ンからの入力および出力のための回路のタ イ ミ ング解析を単純化でき ます。

ク ロ ッ ク ネ ッ ト ワーク の大部分を一定の期間シ ャ ッ ト ダウ ン可能な場合、 BUFGCE または BUFGCTRL を使用し てク ロ ッ ク ネ ッ ト ワーク を イネーブルまたはデ ィ スエーブルにでき ます。 UltraScale デバイ ス を ターゲ ッ ト と し ている場合は、 BUFGCE_DIV および BUFG_GT をゲーテ ィ ングする こ と もでき ます。 7 シ リ ーズ デバイ スでは、 BUFHCE、BUFR、 および BUFMRCE を使用し て ク ロ ッ ク をゲーテ ィ ングする こ と もでき ます。 ク ロ ッ ク を一定期間低速にでき る場合は、 これらのバッ フ ァーを追加ロ ジ ッ ク と共に使用し て定期的に ク ロ ッ ク ネ ッ ト を イネーブルにでき ます。または、 BUFGMUX を使用し て ク ロ ッ ク ソース を よ り 高速のク ロ ッ ク信号から よ り 低速のク ロ ッ ク に切 り 替え る こと も でき ます。

これらの手法のいずれを使用し て も、 ダ イナ ミ ッ ク消費電力を効率的に削減でき ますが、 要件およびク ロ ッ ク ト ポロ ジによ って、 この中の 1 つの手法がほかの手法よ り も効率的になる こ と があ り ます。 次に例を示し ます。

• 外部生成ク ロ ッ ク (450MHz 未満) で、 3 つまでのク ロ ッ ク領域に供給するためだけに必要な場合は、 BUFR が適です。

• Virtex-7 デバイ スの場合、 複数のク ロ ッ ク領域 (ただし、 垂直に隣接し た 3 つまでの領域のみ) でこの手法を使用するには、 BUFMRCE も必要と なる可能性があ り ます。

• BUFHCE は、 1 つのク ロ ッ ク領域に制限でき る高速ク ロ ッ ク に適し ています。 BUFGCE はデバイ ス全体を駆動でき、 も柔軟ですが、 消費電力の面では 適な選択 と は言えません。

出力ク ロ ッ クの作成

FPGA デバイ ス外部のデバイ スにク ロ ッ ク を供給する ために、 ク ロ ッ ク を FPGA デバイ スから転送するには、 ODDR コ ンポーネン ト を使用するのが効率的です。 入力の 1 つを High、 それ以外を Low に接続する と、 位相関係およびデューテ ィ サイ クルが適切に制御された ク ロ ッ ク を簡単に作成でき ます(た と えば、 D1 ピンを 0 に、 D2 ピンを 1 に保持する と 180 度の位相シフ ト を達成可能)。 セ ッ ト / リ セ ッ ト およびク ロ ッ ク イネーブルを使用する と、 ク ロ ッ ク を停止し た り 、 一定期間極性を変更し た り でき ます。

外部ク ロ ッ ク にさ らに詳細な位相制御が必要な場合は、 MMCM または PLL を外部フ ィ ード バッ ク補正、 粗粒度または細粒度の固定または可変の位相補正 と共に使用でき ます。 これによ り 、 ほかのデバイ スへの ク ロ ッ ク位相および伝搬時間を詳細に制御し て、 そのデバイ スからの外部タ イ ミ ング要件を単純化でき ます。

UltraFast 設計手法ガイ ド 94UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 95: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

IP (Intellectual Property) の使用

IP (Intellectual Property) コ アを前も って検証し てお く と、 設計および検証にかかる時間を大幅に削減でき るので、 タイ ム ト ゥ マーケ ッ ト の短縮に有益です。 IP を使用し た設計に関する詳細は、 次を参照し て く ださ い。

• 『Vivado Design Suite ユーザー ガイ ド : IP を使用し た設計』 (UG896) [参照 9]

• Vivado Design Suite QuickTake ビデオ : Vivado での再利用可能な IP のコ ンフ ィ ギュ レーシ ョ ンおよび管理

IP 要件のプ ラニング

IP 要件のプラ ニングは、 どの新規プロ ジェ ク ト でも も重要な段階の 1 つです。

必要な機能およびその他の設計目標に対し て、 ザイ リ ン ク ス またはサード パーテ ィ パー ト ナーから提供されている IP オプシ ョ ンを評価し て く ださ い。 次を確認し ます。

• 提供されている IP コ ア よ り も カス タ ム ロ ジ ッ ク の方が適し ているか。

• 複数プロ ジェ ク ト で再利用するために、 カ ス タ ム デザイ ンを業界標準フ ォーマ ッ ト でパッ ケージ化する価値はあ るか。

メ モ リ 、 ネ ッ ト ワーク、 およびペ リ フ ェ ラルなどの必要な イ ン ターフ ェ イ ス を考慮し て く ださい。

AMBA AXI

ザイ リ ン ク スでは、オープン AMBA® 4 AXI4 イ ン ターコネ ク ト プロ ト コルに基づいて規格化された IP イ ン ターフ ェイ ス を提供し ています。 この規格化によ り 、 ザイ リ ン ク スおよびサード パーテ ィ プロバイ ダーから提供されている IP を簡単に統合でき、 高のシステム パフ ォーマン ス を達成でき ます。 ザイ リ ン ク スは、 FPGA デバイ ス アーキテクチャに効率的にマ ッ プでき る よ う に、 ARM と協力し て AXI4、 AXI4-Lite、 および AXI4-Stream を定義し ま し た。

AXI は、 高パフ ォーマン ス、 高ク ロ ッ ク周波数システムのデザイ ンを ターゲ ッ ト にし てお り 、 高速イ ン ターコネ クト に適し ています。 AXI4-Lite は、 AXI4 の軽量バージ ョ ンで、 主に制御レジス タおよびステータ ス レジス タへのアク セスに使用されます。

AXI-Stream は、 マス ターから ス レーブへの一方向のデータ ス ト リ ー ミ ングに使用されます。 通常は、 DSP、 ビデオおよび通信アプ リ ケーシ ョ ンに使用されます。

Vivado Design Suite の IP カ タ ログ

IP カ タ ロ グは、 ザイ リ ン ク スが提供する IP にア ク セスするための リ ポジ ト リ で、 エンベデッ ド システム、 DSP、 通信、 イ ン ターフ ェ イ スなどの IP コ アが含まれています。

IP カ タ ロ グからは、 使用可能な IP コ アを検索し、 その製品ガイ ド、 変更ロ グ、 製品ウ ェブ ページ、 IP のアンサーなどを確認でき ます。

IP カ タ ロ グのコ アは、 GUI または Tcl シェルを使用し てア ク セスおよびカス タマイ ズでき ます。 Tcl ス ク リ プ ト を使用する と、 IP コ アのカス タマイ ズを自動化でき ます。

カス タム IP

ザイ リ ン ク スでは、 業界標準の IP-XACT 形式を使用し て IP を提供し てお り 、 カ ス タ ム IP をパッ ケージ化する IP パッ ケージャー と い う ツールを提供し ています。 また、 カス タマイ ズ し た IP をカ タ ロ グに追加し て、 チーム または企業内で共有可能な IP リ ポジ ト リ を作成でき ます。 サード パーテ ィ プロバイ ダーからの IP も、 既に IP-XACT フ ォーマ ッ ト であって も、 IP パッ ケージ ャーによ り パッ ケージ されていれば、 このカ タ ロ グに追加でき ます。

UltraFast 設計手法ガイ ド 95UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 96: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

IP カ タ ログでの IP の選択

ザイ リ ン ク スおよびサード パーテ ィ ベンダーの IP は、 通信およびネ ッ ト ワーク、 ビデオおよび画像処理、 オー トモーテ ィ ブおよびイ ンダス ト リ アルなどのよ う に、 用途に基づいたカテゴ リ 別に分類されます。 このカテゴ リ を使用し て、 該当する分野で使用可能な IP を確認でき ます。

ビデオ : IP カ タ ロ グを使用し て IP をカ ス タマイ ズ し、 プロ ジェ ク ト に追加し て イ ン ス タ ンシエー ト する方法については、 Vivado Design Suite QuickTake ビデオ : IP のカス タマイ ズおよびイ ン ス タ ンシエーシ ョ ンを参照し て く ださい。

IP カ タ ロ グの IP のほ と んどは無償ですが、 有償でラ イセン スが必要な ものも あ り ます。 IP を購入する必要があ るかど う かや、 ラ イセン スのステータ スについては、 IP カ タ ロ グに表示されます。 IP カ タ ロ グから IP を選択する際は、デザイ ン要件に基づいて、 次の機能および特定 IP が提供する機能を考慮し て く ださい。

• この IP に必要なシ リ コ ン リ ソース (該当する IP の製品ガイ ド を参照)

• 考慮し ているデバイ スおよびス ピード グレード でこ の IP がサポー ト されているかど う か (選択し た IP によ って指定する ス ピード グレード が異なる )、 サポー ト される場合、 達成可能な 大スループ ッ ト および Fmax はどれく らいか。

• デザイ ンがボード上のコ ンパニオン チ ッ プ と通信する ために必要な外部イ ン ターフ ェ イ ス規格

° イーサネ ッ ト 、 Interlaken、 PCIe® などの業界標準イ ン ターフ ェ イ ス

° メ モ リ イ ン ターフ ェ イ ス : サイ ズおよびパフ ォーマン ス を含む メ モ リ イ ン ターフ ェ イ スの数

° Aurora などのザイ リ ン ク スのイ ン ターフ ェ イ ス

注記 : ユーザー自身のカ ス タ ム イ ン ターフ ェ イ ス を設計する こ と もでき ます。

• IP でサポー ト されるオンチッ プ バス プロ ト コル

• 残 り のデザイ ン と の通信に必要なオンチッ プ バス プロ ト コル。 次はその例です。

° AXI4

° AXI4-Lite

° AXI4-Stream

• 複数のプロ ト コルを使用する場合は、 IP カ タ ロ グからのイ ンフ ラ ス ト ラ クチャ IP を使用し て、 IP コ アをブ リ ッジする こ と が必要 と なる可能性があ り ます。 次はその例です。

° AXI-AHB ブ リ ッ ジ

° AXI-AXI イ ン ターコネ ク ト

° AXI-PCIe ブ リ ッ ジ

° AXI-PLB ブ リ ッ ジ

IP のカス タ マイズ

IP は、 GUI または Tcl ス ク リ プ ト を使用し てカス タマイ ズでき ます。

• 「カ ス タマイ ズ GUI の使用」

• 「Tcl ス ク リ プ ト の使用」

カス タ マイズ GUI の使用

IP の検出、 調査、 カス タマイ ズには、 グ ラ フ ィ ッ ク イ ン ターフ ェ イ ス を使用するのが 適な方法です。 各 IP は、 一連のタブまたはページを使用し てカ ス タマイ ズでき る よ う になってお り 、 関連する設定オプシ ョ ンがグループ化されています。 次の図は、 カ ス タマイ ズ ウ ィ ン ド ウの例を示し ています。 IP は独自にカス タマイ ズでき、 その内容が XCI フ ァ イルに含まれます。 こ こ から、 IP のさ まざまな出力フ ァ イルを作成でき ます。

UltraFast 設計手法ガイ ド 96UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 97: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

Tcl スク リ プ ト の使用

ほ と んどすべての GUI 操作に対し て Tcl コマン ド が実行されます。 カス タマイ ズ オプシ ョ ンすべての設定を含めた IP の作成を、 ユーザーの操作な しで Tcl ス ク リ プ ト で実行でき ます。

ただし、 設定オプシ ョ ンの名前 と設定可能な値を知ってお く 必要があ り ます。 通常は、 まず GUI を使用し てカス タマイ ズ し て、 そ こから ス ク リ プ ト を作成し ます。 結果の Tcl ス ク リ プ ト ができ た ら、 データ サイ ズの変更など、 必要に応じ てス ク リ プ ト を簡単に修正でき ます。

Tcl ベースでの IP の作成は、 バージ ョ ン管理システムを使用する場合など、 自動化する際に便利です。 ソース管理および リ ビジ ョ ン制御の詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) [参照 5] のこのセ ク シ ョ ンを参照し て く ださい。

IP のバージ ョ ンおよびリ ビジ ョ ン管理

IP をカス タマイ ズする と、 選択し たパラ メ ーター値をすべて含む XCI フ ァ イルが作成されます。 Vivado IDE の各バージ ョ ンでサポー ト される IP のバージ ョ ンはそれぞれ 1 つのみです。 使用し ている Vivado IDE のバージ ョ ンで新の IP バージ ョ ンを使用する こ と をお勧めし ます。 以前のバージ ョ ンの IP を使用する場合は、 そのバージ ョ ン用の出力フ ァ イルがすべてが保存されている必要があ り ます。 ソース管理および リ ビジ ョ ン制御の詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) [参照 5] のこのセ ク シ ョ ンを参照し て く ださい。

ヒ ン ト : 7 シ リ ーズ デバイ スの MIG の場合、 XCI フ ァ イルの代わ り に .prj フ ァ イルが作成されます。 IP 関連の説明で XCI と記述されている場合、 MIG では .prj を意味し ます。

X-Ref Target - Figure 3-49

図 3-49 : IP のカス タ マイズ ウ ィ ン ド ウ

UltraFast 設計手法ガイ ド 97UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 98: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

制約の操作

デザイ ン制約の分類 デザイ ン制約は、 デザイ ンがハード ウ ェ アで正し く 機能する よ う にする ために、 コ ンパイル フ ローで満たす必要のあ る要件を定義し ます。 複雑なデザイ ンの場合は、 ツールに対し てガイ ダン ス を定義し て タ イ ミ ング ク ロージ ャ を達成しやす く する こ と も でき ます。 すべての制約がコ ンパイル フ ローのすべての段階で使用されるわけではあ り ません。 た と えば、 物理制約はイ ンプ リ メ ンテーシ ョ ン段階 (配置および配線) でのみ使用されます。

合成およびイ ンプ リ メ ンテーシ ョ ン アルゴ リ ズムはタ イ ミ ング ド リ ブンなので、 適切な タ イ ミ ング制約を作成するこ と が重要にな り ます。 デザイ ンの制約を厳し く しすぎた り 緩 く しすぎた り する と、 タ イ ミ ング ク ロージ ャ を達成するのが困難にな り ます。 アプ リ ケーシ ョ ンの要件に合った適度な制約を使用する必要があ り ます。 制約に関する詳細は、 次の資料を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906) [参照 21]

• Vivado Design Suite のビデオ チュー ト リ アル ページに、 デザイ ン制約の適用に関する ビデオ チュー ト リ アルがあ り ます。

制約は通常、 1 つまたは多数のフ ァ イルに、 カテゴ リ 別、 デザイ ン モジュール別、 またはその両方で分類されます。分類方法に関係な く 、 制約の全体的な依存性を理解し て、 メ モ リ に読み込まれた後の 終的なシーケン ス を確認する必要があ り ます。 た と えば、 タ イ ミ ング ク ロ ッ クはほかの制約で使用される前に定義する必要があ るので、 その定義が制約フ ァ イルの 初 ( メ モ リ に読み込まれる 初の制約セ ッ ト ) に含まれる よ う にする必要があ り ます。

推奨される制約フ ァ イル

プロ ジェ ク ト の大き さや複雑さによ って、 制約方法はさ まざまです。 次に、 推奨事項の一部を示し ます。

単純なデザイ ン

少数の設計者チームによ る単純なデザイ ンの場合 :

• すべての制約に対し て 1 フ ァ イル

• 物理制約用に 1 フ ァ イル + タ イ ミ ング制約用に 1 フ ァ イル

• 物理制約用に 1 フ ァ イル + タ イ ミ ング (合成) 制約用に 1 フ ァ イル + タ イ ミ ング (イ ンプ リ メ ンテーシ ョ ン) 制約用に 1 フ ァ イル

複雑なデザイ ン

IP コ アまたは複数設計者のチームによ る複雑なデザイ ンの場合 :

• 上位タ イ ミ ング制約用に 1 フ ァ イル + 上位物理制約用に 1 フ ァ イル + IP/主なブロ ッ ク ご と に 1 フ ァ イル

読み出し シーケンスの検証

プロ ジェ ク ト 制約フ ァ イルの分類方法が決ま った ら、 フ ァ イルの内容に基づいて、 フ ァ イルの読み出し シーケン スを確認する必要があ り ます。 プロ ジェ ク ト モード の場合、 Vivado IDE または Tcl コマン ド の reorder_files を使用し て制約フ ァ イル シーケン ス を変更でき ます。 非プロ ジェ ク ト モード の場合、 シーケン スは read_xdc コマン ド (XDC フ ァ イルの場合) およびコ ンパイル フ ローの Tcl ス ク リ プ ト の source コマン ド (Tcl ス ク リ プ ト で生成された制約の場合) で直接定義し ます。

UltraFast 設計手法ガイ ド 98UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 99: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

推奨される制約の順序

制約言語 (XDC) は Tcl 構文および解釈規則に基づいています。 Tcl と同様、 XDC は逐次言語です。

• 変数は使用される前に定義する必要があ り ます。 同様に、 タ イ ミ ング ク ロ ッ ク も定義し ない と、 ほかの制約で使用でき ません。

• 同じパスに適用され、 優先度も同じ同等の制約があ る場合は、 後の方の制約が適用されます。

上記の優先規則を考慮し た場合、 タ イ ミ ング制約には次の順序が使用されます。

## タ イ ミ ング アサーシ ョ ン セ ク シ ョ ン# プラ イマ リ ク ロ ッ ク# 仮想ク ロ ッ ク# 生成ク ロ ッ ク# 外部 MMCM/PLL フ ィ ード バッ ク ループの遅延# ク ロ ッ ク のばらつき と ジ ッ ター# 入力および出力遅延制約# ク ロ ッ ク グループおよびク ロ ッ ク フ ォルス パス

## タ イ ミ ング例外セ ク シ ョ ン# フ ォルス パス# 大遅延/ 小遅延# マルチサイ クル パス# ケース解析# タ イ ミ ングのデ ィ スエーブル

複数の XDC フ ァ イルが使用される場合は、 ク ロ ッ ク定義に特別な注意が必要で、 依存度が正しい順番になっているかど う かを確認する必要があ り ます。

物理制約は、 制約フ ァ イルのど こにでも記述でき ます。

合成制約の作成

合成では、 デザイ ンの RTL 記述を、 タ イ ミ ング ド リ ブン アルゴ リ ズムを使用し て、 デバイ スのマ ッ プ された 適化済みネ ッ ト リ ス ト に変換し ます。 QoR (結果の品質) は、 RTL コード の ク オ リ テ ィ および指定された制約に影響されます。 コ ンパイル フ ローのこ の段階では、 ネ ッ ト 遅延は概算であ り 、 配置制約や密集などの複雑な状況は反映されません。 主な目的は、 タ イ ミ ングを満たすか、 タ イ ミ ングが少しの差で満た されないよ う なネ ッ ト リ ス ト (現実的でシンプルな制約を含む) を得る こ と です。

合成エンジンではすべての XDC コマン ド が認識されますが、 実際に影響するのは一部です。

• セ ッ ト ア ッ プ/ リ カバ リ 解析に関する タ イ ミ ング制約は、 QoR (結果の品質) に影響し ます。

° create_clock / create_generated_clock

° set_input_delay / set_output_delay

° set_clock_groups / set_false_path / set_max_delay / set_multicycle_path

• 次のホール ドおよび リ ムーバル解析に関する タ イ ミ ング制約は合成中は無視されます。

° set_min_delay / set_false_path -hold / set_multicycle_path -hold

• RTL 属性を指定する と、 マップおよび 適化アルゴ リ ズムによ る決定が使用されます。 次は、 その例の一部です。

° DONT_TOUCH / KEEP / KEEP_HIERARCHY / MARK_DEBUG

° MAX_FANOUT

° RAM_STYLE / ROM_STYLE / USE_DSP48 / SHREG_EXTRACT

° FULL_CASE / PARALLEL_CASE (Verilog RTL のみ)

UltraFast 設計手法ガイ ド 99UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 100: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

注記 : 同じ属性を XDC からのプロパテ ィ と し て設定する こ と も でき ます。 XDC ベースの制約を使用する と、 一部の場合にのみ、 RTL を変更せずに合成結果に影響を与える こ と ができ るので便利です。

• 物理制約 (LOC、 BEL、 Pblock) は無視されます。

合成制約はエラ ボレー ト 済みネ ッ ト リ ス ト からの名前 (できればポー ト およびシーケンシ ャル セル) を使用する必要があ り ます。 RTL 信号の中にはエラ ボレーシ ョ ン中に削除される ものも あ り 、 それらには XDC 制約は適用でき ません。 また、 エラ ボレーシ ョ ン後のさ まざまな 適化のために、 ネ ッ ト または論理セルが LUT や DSP ブロ ッ ク などのさ まざまなデバイ スのプ リ ミ テ ィ ブに統合されます。 デザイ ン オブジェ ク ト のエラ ボレー ト 済みの名前を確認するには、 Flow Navigator で [Open Elaborated Design] を ク リ ッ ク し、 該当する階層を参照し ます。

一部のレジス タは RAM ブロ ッ クに吸収され、 境界を またがる 適化が実行でき る よ う に階層レベルが削除される こと も あ り ます。

エラ ボレー ト 済みネ ッ ト リ ス ト オブジェ ク ト または階層レベルは、 DONT_TOUCH、 KEEP、 KEEP_HIERARCHY、または MARK_DEBUG 制約を使用し て保持する こ と もでき ますが、 タ イ ミ ングやエ リ アの QoR (結果の品質) は悪化する可能性があ り ます。

後に、 制約の中には、 競合するために合成で適用されないものも あ り ます。 た と えば、 MAX_FANOUT 属性が複数の階層レベルにまたがるネ ッ ト に設定され、 階層の一部が DONT_TOUCH で保持される場合、 フ ァ ンアウ ト 適化は制限されるか、 完全に回避されます。

重要 : イ ンプ リ メ ンテーシ ョ ン中と異な り 、 タ イ ミ ング制約を定義するのに使用される RTL ネ ッ ト リ ス ト オブジェク ト が、 QoR 改善のため合成の 適化で削除される こ と があ り ます。 これは、 制約がア ッ プデー ト されイ ンプ リ メンテーシ ョ ン用に検証されていれば、 通常問題 と はな り ませんが、 必要であれば、 制約が合成と イ ンプ リ メ ンテーシ ョ ンの両方で適用される よ う に、 DONT_TOUCH 制約を使用し てオブジェ ク ト を保持でき ます。

合成が終了し た ら、 タ イ ミ ングおよび使用量レポー ト から、 ネ ッ ト リ ス ト の品質がアプ リ ケーシ ョ ン要件を満た しているか、 イ ンプ リ メ ンテーシ ョ ンに使用でき るかど う かを確認し ます。

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

イ ンプ リ メ ンテーシ ョ ン制約は、 終的なアプ リ ケーシ ョ ンの要件を正確に反映させる必要があ り ます。 I/O ロ ケーシ ョ ンおよび I/O 規格などの物理制約は、 ボード ト レース遅延を含め、 ボード デザイ ンで検出されます。 全体的なシステム要件からのデザイ ン内部要件も含まれます。 イ ンプ リ メ ンテーシ ョ ンに進む前に、 すべての制約が正しいかど う かを確認し てお く こ と をお勧めし ます。 制約が正し く 設定されていない と、 イ ンプ リ メ ンテーシ ョ ンの QoR が悪化し、 サイ ンオフ用のタ イ ミ ングの信頼性レベルも下がる可能性があ り ます。

多 く の場合、 合成 と イ ンプ リ メ ンテーシ ョ ンで同じ制約を使用でき ますが、 合成中にデザイ ン オブジェ ク ト が削除された り 、 名前が変更される可能性があ るので、 イ ンプ リ メ ンテーシ ョ ン ネ ッ ト リ ス ト ですべての合成制約が正しく 適用されているかを検証する必要があ り ます。 適用されていない場合は、 イ ンプ リ メ ンテーシ ョ ンのみで有効な制約を含む XDC フ ァ イルを作成する必要があ り ます。

ブロ ッ ク レベルの制約の作成

チーム プロ ジェ ク ト の場合、 上位デザイ ンの主なブロ ッ ク それぞれに個別の制約フ ァ イルを作成する と便利です。これらのブロ ッ クは個別に開発および検証された後、 終的に 1 つまたは多 く の 上位デザイ ンに統合されます。

ブロ ッ ク レベル制約は、 上位制約と は別に作成する必要があ り 、 さ まざまなコ ンテキス ト で使用でき る よ う に、でき るだけ一般的に記述する必要があ り ます。 また、 これらの制約がブロ ッ クの境界を超え る ロ ジ ッ クには影響しないよ う にする必要があ り ます。

サブブロ ッ ク を イ ンプ リ メ ン ト する場合は、 ク ロ ッ キング ネ ッ ト ワーク全体を タ イ ミ ング解析に含め、 スキ ューおよびク ロ ッ ク乗せ換え解析が正確に実行される よ う にする こ と をお勧めし ます。 これには、 ク ロ ッ ク コ ンポーネント を含む HDL ラ ッパーと、 上位ク ロ ッ ク制約を複製する追加の制約フ ァ イルが必要な場合があ り ます。 これは、サブモジュールのタ イ ミ ング検証でのみ使用されます。

制約の適用範囲および規則、 ブロ ッ ク レベル制約を 上位デザイ ンに読み込む メ カニズムの詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] のこのセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 100UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 101: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

4 段階でのタ イ ミ ング制約の定義

制約の定義方法は、 次の図に示す 4 つの手順に分割されます。 これらの手順は、 タ イ ミ ング制約の優先および依存規則に従ってお り 、 解析を実行するためにタ イ ミ ング エンジンに情報を供給する論理的な方法です。

• 初の 2 つの手順は、 デフ ォル ト のタ イ ミ ング パス要件を ク ロ ッ ク波形および I/O 遅延制約から派生する タ イミ ング アサーシ ョ ンです。

• 3 つ目の手順では、 少な く と も 1 つのロ ジ ッ ク パス を共有する非同期/排他的ク ロ ッ ク ド メ イ ン間の関係を確認し ます。 この関係に基づいて、 ク ロ ッ ク グループまたはフ ォルス パス制約を入力し て、 これらのパスのタ イ ミング解析を無視し ます。

• 後の手順はタ イ ミ ング例外で、 特定の制約を使用し て、 デフ ォル ト のタ イ ミ ング パス要件を無視し た り 、 緩和し た り 、 厳し く し た り する こ と で、 その要件を変更でき ます。

制約の作成は、 制約の特定 と、 タ イ ミ ング エンジンで生成される さ まざまなレポー ト を使用し て実行可能な制約検証タ ス ク で構成されます。 タ イ ミ ング エンジンは、 完全にマ ッ プされたネ ッ ト リ ス ト (合成後など) に対し てのみ機能し ます。 エラ ボレー ト 済みネ ッ ト リ ス ト を使用し て制約を入力する こ と はでき ますが、 制約の解析およびレポート がイ ン タ ラ ク テ ィ ブに実行でき る よ う に、 初の制約セ ッ ト は合成後のネ ッ ト リ ス ト を使用し て作成する こ と をお勧めし ます。

X-Ref Target - Figure 3-50

図 3-50 : タ イ ミ ング制約の開発手順

Create Clocks(Primary/Virtual/Generated)

(External Feedback/Uncertainty)

XDC: create_clock create_generated_clock set_system_jitter set_input_jitter set_clock_uncertainty set_external_delay

Reports: Clock Networks Check Timing

Input/Output Delays(System/Source Synchronous)

XDC: set_input_delay set_output_delay

Reports: Check Timing Report Timing

Clock Groups and CDC(Asynchronous/Exclusive)

XDC: set_clock_groups set_false_path

Reports: Clock Interaction Check Timing

Timing Exceptions(Ignore/Max/Min)

XDC: set_false_path set_min/max_delay set_multicycle_path set_case_analysis set_disable_timing

Reports: Timing Summary Report Timing

X13445

UltraFast 設計手法ガイ ド 101UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 102: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

新規デザイ ンのタ イ ミ ング制約を作成する場合、 または既存の制約を完成させる場合、 Timing Constraints ウ ィ ザード を使用し て、 図 3-50 の 初の 3 つの手順で不足し ている制約を特定する こ と をお勧めし ます。 Timing Constraints ウ ィ ザード は、 このセ ク シ ョ ンで説明されている設計手法に従って、 タ イ ミ ング ク ロージ ャ を達成するためにデザイ ン制約が安全で信頼でき る ものであ る こ と を確実にし ます。 Timing Constraints ウ ィ ザード の詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] を参照し て く ださ い。

次のセ ク シ ョ ンでは、 上記の 4 つの手順の詳細を説明し ます。

• 「ク ロ ッ ク制約の定義」

• 「入力ポー ト および出力ポー ト の制約」

• 「ク ロ ッ ク グループおよび CDC 制約の定義」

• 「タ イ ミ ング例外の指定」

制約作成プロセスの各段階での詳細な手法および使用例については、 各セ ク シ ョ ンを参照し て く ださい。

ク ロ ッ ク制約の定義

ク ロ ッ クは、 ほかの制約で使用でき る よ う に、 初に定義する必要があ り ます。 タ イ ミ ング制約作成フ ローでは、まずク ロ ッ ク を定義する必要のあ る箇所を特定し、 プラ イマ リ ク ロ ッ ク または生成ク ロ ッ ク と し て定義する必要があ るかど う かを判断し ます。

重要 : ク ロ ッ クに特定の名前を指定する場合 (-name オプシ ョ ン)、 そのク ロ ッ ク名がほかのク ロ ッ ク制約または既存の自動生成ク ロ ッ ク で使用されていないこ と を確認する必要があ り ます。 同じ ク ロ ッ ク名が複数の ク ロ ッ ク制約で使用されている と、 Vivado Design Suite のタ イ ミ ング エンジンから 初の ク ロ ッ ク定義が上書き される こ と を警告する メ ッ セージが表示されます。 同じ ク ロ ッ ク名が 2 回使用された場合、 初のク ロ ッ ク定義 と、 2 つのク ロ ッ ク定義の間に指定されたその名前を参照する制約が失われます。 ほかの制約に影響を与えず、 すべてのタ イ ミ ング パスに制約が適用された状態を保持でき る場合以外は、 ク ロ ッ ク定義が上書き される状況を避ける こ と をお勧めし ます。

ク ロ ッ ク ソースの特定

制約が設定されていないク ロ ッ ク ソースは、 次の 2 つのレポー ト で特定でき ます。

• 「ク ロ ッ ク ネ ッ ト ワーク レポー ト 」

• 「チェ ッ ク タ イ ミ ング レポー ト 」

ク ロ ッ ク ネ ッ ト ワーク レポー ト

制約が設定されている ク ロ ッ ク の起点 と設定されていないク ロ ッ ク の起点は、 それぞれ別のカテゴ リ に リ ス ト されます。 制約が設定されていない起点に対し ては、 それがプラ イマ リ ク ロ ッ ク なのか生成ク ロ ッ ク なのかを判断する必要があ り ます。

% report_clock_networks

Unconstrained ClocksClock sysClk (endpoints: 15633 clock, 0 nonclock)Port sysClk

Clock TXOUTCLK (endpoints: 148 clock, 0 nonclock)GTXE2_CHANNEL/TXOUTCLK (mgtEngine/ROCKETIO_WRAPPER_TILE_i/gt0_ROCKETIO_WRAPPER_TILE_i/gtxe2_i)

Clock Q (endpoints: 8 clock, 0 nonclock)FDRE/Q (usbClkDiv2_reg)

UltraFast 設計手法ガイ ド 102UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 103: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

チ ェ ッ ク タ イ ミ ング レポー ト

no_clock チェ ッ ク では、 ク ロ ッ ク定義のないア ク テ ィ ブな リ ーフ ク ロ ッ ク ピンのグループがレポー ト されます。各グループは、 問題を修正するためにク ロ ッ ク を定義する必要のあ る ク ロ ッ クの起点に関連付け られています。

% check_timing -override_defaults no_clock

1. checking no_clock-------------------- There are 15633 register/latch pins with no clock driven by root clock pin: sysClk (HIGH)

There are 148 register/latch pins with no clock driven by root clock pin: mgtEngine/ROCKETIO_WRAPPER_TILE_i/gt0_ROCKETIO_WRAPPER_TILE_i/gtxe2_i/TXOUTCLK (HIGH)

There are 8 register/latch pins with no clock driven by root clock pin: usbClkDiv2_reg/C (HIGH)

check_timing では、 ク ロ ッ ク ツ リ ー全体の ト ポロ ジに基づいて、 同じ ク ロ ッ ク ソース ピンまたはポー ト が複数のグループに含まれる こ と があ り ます。 このよ う な場合、 推奨される ソース ピン またはポー ト にク ロ ッ ク を作成する と、 それに関連する グループすべてでク ロ ッ ク定義がなかった問題が修正されます。

詳細は、 第 5 章の 「デザイ ンが適切に制約されているかを確認」 を参照し て く ださい。

プ ラ イマ リ ク ロ ッ クの作成

プラ イマ リ ク ロ ッ クは、 デザイ ンのタ イ ミ ング基準を定義する ク ロ ッ ク で、 タ イ ミ ング エンジンでタ イ ミ ング パス要件 と その他のク ロ ッ ク と の位相関係を算出するために使用されます。 これらの挿入遅延は、 ク ロ ッ クの起点 (クロ ッ ク が定義される ド ラ イバー ピン/ポー ト ) から、 それがフ ァ ンア ウ ト する シーケンシ ャル セルのク ロ ッ ク ピン までで算出されます。

このため、 遅延および間接的なスキ ューが正確に算出される よ う に、 デザイ ンの境界に対応するオブジェ ク ト にプラ イマ リ ク ロ ッ ク を定義する こ と が重要です。

典型的なプラ イマ リ ク ロ ッ ク のルー ト は、 次の とお り です。

• 「入力ポー ト 」

• 「7 シ リ ーズ デバイ スのギガビ ッ ト ト ラ ンシーバーの出力ピン」

• 「一部のハード ウ ェ ア プ リ ミ テ ィ ブの出力ピン」

UltraFast 設計手法ガイ ド 103UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 104: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

入力ポー ト

制約の例 :

create_clock -name SysClk -period 10 -waveform {0 5} [get_ports sysclk]

この例の場合、 波形は 50% のデューテ ィ サイ クルになる よ う に定義されています。 上記の -waveform オプシ ョ ンは、 その使用法を表すために含めているだけで、 50% 以外のデューテ ィ サイ クルで ク ロ ッ ク を定義する場合にのみ必要です。 差動ク ロ ッ ク入力バッ フ ァーの場合、 プラ イマ リ ク ロ ッ クはペアの P 側でのみ定義する必要があ り ます。

7 シ リーズ デバイスのギガビ ッ ト ト ラ ンシーバーの出力ピン

ギガビ ッ ト ト ラ ンシーバーの出力ピンは、 復元された ク ロ ッ ク などです。

制約の例 :

create_clock -name txclk -period 6.667 [get_pins gt0/TXOUTCLK]

推奨 : 7 シ リ ーズ デバイ ス を ターゲ ッ ト とするデザイ ンでは、 GT 出力ピンに必要な ク ロ ッ ク も Vivado ツールで算出され、 それらのク ロ ッ ク がユーザー作成ク ロ ッ ク と比較されるので、 GT 入力ク ロ ッ ク も定義する こ と をお勧めし ます。 ク ロ ッ ク が異なる場合、 または GT への入力ク ロ ッ ク がない場合、 DRC 警告が生成されます。

注記 : UltraScale デバイ ス を ターゲ ッ ト とするデザイ ンでは、 関連のボード入力ク ロ ッ ク が定義された と きに GT クロ ッ ク が自動的に派生されるので、 GT の出力にプラ イマ リ ク ロ ッ ク を定義し ないこ と をお勧めし ます。

X-Ref Target - Figure 3-51

図 3-51 : 入力ポー ト の create_clock

IBUF

D Q

Recommended primary clocksource point: sysclk port

sysclk BUFG

REGAD Q

REGBData Path

X13446

X-Ref Target - Figure 3-52

図 3-52 : プ リ ミ テ ィ ブ ピンの create_clock

D Q

Recommended primary clocksource point: gt0/TXOUTLK

REGA

D Q

REGBData Path

CLKFBIN CLKFBOUTCLKIN1 CLKOUT0

CLKOUT1

mmcm0

txclkTXOUTCLK

gt0

X13447

UltraFast 設計手法ガイ ド 104UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 105: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

一部のハー ド ウ ェ ア プ リ ミ テ ィ ブの出力ピン

BSCANE2 などの一部のハード ウ ェ ア プ リ ミ テ ィ ブの出力ピンには、 同じプ リ ミ テ ィ ブの入力ピンからのタ イ ミ ング アークはあ り ません。

重要 : プラ イマ リ ク ロ ッ ク を別のプラ イマ リ ク ロ ッ クのフ ァ ンア ウ ト で定義し ないよ う にし て く ださい。 こ のよ うな状況は、 実際のハード ウ ェ アでは発生し ません。 このよ う な状況ではまた、 完全な ク ロ ッ ク挿入遅延を算出できず、 タ イ ミ ング解析は正し く 実行されません。 この状況が発生し た ら、 制約を見直し て修正する必要があ り ます。

次の図に、 clk1 ク ロ ッ ク が clk0 ク ロ ッ ク のフ ァ ンア ウ ト で定義される例を示し ます。 clk1 は BUFG1 の出力に定義されてお り 、 BUFG1 の出力から clk0 の代わ り に使用されます。 この結果、 clk0 と clk1 間のスキ ュー算出が無効になるので、 REGA および REGB 間のタ イ ミ ング解析が不正確にな り ます。

生成ク ロ ッ クの作成

生成ク ロ ッ ク と は、 マス ター ク ロ ッ ク と呼ばれる別の既存ク ロ ッ ク から派生し た もので、 通常マス ター ク ロ ッ クに対し てロ ジ ッ ク ブロ ッ ク によ り 実行される波形変換を記述し ます。 生成ク ロ ッ ク の定義はマス ター ク ロ ッ クの特性に依存するので、 マス ター ク ロ ッ ク を 初に定義する必要があ り ます。 生成ク ロ ッ ク を明示的に定義するには、create_generated_clock コマン ド を使用する必要があ り ます。

X-Ref Target - Figure 3-53

図 3-53 : タ イ ミ ング アークがないためにク ロ ッ ク パスが切断される

D Q

instB

OUTIN

instA

IBUFsysclk

Recommended primary clocksource point: instA/OUT

Xno arc

X13448

X-Ref Target - Figure 3-54

図 3-54 : 別のク ロ ッ クのフ ァ ンアウ ト で create_clock を設定 (推奨されない)

IBUF

D Q

NOT RECOMMENDED

sysclk BUFG0

REGA REGBData Path

D Q

BUFG1

create_clock –name clk1 –period 10 [get_pins BUFG1/0]

create_clock –name clk0 –period 10 [get_ports sysclk]X13449

UltraFast 設計手法ガイ ド 105UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 106: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

自動派生ク ロ ッ ク

Vivado Design Suite タ イ ミ ング エンジンでは、 ク ロ ッ ク調整ブロ ッ ク (CMB) と それによ り マス ター ク ロ ッ ク に対して実行される変換が認識されるので、 生成ク ロ ッ ク のほ と んどは自動的に生成されます。

ザイ リ ン ク ス 7 シ リ ーズ デバイ ス フ ァ ミ リ の CMB は次の とお り です。

• MMCM*/ PLL*

• BUFR

• PHASER*

ザイ リ ン ク ス UltraScale デバイ ス フ ァ ミ リ の CMB は次の とお り です。

• MMCM* / PLL*

• BUFG_GT / BUFGCE_DIV

• GT*_COMMON / GT*_CHANNEL / IBUFDS_GTE3

• BITSLICE_CONTROL / RX*_BITSLICE

• ISERDESE3

ク ロ ッ ク ツ リ ーにあ るその他の組み合わせセルでは、 波形がセルで変換されなければ、 タ イ ミ ング ク ロ ッ クがそれら を介し て伝搬されるので、 出力で定義し直す必要はあ り ません。 この自動派生機能は、 実際のハード ウ ェ ア動作に一致する生成ク ロ ッ ク を定義する も安全な方法なので、 でき るだけ利用し て く ださい。

Vivado Design Suite タ イ ミ ング エンジンで選択された自動派生ク ロ ッ クの名前が不適切な場合は、create_generated_clock コマン ド を使用する と、 波形を変換せずに名前を指定でき ます。 この制約は、 制約フ ァ イルのマス ター ク ロ ッ ク を定義し ている制約の直後に記述する必要があ り ます。 た と えば、 MMCM イ ン ス タ ンスで生成された ク ロ ッ ク のデフ ォル ト 名が net0 の場合、 次の制約を追加し て別の名前 (こ の例の場合は fftClk) を指定でき ます。

create_generated_clock -name fftClk [get_pins mmcm_i/CLKOUT0]

曖昧さ を避けるため、 制約はク ロ ッ ク のソース ピンに設定する必要があ り ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] を参照し て く ださい。

ユーザー定義の生成ク ロ ッ ク

プラ イマ リ ク ロ ッ ク がすべて定義された ら、 ク ロ ッ ク ネ ッ ト ワーク またはチェ ッ ク タ イ ミ ング (no_clock) レポート を使用し、 タ イ ミ ング ク ロ ッ ク を含まない ク ロ ッ ク ツ リ ー部分を見つけて、 生成ク ロ ッ ク を定義でき ます。

マス ター ク ロ ッ ク のロ ジ ッ ク コーンで実行される変換は理解しに く いこ と も あ り ます。 この場合、 も控えめな制約を使用する必要があ り ます。 た と えば、 ソース ピンがシーケンシ ャル セルの出力で、 マス ター ク ロ ッ ク が少な くと も 2 で分周される場合、 適切な制約は次のよ う にな り ます。

create_generated_clock -name clkDiv2 -divide_by 2 \-source [get_pins fd/C] [get_pins fd/Q]

デザイ ンにラ ッチが含まれる場合は、 タ イ ミ ング ク ロ ッ ク がラ ッチ ゲー ト ピンにも到達する必要があ り ます。 制約が存在し ない場合はチェ ッ ク タ イ ミ ング レポー ト (no_clock) に表示されます。 上記の例に従って、 これらのクロ ッ ク を定義し ます。

UltraFast 設計手法ガイ ド 106UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 107: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

マス ター ク ロ ッ ク と生成ク ロ ッ ク間のパス

プラ イマ リ ク ロ ッ ク と は異な り 、 生成ク ロ ッ クはマス ター ク ロ ッ ク のフ ァ ンアウ ト に定義し て、 タ イ ミ ング エンジンでその挿入遅延が正確に算出される よ う にする必要があ り ます。 この規則に従っていない と、 タ イ ミ ング解析が不正確にな り 、 ス ラ ッ ク の算出が無効 と なる可能性が高 く な り ます。 た と えば次の図では、 gen_clk_reg/Q は次のフ リ ッ プフ ロ ッ プ (q_reg) のク ロ ッ ク と し て使用され、 プラ イマ リ ク ロ ッ ク c1 のフ ァ ンア ウ ト コーンに含まれます。 このため、 gen_clk_reg/Q には、 create_clock ではな く 、 create_generated_clock を使用する必要があ り ます。

create_generated_clock -name GC1 -source [get_pins gen_clk_reg/C] -divide_by 2 [get_pins gen_clk_reg/Q]

ク ロ ッ ク定義および範囲の検証

デザイ ン ク ロ ッ クすべてが定義されて、 メ モ リ に適用される と、 report_clocks コマン ド を使用し て、 各ク ロ ック の波形、 マス ター ク ロ ッ ク と生成ク ロ ッ ク間の関係を検証でき ます。

Clock Period Waveform Attributes SourcessysClk 10.00000 {0.00000 5.00000} P {sysClk}clkfbout 10.00000 {0.00000 5.00000} P,G {clkgen/mmcm_adv_inst/CLKFBOUT}cpuClk 20.00000 {0.00000 10.00000} P,G {clkgen/mmcm_adv_inst/CLKOUT0}…====================================================Generated Clocks====================================================

Generated Clock : cpuClkMaster Source : clkgen/mmcm_adv_inst/CLKIN1Master Clock : sysClkEdges : {1 2 3}Edge Shifts : {0.000 5.000 10.000}Generated Sources : {clkgen/mmcm_adv_inst/CLKOUT0}

また、 すべての内部タ イ ミ ング パスに少な く と も 1 つのク ロ ッ ク が適用されているかど う かも検証でき ます。check_timing レポー ト では、 次の 2 種類のチェ ッ ク が提供されています。

• no_clock

定義し た ク ロ ッ ク が到達し ないすべてのア ク テ ィ ブ ク ロ ッ ク ピンを レポー ト し ます。

• unconstrained_internal_endpoint

ク ロ ッ ク に対する タ イ ミ ング チェ ッ ク があ るのに、 ク ロ ッ ク が定義されていないシーケンシ ャル セルのすべてのデータ入力ピンを レポー ト し ます。

X-Ref Target - Figure 3-55

図 3-55 : マス ター ク ロ ッ クのフ ァ ンアウ ト の生成ク ロ ッ ク

UltraFast 設計手法ガイ ド 107UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 108: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

両方のチェ ッ ク で 0 が返された場合、 タ イ ミ ング解析の適用範囲が高いこ と を示し ます。

ク ロ ッ ク制約に関連する設計手法 DRC と XDC およびタ イ ミ ング DRC を実行し て、 制約の競合または不正確な タ イミ ング解析が実行される状況を発生させずに、 推奨されるネ ッ ト リ ス ト オブジェ ク ト にク ロ ッ ク が定義されているこ と を確認でき ます。 設計手法 DRC をすべて実行するか、 XDC およびタ イ ミ ング DRC のみを実行するには、 次のコマン ド を使用し ます。

report_methodology

または

report_drc -checks [get_drc_checks {XDC-* TIMING-*}]

詳細は、 第 4 章の 「[Report Methodology] の実行」 を参照し て く ださい。

ク ロ ッ ク特性の調整

ク ロ ッ ク と その波形を定義し た ら、 次は ノ イ ズおよびばらつきに関する情報を入力し ます。 XDC 言語では、 ジ ッターに関するばらつき と位相エラーの記述がスキ ュー と遅延の記述 と は別になっています。

• 「ジ ッ ター」

• 「その他のばらつき」

• 「ソースのク ロ ッ ク レ イ テンシ」

• 「MMCM または PLL の外部フ ィ ード バッ ク ループ遅延」

ジ ッ ター

ジ ッ ターには、 Vivado Design Suite で使用されるデフ ォル ト 値を使用するのが 適です。 デフ ォル ト 値は次のよ う に変更でき ます。

• デバイ スに入力されるプラ イマ リ ク ロ ッ ク に 0 を超え る ラ ンダムなジ ッ ターが含まれる場合、set_input_jitter コマン ド を使用し てジ ッ ター値を指定し ます。

• デバイ スの電源に ノ イ ズがあ る場合にグ ローバル ジ ッ ターを調節する場合は、 set_system_jitter コマン ドを使用し ます。 デフ ォル ト システム ジ ッ ター値を増加する こ と はお勧めし ません。

生成ク ロ ッ ク の場合、 ジ ッ ターはマス ター ク ロ ッ ク と そのク ロ ッ ク調整ブロ ッ ク の特性から算出されます。 ユーザーがこれらの値を変更する必要はあ り ません。

その他のばらつき

1 つの ク ロ ッ ク または 2 つの ク ロ ッ ク間のタ イ ミ ング パスにマージンを追加する必要があ る場合は、set_clock_uncertainty コマン ド を使用し ます。 これは、 実際のク ロ ッ ク エ ッ ジおよび全体的な ク ロ ッ ク関係を変更せずに、 デザイ ンの一部の制約を厳し く する場合に 適で も安全な方法でも あ り ます。 ユーザーの定義した ク ロ ッ ク のばらつきは、 Vivado Design Suite で算出されたジ ッ ターに追加され、 また、 セ ッ ト ア ッ プおよびホールド解析用に別々に指定でき ます。

た と えば、 デザイ ンをセ ッ ト ア ッ プおよびホール ド両方の ノ イ ズに耐性の高いものにするには、 次のよ う にデザイン ク ロ ッ ク clk0 のすべての ク ロ ッ ク間パスにおけるマージンを 500ps 縮める必要があ り ます。

set_clock_uncertainty -from clk0 -to clk0 0.500

2 つの ク ロ ッ ク間のばらつき を追加で指定する場合、 制約は両方向に適用する必要があ り ます (データ フ ローが双方向であ る場合)。 次に、 clk0 および clk1 間のセ ッ ト ア ッ プのみでばらつき を 250ps 増加する方法を示し ます。

set_clock_uncertainty -from clk0 -to clk1 0.250 -setupset_clock_uncertainty -from clk1 -to clk0 0.250 -setup

UltraFast 設計手法ガイ ド 108UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 109: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ソースのク ロ ッ ク レ イテンシ

set_clock_latency コマン ド に -source オプシ ョ ンを指定する と、 ク ロ ッ ク レ イ テンシをそのソースで指定でき ます。 これは、 次のよ う な場合に便利です。

• 入力および出力遅延制約 と は別に、 デバイ スの外部でク ロ ッ ク遅延の伝搬を指定する ため

• ア ウ ト オブ コ ンテキス ト コ ンパイル中にブロ ッ ク で使用される ク ロ ッ ク の内部伝搬レ イ テンシを記述する ため。 このよ う なコ ンパイル フ ローでは、 完全な ク ロ ッ ク ツ リ ーは必要ではないので、 ブロ ッ ク外部の 小および 大動作条件間の変動は自動的には算出できず、 手動で記述する必要があ り ます。

有効なレ イ テンシ値を指定するのは困難なので、 この制約はア ド バン ス ユーザー以外は使用し ないで く ださ い。

MMCM または PLL の外部フ ィ ー ドバッ ク ループ遅延

内部ク ロ ッ ク遅延ではな く ボード遅延を補正するために MMCM または PLL フ ィ ードバッ ク ループを接続する場合、set_external_delay コマン ド を使用して FPGA デバイ ス外のベス ト ケース と ワース ト ケースの遅延を指定する必要があ り ます。 この遅延を指定しない と、 MMCM または PLL に関する I/O タ イ ミ ング解析が不適切にな り 、 タ イ ミング ク ロージャが不可能な状態になる可能性があ り ます。 また、 外部補正を使用した場合は、 ボード でのク ロ ッ ク ト レース遅延を考慮するだけの通常の場合と異な り 、 入力および出力遅延制約値を適切に変更する必要があ り ます。

入力ポー ト および出力ポー ト の制約

デザイ ンの各ポー ト のロ ケーシ ョ ンおよび I/O 規格を指定するだけでな く 、 入力および出力遅延制約を指定し て、FPGA デバイ スのイ ン ターフ ェ イ ス を行き来する外部パスのタ イ ミ ングを記述する必要があ り ます。 これらの遅延は、 通常ボード で生成されて FPGA デバイ スに入力される ク ロ ッ ク に対し て定義されています。 I/O パスがボード クロ ッ ク と は異なる波形のク ロ ッ ク と関連し ている場合、 遅延を仮想ク ロ ッ クに対し て定義する必要のあ る こ と があり ます。

システム レベルの視点

I/O パスは、 Vivado Design Suite タ イ ミ ング エンジンでレジス タ間のパス と同様にモデ リ ング されますが、 パスの一部が FPGA デバイ ス外部にあ り 、 ユーザーが記述する必要があ る点が異な り ます。 内部パス を解析する場合は、セ ッ ト ア ッ プおよびホール ド解析の両方に対し て 小遅延 と 大遅延が考慮されます。 これは、 I/O パスでも同様です。 このため、 小遅延 と 大遅延の条件を記述し てお く こ と が重要です。 I/O タ イ ミ ング パスは、 デフ ォル ト でシングルサイ クル パス と し て解析されます。 これは、 次を意味し ます。

• 大遅延解析 (セ ッ ト ア ッ プ) では、 シングル データ レー ト イ ン ターフ ェ イ スではソース エ ッ ジの 1 ク ロ ッ ク サイ クル後にデータがキ ャプチャ され、 ダブル データ レー ト イ ン ターフ ェ イ スではソース エ ッ ジの半ク ロ ック サイ クル後にデータがキ ャプチャ されます。

• 小遅延解析 (ホール ド ) の場合、 データは同じ ク ロ ッ ク エ ッ ジで開始されてキ ャプチャ されます。

ソース同期イ ン ターフ ェ イ スなど、 ク ロ ッ ク と I/O データ間の関係に異な る タ イ ミ ングを設定する必要があ る場合は、 異なる I/O 遅延を指定し、 タ イ ミ ング例外を設定し ます。 これは、 高度な I/O タ イ ミ ング制約にな り ます。

UltraFast 設計手法ガイ ド 109UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 110: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

入力遅延の定義

入力遅延はデバイ スのイ ン ターフ ェ イ スのク ロ ッ ク に対し て定義されます。 基準ク ロ ッ クのソース ピンに set_clock_latency が指定されていなければ、 入力遅延はソース エ ッ ジから ク ロ ッ ク ト レース を介し て外部デバイ スおよびデータ ト レースに到達する までの絶対時間に相当し ます。 ク ロ ッ ク レ イ テンシが既に別に指定されていれば、 ク ロ ッ ク ト レース遅延は無視でき ます。

両方の解析タ イプの入力遅延値は、 次のよ う に算出されます。

入力遅延 (max) = Tco(max) + Ddata(max) + Dclock_to_ExtDev(max) - Dclock_to_FPGA(min)入力遅延 (min) = Tco(min) + Ddata(min) + Dclock_to_ExtDev(min) - Dclock_to_FPGA(max)

次の図に、 sysClk ク ロ ッ ク が既に CLK ポー ト に定義されている場合に、 セ ッ ト ア ッ プ ( 大) およびホール ド ( 小) 解析の入力遅延制約を設定する単純な例を示し ます。

set_input_delay -max -clock sysClk 5.4 [get_ports DIN]set_input_delay -min -clock sysClk 2.1 [get_ports DIN]

負の入力遅延は、 ソース ク ロ ッ ク エ ッ ジよ り も前にデバイ スのイ ン ターフ ェ イ スにデータが到着する こ と を意味します。

X-Ref Target - Figure 3-56

図 3-56 : 入力遅延の算出

DIN D Q

REGBInternal Delay

CLK BUFG

Tsetup

Thold

D Q

Board Device

Tco

Dclock_to_ExtDev Dclock_to_ FPGA

Board Clock Generator

FPGA DEVICE

Ddata

Input Delay

X13450

X-Ref Target - Figure 3-57

図 3-57 : 小および 大入力遅延

Launch Edge

New DataOld Data

CLK

CLK

SourceClock

DIN

DestinationClock

Capture Edge(hold check)

Min Input Delay

Max Input Delay

PERIOD

Capture Edge(setup check)

X13451

UltraFast 設計手法ガイ ド 110UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 111: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

出力遅延の定義

出力遅延は、 入力遅延と類似し ていますが、 すべての状況下で機能させるために、 FPGA デバイ ス外での出力パスの小時間および 大時間を指定し ます。

両方の解析タ イプの出力遅延値は、 次のよ う に算出されます。

出力遅延 (max) = Tsetup + Ddata(max) + Dclock_to_FPGA(max) - Dclock_to_ExtDev(min)出力遅延 (min) = Ddata(min) - Thold + Dclock_to_FPGA(min) - Dclock_to_ExtDev(max)

次の図に、 sysClk ク ロ ッ ク が既に CLK ポー ト に定義されている場合に、 セ ッ ト ア ッ プ ( 大) およびホール ド ( 小) 解析の出力遅延制約を設定する単純な例を示し ます。

set_output_delay -max -clock sysClk 2.4 [get_ports DOUT]set_output_delay -min -clock sysClk -1.1 [get_ports DOUT]

X-Ref Target - Figure 3-58

図 3-58 : 出力遅延の算出

DOUTQD

REGB Internal Delay

CLKBUFG

Q

Tsetup

D

Board Device

Thold

Tco

Dclock_to_ExtDevDclock_to_ FPGA

Board Clock Generator

FPGA DEVICE

Ddata

Output Delay

X13452

UltraFast 設計手法ガイ ド 111UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 112: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

出力遅延はデステ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジ前のボード の遅延に相当し ます。 ク ロ ッ ク とデータのボード ト レースのバラ ン スが取られた標準的なシステム同期イ ン ターフ ェ イ スの場合、 デステ ィ ネーシ ョ ン デバイ スのセ ッ トア ッ プ時間によ り 、 大解析の出力遅延値が定義されます。 また、 デステ ィ ネーシ ョ ン デバイ スのホール ド タ イ ムによ り 、 小解析の出力遅延が定義されます。 指定された 小出力遅延は、 信号がデザイ ンから出力されてから、デステ ィ ネーシ ョ ン デバイ ス イ ン ターフ ェ イ スでホール ド解析に使用される までの 小遅延を示し ます。 このため、 ブロ ッ ク内の遅延はそれだけ小さ く な り ます。 小出力遅延が正の値の場合は、 信号にデザイ ン内で負の遅延が含まれる こ と を意味し ます。 小出力遅延が負の値であ る こ と がよ く あ るのはこのためです。 次に例を示し ます。

set_output_delay -min -0.5 -clock CLK [get_ports DOUT]

これは、 ホール ド タ イ ム要件を満たすためには、 DOUT までのデザイ ン内の遅延が少な く と も +0.5ns であ る必要があ る こ と を示し ています。

基準ク ロ ッ クの選択

入力または出力ポー ト に関する シーケンシャル セルを制御する ク ロ ッ ク ツ リ ー ト ポロ ジによ って、 入力または出力遅延制約を定義するのに 適な ク ロ ッ ク を選択する必要があ り ます。 I/O パス レジス タのク ロ ッ ク が生成ク ロ ッ ク であ る場合は通常、 遅延制約を生成ク ロ ッ ク のア ッ プス ト リ ームで定義されているプラ イマ リ ク ロ ッ ク を基準に定義する必要があ り ます。 このセ ク シ ョ ンでは、 この規則の例外を説明し ます。

各ポー ト に関連する ク ロ ッ クの特定

I/O 遅延制約を定義する前に、 各ポー ト にどの ク ロ ッ クが関連付け られているかを特定する必要があ り ます。 ク ロ ック を特定する方法は、 次のよ う に複数あ り ます。

• 「ボード回路図の確認」

• 「デザイ ン回路図の確認」

• 「ポー ト の入出力のタ イ ミ ングのレポー ト 」

• 「自動的に認識されたサンプ リ ング ク ロ ッ ク の使用」

ボー ド回路図の確認

ボード上の特定のデバイ スに接続されているポー ト のグループに対し ては、 デバイ スおよび FPGA の両方に供給される同じボード ク ロ ッ ク を入力遅延または出力遅延の基準ク ロ ッ ク と し て使用でき ます。 デバイ スのデータ シー トで、 ボード ク ロ ッ ク が I/O ポー ト のタ イ ミ ングのために内部で変換されているかど う かを確認し、 FPGA デザイ ンで関連するポー ト のグループのタ イ ミ ングを制御するために同じ ク ロ ッ クが生成される よ う にする必要があ り ます。

X-Ref Target - Figure 3-59

図 3-59 : 小および 大出力遅延

Launch Edge (FPGA)

New DataOld Data

CLK

CLK

SourceClk

DOUT

DestinationClk

Capture Edge(hold check)

Min Output Delay

PERIOD

Capture Edge(setup check)

Max Output Delay

TH(DestDev) TSU(DestDev) TH(DestDev)

X13453

UltraFast 設計手法ガイ ド 112UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 113: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

デザイ ン回路図の確認

各ポー ト で、 パスの回路図をシーケンシャル セルの 初のレベルまで展開し、 これらのセルのク ロ ッ ク ピンから クロ ッ ク ソース までたど り ます。 こ の方法は、 フ ァ ンア ウ ト の大きいネ ッ ト に接続されたポー ト では困難です。

ポー ト の入出力のタ イ ミ ングのレポー ト

report_timing コマン ド を使用する と、 ポー ト に既に制約が設定されているかど う かに関係な く 、 デザイ ン内の関連する ク ロ ッ ク を特定でき ます。 すべてのタ イ ミ ング ク ロ ッ ク を定義し た ら、 I/O ポー ト を行き来する ワース ト パス を レポー ト し、 レポー ト された ク ロ ッ ク に対し て I/O 遅延制約を作成し て、 デザイ ンのほかのク ロ ッ ク に対し て同じ タ イ ミ ング レポー ト を作成し ます。 ポー ト が複数のク ロ ッ ク に関連付け られている場合は、 対応する制約を作成し てプロセス を繰 り 返し ます。

た と えば、 din 入力ポー ト がデザイ ン内の clk0 および clk1 ク ロ ッ ク に関連し ている と し ます。

report_timing -from [get_ports din] -sort_by group

レポー ト には、 din ポー ト が clk0 に関連し ている こ と が示されます。 入力遅延制約 (この例では 小遅延および大遅延の両方) は、 次のよ う に設定し ます。

set_input_delay -clock clk0 5 [get_ports din]

前 と同じ コマン ド でタ イ ミ ング解析を再び実行し て、 din が clk1 にも関連し ている こ と を確認し ます。 -sort_by group オプシ ョ ンを使用する と、 終点ク ロ ッ ク ご と に N 個のパスがレポー ト されます。 対応する遅延制約を追加し、 レポー ト コマン ド を再び実行し て、 din ポー ト が別のク ロ ッ ク に関連し ていないこ と を確認し ます。

同じ解析はタ イ ミ ング サマ リ レポー ト で実行でき ます。 [Unconstrained Path] セ ク シ ョ ンを参照し て く ださ い。 デザイ ンにク ロ ッ ク制約しか含まれない場合、 このセ ク シ ョ ンは次のよ う に表示されます。

------------------------------------------------| Unconstrained Path Table------------------------------------------------

Path Group From Clock To Clock ---------- ---------- -------- (none) clk0 (none) clk0 (none) clk1

ク ロ ッ ク名のないフ ィ ール ド (Vivado IDE では <NONE>) は、始点 (From Clock) または終点 (To Clock) がク ロ ッ クに関連付け られていないパス グループを意味し ます。 制約が設定されていない I/O ポー ト は、 このカテゴ リ にな り ます。残 り のレポー ト を確認する と、 これらの名前を取得でき ます。 た と えば、 Vivado IDE で [clk0 to NONE] カテゴ リ のセ ッ ト ア ッ プ パス を選択する と、 [To] 列に clk0 で駆動されるポー ト が表示されます。

X-Ref Target - Figure 3-60

図 3-60 : 制約の付いていない出力ポー ト のリ ス ト

UltraFast 設計手法ガイ ド 113UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 114: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

新しい制約を追加し て メ モ リ でそれら を適用し た ら、 レポー ト を再び作成し て、 制約が設定されていないポー ト がまだあ るかど う かを確認し ます。 ほ と んどのデザイ ンで、 レポー ト されるパスの数を増加し て、 すべての I/O パスがレポー ト に含まれる よ う にする必要があ り ます。

自動的に認識されたサンプ リ ング ク ロ ッ クの使用

set_input_delay および set_output_delay 制約は、 関連する ク ロ ッ ク を指定せずに使用でき ます。 Vivado Design Suite タ イ ミ ング エンジンは、 デザイ ンを解析し、 各ポー ト をすべてのサンプ リ ング ク ロ ッ ク に自動的に関連付けます。 その後、 I/O パスのタ イ ミ ングを レポー ト する と、 ツールで各 I/O ポー ト がどのよ う に制約されたかを確認でき ます。 これによ り デザイ ンをすばや く 制約でき ますが、 このタ イプの汎用制約が一般的すぎて実際のハードウ ェアを正確に記述し ていない場合は、 問題 と なる こ と があ り ます。

プ ラ イマ リ ク ロ ッ クの使用

プラ イマ リ ク ロ ッ ク (入力されるボード ク ロ ッ ク ) は、 ク ロ ッ ク調整ブロ ッ ク を介さず、 I/O パスのシーケンシャル セルを直接制御する際に使用する必要があ り ます。 I/O 遅延ラ イ ンは、 ク ロ ッ ク挿入遅延にのみ影響し、 波形には影響し ないので、 ク ロ ッ ク調整ブロ ッ ク と し ては考慮されません。 これは、 「入力遅延の定義」 および 「出力遅延の定義」 の 2 つの例に示されています。 ほ と んどの場合、 外部デバイ スにも同じボード ク ロ ッ ク に対し て定義される独自のイ ン ターフ ェ イ ス特性があ り ます。

プラ イマ リ ク ロ ッ ク が、ゼロ ホール ド違反モード (ZHOLD) を使用し て FPGA 内の PLL または MMCM で補正されると、 I/O パスのシーケンシャル セルがそのプラ イマ リ ク ロ ッ ク の内部コ ピー (た と えば生成ク ロ ッ ク ) に接続されます。 両方のク ロ ッ ク の波形は同じ なので、 入力/出力遅延制約の基準ク ロ ッ ク と し てプラ イマ リ ク ロ ッ ク を使用するこ と をお勧めし ます。

ZHOLD MMCM は補正量に相当する負の挿入遅延を含むク ロ ッ ク バッ フ ァーのよ う に動作するので、 制約は 「入力遅延の定義」 の例 と同じにな り ます。

仮想ク ロ ッ クの使用

ボード ク ロ ッ ク が挿入遅延を補正するだけでな く 実際に波形を変換する ク ロ ッ ク調整ブロ ッ ク を通過する場合、 入力または出力遅延の基準ク ロ ッ ク と し てボード ク ロ ッ ク の代わ り に仮想ク ロ ッ ク を使用する こ と をお勧めし ます。仮想ク ロ ッ ク を使用するのには、 主に次の 3 つの場合があ り ます。

• 内部ク ロ ッ クおよびボード ク ロ ッ ク の周期が異なる : 仮想ク ロ ッ ク を内部ク ロ ッ クの周期および波形と同じになる よ う 定義する必要があ り ます。 これによ り 、 I/O パスのシングルサイ クル パス要件が標準的な ものにな ります。

• 入力パスで、 内部ク ロ ッ ク の波形がボード ク ロ ッ ク から正の方向にシフ ト されている : 仮想ク ロ ッ クはボード ク ロ ッ ク と同様に定義し、 仮想ク ロ ッ ク から内部ク ロ ッ ク にセ ッ ト ア ッ プ対し て 2 サイ クルのマルチサイ クル パス制約を定義し ます。 これらの制約によ り 、 セ ッ ト ア ッ プ タ イ ミ ング解析が 1 ク ロ ッ ク サイ クル + 位相シフト 量の要件で実行されます。

• 出力パスで、 内部ク ロ ッ ク の波形がボード ク ロ ッ ク から負の方向にシフ ト されている : 仮想ク ロ ッ クはボード ク ロ ッ ク と同様に定義し、 内部ク ロ ッ ク から仮想ク ロ ッ ク にセ ッ ト ア ッ プに対し て 2 サイ クルのマルチサイ クル パス制約を定義し ます。 これらの制約によ り 、 セ ッ ト ア ッ プ タ イ ミ ング解析が 1 ク ロ ッ ク サイ クル + 位相シフ ト 量の要件で実行されます。

X-Ref Target - Figure 3-61

図 3-61 : ク ロ ッ ク パスに ZHOLD MMCM が含まれる場合の入力遅延

FDCE

data_reg[0]mmcm

CLK OUT1CLK IN1CLK

DIN

mmcm_zhold

DIN_IBUF_instI O

IBUF

+

C

CE

CLR

D

Q

Input Delay

X13454

UltraFast 設計手法ガイ ド 114UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 115: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ま と める と、 仮想ク ロ ッ ク を使用する こ と によ り 、 デフ ォル ト のタ イ ミ ング解析を調整し て、 I/O パスが要件の厳しいク ロ ッ ク乗せ換えパス と し て処理されるのを回避でき ます。

た と えば、 100MHz で動作する sysClk ボード ク ロ ッ ク を MMCM で逓倍し、 266MHz で動作する clk266 を生成する とし ます。 clk266 で生成される出力では、 clk266 を基準ク ロ ッ ク と し て使用する必要があ り ます。set_output_delay で sysClk を基準ク ロ ッ ク と し て使用し よ う とする と、 非同期ク ロ ッ ク と し て認識され、 パスに単一サイ クルのタ イ ミ ング制約が適用されな く な り ます。

生成ク ロ ッ クの使用

出力ソース同期イ ン ターフ ェ イ スの場合、 デザイ ンで内部ク ロ ッ ク のコ ピーが生成されて、 データ と共にボード に転送されます。 このク ロ ッ クは、 転送された ク ロ ッ ク とデータ間の位相関係 (スキ ュー ) を制御し てレポー ト する場合は、 通常出力データ遅延制約の基準ク ロ ッ ク と し て使用されます。 システム同期イ ン ターフ ェ イ スでは、 入力および出力遅延制約にフ ォ ワード ク ロ ッ ク を使用する こ と もでき ます。

基準ク ロ ッ クの立ち上がり /立ち下がり エ ッ ジ

I/O 制約で使用される ク ロ ッ ク エ ッ ジは、 FPGA デバイ スに接続された外部デバイ スのデータ シー ト に従 う 必要があり ます。 デフ ォル ト では、 set_input_delay および set_output_delay コマン ド で基準ク ロ ッ ク の立ち上が りエ ッ ジに対する遅延制約が定義されます。 立ち下が り エ ッ ジに対する遅延を指定する場合は、 clock_fall オプシ ョ ンを使用する必要があ り ます。 add_delay オプシ ョ ンでポー ト の 2 つ目の制約を指定する と、 立ち上が り と立ち下が り ク ロ ッ ク エ ッ ジの両方の遅延に、 別々の制約を指定する こ と もでき ます。

ほ と んどの場合、 I/O 基準ク ロ ッ クのエ ッ ジは FPGA 内部の I/O データ を ラ ッチまたは送信する ために使用される クロ ッ ク エ ッ ジです。 I/O タ イ ミ ング パス を解析する と、 どち らの ク ロ ッ ク エ ッ ジが使用されるか確認でき、 それらが実際のハード ウ ェ ア動作でどのよ う になるか検証でき ます。 ク ロ ッ クの立ち上が り エ ッ ジが I/O パスの基準ク ロ ック (内部ではク ロ ッ ク の立ち下が り エ ッ ジにのみ関連) と し て間違って使用される と、 パス要件は 1/2 の周期にな り 、タ イ ミ ング ク ロージ ャが達成しに く く な り ます。

遅延制約の確認

I/O タ イ ミ ング制約を入力し た ら、 I/O パスのタ イ ミ ングの解析方法と、 セ ッ ト ア ッ プおよびホール ド チェ ッ ク の両方でのス ラ ッ ク違反の量を確認する こ と が重要にな り ます。 すべてのポー ト に関する タ イ ミ ング レポー ト を使用してセ ッ ト ア ッ プおよびホール ド解析の両方を実行する と (delay type = min_max)、 次を確認でき ます。

• 正しいク ロ ッ ク と ク ロ ッ ク エ ッ ジが遅延制約の基準と し て使用されているかど う か。

• FPGA デバイ ス内部の I/O データが予測どお り ク ロ ッ ク で送信およびキ ャプチャ されているかど う か。

• 違反が配置の変更または適切な遅延ラ イ ンのタ ッ プ コ ンフ ィ ギュ レーシ ョ ンで合理的に修正可能かど う か。 修正でき ない場合は、 制約に入力された I/O 遅延値を確認し、 それらが現実的かど う か判断し、 タ イ ミ ングを満たすためにデザイ ンを修正する必要があ るかど う かを確認する必要があ り ます。

I/O パス レポー ト のコ マン ド ラ イ ンの例

report_timing -from [all_inputs] -nworst 1000 -sort_by group \-delay_type min_max

report_timing -to [all_outputs] -nworst 1000 -sort_by group \-delay_type min_max

I/O 遅延制約に問題があ る と、 タ イ ミ ング ク ロージ ャ を達成できないこ と があ り ます。 イ ンプ リ メ ンテーシ ョ ン ツールはタ イ ミ ング ド リ ブンで、 タ イ ミ ングを満たすために配置配線を 適化し ます。 I/O パス要件を満たすこ と ができず、 I/O パスがワース ト 違反になる場合、 デザイ ン全体の QoR (結果の品質) に影響し ます。

UltraFast 設計手法ガイ ド 115UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 116: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

入力から出力までのフ ィ ー ド スルー パス

入力ポー ト から出力ポー ト までの組み合わせパスに制約を付けるには、 複数の方法があ り ます。

例 1

フ ィ ード スルー パスのターゲ ッ ト 大遅延以上の周期の仮想ク ロ ッ ク を使用し、 入力および出力遅延制約を次のよう に適用し ます。

create_clock -name vclk -period 10set_input_delay -clock vclk <input_delay_val> [get_ports din] -maxset_output_delay -clock vclk <output_delay_val> [get_ports dout] -max

説明 :

input_delay_val(max) + フ ィ ード スルー パス遅延 (max) + output_delay_val(max)<= vclk 周期

この例では、 大遅延のみが制約されています。

例 2

フ ィ ード スルー ポー ト 間に 小および 大遅延制約を組み合わせて使用し ます。 次はその例です。

set_max_delay -from [get_ports din] -to [get_ports dout] 10set_min_delay -from [get_ports din] -to [get_ports dout] 2

これは、 パスに 小遅延 と 大遅延の両方の遅延を設定する シンプルな方法で、 タ イ ミ ング解析では、 同じポー トの既存の入力および出力遅延制約も使用されます。 このため、 このス タ イルはそれほど使用されません。

大遅延は通常 適化され、 ス ロー タ イ ミ ング コーナーに対し てレポー ト されますが、 小遅延はフ ァース ト タ イミ ング コーナーに対し てレポー ト されます。 特にポー ト が互いに遠 く に配置されている場合は、 フ ィ ード スルー パスの遅延制約を 2、 3 度繰 り 返し て、 それらが妥当で、 イ ンプ リ メ ンテーシ ョ ン ツールで満たすこ と が可能であ るかど う かを検証し て く ださい。

XDC テンプレー ト の使用 : ソース同期イ ン ターフ ェ イス

システム同期イ ン ターフ ェ イ スのタ イ ミ ング制約を正し く 記述でき て も、 ソース同期イ ン ターフ ェ イ スには I/O 制約テンプレー ト を使用する こ と をお勧めし ます。 ソース同期制約は、 複数の方法で記述でき ます。 Vivado Design Suite に含まれる テンプレー ト は、 デフ ォル ト のタ イ ミ ング パス要件に基づいています。 構文はシンプルですが、 セ ッ トア ッ プ解析が同じエ ッ ジ (0 サイ クル) ではな く 異なる ソース エ ッ ジおよびデステ ィ ネーシ ョ ン エ ッ ジ (1 サイ クルまたは 1/2 サイ クル) で実行される こ と を考慮し て、 遅延値を調整する必要があ り ます。 タ イ ミ ング レポー ト では、 クロ ッ ク エ ッ ジが直接ハード ウ ェ アの実際のク ロ ッ ク エ ッ ジに対応し ないので、 解読しに く い場合があ り ます。 これらのテンプレー ト は、 Vivado の GUI で [Tools] → [Language Templates] → [XDC] → [Timing Constraints] → [Input Delay Constraints] → [Source Synchronous] を ク リ ッ クする と入手でき ます。

ク ロ ッ ク グループおよび CDC 制約の定義

Vivado IDE では、 デフ ォル ト でデザイ ンのすべてのク ロ ッ ク間のパスにタ イ ミ ングが適用されます。set_clock_groups コマン ド を使用する と、 ク ロ ッ ク グループ間のタ イ ミ ング解析がデ ィ スエーブルにな り ます。同じ グループ内のク ロ ッ ク間のタ イ ミ ング解析はデ ィ スエーブルにな り ません。 set_false_path 制約では、set_clock_groups コマン ド と は異な り 、 -from および -to オプシ ョ ンで指定された方向のみのク ロ ッ ク間のタイ ミ ングが無視されます。 ク ロ ッ ク乗せ換え (CDC) パスに 大遅延制約を設定する と、 1 つまたは複数の信号のこれらのパスのレ イ テンシを制限でき る場合も あ り ます。 ク ロ ッ ク グループまたはフ ォルス パス制約が既に ク ロ ッ ク間または同じ CDC パスに設定されている場合、 大遅延制約は無視されます。 こ のため、 1 つの CDC タ イ ミ ング制約を選択する前にすべてのク ロ ッ ク ペア間のパス を注意し て確認し、 制約が競合し ないよ う にする こ と が重要です。非同期 CDC パス間の複数の信号を レ イ テンシではな く バス スキ ューで制約する必要があ る場合は、set_max_delay ではな く set_bus_skew コマン ド を使用し ます。

UltraFast 設計手法ガイ ド 116UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 117: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

推奨 : report_methodology を実行し て、set_max_delay -datapath_only 制約が set_clock_groups または set_false_path 制約によ り 無効になっていないかど う かを確認する こ と もお勧めし ます。 詳細は、 第 4 章の「[Report Methodology] の実行」 を参照し て く ださ い。

ク ロ ッ クの関連性の確認

ク ロ ッ ク間に論理パスがある場合、 タ イ ミ ング解析が実行されます。 この場合、 ク ロ ッ ク関係は次のよ う にな り ます。

• 「同期」

• 「非同期」

• 「排他的」

同期

2 つの ク ロ ッ クに固定された位相関係があ る場合は、 ク ロ ッ ク関係が同期にな り ます。 これは、 2 つのク ロ ッ ク が次を共有し ている場合です。

• 共通の回路 (共通の ノ ード )

• プラ イマ リ ク ロ ッ ク (同じ初期位相)

非同期

ク ロ ッ ク間に固定された位相関係がない場合、 ク ロ ッ ク関係は非同期にな り ます。 これは、 次のいずれかの状況で発生し ます。

• デザイ ン内で共有される共通の回路がな く 、 共通のプラ イマ リ ク ロ ッ ク も ない場合

• 1000 サイ クル以内に共通周期を見つける こ と ができず、 タ イ ミ ング エンジンで適切にタ イ ミ ング解析を実行でき ない場合

2 つの ク ロ ッ クが同期し ていて共通周期が非常に小さい場合、 セ ッ ト ア ッ プ パス要件がタ イ ミ ングを満たすには厳しすぎ る ものにな り ます。 この場合、 2 つのク ロ ッ ク を非同期と し て処理し、 安全な非同期 CDC 回路を イ ンプ リ メン ト する こ と をお勧めし ます。

排他的

同じ ク ロ ッ ク ツ リ ーを伝搬し、 同じ シーケンシ ャル セルのク ロ ッ ク ピンに到達するが、 物理的に同時にア ク テ ィ ブにな ら ない場合、 ク ロ ッ ク関係は排他的にな り ます。

ク ロ ッ ク ペアの分類

ク ロ ッ ク ペアは、 次のレポー ト を使用し て分類でき ます。

• 「ク ロ ッ ク関連性レポー ト 」

• 「チェ ッ ク タ イ ミ ング レポー ト 」

ク ロ ッ ク関連性レポー ト

ク ク ロ ッ ク関連性レポー ト は、 2 つのク ロ ッ ク間でどのよ う にタ イ ミ ング解析が実行されるかを示し ます。

• 2 つの ク ロ ッ ク に共通のプラ イマ リ ク ロ ッ ク があ るか。 ク ロ ッ ク が正し く 定義されている場合、 デザイ ンの同じ ソースからのク ロ ッ クはすべて同じプラ イマ リ ク ロ ッ ク を共有し ます。

• 2 つの ク ロ ッ ク に共通周期があ るか。 タ イ ミ ング エンジンでワース ト ケースのセ ッ ト ア ッ プまたはホール ド関係を決定でき ない場合、 これがセ ッ ト ア ッ プまたはホール ド パス要件の列に表示されます。

• 2 つのク ロ ッ ク間の一部またはすべてのパスにク ロ ッ ク グループまたはタ イ ミ ング例外制約が適用されているか。

UltraFast 設計手法ガイ ド 117UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 118: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• 2 つの ク ロ ッ ク間のセ ッ ト ア ッ プ パス要件が非常に厳しいか。 この状況は、 2 つの ク ロ ッ ク が同期し ているのに、 丸めなどのためにそれらの周期が正確な逓倍 と し て指定されない場合に発生する こ と があ り ます。 ク ロ ック サイ クルが繰 り 返されるにつれてエ ッ ジがずれていき、 ワース ト ケース要件が非常に厳し く なる こ と があ ります。

チ ェ ッ ク タ イ ミ ング レポー ト

チェ ッ ク タ イ ミ ング (Check Timing) レポー ト (multiple_clock) では、 複数の ク ロ ッ クが到達する ク ロ ッ ク ピンで、 これらのク ロ ッ ク間に set_clock_groups または set_false_path 制約が設定されていないものが特定されます。

排他的なク ロ ッ ク グループの制約

通常のタ イ ミ ングまたはク ロ ッ ク ネ ッ ト ワーク のレポー ト を使用する と、 ク ロ ッ ク パス を確認でき、 2 つのク ロ ック が同じ ク ロ ッ ク ツ リ ーに伝搬され、 始点と終点のク ロ ッ ク ピンが同じ ク ロ ッ ク ツ リ ーに接続される タ イ ミ ング パスで同時に使用されている状況を特定でき ます。 この解析には時間がかかる こ と があ るので、 代わ り にチェ ッ ク タ イ ミ ング レポー ト の multiple_clock セ ク シ ョ ンを確認し ます。 こ のセ ク シ ョ ンには、 ク ロ ッ ク ピン と それに関連し た タ イ ミ ング ク ロ ッ ク が リ ス ト されます。

ク ロ ッ ク ツ リ ー ト ポロ ジに基づいて、 異なる制約を適用する必要があ り ます。

• 「同じ ク ロ ッ ク ソースで定義された ク ロ ッ ク の重複」

• 「ク ロ ッ ク マルチプレ クサーで駆動される ク ロ ッ ク の重複」

同じ ク ロ ッ ク ソースで定義されたク ロ ッ クの重複

これは、 2 つの ク ロ ッ ク が create_clock -add コマン ド を使用し て同じネ ッ ト リ ス ト オブジェ ク ト に定義され、アプ リ ケーシ ョ ンの複数のモード を示す場合に発生し ます。 この場合、 ク ロ ッ ク間に ク ロ ッ ク グループ制約を適用するのが安全です。 次に例を示し ます。

create_clock -name clk_mode0 -period 10 [get_ports clkin]create_clock -name clk_mode1 -period 13.334 -add [get_ports clkin]set_clock_groups -physically_exclusive -group clk_mode0 -group clk_mode1

clk_mode0 および clk_mode1 ク ロ ッ クがほかの ク ロ ッ ク を生成する場合、 同じ制約をその生成ク ロ ッ クにも適用する必要があ り ます。 これには、 次を実行し ます。

set_clock_groups -physically_exclusive \-group [get_clocks -include_generated_clock clk_mode0] \-group [get_clocks -include_generated_clock clk_mode1]

ク ロ ッ ク マルチプレ クサーで駆動される ク ロ ッ クの重複

2 つ以上の ク ロ ッ ク がマルチプレ クサー (または組み合わせセル) に入力される と、 すべてが伝搬され、 セルのフ ァ ンア ウ ト で重複し ます。 現実的には、 一度に伝搬でき るのは 1 つのク ロ ッ ク のみですが、 タ イ ミ ング解析では同時に複数のタ イ ミ ング モード がレポー ト されます。

このため、 CDC (ク ロ ッ ク乗せ換え) パス を確認し、 新しい制約を追加し て、 一部のク ロ ッ ク関係を無視する必要があ り ます。 正しい制約は、 ク ロ ッ ク がデザイ ンのど こ でどのよ う に動作するかによ って異な り ます。

次の図は、 マルチプレ ク サーに駆動される 2 つのク ロ ッ ク と、 マルチプレ ク サー前後でのそれらのク ロ ッ ク の関連性を示し た例です。

UltraFast 設計手法ガイ ド 118UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 119: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

• パス A、 B、 C が存在し ない場合

clk0 および clk1 は、 マルチプレ クサーのフ ァ ンア ウ ト (FDM0 および FDM1) でのみ関連性があ り ます。clk0 および clk1 に直接ク ロ ッ ク グループ制約を安全に適用でき ます。

set_clock_groups -logically_exclusive -group clk0 -group clk1

• パス A、 B、 C のいずれかしか存在し ない場合

clk0 および clk1 の両方またはどち らかは、 マルチプレ クサーを介する ク ロ ッ ク と直接関連性があ り ます。 タイ ミ ング パス A、 B、 C を保持する ために、 制約を clk0 および clk1 に直接適用する こ と はでき ません。 代わり に、 マルチプレ ク サーのフ ァ ンアウ ト のク ロ ッ ク部分に制約を適用する必要があ り ます。 これには、 ク ロ ック定義を追加する必要があ り ます。

create_generated_clock -name clk0mux -divide_by 1 \-source [get_pins mux/I0] [get_pins mux/O]

create_generated_clock -name clk1mux -divide_by 1 \-add -master_clock clk1 \

-source [get_pins mux/I1] [get_pins mux/O]

set_clock_groups -physically_exclusive -group clk0mux -group clk1mux

非同期ク ロ ッ ク グループおよびク ロ ッ ク乗せ換えの制約

共通のプラ イマ リ ク ロ ッ ク または共通周期がない ク ロ ッ ク ペアの非同期関係は、 ク ロ ッ ク関連性レポー ト ですばやく 検出でき ます。 ク ロ ッ ク周期が同じ場合でも、 異なる ソースから生成されていれば、 ク ロ ッ ク同士は非同期のままにな り ます。 非同期 CDC (ク ロ ッ ク乗せ換え) パスは注意し て確認し、 タ イ ミ ングの正確さに依存し ない、 メ タ ステーブル状態が発生する可能性を 小限に抑えた適切な同期回路が使用される よ う にする必要があ り ます。 非同期 CDC パスには通常、 スキ ューが大き く 、 非現実的なパス要件があ り ます。 これらのパスは、 ハード ウ ェアで機能する こ と を判断でき ないので、 デフ ォル ト のタ イ ミ ング解析では解析し ないよ う にする必要があ り ます。

X-Ref Target - Figure 3-62

図 3-62 : マルチプレ クサーを介する ク ロ ッ ク

FDM1

D Q

FDM0

D Q

FD1

D Q

FD0

D Q

I0

I1

O

clk0

clk1

A

C

B

X13455

UltraFast 設計手法ガイ ド 119UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 120: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

CDC レポー ト

[Report CDC] (report_cdc) コマン ド は、 デザイ ンのク ロ ッ ク乗せ換えの構造解析を実行し ます。 この情報を使用して、 メ タ ステーブル状態またはデータ コ ヒ ーレ ンシの問題が発生する可能性のあ る危険な CDC を特定でき ます。CDC レポー ト はク ロ ッ ク関連性レポー ト と似ていますが、 構造および関連する タ イ ミ ング制約に焦点が置かれます。非同期ク ロ ッ ク ド メ イ ンを またぐパスではタ イ ミ ング ス ラ ッ クは意味がないので、 CDC レポー ト にはタ イ ミ ング情報は示されません。

CDC レポー ト では、 次のよ う な も一般的な CDC ト ポロ ジが特定されます。

• 1 ビ ッ ト シン ク ロナイザー

• バス用の複数ビ ッ ト シン ク ロナイザー

• 非同期 リ セ ッ ト シン ク ロナイザー

• MUX および CE で制御される回路

• シン ク ロナイザーの前の組み合わせロ ジ ッ ク

• 複数ク ロ ッ ク からのシン ク ロナイザーへのフ ァ ン イ ン

• デステ ィ ネーシ ョ ン ク ロ ッ ク ド メ イ ンへのフ ァ ンアウ ト

report_cdc コマン ド の詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンおよび『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガイ ド』 (UG835) [参照 13] の 「report_cdc」 を参照し て く ださい。

非同期ク ロ ッ ク乗せ換えでデフ ォル ト のタ イ ミ ング解析が実行されるのを回避する ため、 特定の制約を適用する必要があ り ます。

• 「ク ロ ッ ク間の双方向のグ ローバル制約」

• 「各 CDC パスの制約」

ク ロ ッ ク間の双方向のグローバル制約

大レ イ テンシを制限する必要がない場合は、 ク ロ ッ ク グループを使用でき ます。 次は、 clkA および clkB 間のパス を無視する例です。

set_clock_groups -asynchronous -group clkA -group clkB

2 つのマス ター ク ロ ッ ク と それぞれの生成ク ロ ッ ク によ り 2 つの非同期ド メ イ ンが形成されてお り 、 それらの ド メイ ン間のすべてのパスが適切に同期化されている場合は、 ク ロ ッ ク グループ制約を一度に複数のク ロ ッ ク に適用でき ます。

set_clock_groups -asynchronous \-group {clkA clkA_gen0 clkA_gen1 …} \-group {clkB clkB_gen0 clkB_gen1 …}

または、 単純に次を使用し ます。

set_clock_groups -asynchronous \-group [get_clocks -include_generated_clock clkA] \-group [get_clocks -include_generated_clock clkB]

各 CDC パスの制約

CDC パスがグレ イ コード を使用する場合 (例 : FIFO) や、 1 つまたは複数の信号で 2 つの非同期ク ロ ッ ク間のレ イ テンシを制限する必要があ る場合、 set_max_delay 制約に -datapath_only オプシ ョ ンを付けて これらのパスのクロ ッ ク スキ ューおよびジ ッ ターが無視される よ う にし、 さ らにデフ ォル ト パス要件を レ イ テンシ要件で置き換え る必要があ り ます。 通常は 大遅延値にソース ク ロ ッ ク周期を使用するので十分ですが、 任意の時間で CDC パスに複数のデータが存在する こ と がないよ う に注意し て く ださい。

UltraFast 設計手法ガイ ド 120UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 121: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

ク ロ ッ ク周期間の比率が大きい場合、 小のソース とデステ ィ ネーシ ョ ン ク ロ ッ ク周期を選択し て転送レ イ テンシを削減する こ と も でき ます。 ク リ ーンな非同期 CDC パスにはソースおよびデステ ィ ネーシ ョ ン シーケンシ ャル セル間にロ ジ ッ ク が含まれないので、 通常はイ ンプ リ メ ンテーシ ョ ン ツールで set_max_delay -datapath_only 制約を簡単に満たすこ と ができ ます。

一部の非同期 CDC パスでは、 バス レ イ テンシの制約の代わ り に、 バスのビ ッ ト 間のスキ ュー制御が必要です。 バス スキ ュー制約を使用する と、 受信ク ロ ッ ク ド メ イ ンで同じ ク ロ ッ ク エ ッ ジでバスの複数のステー ト がラ ッチされるのが回避されます。 バスにバス スキ ュー制約を設定するには、 set_bus_skew コマン ド を使用し ます。 た と えば、グレ イ コード を使用する CDC バスに、 set_max_delay -datapath_only 制約の代わ り に set_bus_skew を適用でき ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] のこのセ ク シ ョ ンを参照し て く ださい。

レ イ テンシ制御を必要 と し ないパスの場合は、 ポイ ン ト ト ゥ ポイ ン ト のフ ォルス パス制約を定義でき ます。

set_max_delay よ り優先される ク ロ ッ ク例外

CDC 制約を記述する場合は、 優先度を考慮する必要があ り ます。 set_max_delay -datapath_only を 2 つのクロ ッ ク間の少な く と も 1 つのパスに使用する と、 同じ ク ロ ッ ク間に set_clock_groups 制約は使用できず、 2 つのク ロ ッ ク間のほかのパスに使用でき るのは set_false_path 制約のみです。

次の図では、 clk0 ク ロ ッ ク の周期は 5ns で、 clk1 と は非同期です。 clk0 ド メ イ ンから clk1 ド メ イ ン までには、2 つのパスがあ り ます。 初のパスは、 1 ビ ッ ト データ同期で、 2 つ目のパスは複数ビ ッ ト のグレ イ コード のバス転送です。

グレ イ コード のバス転送でビ ッ ト 内の遅延パターンを制限する ために set_max_delay -datapath_only 制約が必要かど う かは設計者が判断するので、 ク ロ ッ ク間に直接ク ロ ッ ク グループまたはフ ォルス パス制約を使用する こと はでき ません。 代わ り に、 2 つの制約を定義する必要があ り ます。

set_max_delay -from [get_cells GCB0[*]] -to [get_cells [GCB1a[*]] \-datapath_only 5set_false_path -from [get_cells REG0] -to [get_cells REG1a]

この例にはパスがないので、 clk1 から clk0 までのフ ォルス パス を設定する必要はあ り ません。

X-Ref Target - Figure 3-63

図 3-63 : 2 つの非同期ク ロ ッ ク間の複数の関連性

D Q

GCB0[N..0]

D Q

GCB1a[N..0]

D Q

GCB1b[N..0]

D Q

REG0

D Q

REG1a

D Q

REG1b

BUFG1 IBUF1 clk1BUFG0IBUF0clk0

X13456

UltraFast 設計手法ガイ ド 121UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 122: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

タ イ ミ ング例外の指定

タ イ ミ ング例外は、 特定のパスでのタ イ ミ ング解析の実行方法を変更する ために使用し ます。 デフ ォル ト では、悪のク ロ ッ ク状況を網羅するため、 タ イ ミ ング エンジンによ り セ ッ ト ア ッ プ解析ですべてのパスにシングル サイ クル要件のタ イ ミ ング制約が適用されますが、 パスによ ってはこれは当てはま り ません。 次は、 その例の一部です。

• 非同期ク ロ ッ ク乗せ換えパスにはク ロ ッ ク間に固定された位相関係がないので、 安全にタ イ ミ ング制約を適用する こ と ができ ない。 これらのパスは無視するか (ク ロ ッ ク グループ、 フ ォルス パス制約)、 データパス遅延制約 (set_max_delay -datapath_only) を設定する必要があ り ます。

• シーケンシャル セルのソース ク ロ ッ ク エ ッ ジおよびデステ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジはすべてのク ロ ッ ク サイ クルでア ク テ ィ ブになるわけではない。 この場合、 パス要件を緩和でき ます (マルチサイ クル パス)。

• ハード ウ ェ アでのデザイ ン マージンを増加する ため、 パス遅延要件を厳し く する必要があ る ( 大遅延)。

• 組み合わせセルを介するパスがス タテ ィ ッ クで、 タ イ ミ ングを適用する必要がない (フォルス パス、 ケース解析)。

• マルチプレ ク サーで駆動される特定のク ロ ッ ク でのみ解析を実行する必要があ る (ケース解析)。

どの場合でも、 タ イ ミ ング例外の使用には注意が必要で、 実際のタ イ ミ ング問題を隠すために追加するべきではあり ません。

タ イ ミ ング例外のガイ ド ラ イ ン

タ イ ミ ング例外の数は制限し、 でき る限 り 簡潔にない と、 次の問題が発生し ます。

• 例外が多 く 使用される と (特に多数のネ ッ ト リ ス ト オブジェ ク ト に使用される場合)、 コ ンパイル フ ローの実行時間が大幅に増加し ます。

• 複数の例外が同じパスに適用される と、 制約のデバッ グが複雑にな り ます。

• 信号の制約によ り 、 その信号の 適化が妨害される こ と があ るので、 例外コマン ド に不必要な例外やポイ ン トを含める と、 適化が妨害される可能性があ り ます。

次は、 実行時間に悪影響を及ぼすタ イ ミ ング例外の例です。

set_false_path -from [get_ports din] -to [all_registers]

• din ポー ト に入力遅延がない場合は、 制約は設定されないので、 フ ォルス パス を追加する必要はあ り ません。

• din ポー ト が順次エレ メ ン ト にのみ接続される場合、 シーケンシャル セルに対し てフ ォルス パス を明示的に指定する必要はあ り ません。 制約は、 次のよ う に記述し た方が効率的です。

set_false_path -from [get_ports din]

• フ ォルス パスが必要だが din ポー ト から シーケンシャル セルへのパスが 2、 3 個しかない場合は、 制約を よ り特定的に指定し ます (all_registers を使用する と、 デザイ ンで使用される レジス タの数によ って何千ものセルが返される可能性あ り )。

set_false_path -from [get_ports din] -to [get_cells blockA/config_reg[*]]

タ イ ミ ング例外の優先度と規則

タ イ ミ ング例外には、 厳しい優先度 と規則が適用されます。 も重要な規則は、 次の とお り です。

• 制約が具体的になるほど、 優先順位が高 く な り ます。 次に例を示し ます。

set_max_delay -from [get_clocks clkA] -to [get_pins inst0/D] 12

set_max_delay -from [get_clocks clkA] -to [get_clocks clkB] 10

UltraFast 設計手法ガイ ド 122UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 123: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

初の set_max_delay の方が、 -to オプシ ョ ンでピンが使用されていて、 ク ロ ッ ク よ り も具体的なので優先度は高 く な り ます。

• 例外の優先順位は次の とお り です。

1. set_false_path

2. set_max_delay または set_min_delay

3. set_multicycle_path

set_clock_groups コマン ド は、 2 つのク ロ ッ ク間に 2 つの set_false_path コマン ド を使用するの と同じですが、 タ イ ミ ング例外 と は考慮されません。 set_clock_groups はタ イ ミ ング例外よ り も優先順位が高 く な り ます。

set_case_analysis および set_disable_timing コマン ド は、 デザイ ンの特定部分でのタ イ ミ ング解析をデ ィスエーブルにし ます。 これらのコマン ド はタ イ ミ ング例外よ り も優先順位が高 く な り ます。

XDC の優先順位の詳細は、『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] のこのセ ク シ ョ ンを参照し て く ださい。

フ ォルス パス制約の追加

フ ォルス パス例外を タ イ ミ ング パスに追加する と、 これらのパスのス ラ ッ ク算出が無視されます。 通常は、 シ ミ ュレーシ ョ ン ツールを使用し て も、 パスが機能する ためにタ イ ミ ングが必要でない と い う こ と を証明するのは困難です。 フ ォルス パス を使用する場合の リ ス ク を理解せずに、 フ ォルス パス を使用する こ と はお勧めし ません。

使用状況

フ ォルス パス制約を使用する典型的な状況は、 次の とお り です。

• ア ク テ ィ ブにな ら ないパスのタ イ ミ ングを無視する場合。 た と えば、 セレ ク ト ピンが接続されているため、 同じ ク ロ ッ ク サイ クルではデータ を伝搬する こ と のでき ない 2 つのマルチプレ クサーを介するパスなどです。

set_false_path -through [get_pins MUX0/I0] -through [get_pins MUX1/I1]

• 非同期 CDC パスのタ イ ミ ングを無視する場合。 これについては、 「ク ロ ッ ク グループおよび CDC 制約の定義」で説明されています。

• デザイ ンのス タ テ ィ ッ ク パス を無視する場合。 レジス タの中には、 アプ リ ケーシ ョ ンの初期化段階で値を取 り込んだ後、 二度 と ト グルし ないものがあ り ます。 これらがデザイ ンの ク リ テ ィ カル パスにあ る よ う な場合は、それらのタ イ ミ ングを無視する と、 イ ンプ リ メ ンテーシ ョ ンで制約が緩和されて、 タ イ ミ ング ク ロージ ャが達成しやす く な り ます。 明示的にパスの終点を指定し な く て も、 ス タ テ ィ ッ ク レジス タからのフ ォルス パス制約を定義するだけで十分です。 た と えば、 32 ビ ッ ト コ ンフ ィ ギ ュ レーシ ョ ン レジス タの config_reg[31..0] から残 り のデザイ ンへのパスは、 次のフ ォルス パス制約を適用する と無視でき ます。

set_false_path -from [get_cells config_reg[*]]

X-Ref Target - Figure 3-64

図 3-64 : 認識できないパス

I0

I1

O

D QREG0

I0

I1

O

DREG1

Q

S S

MUX0 MUX1

X13457

UltraFast 設計手法ガイ ド 123UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 124: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

合成への影響

フ ォルス パス制約は合成ツールでサポー ト されてお り 、 大遅延 (セ ッ ト ア ッ プ/ リ カバ リ ) パスの 適化にのみ影響し ます。 通常は、 CDC パス を無視する場合を除き、 合成中にフ ォルス パス例外を使用する必要はあ り ません。

イ ンプ リ メ ンテーシ ョ ンへの影響

すべてのイ ンプ リ メ ンテーシ ョ ン段階で、 フ ォルス パス タ イ ミ ング例外が認識されます。

小および 大遅延制約の追加

小および 大遅延例外は、 それぞれホール ド / リ ムーバルおよびセ ッ ト ア ッ プ/ リ カバ リ のチェ ッ ク のデフ ォル ト パス要件のソース ク ロ ッ ク エ ッ ジ タ イ ムおよびデステ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジ タ イ ムを制約からの遅延値に置き換え るために使用されます。

使用状況

小または 大遅延制約を使用する主な理由は、 次の とお り です。

• セ ッ ト ア ッ プ/ リ カバ リ パス要件を厳し く する こ と で、 デザイ ンの 2、 3 のパスの制約を過剰にする

これによ り 、 ロ ジ ッ ク 適化または配置が一部のク リ テ ィ カル パスのセルに集中的に実行される よ う にする こと ができ、 配線でタ イ ミ ングを満たすために柔軟な処理が可能にな り ます。

• マルチサイ クル制約を置き換え る

これは、 ソース ク ロ ッ ク エ ッ ジおよびデステ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジが N ク ロ ッ ク サイ クルご と にア クテ ィ ブになるパスのセ ッ ト ア ッ プ要件を緩和するのには有効ですが、 推奨される方法ではあ り ません。 ただし、これが配線中にタ イ ミ ング ク ロージ ャ を達成しやす く する ためにマルチサイ クル パス を ク ロ ッ ク周期のご く 小さい割合だけ厳し く する こ と ができ る唯一のオプシ ョ ンです。 た と えば、 マルチサイ クル制約が 3 に設定されたパスが配線後に違反が も大きいワース ト パスにな り 、 数百 ps タ イ ミ ングが満た されていない と し ます。

この場合、 元のマルチサイ クル パス制約を、 適化および配置段階で次の制約に置き換え る こ と ができ ます。

set_max_delay -from [get_pins <startpointCell>/C] \-to [get_pins <endpointCell>/D] 14.5

説明 :

14.5 は 3 ク ロ ッ ク周期に相当し (それぞれ 5ns)、 -500ps は必要な外部マージンの量に相当し ます。

• 非同期 CDC パスに 大データパス遅延制約を付ける

この手法は、 「ク ロ ッ ク グループおよび CDC 制約の定義」 で既に説明されています。

set_min_delay 制約を使用し てパスに遅延を挿入する方法はあま り 使用されず、 推奨も されません。 通常は、ホール ド または リ ムーバルに対するデフ ォル ト の 小遅延要件だけで十分で、 ス ラ ッ クが正の値の場合はハードウ ェアが問題な く 機能し ます。

合成への影響

set_max_delay 制約は、 –datapath_only オプシ ョ ン も含め、 合成でサポー ト されます。 set_min_delay 制約は無視されます。

イ ンプ リ メ ンテーシ ョ ンへの影響

set_max_delay 制約は、 セ ッ ト ア ッ プ パス要件に置き換わる もので、 イ ンプ リ メ ンテーシ ョ ン フ ロー全体に影響し ます。 set_min_delay 制約はホール ド パス要件に置き換わる もので、 ホール ド を修正する必要があ る場合にのみ配線動作に影響し ます。

UltraFast 設計手法ガイ ド 124UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 125: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

パス分割の回避

パス分割は、set_max_delay および set_min_delay コマン ド の -from または -to オプシ ョ ンに無効な始点または終点が指定される と発生し ます。 set_max_delay によ り パスでパス分割が発生する と、 デフ ォル ト のホール ド解析は実行されな く な り ます。 ホール ド解析も制約する必要があ る場合は、 同じパスに set_min_delay を設定する必要があ り ます。 セ ッ ト ア ッ プ解析でも、 同じパスに set_min_delay を設定する必要があ り ます。

パス分割は、 次のよ う にタ イ ミ ング解析の基盤を変更し て し ま う ので、 通常は使用し ないで く ださい。

• パス分割によ り 、 分割されたパスのク ロ ッ ク スキ ュー算出が分割される

• パス分割では、 set_max_delay または set_min_delay コマン ド で設定されたパス よ り も多 く のパスが分割される

パス分割は、 制約が適用された と きにツールによ り ロ グ フ ァ イルでレポー ト されます。 有効な始点および終点を使用する と、 パス分割を回避でき ます。

• 始点

ク ロ ッ ク、 ク ロ ッ ク ピン、 シーケンシ ャル セル (セルの有効な始点ピン)、 入力または入出力ポー ト

• 終点

ク ロ ッ ク、 シーケンシャル セルの入力データ ピン、 シーケンシャル セル (セルの有効な終点ピン)、 出力または入出力ポー ト

パス分割の詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] のこのセ ク シ ョ ンを参照し て く ださい。

マルチサイ クル パス制約の追加

マルチサイ クル パス例外は、 デザイ ンの機能を反映する必要があ り 、 ア ク テ ィ ブ ク ロ ッ ク エ ッ ジがク ロ ッ ク サイクルご と でないパスに対し て、 ソース ク ロ ッ ク、 デステ ィ ネーシ ョ ン ク ロ ッ ク、 または両方のク ロ ッ ク に適用する必要があ り ます。 パスの乗数は、 -start オプシ ョ ンを使用する場合はソース ク ロ ッ ク、 -end オプシ ョ ンを使用する場合はデステ ィ ネーシ ョ ン ク ロ ッ ク に基づいて ク ロ ッ ク サイ クル数で指定し ます。 これは、 ク ロ ッ ク周期値 と は関係な く 、 始点および終点間のセ ッ ト ア ッ プおよびホール ド関係を修正する場合に特に便利です。

ホール ド は、 常にセ ッ ト ア ッ プ と関連し ています。 そのため、 ほ と んどの場合、 セ ッ ト ア ッ プ関係を変更し た後にホール ド関係も別に調整する必要があ り ます。 2 つ目の制約に -hold オプシ ョ ンが必要なのはこのためです。 この規則に対する主な例外は、 位相シフ ト ク ロ ッ ク間の同期 CDC パスで、 この場合はセ ッ ト ア ッ プのみを変更する必要があ り ます。

ホールド を変更し ないままセ ッ ト ア ッ プ要件を緩和

これは、 N サイ クルご と にク ロ ッ ク をア ク テ ィ ブにする ク ロ ッ ク イネーブル信号でソースおよびデステ ィ ネーシ ョン シーケンシ ャル セルが制御される場合に発生し ます。 次の例では、 ク ロ ッ ク イネーブルは 3 サイ クルご と にア クテ ィ ブにな り 、 始点 と終点のク ロ ッ クは同じです。

X-Ref Target - Figure 3-65

図 3-65 : 同じ ク ロ ッ ク信号でフ リ ッ プ フ ロ ッ プを イネーブル

D QREGA

EN

D QREGB

EN

X13458

UltraFast 設計手法ガイ ド 125UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 126: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

制約 :

set_multicycle_path -from [get_pins REGA/C] -to [get_pins REGB/D] -setup 3

set_multicycle_path -from [get_pins REGA/C] -to [get_pins REGB/D] -hold 2

注記 : 1 つ目のコマン ド では、 セ ッ ト ア ッ プ デステ ィ ネーシ ョ ン エ ッ ジが 3 つ目のエ ッ ジに (デフ ォル ト の位置から 2 サイ クル分) 移動されるのに合わせて、 ホール ド エ ッ ジ も 2 サイ クル分移動されます。 2 つ目のコマン ド では、 2 サイ クル分逆方向に移動し て、 ホール ド エ ッ ジが元の位置に戻されます。

同期ク ロ ッ ク間の位相シフ ト およびマルチサイ クル パスなど、 マルチサイ クル パスのその他の状況に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] のこのセ ク シ ョ ンを参照し て く ださい。

合成およびイ ンプ リ メ ンテーシ ョ ンへの影響

set_multicycle_path 制約は合成でサポー ト されてお り 、 各ク ロ ッ ク サイ クルでア ク テ ィ ブにな ら ない長いパスの制約を緩和する こ と で、 セ ッ ト ア ッ プのみのタ イ ミ ング QoR (結果の品質) をかな り 改善でき ます。

合成に関し ては、 マルチサイ クル パス例外を使用する と、 イ ンプ リ メ ンテーシ ョ ンのタ イ ミ ング ド リ ブン アルゴ リズムが実際のク リ テ ィ カル パスに集中でき ます。 ホール ド要件は配線でのみ重要です。 セ ッ ト ア ッ プ関係は set_multicycle_path 制約で調整でき ますが、 ホール ド 関係には対応し ておらず、 ワース ト ホール ド要件は 2、3ns 超え る と満た しに く く なる こ と があ り ます。 こ の状況では、 ホール ド違反は修正でき ますが、 配線によ り 遅延が追加されるので、 セ ッ ト ア ッ プ ス ラ ッ ク に悪影響があ り ます。

X-Ref Target - Figure 3-66

図 3-66 : セ ッ ト ア ッ プ/ホールド チ ェ ッ クのタ イ ミ ング図

Hold (default)

launch edge

Source clock (REGA)

Destination clock (REGB)

Clock Enable

capture edge

active edgesSetup (default)

BEFORE

Hold (default)

X13459

X-Ref Target - Figure 3-67

図 3-67 : マルチサイ クルの指定によ り変更されたセ ッ ト ア ッ プ/ホールド チ ェ ッ ク

launch edge

Source clock (REGA)

Destination clock (REGB)

Clock Enable

capture edge

HoldSetup

AFTER

Hold

X13460

UltraFast 設計手法ガイ ド 126UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 127: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

典型的な ミ ス

次に、 必ず回避する必要のあ る典型的な ミ ス を 2 つ示し ます。

• マルチサイ クルが各ク ロ ッ ク サイ クルでア ク テ ィ ブにな ら ない場合に、 ホール ド を同じ ソース ク ロ ッ ク エ ッ ジおよびデステ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジに戻さずにセ ッ ト ア ッ プを緩和する。 ホール ド要件が大き く な り すぎ (ほ と んどの場合少な く と も 1 ク ロ ッ ク周期)、 満たすこ と ができ な く な り ます。

• デザイ ン内の間違ったポイ ン ト 間にマルチサイ クル パス例外を設定する。

これは、 始点セルから終点セルまでにパスが 1 つしかない と想定し た場合に発生し ます。 そ う ではない場合もあ り ます。 終点セルには、 ク ロ ッ ク イネーブルおよび リ セ ッ ト ピンを含め、 複数のデータ入力ピンがあ り 、 少な く と 2 つの連続し た ク ロ ッ ク エ ッ ジでア ク テ ィ ブにな り ます。

このため、 セル (またはク ロ ッ ク ) だけでな く 、 終点ピンを指定する こ と をお勧めし ます。 た と えば、 終点セル REGB には C、 EN、 D の 3 つの入力ピンがあ り ますが、 マルチサイ クル パス例外の制約を設定する必要があ るのは REGB/D ピンだけです。 EN ピンには、 各ク ロ ッ ク サイ クルで変更される可能性があ るので、 制約は設定し ません。 制約がピンではな く セルに適用される場合は、 EN (ク ロ ッ ク イネーブル) ピンを含むすべての有効な終点ピンがその制約に対し て考慮されます。

確実にするには、 常に次の構文を使用する こ と をお勧めし ます。

set_multicycle_path -from [get_pins REGA/C] \-to [get_pins REGB/D] -setup 3set_multicycle_path -from [get_pins REGA/C] \-to [get_pins REGB/D] -hold 2

その他のア ドバンス タ イ ミ ング制約

次のよ う なその他のタ イ ミ ング制約を設定する と、 デフ ォル ト のタ イ ミ ング解析を無視および変更でき ます。

• 「ケース解析」

• 「タ イ ミ ングのデ ィ スエーブル」

• 「データ チェ ッ ク」

• 「 大タ イ ム ボローイ ング」

ケース解析

ケース解析コマン ド は、 デザイ ンの機能モード を記述するのによ く 使用され、 コ ンフ ィ ギュ レーシ ョ ン レジス タのよ う にロ ジ ッ ク に定数を設定する こ と によ り 指定し ます。 この制約は、 入力ポー ト 、 ネ ッ ト 、 階層ピン、 またはリ ーフ セル入力ピンに適用でき ます。 定数値がロ ジ ッ ク を介し て伝搬される と、 ア ク テ ィ ブにな る こ と がないパスの解析がオフにな り ます。 フ ォルス パス例外と同様の効果があ り ます。

も よ く 使用されるのは、 マルチプレ ク サーのセレ ク ト ピンを 0 か 1 に設定し て、 2 つのマルチプレ ク サー入力の うちの 1 つだけが伝搬される よ う にする場合です。 次の例では、 mux/S および mux/I1 を介するパスの解析がオフにな り ます。

set_case_analysis 0 [get_pins mux/S]

UltraFast 設計手法ガイ ド 127UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 128: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 3 章 : デザイ ンの作成

タ イ ミ ングのデ ィ スエーブル

デ ィ スエーブル タ イ ミ ング コマン ド では、 タ イ ミ ング データベースのタ イ ミ ング アーク がオフにな り 、 そのアーク を介し た解析が完全に回避されます。 デ ィ スエーブルにされた タ イ ミ ング アークは、report_disable_timing コマン ド でレポー ト でき ます。

注意 : デ ィ スエーブル タ イ ミ ング コマン ド は注意し て使用し ない と、 パスが意図し た以上に分割されて し ま う 可能性があ り ます。

データ チ ェ ッ ク

set_data_check コマン ド では、 2 つのピン間のセ ッ ト ア ッ プまたはホール ド タ イ ミ ング チェ ッ ク と同等のチェ ック が設定され、 非同期イ ン ターフ ェ イ ス を制約し てレポー ト する ためによ く 使用されます。 このコマン ド は、 ア ドバン ス ユーザー用です。

大タ イム ボローイ ング

set_max_time_borrow コマン ド では、 ラ ッチが次の段 (ラ ッチ後のロ ジ ッ ク ) から借用可能な 大時間が設定され、 前の段 (ラ ッチ前のロ ジ ッ ク ) に渡されます。 ラ ッチはハード ウ ェアではテス ト および検証が困難なので、 通常推奨されません。 このコマン ド は、 ア ド バン ス ユーザー用です。

物理制約の定義

物理制約は、 フ ロ アプラ ン、 特定配置、 I/O 割 り 当て、 配線、 および同様のフ ァ ン ク シ ョ ンを制御する ために使用されます。 各ピンに対し て I/O ロ ケーシ ョ ン と規格が指定される必要があ り ます。 物理制約の詳細は、 次のユーザー ガイ ド を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] (マ ク ロの相対的な配置も含めた配置配線のロ ッ ク )

• 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906) [参照 21] (フ ロ アプラ ン)

• 『Vivado Design Suite ユーザー ガイ ド : プロ グ ラ ムおよびデバッ グ』 (UG908) [参照 24] (コ ンフ ィ ギュ レーシ ョ ン)

UltraFast 設計手法ガイ ド 128UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 129: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章

イ ンプ リ メ ンテーシ ョ ン

イ ンプ リ メ ンテーシ ョ ンの概要

デバイ ス を選択し、 IP を選択およびコ ンフ ィ ギ ュ レーシ ョ ン し て、 RTL および制約を記述し た ら、 イ ンプ リ メ ンテーシ ョ ンを実行し ます。 イ ンプ リ メ ンテーシ ョ ンでは、 合成 と配置配線を介し てデザイ ンがコ ンパイルされ、 デバイ スのプロ グ ラ ムに使用する ビ ッ ト ス ト リ ームが生成されます。 イ ンプ リ メ ンテーシ ョ ン プロセスでは、 第 1 章「概要」 で説明し た よ う に、 反復作業が必要な場合があ り ます。 この章では、 イ ンプ リ メ ンテーシ ョ ンの各段階を説明し、 特別な注意が必要な点を指摘し、 問題を特定し て回避する ための ヒ ン ト および手法を示し ます。

合成

合成では、 RTL およびタ イ ミ ング制約を入力し、 RTL と機能的に同等な 適化されたネ ッ ト リ ス ト を生成し ます。通常、 合成ツールでは、 任意の有効な RTL を使用し て、 そのロ ジ ッ ク を作成でき ます。 合成では、 第 3 章の 「制約の操作」 および第 5 章の 「ベース ラ イ ン制約の作成」 で説明する よ う に、 現実的な タ イ ミ ング制約が必要です。

合成の詳細は、 次を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16]

• Vivado Design Suite QuickTake ビデオ : Vivado デザイ ン フ ローの概要

合成属性

合成属性を使用する と、 ロ ジ ッ ク の推論を制御でき ます。 合成アルゴ リ ズムはほ と んどのデザイ ンで 適な結果が得られる よ う に設定されていますが、 要件の異なるデザイ ン も あ り ます。 この場合、 属性を使用し てデザイ ンを変更する と、 QoR (結果の品質) を改善でき ます。 合成でサポー ト される属性については、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16] を参照し て く ださい。

注記 : デザイ ンのターゲ ッ ト を新しいデバイ スに変更する前に、 古いデバイ ス を ターゲ ッ ト にし た前のデザイ ン run からの合成属性を確認する こ と をお勧めし ます。

KEEP、 DONT_TOUCH および MAX_FANOUT 属性を使用する場合、 次のセ ク シ ョ ンで説明する特定の考慮事項に注意し て く ださい。 .

UltraFast 設計手法ガイ ド 129UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 130: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

KEEP および DONT_TOUCH KEEP および DONT_TOUCH は、 デザイ ンをデバッ グする際に有益な属性です。 これらの属性が配置されたオブジェ ク ト は、 適化で削除される こ と はあ り ません。

• KEEP 属性は合成ツールで使用され、 ネ ッ ト リ ス ト でプロパテ ィ と し ては渡されません。 KEEP 属性は特定の信号を保持するためのもので、 た と えば、 合成中に特定の信号に対する特定の 適化をオフにし ます。

• DONT_TOUCH 属性は、 合成ツールで使用された後、 配置配線ツールにも渡されるので、 オブジェ ク ト は 適化されません。

これらの属性の設定には注意が必要です。

• RAM の出力を受信する レジス タに KEEP 属性を設定する と、 レジス タが RAM に統合されな く な り 、 ブロ ッ ク RAM が推論されな く な り ます。

• 上の階層の ト ラ イ ステー ト 出力または双方向信号を駆動する階層に、 これらの属性を設定し ないで く ださい。駆動信号 と ト ラ イ ステー ト 状態がこの階層レベルにあ る場合、 IOBUF を作成するには階層を変更する必要があるため、 IOBUF が推論されません。

また、 DONT_TOUCH 属性を信号に設定するか階層レベルに設定するかで違いがあ り ます。

• この属性が信号に設定されている場合、 その信号が保持されます。

• この属性が階層レベルに設定されている場合、 階層の境界は 適化されず、 階層を介する定数の伝搬は実行されませんが、 その階層レベル内での 適化は実行されます。

MAX_FANOUT

MAX_FANOUT 属性は、 フ ァ ンアウ ト の制限を満たすため、 強制的にロ ジ ッ ク を複製し ます。 ツールでロ ジ ッ クは複製でき ますが、 入力またはブラ ッ ク ボ ッ ク スは複製でき ません。 デザイ ンへの直接入力で駆動される信号に MAX_FANOUT 属性が設定されている と、 ツールでこの制約を処理でき ません。

MAX_FANOUT 属性が設定されている信号を注意し て解析し て く ださい。 DONT_TOUCH 属性が設定されている レジス タで駆動される信号、 または DONT_TOUCH 属性が設定されている異なる階層にあ る信号を駆動する信号に MAX_FANOUT 属性を設定し て も、 MAX_FANOUT 属性は適用されません。

合成では、 初に複製されるセルには _rep が、 その後複製されるセルには _rep__0、 _rep__1 と い う 接尾辞が付いていき ます。 これらのセルは、 [Edit] → [Find] を ク リ ッ クする と、 合成後のネ ッ ト リ ス ト に表示されます。

重要 : 合成では、 MAX_FANOUT 属性はあま り 使用し ないで く ださい。 Vivado® ツールの phys_opt_design コマン ド でデザイ ンの配置がよ り 的確に把握されるので、 合成よ り も ロ ジ ッ クの複製を効果的に実行でき ます。 特定のフ ァ ンア ウ ト が必要な場合は、 通常コード に手動でレジス タ を追加する方が適切な結果が得られます。

UltraFast 設計手法ガイ ド 130UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 131: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

ボ ト ムア ッ プ フ ロー

ボ ト ムア ッ プ フ ローでは、 コ ンパイル済みの下位階層を Vivado ツールにイ ンポー ト でき ます。 また、 run を一度に複数のブロ ッ ク に対し て並列に実行でき るので、 実行時間が短縮されます。 コ ンパイルし た後、 これらのブロ ッ クを再び合成する必要があ るのは、 RTL 制約やツール オプシ ョ ンの変更があった場合にのみにな り ます。 ボ ト ムア ップ フ ローのも う 1 つの利点と し ては、 デザイ ンの別のブロ ッ ク にさ まざまな合成ス ト ラ テジを適用でき る点が挙げられます。

注記 : 合成で境界を越えた 適化が許容されない場合、 QoR に影響する可能性があ り ます。

下位ネ ッ ト リ ス ト の作成

ボ ト ムア ッ プ フ ローを使用するには、 まず下位ネ ッ ト リ ス ト を作成し ます。 これには、 下位レベルの階層がア ウ ト オブ コ ンテキス ト で合成される よ う にプロ ジェ ク ト を設定する必要があ り ます。 制約フ ァ イルは、 下位レベルのモジュールでも追加でき ます。 通常上位モジュールから下位に伝搬される制約は、 合成を実行する前に、 合成に渡される新しいフ ァ イルへ書き込んでお く 必要があ り ます。 これには、 通常ク ロ ッ ク定義および内部ク ロ ッ クのタ イ ミング例外が含まれます。 上位制約の場合、 上位レベルにク ロ ッ ク調整ブロ ッ クがあ る と、 ク ロ ッ ク定義が異なるこ と があ り ます。

1. プロ ジェ ク ト を開いて、 [Sources] ウ ィ ン ド ウで下位レベル モジュールを選択し ます。

2. [Sources] ウ ィ ン ド ウで右ク リ ッ ク し、 [Set as Out-of-context for Synthesis] を ク リ ッ ク し ます。

これによ り 、 合成でこの下位レベル モジュールが別にコ ンパイルされる よ う にな り 、 こ のモジ ュール ポー ト の I/O バッ フ ァーが推論されな く な り ます。

注意 : デザイ ンに双方向信号または出力 ト ラ イ ステー ト があ るかど う かを確認し て く ださい。 ザイ リ ン ク ス ラ イブラ リ のコ ンポーネン ト で ト ラ イ ステー ト を処理でき るのは IOBUF または OBUFT のみなので、 I/O 挿入をオフにすると エラーが発生し ます。

下位ネ ッ ト リ ス ト で双方向信号または出力 ト ラ イ ステー ト が必要な場合は、 RTL に IOBUF または OBUFT コ ンポーネン ト を イ ン ス タ ンシエー ト し て く ださい。 out_of_context モード をオンにし た場合でも、 イ ン ス タ ンシエー トされた I/O バッ フ ァーは削除されません。

デザイ ンの統合

こ こ までで下位レベルのネ ッ ト リ ス ト が作成されま し た。 これらは、 上位で合成が実行された後、 イ ンプ リ メ ンテーシ ョ ン中にフ ローに追加されます。

UltraFast 設計手法ガイ ド 131UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 132: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

合成後の処理

合成で生成されるネ ッ ト リ ス ト が質の良いもので、 後続のフ ローで問題を引き起こ さ ないこ と を確認し て く ださい。次のセ ク シ ョ ンでは、 残 り のイ ンプ リ メ ンテーシ ョ ン フ ローに進む前に確認する必要のあ る重要項目を示し ます。

DRC の確認および修正

report_drc コマン ド を使用する と、 一般的なデザイ ンの問題およびエラーを確認するデザイ ン ルール チェ ッ ク (DRC) が実行されます。 複数のルール デッ クがあ り ます。 デフ ォル ト のルール デッ クでは、 次がチェ ッ ク されます。

• 合成後のネ ッ ト リ ス ト

• I/O、 BUFG、 およびその他の配置特定の要件

• MGT、 IODELAY、 MMCM、 PLL などのプ リ ミ テ ィ ブの属性および配線

推奨 : イ ンプ リ メ ンテーシ ョ ン フ ローの後の方でのタ イ ミ ングまたはロ ジ ッ ク関連の問題を回避するため、 DRC 違反をデザイ ン プロセスのでき るだけ早い段階で確認し て修正し て く ださい。

[Report Methodology] の実行

UltraFast 設計手法は重要なので、 Vivado ツールには設計手法に従っているかど う かをチェ ッ クする ための手法レポー ト 機能が提供されています。 デザイ ン プロセスの段階によ って、 異なるチェ ッ ク が実行されます。

• RTL デザイ ン : RTL リ ン ト ス タ イル チェ ッ ク

• 合成済みおよびイ ンプ リ メ ンテーシ ョ ン済みデザイ ン : ネ ッ ト リ ス ト 、 制約およびタ イ ミ ング チェ ッ ク

これらのチェ ッ ク を Tcl プロ ンプ ト で実行するには、 検証するデザイ ンを開き、 次の Tcl コマン ド を入力し ます。

report_methodology

これらのチェ ッ ク を Vivado IDE から実行するには、 検証するデザイ ンを開き、 [Tools] → [Report] → [Report Methodology] を ク リ ッ ク し ます。 違反が検出された場合は、 次の図に示す [Methodology] ウ ィ ン ド ウに表示されます。 デザイ ンで特定の手法違反を ク リ ーンア ッ プする必要がない場合は、 違反 と その影響を理解し、 なぜその違反がデザイ ンに悪影響を与えないかを把握し てお く 必要があ り ます。

注記 : ザイ リ ン ク スが提供する IP コ アでは、 違反は既に確認されています。

X-Ref Target - Figure 4-1

図 4-1 : [Methodology] ウ ィ ン ド ウ

UltraFast 設計手法ガイ ド 132UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 133: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

推奨 : よ く あ るデザイ ン問題を見つけるには、 デザイ ンを 初に合成し た と きに [Report Methodology] を実行し ます。このレポー ト は、 制約、 ク ロ ッ キング ト ポロ ジ、 または大き な ロ ジ ッ ク を変更し た後にも実行し直し ます。

[Report Methodology] の実行の詳細は、 『Vivado Design Suite ユーザー ガイ ド : システム レベル のデザイ ン入力』 (UG895) [参照 8] および 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906) [参照 21] を参照し て く ださ い。

合成ログの確認 合成ロ グ フ ァ イルを参照し、 ツールで生成された メ ッ セージがデザイ ンで意図し た もの と一致し ているかど う かを確認する必要があ り ます。 ク リ テ ィ カル警告および警告を特に注意し て確認し て く ださい。 ほ と んどの場合、 信頼性の高い合成結果を得るため、 ク リ テ ィ カル警告を解決する必要があ り ます。

注意 : あ る メ ッ セージが 100 回以上表示される場合、 合成ロ グ フ ァ イルには 初の 100 回のみが記述されます。 この制限は、 Tcl コマン ド set_param messaging.defaultLimit を使用し て変更でき ます。

タ イ ミ ング制約の確認

有効なタ イ ミ ング制約およびタ イ ミ ング例外を設定する必要があ り ます。 不適切な制約を使用する と、 実行時間が長 く な り 、 パフ ォーマン スの問題やハード ウ ェ アでのエラーの原因 と な り ます。

推奨 : タ イ ミ ング制約に関する ク リ テ ィ カル警告および警告をすべて確認し て く ださい。 これらの警告は、 制約が読み込まれていないこ とや適切に適用されなかった こ と を示し ます。

詳細は、 第 3 章の 「デザイ ン制約の分類」 を参照し て く ださい。

合成後にタ イ ミ ングを満たす

次のセ ク シ ョ ンに、 合成後にタ イ ミ ングを満たす方法を示し ます。

ガイ ド ラ イ ンに従って残りの違反を解決

重要 : 合成後のタ イ ミ ングを解析し て、 フ ローを続行する前に解決する必要のあ るデザイ ンの問題を特定し て く ださ い。

HDL の変更は、 QoR に大き く 影響する傾向があ るので、 タ イ ミ ングを短期間で満たすこ と ができ る よ う にするため、 イ ンプ リ メ ンテーシ ョ ンの前に問題を解決し てお く のが適切です。 タ イ ミ ング パス を解析する際は、 次の事項に特に注意し て く ださい。

• タ イ ミ ングが満た されていない 悪のパスに 多数表示されるセルまたはネ ッ ト

• レジス タが付け られていないブロ ッ ク RAM を ソース とするパス

• SRL を ソース とするパス

• レジス タが付け られていないカ スケード接続された DSP ブロ ッ ク

• ロ ジ ッ ク レベル数の多いパス

• フ ァ ンア ウ ト の大きいパス

詳細は、 第 5 章の 「タ イ ミ ング ク ロージ ャ」 を参照し て く ださい。

UltraFast 設計手法ガイ ド 133UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 134: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

ロジ ッ ク レベル数が多い場合の処理

長いロジ ッ ク パス を特定する と、 困難な QoR の問題を調べるのに役立ちます。 合成後のネ ッ ト 遅延見積も り は、適な配置に近いものです。 ロジ ッ ク レベル遅延の大きいパスがタ イ ミ ングを満たしているかを評価するには、 ネ ッ ト遅延なしでタ イ ミ ング レポー ト を生成し ます。 ネ ッ ト 遅延なしでタ イ ミ ング違反が発生しているパスでは、 タ イ ミ ング ク ロージャ を達成する こ とはでき ません。 詳細は、 第 5 章の 「タ イ ミ ング ク ロージャ」 を参照して く ださい。

使用率の確認

LUT、 フ リ ッ プフ ロ ッ プ、 ブロ ッ ク RAM、 および DSP コ ンポーネン ト の使用率をそれぞれ確認する こ と が重要です。 LUT/フ リ ッ プフ ロ ッ プの使用率が低いデザイ ンでも、 ブロ ッ ク RAM の使用率が高い と、 配置が困難になる こと があ り ます。 report_utilization コマン ド を使用する と、 すべてのデザイ ン オブジェ ク ト に対し てそれぞれ個別のセ ク シ ョ ンを含む包括的な使用率レポー ト が生成されます。

注記 : 合成後は、 デザイ ン フ ロー後半の 適化によ り 使用率の数値が異なる こ と も あ り ます。

ク ロ ッ ク ツ リーの確認

このセ ク シ ョ ンでは、 ク ロ ッ ク バッ フ ァーの使用率およびク ロ ッ ク ツ リ ー ト ポロ ジなど、 ク ロ ッ ク ツ リ ーの確認方法について説明し ます。

ク ロ ッ ク バッ フ ァーの使用率

report_clock_utilization コマン ド を使用する と、 ク ロ ッ ク プ リ ミ テ ィ ブの使用率の詳細が表示されます。アーキテ クチャのク ロ ッ キング規則を確認し、 配置の問題が発生し ないよ う にし ます。 た と えば、 7 シ リ ーズの場合、 BUFH は同じ ク ロ ッ ク領域のロード にのみフ ァ ンアウ ト でき ます。 配置制約が無効な場合や、 リ ージ ョ ナル クロ ッ ク バッ フ ァーのフ ァ ンア ウ ト が大きすぎる場合、 配置で問題が発生する可能性があ り ます。 ク ロ ッ ク バッフ ァーの使用率が非常に高いデザイ ンでは、 ク ロ ッ ク ジェネレーターおよび一部の リ ージ ョ ナル ク ロ ッ ク バッフ ァーの配置を固定する こ と が必要な場合があ り ます。

ソース同期イ ン ターフ ェ イ スなど、 厳しいタ イ ミ ング関係が必要な イ ン ターフ ェ イ スでは、 厳しいタ イ ミ ング関係が必要な信号の特定の リ ソース を固定し た方がよい場合も あ り ます。 通常は、 上記のよ う な特別な理由がない場合は、 初めの う ちは I/O のみを固定し ます。

推奨される配置制約の詳細は、 第 5 章の 「タ イ ミ ング ク ロージ ャ」 を参照し て く ださ い。

ク ロ ッ ク ツ リーの ト ポロジ

ク ロ ッ ク ツ リ ーを使用する際は、 次の推奨事項に従って く ださい。

• report_clock_networks コマン ド を実行する と、 ク ロ ッ ク ネ ッ ト ワーク が詳細なツ リ ー ビ ューで表示されます。

• ク ロ ッ ク ツ リ ーを スキ ューを 小限に抑える よ う に使用し ます。

• PLL および MMCM の出力には、 スキ ューを 小限に抑え るため同じ ク ロ ッ ク バッ フ ァー タ イプを使用し ます。

• 意図し ないカ スケード接続された BUFG エレ メ ン ト がないかど う かを確認し ます。 カス ケード接続された BUFG エレ メ ン ト は、 遅延やスキ ューの原因 と な り ます。

UltraFast 設計手法ガイ ド 134UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 135: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

デザイ ンのイ ンプ リ メ ンテーシ ョ ン

Vivado イ ンプ リ メ ンテーシ ョ ンは、 デザイ ンの論理制約、 物理制約、 タ イ ミ ング制約を満た し ながら ネ ッ ト リ ス トを FPGA デバイ ス リ ソースに配置配線する ためのすべての段階を含みます。 イ ンプ リ メ ンテーシ ョ ンの詳細は、 次の資料を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19]

• Vivado Design Suite QuickTake ビデオ : Vivado デザイ ン フ ローの概要

プロジ ェ ク ト モー ド または非プロジ ェ ク ト モー ドの使用

イ ンプ リ メ ンテーシ ョ ンは、 プロ ジェ ク ト モードおよび非プロ ジェ ク ト モード両方で実行でき ます。 プロ ジェ ク ト モード では、 run の管理、 フ ァ イル セ ッ ト の管理、 レポー ト の生成、 ク ロ スプローブなどのプロ ジェ ク ト 構造を使用でき ます。 非プロ ジェ ク ト モード は統合が簡単で、 Tcl ス ク リ プ ト を使用し て実行するので、 必要なレポー ト を明示的に作成する必要があ り ます。 これらのモード の詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892) [参照 5] のこ のセ ク シ ョ ンを参照し て く ださい。

ス ト ラ テジ

ス ト ラ テジ と は、 プロ ジェ ク ト モード で run の動作を制御する Vivado イ ンプ リ メ ンテーシ ョ ン オプシ ョ ンの定義済みセ ッ ト です。 ス ト ラ テジの動作は、 個々のイ ンプ リ メ ンテーシ ョ ン コマン ド に適用される -directive オプシ ョンで制御されます。

推奨 : まずデフ ォル ト ス ト ラ テジであ る Vivado Implementation Defaults を試し てみて く ださい。 実行時間とデザイ ン パフ ォーマン スのバラ ン ス を取る こ と ができ ます。

注記 : ス ト ラ テジは、 ツールおよびバージ ョ ンで異な り ます。

-directive オプシ ョ ン

-directive オプシ ョ ンを使用する と、 次のイ ンプ リ メ ンテーシ ョ ン コマン ド を異なるモード で実行でき ます。

• opt_design

• place_design

• phys_opt_design

• route_design

初は、 デフ ォル ト 設定を使用し て く ださい。 デザイ ンが完了に近づいてき た ら、 ほかのモード を使用し て ソリ ューシ ョ ンの可能性を探 り ます。 指定でき るのは、 一度に 1 つの指示子のみです。

ス ト ラ テジおよび指示子の詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] を参照し て く ださい。

UltraFast 設計手法ガイ ド 135UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 136: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

反復フ ロー

非プロ ジェ ク ト モード では、 さ まざまな 適化コマン ド を異なるオプシ ョ ンを使用し て反復でき ます。 た と えば、phys_opt_design -directive AggressiveFanoutOpt の後 phys_opt_design –directive AlternateFlowWithRetimingroute_design を実行する と、 タ イ ミ ングが満た されていない配置済みデザイ ンに対し て異なる物理合成 適化を実行でき ます。

phys_opt_design コマン ド を繰 り 返し て実行する と、 タ イ ミ ングを向上でき る可能性があ り ます。phys_opt_design コマン ド では、 も問題のあ るパスが 適化されます。 phys_opt_design コマン ド を反復実行する と、 低いレベルのタ イ ミ ング問題も 適化で向上する可能性があ り ます。 配線後に phys_opt_design を実行する と、 未接続だったネ ッ ト が配線し直されます。 このため、 配線後に phys_opt_design を実行し た ら、route_design を明示的に実行する必要はあ り ません。

チ ェ ッ クポイ ン ト を使用し た さ まざまな段階でのデザイ ン解析

Vivado Design Suite では、 物理デザイ ン データベース を使用し て配置配線情報を格納し ます。 デザイ ン チェ ッ ク ポイン ト フ ァ イル (.dcp) を使用する と、 デザイ ン フ ローの主要な段階でこの物理データベース を保存 (write_checkpoint コマン ド ) および復元 (read_checkpoint コマン ド ) でき ます。 チェ ッ ク ポイ ン ト は、 フローの特定の時点におけるデザイ ンのスナッ プシ ョ ッ ト です。 プロ ジェ ク ト モード では、 Vivado ツールでデザイ ン チェ ッ ク ポイ ン ト フ ァ イルが自動的に生成され、 イ ンプ リ メ ンテーシ ョ ン run デ ィ レ ク ト リ に格納されます。 これらは、 Vivado の別のイ ン ス タ ン スで開 く こ と ができ ます。

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

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

• デザイ ン制約

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

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

チェ ッ ク ポイ ン ト で使用する コマン ド の例は、 次の とお り です。

• フ ローのあ る部分に戻 り 、 さ らに解析するため、 結果を保存し ます。

• -directive オプシ ョ ンの異なる設定を使用し て place_design コマン ド を実行し、 それぞれのチェ ッ ク ポイ ン ト を保存し ます。 このよ う にする と、 このよ う にする と、 次回のイ ンプ リ メ ンテーシ ョ ン段階でタ イ ミ ング結果が 高の配置済みチェ ッ ク ポイ ン ト を選択でき ます。

チェ ッ ク ポイ ン ト の詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] を参照し て く ださい。

イ ン ク リ メ ン タル フ ロー

Vivado Design Suite イ ン ク リ メ ン タル配置配線は、 現在のデザイ ン と イ ンプ リ メ ン ト 済みの以前のバージ ョ ンが類似し ている場合に、 デザイ ンの既存の配置配線データ を再利用する こ と によ り 、 イ ンプ リ メ ンテーシ ョ ンの実行時間を短縮し てよ り 予測可能な結果を生成し ます。

デザイ ン間でセル、 ネ ッ ト 、 ポー ト が 95% 以上一致し ていれば、 イ ン ク リ メ ン タル配置配線によ り 実行時間が平均で通常の配置配線の 1/2 にな り ます。 基準デザイ ン と現在のデザイ ンの間の一致パーセン ト が低 く なる と、 実行時間の短縮度も低 く な り ます。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこのセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 136UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 137: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

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

合成はネ ッ ト リ ス ト 名ができ るだけ変更されないよ う に実行されますが、 少しの RTL の変更によ ってデザイ ンが変わって し ま う 場合があ り ます。 詳細は、 第 5 章の 「イ ン ク リ メ ン タル コ ンパイル」 を参照し て く ださ い。

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

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

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

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

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

詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこのセ ク シ ョ ンを参照し て く ださい。

合成済みデザイ ンを開 く

合成後は、 まず 初に合成済みデザイ ンからのネ ッ ト リ ス ト を メ モ リ に読み込み、 デザイ ン制約を適用し ます。 合成済みのデザイ ンは、 使用されるデザイ ン フ ローによ って さ まざまな方法で開 く こ と ができ ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこ のセ ク シ ョ ンを参照し て く ださい。

ロジ ッ ク 適化 (opt_design)Vivado ロ ジ ッ ク 適化では、 現在 メ モ リ に読み込まれているネ ッ ト リ ス ト を 適化し ます。 これが統合されたデザイ ン (RTL および IP ブロ ッ ク ) の 初の表示なので、 デザイ ンは通常さ らに 適化でき ます。 opt_design コマン ドでは、 デフ ォル ト でロ ジ ッ ク の自動削除、 ロード のないセルの削除、 定数入力の伝搬、 およびブロ ッ ク RAM の消費電力 適化が実行されます。 また、 複数の LUT を少ない数の LUT に統合し てパスのロ ジ ッ ク段数を削減する再マ ップなど、 ほかの 適化も実行でき ます。

適化の解析

opt_design コマン ド を実行する と、 各 適化フ ェーズの結果を詳細に示す メ ッ セージが生成されます。 適化を実行し た ら、 report_utilization コマン ド を実行し て使用率が向上し たかを調べる こ と ができ ます。 適化結果を解析するには、 -verbose オプシ ョ ンを使用し、 opt_design コマン ド の 適化の影響を受けた ロ ジ ッ ク の詳細を確認し ます。

ロ ジ ッ ク 適化に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこのセ ク シ ョ ンを参照し て く ださい。

イ ンプ リ メ ンテーシ ョ ンでの消費電力 適化

消費電力の 適化については、 第 5 章の 「消費電力の 適化」 を参照し て く ださい。

配置 (place_design)Vivado 配置エンジンによ り ネ ッ ト リ ス ト のセルがターゲ ッ ト デバイ スの特定サイ ト に配置されます。

配置解析

配置後にタ イ ミ ング サマ リ レポー ト を使用し、 ク リ テ ィ カル パス をチェ ッ ク し ます。

UltraFast 設計手法ガイ ド 137UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 138: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 4 章 : イ ンプ リ メ ンテーシ ョ ン

• ネガテ ィ ブ セ ッ ト ア ッ プ タ イ ム ス ラ ッ ク が大きいパスは、 タ イ ミ ング ク ロージャ を達成するため、 制約が適切で完全な ものであ るかをチェ ッ ク し た り 、 ロ ジ ッ ク の再構築が必要な場合があ り ます。

• ネガテ ィ ブ ホール ド タ イ ム ス ラ ッ ク が大きいパスは、 ほ と んどの場合は不正な制約またはク ロ ッ キング ト ポロ ジが原因であ り 、 デザイ ンを配線する前に修正する必要があ り ます。

• ネガテ ィ ブ ホール ド タ イ ム ス ラ ッ ク が小さいパスは、 たいていは配線で修正されます。 place_design 後に report_clock_utilization を実行し て、 ク ロ ッ ク領域ご と のク ロ ッ ク リ ソースおよびロード数を レポート する こ と も でき ます。

詳細は、 第 5 章の 「タ イ ミ ング ク ロージ ャ」 を参照し て く ださい。 配置に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこ のセ ク シ ョ ンを参照し て く ださい。

物理 適化 (phys_opt_design)物理 適化は、 フ ローのオプシ ョ ンの段階で、 デザイ ンの負のス ラ ッ ク パスに対し て タ イ ミ ング ド リ ブンの 適化を実行し ます。 複製、 リ タ イ ミ ング、 ホール ド の修正、 および配置の向上が実行されます。 物理 適化では、 ネ ット リ ス ト および配置の必要な変更が自動的に実行されるので、 phys_opt_design の後に place_design を実行する必要はあ り ません。

物理合成の必要性

デザイ ンに物理合成が有益であ るかを判断するには、 配置後のタ イ ミ ングを評価し ます。 タ イ ミ ングが満た されていないパスでフ ァ ンアウ ト を解析し ます。 フ ァ ンアウ ト の大きいク リ テ ィ カル パスは、 フ ァ ンア ウ ト 適化で向上する可能性があ り ます。 また、 複数のブロ ッ ク RAM を含む大型 RAM ブロ ッ ク のフ ァ ンア ウ ト の大きいデータ、 アド レ ス、 および制御ネ ッ ト で route_design 後にタ イ ミ ングが満た されない場合、 ネ ッ ト の複製を強制する と有益であ る こ と があ り ます。 物理合成の詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこのセ ク シ ョ ンを参照し て く ださい。

配線 (route_design)Vivado 配線は、 配置済みデザイ ンに対し て配置を実行し、 ホール ド タ イ ム違反を解決するため配線済みデザイ ンの

適化を実行し ます。 デフ ォル ト ではタ イ ミ ング ド リ ブンですが、 これはデ ィ スエーブルにでき ます。

配線解析

適に配線されていないネ ッ ト があ る場合、 問題は多 く の場合間違った タ イ ミ ング制約です。 配線設定を変更し てみる前に、 制約が適切であ るかど う かを確認し て く ださい。 配線の前の配置済みデザイ ンのタ イ ミ ング レポー ト を参照し て、 タ イ ミ ング と制約を確認し ます。

不適切なタ イ ミ ング制約の例 と し て、 ホール ド タ イ ミ ングで配線遅延が追加される ク ロ ッ ク乗せ換えパスや不正なマルチサイ クル パスなどがあ り ます。 密集し たエ リ アは、 RTL 合成でのフ ァ ンアウ ト の 適化または物理 適化によ り 解決でき ます。 すべてまたは一部のデザイ ン階層を保持し、 境界を またがる 適化が実行されないよ う にし、ネ ッ ト リ ス ト の集積度を削減でき ます。 または、 フ ロ アプラ ン制約を使用し て密集を緩和でき ます。

詳細は、 第 5 章の 「タ イ ミ ング ク ロージ ャ」 を参照し て く ださい。 配線に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこ のセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 138UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 139: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章

デザイ ン ク ロージャ

デザイ ン ク ロージャの概要

デザイ ン ク ロージ ャは、 タ イ ミ ング要件と消費電力要件の両方を満たすこ と と、 コ ンフ ィ ギュ レーシ ョ ン ビ ッ ト スト リ ームを生成し てハード ウ ェ アで機能を検証する作業を含みます。 デザイ ン ク ロージ ャでは通常、 結果の解析、デザイ ンの変更、 および制約の変更を複数回繰 り 返すこ と が必要です。

タ イ ミ ング ク ロージャ

タ イ ミ ング ク ロージ ャでは、 デザイ ンがすべてのタ イ ミ ング要件を満たすこ と が必要です。 合成で使用する HDL および制約が適切な ものであれば、 タ イ ミ ング ク ロージ ャ を達成しやす く な り ます。 さ らに、 次の図に示すよ う に、改善し た HDL、 制約、 合成オプシ ョ ンを使用し て合成を再実行する こ と が重要です。

UltraFast 設計手法ガイ ド 139UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 140: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

タ イ ミ ング ク ロージ ャ を達成するには、 次の一般的なガ イ ド ラ イ ンに従います。

• 初タ イ ミ ングが満た されない場合、 フ ロー全体でタ イ ミ ングを評価し ます。

• TNS を向上する主な方法と し て、 各ク ロ ッ ク の WNS に焦点を置き ます。

• WHS 違反が大きいもの (< -1ns) を見直し、 不足し ている制約または不正な制約を特定し ます。

• デザイ ンでの選択、 制約、 およびターゲ ッ ト アーキテ クチャでの ト レード オフを再度考慮し ます。

• ツール オプシ ョ ンおよび XDC の使用方法を理解し ます。

• タ イ ミ ングが満た される と、 ツールではそれ以上のタ イ ミ ングの向上 (マージンの増加) は試みられない と い うこ と に注意し て く ださい。

次のセ ク シ ョ ンに、 設計手法 DRC、 ベース ラ イ ン制約の作成、 タ イ ミ ング違反の根本的な原因の特定、 一般的な手法を使用し た違反の解決によ り 、 タ イ ミ ング制約が完全で正しいものであ る こ と を確認する ための推奨事項を示します。

X-Ref Target - Figure 5-1

図 5-1 : タ イ ミ ング ク ロージャ を短期間で達成するための設計手法

UltraFast 設計手法ガイ ド 140UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 141: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

タ イ ミ ング ク ロージャの理解

タ イ ミ ング ク ロージ ャは、 デザイ ンがハード ウ ェ アでどのよ う に動作するかを表す有効な制約を記述する と こ ろから始ま り ます。 次のセ ク シ ョ ンで説明されている よ う に、 タ イ ミ ング サマ リ レポー ト を確認し ます。

制約が有効である こ との確認

タ イ ミ ング サマ リ レポー ト の [Check Timing] セ ク シ ョ ンで、 次を含むタ イ ミ ング制約の適用範囲を確認し ます。

• すべてのア ク テ ィ ブな ク ロ ッ ク ピンにク ロ ッ ク定義が適用されている。

• すべてのア ク テ ィ ブ パスの終点に、 定義済みク ロ ッ ク に対する要件 (セ ッ ト ア ッ プ/ホール ド / リ カバ リ / リ ムーバル) があ る。

• すべてのア ク テ ィ ブな入力 ポー ト に入力遅延制約が設定されている。

• すべてのア ク テ ィ ブな出力 ポー ト に出力遅延制約が設定されている。

• タ イ ミ ング例外が正し く 指定されている。

注意 : 制約にワ イル ド カード を過剰に使用する と、 実際に適用される制約が意図し た もの と異なる ものになる こ と があ り ます。 report_exceptions コマン ド を使用し て、 タ イ ミ ング例外の競合を特定し、 各タ イ ミ ング例外が適用されるネ ッ ト リ ス ト オブジェ ク ト 、 タ イ ミ ング ク ロ ッ ク、 タ イ ミ ング パス を確認し ます。

check_timing に加え、 設計手法レポー ト (TIMING および XDC チェ ッ ク ) で不正な タ イ ミ ング解析およびハード ウ ェアの誤動作の原因 と成 り 得る タ イ ミ ング制約が特定されます。 レポー ト されたすべての問題を注意深 く 調べ、解決する必要があ り ます。

注記 : デザイ ンのベース ラ イ ン制約を作成する際、 すべてのザイ リ ン ク ス IP 制約を使用する必要があ り ます。 ユーザー I/O 制約を指定し てユーザー I/O 制約がないために check_timing および report_methodology で生成される違反を無視し ないで く ださい。

正のタ イ ミ ング スラ ッ クの確認

次のタ イ ミ ング メ ト リ ク スはタ イ ミ ング違反を示し ます。 タ イ ミ ングを満たすためには、 これらの数値が正であ る必要があ り ます。 詳細は、 「タ イ ミ ング レポー ト の理解」 を参照し て く ださい。

• セ ッ ト ア ッ プ/ リ カバ リ ( 大遅延解析) : WNS > 0ns および TNS = 0ns

• ホール ド / リ ムーバル ( 小遅延解析) : WHS > 0ns および THS = 0ns

• パルス幅 : WPWS > 0ns および TPWS = 0ns

タ イ ミ ング レポー ト の理解

タ イ ミ ング サマ リ レポー ト には、 設定されている制約 と比較し たデザイ ンのタ イ ミ ング特性に関する情報を示し ます。 デザイ ンのサイ ンオフでは、 タ イ ミ ング サマ リ の次の値を確認し ます。

• TNS ( ト ータル ネガテ ィ ブ ス ラ ッ ク ) : デザイ ン全体または特定のク ロ ッ ク ド メ イ ンに含まれる各終点のセ ッ トア ッ プ/ リ カバ リ 違反の合計。 ワース ト セ ッ ト ア ッ プ/ リ カバ リ ス ラ ッ クは、 WNS (ワース ト ネガテ ィ ブ ス ラ ック ) です。

• THS ( ト ータル ホール ド ス ラ ッ ク ) : デザイ ン全体または特定のク ロ ッ ク ド メ イ ンに含まれる各終点のホール ド /リ ムーバル違反の合計。 ワース ト ホール ド / リ ムーバル ス ラ ッ クは、 WHS (ワース ト ホール ド ス ラ ッ ク ) です。

UltraFast 設計手法ガイ ド 141UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 142: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

• TPWS ( ト ータル パルス幅ス ラ ッ ク ) : デザイ ン全体または特定のク ロ ッ ク ド メ イ ンに含まれる各ク ロ ッ ク ピンの、 次のチェ ッ ク における違反の合計。

° 小 Low パルス幅

° 小 High パルス幅

° 小周期

° 大周期

° 大スキ ュー (同じ下位セルの 2 つの ク ロ ッ ク ピン間)

• WPWS (ワース ト パルス幅ス ラ ッ ク ) : ク ロ ッ ク ピンのパルス幅、 周期、 またはスキ ュー チェ ッ クすべてのワース ト ス ラ ッ ク。

ト ータル ス ラ ッ ク (TNS、 THS、 または TPWS) は、 デザイ ンの違反のみを反映し ています。 すべてのタ イ ミ ング チェ ッ ク が満た される と、 ト ータル ス ラ ッ クはヌルにな り ます。

タ イ ミ ング パス レポー ト には、 各タ イ ミ ング チェ ッ ク で論理パスのス ラ ッ ク がどのよ う に算出されたかの詳細情報も示されます。 完全に制約されたデザイ ンでは、 各パスには 1 つまたは複数の要件があ り 、 関連のロ ジ ッ ク が正しく 機能するためにはそれらの要件がすべて満た される必要があ り ます。

WNS、 TNS、 WHS、 および THS で示される主なチェ ッ クは、 シーケンシ ャル セルの機能要件から求められます。

• セ ッ ト ア ッ プ タ イ ム : 新しいデータが正し く 取 り 込まれるために、 次のア ク テ ィ ブ ク ロ ッ ク エ ッ ジの前に新しいデータが安定し ていなければな ら ない時間。

• ホール ド要件 : 不正な値が取 り 込まれないよ う に、 ア ク テ ィ ブ ク ロ ッ ク エ ッ ジの後にデータが安定し たま までいなければな ら ない時間。

• リ カバ リ タ イ ム : 非同期 リ セ ッ ト 信号が非ア ク テ ィ ブ ステー ト に ト グルされてから次のア ク テ ィ ブ ク ロ ッ ク エ ッ ジまでに必要な 小時間。

• リ ムーバル タ イ ム : 非同期 リ セ ッ ト 信号を問題な く 非ア ク テ ィ ブ ステー ト に ト グルでき る、 ア ク テ ィ ブ ク ロ ック エ ッ ジからの 小時間。

同じ ク ロ ッ ク ネ ッ ト に接続された 2 つのフ リ ッ プフ ロ ッ プ間のパスが、 単純な例です。

ク ロ ッ ク ネ ッ ト にタ イ ミ ング ク ロ ッ ク を定義する と、 タ イ ミ ング解析によ り 、 デステ ィ ネーシ ョ ン フ リ ッ プフ ロ ップのデータ ピンで も見積も り が悪いが妥当な動作条件におけるセ ッ ト ア ッ プ チェ ッ クおよびホール ド チェ ッ ク の両方が実行されます。 セ ッ ト ア ッ プおよびホール ド ス ラ ッ ク の両方が正の場合、 ソース フ リ ッ プフ ロ ッ プからデステ ィ ネーシ ョ ン フ リ ッ プフ ロ ッ プへのデータ転送が正し く 実行されます。

タ イ ミ ング解析の詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンを参照し て く ださい。

デザイ ンが適切に制約されているかを確認

タ イ ミ ング結果を見て違反がないかど う かを確認する前に、 デザイ ンのすべての同期終点が適切に制約されているこ と を確認し て く ださい。

check_timing を実行し て制約が適用されていないパス を特定し ます。 このコマン ド はス タ ン ド ア ロ ンで実行できますが、 report_timing_summary の一部と し て も実行されます。 また、 report_timing_summary には [Unconstrained Paths] セ ク シ ョ ンが含まれ、 タ イ ミ ング要件のない N 個論理パスが定義済みのソース またはデステ ィネーシ ョ ン タ イ ミ ング ク ロ ッ ク ご と に リ ス ト されます。 N は -max_path オプシ ョ ンで指定されます。

デザイ ンが完全に制約された ら、 report_methodology コマン ド を実行し、 TIMING および XDC チェ ッ ク で 適でない制約を特定し ます。 適でない制約によ り 、 タ イ ミ ング解析が正確な ものではな く な り 、 ハード ウ ェ アでのタ イ ミ ング マージンが変動する可能性があ り ます。

注記 : Vivado Design Suite 2015.4 以前の リ リ ースでは、 report_drc -ruledeck methodology_checks Tcl コマン ド を使用し て く ださい。

UltraFast 設計手法ガイ ド 142UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 143: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

check_timing で検出された問題の修正

check_timing Tcl コマン ド は、 タ イ ミ ング定義に不足し ている ものがあ るか、 間違った ものがあ るかを レポー トし ます。 check_timing コマン ド でレポー ト された問題を確認および修正する際は、 も重要なチェ ッ ク から見てい く よ う にし ます。 次に、 チェ ッ ク を重要な ものから順に リ ス ト し ます。

no_clock および unconstrained_internal_endpoints

これらのチェ ッ ク では、 デザイ ンの内部パスが完全に制約されているかを確認でき ます。 ス タ テ ィ ッ ク タ イ ミ ング解析のサイ ンオフのク オ リ テ ィ 確認においては、 unconstrained_internal_endpoints が 0 であ る必要があ り ます。

これは、 すべての内部パスにタ イ ミ ング解析用の制約が適用されている こ と を示し ているだけで、 制約の値が正しいこ と を示し ているわけではあ り ません。

generated_clocks

デザイ ンで生成ク ロ ッ ク が使用されるのは通常のこ と ですが、 生成ク ロ ッ クが同じ ク ロ ッ ク ツ リ ーにないマス ター ク ロ ッ ク ソース を基準と し ている場合、 重大な問題と なる可能性があ り ます。 タ イ ミ ング エンジンで生成ク ロ ッ ク ツ リ ーの遅延を適切に算出でき ないこ と があ り 、 ス ラ ッ ク の算出が不正にな り ます。 ワース ト ケースの状況では、レポー ト にタ イ ミ ングが満た されている と示されていて も、 デザイ ンがハード ウ ェ アで機能し ません。

loops および latch_loops

タ イ ミ ング ループはタ イ ミ ング エンジンによ り 分割されるので、 理想的なデザイ ンには組み合わせループは含まれません。 分割されたパスは、 タ イ ミ ング解析ではレポー ト されず、 イ ンプ リ メ ンテーシ ョ ン中に評価されません。これによ り 、 全体的なタ イ ミ ング要件は満た されていて も、 ハード ウ ェ アでの動作が不正になる可能性があ り ます。

no_input_delay、 no_output_delay、 partial_input_delay、 partial_output_delay

すべての I/O ポー ト が正し く 制約されている必要があ り ます。

推奨 : ベース ラ イ ン制約を検証し てから I/O タ イ ミ ングの制約を確認し ます。

multiple_clock

複数ク ロ ッ クは、 通常は許容されます。 これらのク ロ ッ ク が同じ ク ロ ッ ク ツ リ ーに伝搬される こ と を確認する こ とを推奨し ます。 また、 これらのク ロ ッ ク の間のパス要件によ り 、 デザイ ンがハード ウ ェ アで機能する ために必要な要件よ り 厳しい要件が適用されていないかも確認する必要があ り ます。

この場合、 これらのパスのク ロ ッ ク間に set_clock_groups または set_false_path を使用し ます。 タ イ ミ ング例外を使用する場合は、 指定のパスのみに適用されている こ と を確認し て く ださい。

重要 : XDC は Tcl 構文およびセマンテ ィ ク ス規則に従 う ので、 制約の順序が関係し ます。

report_methodology で検出された問題の修正

report_methodology コマン ド は、 check_timing ではレポー ト されない追加の制約およびタ イ ミ ング解析問題を レポー ト し ます。 check_timing は、 配置配線の実行前後に実行し て注意深 く 確認する必要があ り ます。 このセク シ ョ ンでは、 主な 3 つの XDC および TIMING カテゴ リ と、 それらのタ イ ミ ング ク ロージャおよびハード ウ ェアの安定性への相対的な影響について説明し ます。 まず、 タ イ ミ ング ク ロージ ャに影響するチェ ッ ク を確認し て解決する必要があ り ます。

UltraFast 設計手法ガイ ド 143UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 144: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

タ イ ミ ング ク ロージャに影響する設計手法 DRC

次の表に示す DRC は、 イ ンプ リ メ ンテーシ ョ ン ツールへの負荷を増加し、 タ イ ミ ング ク ロージャが不可能になった り 、 一貫し な く なる可能性のあ るデザイ ン と タ イ ミ ング制約の組み合わせを レポー ト し ます。 これらの DRC は通常、 不足し ている ク ロ ッ ク乗せ換え (CDC) 制約、 不適切な ク ロ ッ ク ツ リ ー、 またはロ ジ ッ クの複製によ り タ イ ミ ング例外の適用範囲が一貫し ない状況を示し ます。 これらの問題は、 優先的に解決する必要があ り ます。

表 5-1 : タ イ ミ ング ク ロージャ設計手法 DRC

チ ェ ッ ク 説明

TIMING-6 関連ク ロ ッ ク間に共通プラ イマ リ ク ロ ッ ク がない

TIMING-7 関連ク ロ ッ ク間に共通ノ ード がない

TIMING-8 関連ク ロ ッ ク間に共通周期がない

TIMING-14 ク ロ ッ ク ツ リ ーに LUT があ る

TIMING-15 ク ロ ッ ク間のパスに大き なホール ド違反があ る

TIMING-16 大きいセ ッ ト ア ッ プ違反があ る

TIMING-30 生成ク ロ ッ ク に対し て 適でないマス ター ソース ピンが選択されている

XDCB-3 同じ set_clock_groups コマン ド で複数のグループに同じ ク ロ ッ ク が使用されている

XDCH-1 マルチサイ クル パス制約にホール ド オプシ ョ ンがない

XDCV-1 複製で使用される元のオブジェ ク ト がないために制約の適用範囲が不完全

XDCV-2 複製されたオブジェ ク ト がないために制約の適用範囲が不完全

UltraFast 設計手法ガイ ド 144UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 145: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

サイ ンオフのクオ リ テ ィ に影響する設計手法 DRC

次の表に示す DRC は通常、 タ イ ミ ング ク ロージ ャの達成しやすさ に影響する問題を レポー ト するわけではな く 、 推奨されない制約のためタ イ ミ ング解析の正確さに関連する問題を レポー ト し ます。 セ ッ ト ア ッ プ ス ラ ッ クおよびホール ド ス ラ ッ ク が正であって も、 ハード ウ ェ アがすべての動作条件下で適切に機能し ない可能性があ り ます。 ほと んどのチェ ッ クは、 デザイ ンの境界で定義されていないク ロ ッ ク、 予期し ない波形を持つク ロ ッ ク、 不足し ている タ イ ミ ング要件、 または不適切な CDC 回路に関する ものです。 こ の 後のカテゴ リ には、 report_cdc コマン ドを使用し てよ り 包括的な解析を実行し ます。

その他のタ イ ミ ング設計手法 DRC

その他の TIMING および XDC チェ ッ クは、 実行時間が長 く なる制約、 既存の制約を無効にする制約、 またはネ ッ トリ ス ト 名の変更の影響を受けやすい制約を特定し ます。 対応する情報は、 制約の競合をデバッ グする際に有益です。TIMING-28 チェ ッ ク (自動派生ク ロ ッ クがタ イ ミ ング制約で参照されている ) に特に注意し て く ださい。 自動派生クロ ッ ク の名前は、 デザイ ン ソース コード を変更し て再合成する と変更される可能性があ り ます。 この場合、 以前に定義された制約が機能し な く なるか、 間違った タ イ ミ ング パスに適用される可能性があ り ます。

ベースラ イ ン制約の作成

ベース ラ イ ン制約を作成する と い う こ と は、 も単純な タ イ ミ ング制約のセ ッ ト を作成する と い う こ と です。 すべてのク ロ ッ ク を完全に制約する と、 始点 と終点がデザイ ン内に含まれるすべてのパスは自動的に制約されます。 これによ り 、 デザイ ンが変更中でも、 内部デバイ スのタ イ ミ ングの課題を特定でき ます。 デザイ ンにはク ロ ッ ク乗せ換えがあ る可能性があ るので、 ベース ラ イ ン制約には生成ク ロ ッ ク を含む指定の ク ロ ッ ク間の関係を含める必要があ り ます。

ベース ラ イ ン制約の作成における主要な概念は、 すべての制約が完全に指定される まで待たずに、 正確でほ と んどのタ イ ミ ング パスに適用される 小限の制約を作成する こ と です。 そのため、 ベース ラ イ ン制約には I/O タ イ ミ ング制約は含まれません。 I/O タ イ ミ ング定義およびク ロージャは、 デザイ ンがかな り 進行し、 I/O タ イ ミ ングがわかってき てから実行し ます。

ベース ラ イ ン制約は、 設計プロセスの初期段階で作成する こ と をお勧めし ます。 デザイ ンの HDL に大き な変更を加えた場合は、 これらのベース ラ イ ン制約を適用し て タ イ ミ ング解析を実行する必要があ り ます。 デザイ ンをア ッ プデー ト し た と きにタ イ ミ ングを確認する こ と によ り 、 タ イ ミ ングのボ ト ルネ ッ ク をすぐに見つける こ と ができ ます。

表 5-2 : サイ ンオフ クオ リ テ ィ 設計手法 DRC

チ ェ ッ ク 説明

TIMING-1、 TIMING-2、TIMING-3、 TIMING-4、TIMING-27

推奨されない ク ロ ッ ク起点が定義されている

TIMING-5、 TIMING-25、TIMING-19

予期し ない ク ロ ッ ク波形

TIMING-9、 TIMING-10 不明な CDC ロ ジ ッ ク

TIMING-11 不適切な set_max_delay -datapath_only コマン ド

TIMING-12 CRPR (Clock Reconvergence Pessimism Removal) がデ ィ スエーブル

TIMING-13、 TIMING-23 分割されたパスのためタ イ ミ ング解析が不完全

TIMING-17、 TIMING-18、TIMING-20、 TIMING-27

ク ロ ッ ク または入力/出力遅延制約が不足し ている

TIMING-21、 TIMING-22 MMCM 補正に関する問題

TIMING-24 set_max_delay -datapath_only がほかの制約が優先されているために無効になっている

TIMING-29 マルチサイ クル パスのペアに一貫性がない

UltraFast 設計手法ガイ ド 145UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 146: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ヒ ン ト : ベース ラ イ ン制約でタ イ ミ ング問題が発生し た場合は、 「タ イ ミ ング違反の解析および解決」 を参照し て ください。

ザイ リ ン ク ス IP またはパー ト ナー IP は、 ザイ リ ン ク ス制約手法に準拠する XDC 制約と共に提供されます。 IP 制約は、 合成 と イ ンプ リ メ ンテーシ ョ ンに自動的に含まれます。 デザイ ンのベース ラ イ ン制約を作成する際に保持する必要があ り ます。

ヒ ン ト : デザイ ン フ ローを進行し、 制約を調整し ながら、 「ベース ラ イ ン制約の作成と タ イ ミ ング制約の検証」 を完了し て く ださい。

ベースラ イ ン制約の定義

ク ロ ッ ク制約に確信がない場合は、 Vivado IDE を使用し て合成後のネ ッ ト リ ス ト に対し てすべてのク ロ ッ ク制約を作成でき ます。 Vivado IDE のグ ラ フ ィ カル イ ン ターフ ェ イ スおよび Vivado Design Suite のレポー ト 機能によ り 、 次のセ ク シ ョ ンに説明する よ う に、 制約が必要な ものが正確に示されます。

作成する必要のある ク ロ ッ クの特定

合成後のネ ッ ト リ ス ト またはチェ ッ ク ポイ ン ト を Vivado IDE に読み込みます。 Tcl コ ン ソールで reset_timing コマン ド を使用し し、 すべてのタ イ ミ ング制約を削除し ます。

report_clock_networks Tcl コマン ド を使用し て、 デザイ ンで定義する必要のあ るプラ イマ リ ク ロ ッ ク をすべてリ ス ト し ます。 このク ロ ッ ク ネ ッ ト ワーク の リ ス ト によ り 、 作成する必要のあ る ク ロ ッ ク制約がわか り ます。[Timing Constraints] ウ ィ ン ド ウ を使用し て、 各ク ロ ッ ク のパラ メ ーターを適切に指定し ます。

不足し ている ク ロ ッ クがないこ との確認

ク ロ ッ ク ネ ッ ト ワーク レポー ト にすべてのク ロ ッ ク ネ ッ ト ワーク に制約が設定された こ と が示された ら、 生成クロ ッ ク が正しいこ と を確認し ます。 Vivado ツールでは、 ク ロ ッ ク制約はク ロ ッ ク調整ブロ ッ ク を介し て自動的に伝搬されるので、 生成された制約を確認する こ と が重要です。 report_clocks を使用し て、 create_clock 制約でどのク ロ ッ ク が生成され、 どのク ロ ッ ク が自動生成されたかを確認し ます。

注記 : MMCM、 PLL、 およびク ロ ッ ク バッ フ ァーはク ロ ッ ク調整ブロ ッ ク です。 UltraScale デバイ スでは、 GT も クロ ッ ク調整ブロ ッ ク です。

report_clocks の結果にすべてのク ロ ッ ク が伝搬されている こ と が示されます。 create_clock で作成されるプラ イマ リ ク ロ ッ ク と ク ロ ッ ク調整ブロ ッ ク によ り 生成される生成ク ロ ッ ク の違いは、 [Attributes] 列に示されます。

• 伝搬 (P) と のみ示される ク ロ ッ クは、 プラ イマ リ ク ロ ッ ク です。

• ほかのク ロ ッ ク から派生された ク ロ ッ クは、 伝搬 (P) および生成 (G) の両方 と し て示されます。

生成ク ロ ッ クは、 create_generated_clocks 制約を使用し て も作成でき ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903) [参照 18] を参照し て く ださい。

UltraFast 設計手法ガイ ド 146UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 147: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ク ロ ッ ク乗せ換えの制約

ク ロ ッ ク制約を確認し た ら、 非同期および制約が厳しすぎ る ク ロ ッ ク乗せ換えパス を特定する必要があ り ます。

注記 : こ のセ ク シ ョ ンではク ロ ッ ク領域の境界を適切にまたぐ方法は説明し ませんが、 存在する ク ロ ッ ク乗せ換えパス を特定し、 制約する方法を示し ます。

ク ロ ッ ク関連性の確認

ク ロ ッ ク間の関係は、 report_clock_interaction Tcl コマン ド を使用し て確認でき ます。 このレポー ト には、ソース ク ロ ッ ク とデステ ィ ネーシ ョ ン ク ロ ッ ク のマ ト リ ッ ク スが示されます。 各セルの色は、 ク ロ ッ ク間の関連性を既存の制約を含めて示し ます。 次の図に、 ク ロ ッ ク関連性レポー ト の例を示し ます。

X-Ref Target - Figure 5-2

図 5-2 : report_clocks によ り示されるプ ラ イマ リ ク ロ ッ クから生成されたク ロ ッ ク

X-Ref Target - Figure 5-3

図 5-3 : ク ロ ッ ク関連性レポー ト の例

UltraFast 設計手法ガイ ド 147UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 148: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

次の表に、 このレポー ト の各色の説明を示し ます。

フ ォルス パス制約またはク ロ ッ ク グループ制約を作成する前に、 マ ト リ ッ ク スに表示される色が黒、 赤、 緑のみになる よ う にし て く ださい。 すべてのク ロ ッ ク にはデフ ォル ト でタ イ ミ ング関係が適用されるので、 非同期ク ロ ッ クを分離する こ と は重要です。 非同期ク ロ ッ ク を分離し ない と、 デザイ ンが過剰に制約される可能性があ り ます。

共通のプ ラ イマ リ ク ロ ッ ク を持たないク ロ ッ ク ペアの特定

ク ロ ッ ク関連性レポー ト は、 関連性のあ る ク ロ ッ ク のプラ イマ リ ク ロ ッ ク ソースが共通であ るかを示し ます。 プライマ リ ク ロ ッ ク が共通でない ク ロ ッ ク ペアは、 多 く の場合非同期です。 そのため、 レポー ト で [Common Primary Clock] 列で並べ替えて、 これらのペアを特定する と有益です。 このレポー ト では、 ク ロ ッ ク ド メ イ ンを またぐパスが適切に設計されているかど う かは判断でき ません。

report_cdc Tcl コマン ド を使用し て、 非同期ク ロ ッ ク間のク ロ ッ ク乗せ換え回路の包括的な解析を実行し ます。report_cdc コマン ド の詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンおよび『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガイ ド』 (UG835) [参照 13] の 「report_cdc」 を参照し て く ださい。

表 5-3 : report_clock_interaction の色の説明

色 ラベル 説明 次の操作

黒 No path ク ロ ッ ク ド メ イ ン間に関連性はあ り ません。

これらの ク ロ ッ ク ド メ イ ンに関連性があるはずの場合以外は、 特に操作は必要あり ません。

緑 Timed ク ロ ッ ク ド メ イ ン間に関連性があ り 、パスにタ イ ミ ング制約が適用されています。

これらの ク ロ ッ ク ド メ イ ンに関連性がないはずの場合以外は、 特に操作は必要あり ません。

シアン Partial False Path

関連性のあ る ク ロ ッ ク ド メ イ ン間の一部にユーザー例外が設定されてお り 、タ イ ミ ングが適用されていません。

タ イ ミ ング例外が適切な ものであ る こ とを確認し ます。

赤 Timed (unsafe) ク ロ ッ ク ド メ イ ン間に関連性があ り 、パスにタ イ ミ ング制約が適用されていますが、 ク ロ ッ クが独立 (非同期) である よ う に見えます。

これらの ク ロ ッ ク を非同期と し て定義する必要があ るか、 共通のプラ イマ リ ソース を共有する必要があ るかを確認し ます。

オレ ンジ Partial False Path (unsafe)

ク ロ ッ ク ド メ イ ン間に関連性があ り ます。 ク ロ ッ クは独立 (非同期) であ る よう に見えますが、 タ イ ミ ング例外が設定されている ためにタ イ ミ ングが適用されないのは一部のパスのみです。

一部のパスにタ イ ミ ング例外が設定されいないのはなぜかを確認し ます。

青 User Ignored Paths

ク ロ ッ ク ド メ イ ン間に関連性があ り ますが、 ク ロ ッ ク グループまたはフ ォルス パス タ イ ミ ング例外が設定されている ためにタ イ ミ ング解析は実行されません。

これらの ク ロ ッ クが非同期であ るかを確認し ます。 また、 対応する HDL コード が正し く 記述されているかを確認し、 クロ ッ ク ド メ イ ン間が正し く 同期され、データが適切に転送される よ う にし ます。

水色 Max Delay Datapath Only

ク ロ ッ ク ド メ イ ン間に関連性があ り 、set_max_delay -datapath only によ り パスにタ イ ミ ング制約が適用されています。

ク ロ ッ クが非同期であ り 、 指定された遅延が正しいこ と を確認し ます。

UltraFast 設計手法ガイ ド 148UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 149: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

厳しいタ イ ミ ング要件の特定

ク ロ ッ ク関連性レポー ト には、 各ク ロ ッ ク ペアに対し て、 ワース ト パスのセ ッ ト ア ッ プ要件も示されます。 表を [Path Req (WNS)] で並べ替え、 デザイ ンで も厳しい要件を確認し ます。 図 5-3 では、 タ イ ミ ング レポー ト を [WNS] 列を基準に並べ替えています。 これらの要件を見直し て、 無効な厳しい要件が存在し ていないこ と を確認し ます。

Vivado ツールは、 各ク ロ ッ ク を 1000 サイ クル調べ、 も少ないサイ クルでエ ッ ジが揃 う 箇所を特定し ます。 も厳しい要件を判断するのに 1,000 サイ クルでは十分でない場合は、 レポー ト に 「Not Expanded」 と示され、 2 つのクロ ッ ク を非同期 と し て処理する必要があ り ます。

た と えば、 250MHz ク ロ ッ ク から 200MHz ク ロ ッ ク に切 り 替わる タ イ ミ ング パがあ る と し ます。

• 200MHz ク ロ ッ ク の立ち上が り エ ッ ジは {0, 5, 10, 15, 20 …} です。

• 250MHz ク ロ ッ ク の立ち上が り エ ッ ジは {0, 4, 8, 12, 16, 20 …} です。

このク ロ ッ ク ペアで要件が も厳しいのは、 次の 2 つの条件が満た される と きです。

• 250MHz ク ロ ッ ク の立ち上が り エ ッ ジ 4 ns

• 200MHz ク ロ ッ ク の次の立ち上が り エ ッ ジが 5ns

これによ り 、 250MHz ク ロ ッ ク ド メ イ ンから 200MHz ク ロ ッ ク ド メ イ ンに切 り 替わるすべてのパスに 1ns のタ イ ミングが適用されます。

注記 : こ の例では、 デステ ィ ネーシ ョ ン エ ッ ジ と ソース エ ッ ジが同じであ る こ と はないので、 エ ッ ジが揃 う 20ns はも厳しい要件 と はな り ません。

これは厳しいタ イ ミ ング要件なので、 追加の手順が必要 と な り ます。 デザイ ンによ って、 次のいずれかの制約を使用する と、 これらのタ イ ミ ング ド メ イ ンを またぐ状況を適切に処理でき ます。

• set_clock_groups / set_false_path / set_max_delay -datapath_only

ク ロ ッ ク ペアを非同期とする場合は、 上記のいずれかの制約を使用し ます。 report_cdc Tcl コマン ド を使用し て、 ク ロ ッ ク乗せ換え回路が安全であ るかど う かを検証し ます。

• set_multicycle_path

この制約は、 適切な ク ロ ッ ク回路によ り ソース ク ロ ッ ク エ ッ ジ とデステ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジが制御されている場合に、 タ イ ミ ング要件を緩和する場合に使用し ます。

何も し ない場合、 これらのク ロ ッ ク ド メ イ ンを またぐパスでタ イ ミ ング違反が発生し た り 、 適化および配置配線が、 デザイ ンの実際のク リ テ ィ カル パスではな く 、 これらのパスに焦点を置いて実行される可能性があ り ます。 このよ う なパス を タ イ ミ ング ド リ ブンのイ ンプ リ メ ンテーシ ョ ンの前に特定する こ と が重要です。

X-Ref Target - Figure 5-4

図 5-4 : ク ロ ッ ク ド メ イ ンが 250MHz から 200MHz に切り替わる

UltraFast 設計手法ガイ ド 149UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 150: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

プ ラ イマ リ ク ロ ッ ク と生成ク ロ ッ ク を同時に制約

タ イ ミ ング例外を作成する前に、 report_clock_networks でデザイ ンに含まれるプラ イマ リ ク ロ ッ ク を特定してお く と有益です。 すべてのプラ イマ リ ク ロ ッ ク がお互いに非同期であ る場合、 1 つの制約を使用し てプラ イマ リ ク ロ ッ ク同士 と、 それらから生成された ク ロ ッ ク同士を分離でき ます。 report_clock_networks で生成されたレポー ト のプラ イマ リ ク ロ ッ ク をガ イ ド と し て使用し、 次の図に示すよ う に各ク ロ ッ ク グループ と関連の ク ロ ッ クを分離でき ます。

### Decouple asynchronous clocksset_clock_groups -asynchronous \-group [get_clocks sysClk -include_generated_clocks] \-group [get_clocks gt0_txusrclk_i -include_generated_clocks] \-group [get_clocks gt2_txusrclk_i -include_generated_clocks] \-group [get_clocks gt4_txusrclk_i -include_generated_clocks] \-group [get_clocks gt6_txusrclk_i -include_generated_clocks]

I/O 制約およびタ イ ミ ング例外の制限

ほ と んどのタ イ ミ ング違反は内部パスで発生し ます。 I/O 制約は、 特にソース レジス タ とデステ ィ ネーシ ョ ン レジス タが I/O バン ク内にあ る場合は、 初のベース ラ イ ン制約の作成時には必要あ り ません。 I/O タ イ ミ ング制約は、デザイ ンおよびほかの制約が安定し、 タ イ ミ ング ク ロージ ャがほぼ達成されてから追加し ます。

ヒ ン ト : Vivado Design Suite 2015.3 リ リ ース以降では、 config_timing_analysis -ignore_io_paths yes Tcl コマン ド を使用し て イ ンプ リ メ ンテーシ ョ ン中およびタ イ ミ ング情報を使用する レポー ト ですべての I/O パスのタ イ ミ ングを無視でき ます。 このコマン ド は、 デザイ ンをメ モ リ に開 く 前または開いた直後に手動で入力する必要があ り ます。

RTL 設計者の推奨事項に基づき、 タ イ ミ ング例外は制限し て使用し、 実際のタ イ ミ ング問題を隠すために使用し ないで く ださい。 この段階の前に、 ク ロ ッ ク間のフ ォルス パス またはク ロ ッ ク グループを確認し、 確定し てお く 必要があ り ます。

IP 制約は、 すべて保持する必要があ り ます。 IP タ イ ミ ング制約がない と、 既知のフ ォルス パスがタ イ ミ ング違反 とし てレポー ト される可能性があ り ます。

X-Ref Target - Figure 5-5

図 5-5 : ク ロ ッ ク ネ ッ ト ワーク レポー ト

UltraFast 設計手法ガイ ド 150UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 151: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

各段階の前後におけるデザイ ンの WNS の評価

イ ンプ リ メ ンテーシ ョ ンの各段階の前後に、 デザイ ンの WNS を評価する必要があ り ます。 Tcl コマン ド ラ イ ン フローを使用し ている場合は、 ビル ド ス ク リ プ ト のイ ンプ リ メ ンテーシ ョ ンの各段階後に report_timing_summary を含める こ と ができ ます。 Vivado IDE を使用し ている場合は、 tcl.post ス ク リ プ ト を使用し て、 各段階の後に report_timing_summary を実行でき ます。 どち らの場合も、 WNS が大幅に悪化し た場合は、 その段階のすぐ前のチェ ッ ク ポイ ン ト を解析する必要があ り ます。

各イ ンプ リ メ ンテーシ ョ ン段階の前後にデザイ ン全体のタ イ ミ ングを評価するのに加え、 フ ローの各段階がタ イ ミングに与え る影響を評価するため、 個別のパス を対象 と し た解析を実行でき ます。 た と えば、 タ イ ミ ング パスのネ ッ ト 遅延の見積も り 値が、 配置後 と 適化後で大幅に異なる と し ます。 各段階後の ク リ テ ィ カル パスのタ イ ミ ングを比較する と、 ク リ テ ィ カル パスのタ イ ミ ングがどの時点で悪化し たのかを調べる こ と ができ ます。

合成後およびロジ ッ ク 適化後

ネ ッ ト 遅延の見積も り 値は、 すべてのパスの 適な配置に近いものです。 違反の発生し ているパス を修正するには、次のいずれかを試し てみて く ださい。

• RTL を変更し ます。

• 異なる合成オプシ ョ ンを使用し ます。

• マルチサイ クル パスなどのタ イ ミ ング例外を追加し ます (適切でハード ウ ェアでの機能に問題が発生しない場合)。

合成前および配置後

配置後のネ ッ ト 遅延の見積も り 値は、 フ ァ ンアウ ト が中程度から大きいネ ッ ト を除き、 適な配線に近いもので、大きめの遅延が使用されます。 また、 この時点のネ ッ ト 遅延では密集やホール ド の修正が考慮されておらず、 タ イミ ング結果が実際よ り 見積も り の良いもの と なる こ と があ り ます。

ク ロ ッ ク スキ ューは正確に見積も られ、 バラ ン スの悪い ク ロ ッ ク ツ リ ーのス ラ ッ クへの影響を確認するのに使用でき ます。

ホール ド の修正は、 小遅延解析を実行する こ と によ り 予測でき ます。 ス ラ イ ス、 ブロ ッ ク RAM、 またはDSP 間の WHS が -0.500ns 以上であ る大き なホール ド違反は、 修正する必要があ り ます。 小さい違反は、 たいていは配線で修正されます。

注記 : PCIe ブロ ッ ク などの専用ブロ ッ ク に入出力されるパスでは、 ホール ド タ イ ムの見積も り 値が -0.500ns 以上であって も、 配線で自動的に修正されます。 このよ う な場合は、 配線後に report_timing_summary を実行し、 対応するすべてのホール ド違反が修正される こ と を確認し て く ださい。

物理 適化の前後

次に関する タ イ ミ ングの問題を修正するために、 物理 適化を実行する必要があ るかを評価し ます。

• フ ァ ンア ウ ト の大きいネ ッ ト (report_high_fanout_nets でフ ァ ンアウ ト が 大のク ロ ッ ク以外のネ ッ ト を表示)

• ド ラ イバー と ロード が遠いネ ッ ト

• パイプラ イ ン レジス タの使用が 適でない DSP および RAMB

UltraFast 設計手法ガイ ド 151UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 152: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

配線の前後

ネ ッ ト が完全に配線されていない場合を除き、 ス ラ ッ クは実際の配線ネ ッ ト 遅延でレポー ト されます。 ス ラ ッ クには、 セ ッ ト ア ッ プに対する ホール ド の修正の影響 と、 密集の影響が反映されます。

配線後には、 ワース ト セ ッ ト ア ッ プ ス ラ ッ ク (WNS) 値にかかわらず、 ホール ド違反が残っていないよ う にする必要があ り ます。 デザイ ンでホール ド要件が満た されていない場合、 さ らに解析が必要です。 これは通常、 密集度が高く 、 配線でそれ以上のタ イ ミ ングの 適化が実行されないこ と が原因です。 ホール ド違反が大きい (4ns 以上) 場合にも発生する こ と があ り ます。 大きいホール ド違反は、 配線でデフ ォル ト では修正されません。 大きいホール ド違反は通常、 不適切な ク ロ ッ ク制約、 大きいク ロ ッ ク スキ ュー、 不適切な I/O 制約が原因ですが、 これらは配置後または合成後に特定でき ます。

ホール ド 要件が満た されている (WHS > 0) 場合は、 「タ イ ミ ング違反の解析および解決」 の解析手順に従って く ださ い。

ベースラ イ ン制約の作成と タ イ ミ ング制約の検証

次の手順は、 タ イ ミ ング ク ロージ ャ達成に向けての進行状況を確認し、 ボ ト ルネ ッ ク と なる可能性のあ る問題を特定するのに役立ちます。

1. 合成済みデザイ ンを開き ます。

2. report_timing_summary -delay_type min_max コマン ド を実行し、 表示される情報を次の表に記録します。

3. 合成後の report_timing_summary テキス ト レポー ト を開き、 [Check Timing] の [no_clock] セ ク シ ョ ンを記録し ます。

デザイ ンで満た されていないク ロ ッ ク要件の数 : ___________

4. report_clock_networks コマン ド を実行し、 デザイ ンのプラ イマ リ ク ロ ッ ク のソース ピン/ポー ト を特定します。 QPLLOUTCLK、 QPLLOUTREFCLK はパルス幅のみのチェ ッ ク なので、 無視し ます。

デザイ ンで制約されていないク ロ ッ ク の数 : ___________

5. report_clock_interaction -delay_type min_max コマン ド を実行し、WNS パス要件の結果を並べ替えます。

デザイ ンで 小の WNS パス要件 : ___________

6. report_clock_interaction の結果を [WHS] で並べ替え、 合成後に大き なホール ド違反 (> 500ps) があ るかど う かを調べます。

デザイ ンで 大の負の WHS : ___________

7. report_clock_interaction の結果を [Inter-Clock Constraints] で並べ替え、 「unsafe」 と示される ク ロ ッ ク ペアをすべて リ ス ト し ます。

8. 合成済みデザイ ンを開 く と き、 ク リ テ ィ カル警告はい く つ表示されますか。

合成済みデザイ ンのク リ テ ィ カル警告の数 : ___________

WNS TNS

タ イ ミ ングが満た されてい

ない終点 (Failing

Endpoints) の数

WHS THS

タ イ ミ ングが満たされてい

ない終点 (Failing

Endpoints) の数

合成

UltraFast 設計手法ガイ ド 152UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 153: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

9. どのタ イプのク リ テ ィ カル警告があ り ますか。

各ク リ テ ィ カル警告タ イプの例 :

10. report_high_fanout_nets -timing -load_types -max_nets 25 コマン ド を実行し ます。

フ リ ッ プフ ロ ッ プで駆動されていないフ ァ ンアウ ト の大きいネ ッ ト の数 : ___________

フ リ ッ プフ ロ ッ プで駆動されていないフ ァ ンアウ ト が 大のネ ッ ト 上にあ る ロード の数 : ___________

フ ァ ンア ウ ト の大きいネ ッ ト にス ラ ッ ク が負のものがあ る場合、 その WNS : ___________

11. デザイ ンを イ ンプ リ メ ン ト し ます。 各段階の後に report_timing_summary コマン ド を実行し、 表示される情報を次の表に記録し ます。

report_exceptions -ignored コマン ド を実行し、 デザイ ンで重複し ている制約がないかど う かを確認し ます。結果を記録し ます。

タ イ ミ ング違反の解析および解決

タ イ ミ ング ド リ ブン アルゴ リ ズムは、 悪の違反に焦点を置いて処理を実行し ます。 悪の違反に関連する問題を理解し て修正する と、 イ ンプ リ メ ンテーシ ョ ン フ ローを再実行し た と きに、 ほ と んどの小さ い違反も修正されます。各違反の原因 と なる主なタ イ ミ ング特性を特定し、 この章で説明されている対応する解決手法を適用する必要があり ます。

タ イ ミ ング違反の根本的な原因の特定

セ ッ ト ア ッ プでは、 まず各ク ロ ッ ク グループの 悪の違反を解析し ます。 ク ロ ッ ク グループ と は、 あ る ク ロ ッ ク で取 り 込まれる ク ロ ッ ク内、 ク ロ ッ ク間、 および非同期のパスすべてを指し ます。

ホール ド では、 すべての違反を次のよ う に解析する必要があ り ます。

• 配線前は、 0.5ns を超え る違反のみを確認し ます。

• 配線後は、 悪の違反から開始し ます。

WNS TNS

タ イ ミ ングが満た されてい

ない終点 (Failing

Endpoints) の数

WHS THS

タ イ ミ ングが満たされてい

ない終点 (Failing

Endpoints) の数

適化

配置

物理 適化

配線

UltraFast 設計手法ガイ ド 153UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 154: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

タ イ ミ ング スラ ッ クの確認

セ ッ ト ア ッ プおよびホール ド ス ラ ッ ク には、 複数の要素が影響し ます。 次の簡潔なセ ッ ト ア ッ プおよびホール ド スラ ッ ク の式から、 各要素を特定でき ます。

タ イ ミ ング解析では、 ク ロ ッ ク スキ ューは常に次のよ う に算出されます。

ク ロ ッ ク スキ ュー = デステ ィ ネーシ ョ ン ク ロ ッ ク遅延 - ソース ク ロ ッ ク遅延 (存在する場合は共通 ノード の後)

違反が発生し ている タ イ ミ ング パスの解析中、 各変数の相対的な影響を調べ、 どの変数が違反に も影響し ているかを判断する必要があ り ます。 その後主な要因を解析し て、 パスのどの特性がその値に も影響し ているかを理解し、 その影響を軽減するデザイ ンおよび制約の変更を特定し ます。 デザイ ン または制約の変更が実質的でない場合は、 悪のものから開始し てほかのすべての要因を同様に解析する必要があ り ます。 次に、 典型的な要因を 悪のものから順に リ ス ト し ます。

セ ッ ト ア ッ プ/ リ カバ リ の場合 :

• データパス遅延 : データパス遅延から タ イ ミ ング パス要件を減算し ます。 差が負のス ラ ッ ク値と同等であ る場合は、 パス要件が厳しすぎ るか、 データパス遅延が大きすぎます。

• データパス遅延 + セ ッ ト ア ッ プ/ リ カバ リ タ イ ム : データパス遅延から タ イ ミ ング パス要件を減算し、 セ ッ トア ッ プ/ リ カバ リ タ イ ムを加算し ます。 差が負のス ラ ッ ク値と同等であ る場合は、 パス要件が厳しすぎるか、セ ッ ト ア ッ プ/ リ カバ リ タ イ ムが通常よ り 大きいこ と が違反の原因と なっています。

• ク ロ ッ ク スキ ュー : ク ロ ッ ク スキ ューおよびス ラ ッ ク が似た よ う な負の値であ り 、 スキ ューの絶対値が数百ピコ秒以上であ る場合、 スキ ューが主な要因であ り 、 ク ロ ッ ク ト ポロ ジを見直す必要があ り ます。

• ク ロ ッ ク のばらつき : ク ロ ッ ク のばらつきが数百ピ コ秒を超え る場合、 ク ロ ッ ク ト ポロ ジ と ジ ッ ター値を見直し てばらつきが大きい原因を理解する必要があ り ます。

ホール ド / リ ムーバルの場合 :

• ク ロ ッ ク スキ ュー : ク ロ ッ ク スキ ューが 300ps を超え る場合、 ク ロ ッ ク ト ポロ ジを見直す必要があ り ます。

• ク ロ ッ ク のばらつき : ク ロ ッ ク のばらつきが 200ps を超え る場合、 ク ロ ッ ク ト ポロ ジ と ジ ッ ター値を見直し てばらつきが大きい原因を理解する必要があ り ます。

• ホール ド / リ ムーバル タ イ ム : ホール ド / リ ムーバル タ イ ムが数百ピ コ秒以上であ る場合、 プ リ ミ テ ィ ブのデータシー ト を見直し て これが予測される結果であ るかど う かを確認でき ます。

• ホール ド パス要件 : 要件は通常 0 です。 0 でない場合、 タ イ ミ ング制約が正しいかど う かを確認する必要があ ります。

すべてのタ イ ミ ング制約が正し く 妥当であ る場合は、 タ イ ミ ング違反の も一般的な要因はセ ッ ト ア ッ プ/ リ カバ リ タ イ ミ ング パスのデータパス遅延およびホール ド / リ ムーバル タ イ ミ ング パスのスキ ューです。 デザイ ン サイ クルの初期段階では、 これら 2 つの要因を解析する こ と によ り ほ と んどのタ イ ミ ング問題を修正でき ます。 デザイ ンおよび制約を改善および調整し た後は、 残 り の違反は複数の要素が組み合わさ って発生し てお り 、 すべての要素を同時に調べてどれを改善するかを特定する必要があ り ます。

スラ ッ ク (セ ッ ト ア ッ プ/リ カバリ )

= セ ッ ト ア ッ プ パス要件

- データパス遅延 ( 大)+ ク ロ ッ ク スキュー

- ク ロ ッ クのばらつき

- セ ッ ト ア ッ プ/リ カバリ タ イム

スラ ッ ク (ホールド /リムーバル)

= ホールド パス要件

+ データパス遅延 ( 小)- ク ロ ッ ク スキュー

- ク ロ ッ クのばらつき

- ホールド /リムーバル タ イム

UltraFast 設計手法ガイ ド 154UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 155: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

タ イ ミ ング解析の概念の詳細は 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンを、 タ イ ミ ング レポー ト (report_timing_summary/report_timing) の詳細は同じガイ ド のこのセ ク シ ョ ンを参照し て く ださい。

デザイ ン解析レポー ト の使用

タ イ ミ ング ク ロージ ャ を達成するのが困難な場合、 またはアプ リ ケーシ ョ ンの全体的なパフ ォーマン ス を向上し よう と し ている場合は、 合成の実行後、 およびイ ンプ リ メ ンテーシ ョ ン フ ローの各段階の後に、 デザイ ンの特性を確認する必要があ り ます。 QoR 解析では、 グ ローバルおよびローカルの複数の特性を同時に見て、 デザイ ンおよび制約に 適でないものがあ るか、 ターゲ ッ ト デバイ スおよびイ ンプ リ メ ンテーシ ョ ン ツールに適切でないロ ジ ッ ク構造があ るかを確認し ます。 report_design_analysis コマン ド を実行する と、 論理特性、 タ イ ミ ング特性、 物理特性が表示され、 QoR の根本的な原因を簡単に解析でき ます。

注記 : report_design_analysis コマン ド では、 タ イ ミ ング制約が完全であるか正確であるかはレポー ト されません。 タ イ ミ ング制約の確認および修正の詳細は、 「デザイ ンが適切に制約されているかを確認」 を参照して く ださい。

ヒ ン ト : Vivado IDE でデザイ ン解析レポー ト を実行する と、 表示が向上し、 自動フ ィ ルターおよびク ロ スプローブが提供されます。

次のセ ク シ ョ ンでは、 タ イ ミ ング パス特性解析についてのみ説明し ます。 デザイ ン解析レポー ト には、 「密集の特定」 で説明されている よ う に、 密集およびデザイ ンの複雑性に関する有益な情報も含まれます。

パス特性の解析

次のコマン ド を使用する と、 ワース ト セ ッ ト ア ッ プ タ イ ミ ング パス を 50 個レポー ト でき ます。

report_design_analysis -max_paths 50 -setup -name design_analysis_postRoute

次の図に、 このコマン ド で生成される Setup Path Characteristics (セ ッ ト ア ッ プ パス特性) の表の例を示し ます。 追加の列を表示するには、 水平方向にス ク ロールし ます。

次に、 この表の操作に関する ヒ ン ト を示し ます。

• ツールバーの [Show Percentage] (%) ボタ ンを ク リ ッ ク し、 数値と割合を切 り 替えます。 これは、 セル遅延と ネ ット 遅延の割合を確認するのに便利です。

• デフ ォル ト では、 値がヌルまたは空の列のみが非表示になっています。 ツールバーの [Hide Unused] (未使用を表示) ボタ ンを ク リ ッ クする と、 すべての列が表示されます。 または、 表のヘッ ダーを右ク リ ッ ク し て、 列の表示/非表示を切 り 替え る こ と ができ ます。

この表から、 どの特性が各パスにタ イ ミ ング違反を発生させているのかを特定でき ます。

• ロ ジ ッ ク遅延の割合 ([Logic Delay]) が大きい

° ロ ジ ッ ク レベル数は多いですか ([Logic Levels])。

° ロ ジ ッ ク 適化を妨げる制約または属性が設定されていますか ([Dont Touch]、 [Mark Debug])。

° パスに RAMB や DSP などのロ ジ ッ ク遅延の大きいセルが含まれていますか ([Logical Path]、 [Start Point Pin Primitive]、 [End Point Pin Primitive])。

X-Ref Target - Figure 5-6

図 5-6 : 配線後のデザイ ン解析レポー ト のタ イ ミ ング パス特性

UltraFast 設計手法ガイ ド 155UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 156: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

° パスの要件が現在のパス ト ポロ ジには厳しすぎませんか ([Requirement])。

• ネ ッ ト 遅延の割合 ([Net Delay]) が大きい

° パスのフ ァ ンアウ ト の大きいネ ッ ト があ り ますか ([High Fanout]、 [Cumulative Fanout])。

° セルが離し て配置可能な複数の Pblock に割 り 当て られていますか ([PBlocks])。

° セルが離れて配置されていますか ([Bounding Box Size]、 [Clock Region Distance])。

° SSI デバイ スで SLR の境界を またぐネ ッ ト があ り ますか ([SLR Crossings])。

° 配置は正しいよ う なのにもかかわらず、 予測よ り もかな り 大きいネ ッ ト 遅延があ り ますか。 パス を選択し、その配置 と配線を [Device] ウ ィ ン ド ウに表示し ます。

° RAMB または DSP セルに不足し ているパイプラ イ ン レジス タはあ り ますか ([Comb DSP]、 [MREG]、[PREG]、 [DOA_REG]、 [DOA_REG])。

• スキ ューが大きい (セ ッ ト ア ッ プで <-0.5ns、 ホール ド で >0.5ns) ([Clock Skew])

° そのパスはク ロ ッ ク乗せ換えパスですか ([Start Point Clock]、 [End Point Clock])。

° ク ロ ッ クは同期ですか、 非同期ですか ([Clock Relationship])。

° パスは I/O 列を またいでいますか ([IO Crossings])。

ヒ ン ト : Vivado IDE でタ イ ミ ング パスの詳細を確認するには、 表でパス を選択し、 [Properties] ウ ィ ン ド ウ を見ます。

ロジ ッ ク レベル分布の確認

report_design_analysis コマン ド では、ワース ト パス 1000 個 (デフ ォル ト ) の Logic Level Distribution (ロ ジ ッ ク レベル分布) の表も生成され、 デザイ ンの長いパス を特定するのに使用でき ます。 通常、 配置の段階でタ イ ミ ングを満たすために 長のパスが 初に 適化されるので、 短いパスの配置の質が低下する可能性があ り ます。 全体的な QoR を向上する ため、 長いパス をなるべ く な く すよ う にし て く ださい。 こ のため、 配置の前に 長のパス を確認する こ と をお勧めし ます。 次の図に、 デザイ ンのロ ジ ッ ク レベル分布の例を示し ます。 こ の例では、 ク ロ ッ ク周期は 7.5ns で、 ロ ジ ッ ク レベル数が 17 のパス を含む 悪のものから 5000 個のパスがレポー ト されています。 こ のレポート を生成するには、 次のコマン ド を実行し ます。

report_design_analysis -logic_level_distribution -logic_level_dist_paths 5000 -name design_analysis_prePlace

長のパスのタ イ ミ ング レポー ト を生成するには、 次のコマン ド を実行し ます。

report_timing -name longPaths -of_objects [get_timing_paths -setup -to [get_clocks cpuClk_5] -max_paths 5000 -filter {LOGIC_LEVELS>=16 && LOGIC_LEVELS<=20}]

解析結果に基づいて、 RTL を変更、 異なる合成オプシ ョ ンを使用、 またはタ イ ミ ング制約および物理制約を変更してネ ッ ト リ ス ト を向上でき ます。

X-Ref Target - Figure 5-7

図 5-7 : 配置前のデザイ ン解析レポー ト のタ イ ミ ング パス特性

UltraFast 設計手法ガイ ド 156UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 157: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

データパス遅延およびロジ ッ ク レベル

通常、 パスに含まれる LUT およびその他のプ リ ミ テ ィ ブの数が遅延に影響する も重要な要素です。 LUT 遅延は 7 シ リ ーズ と UltraScale デバイ スでレポー ト 方法が異なるので、 次に説明する よ う に、 異なるセル遅延と配線遅延の範囲を考慮する必要があ り ます。

パス遅延が次のよ う な構成の場合があ り ます。

• 7 シ リ ーズ デバイ スでセル遅延が >25%、 UltraScale デバイ スで >50%

パス を変更し て短 く するか、 よ り 高速のロ ジ ッ ク セルを使用でき ますか。 詳細は、 「ロ ジ ッ ク遅延の削減」 を参照し て く ださい。

• 7 シ リ ーズ デバイ スでセル遅延が >75%、 UltraScale デバイ スで >50%

このパスはホール ド違反の修正の影響を受けていますか。 これは、 report_design_analysis を実行し、[Hold Detour] 列を確認する こ と によ り 判断でき ます。 対応する解析手法を使用し ます。

° はい : 影響を受けているネ ッ ト は CDC パスの一部ですか。

- はい : CDC パスに制約は設定されていますか。

- いいえ : ホール ド違反が修正されたパスの始点および終点にバラ ン スの取れた ク ロ ッ ク ツ リ ーが使用されていますか。 スキ ュー値を確認し ます。

° いいえ : 次の密集に関する項目を参照し ます。

このパスは密集の影響を受けていますか。 各ネ ッ ト 遅延およびフ ァ ンアウ ト を確認し、 [Device] ウ ィ ン ド ウで配線 リ ソースの表示をオンにし て配線を表示し ます (配線後の解析のみ)。 密集 メ ト リ ッ ク をオンにし て、 パスが密集エ リ アまたはその近 く に配置されているかも確認でき ます。 簡単な評価には次の解析手順を使用し、 包括的な解析には 「密集の特定」 を参照し て く ださい。

° はい : 遅延値が も大きいネ ッ ト で、 フ ァ ンア ウ ト は小さ いですか (< 10)。

- はい : 配線が 適であ る よ う に見える (直線) が ド ラ イバーと ロード が離れている場合、 適でない配置は密集に関連し ています。 適な解決手法を判断するには、 「密集の解消」 を参照し て く ださい。

- いいえ : 物理ロ ジ ッ ク 適化を使用し てネ ッ ト の ド ラ イバーを複製し てみます。 複製する と、 各ド ラ イバーが自動的にロード の近 く に配置されるので、 全体的なデータパス遅延が削減されます。 詳細およびほかの手法を学ぶには、 「フ ァ ンアウ ト の大きいネ ッ ト の 適化」 を参照し て く ださい。

° いいえ : デザイ ンが分散しすぎています。 配置を向上するには、 次のいずれかの方法を試して見て く ださい。

- 「制御セ ッ ト の削減」

- 「コ ンパイル フ ローの調整」

- 「フ ロ アプラ ン」

UltraFast 設計手法ガイ ド 157UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 158: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ク ロ ッ クのスキューとばらつき

ザイ リ ン ク ス デバイ スでは、 さ まざまな タ イプの配線 リ ソース を使用し て、 一般的な ク ロ ッ キング方法と、 フ ァ ンア ウ ト の大きいク ロ ッ ク、 小さい伝搬遅延、 非常に小さいスキ ューなどの要件をサポー ト し ます。 ク ロ ッ ク スキ ューは、 組み合わせロ ジ ッ ク またはイ ン ターコネ ク ト のどち ら を含む場合でも、 レジス タ間のパスに影響し ます。

推奨 : デザイ ン解析レポー ト (report_design_analysis) を実行し て タ イ ミ ング レポー ト を作成し ます。 このレポー ト に、 ク ロ ッ ク スキ ュー データに関する情報が含まれます。 ク ロ ッ ク ネ ッ ト に可能な ク ロ ッ ク スキ ューがないこ と を確認し て く ださい。

パフ ォーマン スの高いク ロ ッ ク ド メ イ ン (300MHz 以上) の ク ロ ッ ク スキ ューは、 パフ ォーマン スに影響し ます。 通常、 ク ロ ッ ク スキ ューは 500ps 以下であ る必要があ り ます。 た と えば、 500ps は 300MHz ク ロ ッ ク周期の 15% であり 、 ロ ジ ッ ク レベル数 1 または 2 のタ イ ミ ング バジェ ッ ト に対応し ます。 ク ロ ッ ク乗せ換えパスでは、 ク ロ ッ ク で異なる リ ソースが使用され、 共通 ノード がク ロ ッ ク ツ リ ーのさ らに上の方に配置されているので、 スキ ューが大きく なる こ と があ り ます。 SDC ベースのツールでは、 次のよ う にク ロ ッ ク間のタ イ ミ ング解析を実行し ないよ う 指定し ない場合、 すべてのク ロ ッ ク間のパスが解析されます。

set_clock_groups/set_false_path/set_max_delay -datapath_only)

ク ロ ッ ク スキ ューが大きい場合は、 「ク ロ ッ ク スキ ューの削減」 および 「ク ロ ッ ク のばらつきの削減」 を参照し てく ださい。

ロジ ッ ク遅延の削減

Vivado イ ンプ リ メ ンテーシ ョ ンでは、 まず も ク リ テ ィ カルなパスに焦点が置かれますが、 これによ り 配置後または配線後にそれほど困難でなかったパスがク リ テ ィ カルになる こ と があ り ます。 ザイ リ ン ク スでは、 合成後または opt_design 後に 長のパス を特定し て向上する こ と をお勧めし ます。 これは QoR (結果の品質) に も大き く 影響し、タ イ ミ ング ク ロージ ャ を達成する までの配置配線の実行回数を大幅に削減でき ます。

配置前のタ イ ミ ング解析では、 理想的な配置および典型的な ク ロ ッ ク スキューに対応する見積も り 遅延が使用されます。 report_timing、 report_timing_summary、 または report_design_analysis を使用する と、 ロジ ッ ク レベル数が多過ぎるパス、 セル遅延が大きいパス をすばや く 特定でき ます。 これらのパスでは通常、 配置前にはタ イミ ングが満た されないか、 かろ う じてしか満た されません。 「タ イ ミ ング違反の根本的な原因の特定」 に示されている設計手法を使用して、 デザイ ンを イ ンプ リ メ ン ト する前に向上してお く 必要のあ る長いパスを見つけます。

通常のフ ァ ブ リ ッ ク パス

通常のフ ァブ リ ッ ク パスは、 フ ァブ リ ッ ク レジス タ またはシフ ト レジス タ間のパスで、 LUT、 MUXF、 および CARRY の組み合わせを通過し ます。 デザイ ン解析レポー ト のタ イ ミ ング パス特性の表にはロ ジ ッ ク パス ト ポロ ジのサマ リ が示され、 次の問題を特定でき ます。

• 数個の小型の LUT がカスケード接続されている : LUT へのマ ッ プは、 階層、 KEEP_HIERARCHY、DONT_TOUCH、 または MARK_DEBUG 属性が存在するか、 10 以上のフ ァ ンア ウ ト を持つ中間信号の影響を受けます。 opt_design の -remap オプシ ョ ンを使用するか、 -directive AddRemap オプシ ョ ンを使用し て、小型の LUT を ま と めて ロ ジ ッ ク レベル数を削減し てみて く ださ い。 opt_design で 長パス を 適化でき ない場合は、 エラ ボレー ト 済みデザイ ンでパス を解析し、 RTL 記述を変更し ます。

• パスに CARRY セルが 1 つ存在する : CARRY プ リ ミ テ ィ ブは、 カス ケード接続し た場合に QoR に も有益です。 CARRY セルは LUT よ り も配置が困難であ り 、 合成で 1 つの CARRY セルではな く 複数の LUT が使用される よ う にし た方が、 多 く の場合に LUT の構造がよ く な り 、 よ り 柔軟に配置を実行でき ます。 synth_design の -directive FewerCarryChains オプシ ョ ンを使用するか、 PerfThresholdCarry ス ト ラ テジ (プロ ジェ ク ト モード のみ) を使用し て、 ほ と んどの 1 つの CARRY セルを削除し てみて く ださい。

• パスがシフ ト レジス タ (SRL) で終了する : RTL で SRL_STYLE 属性を使用し て、 シフ ト レジス タから 初のレジス タ を取 り 出し ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901) [参照 16] のこのセ ク シ ョンの章を参照し て く ださい。

UltraFast 設計手法ガイ ド 158UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 159: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

• パスがフ ァブ リ ッ ク レジス タ (FD) のク ロ ッ ク イネーブルまたは同期セ ッ ト / リ セ ッ ト で終了する : データ ピン (D) で終了するパスのマージンが大き く 、 ロ ジ ッ ク レベル数が少ない場合は、 RTL で信号に EXTRACT_ENABLE または EXTRACT_RESET 属性を no に設定し ます。 詳細は、 第 4 章の 「第 3 章の 「ロ ジ ック を制御ピンからデータ ピンに移動」 を参照し て く ださい。

ヒ ン ト : 合成後のパスから対応する RTL ソース コード にク ロ スプローブするには、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906) [参照 21] のこ のセ ク シ ョ ンを参照し て く ださい。

専用ブロ ッ クおよびマク ロ プ リ ミ テ ィ ブを含むパスの 適化

専用ブロ ッ クおよびマク ロ プ リ ミ テ ィ ブ (DSP、 RAMB、 FIFO、 GT_CHANNEL など) で開始または終了するパス、 あるいはその間のパスは、 これらのプ リ ミ テ ィ ブには次のよ う なタ イ ミ ング特性があ るので、 特別な注意が必要です。

• 一部のピンでセ ッ ト ア ッ プ/ホール ド /clock-to-output タ イ ミ ング アーク の値が大きい。 た と えば RAMB の clock-to-output 遅延は、 オプシ ョ ンの出力レジス タ な しで 1.5ns、 オプシ ョ ンの出力レジス タ あ り で 0.4ns です。詳細は、 ターゲ ッ ト デバイ ス アーキテ クチャのデータ シー ト を参照し て く ださい。

• 通常の FD/LUT 接続よ り も配線遅延が大きい。

• 通常の FD-FD パス よ り も ク ロ ッ ク スキ ューの変動が大きい。

また、 これらのプ リ ミ テ ィ ブの使用可能性 と サイ ト ロ ケーシ ョ ン も CLB ス ラ イ ス よ り 制限されるので、 その配置はよ り 困難であ り 、 QoR 低下の原因と なる こ と がよ く あ り ます。

そのため、 次が推奨されます。

• 専用ブロ ッ クおよびマ ク ロ プ リ ミ テ ィ ブで開始または終了するパス をパイプラ イ ン処理し ます。

• これらのセルに接続されている組み合わせロ ジ ッ ク の構造を変更し、 ロ ジ ッ ク レベル数を 低でも 1 セル、 またはパイプラ イ ン処理によ り 追加される レ イ テンシが懸念される場合は 2 セル削減し ます。

• 配置前にこれらのパスのセ ッ ト ア ッ プ タ イ ミ ングが 低でも 500ps で満た される よ う にし ます。

• 専用ブロ ッ ク またはマ ク ロ プ リ ミ テ ィ ブを遠 く に配置する必要があ る場合は、 それら多数に接続されている ロジ ッ ク コーンを複製し ます。

ネ ッ ト 遅延の削減

適でないネ ッ ト 遅延は、 困難なデザイ ン または不適切な制約が配置配線アルゴ リ ズムで処理された結果です。も一般的な根本的な問題は、 次の とお り です。

• 物理制約によ り ロ ジ ッ ク が遠 く に配置される。

• デバイ ス使用率が非常に高いために配置の質が低い (ロ ジ ッ ク の分散)。

• フ ァ ンア ウ ト の大きいネ ッ ト を配線するのが困難。

• ネ ッ ト リ ス ト の複雑性およびデバイ スの障害によ り 密集し たエ リ アが存在する。

次のセ ク シ ョ ンに、 解析および解決手法のい く つかを示し ます。

物理制約の確認

すべてのデザイ ンには、 特に I/O ロ ケーシ ョ ン、 場合によ って ク ロ ッ クおよびロ ジ ッ ク配置など、 小限の物理制約が含まれます。 デザイ ンでタ イ ミ ング ク ロージ ャ を実行する準備ができ た時点では I/O ロ ケーシ ョ ンを変更する こと はでき ませんが、 Pblock や LOC などの物理制約は解析する必要があ り ます。 report_design_analysis のタ イミ ング パス特性の表を使用し て、 各ク リ テ ィ カル パス上に Pblock 制約があ るかど う かを判断し ます。 Pblock の詳細は、 タ イ ミ ング レポー ト でパス を選択し て [Properties] ウ ィ ン ド ウで確認でき ます。 Pblock によ り ロ ジ ッ クが分散する場合は、 1 つまたは複数の Pblock 制約を削除する こ と を検討し ます。

UltraFast 設計手法ガイ ド 159UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 160: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

密集の特定

デバイ スの密集は、 ク リ テ ィ カル パスが密集し たエ リ アの中または近 く にあ る場合、 またはデバイ スの使用率が高く 配置されたデザイ ンの配線が困難な場合、 タ イ ミ ング ク ロージ ャの達成が困難になる原因と な る可能性があ り ます。 多 く の場合、 密集によ り 配線の実行時間が大幅に増加し ます。 パスの配線遅延が見積も り よ り も大きい場合は、デザイ ンの密集度を解析し て密集を緩和するのに 適な手法を特定する必要があ り ます。

密集エ リ アおよび密集レベルの定義

ザイ リ ン ク ス FPGA の配線アーキテ クチャは、 左右上下の各方向へのさ まざまな長さのイ ン ターコネ ク ト リ ソースで構成されます。 密集エ リ アは、 特定の方向へのイ ン ターコネ ク ト リ ソース使用率が 100% に近いか 100% を超えている、 隣接し た イ ン ターコネ ク ト タ イル (INT_XnYm) または CLB タ イル (CLE_M_XnYm) を含む 小の矩形 と し てレポー ト されます。 密集レベルは、 矩形の 1 辺の長さに対応する正の整数です。 次の図に、 UltraScale デバイ スでの密集エ リ アのク ロ ッ ク領域に対する相対サイ ズを示し ます。

密集レベルの範囲

ツールでレポー ト される密集レベルは、 次の表に示すよ う に定義されます。

注記 : 密集レベルが 5 以上の場合、 QoR に影響する こ と がほ と んどで、 配線の実行時間が常に長 く な り ます。

X-Ref Target - Figure 5-8

図 5-8 : UltraScale デバイスでの密集レベルと エ リ ア

表 5-4 : 密集レベルの範囲

レベル エ リ ア 密集度 QoR への影響

1、 2 2x2、 4x4 な し な し

3、 4 8x8、 16x16 低 QoR が低下する可能性あ り

5 32x32 中 QoR が低下する可能性大

6 64x64 高 配線が困難

7、 8 128x128、 256x256 不可能 配線不可能であ る可能性大

UltraFast 設計手法ガイ ド 160UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 161: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

[Device] ウ ィ ン ド ウでの CLB ご との配線密集度

CLB ご と の配線の密集度は見積も り に基づいてお り 、 実際の配線には基づいていません。 配置後または配線後に [Device] ウ ィ ン ド ウ を右ク リ ッ ク し て [Metric] を ク リ ッ ク し、 [Vertical routing congestion per CLB] および [Horizontal routing congestion per CLB] を ク リ ッ クする と、 この密集 メ ト リ ク ス を表示でき ます。 これによ り 、 デバイ ス上の密集し ている部分を全体的にすばや く 目で確認でき ます。 次の図に、 使用率が高 く 、 ネ ッ ト リ ス ト が複雑なために密集が発生し ている配置済みデザイ ンを示し ます。

配置ログでの密集のレポー ト

配置では、 異なる フ ェーズを通し て密集が予測され、 密集し たエ リ アのロ ジ ッ クが分散されます。 これによ り 、 イン ターコネ ク ト の使用率が削減されて配線性が向上し、 配線遅延の見積も り 値と実際の値の相関性も向上し ます。ただし、 使用率が高いなどの理由で密集を緩和でき ない場合は、 配置で密集の詳細は表示されず、 次のよ う な警告メ ッ セージが表示されます。

WARNING: [Place 46-14] The placer has determined that this design is highly congested and may have difficulty routing.Run report_design_analysis -congestion for a detailed report.

これは QoR に影響する可能性が高 く 、 配線に進む前に密集の原因 と なっている問題を解決し てお く こ と をお勧めします。 メ ッ セージに記載されている よ う に、 report_design_analysis コマン ド を使用し て実際の密集レベルをレポー ト し、 密集エ リ アの場所 と同じエ リ アに配置されている ロ ジ ッ ク を特定し て く ださい。

X-Ref Target - Figure 5-9

図 5-9 : [Device] ウ ィ ン ド ウで密集メ ト リ クスを表示し た例

UltraFast 設計手法ガイ ド 161UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 162: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

配線ログでの密集のレポー ト

配線では、 密集レベルおよび特定 リ ソースの配線の困難度に応じ て追加の メ ッ セージが表示されます。 配線では、中間タ イ ミ ング サマ リ も複数回生成されます。 初の中間タ イ ミ ング サマ リ はすべてのク ロ ッ ク が配線された後に生成され、 配置後のタ イ ミ ング解析に類似し た WNS/TNS/WHS/TNS の値が示されます。 次の中間タ イ ミ ング サマ リは、 初期配線の後にレポー ト されます。 タ イ ミ ングが大幅に低下し た場合は、 QoR がホール ド違反の修正または密集の影響を受けています。

密集レベルが 4 以上の場合は、 密集の初期予測の表が生成され、 密集の特性の詳細が示されます。

• [Global Congestion] は、 配置の密集がどのよ う に予測されるかに似てお り 、 すべてのイ ン ターコネ ク ト タ イプに基づいています。

• [Long Congestion] は、 特定方向の長いイ ン ターコネ ク ト の使用率のみを考慮し ています。

• [Short Congestion] は、 特定方向のその他すべてのイ ン ターコネ ク ト の使用率を考慮し ています。

32x32 (レベル 5) 以上の密集エ リ ア (次の表で黄色でハイ ラ イ ト ) は、 QoR および配線性に影響する可能性が高 く な ります。 長いイ ン ターコネ ク ト が密集し ている と短いイ ン ターコネ ク ト の使用量が多 く な り 、 配線遅延が大き く な ります。 短いイ ン ターコネ ク ト の密集は通常、 実行時間が長 く なる原因 と な り 、 タ イルの割合が 5% を超え る場合、QoR が低下する可能性が高 く な り ます (次の表で赤でハイ ラ イ ト )。

配線の Global Iteration フ ェーズ中、 オーバーラ ッ プがな く 、 セ ッ ト ア ッ プおよびホール ド の両方のタ イ ミ ングを満たす (ホール ド違反の修正が優先) 有効な ソ リ ューシ ョ ンが検索されます。 有効な ソ リ ューシ ョ ンが見つから ない場合は、 次の例に示すよ う に、 有効な配線ソ リ ューシ ョ ンが見つかる までタ イ ミ ングの 適化は停止されます。

Phase 4.1 Global Iteration 0 Number of Nodes with overlaps = 1157522 Number of Nodes with overlaps = 131697 Number of Nodes with overlaps = 28118 Number of Nodes with overlaps = 10971 Number of Nodes with overlaps = 7324WARNING: [Route 35-447] Congestion is preventing the router from routing all nets. The router will prioritize the successful completion of routing all nets over timing optimizations.

有効な配線ソ リ ューシ ョ ンが見つかる と、 タ イ ミ ング 適化が再び有効にな り ます。

X-Ref Target - Figure 5-10

図 5-10 : 密集の初期予測の表

INFO: [Route 35-449] Initial Estimated Congestion________________________________________________________________________| | Global Congestion | Long Congestion | Short Congestion || |___________________|___________________|___________________|| Direction | Size | % Tiles | Size | % Tiles | Size | % Tiles ||___________|________|__________|________|__________|________|__________|| NORTH| 16x16| 1.95| 32x32| 1.68| 32x32| 11.58||___________|________|__________|________|__________|________|__________|| SOUTH| 8x8| 1.90| 16x16| 2.00| 32x32| 9.23||___________|________|__________|________|__________|________|__________|| EAST| 8x8| 0.93| 2x2| 0.20| 32x32| 9.14||___________|________|__________|________|__________|________|__________|| WEST| 8x8| 1.37| 2x2| 0.15| 32x32| 14.50||___________|________|__________|________|__________|________|__________|

UltraFast 設計手法ガイ ド 162UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 163: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

CLB の配線密集も レポー ト され、 密集度が高い CLB の名前が示されます。 次に、 情報 メ ッ セージの例を示し ます。

INFO: [Route 35-443] CLB routing congestion detected. Several CLBs have high routing utilization, which can impact timing closure. Top ten most congested CLBs are: CLEL_L_X29Y384 CLEL_R_X29Y384 CLE_M_X43Y107 CLEL_R_X43Y107 CLEL_L_X31Y389 CLEL_R_X31Y389

有効な配線ソ リ ューシ ョ ンが見つから ない場合、 次に示すよ う な ク リ テ ィ カル警告 メ ッ セージが複数表示され、 完全に配線されていないネ ッ ト の数およびオーバーラ ッ プし ている イ ン ターコネ ク ト の数が示されます。

CRITICAL WARNING: [Route 35-162] 44084 signals failed to route due to routing congestion. Please run report_route_status to get a full summary of the design's routing.

CRITICAL WARNING: [Route 35-2] Design is not legally routed. There are 91566 node overlaps.

ヒ ン ト : 配線中はネ ッ ト が密集エ リ アの周辺に分散され、 デザイ ンが正常に配線された場合にロ グ フ ァ イルにレポー ト される 終的な密集レベルが削減されます。

デザイ ン解析レポー ト の密集レポー ト

密集があ るかど う かを調べるには、 [Report Design Analysis] コマン ド を使用し て密集レポー ト を生成する と、 デバイスの密集し たエ リ ア と それらのエ リ アにあ るデザイ ン モジュールの名前を確認でき ます。 こ のレポー ト には、 配置および配線アルゴ リ ズムによ り 特定された密集エ リ ア示す複数の密集に関する表が含まれます。 次に、 密集の表の例を示し ます。

[Placed Maximum]、 [Average Initial Router Maximum]、 および [Router Maximum] セ ク シ ョ ンには、 上下左右の各方向において も密集し たエ リ アに関する情報が示されます。 レポー ト の密集ウ ィ ン ド ウの 1 つを選択する と、 対応する密集エ リ アが [Device] ウ ィ ン ド ウでハイ ラ イ ト されます。 密集レベルは、 「密集レベルの範囲」 の表に基づ く ウ ィ ンド ウのサイ ズで示されます。 密集の割合は、 その密集ウ ィ ン ド ウでの配線 リ ソースの使用率を示し ます。 密集ウ ィン ド ウに含まれる階層セルの上位 3 つが リ ス ト され、 選択する と [Device] または [Schematic] ウ ィ ン ド ウでハイ ラ イト されます。 密集ウ ィ ン ド ウでのセルの使用率もパーセン ト で示されます。

密集エ リ アに存在する階層セルを特定し た ら、 このガイ ド の後の方で説明する密集を緩和する手法を使用し て、 デザイ ンの全体的な密集を削減し ます。

デザイ ン解析レポー ト の密集レポー ト を作成し て解析する方法の詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンを参照し て く ださい。

X-Ref Target - Figure 5-11

図 5-11 : 密集の表

UltraFast 設計手法ガイ ド 163UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 164: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

デザイ ン解析レポー ト の複雑性レポー ト

複雑性レポー ト には、 Rent 指数、 平均フ ァ ンア ウ ト 、 上位または階層セルでの 下位セル タ イプの分布が示されます。 Rent 指数は、 小カ ッ ト アルゴ リ ズムを使用し てデザイ ンを再帰的に分割し た場合のネ ッ ト リ ス ト パーテ ィシ ョ ンのポー ト 数 と セル数の関係を示し ます。 グ ローバル配置中に配置プロ グ ラ ムによ り 使用される アルゴ リ ズムと同様のアルゴ リ ズムによ り 算出されます。 そのため、 デザイ ンの階層がグ ローバル配置中に検出される物理パーテ ィ シ ョ ン と よ く 一致し ている場合に特に、 配置の課題を示す指標 と し て使用でき ます。

Rent 指数が大きいデザイ ンは、 密に接続された ロ ジ ッ ク のグループがほかのグループ と も密に接続されている こ とを示し ます。 これは、 グ ローバル配線 リ ソースの使用率が高 く 、 配線の複雑性が高いこ と を意味し ます。 このレポー ト に示される Rent 指数は、 未配置および未配線のネ ッ ト リ ス ト に対し て算出されます。 配置後には Rent 指数は論理パーテ ィ シ ョ ンではな く 物理パーテ ィ シ ョ ンに基づ く ので、 同じデザイ ンでも配置後の Rent 指数は異なる場合があ り ます。

次のオプシ ョ ンを使用する と、 デザイ ン解析レポー ト は複雑性モード で生成されます。

• [Report Design Analysis] ダ イ ア ロ グ ボ ッ ク スの [Options] タブで [Complexity] をオンにする。

• report_design_analysis Tcl コマン ド を -complexity オプシ ョ ンを使用し て実行する。

次の図に、 複雑性レポー ト の例を示し ます。

これらの メ ト リ ク スの典型的な範囲を次に示し ます。

• Rent 指数 (Rent) :

° 0.0 ~ 0.65 : 複雑性は低から通常で、 問題が発生する こ と は予測されません。

° 0.65 ~ 0.85 : 複雑性は高い と考慮されます (特に合計イ ン ス タ ン ス数が 25,000 個を超え る場合)。

° 0.85 以上 : 複雑性は非常に高 く 、 イ ン ス タ ン ス数も多い場合は、 イ ンプ リ メ ンテーシ ョ ンでデザイ ンにエラーが発生する可能性があ り ます。

• 平均フ ァ ンアウ ト (Average Fanout) :

° 4 未満 : 通常であ る と考え られます。

° 4 ~ 5 : 密集を発生させずにデザイ ンを配置する こ と は困難です。 SSI デバイ スでイ ン ス タ ン ス数の合計が 10 個を超え る場合は、 1 つの SLR に収ま る配置ソ リ ューシ ョ ン または 2 つの SLR にまたがる配置ソ リ ューシ ョ ンを見つけるのが困難にな り ます。

° 5 以上 : イ ンプ リ メ ンテーシ ョ ン中にデザイ ンでエラーが発生する可能性があ り ます。

大型で重要度の高いモジュールで Rent 指数または平均フ ァ ンア ウ ト が大きい場合は、 対処が必要です。 小型のモジュール、 特に合計イ ン ス タ ン ス数が 10,000 個未満のモジュールの場合は、 Rent 指数および平均フ ァ ンア ウ ト が大き く て も問題な く 配置配線でき ます。 そのため、 Rent 指数および平均フ ァ ンア ウ ト と共に [Total Instances] 列も確認する必要があ り ます。

デザイ ン解析レポー ト の複雑性レポー ト を作成し て解析する方法の詳細は、『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンを参照し て く ださい。

X-Ref Target - Figure 5-12

図 5-12 : 複雑性レポー ト

UltraFast 設計手法ガイ ド 164UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 165: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ク ロ ッ ク スキューの削減

フ ァ ンア ウ ト の大きいク ロ ッ ク、 小さい伝搬遅延、 小さいク ロ ッ ク スキ ューなどの要件を満たすため、 ザイ リ ン クス デバイ スでは、 専用配線 リ ソース を使用し て一般的な ク ロ ッ キング方法をサポー ト し ます。 ク ロ ッ ク スキ ューは、 高周波数ク ロ ッ ク のタ イ ミ ング バジェ ッ ト を大幅に削減し、 またデバイ スの使用率が高い場合にセ ッ ト ア ッ プと ホール ド の両方を満たすためにイ ンプ リ メ ンテーシ ョ ン ツールに過剰な負荷がかか り ます。

典型的な ク ロ ッ ク スキ ューは、 ソース ク ロ ッ ク とデステ ィ ネーシ ョ ン ク ロ ッ ク が同じ タ イ ミ ング パスで 300ps 未満、 バラ ン スが取られた同期ク ロ ッ ク間のタ イ ミ ング パスで 500ps 未満です。 I/O 列または SLR 境界を またぐ場合、ク ロ ッ ク スキ ューの変動は大き く な り 、 それがタ イ ミ ング ス ラ ッ ク に反映され、 イ ンプ リ メ ンテーシ ョ ン ツールで

適化されます。 バラ ン スが取られていないク ロ ッ ク ツ リ ー間または共通ノ ード のない ク ロ ッ ク間のタ イ ミ ング パスでは、 ク ロ ッ ク スキ ューは数ナ ノ 秒になる こ と があ り 、 タ イ ミ ング ク ロージャ を達成するのがほぼ不可能にな ります。

ク ロ ッ ク スキ ューを削減するには、 次を実行し ます。

1. すべてのク ロ ッ ク の関連性を調べ、 同期ク ロ ッ ク パスのみがタ イ ミ ング解析されて 適化される よ う にし ます (第 3 章の 「ク ロ ッ ク グループおよび CDC 制約の定義」 を参照)。

2. ク ロ ッ ク ツ リ ー ト ポロ ジ と、 見積も り よ り も大きいク ロ ッ ク スキ ューの影響を付ける タ イ ミ ング パスの配置を確認し ます。

3. 次のセ ク シ ョ ンで説明されている よ う に、 ク ロ ッ ク スキ ューを削減する手法を特定し ます。

UltraFast 設計手法ガイ ド 165UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 166: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ソース ク ロ ッ ク とデステ ィ ネーシ ョ ン ク ロ ッ クが同じ タ イ ミ ング パスの使用

ソース ク ロ ッ ク とデステ ィ ネーシ ョ ン ク ロ ッ ク が同じで同じ ク ロ ッ ク バッ フ ァーによ り 駆動される タ イ ミ ング パスでは、 通常スキ ューは非常に小さ く な り ます。 これは、 次の図に示すよ う に、 共通ノ ード が リ ーフ ク ロ ッ ク ピンの近の専用ク ロ ッ ク ネ ッ ト ワーク に配置されているからです。

共通 ノード はデザイ ンの物理データベースにのみ含まれ、 論理ビ ューには含まれないので、 タ イ ミ ング レポー ト のク ロ ッ ク パス を解析し て も、 共通ノ ード の前後の遅延は個別には示されません。 そのため、 共通 ノード は Vivado IDE の [Device] ウ ィ ン ド ウで [Routing Resources] をオンにする と表示されますが、 [Schematic] ウ ィ ン ド ウには表示されません。 タ イ ミ ング レポー ト では、 スキ ュー算出のサマ リ と、 ソース ク ロ ッ ク遅延、 デステ ィ ネーシ ョ ン ク ロ ック遅延、 共通 ノード を調整する Clock Pessimism Removal (CPR) のみが示されます。

同期ク ロ ッ ク乗せ換えパスの制限

別のク ロ ッ ク バッ フ ァーで駆動される同期ク ロ ッ ク間のタ イ ミ ング パスでは、 共通 ノード がク ロ ッ ク バッ フ ァーの前にあ るので、 スキ ューが大き く な り ます。 つま り 、 共通 ノード が リ ーフ ク ロ ッ ク ピンから離れてお り 、 タ イ ミ ング解析で不必要に悪い見積も り 部分が大き く な り ます。 バラ ン スの取られていない ク ロ ッ ク ツ リ ー間のタ イ ミ ング パスでは、 ソース ク ロ ッ ク パス とデステ ィ ネーシ ョ ン ク ロ ッ ク パス間の遅延差によ り 、 ク ロ ッ ク スキ ューがさ らに大き く な り ます。 正のスキ ューは、 セ ッ ト ア ッ プ タ イ ムを満たすのに役立つこ と も あ り ますが、 ホール ド タ イ ムのク ロージャには悪影響を与え る こ と があ り ます (逆の場合も あ り )。

次の図では、 3 つのク ロ ッ ク が使用されてお り 、 ク ロ ッ ク内のパス と ク ロ ッ ク間のパスが複数あ り ます。 MMCM で駆動される 2 つのク ロ ッ ク の共通 ノード は、 MMCM の外にあ り ます (赤色のひし形)。 MMCM 入力ク ロ ッ ク と MMCM 出力ク ロ ッ ク間のパスの共通 ノード は、 MMCM の前のネ ッ ト 上にあ り ます (青色のひし形)。 MMCM 入力クロ ッ ク と MMCM 出力ク ロ ッ ク間のパスでは、 clkin_buf BUFGCE の場所と MMCM の補正モード によ って、 ク ロ ッ ク スキ ューが非常に大き く なる こ と があ り ます。

X-Ref Target - Figure 5-13

図 5-13 : 共通ノ ー ドが緑色のネ ッ ト に配置された典型的な同期ク ロ ッキング ト ポロジ

UltraFast 設計手法ガイ ド 166UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 167: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ザイ リ ン ク スでは、 ク ロ ッ ク スキ ューが許容範囲内であって も、 同期ク ロ ッ ク乗せ換えの数を制限する こ と をお勧めし ます。 また、 スキ ューが異常に大き く 、 削減する こ と が不可能な場合は、 これらのパス を非同期と し て扱い、非同期ク ロ ッ ク乗せ換え回路を イ ンプ リ メ ン ト し て タ イ ミ ング例外を追加する こ と をお勧めし ます。

非同期ク ロ ッ クの制限

ソース ク ロ ッ ク とデステ ィ ネーシ ョ ン ク ロ ッ ク が異なるプラ イマ リ ク ロ ッ ク から供給されている タ イ ミ ング パスまたは共通 ノード のないタ イ ミ ング パスは、 非同期ク ロ ッ ク と し て扱 う 必要があ り ます。 こ の場合、 スキ ューが極端に大き く な り 、 タ イ ミ ング ク ロージ ャ を達成するのが不可能にな り ます。

非同期ク ロ ッ ク間のすべてのタ イ ミ ング パス を調べ、 次を確認する必要があ り ます。

• 適切な非同期ク ロ ッ ク乗せ換え回路 (report_cdc)

• タ イ ミ ング解析を無視する タ イ ミ ング例外定義 (set_clock_groups、 set_false_path) またはスキ ューを無視する タ イ ミ ング例外定義 (set_max_delay -datapath_only)

ク ロ ッ ク関連性レポー ト (report_clock_interaction) を使用する と、 非同期で適切なタ イ ミ ング例外が設定されていないク ロ ッ ク を特定するのに役立ちます。 CDC パス制約の詳細は、 第 3 章の 「ク ロ ッ ク グループおよび CDC 制約の定義」 を参照し て く ださい。

X-Ref Target - Figure 5-14

図 5-14 : MMCM の入力および出力上に共通ノ ー ド を持つ同期 CDC パス

UltraFast 設計手法ガイ ド 167UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 168: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ク ロ ッ ク スキューを削減するための一般的な手法

7 シ リ ーズ と UltraScale デバイ スのク ロ ッ キング アーキテ クチャは異なるので、 第 3 章の 「ク ロ ッ キング ガイ ド ラ イン」 を参照し てそれぞれのアーキテ クチャでのベス ト プラ ク テ ィ ス を学び、 デザイ ンがガイ ド ラ イ ンに従っているかを確認する必要があ り ます。

ヒ ン ト : UltraScale デバイ スのク ロ ッ キング アーキテ クチャの柔軟性を考慮し、 report_methodology コマン ド には 適な ク ロ ッ キング ト ポロ ジを作成するのに役立つチェ ッ ク が含まれています。

次の手法は、 一般的な状況で使用でき ます。

• 不要なバッ フ ァーを削除するか、 次の図に示すよ う にバッ フ ァーを並列に接続する こ と によ り 、 カスケード接続された ク ロ ッ ク バッ フ ァー間のタ イ ミ ング パス を回避し ます。

X-Ref Target - Figure 5-15

図 5-15 : 適切な CDC 回路が設定された共通ノ ー ド のない非同期 CDC パス

X-Ref Target - Figure 5-16

図 5-16 : カスケー ド接続された BUFG を並列に接続し直し た同期ク ロ ッキング ト ポロジ

UltraFast 設計手法ガイ ド 168UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 169: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

• 次の図に示すよ う に、 並列ク ロ ッ ク バッ フ ァーを 1 つのク ロ ッ ク バッ フ ァーに統合し、 ク ロ ッ ク バッ フ ァーのク ロ ッ ク イ ネーブル ロ ジ ッ ク を対応する シーケンシャル セルのイネーブル ピンに接続し ます。 一部のク ロ ック がバッ フ ァーのビル ト イ ン分周器によ り 分周されている場合は、 ク ロ ッ ク イネーブル ロ ジ ッ ク を使用し て同等の分周を イ ンプ リ メ ン ト し、 必要に応じ てマルチサイ クル パス タ イ ミ ング例外を適用し ます。 ダウ ン ス トリ ームのロ ジ ッ ク で立ち上が り ク ロ ッ ク エ ッ ジ と立ち下が り ク ロ ッ ク エ ッ ジの両方が使用される場合、 または消費電力が重要な要素であ る場合は、 この手法は適切でないこ と があ り ます。

• ク ロ ッ ク パスにあ る LUT または組み合わせロ ジ ッ クは削除し ます。 ク ロ ッ ク パスに LUT または組み合わせロジ ッ ク があ る と、 配置中のク ロ ッ ク遅延 と ク ロ ッ ク スキ ューが予測不可能な ものにな り 、 QoR が低下し ます。また、 ク ロ ッ ク パスの一部が汎用イ ン ターコネ ク ト を使用し て配線されている と、 グ ローバル ク ロ ッ ク リ ソース を使用し ている場合よ り も ノ イ ズの影響を受けやす く な り ます。 組み合わせロ ジ ッ クは通常、 適でない クロ ッ ク ゲーテ ィ ングの変換によ り 作成されるので、 ク ロ ッ ク バッ フ ァーまたはシーケンシャル セルに接続されている ク ロ ッ ク イネーブル ロ ジ ッ ク に移動でき ます。

次の図では、 初の BUFG (clk1_buf) が LUT3 で使用され、 ゲーテ ッ ド ク ロ ッ ク が作成されています。

X-Ref Target - Figure 5-17

図 5-17 : 並列ク ロ ッ ク バッ フ ァーを 1 つのバッ フ ァーに統合し た同期ク ロ ッキング ト ポロジ

X-Ref Target - Figure 5-18

図 5-18 : ク ロ ッ ク ネ ッ ト ワークでローカル配線が使用されるために発生するスキュー

UltraFast 設計手法ガイ ド 169UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 170: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

7 シ リーズ デバイスでスキューを向上する手法

7 シ リ ーズ と UltraScale デバイ スのク ロ ッ ク アーキテ クチャは異な り ますが、 どち らのフ ァ ミ リ にも共通する ク ロ ック に関する考慮事項があ り ます。

• プロ ダ ク シ ョ ン 7 シ リ ーズ デザイ ンでは、 CLOCK_DEDICATED_ROUTE=FALSE 制約は使用し ないで く ださい。CLOCK_DEDICATED_ROUTE=FALSE は、 デバッ グ用にク ロ ッ ク ト ポロ ジを表示する ためにデザイ ンで配置配線を完了するためにク ロ ッ ク エラーを一時的に回避する場合にのみ使用し て く ださ い。 フ ァブ リ ッ ク イ ン ターコネ ク ト を使用し て配線された ク ロ ッ ク パスでは、 ク ロ ッ ク スキ ューが大き く な り 、 ス イ ッチ ノ イ ズの影響を受ける こ と があ るので、 パフ ォーマン スが悪 く なった り 、 デザイ ンが機能し な く なる可能性があ り ます。 次の図の右側には専用ク ロ ッ ク配線があ り 、 左側では専用配線はク ロ ッ ク で使用でき ないよ う になっています。

• リ ージ ョ ナル ク ロ ッ ク バッ フ ァー (BUFR、 BUFIO、 BUFH) で複数のク ロ ッ ク領域にあ る ロ ジ ッ ク を駆動し ないで く ださい。 各ク ロ ッ ク領域のク ロ ッ ク ツ リ ー分岐間でのスキ ューが非常に大き く な り ます。 不適切な LOC または Pblock 制約を削除し て、 この状況を解消し て く ださい。

UltraScale および UltraScale+ デバイスでのスキューの向上

• MMCM または PLL を使用し て BUFG_GT ク ロ ッ ク の単純な分周を実行し ないよ う にし ます。 BUFG_GT セルには入力ク ロ ッ ク を分周する機能があ り ます。 次の図に、 MMCM リ ソース を節約し、 GTHE3_CHANNEL セルからの 2 つのク ロ ッ ク に対し てバラ ン スの取れた ク ロ ッ ク ツ リ ーを イ ンプ リ メ ン ト する方法を示し ます。

X-Ref Target - Figure 5-19

図 5-19 : フ ァ ブ リ ッ ク ク ロ ッ ク配線と専用ク ロ ッ ク配線の比較

X-Ref Target - Figure 5-20

図 5-20 : UltraScale BUFG_GT を使用し てバラ ンスの取れたク ロ ッ ク ツ リーを イ ンプ リ メ ン ト

UltraFast 設計手法ガイ ド 170UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 171: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

• 配置配線中の CLOCK_ROOT と配線が一致する よ う にする ため、 ク リ テ ィ カル同期ク ロ ッ ク の ド ラ イバー ネ ット に CLOCK_DELAY_GROUP を設定し ます。 こ の制約が適用される よ う にする ためには、 ク ロ ッ ク バッ フ ァーを同じセルで駆動する必要があ り ます。 詳細は、 第 3 章の 「同期 CDC」 を参照し て く ださ い。

• タ イ ミ ング パスでタ イ ミ ングを満たすこ と が困難で、 スキ ューが見積も り よ り も大きい場合は、 タ イ ミ ング パスが SLR または I/O 列を またいでいる可能性があ り ます。 その場合は、 Pblock などの物理制約を使用し て ソース とデステ ィ ネーシ ョ ンを 1 つの SLR に配置するか、 I/O 列を またがないよ う にし ます。

• 高速同期ク ロ ッ ク乗せ換え タ イ ミ ング パスでは、 MMCM、 PLL などのク ロ ッ ク調整ブロ ッ ク を LOC 制約を使用し て ク ロ ッ ク ロード の中央に配置する と、 タ イ ミ ングを満た しやす く な り ます。 ク ロ ッ ク ネ ッ ト ワークの遅延を削減する と、 ク ロ ッ ク乗せ換えパスの不必要に悪い見積も り 部分が小さ く な り ます。

• CLOCK_DEDICATED_ROUTE=FALSE 制約が設定された ク ロ ッ ク ネ ッ ト がグ ローバル ク ロ ッ ク リ ソース を使用し て配線されている こ と を確認し ます。 CLOCK_DEDICATED_ROUTE サポー ト の詳細は、 第 3 章の 「ク ロ ッ ク制約」 を参照し て く ださい。 ク ロ ッ ク ネ ッ ト がフ ァブ リ ッ ク イ ン ターコネ ク ト を使用し て配線されている場合は、 この状況を解決するのに必要なデザイ ンの変更またはク ロ ッ ク配置制約を特定し、 イ ンプ リ メ ンテーシ ョン ツールでグ ローバル ク ロ ッ ク リ ソースが使用される よ う にし ます。 フ ァブ リ ッ ク イ ン ターコネ ク ト を使用し て配線された ク ロ ッ ク パスでは、 ク ロ ッ ク スキ ューが大き く なった り ス イ ッチ ノ イ ズの影響を受けた り するこ と があ るので、 パフ ォーマン スが悪 く なった り 、 デザイ ンが機能し な く なる可能性があ り ます。

ク ロ ッ クのばらつきの削減

ク ロ ッ ク のばらつきは、 理想的な ク ロ ッ ク に対するばらつきの量です。 ユーザー指定の外部ク ロ ッ クのばらつき (set_clock_uncertainty)、 システム ジ ッ ター、 またはデューテ ィ サイ クルの歪みが原因で発生し ます。MMCM や PLL などのク ロ ッ ク調整ブロ ッ ク でも、 離散ジ ッ ター、 複数の関連ク ロ ッ クが使用される場合の位相エラーの形でク ロ ッ ク のばらつきが生成されます。

Clocking Wizard では、 指定のデバイ スの正確なばらつきデータが提供され、 異なる ト ポロ ジを比較する ためにさ まざまな MMCM ク ロ ッ キング コ ンフ ィ ギ ュ レーシ ョ ンを生成でき ます。 ターゲ ッ ト アーキテ クチャで 適な結果を得るには、 以前のアーキテ クチャからのレガシ ク ロ ッ ク生成ロ ジ ッ ク を使用するのではな く 、 Clocking Wizard を使用し て ク ロ ッ ク生成ロ ジ ッ ク を再生成する こ と をお勧めし ます。

MMCM 設定を使用し たク ロ ッ クのばらつきの削減

MMCM を周波数合成用に設定する際、 ターゲ ッ ト 周波数を生成する M (逓倍値) と D (分周値) の組み合わせが複数ある場合があ り ます。 デバイ スの 大 VCO 周波数以下で 高の VCO 周波数が得られる M および D の値を使用すると、 ク ロ ッ ク のばらつきが 小限にな り ます。

次の MMCM 周波数合成の例では、 62.5MHz の入力ク ロ ッ ク を使用し て約 40MHz の出力ク ロ ッ ク を生成し ています。2 つのソ リ ューシ ョ ンがあ り ますが、 VCO 周波数が高いほ う の MMCM_2 の方がジ ッ ターと位相エラーが削減されるので、 ク ロ ッ ク のばらつきが小さ く な り ます。

ヒ ン ト : IP カ タ ロ グの Clocking Wizard を使用する場合は、 [Jitter Optimization] で [Minimize Output Jitter] をオンにし てく ださい。 この設定によ り 、 高い方の VCO 周波数が選択されます。

表 5-5 : MMCM 周波数合成の例

MMCM_1 MMCM_2

入力ク ロ ッ ク 62.5MHz 62.5MHz

出力ク ロ ッ ク 40.0 MHz 39.991 MHz

CLKFBOUT_MULT_F 16 22.875

CLKOUT0_DIVIDE_F 25 35.750

VCO 周波数 1000.000 MHz 1429.688

ジ ッ ター (ps) 167.542 128.632

位相エラー (ps) 384.432 123.641

UltraFast 設計手法ガイ ド 171UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 172: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

BUFGCE_DIV を使用し たク ロ ッ クのばらつきの削減

UltraScale デバイ スでは、 BUFGCE_DIV セルを使用し て、 MMCM 位相エラーを取 り 除 く こ と によ り 同期ク ロ ッ ク乗せ換えのク ロ ッ ク のばらつき を削減でき ます。 た と えば、 300MHz および 150MHz ク ロ ッ ク ド メ イ ン間のパスがあり 、 両方のク ロ ッ ク が同じ MMCM で生成されている と し ます。

この場合、 セ ッ ト ア ッ プおよびホール ド解析の両方で、 ク ロ ッ ク のばらつきに 120ps の位相エラーが含まれます。150MHz ク ロ ッ ク を MMCM を使用し て生成する代わ り に、 MMCM の 300MHz 出力に BUFGCE_DIV を接続し、 クロ ッ ク を 2 で分周でき ます。 適な結果を得るには、 次の図に示すよ う に、 300MHz ク ロ ッ ク にも BUFGCE_DIV を分周な しで使用し、 150MHz ク ロ ッ ク遅延に一致させる必要があ り ます。

新しい ト ポロ ジには、 次の特徴があ り ます。

• セ ッ ト ア ッ プ解析では、 ク ロ ッ ク のばらつきに MMCM 位相エラーは含まれず、 120ps 削減されています。

• ホール ド解析では、 ク ロ ッ ク のばらつきはあ り ません (同じエ ッ ジのホール ド解析の場合のみ)。

• 共通 ノード がバッ フ ァーの近 く に移動し、 不必要に悪い見積も り 部分が削減されます。

2 つの ク ロ ッ ク ネ ッ ト に CLOCK_DELAY_GROUP 制約を適用する こ と によ り 、 ク ロ ッ ク パスの配線が一致し ます。詳細は、 第 3 章の 「同期 CDC」 を参照し て く ださい。

次の表では、 UltraScale の同期 CDC タ イ ミ ング パスのセ ッ ト ア ッ プおよびホール ド 解析での ク ロ ッ クのばらつき を比較し ています。

X-Ref Target - Figure 5-21

図 5-21 : UltraScale の同期 CDC タ イ ミ ング パスのク ロ ッ ク ト ポロジの向上

表 5-6 : UltraScale の同期 CDC タ イ ミ ング パスのセ ッ ト ア ッ プおよびホールド解析における ク ロ ッ クのばらつきの比較

セ ッ ト ア ッ プ解析 MMCM で生成された 150MHz ク ロ ッ ク BUFGCE_DIV で生成された 150MHz ク ロ ッ ク

ト ータル システム ジ ッ ター (TSJ) 0.071ns 0.071ns

離散ジ ッ ター (DJ) 0.115ns 0.115ns

位相エラー (PE) 0.120ns 0.000ns

ク ロ ッ ク のばらつき 0.188ns 0.068ns

ホールド解析 MMCM で生成された 150MHz ク ロ ッ ク BUFGCE_DIV で生成された 150MHz ク ロ ッ ク

ト ータル システム ジ ッ ター (TSJ) 0.071ns 0.000ns

離散ジ ッ ター (DJ) 0.115ns 0.000ns

位相エラー (PE) 0.120ns 0.000ns

ク ロ ッ ク のばらつき 0.188ns 0.000ns

UltraFast 設計手法ガイ ド 172UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 173: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

一般的な タ イ ミ ング ク ロージャ手法

次の手法は、 困難なデザイ ンでデザイ ン ク ロージ ャ を達成するのに役立ちます。 これらの手法を試す前に、 デザインが適切に制約されてお り 、 違反が大きいパスに影響する主な問題を特定する必要があ り ます。

制御セ ッ ト の削減

通常、 リ セ ッ ト やク ロ ッ ク イネーブルなどの制御信号についてはそれほど考慮されません。 リ セ ッ ト が必要かど うかを判断せずに、 HDL コード を if reset 文で開始する例がよ く 見られます。 リ セ ッ ト およびク ロ ッ ク イネーブルはすべてのレジス タでサポー ト されますが、 これらの使用が 終的な イ ンプ リ メ ンテーシ ョ ンのパフ ォーマン ス、使用率、 および消費電力に大き く 影響し ます。

制御セ ッ ト は、 1 つのシーケンシ ャル セルで使用される ク ロ ッ ク、 イネーブル、 およびセ ッ ト / リ セ ッ ト のグループです。 定数または未使用のイネーブルおよびセ ッ ト / リ セ ッ ト レジス タ も、 制御セ ッ ト を形成し ます。 た と えば、 同じ ク ロ ッ ク に接続されている 2 つのセルであって も、 リ セ ッ ト やク ロ ッ ク イ ネーブルが 1 つのセルにしかない場合は、 2 つのセルの制御セ ッ ト は異なる ものにな り ます。 レジス タは同じか互換性のあ る制御信号を持つ必要があ るので、 制御セ ッ ト の数は、 レジス タ をい く つ一緒に配置でき るかに影響し ます。

• 7 シ リ ーズ デバイ スのス ラ イ ス : 8 つのレジス タで 1 つのク ロ ッ ク、 1 つのセ ッ ト / リ セ ッ ト 、 および 1 つのクロ ッ ク イ ネーブルが共有されます。 定数セ ッ ト / リ セ ッ ト およびク ロ ッ ク イネーブル信号も配線され、 ダ イナミ ッ ク制御信号 と同様に CLB へのパッ ク を制限し ます。

• UltraScale デバイ スの 1/2 ス ラ イ ス : 8 つのレジス タで同じ ク ロ ッ ク、 1 つのオプシ ョ ンのセ ッ ト / リ セ ッ ト 、 および 2 つのク ロ ッ ク イネーブル信号が共有されます。 定数セ ッ ト / リ セ ッ ト は配線されず、 CLB へのパッ ク中に無視されますが、 定数イネーブル信号はダ イナ ミ ッ ク イネーブル信号と同様に処理されます。

CLB へのパッ ク の制限は、 ロ ジ ッ ク の分散 (長いネ ッ ト 遅延) および高いイ ン ターコネ ク ト リ ソース使用率のため、使用率だけでな く 配置 QoR にも悪影響を与えます。 これは主に、 1 つのレジス タに供給される ク ロ ッ ク イネーブルなど、 フ ァ ンア ウ ト が小さい制御信号が多数あ るデザイ ンで考慮する必要があ り ます。

次の表に、 ザイ リ ン ク ス 7 シ リ ーズ FPGA を使用し たデザイ ンで許容される制御セ ッ ト の数に関するガイ ド ラ イ ンを示し ます。 制御セ ッ ト に関する情報は、 次から確認し ます。

• 配置後のテキス ト 形式の使用率レポー ト : report_utilization

• 制御セ ッ ト レポー ト (テキス ト 形式のみ) : report_control_sets -verbose

ヒ ン ト : UltraScale デバイ スでは、 制御セ ッ ト のマ ッ プおよび使用の柔軟性が 7 シ リ ーズよ り も高 く 、 制御セ ッ ト 使用のガイ ド ラ イ ンはそれほど厳し く あ り ませんが、 高のデサイ ン 適化、 配置、 および移植性を得る ため、 7 シリ ーズのガイ ド ラ イ ンに従 う こ と をお勧めし ます。

表 5-7 : 7 シ リーズ FPGA の制御セ ッ ト ガイ ド ラ イ ン

条件 通常許容範囲 解析が必要 デザイ ンの変更を推奨

固有の制御セ ッ ト 数a

a. report_utilization および report_control_sets -verbose を実行し ます。

< ス ラ イ ス合計の 7.5% 未満b

b. ス ラ イ ス数は、 デバイ スの製品表を参照し て く ださい。 た と えば、 XC7VX690T には 108,300 ス ラ イ スが含まれます。

許容 : 108,300 ス ラ イ ス x 7.5% = 8122 制御セ ッ ト

要解析 : 108,300 ス ラ イ ス x 15% = 16,245 制御セ ッ ト

> ス ラ イ ス合計の 15%a、 b > ス ラ イ ス合計の 25%b

制御セ ッ ト 数を減らすと、使用率およびパフ ォーマンスが向上し ます。

制御セ ッ ト の制限により失われるレジス タ数a

ス ラ イ ス使用率 < 75%、 失われる レジス タ数 < 4%c

c. 使用可能なレジス タの合計

ス ラ イ ス使用率 < 85%、 失われる レジス タ数 < 2%c

ス ラ イ ス使用率 < 90%、 失われる レジス タ数 < 1%c

UltraFast 設計手法ガイ ド 173UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 174: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ヒ ン ト : 固有の制御セ ッ ト の数がデザイ ンの小さ な部分で問題と なる こ と があ り 、 デバイ スの対応するエ リ アでネ ット 遅延または密集を発生させる原因 と なる こ と があ り ます。 固有の制御セ ッ ト が局地的に集中し ているエ リ アを特定するには、 Vivado IDE の [Device] ウ ィ ン ド ウで制御信号を異なる色でハイ ラ イ ト し て、 配置を詳細に解析する必要があ り ます。

制御セ ッ ト 数が多い場合は、 次の ヒ ン ト を使用し て削減し ます。

• HDL ソース フ ァ イルまたは制約フ ァ イルで制御信号に設定されている MAX_FANOUT 属性を削除し ます。 制御信号を複製する と、 固有の制御セ ッ ト の数が大幅に増加し ます。 RTL の階層に基づいて手動で複製し、 複製した ド ラ イバーを KEEP 属性を使用し て保持する こ と をお勧めし ます。

• Vivado 合成 (またはその他の FPGA 合成ツール) で制御セ ッ ト のし きい値を増加し ます。 次に例を示し ます。

synth_design -control_set_opt_threshold 16

• フ ァ ンア ウ ト の小さい非同期セ ッ ト / リ セ ッ ト (プ リ セ ッ ト /ク リ ア) は、 専用非同期ピンのみに接続可能であ り 、合成でデータパスに移動する こ と はでき ないので、 使用し ないよ う にし ます。 そのため、 合成の制御セ ッ ト のし きい値は非同期セ ッ ト / リ セ ッ ト には適用されません。

• 異なる シーケンシャル セルに対し て、 ア ク テ ィ ブ High およびア ク テ ィ ブ Low の両方の制御信号を使用し ないよ う にし ます。

• ク ロ ッ ク イ ネーブルおよびセ ッ ト / リ セ ッ ト は必要な場合以外は使用し ないよ う にし ます。 データパスに含まれる多数のレジス タでは初期化されていない値は消去されので、 セ ッ ト / リ セ ッ ト またはイネーブル信号は 初と

後の段にのみ必要です。

その他の合成属性および制御信号に関する推奨事項は、 第 3 章の 「制御信号および制御セッ ト 」 を参照して く ださい。

フ ァ ンアウ ト の大きいネ ッ ト の 適化

フ ァ ンア ウ ト の大きいネ ッ ト は、 イ ンプ リ メ ンテーシ ョ ンの問題の原因と なる こ と がよ く あ り ます。 FPGA フ ァ ミ リのダ イ サイ ズが大き く なる と、 フ ァ ンア ウ ト の問題も増加し ます。 終点が数千個あ るネ ッ ト では、 特にパス上に追加のロ ジ ッ ク があった り 、 LUT や分散 RAM などのシーケンシャルでないセルで駆動される場合、 タ イ ミ ングを満たすこ と は困難です。

レジス タの複製の使用

ほ と んどの合成ツールでは、 フ ァ ンアウ ト し きい値制限を使用し て、 フ ァ ンアウ ト の大きい ド ラ イバーの複製を制御し ます。 Vivado 合成オプシ ョ ンは synth_design -fanout_limit 5000 です。 こ のグ ローバルし きい値の調整では、 どのレジス タ を複製するかなどの詳細な制御はでき ません。 特定のレジス タ または階層レベルに属性を適用し て、 複製可能なレジス タ と不可能なレジス タ を指定する こ と をお勧めし ます。 レジス タではな く LUT1 が複製された場合は、 属性または制約 (階層セルまたは異なる階層のネ ッ ト セグ メ ン ト の DONT_TOUCH など) が間違って適用されているために 適化が実行されていないこ と を示し ます。

多 く の場合、 フ ァ ンアウ ト の大きいネ ッ ト は通常グ ローバル フ ァ ンア ウ ト 制限または特定ネ ッ ト に MAX_FANOUT 属性を使用する こ と で、 RTL および合成で修正し ます。 これでは、 特に MAX_FANOUT 属性の値が小さすぎ る場合、常に 適な配線 リ ソースが使用される と は限 り ません。 さ らに、 フ ァ ンアウ ト の大きい信号がレジス タの制御信号であ り 、 必要以上に複製される と、 制御セ ッ ト の数が多 く なる こ と があ り ます。 多 く の場合、 フ ァ ンアウ ト を削減するには、 フ ァ ンアウ ト の大きい信号に対し てバラ ン スの取れたツ リ ーを使用するのがよ り 良い方法です。 1 つの階層に含まれるセルは通常一緒に配置されるので、 デザイ ン階層に基づいてレジス タ を手動で複製する こ と を考慮して く ださい。 た と えば、 図 5-22 に示すバラ ン スの取れた リ セ ッ ト ツ リ ーでは、 フ ァ ンア ウ ト の大きい リ セ ッ ト FF RST2 が RTL で複製され、 異なるモジュール間でフ ァ ンア ウ ト のバラ ン スが取られます。 必要に応じ て、 物理合成を実行し て さ らに複製を実行し、 配置情報に基づいて WNS を向上し ます。

ヒ ン ト : 合成で複製されたレジス タ を保持するには、 DONT_TOUCH ではな く KEEP 属性を使用し て く ださい。DONT_TOUCH を使用する と、 イ ンプ リ メ ンテーシ ョ ン フ ローで物理 適化でさ ら なる 適化が実行されな く な ります。

UltraFast 設計手法ガイ ド 174UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 175: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

SSI テ ク ノ ロ ジ デバイ スでは、 フ ァ ンア ウ ト の大きい ド ラ イバーを各 SLR で複製し、 Pblock を使用し てそのロードと共に同じ SLR 内に割 り 当てます。 こ の手法を使用する と、 SLR を またぐ遅延によ る影響を回避し、 複製されたフ ァ ンア ウ ト の大きいネ ッ ト を各 SLR 内で個別によ り 柔軟に配置でき ます。

フ ァ ンアウ ト の大きいネ ッ ト をグローバル ク ロ ッ ク配線に移動

フ ァ ンア ウ ト の大きいネ ッ ト のパフ ォーマン スが低い場合は、 ド ラ イバー と ロード の間に ク ロ ッ ク バッ フ ァーを挿入する こ と によ り 、 グ ローバル配線に移動でき ます。 この 適化は、 使用されている ク ロ ッ ク バッ フ ァーの数が少ない場合に、 フ ァ ンアウ ト が 25000 を超え るネ ッ ト に対し て opt_design で自動的に実行されます。 RTL フ ァ イルまたは制約フ ァ イル (XDC) で CLOCK_BUFFER_TYPE 属性を設定する と、 synth_design および opt_design でク ロ ッ ク バッ フ ァーの挿入を強制的に実行でき ます。 次に例を示し ます。

set_property CLOCK_BUFFER_TYPE BUFG [get_nets netName]

グ ローバル ク ロ ッ ク配線を使用する と、 ネ ッ ト 遅延は大き く な り ますが、 配線が 適な ものにな り ます。 高のパフ ォーマン ス を得るには、 ク ロ ッ ク バッ フ ァーで中間組み合わせロ ジ ッ ク を介さずにシーケンシ ャル ロード を直接駆動し ます。 ほ と んどの場合、 opt_design でシーケンシャルでないロード が並列にク ロ ッ ク バッ フ ァーに再接続されます。 必要に応じ て ク ロ ッ ク バッ フ ァーに DONT_TOUCH を適用する と、 こ の 適化が実行されるのを防ぐ こ とができ ます。 フ ァ ンアウ ト の大きいネ ッ ト が制御信号であ る場合、 ロード が専用ク ロ ッ ク イネーブルまたはセ ッ ト /リ セ ッ ト ピンでない理由を調べる必要があ り ます。 専用合成属性を使用し た ローカルのク ロ ッ ク イネーブルおよびセ ッ ト / リ セ ッ ト の 適化については、 第 3 章の 「制御信号および制御セ ッ ト 」 を参照し て く ださ い。

物理 適化の使用

物理 適化 (phys_opt_design) を使用する と、 ス ラ ッ クおよび配置情報に基づいてフ ァ ンア ウ ト の大きいネ ッ ト ド ラ イバーが自動的に複製され、 通常はタ イ ミ ングが大幅に改善されます。 ザイ リ ン ク スでは、 フ ァ ンアウ ト の大きいネ ッ ト はフ ァブ リ ッ ク レジス タで駆動する こ と をお勧めし ています。 そ う する と、 物理 適化中に複製および移動しやす く な り ます。

場合によ っては、 デフ ォル ト の phys_opt_design コマン ド でフ ァ ンアウ ト の大きいすべての ク リ テ ィ カル ネ ッ トが複製されないこ と があ り ます。 -directive オプシ ョ ンの Explore、 AggressiveExplore、 AggressiveFanoutOpt モード などを使用し て、 コマン ド のエフ ォー ト を増加し てみます。 また、 フ ァ ンアウ ト の大きいネ ッ ト が配線中に ク リテ ィ カルになる場合は、 配置配線を再実行する前に、 phys_opt_design を特定のネ ッ ト を複製するオプシ ョ ンを使用し て も う 1 回実行でき ます。 次に例を示し ます。

phys_opt_design -force_replication_on_nets [get_nets [list netA netB netC]]

X-Ref Target - Figure 5-22

図 5-22 : フ ァ ンアウ ト の大きい リ セ ッ ト をバラ ンスの取れた リ セ ッ ト ツ リーに変換

UltraFast 設計手法ガイ ド 175UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 176: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

密集の解消

密集はさ まざまな要因で発生する複雑な問題であ り 、 簡潔な ソ リ ューシ ョ ンが見つかる と は限 り ません。 複雑性および密集に対し ては、 同じ解決策を使用でき ます。 複雑なモジュールがデバイ スの密集し た領域に配置されていないかど う かを確認し ます。 report_design_analysis の密集レポー ト を使用する と、 密集領域と密集ウ ィ ン ド ウ内に含まれるモジュールを特定でき ます。 密集領域に配置されているモジュールを 適化するには、 さ まざまな手法があ り ます。

ヒ ン ト : 次に説明する手法を使用し て密集の解消を試みる前に、 制約が適切な ものであ る こ と を確認し て く ださい。Pblock がオーバーラ ッ プし ている と密集の原因と な るので、 回避する必要があ り ます。 過剰なホール ド タ イ ム エラーまたは負のホール ド ス ラ ッ ク には配線を迂回させる こ と が必要と な り 、 密集が発生する こ と があ り ます。

デバイス使用率の低減

複数のフ ァブ リ ッ ク リ ソースの使用率が大きい (平均で > 75%) 場合、 ネ ッ ト リ ス ト の複雑性も高い ( 上位の接続性が高い、 Rent 指数が大きい、 平均フ ァ ンア ウ ト が大きい) と配置が困難にな り ます。 高パフ ォーマン ス デザイ ンでは、 配置に関する追加の課題も あ り ます。 その場合、 デザイ ンの機能を見直し、 使用率の高いフ ァ ブ リ ッ ク リ ソースが 1 つか 2 つになる まで必須ではないモジ ュールを削除する こ と を考慮し ます。 ロ ジ ッ ク を削減できない場合は、この章に示すほかの密集緩和手法を試し ます。

ヒ ン ト : 未使用のロ ジ ッ ク を削除し た ら、 正確な値を得る ため、 合成後ではな く opt_design 後の リ ソース使用率を確認し て く ださい。

SSI デバイスでの SLR 使用率のバラ ンス

SSI テ ク ノ ロ ジ デバイ ス を ターゲ ッ ト とする場合、 SLR 領域ご と の使用率を解析する こ と が重要です。 全体的な使用率が低い場合でも、 1 つの SLR で使用率が高い と、 密集が発生する可能性があ り ます。

次の図では、 全体的な使用率が低いですが、 SLR2 の使用率が高 く 、 SLR2 のロ ジ ッ クにはほかの SLR のロ ジ ッ ク より も多 く の配線 リ ソースが必要です。 このエ リ アのロ ジ ッ クは幅の広いバス マルチプレ ク サーであ り 、 配線 リ ソースがフルに使用されます。

UltraFast 設計手法ガイ ド 176UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 177: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

使用率のバラ ン ス を取るには、 次のいずれかを試し てみて く ださい。

• 配置の -directive オプシ ョ ンの異な るモード を使用し て、 デザイ ンを分散し ます。

• Pblock などのフ ロ アプラ ン制約を使用し て、 一部のモジ ュールが使用率が高 く 密集し た SLR に配置されないよう にし ます。

配置の -directive オプシ ョ ンの異なるモー ドの使用

配置は通常デザイ ンの全体的なデザイ ン パフ ォーマン スに も影響するので、 密集を緩和するには、 -directive オプシ ョ ンの異なるモード を試すこ と が 初に試す手法の 1 つです。 Pblock 制約な しで -directive オプシ ョ ンの別のモード を実行し、 配置で必要に応じ て ロ ジ ッ ク を分散する柔軟性が増すよ う にする こ と を考慮し て く ださい。

ロ ジ ッ ク をデバイ ス全体に分散し て密集領域を回避する こ と によ り 、 密集を緩和する -directive オプシ ョ ンのモード がい く つかあ り ます。 ロ ジ ッ ク を分散する配置の -directive オプシ ョ ンのモード は、 次の とお り です。

• AltSpreadLogic_high

• AltSpreadLogic_medium

• AltSpreadLogic_low

• SSI_SpreadLogic_high

• SSI_SpreadLogic_low

X-Ref Target - Figure 5-23

図 5-23 : SLR 領域ご との使用率の解析

UltraFast 設計手法ガイ ド 177UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 178: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

SLR を またぐデザイ ンで密集が検出された場合は、 次を考慮し ます。

• SSI_BalanceSLLs を使用する と、 SLR 間で SLL のバラ ン スが取られる よ う にデザイ ンが SLR 間に分割されます。

• SSI_SpreadSLLs を使用する と、 デザイ ンを SLR 間に分割する際に、 接続の多い領域に追加のエ リ アが割 り 当てられます。

配置の -directive のほかのモード またはイ ンプ リ メ ンテーシ ョ ン ス ト ラ テジ も密集の緩和に役立つこ と があ り 、上記の -directive モード の後に試し てみて く ださ い。

配置の -directive オプシ ョ ンの異な るモード における密集度を比較するには、 place_design の実行後にデザイ ン解析レポー ト の密集レポー ト を生成するか、 配線ロ グ フ ァ イルでの密集の初期予測を確認し ます。 密集レベルの範囲の表を参考に結果を確認し ます。

詳細は、 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこのセ ク シ ョ ンを参照し て く ださい。

境界をまたぐ 適化をオフにする

合成で境界を またぐ 適化をオフにする と、 追加のロ ジ ッ ク がモジュール内の配置されるのを防ぐ こ と ができ ます。これによ り モジュールの複雑性は削減し ますが、 全体的な使用率が高 く なる こ と があ り ます。 これをグ ローバルに実行するには、 synth_design の -flatten_hierarchy none オプシ ョ ンを使用し ます。 この手法は、 RTL で KEEP_HIERARCHY 属性が設定されたモジュールにも適用されます。

LUT の組み合わせおよび MUXF の推論のデ ィ スエーブル

密集エ リ アで MUXF* プ リ ミ テ ィ ブまたは LUT の組み合わせの使用率が高い場合は (> 40%)、 密集を緩和する ため、MUXF* の使用量および LUT の組み合わせを削除する合成ス ト ラ テジを使用し てみて く ださい。 MUXF* の使用量および LUT の組み合わせは、 ス ラ イ スの入力接続を増加する傾向があ るので、 密集の増加につながる可能性があ り ます。 Flow_AlternateRoutability 合成ス ト ラ テジおよび -directive オプシ ョ ンの AlternateRoutability モード を使用する と、 合成ツールで MUXF* 構造が回避され、 追加の LUT の組み合わせは生成されません。 Synplify Pro で合成されたデザイ ンでは、 [Enable Advanced LUT Combining] オプシ ョ ンがあ り ます。 このオプシ ョ ンは、 [Device] タブの [Implementation Options] の下にあ り ます。 デフ ォル ト では ON です。 Synplify Pro プロ ジェ ク ト フ ァ イル (*prj) を変更する場合は、 set_option -enable_prepacking 0|1 (デフ ォル ト は 1) を設定し ます。

次のコマン ド を使用する と、 デザイ ンで LUT の組み合わせをハイ ラ イ ト でき ます。

highlight_objects [get_cells -hier -filter{SOFT_HLUTNM != "" || HLUTNM != ""}]

次の図に、 配置での密集の予測 と、 それらのエ リ アでの MUXF* の使用量を示し ます。 こ の場合、 MUXF* の使用量を削減する と密集が緩和されます。

UltraFast 設計手法ガイ ド 178UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 179: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

次の図に、 LUT の組み合わせがあ る場合と ない場合におけるデザイ ンの水平方向の密集を示し ます。 LUT の組み合わせを使用するセルは、 紫色でハイ ラ イ ト されています。

異なるス ト ラ テジを使用し たアウ ト オブ コ ンテキス ト 合成の使用

場合によ っては、 デザイ ンの異なるモジュールに対し て異なる合成オプシ ョ ン またはス ト ラ テジを使用する と有効な こ と があ り ます。 た と えば、 1 つのモジュールではタ イ ミ ング ク リ テ ィ カルなフ ァ ン ク シ ョ ンを イ ンプ リ メ ン トするのに MUXF* リ ソースの使用が必要であ り 、 デザイ ンのその他の部分ではロ ジ ッ ク を MUXF* にイ ンプ リ メ ン トする よ り も LUT にイ ンプ リ メ ン ト し た方が密集を削減でき る場合などです。 この場合、 タ イ ミ ング ク リ テ ィ カルなモジュールを Flow_PerfOptimized_high ス ト ラ テジを使用し てアウ ト オブ コ ンテキス ト (OOC) 合成し、デザイ ンのその他の部分は密集を削減するために Flow_AlternateRoutability ス ト ラ テジを使用し て合成でき ます。

OOC 合成の使用に関する詳細は、 第 4 章の 「ボ ト ムア ッ プ フ ロー」 を参照し て く ださい。

X-Ref Target - Figure 5-24

図 5-24 : 配置で予測される密集と MUXF* の使用量

X-Ref Target - Figure 5-25

図 5-25 : LUT の組み合わせが水平方向の密集に与える影響

UltraFast 設計手法ガイ ド 179UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 180: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

密集エ リ アのフ ァ ンアウ ト の大きいネ ッ ト を制限

タ イ ミ ング制約が厳しいフ ァ ンアウ ト の大きいネ ッ ト は、 タ イ ミ ングを満たすため、 厳密に ク ラ ス ター化された配置が必要です。 これによ り 、 次の図に示すよ う に、 局地的な密集が発生する こ と があ り ます。 フ ァ ンアウ ト の大きいネ ッ ト は、 配線 リ ソース を消費し、 それらの配線 リ ソース を密集ウ ィ ン ド ウのほかのネ ッ ト で使用でき な く するこ と によ って も密集に影響し ます。 フ ァ ンアウ ト の大きいグ ローバルでないネ ッ ト の密集ウ ィ ン ド ウにおける配線性への影響を解析するには、 次を実行でき ます。

• 密集ウ ィ ン ド ウで 上位モジュールの 下位セルを選択し ます。

• [Edit] → [Find] を ク リ ッ ク し、 選択し たセル オブジェ ク ト のすべてのネ ッ ト を選択し ます ([GLOBAL_CLOCK]、[Power]、 [GROUND] ネ ッ ト を検索)。

• ネ ッ ト を [Flat Pin Count] 降順に並べ替えます。

• フ ァ ンア ウ ト の大きいものを上位から選択し、 密集ウ ィ ン ド ウ と の関係を表示し ます。

これによ り 、 密集に影響し ている フ ァ ンアウ ト の大きいネ ッ ト をすばや く 特定でき ます。

密集ウ ィ ン ド ウ内にあ る タ イ ミ ング制約の厳しいフ ァ ンアウ ト の大きいネ ッ ト に対し ては、 ド ラ イバーを複製すると、 配置制約が緩和されて密集が削減し ます。

タ イ ミ ング ス ラ ッ ク が正のフ ァ ンア ウ ト の大きいネ ッ ト (フ ァ ンア ウ ト > 5000) は、 フ ァ ブ リ ッ ク リ ソースの代わ りにグ ローバル ク ロ ッ ク リ ソースに配線でき ます。 ネ ッ ト に CLOCK_BUFFER_TYPE=BUFG プロパテ ィ を設定し、 合成またはロ ジ ッ ク 適化で自動的にバッ フ ァーが挿入される よ う にし ます。 挿入されたバッ フ ァーの配置と その ドラ イバーおよびロード の配置を調べ、 適な ものであ るかを確認し ます。 配置が 適でない場合は、 ク ロ ッ ク バッフ ァーに UltraScale デバイ スでは CLOCK_REGION 制約、 7 シ リ ーズ デバイ スでは LOC 制約を設定し て配置を制御し ます。

X-Ref Target - Figure 5-26

図 5-26 : 密集ウ ィ ン ド ウ内のフ ァ ンアウ ト の大きいネ ッ ト

UltraFast 設計手法ガイ ド 180UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 181: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

コ ンパイル フ ローの調整

デフ ォル ト のコ ンパイル フ ローでは、 すばや く ベース ラ イ ン制約を取得し、 タ イ ミ ングが満た されているかど う かを解析し始める こ と ができ ます。 初期イ ンプ リ メ ンテーシ ョ ンの後、 タ イ ミ ング ク ロージ ャ を達成するため、 コ ンパイル フ ローを調整する必要があ る場合があ り ます。

ス ト ラ テジおよび -directive オプシ ョ ン

ス ト ラ テジおよび -directive オプシ ョ ンを使用する と、 さ まざまな イ ンプ リ メ ンテーシ ョ ン ソ リ ューシ ョ ンを試すこ と ができ、 デザイ ンに 適な ソ リ ューシ ョ ンを見つける こ と ができ ます。 ス ト ラ テジはプロ ジェ ク ト のイ ンプリ メ ンテーシ ョ ン run にグ ローバルに適用されますが、 -directive オプシ ョ ンは、 プロ ジェ ク ト モードおよび非プロ ジェ ク ト モード の両方で、 イ ンプ リ メ ンテーシ ョ ン フ ローの各段階で個別に設定でき ます。 -directive オプシ ョ ンを使用し てフ ローをカ ス タマイ ズする前に、 あ らかじめ定義されたス ト ラ テジを試し てみて く ださい。 SSI テク ノ ロ ジ ス ト ラ テジを SSI テ ク ノ ロ ジ デバイ ス以外のデバイ スに適用する こ と はお勧めし ません。

定義済みのス ト ラ テジでタ イ ミ ングが満た されない場合は、 -directive オプシ ョ ンを手動で組み合わせて試すこと ができ ます。 配置は通常デザイ ンの全体的なパフ ォーマン スに も影響するので、 I/O ロ ケーシ ョ ン制約のみを使用し て配置制約な しで配置の -directive オプシ ョ ンのさ まざまなモード を試すと有益な場合があ り ます。 各配置の実行で WNS および TNS の両方を配置ロ グで確認する こ と によ り 、 高のタ イ ミ ング結果が得られた -directive オプシ ョ ンの 2 つまたは 3 つのモード を、 ダウ ン ス ト リ ームのイ ンプ リ メ ンテーシ ョ ン フ ローの基準と し て選択でき ます。

これらの各チェ ッ ク ポイ ン ト に対し て、 phys_opt_design および route_design で -directive オプシ ョ ンのい く つかのモード を試し、 見積も り または 終 WNS/TNS が 適な もののみを保持する こ と ができ ます。 非プロジェ ク ト モード では、 Tcl ス ク リ プ ト でフ ローを明示的に指定し、 高のチェ ッ ク ポイ ン ト を保存する必要があ り ます。 プロ ジェ ク ト モード では、 配置の -directive オプシ ョ ンの各モード に対し て個別にイ ンプ リ メ ンテーシ ョ ン run を作成し、 配置までを実行し ます。 配置後は、 高の結果が得られた run でイ ンプ リ メ ンテーシ ョ ンを続行し ます (Tcl ポス ト ス ク リ プ ト で判断)。

物理制約 (Pblock、 DSP および RAM マ ク ロ制約) を使用する と、 配置で 適な ソ リ ューシ ョ ンが見つけ られな く なるこ と があ り ます。 配置の -directive オプシ ョ ンは、 Pblock 制約な しで実行する こ と をお勧めし ます。-directive オプシ ョ ンを使用し て配置を実行する前に Pblock を削除するには、 次の Tcl コマン ド を使用でき ます。

delete_pblock [get_pblocks *]

place_design -directive <directive> を実行し て 高の結果の配置を解析する と、 デザイ ンをフ ロ アプラン し て各実行で安定し た結果が得られる よ う にするためのテンプレー ト を得る こ と もでき ます。

適化の反復

コマン ド を複数回実行する と、 適な結果を得るのに有益であ る場合があ り ます。 た と えば、 配線中に WNS に影響する と思われる ク リ テ ィ カル ネ ッ ト の一部を 適化する ため、 phys_opt_design を まず -force_replication_on_nets オプシ ョ ンを使用し て実行する と有益な場合があ り ます。

次に、 デザイ ンの全体的な WNS を向上するため、 phys_opt_design を -directive オプシ ョ ンを使用して実行し ます。

非プロ ジェ ク ト モード では、 次のコマン ド を使用し ます。

phys_opt_design -force_replication_on_nets [get_nets -hier *phy_reset*]

phys_opt_design -directive <directive name>

プロ ジェ ク ト モード では、 -directive オプシ ョ ンを使用し て実行する phys_opt_design の Tcl プ リ ス ク リ プ トの一部 と し て 初の phys_opt_design コマン ド を実行し ます。

UltraFast 設計手法ガイ ド 181UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 182: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

デザイ ンの制約を厳し く する

配線後にデザイ ンのタ イ ミ ングが少しの差で満た されていない場合、 これは通常配置後のタ イ ミ ング マージンが小さいためです。 配置および物理 適化でタ イ ミ ング要件を厳し く する と、 配線のタ イ ミ ング マージンが増加する可能性があ り ます。 これを達成するには、 次の理由から set_clock_uncertainty 制約を使用する こ と を推奨し ます。

• ク ロ ッ ク の関連性は変更されない (ク ロ ッ ク波形は同じ )

• ツールで算出される ク ロ ッ ク のばらつき (ジ ッ ター、 位相エラー ) に追加される

• -from および -to オプシ ョ ンで指定された ク ロ ッ ク ド メ イ ンまたはク ロ ッ ク乗せ換えに特定

• ヌル値を適用する こ と によ り 、 前に設定し た ク ロ ッ ク のばらつき制約を簡単に リ セ ッ ト 可能

どの場合でも、 次のよ う にする こ と をお勧めし ます。

• セ ッ ト ア ッ プ タ イ ミ ングが満た されていない ク ロ ッ ク またはク ロ ッ ク乗せ換えのみの制約を厳し く し ます。

• 配線を実行する前に追加し たばらつき を リ セ ッ ト し ます。

次に例を示し ます。

配線の前後で、 デザイ ンの clk1 ク ロ ッ ク ド メ イ ンのパスでタ イ ミ ングが -0.2ns の差で満た されておらず、 clk2 から clk3 へのパスでタ イ ミ ングが -0.3ns の差で満た されていない と し ます。

1. ネ ッ ト リ ス ト デザイ ンを読み込み、 通常の制約を適用し ます。

2. 一部のク ロ ッ ク にク ロ ッ ク のばらつき を追加し て制約を厳し く し ます。

a. 値は違反の量以上にし ます。

b. 制約はセ ッ ト ア ッ プ パスのみに適用し ます。

set_clock_uncertainty -from clk0 -to clk1 0.3 -setup

set_clock_uncertainty -from clk2 -to clk3 0.4 -setup

3. 配線まで実行し ます。 配線前にタ イ ミ ングが満た されるのが理想的です。

4. 追加し たばらつき を削除し ます。

set_clock_uncertainty -from clk0 -to clk1 0 -setup

set_clock_uncertainty -from clk2 -to clk3 0 -setup

5. 配線を実行し ます。

配線後にタ イ ミ ングを解析し、 制約を厳し く する こ と でタ イ ミ ングが向上し たかを確認し ます。 配置後にタ イ ミ ングが満た されてお り 、 配線後に少しの差でタ イ ミ ングが満た されない場合は、 ばらつきの量を増加し て も う 一度実行し ます。

推奨 : 制約を 0.5ns 以上厳し く し ないよ う にし て く ださい。

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

デザイ ンが完成に近づき、 少しの変更のみが必要な場合は、 イ ン ク リ メ ン タル コ ンパイル フ ローを使用する こ と を考慮し て く ださい。 イ ン ク リ メ ン タル コ ンパイル フ ローを使用する と、 QoR を保持し ながら 高の結果を得る こ とができ ます。 少しの変更を加えて再合成する場合にこのフ ローを使用する と、 次のよ う な利点があ り ます。

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

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

UltraFast 設計手法ガイ ド 182UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 183: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

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

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

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

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

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

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

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

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

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

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

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

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

イ ン ク リ メ ン タル コ ンパイルを使用する と、 基準のチェ ッ ク ポイ ン ト から一部のセルのみを再利用でき ます。 た とえば、 配線済みの基準チェ ッ ク ポイ ン ト からブロ ッ ク RAM の配置のみを再利用し て再利用し たセルの配置を固定するには、 次の Tcl ス ク リ プ ト を使用でき ます。

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

イ ン ク リ メ ン タル コ ンパイルの詳細は、『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこのセ ク シ ョ ンを参照し て く ださい。

フ ロアプ ラ ン

フ ロ アプラ ンを使用する と、 高レベルの階層レ イ アウ ト や詳細な配置を指定でき ます。 これによ り 、 QoR が向上し、予測可能な結果が得られる よ う にな り ます。 悪の問題または も一般的な問題を修正する と、 も大き く 改善します。 た と えば、 ス ラ ッ ク が大幅に悪いパス、 またはロ ジ ッ ク レベル数が多いパスがあ る場合、 Pblock を使用し てそれらのパス をデバイ スの同じ領域にグループ化する など し て修正し ます。 フ ロ アプラ ンは、 デザイ ン全体に対して実行するのではな く 、 必要な部分にのみ制限し ます。

I/O に接続される ロ ジ ッ ク を I/O の近 く にフ ロ アプラ ンする と、 結果が向上する可能性があ り 、 コ ンパイル反復実行において一定し た結果が得られる よ う にな り ます。 通常は、 Pblock のサイ ズを ク ロ ッ ク領域内に収めるのが 適です。 このよ う にする と、 配置が も柔軟に実行されます。 複数の Pblock が重なっている部分があ る と、 共有エ リ アの密集度が高 く なる可能性があ るので、 Pblock が重な ら ないよ う にし ます。 2 つの Pblock 間にそれら を接続する信号が多数あ る場合は、 これらの Pblock を 1 つの Pblock にま と める こ と を考慮し ます。 また、 Pblock 間を またぐネ ット の数を 小限に抑えます。

ヒ ン ト : Vivado の新しいバージ ョ ンにア ッ プグレードする際は、 まず Pblock な し または 小限の Pblock (SLR レベルの Pblock のみなど) でコ ンパイルし、 タ イ ミ ング ク ロージャ を達成するのに問題があ るかど う かを確認し て く ださい。 新しいアーキテ クチャのコ ンパイ ラが改善されるにつれ、 以前のバージ ョ ンでは QoR の向上に効果的であった Pblock が、 コ ンパイ ラで 適な イ ンプ リ メ ンテーシ ョ ンを見つけ るのを妨げる可能性があ り ます。

UltraFast 設計手法ガイ ド 183UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 184: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ク リ テ ィ カル ロジ ッ クのグループ化

ク リ テ ィ カル ロ ジ ッ ク をグループ化し て SLR または I/O 列を またぐ状況を回避する と、 デザイ ンのク リ テ ィ カル パスが向上し ます。 次の図では、 大型の FIFO が 29 個の FIFO36E2 プ リ ミ テ ィ ブを使用し て イ ンプ リ メ ン ト されています。 グループの各 FIFO36E2 のク リ テ ィ カル パスは WRRSTBUSY ピンから 5 つの LUT を介し てグループの各 FIFO36E2 の WREN ピンに到達するパスです。 RAMB の使用率が高いため、 ツールでパスに 適な配置を見つけるこ と ができ ません。 この場合、 矩形内の FIFO36E2 ブロ ッ ク の場所を修正し、 Config 列を またがないよ う にする と、図の右側に示すよ う にタ イ ミ ングを満たすこ と ができ ます。

SSI テ ク ノ ロジに関する考慮事項

ス タ ッ ク ド シ リ コ ン イ ン ターコネ ク ト (SSI) テ ク ノ ロ ジ デバイ スでは、追加の考慮事項があ り ます。SSI テ ク ノ ロ ジ デバイ スは複数の SLR (Super Logic Region) で構成されてお り 、 イ ン ターポーザーによ り 結合されています。 イ ンターポーザーの接続は、 SLL (Super Long Line) と呼ばれます。 1 つの SLR から別の SLR への移動には多少の遅延があり ます。 デザイ ンでの SLL 遅延の影響を 小限に抑え るには、 SLR を またぐパスがク リ テ ィ カル パスの一部 と な らないよ う にし ます。 フ ロ アプラ ンで Pblock を 1 つの SLR 内に作成し、 SLR を またぐパス を 小限に抑え る と、 SSI テ ク ノ ロ ジ デバイ ス を ターゲ ッ ト とするデザイ ンのタ イ ミ ングおよび配線性を向上でき ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージャ テ ク ニ ッ ク』 (UG906) [参照 21] のこのセ ク シ ョ ンを参照し て く ださい。

ビデオ : フ ロ アプラ ンを使用し てデザイ ン パフ ォーマン スの問題に対処する方法は、 Vivado Design Suite QuickTake ビデオ : Vivado でのデザイ ン解析およびフ ロ アプラ ンを参照し て く ださい。

X-Ref Target - Figure 5-27

図 5-27 : Config 列を回避する FIFO の場所

UltraFast 設計手法ガイ ド 184UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 185: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

配置の再利用

ブロ ッ ク RAM マ ク ロおよび DSP マ ク ロの配置を再利用するのは比較的簡単です。 配置を再利用する と、 ネ ッ ト リス ト の リ ビジ ョ ン間での結果がよ り 一貫し た ものにな り ます。 これらのプ リ ミ テ ィ ブの名前は通常変化し ないので、配置を保持するのは簡単です。 配置の -directive オプシ ョ ンのモード には、 ほかのモード よ り もブロ ッ ク RAM および DSP マ ク ロの配置が良 く な る ものがあ り ます。 1 つの配置 run からの向上し たマ ク ロの配置を、 別の run に適用し て -directive オプシ ョ ンの異な るモード を使用し て実行し てみる こ と ができ ます。 次に、 ブロ ッ ク RAM の配置を XDC フ ァ イルに保存する Tcl ス ク リ プ ト を示し ます。

set_property IS_LOC_FIXED 1 \[get_cells -hier -filter {PRIMITIVE_TYPE =~ BMEM.bram.*}]

write_xdc bram_loc.xdc -exclude_timing

bram_loc.xdc フ ァ イルをブロ ッ ク RAM のロ ケーシ ョ ン制約のみが保持される よ う に変更し、 これを今後の run で使用でき ます。

重要 : 汎用ス ラ イ ス ロ ジ ッ ク の配置を再利用し ないで く ださい。 デザイ ンの変更する予定の部分は、 配置を再利用し ないで く ださい。

消費電力解析および 適化

消費電力の重要性を考慮し、 Vivado ツールでは正確な消費電力見積も り を取得する方法がサポー ト されてお り 、 消費電力 適化の機能が提供されています。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] を参照し て く ださい。

フ ローを通し た消費電力見積も り

デザイ ン フ ローを合成から イ ンプ リ メ ンテーシ ョ ンに進行し てい く 際、 消費電力を定期的に監視し て検証し、 要件内であ る こ と を確認する必要があ り ます。 そ う する こ と によ り 、 消費電力が要件に近づきすぎた場合にすばや く 対処でき ます。

消費電力見積も り の精度は、 デザイ ンの段階によ って異な り ます。 合成後から イ ンプ リ メ ンテーシ ョ ンでは、 消費電力の見積も り に report_power コマン ド を使用するか、 Vivado IDE で消費電力レポー ト を開き ます。

• 合成後

ネ ッ ト リ ス ト がターゲ ッ ト デバイ スで使用可能な実際の リ ソースにマ ッ プされます。

• 配置後

ネ ッ ト リ ス ト コ ンポーネン ト が実際のデバイ ス リ ソースに配置されます。 このパッ ク情報を基に 終的な ロジ ッ ク リ ソース数およびコ ンフ ィ ギュ レーシ ョ ンが判明し ます。

XPower Estimator スプレ ッ ド シー ト にこ のデータ をエ ク スポー ト でき ます。 こ のコマン ド を使用する と、 次が可能にな り ます。

° XPE で What-if 解析を実行し ます。

° 同様の特性を持つ今後のデザイ ンでスプレ ッ ド シー ト を入力する際の基準を提供し ます。

• 配線後

配線が完了する と、 使用される配線 リ ソースに関するすべての詳細およびデザイ ンに含まれる各パスの的確なタ イ ミ ング情報が定義されます。

UltraFast 設計手法ガイ ド 185UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 186: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

シ ミ ュ レータでは、 イ ンプ リ メ ン ト された回路の機能をベス ト ケースおよびワース ト ケースのロ ジ ッ クおよび配線遅延で検証する こ と に加え、 グ リ ッチを含む内部 ノード の的確なア ク テ ィ ビテ ィ がレポー ト されます。 このレベルの消費電力解析では、 プロ ト タ イプのボード で消費電力を実際に計測する前に、 も正確な消費電力見積も り が得られます。

消費電力制約ア ドバイザーの使用

消費電力制約ア ド バイザー (Power Constraint Advisor) からは、 デザイ ン内のすべての制御信号のツールで算出されたス イ ッチング ア ク テ ィ ビテ ィ がレポー ト されます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこ のセ ク シ ョ ンを参照し て く ださい。

正確な消費電力解析のためのベス ト プ ラ ク テ ィ ス

正確な消費電力解析のためには、 ク ロ ッ ク制約、 I/O 制約、 および信号が正しいこ と を確認し ます。 詳細は、『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこのセ ク シ ョ ンを参照し て く ださい。

Vivado 消費電力解析を実行し た後にデザイ ンの電力分配を確認

オンチッ プの合計消費電力、 温度特性、 リ ソース レベルでの消費電力の詳細を確認し て、 全消費電力に も影響するデザイ ンの部分を特定でき ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこのセ ク シ ョ ンを参照し て く ださい。

Vivado 消費電力解析を実行し た後に制御信号のアク テ ィ ビテ ィ を調整

正確な消費電力解析用に SAIF ベースのア ノ テーシ ョ ンを使用し た場合は、 初の解析を実行し た後に消費電力解析を調整でき ます。 詳細は、 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907) [参照 22] のこのセ ク シ ョ ンを参照し て く ださい。

消費電力の 適化

消費電力見積も り がバジェ ッ ト を超えている場合は、 次の手順を使用し て消費電力を削減する必要があ り ます。

消費電力見積も り および 適化結果の解析

report_power を使用し て消費電力見積も り レポー ト を生成し た ら、 次を実行する こ と をお勧めし ます。

• [Summary] セ ク シ ョ ンで総消費電力を確認し ます。 総消費電力およびジ ャ ン ク シ ョ ン温度はデザイ ンの温度要件および消費電力要件を満た し ていますか。

• 結果が要件を大幅に超えている場合は、 ブロ ッ ク タ イプご とおよび電源レールご と の電力分配を確認し ます。これによ り 、 消費電力が も大きいブロ ッ ク を特定でき ます。

• [Utilization Details] の下の [Hierarchical] ページを確認し ます。 階層ご と に情報が示されているので、 電力が も消費されているモジュールを特定でき ます。 特定のモジュールを展開表示する と、 各ブロ ッ クの消費電力を確認でき ます。 ク ロ スプローブを使用し て、 モジュールの特定のセ ク シ ョ ンがどのよ う にコード記述されているか、 消費電力を削減する よ う コード を記述し直せるかを判断でき ます。

UltraFast 設計手法ガイ ド 186UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 187: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

消費電力 適化の実行

ヒ ン ト : 消費電力 適化の効果を 大にするには、 第 3 章の 「消費電力を向上する ためのコーデ ィ ング ス タ イル」を参照し て く ださい。

消費電力 適化はデザイ ン全体またはデザイ ンの一部 (set_power_opt を使用し た場合) に対し て実行し、 消費電力を 小限にし ます。

消費電力 適化は、 デザイ ン フ ローの配置前または配置後のいずれかで実行でき ますが、 両方では実行でき ません。配置前の消費電力 適化では、 消費電力の節電量を 大にする こ と に焦点が置かれ、 まれにタ イ ミ ングが悪化するこ と も あ り ます。 タ イ ミ ングの保持が主な目標の場合は、 消費電力 適化を配置後に実行する こ と をお勧めし ます。この場合、 タ イ ミ ングを保持する消費電力 適化のみが実行されます。

レガシ (IP) またはタ イ ミ ングの面からデザイ ンの一部を保持する必要がある場合は、 set_power_opt コマン ド を使用して、 特定の階層、 ク ロ ッ ク ド メ イ ン、 またはセル タ イプなどを除外してから、 消費電力 適化を実行し ます。

消費電力 適化レポー ト の使用

消費電力 適化の影響を判断するため、 Tcl コ ン ソールで次のコマン ド を実行し、 消費電力 適化レポー ト を生成します。

report_power_opt -file myopt.rep

タ イ ミ ング レポー ト を使用し て消費電力 適化の影響を確認

消費電力 適化では、 消費電力を 大限に削減し ながら、 タ イ ミ ングへの影響は 小限に抑えます。 消費電力 適化によ り タ イ ミ ングが悪化し た場合は、 この影響を補正する ための手法を使用でき ます。

可能な場合、 タ イ ミ ング ク リ テ ィ カルでないク ロ ッ ク ド メ イ ン またはモジュールを特定し、 set_power_opt XDC コマン ド を使用し てそれらのみに消費電力 適化を適用し ます。 も ク リ テ ィ カルな ク ロ ッ ク ド メ イ ンがデザイ ンの大部分を占めている場合や電力の大部分を消費し ている場合は、 ク リ テ ィ カル パス上のセルが消費電力 適化で削除されていないかど う かを確認し ます。

消費電力 適化で 適化されたオブジェ ク ト には、 IS_CLOCK_GATED プロパテ ィ が設定されます。 これらのセルを消費電力 適化から除外し ます。

ク ロ ッ ク ゲーテ ィ ングが適用されたセルを検索するには、 次の Tcl コマン ド を使用し ます。

get_cells -hier -filter {IS_CLOCK_GATED==1}

UltraFast 設計手法ガイ ド 187UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 188: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

コ ン フ ィ ギュ レーシ ョ ンおよびデバッ グ

デザイ ン イ ンプ リ メ ンテーシ ョ ンを完了し た ら、 FPGA にデザイ ンを読み込み、 ハード ウ ェア上で実行し ます。 コンフ ィ ギュ レーシ ョ ン と は、 アプ リ ケーシ ョ ンに特化し たデータ (ビ ッ ト ス ト リ ーム) を FPGA デバイ スの内部 メ モリ に読み込むプロセス を指し ます。 デザイ ンがハード ウ ェ ア上の要件を満た さ ない場合はデバッ グが必要です。

コ ンフ ィ ギュ レーシ ョ ンおよびデバッ グのソ フ ト ウ ェ ア フ ローおよびコマン ド については、 次のユーザー ガイ ド を参照し て く ださい。

• 『Vivado Design Suite ユーザー ガイ ド : プロ グ ラ ムおよびデバッ グ』 (UG908) [参照 24]

• 『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガイ ド』 (UG835) [参照 13]

• 『7 シ リ ーズ FPGA コ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド』 (UG470) [参照 37]

• 『UltraScale アーキテ クチャ コ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド』 (UG570) [参照 37]

• Vivado Design Suite QuickTake ビデオ : Vivado で write_bitstream コマン ド を使用する方法

コ ン フ ィ ギュ レーシ ョ ン

ビ ッ ト ス ト リ ーム イ メ ージを作成するには、 まずデザイ ンの合成およびイ ンプ リ メ ンテーシ ョ ンを正常に完了させる こ と が必要です。 ビ ッ ト ス ト リ ームを生成し てすべての DRC を解析し て修正し た ら、 次のいずれかの方法を使用し てビ ッ ト ス ト リ ームをデバイ スに読み込むこ と ができ ます。

• 直接プロ グ ラ ム

ケーブル、 プロセ ッ サ、 またはカ ス タ ム ソ リ ューシ ョ ンを使用し て、 デバイ スに直接ビ ッ ト ス ト リ ームを読み込みます。

• 間接プロ グ ラ ム

ビ ッ ト ス ト リ ームを外部フ ラ ッ シュ メ モ リ に読み込みます。 こ の後、 フ ラ ッ シュ メ モ リ から ビ ッ ト ス ト リ ームをデバイ スに読み込みます。

Vivado ツールを使用する と、 次を実行でき ます。

• FPGA ビ ッ ト ス ト リ ーム (.bit または .rbt) を作成

• [Tools] → [Edit Device Properties] を ク リ ッ ク し、 ビ ッ ト ス ト リ ーム生成用のコ ンフ ィ ギュ レーシ ョ ン設定を確認

• ビ ッ ト ス ト リ ームをフ ラ ッ シュ プロ グ ラ ミ ング フ ァ イル (.mcs) にフ ォーマ ッ ト

• 次のいずれかの方法を使用し てデバイ ス をプロ グ ラ ム

° デバイ ス を直接プロ グ ラ ム

° 接続されている コ ンフ ィ ギュ レーシ ョ ン フ ラ ッ シュ デバイ ス を間接的にプロ グ ラ ム

フ ラ ッ シュ デバイ スは不揮発性デバイ スで、 プロ グ ラ ム前に消去する必要があ り ます。 チッ プ全体の消去が指定されない限 り 、 割 り 当て られている MCS で指定されている ア ド レ ス範囲のみが消去されます。

重要 : Vivado Design Suite デバイ ス プロ グ ラ マでは、 JTAG を使用し てザイ リ ン ク ス デバイ スのステータ ス レジス タ データ を読み出すこ と ができ ます。 コ ンフ ィ ギュ レーシ ョ ン エラーが発生し た場合、 ステータ ス レジス タに問題の原因を特定するのに役立つエラー状態がキ ャプチャ されます。 また、 ステータ ス レジス タでモード ピン設定 M[2:0] およびバス幅検出を確認する こ と もでき ます。 ステータ ス レジス タの詳細は、 該当するデバイ スのコ ンフ ィ ギ ュレーシ ョ ン ユーザー ガイ ド [参照 37] を参照し て く ださい。

ヒ ン ト : コ ンフ ィ ギュ レーシ ョ ンで問題が発生し た場合、 FPGA デバイ スに対し て JTAG リ ード バッ ク /検証操作を実行し、 コ ンフ ィ ギュ レーシ ョ ン データが正し く デバイ スに読み込まれたかど う かを確認でき ます。

UltraFast 設計手法ガイ ド 188UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 189: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

デバッ グ

イ ンシステム デバッ グでは、 ターゲ ッ ト デバイ ス上で リ アルタ イ ムにデザイ ンをデバッ グする こ と ができ ます。 この手順は、 シ ミ ュ レータで再現しづらい状況に遭遇し た場合に必要です。

デバッ グでは、 デザイ ンを監視および制御でき る よ う にする ための特別なデバッ グ ハード ウ ェアをデザイ ンに追加し ます。 デバッ グが完了し た ら、 パフ ォーマン ス を高め、 ロ ジ ッ ク使用率を低減する ために、 このデバッ グ ハードウ ェアを取 り 除 く こ と ができ ます。

FPGA デザイ ンのデバッ グは複数の段階を含む反復作業です。 複雑な問題を処理する場合と同様に、 FPGA デザイ ンのデバッ グ プロセス も、 一度にデザイ ン全体を処理するのではな く 、 細分化し てセ ク シ ョ ンご と に集中し て作業するのがベス ト です。

実際のデバッ グ手順はデザイ ンのイ ンプ リ メ ンテーシ ョ ンが問題な く 終了し た後にな り ますが、 デザイ ン サイ クルの早期にデバッ グをどのよ う に実行するか、 ど こ でデバッ グするのかをプラ ンニング し てお く こ と をお勧めし ます。FPGA デバイ スのプロ グ ラ ムおよびイ ンシステム デバッ グの実行に必要なコマン ド はすべて、 Vivado 統合設計環境 (IDE) の Flow Navigator の [Program and Debug] から実行でき ます。

デバッ グの手順は次の とお り です。

1. プローブ : デザイ ンでプローブする信号を特定し、 プローブ方法を指定し ます。

2. イ ンプ リ メ ン ト : プローブするネ ッ ト に追加されたデバッ グ IP を含むデザイ ンを イ ンプ リ メ ン ト し ます。

3. 解析 : デザイ ンに含まれるデバッ グ IP にア ク セス し、 機能的な問題をデバッ グおよび検証し ます。

4. 修正 : バグがあれば修正し、 必要に応じ て繰 り 返し ます。

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

UltraFast 設計手法ガイ ド 189UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 190: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

デザイ ンのプローブ

Vivado ツールではデザイ ンにデバッ グ プローブを追加する方法が複数提供されています。 次の表に、 さ まざまな方法を リ ス ト し、 それぞれの方法の長所 と短所を示し ます。

デバッ グ ネ ッ ト の選択

デバッ グ ネ ッ ト を選択する際は、 次の推奨事項に従って く ださい。

• 特定の階層の境界 (入力または出力) でネ ッ ト をプローブする と、 問題のあ る箇所をすばや く 特定でき ます。 その後、 必要に応じ てその階層を さ らにプローブでき ます。

• 組み合わせロ ジ ッ ク パス間のネ ッ ト はプローブし ないで く ださい。 組み合わせロ ジ ッ ク パスの真ん中のネ ッ トに MARK_DEBUG を追加する と、 イ ンプ リ メ ンテーシ ョ ン段階で適用可能であった 適化がま った く 適用されず、 QoR (結果の品質) が下が り ます。

• サイ クル精度の高いデータ キ ャプチャ を取得する ため、 同期のネ ッ ト をプローブし ます。

表 5-8 : デバッ グ フ ロー

デバッ グ フ ロー名 フ ローの段階 長所/短所

HDL イ ン ス タ ンシエーシ ョ ン プローブ フ ロー

HDL ソースで ILA デバッ グ コ ア イ ン スタ ン スに信号を明示的に接続し ます。

• デバッ グ ネ ッ ト および IP はデザイ ンから手動で追加/削除する必要があ るので、 HDL ソースはユーザーが修正する必要あ り

• HDL デザイ ン レベルでプローブするオプシ ョ ンあ り

• デバッ グ コ アの生成、 イ ン ス タ ンシエー ト 、 接続の際に間違いやすい

ネ ッ ト リ ス ト 挿入プローブ フ ロー (推奨)

デバッ グする信号を選択するには、 次のいずれかの方法を使用し ます。

• ソース RTL コード でデバッ グする信号をマークする ため MARK_DEBUG 属性を使用

• 合成済みデザイ ン ネ ッ ト リ ス ト でネ ッ ト を右ク リ ッ ク し て [Mark Debug] を ク リ ッ ク し、 デバッ グするネ ッ ト を選択

デバ ッ グする信号をマーク し た ら、Set Up Debug ウ ィ ザー ド を使用し てネ ット リ ス ト 挿入プ ローブ フ ローを実行します。

• 柔軟性が も高 く 、 予測しやすい

• さ まざまなデザイ ン レベル (HDL、合成済みデザイ ン、 システム デザイン) でのプローブが可能

• HDL ソース を修正する必要な し

Tcl ベースのネ ッ ト リ ス ト 挿入プローブ フ ロー

set_property Tcl コマン ド を使用してデバッ グ ネ ッ ト に MARK_DEBUG プロパテ ィ を設定し、 ネ ッ ト リ ス ト 挿入プローブ Tcl コマン ド を使用し てデバッグ コ アを作成し、 それら をデバッ グ ネ ッ ト に接続し ます。

合成後の ILA コ アの挿入方法は、 「イ ンプ リ メ ン ト 済みネ ッ ト リ ス ト を変更して既存のデバッ グ プローブを置換」 を参照し て く ださ い。

• ネ ッ ト リ ス ト 挿入を完全に自動実行

• Tcl コマン ド を変更する こ と で、 デバッ グのオン/オフを切 り 替え可能

• HDL ソース を修正する必要な し

UltraFast 設計手法ガイ ド 190UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 191: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

MARK_DEBUG を使用し たデバッ グ プローブ ネ ッ ト の名前の保持

デバッ グする信号は、 RTL の段階または合成後にマークする こ と ができ ます。 ネ ッ ト に MARK_DEBUG 属性が設定されている と、 ネ ッ ト の複製、 リ タ イ ミ ング、 名前の変更、 削除などの 適化は実行されな く な り ます。MARK_DEBUG は、 上位ポー ト 、 ネ ッ ト 、 階層モジ ュール ポー ト 、 階層モジュール内部のネ ッ ト に適用でき ます。 この方法では、 ほ と んどの場合 HDL 信号が合成後に保持されます。 デバッ グ用にマーク されたネ ッ ト は、 合成後に [Debug] ウ ィ ン ド ウの [Unassigned Debug Nets] フ ォルダーに表示されます。

HDL フ ァ イルに mark_debug 属性を追加するには、 次のよ う に指定し ます。

VHDL :

attribute mark_debug : string;attribute keep : string;attribute mark_debug of sine : signal is "true";

Verilog :

(* mark_debug = "true" *) wire sine;

デバッ グ用のネ ッ ト は、 合成後のネ ッ ト リ ス ト にも追加でき ます。 この場合、 HDL ソース を変更する必要はあ り ません。 ただし、 ネ ッ ト リ ス ト の 適化によ り デザイ ン構造が吸収または統合されたために、 合成で元の RTL 信号が保持されない場合があ り ます。 合成後にデバッ グ用にネ ッ ト を追加するには、 次のいずれかの方法を使用でき ます。

• [Netlist]、 [Schematic] などの任意のウ ィ ン ド ウでネ ッ ト を右ク リ ッ ク し、 [Mark Debug] を ク リ ッ ク し ます。

• デザイ ン ビ ューのいずれかでネ ッ ト を選択し、 そのネ ッ ト を [Unassigned Debug Nets] フ ォルダーに ド ラ ッ グ アン ド ド ロ ッ プし ます。

• Set up Debug ウ ィ ザード のネ ッ ト セレ ク ターを使用し ます。

• [Properties] ウ ィ ン ド ウ または Tcl コ ン ソールを使用し て MARK_DEBUG プロパテ ィ を設定し ます。

set_property mark_debug true [get_nets -hier [list {sine[*]}]]

このコマン ド によ り 、 現在開いているネ ッ ト リ ス ト に mark_debug プロパテ ィ が追加されます。 こ の方法は、 Tcl コマン ド で MARK_DEBUG のオン/オフを切 り 替え る こ と ができ るので柔軟性があ り ます。

ILA コ アの使用

ILA (Integrated Logic Analyzer) コ アを使用する と、 FPGA デバイ スのイ ンプ リ メ ン ト 後のデザイ ンを イ ンシステムでデバッ グでき ます。 このコ アは、 デザイ ンの信号を監視する必要があ る場合に使用でき るほか、 ハード ウ ェ ア イベン ト を ト リ ガーし、 データ をシステム速度でキ ャプチャする ためにも使用でき ます。

ILA コ ア と タ イ ミ ングに関する考慮事項

ILA コ アを コ ンフ ィ ギュ レーシ ョ ンする と、 デザイ ン全体のタ イ ミ ング目標の達成に影響し ます。 タ イ ミ ングへの影響を 小限に抑え るためには、 次をお勧めし ます。

• プローブ幅を注意し て選択し ます。 プローブ幅が大きいほど、 リ ソース使用量と タ イ ミ ングの両方への影響も大き く な り ます。

• ILA コ アのデータの深さ を注意し て選択し ます。 データの深さが大きいほど、 ブロ ッ ク RAM リ ソース使用量とタ イ ミ ングの両方への影響も大き く な り ます。

• ILA に選択する ク ロ ッ クはフ リ ーラ ンニング ク ロ ッ ク にし ます。 そ う でない と、 デザイ ンがデバイ スに読み込まれた と きに、 デバッ グ コ ア と通信でき な く なる可能性があ り ます。

• dbg_hub へのク ロ ッ クはフ リ ーラ ンニング ク ロ ッ ク にし ます。 そ う でない と、 デザイ ンがデバイ スに読み込まれた と きに、 デバッ グ コ ア と通信でき な く なる可能性があ り ます。 Tcl コマン ド の connect_debug_port を使用する と、 デバッ グ ハブの clk ピンをフ リ ーラ ンニング ク ロ ッ ク に接続でき ます。

• デバッ グ コ アを追加する前にデザイ ンのタ イ ミ ング ク ロージャ を達成し ておき ます。 デバッ グ コ アは、 タ イ ミング関連の問題をデバッ グするためには使用し ないで く ださい。

UltraFast 設計手法ガイ ド 191UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 192: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

• ILA デバッ グ コ アを追加し たためにタ イ ミ ングが悪化し、 ク リ テ ィ カル パスが dbg_hub にあ る場合は、 次を実行し て く ださい。

a. 合成済みデザイ ンを開き ます。

b. ネ ッ ト リ ス ト で dbg_hub セルを見つけます。

c. dbg_hub のプロパテ ィ を確認し ます。

d. C_CLK_INPUT_FREQ_HZ プロパテ ィ を見つけます。

e. dbg_hub に接続される ク ロ ッ ク の周波数 (Hz) をそれに設定し ます。

f. C_ENABLE_CLK_DIVIDER プロパテ ィ を見つけて、 オンにし ます。

g. デザイ ンを イ ンプ リ メ ン ト し直し ます。

• ILA コ アへのク ロ ッ ク入力がプローブされた信号 と同期する よ う にし ます。 こ う し ておかない と、 デザイ ンがデバイ スにプロ グ ラ ム された と きに、 タ イ ミ ング問題が発生し た り 、 デバッ グ コ ア と通信できな く な る可能性があ り ます。

• ハード ウ ェ アで実行する前にデザイ ンがタ イ ミ ングを満たすよ う にし ておかない と、 結果の信頼性が低 く な ります。

次の表に、 特定の ILA 機能を使用し た場合のデザイ ン タ イ ミ ングおよび リ ソースへの影響を示し ます。

注記 : こ の表は 1 つの ILA を含むデザイ ンに基づいてお り 、 すべてのデザイ ンを表すものではあ り ません。

ヒ ン ト : FPGA デザイ ンの初期段階では通常、 FPGA 上にデバッ グに使用可能な余分な リ ソースがあ り ます。

表 5-9 : ILA 機能のデザイ ン タ イ ミ ングおよびリ ソースへの影響

ILA 機能 使用する状況 タ イ ミ ング エ リ ア

キャ プチャ制御/ ス ト レージ必要条件

• 関連データ をキ ャプチャする ため

• データ キ ャプチャ ス トレージ (BRAM) を効率的に使用する ため

影響 : 中~大 • 追加 BRAM な し

• LUT/FF 数が多少増加

ア ドバンス ト リ ガー

• BASIC ト リ ガー条件が不十分な場合

• 問題のエ リ アに焦点を置 くために複雑な ト リ ガーを使用する場合

影響 : 大 • 追加 BRAM な し

• LUT/FF 数が中程度増加

プローブ ポー ト ご とのコ ンパレータ数 注記 : 大値は 4

複数の条件文でプローブを使用する場合

• 基本 ト リ ガー : 1 ~ 2

• ア ド バン ス ト リ ガー : 1 ~ 4

• キ ャプチャ制御 : 1 以上

影響 : 中~大 • 追加 BRAM な し

• LUT/FF 数が多少から中程度増加

データの深さよ り 多 く のデータ サンプルをキ ャプチャする ため

影響 : 大 • ILA コ アご と に追加の BRAM

• LUT/FF 数が多少増加

ILA プローブ ポー ト幅

ス カ ラーでな く 大型バス をデバッ グする ため

影響 : 中 • ILA コ アご と に追加 BRAM

• LUT/FF 数が多少増加

プローブ ポー ト 数多数のネ ッ ト をプローブするため

影響 : 小 • ILA コ アご と に追加 BRAM

• LUT/FF 数が多少増加

UltraFast 設計手法ガイ ド 192UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 193: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

ク ロ ッ ク が高速のデザイ ンでは、 次を考慮し て く ださい。

• デバッ グする信号の数および幅を制限し ます。

• ILA への入力プローブをパイプラ イ ン処理し (C_INPUT_PIPE_STAGES)、 追加のパイプラ イ ン段を イネーブルにし ます。

使用可能な MMCM/BUFG が制限されるデザイ ンでは、 デバッ グ ハブ内のク ロ ッ ク分周期を使用するのではな く 、デバッ グ ハブをデザイ ンの 低のク ロ ッ ク周波数を供給する こ と を考慮し て く ださい。

Vivado IP イ ンテグレーターを使用し たデザイ ンのデバッ グ

IP イ ンテグレーターでは、 デザイ ンをデバッ グ用に設定する方法が複数あ り ます。 次のいずれかのフ ローを使用して、 デバッ グ コ アを IP イ ンテグレーター デザイ ンに追加でき ます。 どのフ ローを選択するかは、 ユーザーの好みと、 デバッ グするネ ッ ト および信号のタ イプによ り ます。

• IP コ ア (HDL) イ ン ス タ ンシエーシ ョ ン フ ロー

このフ ローは、 次を実行する場合に使用し ます。

° MicroBlaze デバイ ス または Zynq-7000 AP SoC のク ロ ス ト リ ガー機能を使用し たハード ウ ェ ア d /ソ フ ト ウ ェアの協調検証

° イ ン ターフ ェ イ ス レベルの接続性を検証

• ネ ッ ト リ ス ト 挿入フ ロー

このフ ローは、 I/O ポー ト および内部ネ ッ ト を解析する場合に使用し ます。

注記 : これらのフ ローを組み合わせて使用し てデザイ ンをデバッ グする こ と も可能です。

IP イ ンテグレーター デザイ ンでの ILA の使用に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : IP イ ンテグレーターを使用し た IP サブシステムの設計』 (UG994) [参照 26] を参照し て く ださい。

デバッ グ関連の DRC の実行

Vivado Design Suite ではデバッ グ関連の DRC が提供されてお り 、 report_drc を実行する際にデフ ォル ト のルール デッ ク の一部 と し て選択されています。 これらの DRC では、 次がチェ ッ ク されます。

• デバッ グ コ アの現在の要件のためにデバイ スのブロ ッ ク RAM リ ソースが超過し ているか

• ク ロ ッ ク以外のネ ッ ト がデバッ グ コ アのク ロ ッ ク ポー ト に接続されているか

• デバッ グ コ アのポー ト が未接続になっているか

AXI ト ラ ンザク シ ョ ンの生成

JTAG-to-AXI デバッ グ コ アは、 ハード ウ ェ アで実行される さ まざまな AXI フルおよび AXI Lite ス レーブ コ ア とや りと り する AXI ト ラ ンザク シ ョ ンを生成する ために使用されます。 IP カ タ ロ グからデザイ ンにこのコ アを イ ン ス タ ンシエー ト する と、 AXI ト ラ ンザク シ ョ ンが生成され、 ラ ン タ イ ム時に FPGA 内部への AXI 信号がデバッ グ/駆動されます。 このコ アは、 プロセ ッ サのないデザイ ンにも使用でき ます。

イ ンプ リ メ ン ト 済みネ ッ ト リ ス ト を変更し て既存のデバッ グ プローブを置換

配置配線済みのデザイ ン チェ ッ ク ポイ ン ト で、 ILA コ アに接続されているデバッ グ ネ ッ ト を置換でき ます。 これには、 通常エンジニア リ ング チェ ンジ オーダー (ECO) を使用し ます。 これは、 完成に近づいてお り 、 既存の ILA プローブ ポー ト に接続されているネ ッ ト を交換する必要があ るデザイ ンに使用される ア ド バン ス デザイ ン フ ローです。 ECO フ ローを使用し て既存の ILA コ アのネ ッ ト を変更する方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904) [参照 19] のこ のセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 193UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 194: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

第 5 章 : デザイ ン ク ロージャ

イ ンプ リ メ ン ト 済みネ ッ ト リ ス ト での ILA コ アの挿入、 削除、 および変更

ILA コ アを追加、 削除、 または変更する場合は (プローブの幅の変更、 データ深さ の変更など)、 イ ン ク リ メ ン タル コ ンパイル フ ローを使用する こ と をお勧めし ます。 デバッ グ コ ア用のイ ン ク リ メ ン タル コ ンパイル フ ローは、 合成済みデザイ ン またはチェ ッ ク ポイ ン ト (DCP) に対し て実行し、 基準のイ ンプ リ メ ン ト 済みチェ ッ ク ポイ ン ト (理想的には前回のイ ンプ リ メ ンテーシ ョ ン run からのチェ ッ ク ポイ ン ト ) を使用し ます。 この方法を使用する と、 デザインを完全に再イ ンプ リ メ ン ト する よ り も時間を短縮でき ます。 イ ン ク リ メ ン タル コ ンパイル フ ローを使用し て ILA コ アを挿入、 削除、 または変更する方法の詳細は、 『Vivado Design Suite ユーザー ガイ ド : プロ グ ラ ムおよびデバッグ』 (UG908) [参照 24] のこ のセ ク シ ョ ンを参照し て く ださい。

UltraFast 設計手法ガイ ド 194UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 195: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

付録 A

その他のリ ソースおよび法的通知

ザイ リ ン クス リ ソース

アンサー、 資料、 ダウ ン ロード、 フ ォーラ ムなどのサポー ト リ ソースは、 ザイ リ ン ク ス サポー ト サイ ト を参照し てく ださい。

ソ リ ューシ ョ ン セン ター

デバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ン ク ス ソ リ ューシ ョ ン セン ターを参照し て く ださい。 デザイン アシス タ ン ト 、 ア ド バイザ リ 、 ト ラブルシューテ ィ ングの ヒ ン ト などが含まれます。

参考資料

このガイ ド の補足情報は、 次の資料を参照し て く ださい。

注記 : 日本語版のバージ ョ ンは、 英語版よ り 古い場合があ り ます。

1. Vivado® Design Suite の資料

2. UltraFast™ 設計手法チェ ッ ク リ ス ト

Vivado Design Suite ユーザー ガイ ド およびリ フ ァ レンス ガイ ド

3. 『Vivado Design Suite ユーザー ガイ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよびラ イ セン ス』 (UG973)

4. 『Vivado Design Suite ユーザー ガイ ド : I/O およびク ロ ッ ク プラ ンニング』 (UG899)

5. 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892)

6. 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)

7. 『Vivado Design Suite ユーザー ガイ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894)

8. 『Vivado Design Suite ユーザー ガイ ド : システム レベル デザイ ン入力』 (UG895)

9. 『Vivado Design Suite ユーザー ガイ ド : IP を使用し た設計』 (UG896)

10. 『Vivado Design Suite ユーザー ガイ ド : エンベデッ ド プロセ ッ サ ハード ウ ェア デザイ ン』 (UG898)

11. 『Vivado Design Suite ユーザー ガイ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900)

12. 『Vivado Design Suite ユーザー ガイ ド : 入門』 (UG910)

13. 『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガイ ド』 (UG835)

14. 『Vivado Design Suite プロパテ ィ リ フ ァ レ ン ス ガイ ド』 (UG912)

UltraFast 設計手法ガイ ド 195UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 196: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

付録 A : その他のリ ソースおよび法的通知

15. 『AXI BFM Cores LogiCORE IP 製品ガ イ ド』 (PG129)

16. 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901)

17. 『Vivado Design Suite ユーザー ガイ ド : 高位合成』 (UG902)

18. 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903)

19. 『Vivado Design Suite ユーザー ガイ ド : イ ンプ リ メ ンテーシ ョ ン』 (UG904)

20. 『Vivado Design Suite ユーザー ガイ ド : 階層デザイ ン』 (UG905)

21. 『Vivado Design Suite ユーザー ガイ ド : デザイ ン解析およびク ロージ ャ テ ク ニ ッ ク』 (UG906)

22. 『Vivado Design Suite ユーザー ガイ ド : 消費電力の解析と 適化』 (UG907)

23. 『Xilinx Power Estimator ユーザー ガイ ド』 (UG440)

24. 『Vivado Design Suite ユーザー ガイ ド : プロ グ ラ ムおよびデバッ グ』 (UG908)

25. 『Vivado Design Suite ユーザー ガイ ド : パーシ ャル リ コ ンフ ィ ギュ レーシ ョ ン』 (UG909)

26. 『Vivado Design Suite ユーザー ガイ ド : IP イ ンテグレーターを使用し た IP サブシステムの設計』 (UG994)

27. 『Vivado Design Suite ユーザー ガイ ド : カス タ ム IP の作成およびパッ ケージ』 (UG1118)

Vivado Design Suite チュー ト リ アル

28. 『Vivado Design Suite チュー ト リ アル : 高位合成』 (UG871)

29. 『Vivado Design Suite チュー ト リ アル : デザイ ン フ ローの概要』 (UG888)

30. 『Vivado Design Suite チュー ト リ アル : リ ビジ ョ ン管理システム』 (UG1198)

31. 『Vivado Design Suite チュー ト リ アル : I/O およびク ロ ッ ク プラ ンニング』 (UG935)

32. 『Vivado Design Suite チュー ト リ アル : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG937)

33. 『Vivado Design Suite チュー ト リ アル : エンベデッ ド プロセ ッサ ハード ウ ェア デザイ ン』 (UG940)

34. 『Vivado Design Suite チュー ト リ アル : パーシャル リ コ ンフ ィ ギュ レーシ ョ ン』 (UG947)

その他のザイ リ ン クス資料

35. 『7 シ リ ーズ FPGA PCB デザイ ン ガイ ド』 (UG483 : 英語版、 日本語版)

『UltraScale アーキテ クチャ PCB デザイ ン ユーザー ガイ ド』 (UG583 : 英語版、 日本語版)

『Zynq-7000 All Programmable SoC PCB デザイ ン ガイ ド』 (UG933 : 英語版、 日本語版)

36. 『UltraFast エンベデッ ド デザイ ン設計手法ガイ ド』 (UG1046 : 英語版、 日本語版)

37. 『7 シ リ ーズ FPGA コ ンフ ィ ギ ュ レーシ ョ ン ユーザー ガイ ド』 (UG470 : 英語版、 日本語版)

『UltraScale アーキテ クチャ コ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド』 (UG570 : 英語版、 日本語版)

38. 『7 シ リ ーズ FPGA SelectIO リ ソース ユーザー ガイ ド』 (UG471 : 英語版、 日本語版)

『UltraScale アーク テ クチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571 : 英語版、 日本語版)

39. 『7 シ リ ーズ FPGA ク ロ ッ キング リ ソース ユーザー ガイ ド』 (UG472 : 英語版、 日本語版)

『UltraScale アーキテ クチャ ク ロ ッ キング リ ソース ユーザー ガイ ド』 (UG572 : 英語版、 日本語版)

40. 『UltraScale アーキテ クチャ GTH ト ラ ンシーバー ユーザー ガイ ド』 (UG576 : 英語版、 日本語版)

『UltraScale アーキテ クチャ GTY ト ラ ンシーバー ユーザー ガイ ド』 (UG578 : 英語版、 日本語版)

41. 『UltraScale Architecture Gen3 Integrated Block for PCI Express LogiCORE IP 製品ガイ ド』 (PG156 : 英語版、 日本語版)

UltraFast 設計手法ガイ ド 196UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 197: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

付録 A : その他のリ ソースおよび法的通知

42. 『7 シ リ ーズ FPGA メ モ リ リ ソース ユーザー ガイ ド』 (UG473 : 英語版、 日本語版)

43. 『7 シ リ ーズ FPGA DSP48E1 ス ラ イ ス ユーザー ガイ ド』 (UG479 : 英語版、 日本語版)

44. 『UltraScale アーキテ クチャ DSP ス ラ イ ス ユーザー ガイ ド』 (UG579 : 英語版、 日本語版)

45. 『7 シ リ ーズ FPGA および Zynq-7000 All Programmable SoC XADC デュ アル 12 ビ ッ ト 1MSPS アナロ グ-デジ タル コンバーター ユーザー ガ イ ド』 (UG480 : 英語版、 日本語版)

46. 『 リ フ ァ レン ス システム : IP イ ンテグレーターを用いた Kintex-7 MicroBlaze システム シ ミ ュ レーシ ョ ン』 (XAPP1180 : 英語版、 日本語版)

47. 『Zynq-7000 AP SoC および 7 シ リ ーズ FPGA メ モ リ イ ン ターフ ェ イ ス ソ リ ューシ ョ ン ユーザー ガイ ド』 (UG586 : 英語版、 日本語版)

48. 『UltraScale アーキテ クチャ FPGA メ モ リ IP LogiCORE IP 製品ガイ ド』 (PG150 : 英語版、 日本語版)

49. ザイ リ ン ク ス ホ ワ イ ト ペーパー : 『S パラ メ ーター モデルを使用し た FPGA パワー イ ンテグ リ テ ィ 』 (WP411)

50. 7 シ リ ーズ回路図レ ビ ュー推奨事項 (XMP277)

51. UltraScale アーキテ クチャ回路図レ ビ ュー チェ ッ ク リ ス ト (XTP344)

52. 『UltraScale FPGA の BPI コ ンフ ィ ギ ュ レーシ ョ ンおよびフ ラ ッ シ ュ プロ グ ラ ム』 (XAPP1220 : 英語版、 日本語版)

53. 『7 シ リ ーズ FPGA の BPI 高速コ ンフ ィ ギ ュ レーシ ョ ンおよび iMPACT フ ラ ッ シ ュ プロ グ ラ ム』 (XAPP587 : 英語版、 日本語版)

54. 『SPI フ ラ ッ シュ を使用し た 7 シ リ ーズ FPGA のコ ンフ ィ ギュ レーシ ョ ン』 (XAPP586 : 英語版、 日本語版)

55. 『UltraScale FPGA の SPI コ ンフ ィ ギュ レーシ ョ ンおよびフ ラ ッ シュ プロ グ ラ ム』 (XAPP1233)

56. 『暗号化を使用し て 7 シ リ ーズ FPGA のビ ッ ト ス ト リ ームを保護』 (XAPP1239 : 英語版、 日本語版)

ヒ ン ト : すべてのザイ リ ン ク スの資料は、 Documentation Navigator から入手でき ます。 詳細は、 「その他の資料およびト レーニングへのア ク セス」 を参照し て く ださい。

ト レーニング リ ソース

ザイ リ ン ク スでは、 本書に含まれる コ ンセプ ト を説明する さ まざまな ト レーニング コースおよびオン ラ イ ン ビデオを提供し ています。 次の リ ン ク から関連する ト レーニング リ ソース を参照し て く ださい。

1. Vivado での FPGA 設計導入 ト レーニング コース

2. Vivado Design Suite QuickTake ビデオ : UltraFast Vivado 設計手法

3. Vivado Design Suite QuickTake ビデオ : Vivado デザイ ン フ ローの概要

4. Vivado Design Suite QuickTake ビデオ : Vivado IP イ ンテグレーターを使用し たデザイ ン

5. Vivado Design Suite QuickTake ビデオ : Vivado IP イ ンテグレーターを使用し た Zynq デバイ スの設計

6. Vivado Design Suite QuickTake ビデオ : Vivado でパーシャル リ コ ンフ ィ ギュ レーシ ョ ンを実行

7. Vivado Design Suite QuickTake ビデオ : さ まざまな タ イプのプロ ジェ ク ト の作成

8. Vivado Design Suite QuickTake ビデオ : プロ ジェ ク ト でソース フ ァ イルを管理

9. Vivado Design Suite QuickTake ビデオ : Vivado Design Suite の リ ビジ ョ ン管理システム と の使用

10. Vivado Design Suite QuickTake ビデオ : Vivado IP のバージ ョ ン ア ッ プグレード の管理

11. Vivado Design Suite QuickTake ビデオ : I/O 配置の概要

12. Vivado Design Suite QuickTake ビデオ : Vivado での再利用可能な IP のコ ンフ ィ ギュ レーシ ョ ンおよび管理

13. Vivado Design Suite QuickTake ビデオ : Vivado で write_bitstream コマン ド を使用する方法

14. Vivado Design Suite QuickTake ビデオ : IP のカ ス タマイ ズおよびイ ン ス タ ンシエーシ ョ ン

UltraFast 設計手法ガイ ド 197UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com

Page 198: UltraFast 設計手法ガイド (Viv do Design Suite 用) …japan.origin.xilinx.com/support/documentation/sw_manuals...UltraFast 設計手法ガイド (Vivado Design Suite 用) UG949

付録 A : その他のリ ソースおよび法的通知

15. Vivado Design Suite QuickTake ビデオ : Vivado でのデザイ ン解析およびフ ロ アプラ ン

16. Vivado Design Suite QuickTake ビデオ : UltraFast 設計手法ガイ ド チェ ッ ク リ ス ト の説明

17. Vivado Design Suite ビデオ チュー ト リ アル

お読み く だ さい : 重要な法的通知本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開示される情報 (以下 「本情報」 と いいます) は、 ザイ リ ン ク スの製品を選択および使用する こ と のためにのみ提供されます。 適

用される法律が許容する 大限の範囲で、 (1) 本情報は 「現状有姿」、 およびすべて受領者の責任で (with all faults) と い う 状態で提供

され、 ザイ リ ン ク スは、 本通知を も って、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますが これ

らに限られません)、 すべての保証および条件を負わない (否認する ) もの と し ます。 また、 (2) ザイ リ ン ク スは、 本情報 (貴殿または

貴社によ る本情報の使用を含む) に関係し、 起因し、 関連する、 いかな る種類 ・ 性質の損失または損害について も、 責任を負わな

い (契約上、 不法行為上 (過失の場合を含む)、 その他のいかなる責任の法理によ るかを問わない) もの と し、 当該損失または損害に

は、 直接、 間接、 特別、 付随的、 結果的な損失または損害 (第三者が起こ し た行為の結果被った、 データ、 利益、 業務上の信用の

損失、 その他あ らゆる種類の損失や損害を含みます) が含まれる もの と し、 それは、 た と え当該損害や損失が合理的に予見可能で

あった り 、 ザイ リ ン ク スがそれらの可能性について助言を受けていた場合であった と し て も同様です。 ザイ リ ン ク スは、 本情報に

含まれるいかな る誤 り も訂正する義務を負わず、 本情報または製品仕様のア ッ プデー ト を貴殿または貴社に知らせる義務も負いま

せん。 事前の書面によ る同意のない限 り 、 貴殿または貴社は本情報を再生産、 変更、 頒布、 または公に展示し てはな り ません。 一

定の製品は、 ザイ リ ン ク スの限定的保証の諸条件に従 う こ と と な るので、 http://japan.xilinx.com/legal.htm#tos で見られるザイ リ ン ク

スの販売条件を参照し て く だ さい。 IP コ アは、 ザイ リ ン ク スが貴殿または貴社に付与し た ラ イセン スに含まれる保証と補助的条件

に従 う こ と にな り ます。 ザイ リ ン ク スの製品は、 フ ェ イルセーフ と し て、 または、 フ ェ イルセーフの動作を要求する アプ リ ケー

シ ョ ンに使用する ために、 設計された り 意図された り し ていません。 そのよ う な重大なアプ リ ケーシ ョ ンにザイ リ ン ク スの製品を

使用する場合の リ ス ク と 責任は、 貴殿または貴社が単独で負 う ものです。 http://japan.xilinx.com/legal.htm#tos で見られるザイ リ ン ク

スの販売条件を参照し て く だ さい。

© Copyright 2013-2016 Xilinx, Inc. Xilinx、 Xilinx のロ ゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこ の文書に含

まれるその他の指定されたブラ ン ド は、 米国およびその他各国のザイ リ ン ク ス社の商標です。 AMBA、 AMBA Designer、 ARM、

ARM1176JZ-S、 CoreSight、 Cortex、 および PrimeCellARM は、 EU およびその他各国の ARM 社の商標です。 MATLAB および Simulink は、 MathWorks, Inc. の登録商標です。 OpenCL および OpenCL のロ ゴは Apple Inc. の商標であ り 、 Khronos によ る許可を受け

て使用されています。 PCI、 PCIe、 および PCI Express は PCI-SIG の商標であ り 、 ラ イセン スに基づいて使用されています。 すべての

その他の商標は、 それぞれの保有者に帰属し ます。

こ の資料に関する フ ィ ード バッ クおよび リ ン ク などの問題につき ま し ては、 [email protected] まで、 または各ページの

右下にあ る [フ ィ ード バッ ク送信] ボ タ ンを ク リ ッ クする と 表示される フ ォームからお知らせ く ださい。 フ ィ ード バッ クは日本語で

入力可能です。 いただき ま し たご意見を参考に早急に対応させていただき ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受

け付けてお り ません。 あ らかじめご了承 く ださい。

UltraFast 設計手法ガイ ド 198UG949 (v2016.2) 2016 年 6 月 8 日 japan.xilinx.com