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

UltraFast 設計手法ガ イ ド
(Vivado Design Suite 用)
UG949 (v2015.3) 2015 年 11 月 23 日
本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。
資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新
情報につきましては、必ず最新英語版をご参照ください。
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
改訂内容
2015 年 11 月 23 日
2015.3
第 2 章 「Vivado Design Suite の使用」 : 「IP コ ア コ ン テナーの使用」 を追加、 「 ロ ジ ッ ク
シ ミ ュ レーシ ョ ン」 を ア ッ プデー ト 、「管理する こ と が推奨 さ れ る ソ ース フ ァ イ ル」、「管
理に最低限必要な ソ ース フ ァ イ ル」、 お よ び 「Vivado Design Suite の ソ ース タ イ プ」 に
コ ア コ ン テナー フ ァ イ ルに関す る 情報を追加、 「IP ソ ース の管理」 に コ ア コ ン テナー
に関す る 情報を追加
第 3 章 「ボー ド お よ びデバ イ ス プ ラ ン ニ ン グ」 : 表 3-1 を ア ッ プデー ト 、 「SLR の使用に
関す る 考慮事項」 お よ び 「幅の広いバ ス が SLR を ま た ぐ 場合」 を追加
第 4 章 「デザ イ ンの作成」 : 「UltraScale デバ イ ス の ク ロ ッ キ ン グ」 お よ び 「パ イ プ ラ イ
ンに関す る 注意事項」 を ア ッ プデー ト
第 5 章 「 イ ン プ リ メ ン テ ー シ ョ ン」
:
「ク ロ ッ ク の ス キ ュ ー と ば ら つ き」 に
report_design_analysis に関する 情報を追加
図 2-1 を ア ッ プデー ト
2015 年 6 月 1 日
2015.1
第 2 章 「Vivado Design Suite の使用」 の構成を変更 し 、 内容を ア ッ プデー ト ( 「 ソ ース管
理お よ び リ ビ ジ ョ ン管理の推奨事項」 セ ク シ ョ ンの追加を含む)
第 3 章 「ボー ド お よ びデバ イ ス プ ラ ン ニ ン グ」 の 「I/O プ ラ ン ニ ン グ デザ イ ン フ ロ ー」
を ア ッ プデー ト
第 4 章 「デザ イ ンの作成」 の構成を変更 し 、 内容を ア ッ プデー ト
第 5 章 「 イ ンプ リ メ ン テーシ ョ ン」 の 「 タ イ ミ ン グ ク ロ ージ ャ 」 を ア ッ プデー ト (デザ
イ ンの一般的なボ ト ルネ ッ ク の情報の 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン
解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906)への移動を含む)
第 6 章 「 コ ン フ ィ ギ ュ レーシ ョ ンお よ びデバ ッ グ」 の構成を変更 し 、 内容を ア ッ プデー
ト ( さ ま ざ ま な追加 リ ソ ースへの リ ン ク の追加を含む)
2014 年 10 月 14 日
2014.3
IP フ ロ ー関連のセ ク シ ョ ン を変更。 フ ィ ー ド バ ッ ク /提案に基づいて修正お よ び説明を
追加
2014 年 4 月 2 日
2014.1
「消費電力」 セ ク シ ョ ン を短縮。 「Vivado Design Suite フ ロ ー」 と 「コ ン フ ィ ギ ュ レーシ ョ
ンお よ びデバ ッ グ」 の章を大幅に変更。 タ イ プ ミ ス、 ヘデ ィ ン グ名/レベルな ど を修正
2013 年 12 月 18 日
2013.4
チ ェ ッ ク リ ス ト の付録を削除 ( こ れ ら の リ ン ク は、Documentation Navigator か ら 入手可能
なチ ェ ッ ク リ ス ト バージ ョ ンに変更)
2013 年 11 月 25 日
2013.3
目次の問題を修正
2013 年 10 月 27 日
2013.3
ハ イ パー リ ン ク を修正
2013 年 10 月 23 日
2013.3
初版
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
2
目次
第 1 章 : 概要
こ のユーザー ガ イ ド について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ガ イ ド の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ガ イ ド の適用範囲 と 参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
設計手法の必要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
設計手法チ ェ ッ ク リ ス ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
設計プ ロ セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
短時間検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
資料お よ び ト レーニ ン グへのア ク セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
第 2 章 : Vivado Design Suite の使用
Vivado Design Suite の使用の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vivado Design Suite の使用モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IP の コ ン フ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IP イ ン テ グ レー タ ーを使用し た IP サブシ ス テ ムの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
カ ス タ ム IP お よ び IP サブシ ス テ ムのパ ッ ケージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
カ ス タ ム ペ リ フ ェ ラ ルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ロ ジ ッ ク シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
合成、 イ ンプ リ メ ン テーシ ョ ン、 お よ びデザ イ ン解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ソ ース管理お よ び リ ビ ジ ョ ン管理の推奨事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
デザ イ ンお よ び IP の最新 Vivado Design Suite リ リ ースへのア ッ プグ レー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
17
20
23
26
27
28
35
36
49
第 3 章 : ボー ド およびデバイ ス プ ラ ン ニ ング
ボー ド お よ びデバ イ ス プ ラ ン ニ ン グの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCB レ イ ア ウ ト に関す る 推薦事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ク ロ ッ ク リ ソ ース のプ ラ ン ニ ン グお よ び割 り 当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O プ ラ ン ニ ン グ デザ イ ン フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FPGA の消費電力お よ びシ ス テ ムの依存性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Xilinx Power Estimator (XPE) を使用 し た ワ ース ト ケース消費電力解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
コ ン フ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
51
53
55
72
81
84
第 4 章 : デザイ ンの作成
デザ イ ンの作成の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
適切なデザ イ ン階層の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
RTL コ ー ド 記述のガ イ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
ク ロ ッ キ ン グ ガ イ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
IP (Intellectual Property) の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
制約の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
イ ンプ リ メ ン テーシ ョ ンの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
3
合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
合成属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ボ ト ムア ッ プ フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
合成後の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
デザ イ ンの イ ンプ リ メ ン テーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
タ イ ミ ン グ ク ロ ージ ャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
消費電力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
210
212
213
216
228
265
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
コ ン フ ィ ギ ュ レーシ ョ ンお よ びデバ ッ グの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
コ ン フ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
デバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
付録 A : ベース ラ イ ン制約の作成 と タ イ ミ ン グ制約の検証
概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
付録 B : その他の リ ソ ースおよび法的通知
ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ソ リ ュ ーシ ョ ン セ ン タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ト レーニ ン グ リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
お読み く だ さ い : 重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
292
292
292
294
295
4
第 1章
概要
こ のユーザー ガ イ ド について
ザ イ リ ン ク ス のプ ロ グ ラ マブル デバ イ ス には、 数百万 も の ロ ジ ッ ク セル (LC) が含まれてお り 、 近年市場を伸ば し 続
けてい る 次の よ う な複雑な電子シ ス テ ムが統合 さ れてい ます。
•
エンベデ ッ ド サブシ ス テ ム
•
アナ ロ グお よ びデジ タ ル プ ロ セ ッ シ ン グ
•
高速接続
•
ネ ッ ト ワー ク プ ロ セ ッ シ ン グ
RTL か ら 多 く の大規模 ロ ジ ッ ク を 合成 し 、 ザ イ リ ン ク ス ま た はサー ド パー テ ィ か ら の IP (Intellectual Property) モ
ジ ュ ールを再利用す る と 、 こ の よ う な複雑なシ ス テ ム を短期間で作成で き ます。
こ のプ ロ セ ス は複雑であ る ため、 「UltraFast™ 設計手法」 と 呼ばれ る 一連の最適手法を使用 し て、 シ ス テ ム統合お よ
びデザ イ ン イ ンプ リ メ ン テーシ ョ ンの両方で生産性を最大限に高め る こ と が重要にな り ます。
ガ イ ド の内容
こ のガ イ ド では、 デザ イ ン イ ン プ リ メ ン テーシ ョ ン を効率的にすばや く 達成 し 、 ザ イ リ ン ク ス デバ イ スお よ びツー
ルの機能を最大限に活用す る ための、 設計手法プ ロ セ ス を説明 し ます。
ほ と ん ど の場合、 推奨 さ れ る 手法の根拠が示 さ れます。 根拠を理解す る こ と で、 推奨 さ れ る 手法 と 違 う 手法を使用 し
た場合に発生す る 可能性のあ る 問題を把握 し 、 適切な予防措置を取 る こ と がで き ます。
ガ イ ド の適用範囲 と 参考資料
こ の ガ イ ド は主にザ イ リ ン ク ス Vivado® Design Suite 用に記述 さ れ て い ま すが、 ほ と ん ど の概念的な 情報は ISE®
Design Suite に も 応用で き ます。 含まれ る 内容は、 概要、 デザ イ ン ガ イ ド ラ イ ン、 デザ イ ン決定の ト レー ド オ フ な ど
です。
こ のガ イ ド には、 Vivado Design Suite ユーザー ガ イ ド 、 Vivado Design Suite チ ュ ー ト リ アル、 お よ び オン ラ イ ン ビデ
オ チ ュ ー ト リ アルな ど のその他の資料への リ フ ァ レ ン ス も 含まれます。こ のガ イ ド はそれ ら の資料に置 き 換わ る も の
ではあ り ません。ツールの使用方法お よ び設計手法を含む詳細お よ び最新情報は、 こ れ ら の資料を参照 し て く だ さ い。
参照資料はすべて付録 B 「その他の リ ソ ースお よ び法的通知」 に リ ス ト さ れてい ます。
こ のガ イ ド では、 さ ま ざ ま な箇所で特定の タ ス ク を実行する Vivado ツール コ マ ン ド が示 さ れてい ます。 コ マ ン ド に
-help オプシ ョ ン を付けて実行す る と 、 使用例 も 含め、 詳細な情報が表示 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
5
第 1 章 : 概要
設計手法の必要性
近年複雑 さ を増 し 続け る 電子製品で使用 さ れ る 高度な アルゴ リ ズ ムに よ り 、 集積度、 パフ ォーマ ン ス、 消費電力の限
界が押 し 上げ ら れて い ま す。 こ のた め、 予算内で目標期限内にデザ イ ン を 完成す る には、 多 く の課題が あ り ま す。
UltraFast 設計手法を使用す る と 、 プ ロ ジ ェ ク ト 管理者が次を達成で き る よ う にな り ます。
•
タ イ ム ト ゥ マーケ ッ ト の短縮に よ り 、 製品収益お よ びマーケ ッ ト シ ェ ア を増加
•
プ ロ ジ ェ ク ト の ス ケ ジ ュ ールお よ び コ ス ト を正確に概算 し 、 リ ス ク を削減
こ のガ イ ド には、 ボー ド プ ラ ン ニ ン グ、 デザ イ ン作成、 IP 統合、 デザ イ ン イ ンプ リ メ ン テーシ ョ ン、 ク ロ ージ ャ テ
ク ニ ッ ク 、 プ ロ グ ラ ム、 お よ びハー ド ウ ェ ア デバ ッ グに関す る ベ ス ト プ ラ ク テ ィ ス が ま と め ら れてい ます。 こ れ ら
のベス ト プ ラ ク テ ィ スお よ び推奨事項は、 過去数年のエキ ス パー ト ユーザーの経験を基に記述 さ れてい ます。 こ の
ガ イ ド の推奨事項に従 う と 、 多 く のザ イ リ ン ク ス カ ス タ マー と 同様、 設計プ ロ セ ス を ス ムーズに実行で き る よ う にな
り ます。
Vivado Design Suite では、 次を提供す る こ と で、 UltraFast 設計手法の一部が自動化 さ れてい ます。
•
DRC ルールに よ り 、 HDL コ ー ド お よ び XDC 制約に関する ガ イ ダ ン ス が提供 さ れ る ので、 フ ロ ーの早期にデザ イ
ンの質を改善 し 、 反復作業に コ ス ト がかか る ダ ウ ン ス ト リ ームでの問題を回避で き ます。
•
特定の HDL コー ド お よび XDC 制約に対する検証済みテ ンプ レー ト に よ り 、構造上最適な コー ド を記述で き ます。
こ れ ら の DRC チ ェ ッ ク お よ び HDL/XDC テ ンプ レー ト は UltraFast 設計手法の一部であ り 、DRC お よ び Vivado Design
Suite で提供 さ れてい る テ ン プ レー ト に従っ た コ ー ド を使用す る こ と に よ り 、 デザ イ ン を短期間で完成 さ せ る こ と が
容易にな り ます。
設計手法チ ェ ッ ク リ ス ト
こ のガ イ ド は、 設計手法チ ェ ッ ク リ ス ト と 合わせて使用す る こ と をお勧め し ます。 チ ェ ッ ク リ ス ト には、 プ ラ ニ ン グ
か ら その後に続 く すべての段階のデザ イ ン プ ロ セ ス に関する よ く あ る 質問や推奨 さ れ る 操作が含まれます。チ ェ ッ ク
リ ス ト の質問は、 後の段階に悪影響を及ぼす可能性のあ る デザ イ ンの決定事項に関する も ので、 知 ら れていなか っ た
り 、 無視 さ れて し ま いがちな問題が含まれます。
ビデオ : チ ェ ッ ク リ ス ト の詳細は、Vivado Design Suite ビデオ チ ュ ー ト リ アル : UltraFast 設計手法チ ェ ッ ク リ ス ト の説
明を参照 し て く だ さ い。
ほ と ん ど のチ ェ ッ ク リ ス ト の質問には、 こ のガ イ ド ま たはその他のザ イ リ ン ク ス資料への リ ン ク があ り ます。 こ れ ら
の参考資料は、 質問に関連 し たデザ イ ンの考慮事項に対処す る ためのガ イ ダ ン ス と し て ご使用 く だ さ い。
Vivado Design Suite には、 Documentation Navigator が含まれます ( 「Documentation Navigator の使用」 を参照)。 チ ェ ッ
ク リ ス ト の機能を使用す る には、 Documentation Navigator 2013.4 バージ ョ ン以降を ご使用 く だ さ い。
注記 : 日本語版のチ ェ ッ ク リ ス ト は、 現在の と こ ろ Documentation Navigator か ら は使用で き ません。 ス プ レ ッ ド シー
ト バージ ョ ン を参照 し て く だ さ い。
Documentation Navigator か ら 設計手法チ ェ ッ ク リ ス ト を使用する には、 次の手順に従い ます。
1.
[Design Hub View] タ ブ を ク リ ッ ク し ます。
2.
左側の メ ニ ュ ーの上部にあ る [Create Design Checklist] を ク リ ッ ク し ます。
3.
[New Design Checklist] ダ イ ア ロ グ ボ ッ ク ス に情報を入力 し 、 [OK] を ク リ ッ ク し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
6
第 1 章 : 概要
4.
新 し いチ ェ ッ ク リ ス ト が開 き ます。 次の図に示すチ ェ ッ ク リ ス ト の一番上の タ ブは、 ナビ ゲーシ ョ ン と し て使用
し ます。 [Title Page] タ ブには、 チ ェ ッ ク リ ス ト を使用す る 際の基本的な情報が含まれます。 ほかの タ ブ を ク リ ッ
ク す る と 、 チ ェ ッ ク リ ス ト の質問お よ びガ イ ダ ン ス が表示 さ れます。
X-Ref Target - Figure 1-1
図 1-1 : Documentation Navigator の設計手法チ ェ ッ ク リ ス ト の タ ブ
日本語版の ス プ レ ッ ド シー ト も 入手可能です。
設計プ ロ セス
次の図は、 設計プ ロ セ ス の手順を示 し てい ます。 こ れ ら の手順は、 通常時間的に重複 し てい ます。 ま た、 プ ロ セ ス に
よ っ ては、 前の手順に戻っ て作業を繰 り 返す必要があ る 場合 も あ り ます。
X-Ref Target - Figure 1-2
ኴዊንኄኌእ栚ⱚኴ዆ዐከዐኍ
ኹዙኦርቫቖ)3*$ኴ዆ዐከዐኍ
ኤናኁዐ⇫㒟
ኁዐኴ዇ኾዐኣዙኔዄዐ
ነዐኲኀኋዂዉዙኔዄዐቋኤክአኍ
;
図 1-2 : 設計プ ロ セスの手順
チ ェ ッ ク リ ス ト お よ び こ の手法ガ イ ド は、 デザ イ ン段階別に分類 さ れてい ます。 各デザ イ ン段階を開始す る と き に、
チ ェ ッ ク リ ス ト の該当す る タ ブ と こ のガ イ ド の該当す る 章を参照 し て く だ さ い。
こ のガ イ ド では、 デザ イ ン バジ ェ ッ ト (エ リ ア、 消費電力、 タ イ ミ ン グ な ど) の監視 と 初期段階か ら デザ イ ン を修正
す る こ と の重要性について示 し ます。 ま た、 イ ンプ リ メ ン テーシ ョ ン段階の前に、 シ ス テ ムの正 し い タ イ ミ ン グ制約
を作成す る こ と が重要であ る こ と も 示 し ます。 Vivado ツールではフ ロ ー全体で タ イ ミ ン グ ド リ ブ ン アルゴ リ ズ ムが
使用 さ れ る ので、 デザ イ ンにはデザ イ ン フ ロ ーの最初か ら 制約を正 し く 設定する 必要があ り ます。
正 し い タ イ ミ ン グ を指定す る には、まず各マ ス タ ー ク ロ ッ ク と それ ら に関連す る 生成 ク ロ ッ ク 間の関係を解析す る 必
要があ り ます。 Vivado ツール (XDC) では、 ISE (UCF) と は異な り 、 非同期ま たはフ ォ ルス パ ス と し て明確に宣言 さ れ
ていない限 り 、 すべての ク ロ ッ ク 間の タ イ ミ ン グが解析 さ れ ます。 タ イ ミ ン グ解析は合成後に実行す る 必要があ り 、
イ ン プ リ メ ン テーシ ョ ン の各段階で も 次の段階に進む前に正 し い制約を使用 し て タ イ ミ ン グが満た さ れてい る こ と
が必要です。
こ の推奨事項に従い、 Vivado Design Suite の イ ン タ ラ ク テ ィ ブな解析環境を使用す る こ と に よ り 、 全体的な タ イ ミ ン
グお よ び イ ン プ リ メ ン テーシ ョ ンの期間が短縮 さ れ ます。 上記 と こ のガ イ ド の HDL 設計ガ イ ド ラ イ ン を合わせて使
用す る こ と で、 さ ら に高速化で き ます。 次の図に、 効率的な手法の概要を示 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
7
第 1 章 : 概要
X-Ref Target - Figure 1-3
⚗㒟ቑ⸮嫛
ኇኴኔዄዐርቫቖ
+'/ነዙኦቑ䭉崜
UHSRUWBFORFNBQHWZRUNV
!FUHDWHBFORFNFUHDWHBJHQHUDWHGBFORFN
UHSRUWBFORFNBLQWHUDFWLRQ
!VHWBFORFNBJURXSVVHWBIDOVHBSDWK
FKHFNBWLPLQJ
!,2拔ㆅ
UHSRUWBWLPLQJBVXPPDU\
!ኜኁኼዐኍ√⮥
ኪአእ዇ኖእኰዂዙርቫቖ
ኅ዆ኹዉዙእ䂗ቢኰዂዙቑ
⥭恾⦂ቊኌ዇ኣኀኈወኮኖቑ
ኁዐኖኜዐኖትኌዊኖኴዊዙኳ
Ⓟ侓ቑ⸩券ርቫቖ嵎㠃
ኜኁኼዐኍቒⰴ㇢ሮ
1
<
揜函揜偩
;
図 1-3 : タ イ ミ ング ク ロージ ャ を短期間で達成する ための設計手法
デザ イ ン フ ロ ーの合成段階は、デザ イ ン目標が正のマージ ン (ま たは比較的小 さ い負のマージ ン) で満た さ れれば、完
了 し た と 考え る こ と がで き ます。 合成後の タ イ ミ ン グが満た さ れない場合 (ま たは満た さ れ る 状態か ら 遠い場合)、 配
置配線結果で タ イ ミ ン グが満た さ れない可能性が高 く な り ますが、 残 り の フ ロ ーを進め る こ と は可能です。 イ ンプ リ
メ ン テーシ ョ ン ツールでエ ラ ーのあ っ たパス に最適な リ ソ ース が割 り 当て ら れ、タ イ ミ ン グが満た さ れ る 可能性 も あ
り ます。 タ イ ミ ン グが満た さ れない場合で も 、 負の ス ラ ッ ク の大 き さ を正確に理解す る こ と はで き ます。 イ ンプ リ メ
ン テーシ ョ ン後の負の ス ラ ッ ク を理解 し てお く と 、 HDL お よ び制約を改善す る ために合成に戻っ た と き に、 合成後
の WNS ( ワース ト ネガテ ィ ブ ス ラ ッ ク ) を どれ く ら い改善す る 必要があ る のか を よ り 正確に判断で き ます。
次の図に示す よ う に、 デザ イ ン フ ロ ーの初期段階 (C、 C++、 HDL 合成) の方が、 後の段階 よ り も デザ イ ン パフ ォー
マ ン ス、 集積度、 消費電力への影響が大 き く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
8
第 1 章 : 概要
X-Ref Target - Figure 1-4
⮘㦃ቑኮኲኆዙኻዐኖ
ቛቑ㈀檎
+/6
&ᇬ&
[
57/
⚗㒟
[
㦏拸▥
[
揜函
䓸䚕㦏拸▥
[
揜偩
;
図 1-4 : フ ローの各段階におけるデザイ ン変更の影響
デザ イ ンの タ イ ミ ン グ目標が満た さ れない場合は、 イ ンプ リ メ ン テーシ ョ ン段階のみを繰 り 返 し て ソ リ ュ ーシ ョ ン を
見つけ よ う と す る のではな く 、 合成お よ びその入力 (HDL お よ び制約な ど) の段階を見直す こ と をお勧め し ます。
デザ イ ンが最初か ら 正 し い も のであ る こ と 、 初期段階か ら デザ イ ン目標に注意 し てお く こ と が重要なので、 こ のガ イ
ド では RTL、 ク ロ ッ ク ピ ン、 PCB プ ラ ン ニ ン グのガ イ ド ラ イ ン も 示 し ます。 各設計段階でデザ イ ン を正 し く 定義お
よ び検証す る と 、 その後の イ ンプ リ メ ン テーシ ョ ン段階で タ イ ミ ン グ ク ロ ージ ャ 、 配線 ク ロ ージ ャ 、 お よ び消費電力
の問題を軽減で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
9
第 1 章 : 概要
短時間検証
こ のガ イ ド では、 シ ス テ ム アーキ テ ク チ ャ お よ びマ イ ク ロ アーキ テ ク チ ャ の選択に関す る 短時間検証の概念を紹介
し てい ます。 こ の概念は、 2 つの場合に適用で き ます。
シ ス テ ム デザ イ ンでは、 デザ イ ンの コ ア を イ ンプ リ メ ン ト す る 前に、 I/O 帯域幅がシ ス テ ムで検証 さ れます。 詳細は、
第 3 章の 「 イ ン タ ーフ ェ イ ス の帯域幅の検証」 を参照 し て く だ さ い。 こ の手順に よ り 、 I/O を最終決定す る 前に、 シ
ス テ ム アーキ テ ク チ ャ と イ ン タ ーフ ェ イ ス の選択を見直す必要があ る か ど う かがわか り ます。
デザ イ ン イ ンプ リ メ ン テーシ ョ ン では、 最 も 単純な制約セ ッ ト (ベース ラ イ ン制約) を作成 し 、 内部デバ イ ス タ イ ミ
ン グの課題を特定 し ます。 詳細は、 第 5 章の 「ベース ラ イ ン制約の作成」 を参照 し て く だ さ い。 こ のプ ロ セ ス に よ り 、
イ ン プ リ メ ン テーシ ョ ン段階に進む前に、 RTL マ イ ク ロ アーキ テ ク チ ャ を見直す必要があ る か ど う かがわか る こ と
があ り ます。
よ い設計手法を確立す る には、Vivado Design Suite を ど の よ う に使用す る か を明確に し てお く こ と が重要です。Vivado
Design Suite には柔軟な使用モデルがあ り 、さ ま ざ ま な開発フ ロ ーやデザ イ ン タ イ プに対応で き ます。Vivado でサポー
ト さ れ る さ ま ざ ま な使用モデルについては、 第 2 章 「Vivado Design Suite の使用」 を参照 し て く だ さ い。 使用モデル
を決定す る のに役立ち ます。 その後の章では、 次に関す る 手法お よ びテ ク ニ ッ ク の詳細を説明 し ます。
•
タ イ ミ ン グ制約の定義お よ び検証
•
デバ イ ス内の I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ
•
IP の選択お よ び コ ン フ ィ ギ ュ レーシ ョ ン
•
IP サブシ ス テ ムの作成
•
カ ス タ ム IP のパ ッ ケージ
•
ロ ジ ッ ク シ ミ ュ レーシ ョ ン
•
デザ イ ン ルール チ ェ ッ ク (DRC)
•
消費電力解析お よ び最適化
•
タ イ ミ ン グ ク ロ ージ ャ フ ロ ー
•
ハー ド ウ ェ ア検証 (デバ ッ グ コ アの挿入お よ び コ ン フ ィ ギ ュ レーシ ョ ン)
推奨 : こ のガ イ ド の設計手法の推奨事項に従 う と 、時間お よ び労力を最小限に抑え てザ イ リ ン ク ス デバ イ ス を利用で
き ます。
資料および ト レーニ ン グへのア ク セス
デザ イ ン ク ロ ージ ャ の短時間での達成お よ びデザ イ ンの総合的な成功のためには、適切な情報に タ イ ム リ ーにア ク セ
ス で き る こ と が重要です。 Vivado Design Suite を使用 し た設計方法を短期間で理解で き る よ う にす る ため、 リ フ ァ レ
ン ス ガ イ ド 、 ユーザー ガ イ ド 、 チ ュ ー ト リ アル、 ビデオが提供 さ れてい ます。 こ のセ ク シ ョ ン では、 資料お よ び ト
レーニ ン グの入手先を示 し ます。
Documentation Navigator の使用
Vivado Design Suite には Xilinx Documentation Navigator が含ま れてお り 、 ザ イ リ ン ク ソ フ ト ウ ェ アお よ びハー ド ウ ェ
ア資料、 ト レーニ ン グ、 サポー ト 資料にア ク セ ス し 、 管理す る 環境を提供 し てい ます。 Documentation Navigator を使
用す る と 、 最新お よ び以前のバージ ョ ンのザ イ リ ン ク ス資料を参照で き ます。 リ リ ース、 資料 タ イ プ、 ま たはデザ イ
ン タ ス ク に基づいて資料を フ ィ ル タ ー表示で き ます。検索機能を使用する と 、 必要な情報をすばや く 見つけ る こ と が
で き ます。 [Document Types] の下に フ ィ ル タ ー オプシ ョ ンの 1 つ と し て [Methodology Guides] (設計手法ガ イ ド ) が表
示 さ れてお り 、 設計手法ガ イ ド に即座にア ク セ ス で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
10
第 1 章 : 概要
Documentation Navigator はザ イ リ ン ク ス ウ ェ ブサ イ ト を ス キ ャ ン し て、 資料が ア ッ プデー ト さ れてい る か ど う か を
チ ェ ッ ク し ます。 [Update Catalog] を使用す る と 、 利用可能な ア ッ プデー ト があ る 場合は警告 メ ッ セージが表示 さ れ、
関連す る 資料の詳細が表示 さ れます。 カ タ ロ グ を最新にする よ う メ ッ セージが表示 さ れた場合は、 カ タ ロ グ を ア ッ プ
デー ト し て資料を最新の状態に し てお く こ と をお勧め し ます。 資料カ タ ロ グ を ロ ーカルに作成 し て特定の資料を管理
す る こ と も で き ます。
Documentation Navigator には、 [Design Hub View] と い う タ ブがあ り ます。 デザ イ ン ハブには、 デザ イ ン制約の適用、
合成、 イ ンプ リ メ ン テーシ ョ ン、 プ ロ グ ラ ムお よ びデバ ッ グ な ど、 デザ イ ン での特定の タ ス ク に関す る 資料が リ ス ト
さ れてい ます。資料お よ びビデオがその タ ス ク を学びやすい よ う に並べ ら れてい ます。各デザ イ ン ハブには、[Getting
Started] (入門) セ ク シ ョ ン、 その フ ロ ーに関 し て よ く 寄せ ら れ る 質問 を リ ス ト し た [Support Resources] セ ク シ ョ ン、
[Additional Learning Materials] (その他の資料) があ り ます。 新 し いユーザーは、 まず [Getting Started] を参照す る こ と を
お勧め し ます。 既に フ ロ ーを理解 し てい る 場合は、 [Key Concepts]、 [Frequently Asked Questions (FAQ)] な ど が理解を
深め る のに役立ち ます。
X-Ref Target - Figure 1-5
図 1-5 : Xilinx Documentation Navigator の [Catalog View] タ ブ
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
11
第 1 章 : 概要
ビデオ チ ュ ー ト リ アルへのア ク セス
ザ イ リ ン ク ス ビデオ チ ュ ー ト リ アルでは、 Vivado Design Suite の機能の使用方法が具体的に説明 さ れてい ます。 こ れ
ら のチ ュ ー ト リ アルを使用す る と 、 短時間で簡単にツールを学ぶ こ と がで き ます。 こ れ ら は、 ザ イ リ ン ク ス ウ ェ ブサ
イ ト の Vivado ビデオ チ ュ ー ト リ アルのページ ま たはザ イ リ ン ク ス YouTube チ ャ ネル (日本語ビデオ) か ら 再生す る
か、 ロ ーカルにダ ウ ン ロ ー ド で き ます。
ヒ ン ト : 接続速度に よ り 表示に問題があ る 場合は、 ビデオ ク リ ッ プ を ロ ーカルにダ ウ ン ロ ー ド し て ご覧 く だ さ い。 オ
ン ラ イ ン ビデオ チ ュ ー ト リ アルには、 次の図に示す よ う に Documentation Navigator か ら も ア ク セ ス で き ます。
X-Ref Target - Figure 1-6
図 1-6 : Documentation Navigator からのビデオ チ ュ ー ト リ アルへのア ク セス
ザ イ リ ン ク ス ではビデオ チ ュ ー ト リ アルのほか、例を含む資料 タ イ プのチ ュ ー ト リ アル も 提供 し てい ます。 こ れ ら の
チ ュ ー ト リ アルには、 サン プル デザ イ ンお よ び特定のデザ イ ン タ ス ク を実行す る ための詳細な手順が含ま れ、 ザ イ
リ ン ク ス ウ ェ ブサ イ ト の Vivado 資料ページ ま たは Documentation Navigator か ら ア ク セ ス で き ます。 ま た、 ザ イ リ ン
ク ス ま たはそのパー ト ナーか ら 提供 さ れ る ト レーニ ン グ ク ラ ス に登録する こ と も で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
12
第 2章
Vivado Design Suite の使用
Vivado Design Suite の使用の概要
こ の章では、 Vivado® Design Suite を使用す る 際の さ ま ざ ま な使用モデル、 機能、 オプシ ョ ンについて説明 し ます。 デ
ザ イ ン ソ ースお よ び IP の準備お よ び管理について も 説明 し ます。 イ ンプ リ メ ン テーシ ョ ンの設定 と 実行お よ びデザ
イ ン解析の実行については、第 4 章 「デザ イ ンの作成」 お よ び第 5 章 「 イ ンプ リ メ ン テーシ ョ ン」 を参照 し て く だ さ い。
Vivado Design Suite は、 階層 RTL デザ イ ン、 ネ ッ ト リ ス ト ベース デザ イ ン、 I/O プ ラ ン ニ ン グ デザ イ ン な ど、 さ ま ざ
ま な タ イ プのデザ イ ンに使用で き ます。 ツール フ ロ ーお よ び機能は、 デザ イ ンの タ イ プに よ っ て異な り ます。 こ のガ
イ ド では、 RTL ソ ース、 IP コ ア、 サー ド パーテ ィ 合成済みネ ッ ト リ ス ト を イ ンプ リ メ ン テーシ ョ ンで コ ンパ イ ル し 、
その結果を使用 し て FPGA デバ イ ス を プ ロ グ ラ ムお よ びデバ ッ グす る ビ ッ ト ス ト リ ーム を生成す る 、 HDL ベース の
FPGA デザ イ ン フ ロ ーについて詳細に説明 し ます。
次の資料お よ びビデオ チ ュ ー ト リ アルには、 Vivado Design Suite フ ロ ーに関する その他の情報が含まれます。
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado デザ イ ン フ ロ ーの概要
•
『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) [参照 5]
•
『Vivado Design Suite チ ュ ー ト リ アル : デザ イ ン フ ロ ーの概要』 (UG888) [参照 29]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : UltraFast Vivado 設計手法
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
13
第 2 章 : Vivado Design Suite の使用
次の図に、 Vivado Design Suite のデザ イ ン フ ロ ーを示 し ます。
X-Ref Target - Figure 2-1
ኔኖኣኽኤናኁዐ⏴┪
ኚኲእኃኄቿ栚䤉
浧⇜⚗㒟ት∎䞷ሺቂ
&኶ዙኖኤናኁዐ
ናኁ዇ዐኌኖርቫቖ
ኒዙኦኮዙኣኀ,3ቑ
ነዐኲኀኋዂዉዙኔዄዐ
6\VWHP*HQHUDWRUት
∎䞷ሺቂ'63ኤናኁዐ
,3ኮአ኎ዙንዀዙದ,3ኁዐኣኍዉዙኜዙ
,3ኒኳኔኖኣኽቑ
ነዐኲኀኋዂዉዙኔዄዐ
栚䤉ኚኲእኃኄቿ
ርቫቖኴዊኘአኒ26
ኅዐ኶ኤአኦኴዊኘአኒ
ኤናኁዐ
57/栚䤉
ኁዐኴ዇ኾዐኣዙኔዄዐ
ዊንአኌኔኼዂዉዙኔዄዐ
ኮዙኔዀወ
዇ነዐኲኀኋዂዉዙኔዄዐ
嵥䚕ርቫቖ䓸䚕Ⓟ侓ቑ━ቭ㇢቉
ዊንአኌ⚗㒟
ኁዐኴ዇ኾዐኣዙኔዄዐ
ኜኁኼዐኍኌዊዙንዀርቫቖኤናኁዐ屲㨟
ኰአእኖእ዇ዙኽቑ䞮㒟ᇬኴዊኍ዆ኽᇬርቫቖኤክአኍ
ኴዊኘአኒቑኳዙእ
ርቫቖኤክአኍ
6'.ቛቑኅኌኖኺዙእ
ኬዙኦኃኄቿቑ䵚ቄₙስርቫቖ㮫峋
;
図 2-1 : Vivado Design Suite のデザイ ン フ ロー
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
14
第 2 章 : Vivado Design Suite の使用
RTL か ら ビ ッ ト ス ト リ ームま でのデザイ ン フ ロー
RTL ソ ース フ ァ イ ルを指定 し てプ ロ ジ ェ ク ト を作成 し た ら 、 こ れ ら の ソ ース を RTL コ ー ド 開発、 解析、 合成、 お よ
び イ ン プ リ メ ン テ ー シ ョ ン に使用で き ま す。 Vivado 合成お よ び イ ン プ リ メ ン テ ー シ ョ ン で は、 Verilog、 VHDL、
SystemVerilog、 お よ び XDC な ど の複数の種類の ソ ー ス フ ァ イ ルがサポー ト さ れ ま す。 こ のガ イ ド では、 階層 RTL
ソ ース お よ びザ イ リ ン ク ス デザ イ ン制約 (XDC) を定義す る ために最適な コ ーデ ィ ン グ手法お よ び設計テ ク ニ ッ ク 、
Vivado Design Suite 特有の機能の使用方法に関す る 情報、 お よ びプ ロ グ ラ ム さ れたデザ イ ンのパフ ォーマ ン ス を向上
す る ためのテ ク ニ ッ ク を示 し ます。RTL プ ロ ジ ェ ク ト の作成方法お よ び操作方法は、『Vivado Design Suite ユーザー ガ
イ ド : シ ス テ ム レベル のデザ イ ン入力』 (UG895) [参照 8] の 「RTL プ ロ ジ ェ ク ト の作成」 を参照 し て く だ さ い。
Vivado Design Suite では、 EDIF ま たは構造型 Verilog な ど のサー ド パーテ ィ 合成 ソ ース も サポー ト さ れます。 ただ し 、
Vivado IP カ タ ロ グか ら の IP コ アは Vivado 合成を使用 し て合成す る 必要があ り 、 サー ド パーテ ィ 合成ツールで合成す
る こ と はサポー ト さ れてい ません。 7 シ リ ーズ デバ イ ス の メ モ リ IP な ど、 こ の要件の例外 も い く つかあ り ます。 詳
細は、 IP のデー タ シー ト を参照 し て く だ さ い。
Vivado Design Suite では、 デフ ォ ル ト でア ウ ト オブ コ ン テ キ ス ト (OOC) デザ イ ン フ ロ ーが使用 さ れ、 ザ イ リ ン ク ス
IP カ タ ロ グか ら の IP コ アお よ び Vivado IP イ ン テ グ レー タ ーか ら のブ ロ ッ ク デザ イ ン が合成 さ れ ます。 ま た、 階層
RTL デザ イ ンの特定のモジ ュ ールを OOC モジ ュ ール と し て合成する こ と も 可能です。 OOC フ ロ ーでは、 階層デザ イ
ン のデザ イ ン モジ ュ ール、 IP コ ア、 ブ ロ ッ ク デザ イ ン を、 最上位デザ イ ン か ら 独立 さ せて合成、 イ ン プ リ メ ン ト 、
お よ び解析で き ま す。 OOC フ ロ ーは、 階層チーム デザ イ ン、 IP お よ び IP サブシ ス テ ム の合成お よ び イ ン プ リ メ ン
ト 、 大型の複雑なデザ イ ンのモジ ュ ール管理をサポー ト す る 効率的な手法です。 ア ウ ト オブ コ ン テ キ ス ト デザ イ ン
フ ロ ーの詳細は、『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) [参照 5] の 「ア ウ ト オブ コ
ン テ キ ス ト デザ イ ン フ ロ ー」 を参照 し て く だ さ い。
Vivado Design Suite では、 デザ イ ン フ ロ ーの さ ま ざ ま な段階でビヘ イ ビ アー シ ミ ュ レーシ ョ ン、 論理シ ミ ュ レーシ ョ
ン、 お よ び タ イ ミ ン グ シ ミ ュ レーシ ョ ン を実行で き ます。 サー ド パーテ ィ シ ミ ュ レー タ を統合 し て Vivado IDE か ら
起動 し て使用す る こ と も で き ま す。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レ ーシ ョ ン』
(UG900) [参照 11] を参照 し て く だ さ い。
合成済みネ ッ ト リ ス ト が生成 さ れた ら 、 Vivado イ ン プ リ メ ン テーシ ョ ン を使用 し てネ ッ ト リ ス ト を タ ーゲ ッ ト パー
ツ で使用可能なデバ イ ス リ ソ ー ス に最適化お よ び配置配線で き ます。 Vivado イ ン プ リ メ ン テーシ ョ ンは、 デザ イ ン
の論理、 物理、 お よ び タ イ ミ ン グ制約を満たす よ う に実行 さ れます。 デザ イ ン を イ ンプ リ メ ン ト し た ら 、 さ ま ざ ま な
タ イ ミ ン グ解析機能お よ び消費電力解析機能を使用 し て結果を解析 し 、 Vivado ハー ド ウ ェ ア マネージ ャ ーでザ イ リ
ン ク ス デバ イ ス をプ ロ グ ラ ム し 、 デザ イ ン をデバ ッ グす る こ と に よ り ハー ド ウ ェ アでデザ イ ン を実行で き ます。
Vivado Design Suite では、 次のセ ク シ ョ ンで説明す る よ う に、 ほかに も い く つかのデザ イ ン フ ロ ーがサポー ト さ れて
い ます。 こ れ ら の フ ロ ーはそれぞれ RTL か ら ビ ッ ト ス ト リ ーム ま での フ ロ ーか ら 派生 し た も のなので、 こ こ に説明
す る イ ンプ リ メ ン テーシ ョ ンお よ び解析手法はほかのデザ イ ン フ ロ ーお よ びデザ イ ン タ イ プに も 適用 さ れます。
エ ンベデ ッ ド プ ロ セ ッ サ デザイ ン フ ロー
エンベデ ッ ド プ ロ セ ッ サ デザ イ ン を作成す る 際は、 ツール フ ロ ーは少 し 異な り ます。 プ ロ セ ッ サで ソ フ ト ウ ェ アが
効率的にブー ト お よ び実行 さ れ る こ と が必要なので、 ソ フ ト ウ ェ ア デザ イ ン フ ロ ーはハー ド ウ ェ ア デザ イ ン フ ロ ー
と 合わせて実行す る 必要があ り ます。 ハー ド ウ ェ ア フ ロ ー と ソ フ ト ウ ェ ア フ ロ ー間のデー タ ハン ド オ フお よ び 2 つ
の ド メ イ ン間での検証が重要 と な り ます。
エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン を作成す る には、 Vivado Design Suite の IP イ ン テ グ レー タ ーを使用
し ます。 IP イ ン テ グ レー タ ー環境では、 プ ロ セ ッ サ コ ア と その イ ン タ ーフ ェ イ ス を イ ン ス タ ン シエー ト 、 コ ン フ ィ
ギ ュ レーシ ョ ン、 お よ びアセ ンブルで き ます。 IP イ ン テ グ レー タ ーでは、 規則に基づいて接続が実行 さ れ、 設計ア シ
ス タ ン ス が提供 さ れます。 イ ンプ リ メ ン テーシ ョ ンに よ り ハー ド ウ ェ ア デザ イ ンが コ ンパ イ ル さ れた ら 、 ソ フ ト ウ ェ
ア開発お よ び検証フ ロ ーに使用す る ためザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) にエ ク ス ポー ト し ます。シ ミ ュ
レーシ ョ ンお よ びデバ ッ グ機能を使用す る と 、2 つの ド メ イ ン間でデザ イ ン を シ ミ ュ レーシ ョ ンお よ び検証で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
15
第 2 章 : Vivado Design Suite の使用
エンベデ ッ ド プ ロ セ ッ サ デザ イ ン フ ロ ーの詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG898) [参照 10]
•
『Vivado Design Suite チ ュ ー ト リ アル : エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940) [参照 33]
•
『UltraFast エンベデ ッ ド デザ イ ン設計手法ガ イ ド 』 (UG1046) [参照 36]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し たデザ イ ン
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し た Zynq デバ イ ス の設計
C ベースの高位合成フ ロー
Vivado Design Suite の C ベース の高位合成ツール (Vivado HLS) を使用す る と 、 C、 C++、 System C、 お よ び OpenCL™
API 言語を使用 し てデザ イ ンの さ ま ざ ま な DSP フ ァ ン ク シ ョ ン を記述で き ます。 C コ ー ド は Vivado HLS (高位合成)
ツールで作成お よ び検証 し ます。 高水準言語を使用す る と 、 抽象的なアルゴ リ ズ ム、 デー タ 型、 仕様な ど を記述で き 、
さ ま ざ ま なパ ラ メ ー タ ーを試 し てデザ イ ン パフ ォーマ ン スお よ びエ リ ア を最適化で き ます。
Vivado HLS では、 C ベー ス のテ ス ト ベンチを使用 し て、 デザ イ ン環境か ら 直接生成済みの RTL を シ ミ ュ レーシ ョ ン
で き ます。 複数の最適化 さ れた ラ イ ブ ラ リ が自動的に使用 さ れ、 math.h を使用 し た浮動小数点演算 も サポー ト さ れま
す。 C か ら RTL への合成に よ り C ベース デザ イ ン を RTL モジ ュ ールに変換 し た ら 、 それをパ ッ ケージ し て、 デザ イ
ン の残 り の部分 と 共に イ ン プ リ メ ン テーシ ョ ンす る か、 IP イ ン テ グ レ ー タ ーのブ ロ ッ ク デザ イ ン に イ ン ス タ ン シ
エー ト で き ます。
Vivado HLS ツール フ ロ ーお よ び機能については、 次を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : 高位合成』 (UG902) [参照 17]
•
『Vivado Design Suite チ ュ ー ト リ アル : 高位合成』 (UG871) [参照 28]
•
Vivado のビデオ チ ュ ー ト リ アル ページに、 Vivado HLS の ビデオ チ ュ ー ト リ アルがあ り ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザイ ン フ ロー
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン では、 動作中のザ イ リ ン ク ス デバ イ ス の一部 を リ アル タ イ ム で リ コ ン フ ィ
ギ ュ レーシ ョ ン し 、 動作中のデザ イ ンの機能を変更で き ます。 最大パフ ォーマ ン ス を達成す る ためにそれ ら が要件ど
お り に機能す る こ と を確実にす る ため、 リ コ ン フ ィ ギ ャ ラ ブル モジ ュ ールは適切にプ ラ ン ニ ン グす る 必要があ り ま
す。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン フ ロ ーでは、 リ コ ン フ ィ ギ ャ ラ ブル モジ ュ ールが適切に設計 さ れ、 パー
シ ャ ル ビ ッ ト ス ト リ ーム ア ッ プデー ト 中にグ リ ッ チのない動作を可能にす る ため、 比較的厳 し い設計プ ロ セ ス が必
要 と な り ます。 こ れには、 リ コ ン フ ィ ギ ャ ラ ブル モジ ュ ールへの イ ン タ ーフ ェ イ ス信号数の削減、 デバ イ ス リ ソ ー
ス の フ ロ アプ ラ ン、 ピ ン配置、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン DRC への準拠な ど が含まれます。 デバ イ ス の
プ ラ グ ラ ム方法 も 、 コ ン フ ィ ギ ュ レーシ ョ ン I/O ピ ンが正 し く 割 り 当て ら れ る よ う にす る ため、 適切にプ ラ ン ニ ン グ
し てお く 必要があ り ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン フ ロ ーお よ び機能については、 次を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン』 (UG909) [参照 25]
•
『Vivado Design Suite チ ュ ー ト リ アル : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン』 (UG947) [参照 34]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado でパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を実行
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
16
第 2 章 : Vivado Design Suite の使用
Vivado Design Suite の使用モデル
Vivado Design Suite では、異な る デザ イ ン フ ロ ーがサポー ト さ れてい る の と 同様に、デザ イ ンの管理方法お よ び Vivado
ツ ール を ど の よ う に使用す る か に よ っ て さ ま ざ ま な使用モデル も サ ポー ト さ れ て い ま す。 こ の セ ク シ ョ ン では、
Vivado ツールで使用モデルを利用す る にあ た り 、 決定 し てお く べき こ と をい く つか説明 し ます。
次の よ う な事項を決定 し てお く 必要があ り ます。
•
ス ク リ プ ト ま たは コ マ ン ド を使用す る か、 グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス (GUI) を使用す る か。
•
IP コ ア を 1 つのデザ イ ン プ ロ ジ ェ ク ト 内で使用す る ために コ ン フ ィ ギ ュ レーシ ョ ンす る か、 複数プ ロ ジ ェ ク ト
で コ ン フ ィ ギ ュ レーシ ョ ン済み IP コ ア を再利用す る ために リ モー ト リ ポジ ト リ を設定す る か。
•
プ ロ ジ ェ ク ト 構造を使用 し て Vivado Design Suite でデザ イ ン ソ ース、 ス テー タ ス、 結果が管理 さ れ る よ う にす る
か、 ユーザー自身がデザ イ ン を作成 し て管理す る か。
•
ソ ース フ ァ イ ルを リ ビ ジ ョ ン管理シ ス テ ム を使用 し て管理する か。
•
合成ま たはシ ミ ュ レーシ ョ ンにサー ド パーテ ィ ツールを使用する か。
推奨 : Vivado ツールで FPGA デザ イ ン を開始す る 前に、『Vivado Design Suite ユーザー ガ イ ド : 入門』 (UG910) [参照 12]
お よ び 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) [参照 5] を参照 し て く だ さ い。
プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド
Vivado Design Suite には、 主にプ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド の 2 つの使用モデルがあ り ます。 ど ち ら
の使用モデル も Vivado IDE で実行で き ますが、 Vivado IDE でプ ロ ジ ェ ク ト モー ド を使用す る と 多数の利点があ り ま
す。 ま た、 ど ち ら の使用モデル も Tcl コ マ ン ド ま たは ス ク リ プ ト で実行で き ますが、 非プ ロ ジ ェ ク ト モー ド では Tcl
コ マ ン ド を使用す る のがシ ンプルです。
注記 : Tcl ス ク リ プ ト ベース の フ ロ ーを使用 し ていて も 、 物理制約お よ び タ イ ミ ン グ制約を作成 し た り 、 デザ イ ンの
解析結果を表示 し た り す る ために、 必要に応 じ て Vivado IDE を使用で き ます。
プ ロ ジ ェ ク ト モー ド の使用
プ ロ ジ ェ ク ト モー ド では、 デザ イ ン フ ロ ーお よ びデザ イ ン デー タ が Vivado ツールに よ り 自動的に管理 さ れます。 プ
ロ ジ ェ ク ト モー ド を使用す る 主な利点は、 プ ッ シ ュ ボ タ ンに よ る デザ イ ン プ ロ セ ス の自動化にあ り ます。
ヒ ン ト : プ ロ ジ ェ ク ト モー ド の主な利点は、 Vivado Design Suite で依存性管理、 レ ポー ト 生成、 デー タ 保存な ど、 デ
ザ イ ン プ ロ セ ス全体が管理 さ れ る こ と です。
プ ロ ジ ェ ク ト に よ り デザ イ ン ス テー タ ス、 ソ ース フ ァ イ ル依存性、 お よ び イ ンプ リ メ ン テーシ ョ ン結果が管理 さ れ、
レ ポー ト さ れます。 プ ロ ジ ェ ク ト モー ド を使用す る と 、 デ ィ ス ク 上にデ ィ レ ク ト リ 構造が作成 さ れ、 ロ ーカルま たは
リ モー ト でデザ イ ン ソ ース フ ァ イ ルが管理 さ れ、 ソ ース フ ァ イ ルへの変更お よ びア ッ プデー ト が管理 さ れます。 プ
ロ ジ ェ ク ト 構造は、 合成お よ び イ ンプ リ メ ン テーシ ョ ン run お よ びその ス テー タ ス を管理 し 、 合成お よ び イ ンプ リ メ
ン ト の結果 と レ ポー ト を保存す る ために も 使用 さ れます。 次に例を示 し ます。
•
合成後に HDL ソ ース を変更 し た場合、 現在の結果が最新でない と 認識 さ れ、 再合成す る 必要があ る こ と を示す
メ ッ セージが表示 さ れます。
•
デザ イ ン制約を変更 し た場合、 再合成す る か、 再 イ ンプ リ メ ン ト す る か、 両方を実行す る か を尋ね る メ ッ セージ
が表示 さ れます。
•
配線が完了す る と 、 タ イ ミ ン グ レ ポー ト お よ び消費電力レ ポー ト が自動的に生成 さ れます。
•
デザ イ ン フ ロ ー全体を Vivado IDE で 1 回 ク リ ッ ク する だけで実行で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
17
第 2 章 : Vivado Design Suite の使用
重要 : Windows な ど オペレーテ ィ ン グ シ ス テ ムに よ っ ては、 フ ァ イ ル パ スお よ びフ ァ イ ル名に字数制限 (256 文字な
ど) があ り ます。 使用 し てい る オペレーテ ィ ン グ シ ス テ ムにその よ う な制限があ る 場合は、 プ ロ ジ ェ ク ト を ド ラ イ ブ
のルー ト の近 く に保存 し て、 フ ァ イ ル パスお よ びフ ァ イ ル名がな る べ く 短 く な る よ う に し て く だ さ い。
非プ ロ ジ ェ ク ト モー ド の使用
非プ ロ ジ ェ ク ト モー ド では、Tcl ス ク リ プ ト を使用 し てデザ イ ン ソ ースお よ びデザ イ ン プ ロ セ ス を ユーザーが管理 し
ます。 主な利点は、 フ ロ ーの各段階を ユーザーが完全に制御で き る 点にあ り ます。 必要に応 じ てデザ イ ン チ ェ ッ ク ポ
イ ン ト お よ びレ ポー ト を生成で き ます。 各 イ ン プ リ メ ン テーシ ョ ン段階は特定の設計課題を満たす よ う に調整で き 、
各段階後に結果を解析で き ます。 デザ イ ン ソ ース は通常、 ロ ーカル プ ロ ジ ェ ク ト デ ィ レ ク ト リ 構造に コ ピー さ れ る
のではな く 、 リ ビ ジ ョ ン管理シ ス テ ム な ど の現在の場所か ら ア ク セ ス さ れます。 デザ イ ン フ ロ ーを進めて行 く 際、 デ
ザ イ ンは Vivado Design Suite に割 り 当て ら れ る メ モ リ 内に保持 さ れます。 つま り 、 デザ イ ン フ ロ ーを通 し て、 デザ イ
ン全体が メ モ リ に格納 さ れ、 リ アル タ イ ムでア ッ プデー ト さ れます。
ヒ ン ト : 非プ ロ ジ ェ ク ト モー ド では、 デザ イ ン を処理す る ためにプ ロ ジ ェ ク ト 基盤が メ モ リ で作成 さ れますが、 その
プ ロ ジ ェ ク ト はデ ィ ス ク には書 き 込まれません。
非プ ロ ジ ェ ク ト モー ド では、 各デザ イ ン手順は Tcl コ マ ン ド を使用 し て制御 さ れます。 次に例を示 し ます。
•
合成後に HDL フ ァ イ ルを変更 し た場合、合成を再実行 し て メ モ リ 内のネ ッ ト リ ス ト を ア ッ プデー ト する のはユー
ザーの責任です。
•
配線後の タ イ ミ ン グ レ ポー ト が必要な場合は、 配線が完了 し た後にユーザーが タ イ ミ ン グ レ ポー ト を生成す る
必要があ り ます。
•
デザ イ ン パ ラ メ ー タ ーお よ び イ ンプ リ メ ン テーシ ョ ン オプシ ョ ンは、 Tcl コ マ ン ド を使用 し て設定 し ます。
•
デザ イ ン プ ロ セ ス の ど の段階で も 、 Tcl を使用 し てデザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し 、 レ ポー ト を生成で き
ま す。
デザ イ ン フ ロ ーの進行に伴い、 レ ポー ト ま たはデザ イ ン チ ェ ッ ク ポ イ ン ト を生成 し て メ モ リ 内のデザ イ ン を保存す
る 必要があ り ます。 デザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) と は、 メ モ リ 内のデザ イ ン を正確に表すフ ァ イ ルです。 デザ
イ ン チ ェ ッ ク ポ イ ン ト は、 デザ イ ン フ ロ ーの各段階後 (合成後、 最適化後、 配置後な ど) に保存で き ます。 DCP フ ァ
イ ルを Vivado Design Suite に読み込んで、 チ ェ ッ ク ポ イ ン ト フ ァ イ ルのデザ イ ン ス テー ト を復元で き ます。
DCP を Vivado IDE で開いて、 制約の割 り 当てお よ びデザ イ ン解析を実行す る こ と も 可能です。 ア ク テ ィ ブ デザ イ ン
は メ モ リ 内にあ り 、 加えた変更は自動的にその後の フ ロ ーに渡 さ れます。 ま た、 変更は新 し い制約フ ァ イ ルま たはデ
ザ イ ン チ ェ ッ ク ポ イ ン ト に保存で き ます。
非プ ロ ジ ェ ク ト モー ド のほ と ん ど の機能はプ ロ ジ ェ ク ト モー ド で も 使用で き ますが、 プ ロ ジ ェ ク ト モー ド の機能の
一部は非プ ロ ジ ェ ク ト モー ド では使用で き ません。 使用で き ない機能は、 ソ ース フ ァ イ ルお よ び run 結果の管理、 デ
ザ イ ンお よ びツール コ ン フ ィ ギ ュ レーシ ョ ンの保存、 デザ イ ン ス テー タ ス、 IP の統合です。 非プ ロ ジ ェ ク ト モー ド
では、 一部のプ ロ セ ス を ス キ ッ プで き る ので、 メ モ リ フ ッ ト プ リ ン ト を削減 し 、 プ ロ ジ ェ ク ト に関す る デ ィ ス ク 容量
を節約で き ます。
Vivado 統合設計環境 (IDE) の使用
Vivado IDE はプ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の両方で使用で き ま す。 IDE で表示 さ れ る 機能は、
IDE を ど の よ う に、 ま た ど の時点で起動する かに よ っ て変わ り ます。 Vivado IDE の詳細は、 『Vivado Design Suite ユー
ザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 6] を参照 し て く だ さ い。
Vivado IDE では、 デザ イ ン を メ モ リ 内で開 く こ と に よ り 、 デザ イ ン フ ロ ー中のデザ イ ン解析お よ び制約の割 り 当て
が可能にな り ます。 デザ イ ン を開 く と 、 デザ イ ン フ ロ ーの特定段階のデザ イ ン ネ ッ ト リ ス ト が読み込ま れ、 制約が
割 り 当て ら れ、 デザ イ ンが タ ーゲ ッ ト デバ イ ス に適用 さ れます。 こ れに よ り 、 各段階でデザ イ ン を視覚的に確認 し 、
作業す る こ と がで き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
18
第 2 章 : Vivado Design Suite の使用
プ ロ ジ ェ ク ト モー ド を使用す る 場合、 Vivado IDE にデザ イ ンお よ び IP を作成、 イ ン プ リ メ ン ト 、 お よ び検証す る
Flow Navigator と 呼ばれ る イ ン タ ー フ ェ イ ス が表示 さ れ ま す。 ま た、 すべてのデザ イ ン ソ ー ス、 コ ン フ ィ ギ ュ レ ー
シ ョ ン、 結果を管理す る プ ッ シ ュ ボ タ ンのデザ イ ン フ ロ ーがサポー ト さ れてい ます。
X-Ref Target - Figure 2-2
図 2-2 : Vivado IDE で イ ン プ リ メ ン ト さ れたデザイ ン を開 く
Vivado IDE の詳細は、『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 6] を参照 し て く だ さ い。
Tcl の使用
サポー ト さ れるすべてのデザ イ ン フ ローおよ び使用モデルは、 Tcl コ マン ド を使用し て実行で き ます。 個々の Tcl コ マ
ン ド を使用する か、 Tcl コ マン ド の ス ク リ プ ト を作成 し て使用で き ます。 Tcl ス ク リ プ ト では、 デザ イ ン解析およ びレ
ポー ト を含むデザ イ ン フ ロ ー全体を実行 し た り 、 デザ イ ンの作成および合成な ど フ ローの一部のみを実行で き ます。
Tcl コ マ ン ド を直接使用す る 場合は、 Vivado Design Suite Tcl シ ェ ルを使用す る か、 Vivado IDE の [Tcl Console] ウ ィ ン
ド ウ を使用 し ます。 Tcl お よ び Tcl ス ク リ プ ト に関す る 情報は、 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト
機能の使用』 (UG894) [参照 7] を参照 し て く だ さ い。 Vivado ツールでの Tcl の使用方法の詳細は、 『Vivado Design Suite
チ ュ ー ト リ アル : デザ イ ン フ ロ ーの概要』 (UG888) [参照 29] を参照 し て く だ さ い。
Tcl を使用す る 場合で も 、 Vivado IDE の イ ン タ ラ ク テ ィ ブな GUI ベース の解析お よ び制約定義機能を利用で き ます。
Tcl ス ク リ プ ト か ら 合成後の任意段階でデザ イ ン チ ェ ッ ク ポ イ ン ト を保存 し 、 Vivado IDE で開 く こ と がで き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
19
第 2 章 : Vivado Design Suite の使用
IP の コ ン フ ィ ギ ュ レーシ ョ ン
Vivado IDE には、 さ ま ざ ま なデザ イ ン ソ ース か ら デザ イ ン に IP モジ ュ ールを追加で き る IP 中心のデザ イ ン フ ロ ー
があ り ます。 ザ イ リ ン ク ス の提供す る プ ラ グ ア ン ド プ レ イ IP を含む IP カ タ ロ グ も あ り ます。 IP カ タ ロ グは、 次を追
加す る こ と で拡張で き ます。
•
System Generator for DSP デザ イ ンか ら のモジ ュ ール (Simulink® アルゴ リ ズ ムか ら の MATLAB®)
•
Vivado 高位合成 (HLS) デザ イ ン (C/C++ アルゴ リ ズ ム)
•
サー ド パーテ ィ IP
•
Vivado IP パ ッ ケージ ャ ーを使用 し て IP と し てパ ッ ケージ さ れたデザ イ ン
IP カ タ ロ グ では、 開発中のエ ン ド ア プ リ ケーシ ョ ン に関わ ら ず、 構築ブ ロ ッ ク 、 ウ ィ ザー ド 、 コ ネ ク テ ィ ビ テ ィ 、
DSP、 エンベデ ッ ド 、 AXI イ ン フ ラ ス ト ラ ク チ ャ 、 お よ びビデオ IP を含むザ イ リ ン ク ス IP すべてが 1 つの共有 リ ポ
ジ ト リ か ら 提供 さ れます。 Alliance パー ト ナー IP も 、 ラ イ セ ン ス情報への リ ン ク と 共に リ ス ト さ れてい ます。
IP カ タ ロ グか ら 使用可能な IP のほ と ん どは、RTL プ ロ ジ ェ ク ト ま たは IP イ ン テ グ レー タ ーのブ ロ ッ ク デザ イ ンで使
用で き ます。 IP イ ン テ グ レー タ ー専用お よ び RTL プ ロ ジ ェ ク ト 専用に設計 さ れてい る IP も 数は少ないですがあ り ま
す。 それ ら の IP をサポー ト さ れないブ ローで使用 し よ う と す る と 、 メ ッ セージが表示 さ れます。
Vivado IP カ タ ロ グの [License] 列に、 [Included] ま たは [Purchase] と 表示 さ れます。 ザ イ リ ン ク ス か ら 提供 さ れてい る
IP の場合、 次の定義が適用 さ れます。
•
[Included] : Vivado Design Suite 内で無償で ラ イ セ ン ス付与 さ れ る ザ イ リ ン ク ス LogiCORE™ IP コ アで、 ザ イ リ ン
ク ス エン ド ユーザー ラ イ セ ン ス契約が適用 さ れます。
•
[Purchase] : 有償のザ イ リ ン ク ス LogiCORE IP で、 コ ア ラ イ セ ン ス契約が適用 さ れます。 こ れ ら の コ アの評価版
には、 コ ア評価 ラ イ セ ン ス契約が適用 さ れます。
ラ イ セ ン ス タ イ プが [Purchase] の IP には、 異な る 機能があ り ます。 特定の IP の ラ イ セ ン ス については、 IP カ タ ロ グ
で IP を右 ク リ ッ ク し て [License Status] を ク リ ッ ク し て く だ さ い。 次の表に、 有償 IP の ス テー タ ス を示 し ます。
表 2-1 : 有償 IP のス テー タ ス
ス テー タ ス
権限
説明
Bought
フル
コ アのすべての機能を完全にエ ラ ボ レー ト で き ます。
Hardware_evaluation
評価
コ ア を完全にエ ラ ボ レー ト で き ますが、 ハー ド ウ ェ ア タ イ ム ア
ウ ト 回路な ど、 機能は制限 さ れます。
Design_Linking
シ ミ ュ レーシ ョ ン
シ ミ ュ レーシ ョ ンの目的でのみコ ア を エ ラ ボ レー ト で き ます。
プ ロ ジ ェ ク ト で使用 さ れてい る IP コ アの ラ イ セ ン ス ス テー タ ス情報は、 [Tools] → [Report] → [Report IP Status] を ク
リ ッ ク す る と 表示 さ れます。 IP ラ イ セ ン ス の取得方法は、 ザ イ リ ン ク ス製品 ラ イ セ ン ス ページ を参照 し て く だ さ い。
ザ イ リ ン ク スお よ びパー ト ナーでは、 Vivado IP カ タ ロ グに含まれていない IP コ ア も 提供 し てい ます。 入手可能な IP
は、 ザ イ リ ン ク ス ウ ェ ブサ イ ト の IP ページ を参照 し て く だ さ い。
次のセ ク シ ョ ンでは、 IP コ アの コ ン フ ィ ギ ュ レーシ ョ ン、 使用、 管理方法について説明 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
20
第 2 章 : Vivado Design Suite の使用
Vivado IP カ タ ログの使用
Vivado IDE の IP カ タ ロ グ を使用す る と 、IP の コ ン フ ィ ギ ュ レーシ ョ ンに最 も 適 し た方法で、IP の検索、 コ ン フ ィ ギ ュ
レーシ ョ ン、 出力フ ァ イ ルの生成、 検証を簡単に実行で き ます。 Vivado IDE の IP カ タ ロ グ と コ ン フ ィ ギ ュ レーシ ョ
ン ウ ィ ザー ド を使用す る こ と で、 作業が簡単にな り ます。 IP カ タ ロ グか ら 、 製品ガ イ ド 、 変更 ロ グ、 IP のア ンサー
な ど の IP 関連の資料 も 確認で き ます。
IP カ ス タ マ イ ズの ス ク リ プ ト を イ ネーブルにす る 同等の Tcl コ マ ン ド も あ り ますが、 IP の Tcl パ ラ メ ー タ ーすべてが
文書化 さ れてい る わけではあ り ません。 ス ク リ プ ト が必要な場合は、 IDE を使用 し て IP を コ ン フ ィ ギ ュ レーシ ョ ン
し 、 出力フ ァ イ ルを生成 し た後、 Vivado Design Suite ジ ャ ーナル フ ァ イ ルを使用 し て ス ク リ プ ト を作成で き ます。
コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ザー ド を使用 し て IP を カ ス タ マ イ ズ し た ら 、 Xilinx Core Instance (.xci) フ ァ イ ルが作
成 さ れます。 こ の フ ァ イ ルには、 IP のカ ス タ マ イ ズ オプシ ョ ンすべてが含まれます。 こ の フ ァ イ ルに基づいて IP の
すべての出力フ ァ イ ルが生成 さ れます。 こ れ ら の出力フ ァ イ ルには、 合成お よ びシ ミ ュ レーシ ョ ン用の HDL、 制約、
テ ス ト ベンチ (場合に よ っ て)、 C モジ ュ ール、 サンプル デザ イ ン な ど が含まれます。 こ れ ら の フ ァ イ ルは、 使用 さ れ
る カ ス タ マ イ ズ オプシ ョ ンに基づいて作成 さ れます。
IP は特定の ロ ジ ッ ク デバ イ ス用に生成 さ れてい る ので、 IP にわか り やすい名前を付けてお く と 、 後で識別 し やす く
な り ます。
詳細は、 次を参照 し て く だ さ い。
•
「IP のア ッ プデー ト 」
•
「IP の管理」 (IP コ ン フ ィ ギ ュ レーシ ョ ンの格納お よ び使用に関す る オプシ ョ ンについて説明)
•
『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 9]
IP 出力 フ ァ イルの生成
IP の出力フ ァ イ ルは、 その IP 用の コ ン フ ィ ギ ュ レーシ ョ ン を合成、 シ ミ ュ レーシ ョ ン、お よ び イ ンプ リ メ ン テーシ ョ
ン ツールで使用で き る よ う にす る ために作成 さ れ ます。 出力フ ァ イ ルを生成す る と 、 デ ィ レ ク ト リ 構造が設定 さ れ
て、 その IP に関す る さ ま ざ ま な出力フ ァ イ ルが保存 さ れ ます。 それ ら の フ ォ ルダーお よ びフ ァ イ ルの名前はわか り
やすい も のにな っ てい る ので、 変更 し ないで く だ さ い。
IP コ ア コ ン テナーの使用
リ ビ ジ ョ ン管理シ ス テ ム で フ ァ イ ルを管理 し やす く す る ため、 IP コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル と 出力フ ァ イ ル
を、 デ ィ レ ク ト リ 構造ではな く 、 IP コ ア コ ン テナー と い う 1 つのバ イ ナ リ フ ァ イ ルに格納で き ます。 Vivado Design
Suite は、 こ の IP コ ア コ ン テナー フ ァ イ ルを直接操作 し ま す。 IP コ ア コ ン テナーの使用に関す る 詳細は、 『Vivado
Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 9] を参照 し て く だ さ い。コ ア コ ン テナーを使用 し た
リ ビ ジ ョ ン管理に関す る 詳細は、 「IP ソ ース の管理」 を参照 し て く だ さ い。
ネ ッ ト リ ス ト オプ シ ョ ン
IP の出力フ ァ イ ルを生成す る 際、IP に作成す る デー タ の レベルを指定す る オプシ ョ ンがあ り ます。選択 し たオプシ ョ
ンに よ っ て、 デザ イ ンの イ ンプ リ メ ン ト 方法は異な り ます。
•
デフ ォ ル ト のア ウ ト オブ コ ン テ キ ス ト (OOC) オプシ ョ ン を使用す る と 、 出力フ ァ イ ル生成中に指定のカ ス タ マ
イ ズ バージ ョ ン の IP に対 し て のみ ロ ジ ッ ク 合成が実行 さ れ、 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル
(.dcp) が作成 さ れます。 こ のネ ッ ト リ ス ト は、 イ ンプ リ メ ン テーシ ョ ン中に IP に含まれ る 制約 と 共に使用 さ れ
ます。 IP のみの合成は、 ア ウ ト オブ コ ン テ キ ス ト (OOC) 合成 と 呼ばれます。
こ の方法は、 デザ イ ンの残 り の部分にサー ド パーテ ィ 合成ツールを使用 し 、 IP のブ ラ ッ ク ボ ッ ク ス を推論す る
た めにそれ ら のモ ジ ュ ール ス タ ブ フ ァ イ ル を 作成す る 場合に も 必要です。 論理シ ミ ュ レ ーシ ョ ン モデルは、
Verilog お よ び VHDL の両方で生成 さ れます。 混合言語シ ミ ュ レーシ ョ ン ツールを使用 し ない場合は、 フ ァ ン ク
シ ョ ン ネ ッ ト リ ス ト も 使用可能です。 Vivado Design Suite を使用 し てサー ド パーテ ィ シ ミ ュ レー タ を起動す る 場
合は、 必要に応 じ て HDL ま たはフ ァ ン ク シ ョ ン ネ ッ ト リ ス ト のいずれかが使用 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
21
第 2 章 : Vivado Design Suite の使用
•
[Global] を オンにす る と 、 IP の RTL お よ び XDC IP ソ ース フ ァ イ ルが生成 さ れます。 こ れ ら の フ ァ イ ルは、 デザ
イ ン の最上位を合成お よ び イ ン プ リ メ ン テーシ ョ ンす る と き にデザ イ ン のその他の ソ ー ス フ ァ イ ル と 共に使用
さ れます。
ヒ ン ト : OOC 合成の結果は、 モジ ュ ール解析ま たは タ イ ミ ン グ保持のため、 イ ンプ リ メ ン テーシ ョ ンに も 使用で き ま
す。 OOC モジ ュ ールを イ ン プ リ メ ン ト す る には、 制約を追加 し て、 タ イ ミ ン グ結果が正確な も のにな る よ う にす る
必要があ り ます。詳細は、『Vivado Design Suite ユーザー ガ イ ド : 階層デザ イ ン』 (UG905) [参照 20]を参照 し て く だ さ い。
カ ス タ マ イ ズす る 各 IP に対 し 、 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト を含め、 すべての出力フ ァ イ ルを生成 し てお く
こ と をお勧め し ます。 こ の よ う に、 新 し いバージ ョ ンの Vivado Design Suite にその IP が含まれていなか っ た り 、 望ま
し く ない変更 ( イ ン タ ーフ ェ イ ス の変更な ど) が IP に加え ら れていた り し て も 、 シ ミ ュ レーシ ョ ンに必要な フ ァ イ ル
や、 新 し いバージ ョ ンの Vivado Design Suite で合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行す る ために必要な フ ァ イ ル
は手元にあ る こ と にな り ます。
IP の制約
IP コ ア のほ と ん ど には、 合成お よ び イ ン プ リ メ ン テーシ ョ ン 中に使用 さ れ る XDC 制約が含 ま れ ま す。 IP の カ ス
タ マ イ ズ中に作成 さ れ る XCI を 使用す る 場合、 プ ロ ジ ェ ク ト モー ド ま たは非プ ロ ジ ェ ク ト モー ド の ど ち ら で も 、
こ れ ら の制約が自動的に使用 さ れ ま す。 IP の制約 を 最上位で動作す る よ う 手動で変更す る と 、 間違い を 犯 し やす
く 、 面倒で も あ り ま す。
IP コ アの多 く は、 その制約で入力 ク ロ ッ ク を参照 し ま す。 こ れ ら の ク ロ ッ ク は、 最上位でユーザーが指定 し た も の
か、 ま たはデザ イ ン内のほかの IP コ アか ら 供給 さ れ る こ と も あ り ます。 Vivado ツールでは、 デフ ォ ル ト で IP ク ロ ッ
ク お よ びユーザー定義の最上位 ク ロ ッ ク が先に作成 さ れ、 こ れ ら の ク ロ ッ ク がそれを必要 と す る IP コ アに供給 さ れ
ます。
IP の検証
Vivado IP カ タ ロ グに含ま れ る ザ イ リ ン ク ス IP の多 く には、 サ ン プル デザ イ ン が含ま れ ます。 IP にサ ン プル デザ イ
ンが含まれてい る か ど う かは、 [Manage IP] ま たは RTL プ ロ ジ ェ ク ト で [IP Sources] タ ブに含ま れ る IP を右 ク リ ッ ク
し 、 [Open IP Example Design] が選択で き る よ う にな っ てい る か ど う かでわか り ます。 こ れは、 Tcl を使用 し て も 実行
で き ます。
X-Ref Target - Figure 2-3
図 2-3 : サン プル デザイ ン を開 く
サンプル デザ イ ン を開 く と 、 カ ス タ マ イ ズ し た IP を含む新 し いプ ロ ジ ェ ク ト が作成 さ れます。 サンプル デザ イ ン を
参照 し て、 特定の IP カ ス タ マ イ ズの有効な使用方法お よ び接続について理解 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
22
第 2 章 : Vivado Design Suite の使用
IP の中には、 サンプル デザ イ ンにテ ス ト ベンチが含まれてい る も のがあ り 、 カ ス タ マ イ ズ し た IP の機能を検証す る
のに使用で き ます。 ビヘ イ ビ アー、 合成後、 ま たは イ ン プ リ メ ン テーシ ョ ン後のシ ミ ュ レーシ ョ ン を実行で き ます。
ま た、論理ま たは タ イ ミ ン グ シ ミ ュ レーシ ョ ン を実行で き ます。タ イ ミ ン グ シ ミ ュ レーシ ョ ンお よ び論理シ ミ ュ レー
シ ョ ン を実行す る には、 サンプル デザ イ ン を合成お よ び イ ンプ リ メ ン ト する 必要があ り ます。
IP の シ ミ ュ レ ーシ ョ ン に関す る 詳細は、 そ の IP の製品ガ イ ド を 参照 し て く だ さ い。 シ ミ ュ レ ーシ ョ ン の詳細は、
『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参照 11] を参照 し て く だ さ い。サンプル
デザ イ ン と IP 出力 フ ァ イ ル の使用に関す る 詳細は、 『Vivado Design Suite ユ ーザー ガ イ ド : IP を 使用 し た 設計』
(UG896) [参照 9] を参照 し て く だ さ い。
デザ イ ンに メ モ リ IP が含まれ る 場合は、 次の資料を参照 し て く だ さ い。
•
シ ミ ュ レーシ ョ ンの詳細は、 『LogiCORE IP UltraScale アーキ テ ク チ ャ ベース FPGA メ モ リ イ ン タ ーフ ェ イ ス ソ
リ ュ ーシ ョ ン製品ガ イ ド 』 (PG150) [参照 48]
•
MicroBlaze™ プ ロ セ ッ サ デザ イ ン を含む メ モ リ IP のシ ミ ュ レーシ ョ ン例 : 『 リ フ ァ レ ン ス シ ス テ ム : IP イ ン テ
グ レー タ ーを用いた Kintex-7 MicroBlaze シ ス テ ム シ ミ ュ レーシ ョ ン』 (XAPP1180) [参照 46]
メ モ リ IP の使用
ザ イ リ ン ク ス メ モ リ IP を使用す る 場合は、追加の I/O ピ ン プ ラ ン ニ ン グ手順が必要です。IP を カ ス タ マ イ ズ し た後、
Vivado IDE でエ ラ ボ レ ー ト 済みデザ イ ン ま たは合成済みデザ イ ン を開いて最上位 I/O ポー ト を物理的なパ ッ ケージ
ピ ンに割 り 当て ます。
各 メ モ リ IP に関連す る ポー ト はすべて I/O ポー ト イ ン タ ーフ ェ イ ス と し て グループ化 さ れてお り 、 簡単に特定お よ
び割 り 当てで き ます。 メ モ リ バン ク /バ イ ト プ ラ ンナーが提供 さ れてお り 、 メ モ リ I/O ピ ン グループ を物理的なデバ
イ ス ピ ンのバ イ ト レーンに割 り 当て る こ と がで き ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 4] の 「UltraScale デ
バ イ ス の メ モ リ IP の I/O プ ラ ン ニ ン グ」 を参照 し て く だ さ い。
IP イ ンテグレー タ ーを使用し た IP サブシステムの作成
こ のセ ク シ ョ ンでは、 IP (Intellectual Property) サブシ ス テ ムの作成お よ び管理方法について説明 し ます。
Vivado IP サブ シ ス テム
Vivado Design Suite の IP イ ン テ グ レー タ ーを使用す る と 、 ブ ロ ッ ク デザ イ ン (.bd) を作成で き ます。 ブ ロ ッ ク デザ
イ ン と は、 ユーザーが コ ン フ ィ ギ ュ レーシ ョ ン し た IP と 接続を含む IP サブシ ス テ ムの こ と です。 ユーザーのカ ス タ
ム IP を AXI イ ン タ ーフ ェ イ ス と 一緒にパ ッ ケージお よ び使用す る 場合は、 「カ ス タ ム IP お よ び IP サブシ ス テ ム の
パ ッ ケージ」 お よ び 「カ ス タ ム ペ リ フ ェ ラ ルの作成」 を参照 し て く だ さ い。 IP イ ン テ グ レー タ ーは、 IP コ ア を接続
す る ための イ ン タ ーフ ェ イ ス で、 Zynq®-7000 All Programmable (AP) SoC お よ び MicroBlaze プ ロ セ ッ サ を使用 し たエ
ンベデ ッ ド プ ロ セ ッ サ ベー ス のデザ イ ン を含む ド メ イ ン特定のサブシ ス テ ムお よ びデザ イ ン を作成 し ます。 Vivado
HLS か ら の高位合成モジ ュ ール、 System Generator か ら の DSP モジ ュ ール、 [Package IP] 機能を使用 し てパ ッ ケージ
化 し た カ ス タ ム IP を イ ン ス タ ン シエー ト で き ます。
詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参
照 26]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し たデザ イ ン
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
23
第 2 章 : Vivado Design Suite の使用
IP サブ シ ス テムの構築
IP サブシ ス テ ムの コ ン フ ィ ギ ュ レーシ ョ ンには、Vivado IDE の IP イ ン テ グ レー タ ーを使用す る のが最適な方法です。
IP イ ン テ グ レー タ ーの イ ン タ ラ ク テ ィ ブなブ ロ ッ ク 設計機能を使用す る と 、IP を コ ン フ ィ ギ ュ レーシ ョ ン し た り 、複
数の IP を統合 し た り す る 作業が簡単にな り ます。
ス ク リ プ ト が必要な場合は、 Vivado IDE を使用 し てサブシ ス テ ム を作成 し た後、 Vivado Design Suite ジ ャ ーナル フ ァ
イ ルを使用で き ます。 IP イ ン テ グ レー タ ーでは、 現在のブ ロ ッ ク デザ イ ン を メ モ リ で作成 し 直すための Tcl ス ク リ プ
ト を作成で き ます。 GUI、 Tcl シ ェ ル コ マ ン ド 、 お よ びス ク リ プ ト を組み合わせて使用 し 、 IP サブシ ス テ ム を作成す
る す る こ と も で き ます。
IP サブシ ス テ ムは、デザ イ ン プ ロ ジ ェ ク ト に イ ン ポー ト す る と き に、HDL ソ ースお よ び制約のセ ッ ト と し て イ ン ポー
ト す る か (デフ ォ ル ト )、 ま たは合成済みネ ッ ト リ ス ト お よ び制約を含むデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (.dcp)
と し て イ ン ポー ト す る よ う に コ ン フ ィ ギ ュ レーシ ョ ンで き ます。
設計ア シ ス タ ン ス
サブシ ス テ ム ま たはデザ イ ン を短時間で作成す る には、 IP イ ン テ グ レー タ ーのブ ロ ッ ク オー ト メ ーシ ョ ンお よ び コ
ネ ク シ ョ ン オー ト メ ーシ ョ ン機能を使用 し ます。 ブ ロ ッ ク オー ト メ ーシ ョ ン機能は、 基本的なプ ロ セ ッ サ ベース の
デザ イ ンお よ び複雑な IP シ ス テ ム を コ ン フ ィ ギ ュ レーシ ョ ンす る ために使用 し 、 コ ネ ク シ ョ ン オー ト メ ーシ ョ ン機
能はデザ イ ンの異な る ピ ン/ポー ト への反復的な接続に使用 し ます。 IP イ ン テ グ レー タ ーでは、 ボー ド が認識 さ れ、 現
在すべてのザ イ リ ン ク ス評価ボー ド がサポー ト さ れてい ます。評価ボー ド の 1 つを タ ーゲ ッ ト ハー ド ウ ェ ア と し て使
用す る と 、 IP イ ン テ グ レー タ ーでそのボー ド に存在す る すべての コ ン ポーネ ン ト が認識 さ れ、 コ ネ ク シ ョ ン オー ト
メ ーシ ョ ン機能を使用 し てデザ イ ンの I/O ポー ト を タ ーゲ ッ ト ボー ド 上の既存の コ ン ポーネ ン ト に接続で き ます。設
計ア シ ス タ ン ス を使用す る と 、 ク ロ ッ ク お よ び リ セ ッ ト も 接続で き ます。 [Signals] お よ び [Board] な ど の ウ ィ ン ド ウ
を活用 し て、 ブ ロ ッ ク デザ イ ン を接続で き ます。 設計ア シ ス タ ン ス を使用する と 、 接続をすばや く 実行で き る だけで
な く 、 デザ イ ン エ ラ ーを回避で き ます。
ブ ロ ッ ク オー ト メ ーシ ョ ン
複雑な IP お よ びプ ロ セ ッ サ ベース のデザ イ ンの中には、IP イ ン テ グ レー タ ーでブ ロ ッ ク オー ト メ ーシ ョ ン機能を使
用で き る も のがあ り ます。 こ の機能を使用す る と 、 基本プ ロ セ ッ サ/IP ベース のサブシ ス テ ム と よ く 使用 さ れ る コ ン
ポーネ ン ト を比較的短時間で統合で き ます。 エンベデ ッ ド デザ イ ンの基本的な構築ブ ロ ッ ク を組み込んだ後、 カ タ ロ
グか ら IP を追加 し て こ の基本シ ス テ ム を構築で き ます。
コ ネ ク シ ョ ン オー ト メ ーシ ョ ン
ブ ロ ッ ク オー ト メ ーシ ョ ン を実行 し て基本的なシ ス テ ム を構築 し た ら 、デザ イ ン を外部 I/O ピ ンに接続す る 必要があ
り ます。 IP イ ン テ グ レー タ ーの コ ネ ク シ ョ ン オー ト メ ーシ ョ ン機能を使用す る と 、 I/O ピ ンへの接続だけでな く 、 デ
ザ イ ンの別の ソ ースへの接続 も 実行 さ れます。IP イ ン テ グ レー タ ーではボー ド が認識 さ れ る ので、 コ ネ ク シ ョ ン オー
ト メ ーシ ョ ン機能を使用 し て、 ブ ロ ッ ク デザ イ ン のポー ト を タ ーゲ ッ ト ボー ド に存在す る 外部 コ ン ポーネ ン ト に接
続 し 、 こ れ ら のポー ト の物理制約を作成で き ます。
ルール ベースの接続チ ェ ッ ク
IP イ ン テ グ レー タ ーでは、 デザ イ ンが統合 さ れ る と き に リ アル タ イ ムで基本的なデザ イ ン ルール チ ェ ッ ク が実行 さ
れますが、 デザ イ ン作成中に何 ら かの問題が発生する 可能性はあ り ます。 た と えば、 ク ロ ッ ク ピ ンの周波数が正 し く
設定 さ れていない こ と があ り ます。 こ の よ う な タ イ プのエ ラ ーは、 デザ イ ン検証を実行す る と 検出で き ます。 デザ イ
ン検証では、 ブ ロ ッ ク デザ イ ンのデザ イ ン ルール チ ェ ッ ク が実行 さ れ、 エ ラ ーま たは警告があればそれが レ ポー ト
さ れ ます。 こ のエ ラ ーま たは警告 メ ッ セージ を ク リ ッ ク す る と 、 ブ ロ ッ ク 図で該当す る 部分がハ イ ラ イ ト さ れます。
ボー ド デザ イ ン を検証 し てお く と 、 デザ イ ン フ ロ ーの後半にな っ てか ら 問題に気づ く と い う よ う な状況を回避で き
ます。
デザ イ ン検証を実行する と 、 ブ ロ ッ ク デザ イ ンのパ ラ メ ーター伝搬 も 実行 さ れます。 パ ラ メ ーター伝搬に よ り 、 IP が
デザ イ ンでどの よ う に接続 さ れてい る かに基づいて、 パ ラ メ ー タ ーが自動的にア ッ プデー ト さ れます。 IP を特定の伝
搬規則を使用し てパ ッ ケージする と 、ブ ロ ッ ク 図の生成時に IP イ ン テグ レータ ーに よ り こ れ ら の規則が実行 さ れます。
デザ イ ン を検証す る には、 [Tools] → [Validate Design] を ク リ ッ ク す る か、 Tcl コ マ ン ド validate_bd_design を使
用 し ます。 IP イ ン テ グ レー タ ー キ ャ ンバ ス の ツールバーにあ る [Validate Design] ボ タ ン を使用 し て も 実行で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
24
第 2 章 : Vivado Design Suite の使用
プ ラ ッ ト フ ォ ーム ボー ド フ ローの使用
Vivado Design Suite ではボー ド が認識 さ れ る ので、 含まれてい る ボー ド フ ァ イ ルか ら I/O 制約お よ び IP コ ン フ ィ ギ ュ
レ ーシ ョ ン デー タ を自動的に抽出で き ま す。 ボー ド フ ァ イ ルに よ り タ ーゲ ッ ト ボー ド に存在す る さ ま ざ ま な コ ン
ポーネ ン ト が認識 さ れ、 IP を特定のボー ド コ ン ポーネ ン ト に接続 さ れ る よ う にカ ス タ マ イ ズ し て コ ン フ ィ ギ ュ レー
シ ョ ンで き ます。 現在の と こ ろ、 数個の 7 シ リ ーズ デバ イ ス、 Zynq-7000 AP SoC、 お よ び UltraScale™ デバ イ ス ボー
ド がサポー ト さ れてい ます。 パー ト ナーの開発ボー ド を使用 し てい る 場合は、 パー ト ナー ウ ェ ブサ イ ト か ら サポー ト
フ ァ イ ルを ダ ウ ン ロ ー ド で き ます。
IP イ ン テ グ レー タ ーでは、 [Board] ウ ィ ン ド ウ に タ ーゲ ッ ト ボー ド 上のすべての コ ン ポーネ ン ト イ ン タ ーフ ェ イ ス が
表示 さ れます。 こ の ウ ィ ン ド ウ を使用 し て必要な コ ン ポーネ ン ト を選択 し 、 IP イ ン テ グ レー タ ーの設計ア シ ス タ ン ス
を使用す る と 、 デザ イ ン を簡単に選択 し たボー ド コ ン ポーネ ン ト に接続で き ます。 イ ン タ ーフ ェ イ ス を個別に ま たは
グループ と し て ド ロ ッ プ ア ン ド ド ロ ッ プ し 、 デフ ォ ル ト の IP コ ン フ ィ ギ ュ レーシ ョ ン を使用で き ます。 IP イ ン テ グ
レー タ ーのダ イ ア グ ラ ムで使用可能な場合は、 イ ン タ ーフ ェ イ ス を ダブル ク リ ッ ク し て、 イ ン タ ラ ク テ ィ ブな方法で
イ ン タ ーフ ェ イ ス を オプシ ョ ンの IP お よ び設定 と 共に追加で き ます。 I/O 制約は、 こ の機能の一部 と し てすべて自動
的に生成 さ れます。
カ ス タ ム ボー ド 用のボー ド フ ァ イ ルを生成 し 、 ボー ド フ ァ イ ルを含む リ ポジ ト リ をプ ロ ジ ェ ク ト に追加す る こ と も
可能です。 カ ス タ ム ボー ド フ ァ イ ル生成の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル のデザ イ
ン入力』 (UG895) [参照 8] の 「Vivado Design Suite ボー ド フ ロ ーの使用」 を参照 し て く だ さ い。
階層的な IP サブ シ ス テムの作成
IP イ ン テ グ レー タ ーを使用 し て、 階層 IP サブシ ス テ ム を作成で き ます。 こ の機能は、 ブ ロ ッ ク 数が多 く 、 GUI のキ ャ
ンバ ス上で管理 し に く いデザ イ ンの場合に便利です。 複数の階層レベルがサポー ト さ れ、 デザ イ ン機能に基づいてブ
ロ ッ ク を分類で き る ので、デザ イ ン モジ ュ ールを IP イ ン テ グ レー タ ーのキ ャ ンバス で見やすい よ う に表示で き ます。
デザ イ ンの さ ま ざ ま なオブジ ェ ク ト の表示を変更す る こ と も で き ます。 た と えば、 ク ロ ッ ク と リ セ ッ ト を別の色で表
示 し た り 、 一部の タ イ プの接続を表示 し てほかの接続を非表示に し た り す る こ と も 可能です。
ブ ロ ッ ク デザイ ンの生成
ブ ロ ッ ク デザ イ ン ま たは IP サブシ ス テ ム を作成 し た ら 、 デザ イ ン を生成で き ます。 デザ イ ン を生成する と 、 すべて
の ソ ース コ ー ド 、 その IP に必要な制約、 ブ ロ ッ ク デザ イ ンの構造型ネ ッ ト リ ス ト が生成 さ れます。 ブ ロ ッ ク デザ イ
ン を生成す る には、 [Sources] ウ ィ ン ド ウ でブ ロ ッ ク デザ イ ン を 右 ク リ ッ ク し 、 [Generate Output Products] を ク リ ッ ク
し ます。Vivado Design Suite の Flow Navigator か ら [IP Integrator] → [Generate Block Design] を ク リ ッ ク し て も 生成で き
ます。 こ れ と 同等の Tcl コ マ ン ド は、 次の と お り です。
generate_target all [get_files <path to the block design>]
こ の手順が終了 し た ら 、 よ り 上位の HDL デザ イ ンに統合する か、 合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行 し ます。
ブ ロ ッ ク デザイ ンに対する アウ ト オブ コ ン テキス ト 合成の使用
階層デザ イ ン フ ロ ーを使用す る と 、 デザ イ ン を管理 し やすい小型のブ ロ ッ ク に分割 し て個別に処理で き ます。 Vivado
Design Suite では、 こ の分割 さ れたモジ ュ ールを残 り のデザ イ ンか ら 独立 さ せて合成で き ます。
Vivado Design Suite では、 ブ ロ ッ ク デザ イ ンに対し て 2 つの OOC モー ド がサポー ト さ れてい ます。 最上位デザ イ ンに
サー ド パーテ ィ 合成フ ロ ーを使用する場合は、[Out of context per Block design] をオンに し ます。こ れは、デザ イ ン チ ェ ッ
ク ポ イ ン ト (DCP) フ ァ イ ルを作成する IP イ ン テ グ レータ ーの一般的な フ ロ ーです。 こ のブ ロ ッ ク デザ イ ンは、 よ り 大
き なデザ イ ンの一部 と し て使用する場合、 デザ イ ンのほかの部分を変更する たびに合成 し 直す必要はあ り ません。
ブ ロ ッ ク デザ イ ンに イ ン ス タ ン シエー ト さ れてい る 各 IP に OOC run を作成す る 場合は、[Out of context per IP] を オン
に し ま す。 ブ ロ ッ ク デザ イ ン の各 IP に対 し てデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルが作成 さ れ ます。 こ の フ ロ ーで
は、 再カ ス タ マ イ ズ ま たはパ ラ メ ー タ ー伝搬に よ り コ ン フ ィ ギ ュ レーシ ョ ン が変更 さ れた IP のみの出力フ ァ イ ルが
生成 さ れます。 実行時間が短縮 さ れ る ので、 特にデザ イ ン を吟味す る 初期段階で実行時間が問題 と な る よ う な場合に
有益です。IP キ ャ ッ シ ュ 機能を こ のオプシ ョ ン と 共に使用 し て、IP が変更 さ れていない場合に出力フ ァ イ ルが再生成
さ れない よ う にで き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
25
第 2 章 : Vivado Design Suite の使用
リ モー ト ブ ロ ッ ク デザイ ンの作成 (推奨)
IP イ ン テ グ レ ー タ ーの再利用機能を使用す る と 、 ブ ロ ッ ク デザ イ ン を Vivado Design Suite プ ロ ジ ェ ク ト 外で作成で
き 、 複数のチームで再利用で き ます。 デザ イ ン を作成 し た ら 、 リ ビ ジ ョ ン管理シ ス テ ムに配置 し て、 複数チームが同
じ ブ ロ ッ ク デザ イ ン を再利用 し て、 複数のプ ロ ジ ェ ク ト を作成で き る よ う に し ます。
ブ ロ ッ ク デザ イ ン を リ モー ト デ ィ レ ク ト リ で作成する には、 [Create Block Design] ダ イ ア ロ グ ボ ッ ク ス の [Directory]
ド ロ ッ プダ ウ ン リ ス ト か ら 該当す る デ ィ レ ク ト リ を指定 し ます。
IP サブ シ ス テムの検証
デザ イ ン が完成 し た ら 、 IP イ ン テ グ レー タ ー キ ャ ンバ ス の [Validate Design] ツールバー ボ タ ン を ク リ ッ ク し て、 ブ
ロ ッ ク デザ イ ンに対 し て包括的なデザ イ ン ルール チ ェ ッ ク を実行で き ます。 デザ イ ン ルール チ ェ ッ ク を実行す る
と 、 パ ラ メ ー タ ー伝搬が実行 さ れ、 デザ イ ンの異な る エン ド ポ イ ン ト におけ る パ ラ メ ー タ ーの不一致がチ ェ ッ ク さ れ
ます。
ブ ロ ッ ク デザイ ンの最上位デザイ ンへの統合
IP イ ン テ グ レー タ ーのブ ロ ッ ク デザ イ ンは、 それ よ り 上位のデザ イ ン レベルに統合す る か、 デザ イ ン階層の最上位
にで き ます。 IP イ ン テ グ レー タ ー デザ イ ン を上位のデザ イ ンに統合す る には、 IP イ ン テ グ レー タ ー デザ イ ン を最上
位 HDL フ ァ イ ルに イ ン ス タ ン シエー ト し ます。
ブ ロ ッ ク デザ イ ン を上位に イ ン ス タ ン シエー ト する には、 Vivado IDE の [Sources] ウ ィ ン ド ウ でブ ロ ッ ク デザ イ ン を
右 ク リ ッ ク し 、 [Create HDL Wrapper] を ク リ ッ ク し ます。 こ れに よ り 、 IP イ ン テ グ レー タ ー サブシ ス テ ム用の最上位
HDL フ ァ イ ルが生成 さ れます。
カ ス タ ム IP および IP サブ シ ス テムのパ ッ ケージ
Vivado IP パ ッ ケージ ャ ーを使用す る と 、 カ ス タ ム IP を作成 し て、 Vivado IP カ タ ロ グに配布で き ます。 IP のパ ッ ケー
ジには、 業界標準の IP-XACT フ ォーマ ッ ト が使用 さ れます。 パ ッ ケージ さ れた IP のデ ィ レ ク ト リ は、 Vivado Design
Suite の [Project Settings] → [IP] → [Repository Manager] タ ブに追加で き ます。 IP の レ ポジ ト リ を追加す る と 、 その IP
コ アが IP カ タ ロ グに表示 さ れ る よ う にな り ます。 こ れで、 IP を Vivado IP カ タ ロ グ内で選択 し て カ ス タ マ イ ズで き ま
す。 次は、 Vivado IP パ ッ ケージ ャ ーの フ ロ ーの概要です。
1.
Create and Package IP ウ ィ ザー ド を使用 し て、 カ ス タ ム IP の HDL と 関連デー タ フ ァ イ ルをパ ッ ケージ し ます。
2.
パ ッ ケージ さ れた カ ス タ ム IP を その IP のユーザーに配布 し ます。
3.
エン ド ユーザーは、 その IP デ ィ レ ク ト リ を Vivado Design Suite の [Project Settings] → [IP] → [Repository Manager]
タ ブに追加 し ます。
4.
IP が IP カ タ ロ グに表示 さ れ、 エン ド ユーザーはザ イ リ ン ク ス提供の IP と 同様、 その IP を選択お よ びカ ス タ マ
イ ズで き る よ う にな り ます。
Create and Package IP ウ ィ ザー ド を使用する と 、 IP パ ッ ケージ手順に従っ て、 プ ロ ジ ェ ク ト 、 ブ ロ ッ ク デザ イ ン、 ま
たは指定 し たデ ィ レ ク ト リ か ら IP をパ ッ ケージで き る ほか、 新 し いテ ン プ レー ト AXI4 ペ リ フ ェ ラ ルを作成お よ び
パ ッ ケージで き ます。
重要 : カ ス タ ム IP のデ ィ レ ク ト リ 構造は、IP 定義を記述する すべての HDL がパ ッ ケージ さ れ る デ ィ レ ク ト リ レベル
の下に含まれ る よ う に設定す る 必要があ り ます。 上位のデ ィ レ ク ト リ レベルの HDL フ ァ イ ルを絶対パ ス で参照す る
こ と はで き ますが、 その よ う にす る と 、 パ ッ ケージ さ れた IP を ネ ッ ト ワ ー ク を介 し て移植す る こ と はで き な く な り
ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
26
第 2 章 : Vivado Design Suite の使用
IP パ ッ ケージ ャ ーを使用す る と 、 IP のエン ド ユーザーは、 ザ イ リ ン ク ス IP、 サー ド パーテ ィ IP、 カ ス タ ムの社内 IP
の どれで も 、 同 じ よ う に設定で き る よ う にな り ます。 IP の作成お よ びパ ッ ケージの詳細は、 『Vivado Design Suite ユー
ザー ガ イ ド : カ ス タ ム IP の作成 と パ ッ ケージ』 (UG1118) [参照 27] を参照 し て く だ さ い。
重要 : カ ス タ ム IP 定義の作成中に、サポー ト さ れ る デバ イ ス フ ァ ミ リ の正 し い リ ス ト を適切に定義 し て く だ さ い。 こ
れは、 IP を複数のデバ イ ス フ ァ ミ リ で使用す る 場合に特に重要にな り ます。
ヒ ン ト : IP の HDL をパ ッ ケージす る 前に、 シ ミ ュ レーシ ョ ンお よ び合成でそれが正 し いか ど う か を確認 し て、 デザ
イ ン を検証 し ておいて く だ さ い。
カ ス タ ム IP のパ ッ ケージ作成中に、edit_ip プ ロ ジ ェ ク ト を表示す る Vivado IDE の別の イ ン ス タ ン ス が開 く こ と が
あ り ます。 こ のプ ロ ジ ェ ク ト は一時的な キ ャ ッ シ ュ で、 IP をパ ッ ケージする と すぐ に削除 さ れます。
カ ス タ ム ペ リ フ ェ ラルの作成
Vivado Design Suite では、 すべての メ モ リ マ ッ プ ド イ ン タ ーフ ェ イ ス に AXI イ ン タ ーフ ェ イ ス を使用す る 必要があ
り ます。 Vivado Design Suite では、 Create and Package IP ウ ィ ザー ド のオプシ ョ ンに よ り 、 AXI イ ン タ ーフ ェ イ ス規格
に準拠す る カ ス タ ム IP を作成で き ます。 Create and Package IP ウ ィ ザー ド では、 次の 3 タ イ プの AXI イ ン タ ーフ ェ イ
ス を生成で き ます。
•
AXI4 : 1 つのア ド レ ス フ ェーズで最大 256 デー タ 転送サ イ ク ルのバース ト が可能な メ モ リ マ ッ プ ド イ ン タ ー
フ ェ イ ス に使用 し ます。
•
AXI4-Lite : 軽量の単一 ト ラ ンザ ク シ ョ ンの メ モ リ マ ッ プ ド イ ン タ ーフ ェ イ ス です。
•
AXI4-Stream : ア ド レ ス フ ェーズの要件を削除し 、 制限のないデー タ バース ト サ イ ズ を使用で き る よ う に し ます。
IP の コ ア機能が既に作成 さ れてい る 場合は、 Create and Package IP ウ ィ ザー ド を使用 し て カ ス タ ム IP 用の AXI イ ン
タ ー フ ェ イ ス ロ ジ ッ ク を生成で き ま す。 Create and Package IP ウ ィ ザー ド では、 HDL、 ド ラ イ バー、 テ ス ト ア プ リ
ケーシ ョ ン、 バ ス フ ァ ン ク シ ョ ン モデル (BFM)、 お よ びテ ン プ レー ト 例を含む AXI4 ペ リ フ ェ ラ ルのテ ン プ レー ト
を作成で き ます。ペ リ フ ェ ラ ルが作成 さ れた ら 、ユーザー デザ イ ン フ ァ イ ルを追加 し て カ ス タ ム IP を完成 さ せます。
その他の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : カ ス タ ム IP の作成 と パ ッ ケージ』 (UG1118) [参照 27] お よ び
『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参照 26] を
参照 し て く だ さ い。
Cadence Design Systems 社に よ り ザ イ リ ン ク ス用に開発 さ れたザ イ リ ン ク ス LogiCORE™ IP AXI BFM Cores では、 カ
ス タ マーが設計 し た AXI ベース の IP のシ ミ ュ レーシ ョ ンがサポー ト さ れます。 AXI BFM コ アでは、 AXI のすべての
バージ ョ ン (AXI3、 AXI4、 AXI4-Lite、 お よ び AXI4-Stream) がサポー ト さ れ ます。 BFM は、 暗号化 さ れた Verilog モ
ジ ュ ールです。 BFM の動作は、 Verilog 構文テ キ ス ト フ ァ イ ルに記述 さ れた Verilog タ ス ク のシーケ ン ス で制御 さ れま
す。 こ の コ ア をブ ロ ッ ク デザ イ ンに イ ン ス タ ン シエー ト し て カ ス タ ム IP に接続 し 、AXI の機能を確認で き ます。BFM
コ アの詳細は、 『AXI BFM Cores LogiCORE IP 製品ガ イ ド 』 (PG129) [参照 15] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
27
第 2 章 : Vivado Design Suite の使用
ロ ジ ッ ク シ ミ ュ レーシ ョ ン
次の図は、 論理お よ び タ イ ミ ン グ シ ミ ュ レーシ ョ ンに Vivado シ ミ ュ レーシ ョ ン を使用する すべての箇所を示 し てい
ます。
X-Ref Target - Figure 2-4
ኤናኁዐ
⏴┪
57/ኔኼዂዉዙኔዄዐ
⚗㒟ርቫቖኁዐኴ዇ኾዐኣዙ
ኔዄዐⓜቑ⸮嫛ት㘷⯷
6LPSULP
YHULORJ
ቑቢ
8QLVLP
ኜኁኼዐኍ
ኔኼዂዉዙኔዄዐ
቎∎䞷ሸቯቮ
዆ኁኳ዆዇
⚗㒟㈛ቑኜኁኼዐኍ
ኔኼዂዉዙኔዄዐ9HULORJቑቢ
⚗㒟
⚗㒟㈛ቑ
嵥䚕ኔኼዂዉዙኔዄዐ
嵥䚕57/ኔኼዂዉዙ
ኔዄዐ቎∎䞷ሸቯቮ
዆ኁኳ዆዇
ኣኖእ኶ዐኞ
ኖኣኀኼዂ዆ኖ
8QLIDVW
6HFXUH,3
ኁዐኴ዇ኾዐኣዙኔዄዐ㈛ቑ
ኜኁኼዐኍኔኼዂዉዙኔዄዐ
9HULORJቑቢ
ኁዐኴ዇ኾዐ
ኣዙኔዄዐ
ኁዐኴ዇ኾዐኣዙኔዄዐ㈛
ቑ嵥䚕ኔኼዂዉዙኔዄዐ
6HFXUH,3
;
図 2-4 : デザイ ン フ ローの さ ま ざ ま な段階でのシ ミ ュ レーシ ョ ン
デザイ ン フ ロー早期の論理シ ミ ュ レーシ ョ ン
論理ま たはレ ジ ス タ ト ラ ン ス フ ァ ー レベル (RTL) シ ミ ュ レーシ ョ ン を使用す る と 、 構文お よ び機能を検証で き ます。
最初のシ ミ ュ レーシ ョ ンは、 通常 RTL (ビヘ イ ビ アー ) コ ー ド を検証 し 、 デザ イ ン が予測どお り に機能 し てい る か ど
う か を確認す る ために実行 さ れます。
大型の階層デザ イ ン では、 デザ イ ン全体を テ ス ト す る 前に、 個別の IP ブ ロ ッ ク デザ イ ン ま たは階層モジ ュ ールを シ
ミ ュ レーシ ョ ンで き ます。 こ のシ ミ ュ レーシ ョ ン プ ロ セ ス を使用す る と 、 大型デザ イ ン を検証する 前に、 小 さ い部分
ご と に コ ー ド を簡単にデバ ッ グで き ます。
推奨 : こ の段階では、 タ イ ミ ン グ情報は供給 さ れません。 シ ミ ュ レーシ ョ ン をユニ ッ ト 遅延モー ド で実行 し て、 レー
ス コ ンデ ィ シ ョ ンが発生 し ない よ う にする こ と をお勧め し ます。
合成済み HDL 構文を使用 し て初期デザ イ ン を作成 し ます。必要でない限 り 、特定 コ ン ポーネ ン ト は イ ン ス タ ン シエー
ト し ないで く だ さ い。 こ れに よ り 、 次が可能にな り ます。
•
よ り 読みやすい コ ー ド
•
よ り 高速でシ ンプルなシ ミ ュ レーシ ョ ン
•
コ ー ド の移植性 (別のデバ イ ス フ ァ ミ リ に移行可能)
•
コ ー ド 再利用性 (今後別のデザ イ ンに同 じ コ ー ド を使用可能)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
28
第 2 章 : Vivado Design Suite の使用
ヒ ン ト : コ ン ポーネ ン ト を推論で き ない場合は、 コ ン ポーネ ン ト を イ ン ス タ ン シ エー ト す る 必要が あ る こ と が あ り
ま す。
コ ン ポーネ ン ト を イ ン ス タ ン シエー ト す る と 、 コ ー ド がそのアーキ テ ク チ ャ 特定の も のにな る 可能性があ り ます。 こ
れ ら の イ ン ス タ ン シエー ト 済み コ ン ポーネ ン ト には、 次が含まれ る 可能性があ り ます。
•
イ ン ス タ ン シエー ト 済み UNISIM ラ イ ブ ラ リ コ ン ポーネ ン ト
•
イ ン ス タ ン シエー ト 済み UniMacro コ ン ポーネ ン ト
•
SecureIP
各モジ ュ ールが正 し く シ ミ ュ レーシ ョ ン さ れた ら 、 最上位デザ イ ンのテ ス ト ベンチを作成 し て、 デザ イ ン全体が要件
ど お り に機能す る か ど う か検証 し ま す。 同 じ テ ス ト ベン チ を最終的な タ イ ミ ン グ シ ミ ュ レ ーシ ョ ン で再び使用 し 、
ワース ト ケース遅延で も デザ イ ンが予測どお り に機能する か ど う か を確認 し ます。
シ ミ ュ レーシ ョ ン での構造ネ ッ ト リ ス ト の使用
デザ イ ン を合成/ イ ンプ リ メ ン テーシ ョ ン し た ら 、 論理ま たは タ イ ミ ン グ モー ド でネ ッ ト リ ス ト シ ミ ュ レーシ ョ ン を
実行で き ます。 ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンは、 次に も 役立ち ます。
•
次の原因に よ り 合成後お よ び イ ンプ リ メ ン テーシ ョ ン後に機能が変更 さ れて入る か ど う かを検出 :
°
不一致の原因 と な る 合成属性ま たは制約 (full_case お よ び parallel_case な ど)
°
ザ イ リ ン ク ス デザ イ ン制約 (XDC) フ ァ イ ルへの UNISIM 属性の適用
°
合成 と シ ミ ュ レーシ ョ ンでの言語解釈の違い
°
デ ュ アル ポー ト RAM の競合
°
タ イ ミ ン グ制約が適用 さ れていないか、 不正に適用 さ れてい る
°
非同期パ ス の操作
°
最適化手法に よ る 論理問題
•
STA (ス タ テ ィ ッ ク タ イ ミ ン グ解析) 中に フ ォ ルス ま たはマルチサ イ ク ル と し て宣言 さ れてい る タ イ ミ ン グ パ ス
の感作
•
消費電力予測用のネ ッ ト リ ス ト ス イ ッ チン グ ア ク テ ィ ビ テ ィ の生成
•
X ス テー ト の不必要に悪い見積 も り 部分の把握
ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンには、 次の表に示す ラ イ ブ ラ リ の 1 つま たは複数を使用する 必要があ り ます。
表 2-2 : シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ の使用
ラ イブラ リ名
説明
VHDL ラ イ ブ ラ リ 名
VHDL ラ イ ブ ラ リ 名
UNISIM
ザ イ リ ン ク ス プ リ ミ テ ィ ブの論理シ ミ ュ レーシ ョ ン
UNISIM
UNISIMS_VER
UNIMACRO
ザ イ リ ン ク ス マ ク ロ の論理シ ミ ュ レーシ ョ ン
UNIMACRO
UNIMACRO_VER
UNIFAST
高速シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ
UNIFAST
UNIFAST_VER
UNIFAST ラ イ ブ ラ リ は論理シ ミ ュ レーシ ョ ン で使用で き る オプシ ョ ンの ラ イ ブ ラ リ で、 シ ミ ュ レーシ ョ ン を高速化
し ます。 UNIFAST ラ イ ブ ラ リ は 7 シ リ ーズ デバ イ ス でのみサポー ト さ れてい ます。 UltraScale 以降のデバ イ ス アー
キ テ ク チ ャ では、 すべての最適化が UNISIM ラ イ ブ ラ リ にデフ ォ ル ト で組み込ま れてい る ので、 UNIFAST はサポー
ト さ れません。
重要 : タ イ ミ ン グ シ ミ ュ レーシ ョ ンには UNIFAST モデルは使用で き ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
29
第 2 章 : Vivado Design Suite の使用
推奨 : デザ イ ンの初期の検証には UNIFAST ラ イ ブ ラ リ を使用する こ と をお勧め し ます。 完全な検証には、 UNISIM ラ
イ ブ ラ リ を使用 し ます。
ザ イ リ ン ク ス シ ミ ュ レ ーシ ョ ン ラ イ ブ ラ リ の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レ ー
シ ョ ン』 (UG900) [参照 11] の 「ザ イ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ の使用」 を参照 し て く だ さ い。
次の表に、 シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ のデ ィ レ ク ト リ を示 し ます。
表 2-3 : シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ のデ ィ レ ク ト リ
ライブラ リ
UNISIM
UNIFAST
UNIMACRO
SECUREIP
HDL タ イ プ
場所
Verilog
<Vivado_Install_Area>/data/verilog/xsim/unisims
VHDL
<Vivado_Install_Area>/data/vhdl/xsim/unisims
Verilog
<Vivado_Install_Area>/data/verilog/src/unifast
VHDL
<Vivado_Install_Area>/data/vhdl/src/unifast
Verilog
<Vivado_Install_Area>/data/verilog/src/unimacro
VHDL
<Vivado_Install_Area>/data/vhdl/src/unimacro
Verilog
<Vivado_Install_Area>/data/secureip/<simulator>/<simulator>_secureip_cell.list.f
注記 : Vivado では、合成お よ び イ ンプ リ メ ン テーシ ョ ン段階で論理ま たは タ イ ミ ン グ シ ミ ュ レーシ ョ ン を実行で き ま
す。 ネ ッ ト リ ス ト 生 成 の 詳 細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [ 参照 13] の
write_verilog お よ び write_sdf コ マ ン ド を参照 し て く だ さ い。
UNISIM ラ イ ブ ラ リ のプ リ ミ テ ィ ブ/エ レ メ ン ト には、 ク ロ ッ ク 付 き エ レ メ ン ト 以外、 タ イ ミ ン グ情報は含ま れ ま せ
ん。 論理 シ ミ ュ レ ー シ ョ ン 中 の レ ー ス コ ン デ ィ シ ョ ン を 避 け る た め、 ク ロ ッ ク 付 き エ レ メ ン ト に は 100ps の
clock-to-out 遅延が含まれます。 UNISIM エ レ メ ン ト に遅延がないため、 波形ビ ュ ーで、 組み合わせ信号に対 し て スパ
イ ク お よ びグ リ ッ チが表示 さ れ る こ と があ り ます。
タ イ ミ ング シ ミ ュ レーシ ョ ン
タ イ ミ ン グ シ ミ ュ レーシ ョ ンは時間がかか る ので実行 し ないユーザーが多いのですが、 タ イ ミ ン グ シ ミ ュ レーシ ョ
ン を実行 し ない場合は、 次を確認 し て く だ さ い。
•
STA 制約が絶対に間違いがない こ と を確認 し ます。 例外に特に注意 し ます。
•
ネ ッ ト リ ス ト が RTL で記述 し た も の と 同等であ る こ と を確認 し ます。 合成ツールで示 さ れ る 推論関連の情報に
特に注意 し ます。
すべての タ イ ミ ン グ情報を含むシ ミ ュ レーシ ョ ンは実際のハー ド ウ ェ アでの動作に最 も 近い動作を表すので、 タ イ ミ
ン グ シ ミ ュ レーシ ョ ン を実行す る こ と を考慮 し て く だ さ い。 デザ イ ンがハー ド ウ ェ アで動作 し ない場合は、 タ イ ミ ン
グ シ ミ ュ レーシ ョ ンでエ ラ ーを再現で き れば、 シ ミ ュ レーシ ョ ンでエ ラ ーをデバ ッ グする 方が簡単です。
Vivado Design Suite での タ イ ミ ング シ ミ ュ レーシ ョ ンの実行
ザ イ リ ン ク ス では、 Verilog でのみ タ イ ミ ン グ シ ミ ュ レーシ ョ ン をサポー ト し てい ます。 タ イ ミ ン グ シ ミ ュ レーシ ョ
ン ネ ッ ト リ ス ト は、 Tcl コ マ ン ド の write_verilog を使用す る と 生成で き ます。 読み込まれ る 標準遅延フ ォーマ ッ
ト (SDF) フ ァ イ ルの名前は、シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト 内の Verilog シ ス テ ム タ ス ク の $sdf_annotate で指定
さ れます。 SDF フ ァ イ ルは、 Vivado シ ミ ュ レー タ が Verilog シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を コ ンパ イ ルす る と 自動
的に読み込まれます。
ヒ ン ト : Vivado シ ミ ュ レ ー タ では混合言語シ ミ ュ レ ーシ ョ ン がサ ポー ト さ れ ま す。 た と えば、 VHDL ユーザーが
Verilog シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成で き 、 それを VHDL テ ス ト ベンチか ら イ ン ス タ ン シエー ト で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
30
第 2 章 : Vivado Design Suite の使用
シ ミ ュ レーシ ョ ンの時間の精度
精度 1ps を使用 し てシ ミ ュ レーシ ョ ン を実行す る こ と をお勧め し ます。ザ イ リ ン ク ス のプ リ ミ テ ィ ブ コ ン ポーネ ン ト
には、 DCM な ど、 論理ま たは タ イ ミ ン グ シ ミ ュ レーシ ョ ンで正 し く 動作 さ せる ために 1ps の精度が必要な も のがあ
り ます。
ヒ ン ト : ほ と ん ど のシ ミ ュ レーシ ョ ン時間はデル タ サ イ ク ルで使用 さ れ る ため、 ザ イ リ ン ク ス シ ミ ュ レーシ ョ ン モ
デルでは こ れ よ り 低い精度を使用 し て も シ ミ ュ レー タ パフ ォーマ ン ス が良 く な る こ と はあ り ません。
推奨 : fs の よ う に よ り 高い精度を使用 し ない よ う に し て く だ さ い。 シ ミ ュ レー タ に よ っ ては、 数値が丸め ら れた り 、
切 り 捨て ら れた り し ます。
グ ローバル セ ッ ト / リ セ ッ ト (GSR) のシ ミ ュ レーシ ョ ン
ザ イ リ ン ク ス デバ イ ス には、 デバ イ ス のすべての レ ジ ス タ に接続す る 、 専用の配線お よ び回路があ り ま す。 専用グ
ロ ーバル セ ッ ト / リ セ ッ ト (GSR) ネ ッ ト を アサー ト す る と 、 そのネ ッ ト はデバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン直後に
解放 さ れます。 フ リ ッ プ フ ロ ッ プお よ び ラ ッ チすべてが こ の リ セ ッ ト を受信 し 、 レ ジ ス タ 定義に基づ く 既知の値にな
り ます。
ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンでは、 GSR 信号は自動的に最初の 100ns 間アサー ト さ れ、 コ ン フ ィ ギ ュ レーシ ョ ン後
に発生する リ セ ッ ト がシ ミ ュ レーシ ョ ン さ れます。 合成前の論理シ ミ ュ レーシ ョ ンで も GSR パルス をオプシ ョ ンで供
給で き ますが、 すべてのレ ジ ス タ を リ セ ッ ト する ローカル リ セ ッ ト がデザ イ ンに含まれ る場合は必要あ り ません。
GSR の詳細は、『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参照 11] の 「グ ロ ーバル
リ セ ッ ト と ト ラ イ ス テー ト の使用」 を参照 し て く だ さ い。
X 伝搬のデ ィ ス エーブル
タ イ ミ ン グ シ ミ ュ レーシ ョ ン中に タ イ ミ ン グ違反が発生す る と 、 ラ ッ チ、 レ ジ ス タ 、 RAM ま たはその他の同期エ レ
メ ン ト は、 シ ミ ュ レーシ ョ ン中にデフ ォ ル ト で X を出力 し ま す。 こ れは、 実際の出力値が不明な ためです。 ハー ド
ウ ェ アでは、 レ ジ ス タ の出力が次の よ う にな る 可能性があ り ます。
•
前の値を保持
•
新 し い値にア ッ プデー ト
•
同期エ レ メ ン ト の ク ロ ッ ク 供給後 し ば ら く 値が決定 さ れない メ タ ス テーブル状態
こ の値は決定で き ず、 正確なシ ミ ュ レーシ ョ ン結果を得 る こ と はで き ないので、 エ レ メ ン ト は不明の値を示す X を出
力 し ます。 X 出力は次の ク ロ ッ ク サ イ ク ルま で保持 さ れ、 別の違反が発生 し なければ、 次の ク ロ ッ ク で入力 さ れた値
でア ッ プデー ト さ れます。
X 出力が存在す る と 、 シ ミ ュ レーシ ョ ンに大き く 影響 し ます。 た と えば、 1 つの レ ジ ス タ で生成 さ れた X は、 その後
の ク ロ ッ ク サ イ ク ルでほかの レ ジ ス タ に伝搬 さ れ る 可能性があ り ます。 こ れに よ り 、 テ ス ト 中のデザ イ ンの大部分が
不明の状態にな っ て し ま い ます。
こ れを修正す る には、 次を実行 し ます。
•
同期パ ス では、 パ ス を解析 し 、 こ のパ スお よ びほかのパ ス に関す る タ イ ミ ン グ問題を修正 し 、 回路が問題な く 動
作す る よ う に し ます。
•
非同期パ ス では、 タ イ ミ ン グ違反をほかの方法で回避で き ない場合は、 ASYNC_REG 属性を使用 し て タ イ ミ ン グ
違反が発生 し た と き に同期エ レ メ ン ト への X 伝搬 を デ ィ ス エーブルに し ま す。 ASYNC_REG 制約の詳細は、
『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参照 11] の 「ASYNC_REG 制約の使
用」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
31
第 2 章 : Vivado Design Suite の使用
X 伝搬がデ ィ ス エーブルにな る と 、 レ ジ ス タ の出力には前の値が保持 さ れます。 実際のシ リ コ ンでは、 レ ジ ス タ のビ
ヘ イ ビ アーが異な る こ と も あ り ます。 X 伝搬をデ ィ ス エーブルにする と 、 シ リ コ ン での動作 と シ ミ ュ レーシ ョ ン結果
が一致 し ない こ と があ り ます。
注意 : こ のオプシ ョ ン を使用す る には、 注意が必要です。 タ イ ミ ン グ違反を理解 し てお り 、 デザ イ ンに こ の違反か ら
回路全体を回復す る メ カ ニズ ムがあ る 場合にのみ使用 し て く だ さ い。
シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ の コ ンパイル
特にデザ イ ンに VHDL プ リ ミ テ ィ ブ ま たはザ イ リ ン ク ス IP を イ ン ス タ ン シエー ト し てい る 場合は、 シ ミ ュ レーシ ョ
ン を開始す る 前に ラ イ ブ ラ リ を コ ンパ イ ルする こ と をお勧め し ます。 大部分のザ イ リ ン ク ス IP は VHDL なので、 シ
ミ ュ レーシ ョ ン ラ イ ブ ラ リ を コ ンパ イ ル し ない と 、 ラ イ ブ ラ リ のバ イ ン ド に関する エ ラ ーが発生 し ます。 タ ーゲ ッ ト
シ ミ ュ レー タ 用にザ イ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ を コ ンパ イ ルす る には、 compile_simlib Tcl コ マ ン
ド を実行 し ます。 Vivado IDE では、 [Tools] → [Compile Simulation Libraries] を ク リ ッ ク し ます。
シ ス テム管理者 と し て ラ イ ブ ラ リ を コ ンパイル
シ ス テ ム管理者が compile_simlib Tcl コ マ ン ド を使用 し て ラ イ ブ ラ リ を コ ンパ イ ルす る 場合は、すべてのユーザー
がア ク セ ス可能なデフ ォ ル ト の場所で ラ イ ブ ラ リ を コ ンパ イ ルす る 必要があ り ます。
次の例に、 すべてのデバ イ ス、 ラ イ ブ ラ リ 、 お よ び言語に対 し て QuestaSim 用に ラ イ ブ ラ リ を コ ンパ イ ルす る 方法を
示 し ます。
1.
Vivado ツールを起動 し ます。
2.
QuestaSim を設定 し ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900)
[参照 11] を参照 し て く だ さ い。
3.
Tcl コ ン ソ ールに次の コ マ ン ド を入力 し ます。
compile_simlib -simulator questa
ユーザー と し て ラ イ ブ ラ リ を コ ンパイル
ユーザー と し て compile_simlib コ マ ン ド を実行する 場合は、 各プ ロ ジ ェ ク ト 用に ラ イ ブ ラ リ を コ ンパ イ ルす る 必
要があ り ます。 プ ロ ジ ェ ク ト で 1 つのデバ イ ス を タ ーゲ ッ ト に し てい る 場合は、 そのデバ イ ス に対 し てのみ ラ イ ブ ラ
リ を コ ンパ イ ル し ます。
次の コ マ ン ド は、 Kintex® UltraScale デバ イ ス を タ ーゲ ッ ト にす る デザ イ ンに対 し て Cadence IES 用に ラ イ ブ ラ リ を コ
ンパ イ ル し ます。
compile_silib -simulator ies -directory.-family kintexu
シ ミ ュ レーシ ョ ン フ ロー
Vivado Design Suite では、 統合シ ミ ュ レーシ ョ ン と バ ッ チ シ ミ ュ レーシ ョ ンの両方がサポー ト さ れ ます。 統合シ ミ ュ
レーシ ョ ンでは、 Vivado IDE 内か ら シ ミ ュ レー タ を実行で き 、 バ ッ チ シ ミ ュ レーシ ョ ンでは Vivado ツールか ら ス ク
リ プ ト を生成 し て、 シ ミ ュ レーシ ョ ン を外部の検証環境で実行で き ます。
統合シ ミ ュ レーシ ョ ン
Vivado IDE は、 サポー ト さ れてい る シ ミ ュ レー タ と 統合 さ れてい ます。 こ の フ ロ ーでは、 シ ミ ュ レー タ が Vivado IDE
内か ら 呼び出 さ れ、 プ ッ シ ュ ボ タ ン でデザ イ ン を簡単に コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン で き ま す。 シ ミ ュ レー
シ ョ ン フ ロ ーの設定方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参
照 11] の 「サー ド パーテ ィ ツールを使用 し たシ ミ ュ レーシ ョ ンの準備」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
32
第 2 章 : Vivado Design Suite の使用
注記 : サポー ト さ れてい る シ ミ ュ レ ー タ の情報は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ー ス ノ ー ト 、 イ ン ス
ト ールお よ び ラ イ セ ン ス』 (UG973) [参照 3] を参照 し て く だ さ い。
統合シ ミ ュ レーシ ョ ン フ ロ ーでは、 次を推奨 し ます。
1.
次の フ ァ イ ルでご使用のシ ミ ュ レー タ の [Compiled Library Location] オプシ ョ ンが正 し く 設定 さ れてい る こ と を
確認 し ます。
°
Mentor シ ミ ュ レー タ : modelsim.ini
°
IES シ ミ ュ レー タ : cds.lib
°
VCS シ ミ ュ レー タ : synopsys_sim.setup
°
Aldec ツール : library.cfg
X-Ref Target - Figure 2-5
図 2-5 : シ ミ ュ レーシ ョ ン オプ シ ョ ンの設定
注記 : 上図では、 C:/revctrl/revCtrl-master/work/top/top.cache/compile_simlib がプ ロ ジ ェ ク
ト レベル ラ イ ブ ラ リ です。 同 じ オプシ ョ ン を使用 し て、 シ ス テ ム管理者に よ り コ ンパ イ ル さ れた ラ イ ブ ラ リ を
指定で き ます。
2.
混合言語シ ミ ュ レー タ ラ イ セ ン ス を使用す る 場合は、 [Simulator language] は常に [Mixed] に設定 し ます。 シ ミ ュ
レ ー タ 言語の選択に よ っ て、 IP シ ミ ュ レ ーシ ョ ン用に RTL モデル ま たは合成済みネ ッ ト リ ス ト が得 ら れ ま す。
[Mixed] ではな く [VHDL] ま たは [Verilog] を選択す る と 、 シ ミ ュ レーシ ョ ン速度が大幅に低下する 可能性があ り
ます。 こ のオプシ ョ ンの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参
照 11] の 「シ ミ ュ レー タ 言語オプシ ョ ンについて」 を参照 し て く だ さ い。
3.
デー タ の破損が検出 さ れた場合以外は、 [Clean up simulation files] を オ フ に し て く だ さ い。 こ のオプシ ョ ン を オン
にす る と 、 シ ミ ュ レーシ ョ ン デ ィ レ ク ト リ 全体が削除 さ れ、 シ ミ ュ レー タ で ソ ース が コ ンパ イ ル済みであ る か ど
う か をチ ェ ッ ク す る ためにオ リ ジナル デー タ ベース にア ク セ ス で き な く な る ので、 イ ン ク リ メ ン タ ル コ ンパ イ
ル オプシ ョ ンが機能 し な く な り ます。
4.
Vivado IDE か ら 、ま たは Tcl コ マ ン ド の launch_simulation を使用 し て統合シ ミ ュ レーシ ョ ン を起動 し ます。
重要 : launch_simulation コ マ ン ド を実行す る と 、 プ ロ ジ ェ ク ト ベース のデザ イ ン の統合シ ミ ュ レーシ ョ ンが起
動 さ れます。 こ の コ マ ン ド では、 非プ ロ ジ ェ ク ト モー ド はサポー ト さ れません。 詳細は、 「プ ロ ジ ェ ク ト モー ド と 非
プ ロ ジ ェ ク ト モー ド 」 を参照 し て く だ さ い。
推奨 : 検証環境にセルフチ ェ ッ ク テ ス ト ベンチがあ る 場合は、 シ ミ ュ レーシ ョ ン をバ ッ チ モー ド で実行 し ます。統合
シ ミ ュ レーシ ョ ンでシ ミ ュ レー タ 波形を表示す る と 、 実行時間が大幅に長 く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
33
第 2 章 : Vivado Design Suite の使用
バ ッ チ シ ミ ュ レーシ ョ ン
バ ッ チ シ ミ ュ レーシ ョ ンの場合、Vivado Design Suite で提供 さ れてい る Tcl コ マ ン ド の export_simulation を使用
し 、 サ ポ ー ト さ れ る シ ミ ュ レ ー タ (Vivado シ ミ ュ レ ー タ も 含む) の シ ミ ュ レ ー シ ョ ン ス ク リ プ ト を 生成 し ま す。
export_simulation で生成 さ れ る こ の ス ク リ プ ト を使用す る か、 こ の ス ク リ プ ト を参考に し て カ ス タ ム シ ミ ュ
レーシ ョ ン ス ク リ プ ト 作成で き ます。export_simulation コ マ ン ド ではシ ミ ュ レーシ ョ ンの各段階 ( コ ンパ イ ル、
エ ラ ボ レー ト 、 シ ミ ュ レーシ ョ ン) ご と に個別の ス ク リ プ ト が作成 さ れ る ので、 生成 さ れた ス ク リ プ ト を簡単に検証
環境に組み込む こ と がで き ます。 バ ッ チ シ ミ ュ レーシ ョ ンの ス ク リ プ ト の生成については、『Vivado Design Suite ユー
ザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参照 11] の 「シ ミ ュ レーシ ョ ン フ ァ イ ル と ス ク リ プ ト のエ ク ス
ポー ト 」 を参照 し て く だ さ い。
バ ッ チ シ ミ ュ レーシ ョ ン フ ロ ーでは、 次を推奨 し ます。
•
「統合シ ミ ュ レーシ ョ ン」 で説明 さ れ る よ う に、 ご使用のシ ミ ュ レー タ の [Compiled Library Location] オプシ ョ ン
が正 し く 設定 さ れてい る こ と を確認 し ます。
•
Tcl コ マ ン ド の export_ip_user_files を使用 し 、 サー ド パーテ ィ シ ミ ュ レー タ で使用する のに必要な IP と
ブ ロ ッ ク デザ イ ン (BD) フ ァ イ ルを エ ク ス ポー ト し ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使
用 し た設計』 (UG896) [参照 9] の 「IP ユーザー フ ァ イ ル (ip_user_files) の理解」 を参照 し て く だ さ い。
注記 : Vivado では、IP の出力フ ァ イ ルを生成す る 際に IP と ブ ロ ッ ク デザ イ ン フ ァ イ ルが自動的に生成 さ れます。
•
Tcl コ マ ン ド の export_simulation -export_source_files を使用 し て、 ス タ ン ド ア ロ ンのシ ミ ュ レー
シ ョ ン デ ィ レ ク ト リ を作成 し 、 シ ミ ュ レーシ ョ ンに必要なデザ イ ン フ ァ イ ルすべて を コ ピー し ます。
IP のシ ミ ュ レーシ ョ ン ス ク リ プ ト の生成
シ ミ ュ レーシ ョ ン ス ク リ プ ト は、 個々の IP ブ ロ ッ ク デザ イ ン (BD) ま たはデザ イ ン の階層モジ ュ ールに対 し て生成
で き ます。 こ れに よ り 、 IP ま たはモジ ュ ールの動作を ス タ ン ド ア ロ ン デザ イ ン と し て検証で き る よ う にな り 、 デザ
イ ンのデバ ッ グが簡素化 さ れます。
ザ イ リ ン ク ス IP には、 合成、 シ ミ ュ レ ーシ ョ ン、 お よ び イ ン プ リ メ ン テーシ ョ ン用に IEEE P1735 で暗号化 さ れた
RTL を含め る こ と がで き ます。 ただ し 、 RTL フ ァ イ ルが暗号化 さ れてい る と 、 VHDL シ ミ ュ レーシ ョ ン ソ ース フ ァ
イ ルの ラ イ ブ ラ リ 関連付け を視覚的に確認す る こ と はで き な く な り ます。 ラ イ ブ ラ リ 関連付けは、Vivado Design Suite
の フ ァ イ ルのプ ロ パテ ィ を ク エ リ す る と 取得で き ますが、 ザ イ リ ン ク ス では export_simulation コ マ ン ド を使用
し て暗号化 さ れた IP のシ ミ ュ レーシ ョ ン ス ク リ プ ト を作成する こ と をお勧め し ます。
特定のデザ イ ン オブジ ェ ク ト のシ ミ ュ レーシ ョ ン ス ク リ プ ト を エ ク ス ポー ト す る には、 次の コ マ ン ド を使用 し て く
だ さ い。
export_simulation -of_objects [get_files <ip_name.xci>]
最上位デザイ ンのシ ミ ュ レーシ ョ ン ス ク リ プ ト の生成
最上位デザ イ ン のシ ミ ュ レーシ ョ ン ス ク リ プ ト を生成す る には、 Tcl コ マ ン ド の launch_simulation を使用 し ま
す。 デザ イ ン全体のシ ミ ュ レーシ ョ ン ス ク リ プ ト を生成する と 、 各 IP、 BD、 ま たはデザ イ ン モジ ュ ールのシ ミ ュ
レーシ ョ ン ス ク リ プ ト を個別に生成す る よ り も 、 大 き な利点があ り ます。 export_simulation を使用 し て最上位
デザ イ ン の ス ク リ プ ト を生成す る と 、 Vivado Design Suite で フ ィ ル タ ー アルゴ リ ズ ム を使用 し て シ ミ ュ レ ーシ ョ ン
フ ァ イ ル リ ス ト の重複 し た フ ァ イ ルが削除 さ れます。 フ ァ イ ル リ ス ト のサ イ ズが小 さ く な る ので、 コ ンパ イ ル時間
が大幅に短縮 さ れます。
最上位デザ イ ンのシ ミ ュ レーシ ョ ン ス ク リ プ ト を作成する には、開いたプ ロ ジ ェ ク ト ま たは メ モ リ 内のデザ イ ンで次
の コ マ ン ド を実行 し ます。
export_simulation
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
34
第 2 章 : Vivado Design Suite の使用
Cadence フ ロー用 Irun ス ク リ プ ト の生成
Cadence の Irun ベース フ ロ ーに対 し て 1 ス テ ッ プの ス ク リ プ ト を生成 し 、 コ ンパ イ ル、 エ ラ ボ レー ト 、 お よ びシ ミ ュ
レーシ ョ ン プ ロ セ ス を簡素化す る こ と も で き ます。Irun 実行ス ク リ プ ト を生成する には、次の コ マ ン ド を使用 し ます。
export_simulation -single_step
シ ミ ュ レーシ ョ ン フ ローのサマ リ
1.
合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行す る 前に、 ビヘ イ ビ アー シ ミ ュ レーシ ョ ン を実行 し ます。問題を早期
に特定す る こ と に よ り 、 時間お よ び コ ス ト を削減で き ます。
2.
サポー ト さ れ る サー ド パーテ ィ シ ミ ュ レー タ バージ ョ ン を使用 し ます。 詳細は、 『Vivado Design Suite ユーザー
ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールお よ び ラ イ セ ン ス』 (UG973) [参照 3] を参照 し て く だ さ い。
3.
ザ イ リ ン ク ス Tcl コ マ ン ド launch_simulation を使用 し て、 選択 し た シ ミ ュ レー タ 用の ス ク リ プ ト を生成 し
ます。
4.
個々の IP、 BD、 お よ び階層モジ ュ ールに対 し て と 、 最上位デザ イ ンに対 し てシ ミ ュ レーシ ョ ン ス ク リ プ ト を生
成 し ます。
5.
シ ミ ュ レー タ の混合モー ド ラ イ セ ン ス がない場合を除き 、 [Target Language] は常に [Mixed] に設定 し ます。
6.
7 シ リ ーズ デバ イ ス を タ ーゲ ッ ト にす る 場合は、 UNIFAST ラ イ ブ ラ リ を使用 し てシ ミ ュ レーシ ョ ン パフ ォーマ
ン ス を向上 し ます。
注記 : UNIFAST ラ イ ブ ラ リ は UltraScale デバ イ ス ではサポー ト さ れてい ません。
7.
可能な限 り ロ ジ ッ ク を推論 し ます。 プ リ ミ テ ィ ブ を イ ン ス タ ン シエー ト する と 、 シ ミ ュ レーシ ョ ンの実行時間が
かな り 長 く な り ます。
8.
サー ド パーテ ィ シ ミ ュ レー タ を使用する 場合は、 イ ン ク リ メ ン タ ル コ ンパ イ ルを オンに し ます。
9.
可能な限 り 、 波形ビ ュ ーアーを オ フ に し ます。
10. Vivado シ ミ ュ レー タ では、 xelab 中のデバ ッ グ をオ フ に し てパフ ォーマ ン ス を向上 し ます。
11. Vivado シ ミ ュ レー タ では、 マルチ ス レ ッ ド をオンに し て コ ンパ イ ル時間を短縮 し ます。
合成、 イ ン プ リ メ ンテーシ ョ ン、 およびデザイ ン解析
こ れ ら の ト ピ ッ ク は、 第 5 章 「 イ ンプ リ メ ン テーシ ョ ン」 を参照 し て く だ さ い。 追加情報は、 次の資料を参照 し て く
だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 16] ま たは [Synthesis] (合成) デザ イ ン ハブ
•
『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] ま たは [Implementation] ( イ ン
プ リ メ ン テーシ ョ ン) デザ イ ン ハブ
•
『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21] ま たは
[Timing Closure & Design Analysis] ( タ イ ミ ン グ ク ロ ージ ャ お よ びデザ イ ン解析) デザ イ ン ハブ
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
35
第 2 章 : Vivado Design Suite の使用
ソ ース管理および リ ビ ジ ョ ン管理の推奨事項
リ ビ ジ ョ ン管理手法
概要
ソ ース管理お よ び リ ビ ジ ョ ン管理の手法は、 ユーザーお よ び企業の好み、 リ ビ ジ ョ ン管理に使用す る ソ フ ト ウ ェ アに
よ っ て異な り ます。 こ のセ ク シ ョ ンでは、 ア ク テ ィ ブ デザ イ ン プ ロ ジ ェ ク ト を管理する ためにデザ イ ン チームが決定
する必要のあ る基本的な手法の選択肢の一部を説明 し ます。 Vivado Design Suite を リ ビ ジ ョ ン管理シ ス テ ム と 共に使用
す る 際の推奨事項は、 こ のセ ク シ ョ ンの後の方に示 し ます。 こ のセ ク シ ョ ンで使用 さ れ る 「管理」 と い う 用語は、 リ
ビ ジ ョ ン管理シ ス テ ム を使用 し て ソ ース バージ ョ ン をチ ェ ッ ク イ ンおよびチ ェ ッ ク ア ウ ト する プ ロ セ ス を示 し ます。
さ ま ざ ま なデザ イ ン コ ン フ ィ ギ ュ レーシ ョ ンお よ び リ ビ ジ ョ ン を管理する のには、ソ ース管理シ ス テ ム を使用す る の
が一般的です。 Git、 RCS、 CVS、 Subversion、 ClearCase、 Perforce、 Bitkeeper な ど のシ ス テ ムが よ く 利用 さ れてい ます
が、 どれかが特に よ く 利用 さ れてい る わけではあ り ません。 Vivado Design Suite は こ れ ら のシ ス テ ム と 共に使用で き 、
ど の ツール と も 直接統合 さ れてはい ませんが、 各ツールが同等に う ま く 動作す る よ う にな っ てい ます。 Vivado ツール
お よ びデー タ の リ ビ ジ ョ ン管理を使用 し た例については、 『Vivado Design Suite チ ュ ー ト リ アル : リ ビ ジ ョ ン管理シ ス
テ ム』 (UG1198) [参照 30] を参照 し て く だ さ い。
一般的に、 ソ ース は ロ ーカル リ ポジ ト リ にチ ェ ッ ク ア ウ ト さ れ、 そ こ で ロ ーカルの変更を加え る と い う 方法が取 ら れ
ます。 こ れはマ ス タ ー リ ポジ ト リ の ロ ーカル作業バージ ョ ンで、 「サン ド ボ ッ ク ス」 と 呼ばれ る こ と があ り ます。 こ
れは、 ほかのユーザーが最新の変更を見 る こ と がで き る マ ス タ ー リ ポジ ト リ に戻す前に、 1 人のユーザーが ロ ーカル
の変更を グループ化 し てテ ス ト す る ためのエ リ アです。 こ の ロ ーカル リ ポジ ト リ の ソ ース を変更 し て、デザ イ ン を完
成 さ せ る こ と がで き ます。 変更 さ れた フ ァ イ ルは、 新 し い リ ビ ジ ョ ン と し ていつで も ソ ース管理シ ス テ ムに戻す こ と
がで き ます。 デザ イ ン結果 も オプシ ョ ンで リ ビ ジ ョ ン と し てチ ェ ッ ク イ ンで き ます。 多 く のユーザーは、 ソ ースお よ
び結果を保存お よ び管理す る ためにデ ィ レ ク ト リ 構造を使用 し ます。
リ ビ ジ ョ ン 制御シ ス テ ムは、異な る メ カ ニズ ム を使用 し て最後のチ ェ ッ ク ア ウ ト か ら 変更 さ れた ソ ース のみを ア ッ プ
デー ト し ます。
Vivado Design Suite の フ ァ イ ルには、 リ ビ ジ ョ ン管理を使用 し て管理す る 必要のあ る フ ァ イ ル と し て定義 さ れてい る
も のがあ り ます。 Vivado Design Suite で生成 さ れ る 多数の一時フ ァ イ ルは、 管理す る のは非効率であ り 、 管理の必要
はあ り ません。 「Vivado Design Suite の ソ ース タ イ プ」 に、 主な フ ァ イ ルを示 し ます。
シ ングル ユーザー ア ク セス と 複数ユーザー ア ク セス
デザ イ ン ソ ースお よ び IP は通常、 同 じ プ ロ ジ ェ ク ト で作業 し てい る 複数の設計者が参照で き る ラ イ ブ ラ リ ま たは リ
ポジ ト リ に保存 さ れ ますが、 共通 リ ポジ ト リ か ら デザ イ ン ソ ース ま たは IP を使用す る と 、 デザ イ ンの こ れ ら の フ ァ
イ ルを使用す る 誰かに よ っ て変更 さ れ る 可能性があ り ます。 共有 ソ ース ま たは IP への変更は、 同 じ ソ ース を参照す
る ほかのすべての設計者が反映す る 必要があ り ます。 デザ イ ン特定の変更が複数のデザ イ ンに影響する 場合、 こ れは
意図 し ない結果を も た ら す可能性があ り ます。
複数ユーザーがア ク セ スす る 場合は、 1 人の設計者がデザ イ ン ソ ースお よ び IP を管理 し 、 それを その ま ますべての
設計者に共有す る のがベス ト です。 こ れ ら の ソ ース を読み取 り 専用する と 、 ほかの設計者が誤っ て共有 ソ ース を ア ッ
プデー ト す る のを回避で き ます。
ま た、 Vivado Design Suite の IP お よ び IP サブシ ス テ ムは 1 つのデバ イ ス を タ ーゲ ッ ト と し ます。 こ れ ら をデザ イ ン
間で共有す る 場合は、 デバ イ ス に互換性があ る こ と を確認す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
36
第 2 章 : Vivado Design Suite の使用
読み取 り 専用の管理ソ ース を直接使用
Vivado Design Suite では、読み取 り 専用の ソ ース フ ァ イ ルお よ び IP を使用 し てデザ イ ン を作成で き ます。デザ イ ン プ
ロ セ ス で ソ ース を変更す る 予定がない場合は、 管理 さ れてい る 読み取 り 専用の場所か ら 参照で き ます。 ソ ース を変更
す る 必要があ る 場合は、 ロ ーカル作業エ リ アにチ ェ ッ ク ア ウ ト で き ます。
ロ グ フ ァ イ ルお よ びレ ポー ト フ ァ イ ル、特定のキ ャ ッ シ ュ 、お よ びデザ イ ン結果を書 き 込むには、Vivado Design Suite
を起動 し たエ リ アへの書 き 込み権が必要です。
ロー カル作業エ リ アの使用
デザ イ ン ソ ース管理には、 管理 さ れてい る ソ ース の ロ ーカル コ ピーを ア ク テ ィ ブ プ ロ ジ ェ ク ト の作業エ リ アに作成
す る 手法が一般的です。 作業エ リ アの フ ァ イ ルに自由に変更を加え て、 デザ イ ン を完成 さ せ る こ と がで き ます。 ソ ー
ス は、 プ ロ ジ ェ ク ト の節目節目で リ ビ ジ ョ ン管理にチ ェ ッ ク イ ン し ます。 すべての変更は、 プ ロ ジ ェ ク ト デ ィ レ ク ト
リ 構造の下位にあ る フ ァ イ ルの ロ ーカル コ ピーに加え ら れ る ので、リ ビ ジ ョ ン管理シ ス テ ムに ど の フ ァ イ ルをチ ェ ッ
ク イ ンす る か を確認 し て く だ さ い。
こ の方法は、 変更 さ れ る 可能性のあ る デザ イ ン ソ ース にのみ適用 さ れます。 変更 さ れない ソ ース は、 管理 さ れてい る
読み取 り 専用の場所か ら 参照で き ます。
最小限の ソ ースの管理
デザ イ ン を再生成す る のに必要な最小限の ソ ース フ ァ イ ルを管理する 場合があ り ます。 詳細は、 「管理に最低限必要
な ソ ース フ ァ イ ル」 を参照 し て く だ さ い。
Vivado Design Suite では こ れが可能ですが、 次の制限があ り ます。
•
IP お よ び IP イ ン テ グ レー タ ー サブシ ス テ ムの出力フ ァ イ ルは再生成す る 必要があ り ます。 ま っ た く 同 じ も のを
生成す る ため、 IP を作成 し たの と 同 じ バージ ョ ンの ソ フ ト ウ ェ アが必要です。 すべての IP 出力フ ァ イ ルが管理
さ れてい る 場合、 IP は今後の ソ フ ト ウ ェ ア バージ ョ ンで参照で き ます。
•
デザ イ ンの コ ンパ イ ル中、 出力フ ァ イ ルを生成す る のに時間がかか り ます。
推奨 : 最高の結果を得 る には、 「管理す る こ と が推奨 さ れ る ソ ース フ ァ イ ル」 に リ ス ト さ れてい る すべての ソ ース を
管理す る こ と をお勧め し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
37
第 2 章 : Vivado Design Suite の使用
管理する こ と が推奨 さ れる ソ ース フ ァ イル
Vivado Design Suite デザ イ ン と 関連す る IP お よ び BD フ ァ イ ルは、 ソ ース フ ァ イ ルのセ ッ ト を使用 し て再作成で き ま
す。Vivado Design Suite の将来のバージ ョ ンで再生成す る 場合の リ ス ク を軽減 し 、 コ ンパ イ ル時間を短縮する ため、次
の ソ ース フ ァ イ ルを管理す る こ と をお勧め し ます。 こ れ ら すべての フ ァ イ ルをチ ェ ッ ク イ ンする こ と に よ り 、現在の
ソ ースお よ びツール コ ン フ ィ ギ ュ レーシ ョ ン設定を使用 し てデザ イ ン を再生成で き ます。
•
•
スク リプト
°
run 実行の前後で実行 し た ス ク リ プ ト を含む、 デザ イ ンの コ ンパ イ ルに使用 さ れた実行ス ク リ プ ト
°
Vivado init.tcl フ ァ イ ル (変更 さ れてい る 場合)
°
write_project_tcl コ マ ン ド を使用 し て作成 さ れたプ ロ ジ ェ ク ト 再生成ス ク リ プ ト
°
デザ イ ン プ ロ ジ ェ ク ト を再作成可能なプ ロ ジ ェ ク ト .xpr フ ァ イ ル
RTL お よ びシ ミ ュ レーシ ョ ン テ ス ト ベンチ
°
RTL ベース の ソ ース フ ァ イ ルすべて ( イ ン ク ルー ド フ ァ イ ルを含む)
°
シ ミ ュ レーシ ョ ン テ ス ト ベンチお よ びス テ ィ ミ ュ ラ ス フ ァ イ ル
•
制約
•
IP
°
•
°
すべての IP デ ィ レ ク ト リ お よ び出力フ ァ イ ル (名前はその ま ま)
°
IP コ ア コ ン テナーを使用す る 場合は、IP の .xcix フ ァ イ ル と 、 サー ド パーテ ィ シ ミ ュ レーシ ョ ンお よ び合
成フ ァ イ ル (ip_user_files お よ び ip_static_files デ ィ レ ク ト リ )
°
使用 さ れた .coe、 .csv、 .bmm、 お よ び .elf フ ァ イ ル
IP イ ン テ グ レー タ ー
°
•
•
•
IP サブデ ィ レ ク ト リ 、 フ ァ イ ルを含むブ ロ ッ ク デザ イ ン全体の場所 (名前はその ま ま)
HLS
°
C ソ ース フ ァ イ ルすべて
°
Vivado 合成で使用 さ れ る パ ッ ケージ さ れた HLS IP
°
スク リプト
System Generator for DSP
°
•
XDC 制約フ ァ イ ルすべて と 制約 と し て使用 さ れてい る Tcl コ マ ン ド
すべてのサブデ ィ レ ク ト リ 、 フ ァ イ ルを含む System Generator で作成 さ れたモジ ュ ール デ ィ レ ク ト リ (名前
はその ま ま)
Vivado ハー ド ウ ェ ア マネージ ャ ー
°
デバ イ ス をプ ロ グ ラ ムす る ために必要な .bit フ ァ イ ルすべて
°
ツールのデフ ォ ル ト お よ びカ ス タ ム ユーザー設定を含む .ltx フ ァ イ ル
ハー ド ウ ェ ア ソ フ ト ウ ェ ア イ ン タ ーフ ェ イ ス
ハン ド オ フ デザ イ ン フ ァ イ ル (拡張子は .hdf) に、 ザ イ リ ン ク ス SDK でデザ イ ンの対応す る ソ フ ト ウ ェ ア
プ ロ ジ ェ ク ト を作成す る ために必要な情報がすべて含 ま れ ま す。 HDF フ ァ イ ルは、 write_hwdef ま たは
write_sysdef Tcl コ マ ン ド を使用す る か、 [File] → [Export] → [Export Hardware] を ク リ ッ ク し てデザ イ ン
を エ ク ス ポー ト す る と 作成 さ れます。
°
•
文書
°
デザ イ ンに関す る 文書、 仕様、 レ ポー ト な ど
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
38
第 2 章 : Vivado Design Suite の使用
管理に最低限必要な ソ ース フ ァ イル
Vivado Design Suite デザ イ ン と 関連す る IP お よ び BD フ ァ イ ルは、最小限の ソ ース フ ァ イ ルを使用 し て再作成で き ま
す。 こ の方法には、 「最小限の ソ ース の管理」 に記述 さ れてい る 制限があ り ます。
デザ イ ン を再生成す る ために必要な最小限の ソ ース フ ァ イ ルは、 次の と お り です。
•
•
•
スク リプト
°
run 実行の前後で実行 し た ス ク リ プ ト を含む、 デザ イ ンの コ ンパ イ ルに使用 さ れた実行ス ク リ プ ト
°
write_project_tcl コ マ ン ド を使用 し て作成 さ れたプ ロ ジ ェ ク ト 再生成ス ク リ プ ト
°
デザ イ ン プ ロ ジ ェ ク ト を再作成可能なプ ロ ジ ェ ク ト .xpr フ ァ イ ル
RTL お よ びテ ス ト ベンチ
°
RTL ベース の ソ ース フ ァ イ ルすべて ( イ ン ク ルー ド フ ァ イ ルを含む)
°
シ ミ ュ レーシ ョ ン テ ス ト ベンチお よ びス テ ィ ミ ュ ラ ス フ ァ イ ル
制約
°
•
•
XDC 制約フ ァ イ ルすべて と 制約 と し て使用 さ れてい る Tcl コ マ ン ド
IP
°
各 IP に関連付け ら れてい る .xci フ ァ イ ル
°
IP コ ア コ ン テナーを使用す る 場合は、 IP コ ア コ ン テナー .xcix フ ァ イ ル
IP イ ン テ グ レー タ ー
°
write_project_tcl コ マ ン ド を使用 し て作成 さ れた BD 再作成 Tcl コ マ ン ド
°
各 BD に使用 さ れ る .bd フ ァ イ ル
°
ブ ロ ッ ク のグ ラ フ ィ ッ ク ロ ケーシ ョ ンお よ びコ メ ン ト の UI デ ィ レ ク ト リ
Vivado Design Suite の ソ ース タ イ プ
Vivado Design Suite 環境では、デザ イ ン記述を含む ソ ース フ ァ イ ルが参照 さ れます。Vivado Design Suite のオプシ ョ ン
で、 ソ ース フ ァ イ ルの作成方法、 使用方法、 ソ ース タ イ プの管理方法を設定で き ます。 ソ ース には次の よ う な も の
があ り ます。
•
HDL お よ びネ ッ ト リ ス ト フ ァ イ ル : Verilog (.v)、 SystemVerilog (.sv)、 VHDL (.vhd)、 お よ び EDIF (.edf)
•
C ベース の ソ ース フ ァ イ ル (.c)
•
Tcl フ ァ イ ル、 実行ス ク リ プ ト 、 お よ び init.tcl (.tcl)
•
論理お よ び物理制約 (.xdc)
•
IP コ ア フ ァ イ ル (.xci)
•
IP コ ア コ ン テナー (.xcix)
•
IP イ ン テ グ レー タ ー ブ ロ ッ ク デザ イ ン フ ァ イ ル (.bd)
•
デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (.dcp)
•
System Generator サブシ ス テ ム (.sgp)
•
関連ツールで使用 さ れ る フ ァ イ ル (シ ミ ュ レー タ 用の .do フ ァ イ ルな ど)
•
ブ ロ ッ ク メ モ リ マ ッ プ フ ァ イ ル (.bmm、 .mmi)
•
ELF (Executable and Linkable Format) フ ァ イ ル (.elf)
•
係数フ ァ イ ル (.coe)
•
アーカ イ ブ さ れたプ ロ ジ ェ ク ト (.zip)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
39
第 2 章 : Vivado Design Suite の使用
Vivado Design Suite での ソ ース変更の認識
Vivado Design Suite では、 大部分の ソ ース フ ァ イ ルに対 し て タ イ ム ス タ ンプ を使用 し て ソ ース フ ァ イ ルがア ッ プデー
ト さ れたか を判断 し ます。 ソ ース に対 し て タ イ ム ス タ ンプが変更 さ れ る 操作を実行する と 、 デザ イ ンが最新の状態で
な く な り 、 ア ッ プデー ト が必要 と 示 さ れ る 可能性があ り ます。
重要 : 一般的な リ ビ ジ ョ ン管理操作で フ ァ イ ルの タ イ ム ス タ ンプが変更 さ れない よ う に し て く だ さ い。
リ ビ ジ ョ ン管理シ ス テ ムに よ っ ては、 フ ァ イ ルの内容に変更がな く て も タ イ ム ス タ ンプが変更 さ れた り 、 チ ェ ッ ク イ
ン/チ ェ ッ ク ア ウ ト の時間に基づいて タ イ ム ス タ ン プが変更 さ れ る こ と があ り ます。 ソ ース フ ァ イ ルお よ び生成 さ れ
た出力フ ァ イ ルの相対的な変更時間順を保持す る には、 フ ァ イ ルを タ イ ム ス タ ンプの逆順に並べ替え てか ら チ ェ ッ ク
イ ン/チ ェ ッ ク ア ウ ト を実行 し て く だ さ い。 次に、 タ イ ム ス タ ン プ順を保持 し て git に フ ァ イ ル を追加す る コ マ ン ド
(Unix) を示 し ます。
find .-type f -print0 | xargs -0 ls-rt | xargs git add
デザイ ン ソ ース デ ィ レ ク ト リ 構造の定義
さ ま ざ ま な タ イ プの ソ ー ス フ ァ イ ルを効率的に識別 し て管理す る ため、 各ア ク テ ィ ブ デザ イ ンに対 し てデ ィ レ ク ト
リ 構造を作成す る こ と をお勧め し ます。 次に示す よ う に、 ソ ース の タ イ プご と に異な る デ ィ レ ク ト リ に保存 し ます。
X-Ref Target - Figure 2-6
図 2-6 : デザイ ン ソ ース デ ィ レ ク ト リ 構造の例
さ ま ざ ま な タ イ プの Vivado デザ イ ン ソ ース を カ テ ゴ リ に分類 し て整理す る のが目的です。 デザ イ ンお よ びデザ イ ン
チームで最適に機能す る 命名規則お よ びサブデ ィ レ ク ト リ 構造を定義 し て く だ さ い。 こ のエ リ ア自体を リ ビ ジ ョ ン管
理シ ス テ ムで管理す る か、 デザ イ ン特定のチ ェ ッ ク ア ウ ト コ ピーを使用で き ます。
Vivado IP お よ び IP サブシ ス テ ムはデバ イ ス特定であ り 、 保存デ ィ レ ク ト リ にわか り やすい名前を付けてお く 必要が
あ り ます。 その よ う にす る と 、 後でほかのデザ イ ンで使用す る 場合に識別 し やす く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
40
第 2 章 : Vivado Design Suite の使用
ア ク テ ィ ブ作業エ リ アの使用
ザ イ リ ン ク ス では、 プ ロ ジ ェ ク ト を作成 し 、 デザ イ ン を コ ンパ イ ル し て結果を記述 し 、 デザ イ ン ク ロ ージ ャ を達成す
る ための探索を実行す る 書 き 込み権のあ る エ リ ア を提供す る ため、 ア ク テ ィ ブ作業デ ィ レ ク ト リ を作成す る こ と をお
勧め し ます。 こ のエ リ アに書 き 込み可能なデザ イ ン ソ ースお よ び IP を含め る こ と も で き ます。
識別 し やすい よ う に、 デザ イ ン特定の ソ ース、 ス ク リ プ ト 、 結果の名前 と 整理方法を注意深 く 決定す る こ と をお勧め
し ます。 サブデ ィ レ ク ト リ お よ び ソ ース フ ァ イ ルの命名方法を、 後で内容を判断で き る も のに し て く だ さ い。 最新で
ないデザ イ ン試行や タ イ ミ ン グ を満たす こ と がで き なかっ た試行、 お よ び最新でない ソ ース は削除 し て く だ さ い。
注意 : Windows オペレーテ ィ ン グ シ ス テ ム ではパ ス の長 さ が 260 文字ま でに制限 さ れてお り 、 こ れが Vivado ツール
に影響す る 可能性があ り ます。 こ の問題を回避する には、 プ ロ ジ ェ ク ト の作成、 IP お よ び Manage IP プ ロ ジ ェ ク ト の
定義、 ブ ロ ッ ク デザ イ ンの作成を実行する 際に、 デ ィ レ ク ト リ の場所お よ び名前をで き る だけ短 く し て く だ さ い。
Vivado Design Suite プ ロ ジ ェ ク ト の管理
Vivado Design Suite プ ロ ジ ェ ク ト を使用す る 場合、 ソ ース管理シ ス テ ムの使用が複雑にな る 可能性があ り ます。Vivado
Design Suite プ ロ ジ ェ ク ト を リ ビ ジ ョ ン管理シ ス テ ム と 共に使用す る 場合は、 特定の手順に従 う 必要があ り ます。 プ
ロ ジ ェ ク ト では、 ソ ー ス の コ ピーが保持 さ れ る か リ モー ト ソ ース が参照 さ れ、 独自の方法で ソ ース が管理 さ れ ます
が、 プ ロ ジ ェ ク ト を リ ビ ジ ョ ン管理 と 共に使用す る 方法 も あ り ます。 次の方法が推奨 さ れます。
リ モー ト ソ ース またはロー カル ソ ースの使用
プ ロ ジ ェ ク ト が Vivado ツールを使用 し て作成お よ び管理 さ れ る 場合、 ソ ース は元のデ ィ レ ク ト リ か ら 参照で き る ほ
か、 プ ロ ジ ェ ク ト の ロ ーカル デ ィ レ ク ト リ に コ ピーす る こ と も で き ます。 ロ ーカルお よ び リ モー ト の ソ ー ス はすべ
て、 Vivado IDE を使用 し て イ ン タ ラ ク テ ィ ブに処理で き ま す。 ソ ース を変更す る にはテ キ ス ト エデ ィ タ ーを使用で
き 、 ま たデザ イ ン を開いた状態で結果を解析お よ び変更で き ます。
デザ イ ン ソ ース は読み取 り 専用に し て保護する こ と がで き 、デザ イ ンが実行 さ れてい る デ ィ レ ク ト リ か ら ア ク セ ス可
能な ネ ッ ト ワ ー ク 上に保存で き ま す。 ソ ー ス を読み取 り 専用にす る と 変更で き ないので、 Vivado IDE の イ ン タ ラ ク
テ ィ ブ設計機能の活用が制限 さ れます。
プ ロ ジ ェ ク ト モー ド を使用す る 場合は、 ソ ース を ロ ーカル デ ィ レ ク ト リ に コ ピーせず、 リ モー ト ソ ース を使用 し て
プ ロ ジ ェ ク ト を作成 し た方が、 簡単に リ ビ ジ ョ ン管理シ ス テ ム を使用で き ま す。 ソ ー ス を リ モー ト で管理す る と 、
Vivado IDE の イ ン タ ラ ク テ ィ ブ機能を活用 し なが ら 、 デザ イ ン ソ ース を簡単に管理で き ます。 ソ ース フ ァ イ ルに変
更を加え る たびに、 リ ビ ジ ョ ン管理シ ス テ ムに新 し いバージ ョ ン をチ ェ ッ ク イ ンで き ます。
ま たは、 ソ ース を ロ ーカルのプ ロ ジ ェ ク ト デ ィ レ ク ト リ に コ ピー し 、 デザ イ ン プ ロ ジ ェ ク ト 全体を独立 し た移植 し
やすい も のにす る こ と も で き ますが、 デザ イ ン ソ ース フ ァ イ ルがプ ロ ジ ェ ク ト のサブデ ィ レ ク ト リ の下の方に埋 も
れて し ま い ます。
ヒ ン ト : ほ と ん ど の場合、 ソ ース に加え た変更はフ ァ イ ルに別の名前を付けて保存で き ます。
プ ロ ジ ェ ク ト を .xpr フ ァ イルのみか ら 再作成
Vivado Design Suite プ ロ ジ ェ ク ト は、 1 つの フ ァ イ ル (<project_name>.xpr) で再作成お よ び管理で き ま す。 リ ビ
ジ ョ ン管理シ ス テ ムで管理す る 必要があ る のは、 プ ロ ジ ェ ク ト フ ァ イ ル と さ ま ざ ま なプ ロ ジ ェ ク ト ソ ース フ ァ イ ル
のみです。 ソ ース フ ァ イ ルが元のデ ィ レ ク ト リ にあ り 、 プ ロ ジ ェ ク ト に リ モー ト ソ ース と し て追加 さ れていれば、 こ
のプ ロ ジ ェ ク ト フ ァ イ ルを開 く こ と に よ り 関連する ソ ース フ ァ イ ルが開かれ、 プ ロ ジ ェ ク ト 全体を再作成で き ます。
ソ ー ス がプ ロ ジ ェ ク ト 内にあ る 場合、 ス タ ン ド ア ロ ン の XPR フ ァ イ ルか ら プ ロ ジ ェ ク ト を正 し く 再作成す る こ と は
で き ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
41
第 2 章 : Vivado Design Suite の使用
プ ロ ジ ェ ク ト を write_project_tcl コ マ ン ド を使用 し て再作成
プ ロ ジ ェ ク ト を ソ ー ス管理シ ス テ ム と 共に使用す る 場合は、 Tcl ス ク リ プ ト を使用 し て最初か ら プ ロ ジ ェ ク ト を構築
し 直す こ と をお勧め し ます。 Vivado の write_project_tcl コ マ ン ド には、 同 じ ソ ース フ ァ イ ル と 設定を使用 し て
現在のデザ イ ン を作成 し 直すのに使用で き る Tcl ス ク リ プ ト を作成する 機能があ り ます。
write_project_tcl <script_file_name>.tcl
こ の コ マ ン ド で作成 さ れた Tcl ス ク リ プ ト は リ ビ ジ ョ ン管理シ ス テ ム で管理す る 必要があ り ます。 こ の ス ク リ プ ト を
使用 し てプ ロ ジ ェ ク ト を再作成す る には、 次の コ マ ン ド を使用 し ます。
source <script_file_name>.tcl
Vivado Design Suite ス ク リ プ ト ベース フ ローの使用
ソ ース管理シ ス テ ム を連動 さ せ る には、 非プ ロ ジ ェ ク ト モー ド の ス ク リ プ ト フ ロ ーを使用す る のが最 も 簡単な方法
です。 必要な ソ ース フ ァ イ ルを ロ ーカル デ ィ レ ク ト リ 構造にチ ェ ッ ク ア ウ ト す る か、 管理 さ れ る 場所か ら 直接読み
込む こ と がで き ま す。 新 し い ソ ー ス フ ァ イ ル を作成す る 必要が あ る 場合 も あ り ま す。 フ ァ イ ルの準備が整っ た ら 、
read_<source_type> Tcl コ マ ン ド を使用 し て フ ァ イ ルを Vivado の合成お よ び イ ン プ リ メ ン テーシ ョ ン コ マ ン ド
に渡 し ま す。 ソ ー ス フ ァ イ ルは、 元のデ ィ レ ク ト リ に保持 さ れ ま す。 チ ェ ッ ク ア ウ ト さ れた ソ ー ス は、 イ ン タ ラ ク
テ ィ ブに、 ま たは コ ー ド エデ ィ タ ーを使用 し てデザ イ ン セ ッ シ ョ ン中に Tcl コ マ ン ド で変更で き ます。 タ イ ミ ン グ制
約の変更な ど が こ の例です。
注記 : ソ ース フ ァ イ ルは読み取 り 専用に し て保護で き ますが、 その場合は変更で き ません。
ソ ース フ ァ イ ルは、 こ の後随時 ソ ース管理シ ス テ ムに戻 さ れます。 デザ イ ン チ ェ ッ ク ポ イ ン ト 、 レ ポー ト 、 BIT フ ァ
イ ルな ど のデザ イ ン結果 も リ ビ ジ ョ ン管理用にチ ェ ッ ク イ ンで き ます。
IP および IP サブ シ ス テムの使用
IP お よ び IP イ ン テ グ レー タ ー サブシ ス テ ムは、 Vivado IDE で イ ン タ ラ ク テ ィ ブに コ ン フ ィ ギ ュ レーシ ョ ンす る のが
ベス ト です。IP カ ス タ マ イ ズ ウ ィ ザー ド お よ び イ ン タ ラ ク テ ィ ブ IP イ ン テ グ レー タ ー キ ャ ンバ ス を使用す る こ と で、
作業が簡単にな り ます。 IP ま たは IP サブシ ス テ ム を コ ン フ ィ ギ ュ レーシ ョ ン し て出力フ ァ イ ルを生成 し た ら 、 こ れ
ら の ソ ース を Vivado Tcl コ マ ン ド で読み込む こ と がで き ます。 IP では .xci フ ァ イ ルを ソ ース と し て使用 し 、 IP イ ン
テ グ レー タ ー では .bd フ ァ イ ルを ソ ース と し て使用 し ます。
注記 : ス ク リ プ ト ベース フ ロ ーでは、 IP ま たは IP イ ン テ グ レー タ ーのデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (.dcp)
を ソ ース と し て使用す る こ と も で き ます。 .xci お よ び .bd フ ァ イ ルは確実に最新であ る ので、 ザ イ リ ン ク ス では こ
れ ら の フ ァ イ ルを使用す る こ と をお勧め し ます。
ス ク リ プ ト およびレポー ト の管理
デザ イ ン の再作成に必要な Tcl ス ク リ プ ト お よ び変更 し た .ini ス タ ー ト ア ッ プ フ ァ イ ル も 管理す る 必要があ り ま
す。 レ ポー ト フ ァ イ ル も 管理す る と 、 今後の参照用にデザ イ ンの ス テー ト を特定する のに役立ち ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
42
第 2 章 : Vivado Design Suite の使用
IP の管理
デザ イ ン プ ロ ジ ェ ク ト で使用 し た IP には、 そのプ ロ ジ ェ ク ト 専用のデ ィ レ ク ト リ を作成 し てお く こ と をお勧め し ま
す。 IP は、 その IP を使用す る その他のデザ イ ン プ ロ ジ ェ ク ト か ら も 再 コ ン フ ィ ギ ュ レーシ ョ ン で き る ので、 デザ イ
ン専用の IP を作成 し てお く と 、 ほかの設計者に よ り 不必要にア ッ プデー ト さ れ る のを防ぐ こ と がで き ます。
Vivado Design Suite IP お よ び IP サブシ ス テ ムはデバ イ ス特定なので、デザ イ ン間で共有す る 場合や管理エ リ ア を設定
す る 際は注意が必要です。
Vivado Design Suite IP は、 次の方法を使用 し て コ ン フ ィ ギ ュ レーシ ョ ン、 格納、 お よ び管理で き ます。
•
Manage IP プ ロ ジ ェ ク ト を作成 (推奨)
•
プ ロ ジ ェ ク ト ロ ーカル IP
•
プ ロ ジ ェ ク ト リ モー ト IP
Manage IP プ ロ ジ ェ ク ト を作成 (推奨)
IP を 1 つの場所で管理す る 環境では、 カ ス タ マ イ ズ さ れた IP と 出力フ ァ イ ルが現在のデザ イ ン ま たはプ ロ ジ ェ ク ト
デ ィ レ ク ト リ 構造外にあ る 1 つの リ ポジ ト リ に保存 さ れ ます。 カ ス タ マ イ ズ さ れた各 IP は、 それ専用のデ ィ レ ク ト
リ に保存 さ れます。 プ ロ ジ ェ ク ト モー ド で も 非プ ロ ジ ェ ク ト モー ド で も 、 Tcl ス ク リ プ ト を使用す る かプ ロ ジ ェ ク ト
に リ モー ト ソ ース と し て追加す る こ と に よ り 、 こ の リ ポジ ト リ か ら IP を参照で き ます。
Manage IP プ ロ ジ ェ ク ト では、 複数の IP コ ア を コ ン フ ィ ギ ュ レーシ ョ ン、 検証、 保存す る IP 管理 ロ ケーシ ョ ン が作
成 さ れ ます。 Vivado IDE の IP カ タ ロ グ を使用 し た IP の コ ン フ ィ ギ ュ レーシ ョ ン、 ソ ー ス管理、 解析、 run 構造を活
用 し 、 各 IP コ アの結果を保存お よ び検証 し ます。 こ の機能に よ り 、 IP カ タ ロ グか ら IP を選択 し て コ ン フ ィ ギ ュ レー
シ ョ ンお よ びカ ス タ マ イ ズ し 、 必要なデザ イ ン コ ン フ ィ ギ ュ レーシ ョ ンの出力フ ァ イ ルを生成で き ます。 こ の環境で
合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行す る こ と も 可能です。
推奨 : managed_ip_project デ ィ レ ク ト リ も 含め、 [IP Location] デ ィ レ ク ト リ 構造全体を管理す る こ と をお勧め し
ます。 こ れに よ り 、 Vivado Design Suite で IP run と 出力フ ァ イ ルの ス テー タ ス が維持 さ れ る よ う にな り ます。
プ ロ ジ ェ ク ト ロー カル IP
IP は、 Vivado Design Suite プ ロ ジ ェ ク ト 内で コ ン フ ィ ギ ュ レーシ ョ ンお よ び保存で き ます。 IP 出力フ ァ イ ルは、 プ ロ
ジ ェ ク ト デ ィ レ ク ト リ 構造内に保存で き ます。 IP 出力フ ァ イ ルをデザ イ ン プ ロ ジ ェ ク ト 内に保存す る と 、 デザ イ ン
全体に対す る ス タ ン ド ア ロ ン エン テ ィ テ ィ が作成 さ れ、 簡単にパ ッ ケージ し て共有で き ます。 こ れは、 デザ イ ンで特
有の IP コ ン フ ィ ギ ュ レーシ ョ ン を使用 し てお り 、 共有 IP レ ポジ ト リ か ら 使用で き る よ う にす る こ と が望ま し く ない
場合に も 便利です。
プ ロ ジ ェ ク ト 内で IP カ タ ロ グ を使用 し て IP を カ ス タ マ イ ズお よ び追加す る のは簡単です。 プ ロ ジ ェ ク ト は独立 し て
い る ので 1 つの ロ ケーシ ョ ン で簡単に管理で き ます。1 つの IP が複数のプ ロ ジ ェ ク ト ま たは複数のユーザーに よ っ て
使用 さ れない場合は、 こ の方法がシ ンプルです。 IP はプ ロ ジ ェ ク ト の一部 と し て扱われ、 RTL ソ ースお よ び run 結果
な ど のほかのデザ イ ン デー タ と 共に管理 さ れます。
プ ロ ジ ェ ク ト デ ィ レ ク ト リ 構造全体を その ま ま変更せずに管理する 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
43
第 2 章 : Vivado Design Suite の使用
プ ロ ジ ェ ク ト リ モー ト IP
Vivado Design Suite では、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド の両方で、 個々の IP を ス タ ン ド ア ロ ン
と し て ま たは リ モー ト で コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 次の図に示す よ う に、 Vivado Design Suite IP を コ ン フ ィ
ギ ュ レーシ ョ ンす る 際は、 プ ロ ジ ェ ク ト デ ィ レ ク ト リ 外の IP ロ ケーシ ョ ン を指定で き ます。
X-Ref Target - Figure 2-7
図 2-7 : 各 IP の リ モー ト デ ィ レ ク ト リ の定義
IP デ ィ レ ク ト リ を Vivado Design Suite プ ロ ジ ェ ク ト 外に設定す る と 、 IP コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル (.xci) の
ほか、RTL ソ ースお よ び制約を含む さ ま ざ ま な IP 出力フ ァ イ ルが ス タ ン ド ア ロ ン デ ィ レ ク ト リ に IP カ ス タ マ イ ズ名
と 一致す る 名前で保存 さ れます。
リ モー ト IP は、 い く つのデザ イ ン プ ロ ジ ェ ク ト で も 使用で き ま す。 Vivado IDE では、 リ モー ト IP への変更お よ び
バージ ョ ン ア ッ プデー ト が可能であ り 、変更す る と ほかのユーザーお よ びデザ イ ンに影響する 可能性があ る ので、共
有 リ モー ト IP を変更ま たはア ッ プデー ト する 際は注意が必要です。 デザ イ ン特定の リ モー ト IP ロ ケーシ ョ ン を設定
す る と 、 ほかの設計者に よ り 不必要に変更 さ れない よ う にす る こ と がで き ます。
リ モー ト IP ロ ケーシ ョ ン を使用す る 際は、 次のガ イ ド ラ イ ンに従っ て く だ さ い。
•
IP 保存デ ィ レ ク ト リ 構造をデバ イ ス タ イ プ、 IP タ イ プ、 その他エ レ メ ン ト で区別で き る よ う に設定
•
サンプル デザ イ ン を IP デ ィ レ ク ト リ 外に保存 し て、 IP がア ッ プデー ト さ れた と き に も 保持 さ れ る よ う にする
リ モー ト IP デ ィ レ ク ト リ 構造全体を その ま ま 変更せずに管理 し ます。 場所は指定で き ますが、 プ ロ ジ ェ ク ト お よ び
Manage IP プ ロ ジ ェ ク ト で と 同様に、 各 IP は常に IP 名に基づ く 名前の専用デ ィ レ ク ト リ に配置 さ れます。
IP ソ ースの管理
Vivado Design Suite IP を使用す る 場合、 各 IP コ アは メ イ ンの .xci IP コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを含む別の
サブデ ィ レ ク ト リ に保存 さ れ、 こ こ に IP を合成お よ び イ ンプ リ メ ン ト す る のに必要な RTL、 XDC、 お よ びその他の
関連フ ァ イ ル も 保存 さ れます。 ツールの今後のバージ ョ ンで結果を再生成する 際の リ ス ク を軽減する ため、 こ れ ら す
べての フ ァ イ ルを そのデ ィ レ ク ト リ 構造を その ま ま変更せずに管理す る こ と をお勧め し ます。
IP コ ア コ ン テナーの使用 (推奨)
リ ビ ジ ョ ン管理シ ス テ ム で フ ァ イ ルを管理 し やす く す る ため、 IP コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル と 出力フ ァ イ ル
を、 デ ィ レ ク ト リ 構造ではな く 、 IP コ ア コ ン テナー と い う 1 つのバ イ ナ リ フ ァ イ ルに格納で き ます。 Vivado Design
Suite は、 こ の IP コ ア コ ン テナー フ ァ イ ルを直接操作 し ます。 IP コ ア コ ン テナーを使用す る 場合、 管理する 必要が
あ る のは IP の .xcix フ ァ イ ルのみです。 .xcix フ ァ イ ルには、 シ ミ ュ レーシ ョ ン、 合成、 お よ び イ ンプ リ メ ン テー
シ ョ ンに必要な フ ァ イ ルすべてが含まれます。
IP コ ア コ ン テナーの使用に関す る 詳細は、『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 9]
を参照 し て く だ さ い。 IP コ ア コ ン テナー フ ァ イ ルを使用 し たシ ミ ュ レーシ ョ ンの詳細は、 『Vivado Design Suite ユー
ザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参照 11] を参照 し て く だ さ い。
注記 : .xci フ ァ イ ルま たは .xcix フ ァ イ ルを含むすべての出力 ソ ース フ ァ イ ルを読み取 り 専用にで き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
44
第 2 章 : Vivado Design Suite の使用
重要 : IP サンプル デザ イ ン を管理 さ れていない場所に作成 し 、 コ ンパ イ ルお よ び試行で き る よ う に し ます。
一部の IP には、 COE、 CSV、 ELF、 お よ び BMM フ ァ イ ルな ど の追加フ ァ イ ルがあ り ます。 こ れ ら の フ ァ イ ルを リ ビ
ジ ョ ン管理シ ス テ ム を使用 し て管理す る 必要があ り ます。 プ ロ ジ ェ ク ト フ ロ ーでは、 こ れ ら の フ ァ イ ルはプ ロ ジ ェ ク
ト に登録 さ れ、デザ イ ン ソ ース エ リ アに表示 さ れ る 場合があ り ます。 こ れ ら の フ ァ イ ルはプ ロ ジ ェ ク ト には イ ン ポー
ト さ れませんが、 参照 さ れた ロ ケーシ ョ ンに保持 さ れます。
た と えば FIR Compiler の .coe フ ァ イ ルを指定す る と 、 デザ イ ン ソ ース の係数フ ァ イ ル フ ォ ルダーに追加 さ れ ます。
.coe フ ァ イ ルの場所は、 IP XCI フ ァ イ ルに相対パ ス と し て保存 さ れます。 IP お よ び COE フ ァ イ ルを リ ビ ジ ョ ン管理
に配置す る 場合、 相対パス を保持す る 必要があ り ます。 相対パ ス を変更する 必要があ る 場合、 パ スは IP のプ ロ パテ ィ
と し て設定 さ れてい る ので、 こ のパ ス プ ロ パテ ィ を次の Tcl コ マ ン ド を使用 し て ア ッ プデー ト し ます。
set_property CONFIG.Coefficient_File {/location/of/coe/file} [get_ips my_FIR_compiler]
ヒ ン ト : こ のパ ス プ ロ パテ ィ は、 GUI で IP を再カ ス タ マ イ ズ し 、 COE フ ァ イ ルの場所を指定 し てア ッ プデー ト す る
こ と も で き ます。
注記 : プ ロ ジ ェ ク ト を アーカ イ ブす る と 、 こ れ ら の フ ァ イ ルがプ ロ ジ ェ ク ト デ ィ レ ク ト リ 構造に コ ピー さ れて IP の
パ ス参照がア ッ プデー ト さ れます。 write_project_tcl コ マ ン ド を使用する 場合、 使用す る オプシ ョ ンに よ っ て、
フ ァ イ ルは現在の場所か ら 参照 さ れ る か イ ン ポー ト さ れます。
IP コ ア コ ン テナー と 外部サー ド パーテ ィ フ ァ イルの管理 (推奨)
IP コ ア コ ン テナーを使用す る 場合は、 サー ド パーテ ィ ツールがア ク セ ス し やすい よ う に、 次の IP 出力フ ァ イ ルが コ
ア コ ン テナー外に コ ピー さ れます。
•
イ ン ス タ ン シエーシ ョ ン テ ンプ レー ト
•
合成ス タ ブ フ ァ イ ル
•
シ ミ ュ レーシ ョ ン ソ ース フ ァ イ ル
•
スク リプト
•
テ ス ト ベンチ
コ ピー さ れた こ れ ら の フ ァ イ ルは、その IP の ip_user_files お よ び ip_static_files サブデ ィ レ ク ト リ に含ま
れます。
推奨 : サー ド パーテ ィ ツールを使用す る 場合は、 IP の .xcix フ ァ イ ル と こ れ ら の外部下位デ ィ レ ク ト リ を その ま ま
の状態で管理す る こ と をお勧め し ます。
すべての IP 出力 フ ァ イルの管理 (推奨)
すべての IP 出力フ ァ イ ルを含む IP デ ィ レ ク ト リ 全体を リ ビ ジ ョ ン管理を使用 し て管理す る こ と をお勧め し ます。 こ
の よ う にす る と 、 後で IP を ア ッ プグ レー ド す る か ど う か、 す る 場合はその タ イ ミ ン グ を柔軟に決定で き ます。 IP を
使用す る たびに生成 し 直す必要がないので、 実行時間 も 短縮 さ れます。
Vivado IDE では、 IP カ タ ロ グ内でサポー ト さ れ る IP のバージ ョ ンはそれぞれ 1 つのみです。 Vivado IDE を ア ッ プグ
レー ド し て IP が最新バージ ョ ンでな く な っ て も 、 使用す る こ と は可能です。 IP は ロ ッ ク さ れ、 再カ ス タ マ イ ズ し た
り 出力フ ァ イ ルを生成 し 直す こ と はで き な く な り ますが、 出力フ ァ イ ルが存在 し ていれば使用で き ます。
デフ ォ ル ト では、すべての IP はデザ イ ンのほかの部分か ら 独立 さ せて合成 さ れます (ア ウ ト オブ コ ン テ キ ス ト 合成)。
生成 さ れ る 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト は、 IP の出力フ ァ イ ルです。 IP を Vivado IDE の今後のバージ ョ ンで
使用で き る よ う にす る には、IP を作成 し た と き にデフ ォ ル ト のア ウ ト オブ コ ン テ キ ス ト フ ロ ーを使用 し ていた場合、
それ ら の フ ァ イ ルが存在す る 必要があ り ます。 ほかの出力フ ァ イ ル と 同様、 こ れ ら の フ ァ イ ル も IP が現バージ ョ ン
ではない場合は生成で き ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
45
第 2 章 : Vivado Design Suite の使用
IP の .xci フ ァ イルのみの管理
デザ イ ン で使用 さ れてい る カ ス タ マ イ ズ さ れた IP を復元す る には、 最低で も IP の特定 コ ン フ ィ ギ ュ レ ーシ ョ ン の
.xci フ ァ イ ルを保存 し てお く 必要があ り ます。こ の .xci フ ァ イ ルか ら 、IP を作成 し たの と 同 じ バージ ョ ンの Vivado
IDE を使用 し て IP を再生成で き ます。 こ の ツール バージ ョ ン を使用 し 続け る 場合、 ま たは IP を常にア ッ プグ レー ド
す る 予定の場合は、 IP の .xci だけで十分ですが、 IP コ ア (現在のカ ス タ マ イ ズ、 RTL、 XDC な ど を含む) を今後の
Vivado IDE で使用す る には、 リ ビ ジ ョ ン管理に IP の出力フ ァ イ ル デ ィ レ ク ト リ 全体を配置 し 、 デ ィ レ ク ト リ 構造を
保持す る 必要があ り ます。
出力フ ァ イ ルを作成す る 場所を確実にす る ため、 IP デ ィ レ ク ト リ 構造を保持する 必要があ り ます。 1 つのデ ィ レ ク ト
リ に複数の .xci フ ァ イ ルを保存 し ないで く だ さ い。 1 つのデ ィ レ ク ト リ に複数の .xci フ ァ イ ルを保存する と 、 出
力フ ァ イ ルを生成 し た と き に競合が発生 し ます。
IP の .xcix コ ア コ ン テナー フ ァ イルのみの管理
シ ミ ュ レーシ ョ ンお よ び合成に必要な IP 出力フ ァ イ ルを含めつつ、 最小限の フ ァ イ ル セ ッ ト を管理す る 場合は、 IP
コ ア コ ン テナーを使用 し ます。 IP コ ア コ ン テナーを使用する 場合、 管理す る 必要があ る のは IP の .xcix フ ァ イ ル
のみです。 次の コ マ ン ド を使用す る と 、 シ ミ ュ レーシ ョ ン、 合成、 お よ び イ ン プ リ メ ン テーシ ョ ン に必要な IP ソ ー
ス フ ァ イ ルすべて をデザ イ ン プ ロ ジ ェ ク ト の任意の管理 さ れていないデ ィ レ ク ト リ にエ ク ス ポー ト で き ます。
export_ip_user_files
IP イ ン テグ レー タ ー サブ シ ス テムの管理
IP イ ン テ グ レー タ ー サブシ ス テ ムには、 複数の IP、 カ ス タ マ イ ズ さ れたパ ラ メ ー タ ー、 イ ン タ ー コ ネ ク ト が含まれ
ます。 こ れ ら の IP サブシ ス テ ムは IP イ ン テ グ レー タ ーで作成 さ れ、 Vivado IDE 内でブ ロ ッ ク デザ イ ン (BD) と 呼ば
れます。
リ モー ト ブ ロ ッ ク デザイ ンの作成 (推奨)
Vivado IP イ ン テ グ レー タ ー ブ ロ ッ ク デザ イ ン (.bd) を作成する 際、 リ モー ト の場所を指定で き ます。 ブ ロ ッ ク デザ
イ ン の リ ビ ジ ョ ン を管理 し 、 保存す る には、 こ れが最 も 簡単な方法です。 「プ ロ ジ ェ ク ト リ モー ト IP」 と 同様、 ブ
ロ ッ ク デザ イ ン で使用 さ れてい る すべての フ ァ イ ルお よ び IP がプ ロ ジ ェ ク ト デ ィ レ ク ト リ 外の リ モー ト デ ィ レ ク
ト リ に保存 さ れます。
X-Ref Target - Figure 2-8
図 2-8 : ブ ロ ッ ク デザイ ンの リ モー ト デ ィ レ ク ト リ の指定
ブ ロ ッ ク デザ イ ン作成の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス
テ ムの設計』 (UG994) [参照 26] の 「ブ ロ ッ ク デザ イ ンの作成」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
46
第 2 章 : Vivado Design Suite の使用
プ ロ ジ ェ ク ト ベース ブ ロ ッ ク デザイ ンの作成
デフ ォ ル ト では、 Vivado IP イ ン テ グ レー タ ーに よ り ロ ーカル プ ロ ジ ェ ク ト デ ィ レ ク ト リ 構造内にブ ロ ッ ク デザ イ ン
デー タ が作成お よ び保存 さ れます。 こ の場合、 Vivado IDE では ソ ース を イ ン タ ラ ク テ ィ ブに変更お よ び管理で き る た
め、 リ ビ ジ ョ ン管理シ ス テ ムの使用には注意が必要です。 IP 出力フ ァ イ ルをデザ イ ン プ ロ ジ ェ ク ト 内に保存す る と 、
デザ イ ン全体に対 し て ス タ ン ド ア ロ ン エン テ ィ テ ィ が作成 さ れ、 簡単にパ ッ ケージ し て共有で き ます。 こ れは、 デザ
イ ンで特有の IP コ ン フ ィ ギ ュ レーシ ョ ン を使用 し てお り 、 共有 IP レ ポジ ト リ か ら 使用で き る よ う にす る こ と が望ま
し く ない場合に も 便利です。
IP イ ン テグ レー タ ー ソ ースの管理
Vivado IP イ ン テ グ レー タ ーでは、 BD で使用 さ れ る 各 IP コ アは、 メ イ ンの .xci IP コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル
を含む BD のサブデ ィ レ ク ト リ に保存 さ れ、 こ こ に IP を イ ンプ リ メ ン ト す る のに必要な RTL、 XDC、 お よ びその他
の関連フ ァ イ ル も 保存 さ れます。 ツールの今後のバージ ョ ンで結果を再生成する 際の リ ス ク を軽減する ため、 すべて
の BD フ ァ イ ルを そのデ ィ レ ク ト リ 構造お よ びフ ァ イ ル名を その ま ま変更せずに管理す る こ と をお勧め し ます。
.bd フ ァ イ ルを含むすべての出力 ソ ース フ ァ イ ルを読み取 り 専用にで き ますが、 Vivado IDE のブ ロ ッ ク デザ イ ン機
能は制限 さ れます。
IP サ ン プル デザ イ ン を使用す る 際は、 管理 さ れていない場所に作成 し 、 コ ンパ イ ルお よ び試行で き る よ う に し て く
だ さ い。 デフ ォ ル ト では、 IP サブデ ィ レ ク ト リ 内に作成 さ れます。
ブ ロ ッ ク デザイ ン を .bd フ ァ イルのみか ら再作成
最低で も BD に関連付け ら れてい る .bd ソ ース フ ァ イ ルを リ ビ ジ ョ ン管理を使用 し て管理す る 必要があ り ます。.bd
をプ ロ ジ ェ ク ト ソ ース と し て追加す る と 、ブ ロ ッ ク デザ イ ン と 関連の IP 出力フ ァ イ ルが再生成 さ れます。 こ の場合、
すべての IP お よ びブ ロ ッ ク デザ イ ンの出力フ ァ イ ルを再生成お よ び コ ンパ イ ルす る 必要があ る ので、 時間がかか り
ます。 ブ ロ ッ ク デザ イ ンの再生成 も 、 それを作成 し た ツール バージ ョ ンに制限 さ れます。 ザ イ リ ン ク ス では、bd デ ィ
レ ク ト リ 全体をチ ェ ッ ク イ ンす る こ と をお勧め し ます。BD が関連の IP 出力フ ァ イ ル と 共に正 し く 生成 さ れた こ と を
確認 し て く だ さ い。
ブ ロ ッ ク デザイ ン を write_bd_tcl コ マ ン ド を使用 し て再作成
Vivado の write_project_tcl コ マ ン ド には、 同 じ IP、 接続、 設定を使用 し て現在の IP イ ン テ グ レー タ ー ブ ロ ッ
ク デザ イ ン (.bd) を作成 し 直すのに使用で き る Tcl ス ク リ プ ト を作成す る 機能があ り ます。 BD が関連の IP 出力フ ァ
イ ル と 共に正 し く 生成 さ れた こ と を確認 し て く だ さ い。
write_bd_tcl <script_file_name>.tcl
ソ ース が同 じ 場所に配置 さ れていれば、 プ ロ ジ ェ ク ト フ ロ ーお よ び非プ ロ ジ ェ ク ト フ ロ ーの両方で、 こ の コ マ ン ド
を使用 し てブ ロ ッ ク デザ イ ン を再作成で き ます。
source <script_file_name>.tcl
こ の結果の ス ク リ プ フ ァ イ ル も リ ビ ジ ョ ン管理で管理する 必要があ り ます。
シ ミ ュ レーシ ョ ン ソ ースの管理
シ ミ ュ レーシ ョ ン ソ ース は通常、 テ ス ト ベンチお よ びシ ミ ュ レーシ ョ ン ス ク リ プ ト と 共に、 デザ イ ン ソ ース フ ァ イ
ルの大部分を占め ます。 こ れ ら の フ ァ イ ルはすべて、 リ ビ ジ ョ ン管理機能を使用 し て管理す る 必要があ り ます。 こ れ
ら は、 Vivado Design Suite か ら 1 つのデ ィ レ ク ト リ にエ ク ス ポー ト で き ます。
ロ ジ ッ ク シ ミ ュ レーシ ョ ン用に フ ァ イ ルをエ ク ス ポー ト する 方法については、「IP のシ ミ ュ レーシ ョ ン ス ク リ プ ト の
生成」 お よ び 「最上位デザ イ ンのシ ミ ュ レーシ ョ ン ス ク リ プ ト の生成」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
47
第 2 章 : Vivado Design Suite の使用
System Generator ソ ースの管理
ザ イ リ ン ク ス System Generator で作成 さ れたプ ロ ジ ェ ク ト デ ィ レ ク ト リ 全体を その ま ま変更せずに リ ビ ジ ョ ン管理で
管理す る 必要があ り ます。
HLS ソ ースの管理
C ベース デザ イ ン ソ ース、 実行ス ク リ プ ト 、 お よ び出力パ ッ ケージ RTL IP をすべて リ ビ ジ ョ ン管理で管理す る 必要
があ り ます。
デザイ ン結果の管理
デザ イ ン チームのニーズに よ っ て、 追加の フ ァ イ ルを管理で き ます。 こ れには、 デザ イ ン ビ ッ ト ス ト リ ーム フ ァ イ
ル、 イ ンプ リ メ ン テーシ ョ ン結果、 デザ イ ン チ ェ ッ ク ポ イ ン ト 、 ロ グ フ ァ イ ルお よ びレ ポー ト 、 カ ス タ ム Tcl コ マ ン
ド お よ び実行ス ク リ プ ト が含まれます。 こ れ ら の フ ァ イ ルを適切に管理 し て く だ さ い。
デザイ ン チ ェ ッ ク ポ イ ン ト の使用
Vivado Design Suite では、デザ イ ン フ ロ ーの任意の段階のデザ イ ン を保存す る ため、デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ
イ ル (.dcp) が使用 さ れます。 チ ェ ッ ク ポ イ ン ト には、 チ ェ ッ ク ポ イ ン ト が保存 さ れた段階でのネ ッ ト リ ス ト 、 制約、
デザ イ ン結果が含まれます。
チ ェ ッ ク ポ イ ン ト は、 デザ イ ン プ ロ セ ス の各段階を終了 し た後に保存 し て く だ さ い。 プ ロ ジ ェ ク ト を使用 し て合成
run お よ び イ ンプ リ メ ン テーシ ョ ン run を処理す る 場合は、 自動的に作成 さ れます。
チ ェ ッ ク ポ イ ン ト は、 デザ イ ン解析お よ び制約変更のために Vivado IDE で開 く こ と がで き ます。 制約の変更は、 次
回 フ ロ ーを実行す る 際に使用で き る よ う にす る ため、 新 し い制約フ ァ イ ルに保存で き ま す。 チ ェ ッ ク ポ イ ン ト は フ
ロ ーの任意の時点におけ る デザ イ ン の ス ナ ッ プシ ョ ッ ト であ り 、 プ ロ ジ ェ ク ト 全体や ソ ース フ ァ イ ルは含ま れ ませ
ん。 こ れ ら は通常、 ビ ッ ト ス ト リ ームの生成な ど の残 り のデザ イ ン手順に渡 さ れます。
さ ま ざ ま な段階のデザ イ ン チ ェ ッ ク ポ イ ン ト を保存可能です。
デザイ ンのアー カ イ ブ
archive_design コ マ ン ド を使用す る と 、 プ ロ ジ ェ ク ト 全体を 1 つの圧縮 さ れた ZIP フ ァ イ ルに保存で き ます。 こ
の コ マ ン ド には、 ソ ースお よ び実行結果の保存に関 し てい く つかオプシ ョ ンがあ り ます。 基本的には、 プ ロ ジ ェ ク ト
全体が メ モ リ に コ ピー さ れ、 元のプ ロ ジ ェ ク ト の状態を保ちなが ら 、 1 つの ZIP フ ァ イ ルに圧縮 さ れてデ ィ ス ク に保
存 さ れます。 こ の機能は、 別の人にデザ イ ン記述を送信す る 場合や独立 し たエン テ ィ テ ィ と し て保存す る 場合に便利
です。 init.tcl フ ァ イ ルを使用 し てデザ イ ンに影響す る 特定パ ラ メ ー タ ーや変数を設定 し てい る 場合は、 こ の フ ァ
イ ル も 送信す る 必要があ り ます。
詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル のデザ イ ン入力』 (UG895) [参照 8]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : 異な る 種類のプ ロ ジ ェ ク ト を作成
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : プ ロ ジ ェ ク ト で ソ ース フ ァ イ ルを管理
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
48
第 2 章 : Vivado Design Suite の使用
ハー ド ウ ェ ア マネージ ャ ーのプ ロ ジ ェ ク ト および ソ ースの管理
Vivado ハー ド ウ ェ ア マネージ ャ ーのデバ ッ グお よ びプ ロ グ ラ ム機能を使用す る には、プ ロ ジ ェ ク ト の .bit フ ァ イ ル
お よ び .ltx フ ァ イ ルが主に必要な出力フ ァ イ ルです。 Vivado Lab Edition で こ のプ ロ ジ ェ ク ト を使用す る には、 こ れ
ら の フ ァ イ ルを リ ビ ジ ョ ン管理で管理す る こ と をお勧め し ます。
Vivado Design Suite プ ロ ジ ェ ク ト を使用する場合
Vivado ハー ド ウ ェ ア マネージ ャ ーのデバ ッ グお よ びプ ロ グ ラ ム機能に よ り 作成 さ れ る カ ス タ ム ダ ッ シ ュ ボー ド 、 ト
リ ガ ー、 キ ャ プ チ ャ 条件、 波形 コ ン フ ィ ギ ュ レ ー シ ョ ン フ ァ イ ル な ど は、 Vivado Design Suite プ ロ ジ ェ ク ト の
project_name.hw デ ィ レ ク ト リ に保存 さ れます。Vivado Design Suite プ ロ ジ ェ ク ト の project_name.hw デ ィ レ ク
ト リ を リ ビ ジ ョ ン管理を使用 し て管理す る こ と をお勧め し ます。 そ う す る と 、 プ ロ ジ ェ ク ト を Vivado Lab Edition で
使用す る ためにハン ド オ フす る 際に も 有益です。
Vivado Lab Edition ソ ースの管理
Vivado Lab Edition でプ ロ ジ ェ ク ト 用に作成 さ れたプ ロ ジ ェ ク ト デ ィ レ ク ト リ を リ ビ ジ ョ ン管理を使用 し て管理す る
こ と をお勧め し ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーのデバ ッ グお よ びプ ロ グ ラ ム機能に よ り 作成 さ れ る カ ス タ
ム ダ ッ シ ュ ボー ド 、 ト リ ガー、 キ ャ プチ ャ 条件、 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルな どは、 Lab Edition プ ロ ジ ェ
ク ト デ ィ レ ク ト リ の hw_* デ ィ レ ク ト リ に保存 さ れ ます。 Lab Edition プ ロ ジ ェ ク ト デ ィ レ ク ト リ にあ る .lpr フ ァ
イ ルがプ ロ ジ ェ ク ト フ ァ イ ルであ り 、 こ れを リ ビ ジ ョ ン管理で管理す る 必要があ り ます。 hw_* デ ィ レ ク ト リ が元の
場所にあれば、 こ のプ ロ ジ ェ ク ト フ ァ イ ルを開 く こ と に よ り プ ロ ジ ェ ク ト 全体を再作成で き ます。
デザイ ンおよび IP の最新 Vivado Design Suite リ リ ー
スへのア ッ プグ レー ド
デザ イ ン プ ロ セ ス の途中で Vivado Design Suite の新 し いバージ ョ ンが リ リ ース さ れ る 可能性は大いにあ り ます。 新 し
いバージ ョ ンにア ッ プデー ト す る か、 その ま ま同 じ バージ ョ ン を使用 し 続け る かは、 ユーザーが選択で き ます。 ザ イ
リ ン ク ス では最新 リ リ ース を使用す る こ と を推奨 し ますが、 必ず最新版を使用 し なければな ら ない と い う こ と ではあ
り ません。 ただ し 、 最新の 2 つの メ ジ ャ ー リ リ ース よ り も 前のバージ ョ ンはサポー ト さ れませんので、 ご注意 く だ さ
い。 新 リ リ ース には次が含まれます。
•
ソ フ ト ウ ェ ア バグ修正
•
新 し いバージ ョ ンの IP
•
ア ッ プデー ト さ れたデバ イ ス フ ァ イ ル (各種デバ イ ス の ス ピー ド フ ァ イ ルを含む)
•
ザ イ リ ン ク ス の新デバ イ ス
•
新 し い ソ フ ト ウ ェ ア機能
•
パフ ォーマ ン ス の改善
Vivado Design Suite を新 リ リ ース にア ッ プグ レー ド す る と 、Vivado Design Suite プ ロ ジ ェ ク ト も ア ッ プグ レー ド さ れま
す。 プ ロ ジ ェ ク ト お よ びデバ イ ス フ ァ イ ルは、 通常自動的にア ッ プグ レー ド さ れます。
IP を最新版にア ッ プデー ト す る か、 コ ン フ ィ ギ ュ レーシ ョ ン し たバージ ョ ンに固定す る かは、 ユーザーが選択で き ま
す。 バージ ョ ンが固定 さ れた IP を使用す る には、 IP の出力フ ァ イ ルを生成 し 、 それを ツールがア ッ プデー ト さ れた
後に も 使用 し ます。 こ の場合、 最新 リ リ ース で IP を コ ン フ ィ ギ ュ レーシ ョ ン し 直す こ と はで き ません。 コ ン フ ィ ギ ュ
レーシ ョ ン し 直すには、 元の ソ フ ト ウ ェ ア バージ ョ ン を使用する 必要があ り ます。 ザ イ リ ン ク ス では最新版 IP を使
用す る こ と を推奨 し ますが、 必ず最新版を使用 し なければな ら ない と い う こ と ではあ り ません。
IP サブシ ス テ ム (IP イ ン テ グ レー タ ーで作成) では、 含まれ る IP も 管理す る 必要があ り ます。 IP 出力フ ァ イ ルを生成
し たバージ ョ ンに固定す る か、 最新バージ ョ ンにア ッ プデー ト し ます。 特定の IP サブシ ス テ ムに含まれ る IP は、 す
べて同時にア ッ プグ レー ド す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
49
第 2 章 : Vivado Design Suite の使用
詳細は、 次の資料を参照 し て く だ さ い。
•
「IP (Intellectual Property) の使用」
•
『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 9]
•
『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参
照 26]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP のバージ ョ ン ア ッ プグ レー ド の管理
デザ イ ン を新 し い ソ フ ト ウ ェ ア リ リ ース用にア ッ プグ レー ド する には、『Vivado Design Suite ユーザー ガ イ ド : リ リ ー
ス ノ ー ト 、 イ ン ス ト ールお よ び ラ イ セ ン ス』 (UG973) [参照 3] を参照 し て く だ さ い。
プ ロ ジ ェ ク ト のア ッ プデー ト
プ ロ ジ ェ ク ト が以前のバージ ョ ンの Vivado Design Suite で保存 さ れてい る 場合、 プ ロ ジ ェ ク ト を開いた と き にア ッ プ
デー ト す る か ど う か を尋ね る ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。プ ロ ジ ェ ク ト を読み取 り 専用で開 く こ と も で き ま
す。 ア ッ プデー ト さ れ る のは、 新 し いプ ロ ジ ェ ク ト フ ォーマ ッ ト に関す る も ののみです。 IP ま たは IP サブシ ス テ ム
は自動的にはア ッ プデー ト さ れません。 リ リ ース ご と にプ ロ ジ ェ ク ト を最新の フ ォーマ ッ ト にア ッ プデー ト す る こ と
をお勧め し ます。
IP のア ッ プデー ト
新 し い リ リ ース の Vivado Design Suite で IP がア ッ プデー ト さ れてい る 場合は、 ア ッ プグ レー ド を推奨 し ます。 Vivado
IDE を使用す る と 、 通常、 最新版の IP にア ッ プグ レー ド で き ます。 変更 ロ グにア ッ プグ レー ド の詳細が記載 さ れて
い ます。 ア ッ プグ レー ド し ない場合は、 IP の出力フ ァ イ ルをすべて生成 し 、 アーカ イ ブ し てお く 必要があ り ます。 詳
細は、 「IP の管理」 を参照 し て く だ さ い。
保存 さ れてい る フ ァ イ ルを使用す る こ と はで き ますが、新 し いバージ ョ ンの Vivado Design Suite を使用 し て IP を再カ
ス タ マ イ ズす る こ と はで き ず、 追加の出力フ ァ イ ルを生成す る こ と も で き ません。
IP サブシ ス テ ムのア ッ プグ レー ド については、 「IP サブシ ス テ ムのア ッ プデー ト 」 を参照 し て く だ さ い。
IP サブ シ ス テムのア ッ プデー ト
サブシ ス テ ムで使用 さ れてい る IP が新 し い リ リ ース の Vivado Design Suite でア ッ プデー ト さ れてい る 場合は、ブ ロ ッ
ク デザ イ ン全体を ア ッ プグ レー ド す る こ と をお勧め し ます。 ア ッ プグ レー ド し ない場合は、 IP の出力フ ァ イ ルをす
べて生成 し 、 アーカ イ ブ し てお く 必要があ り ます。 ブ ロ ッ ク デザ イ ン を編集する こ と はで き ません。 詳細は、 「IP の
管理」 を参照 し て く だ さ い。
保存 さ れてい る フ ァ イ ルを使用す る こ と はで き ますが、新 し いバージ ョ ンの Vivado Design Suite を使用 し て IP を再度
カ ス タ マ イ ズす る こ と はで き ず、 追加の出力フ ァ イ ルを生成す る こ と も で き ません。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参
照 26] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
50
第 3章
ボー ド およびデバイ ス プ ラ ン ニ ング
ボー ド およびデバイ ス プ ラ ン ニ ン グの概要
ボー ド 上に FPGA を正 し く 配置 し 、 信号を特定の ピ ンに割 り 当て る こ と に よ り 、 シ ス テ ム全体のパフ ォーマ ン ス が大
幅に向上 し 、 消費電力お よ びデザ イ ン サ イ ク ルにかか る 時間が削減 さ れ ま す。 FPGA デバ イ ス と プ リ ン ト 回路基板
(PCB) 間の物理的お よ び論理的な通信を把握する こ と に よ り 、デバ イ ス上でのデー タ フ ロ ーを効率的な も のにす る こ
と がで き ます。
I/O コ ン フ ィ ギ ュ レーシ ョ ンが適切にプ ラ ン ニ ン グ さ れていない と 、 シ ス テ ム パフ ォーマ ン ス が低下 し 、 デザ イ ン ク
ロ ージ ャ に時間がかか り ます。 ザ イ リ ン ク ス では、 I/O プ ラ ン ニ ン グ を ボー ド プ ラ ン ニ ン グ と 共に考慮す る こ と を強
く お勧め し ます。
詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 4]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : 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 ピ ン の大 き なマ ト リ ッ ク ス内か ら 配線を取 り 出すの を回避す る ため、 デバ イ ス のエ ッ
ジに最 も 近いパ ッ ケージ ピ ンが適 し てい ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
51
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
電源分配シ ス テム
FPGA 設計におい て電源分配シ ス テ ム (PDS) を設計す る 際は、 独特の タ ス ク が必要 と な り ま す。 大型マ イ ク ロ プ ロ
セ ッ サな ど、 ほかの大型で集積度の高い回路のほ と ん ど には、 特定のバ イ パ ス キ ャ パシ タ 要件があ り ます。 こ れ ら の
デバ イ ス はハー ド シ リ コ ンで特定の タ ス ク を イ ンプ リ メ ン ト する ために設計 さ れてい る ので、それ ら の電源要件は固
定 し てお り 、 あ る 一定の範囲内で し か変動 し ません。
FPGA デバ イ ス には、 こ の よ う な特性はあ り ません。 FPGA デバ イ ス には、 複数の ク ロ ッ ク ド メ イ ン を使用 し た不定
の周波数で動作す る アプ リ ケーシ ョ ン を ほぼ無制限に イ ンプ リ メ ン ト で き ます。 そのため、 該当する デバ イ ス の PCB
デザ イ ン ガ イ ド [参照 35] を参照 し て、 デバ イ ス の PDS を十分に理解 し てお く こ と が重要です。
PDS の設計では、 主に次の事項を考慮す る 必要があ り ます。
•
消費電力予測に基づ き 、 ノ イ ズお よ び電流の要件を満たすために適切な電圧レ ギ ュ レー タ を選択 し ます。詳細は、
第 5 章の 「消費電力」 を参照 し て く だ さ い。
•
XADC 電源 (Vrefp お よ び Vrefn ピ ン) を設定 し ます。
•
PDN シ ミ ュ レーシ ョ ン を実行 し ます。 FPGA デバ イ ス には任意の機能を イ ンプ リ メ ン ト で き る ので、 PCB デザ イ
ン ガ イ ド [参照 35] で推奨 さ れ る デカ ッ プ リ ン グ キ ャ パシ タ の容量は ワ ース ト ケース の条件に基づいてい ます。
PDN シ ミ ュ レ ーシ ョ ン を実行す る と 、 電源が確実に推奨 さ れ る 動作範囲内にな る ために必要なデカ ッ プ リ ン グ
キ ャ パシ タ の容量を削減で き る 場合があ り ます。
PDN シ ミ ュ レーシ ョ ン の詳細は、 『S パ ラ メ ー タ ー モデルを使用 し た FPGA のパ ワ ー イ ン テ グ リ テ ィ のシ ミ ュ レー
シ ョ ン』 (WP411) [参照 49] を参照 し て く だ さ い。
PCB デザイ ン特定の考慮事項
PCB は、 FPGA デバ イ ス と の信号 イ ン タ ー フ ェ イ ス が最速 と な る よ う に設計す る 必要が あ り ま す。 高速信号は、 ト
レー ス の形状、 ビ ア、 損失、 お よ び ク ロ ス ト ー ク に大 き く 影響 さ れ ます。 こ れは、 特に多層 PCB で顕著です。 高速
イ ン タ ーフ ェ イ ス に対 し ては、 シ グナル イ ン テ グ リ テ ィ シ ミ ュ レーシ ョ ン を実行 し ます。 必要なパフ ォーマ ン ス を
得 る ため、 よ り よ い PCB 材料を使用 し た り 、 ト レース の形状を変更す る な ど、 ボー ド の再設計が必要な場合 も あ り
ます。
PCB を設計す る 際は、 次の事項を確認する こ と をお勧め し ます。
•
•
ギガ ビ ッ ト ト ラ ン シーバー (GT) の PCB 設計チ ェ ッ ク リ ス ト を確認 し ます。
°
詳細は、 該当す る デバ イ ス の ト ラ ン シーバー ユーザー ガ イ ド を参照 し て く だ さ い。
°
チ ャ ネル パ ラ メ ー タ ーを使用 し て SPICE ま たは IBIS-AMI シ ミ ュ レーシ ョ ン を実行 し ます。
メ モ リ IP お よ び PCIe® デザ イ ンのガ イ ド ラ イ ン を確認 し ます。
詳細は、 該当す る 製品ガ イ ド を参照 し て く だ さ い。
•
適切な PCB デカ ッ プ リ ン グ キ ャ パシ タ を使用 し ます。
詳細は、 該当す る デバ イ ス の PCB デザ イ ン ガ イ ド [参照 35] を参照 し て く だ さ い。
•
ノ イ ズ解析を実行 し ます。
Vivado® Design Suite I/O プ ラ ンナーで ピ ン配置に対す る SSN 解析を実行で き ます。
•
シ グナル イ ン テ グ リ テ ィ 解析を実行 し ます。
Vivado ツールでは、 デザ イ ンの IBIS フ ァ イ ルを出力で き ます。
•
不適切な終端が原因で発生す る オーバーシ ュ ー ト /ア ン ダーシ ュ ー ト がない こ と を確認 し ます。
•
Vivado にビル ト イ ン さ れてい る I/O ピ ン プ ラ ン ニ ン グの DRC を実行 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
52
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
•
デザ イ ン消費電力予測を実行 し ます。
°
総消費電力量を把握 し ます。
°
Vivado Design Suite には消費電力予測ツール (XPE) が含まれてお り 、 デザ イ ンの消費電力を解析す る のに利
用で き ます。
•
ボー ド に適切な電力分配シ ス テ ム (PDS) が使用 さ れてい る か を確認 し ます。
•
回路図の推奨事項を確認 し ます。
詳細は、 該当す る デバ イ ス の PCB デザ イ ン ガ イ ド [参照 35] を参照 し て く だ さ い。
ク ロ ッ ク リ ソ ースのプ ラ ン ニ ングおよび割 り 当て
ザ イ リ ン ク ス では、 デザ イ ンの最初の段階の 1 つ と し て、 ピ ン配置を選択す る 前に、 ク ロ ッ ク リ ソ ース を選択す る こ
と をお勧め し ます。 ク ロ ッ ク の選択に よ り 、 特定の ピ ン配置が必要 と な っ た り 、 その ロ ジ ッ ク の配置が決定 さ れ る 場
合があ り ます。 ク ロ ッ ク を適切に選択す る こ と に よ り 、 優れた結果を得 る こ と がで き ます。 次を考慮 し て く だ さ い。
•
リ ソ ース使用率の高い大型デバ イ ス では特に、 ク ロ ッ ク プ ラ ン ニ ン グ と 同時に制約を作成 し ます。
•
デザ イ ン ク ロ ージ ャ で必要な場合は、 ク ロ ッ ク リ ソ ース を手動で配置 し ます。手動配置が必要な場合は、第 4 章
の 「 ク ロ ッ キ ン グ ガ イ ド ラ イ ン」 に ク ロ ッ ク リ ソ ース の詳細が説明 さ れてい ます。
ク ロ ッ ク リ ソ ースの選択
ク ロ ッ キ ン グに関 し て適切な決定を下すには、 タ ーゲ ッ ト アーキ テ ク チ ャ リ ソ ース を あ る 程度理解 し てお く 必要が
あ り ます。 タ ーゲ ッ ト アーキ テ ク チ ャ リ ソ ース は、 デバ イ ス のジ ェ ネ レーシ ョ ンに よ っ て異な り ます。
7 シ リ ーズ デバイ ス
ザ イ リ ン ク ス 7 シ リ ーズ デバ イ ス には、 32 個のグ ロ ーバル ク ロ ッ ク バ ッ フ ァ ー (BUFG) が含まれてい ます。 こ れ ら
のグ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの半分は FPGA デバ イ ス の上半分にあ り 、 残 り の半分は下半分にあ り ます。
デバ イ ス の上半分にあ る I/O、 PLL、 お よ び MMCM は上半分にあ る 16 個の BUFG にのみ接続で き 、 デバ イ ス の下半
分にあ る I/O、 PLL、 お よ び MMCM は下半分にあ る 16 個の BUFG にのみ接続で き ます。
そのため、 ク ロ ッ ク リ ソ ース の I/O ピ ン を選択する 際は、 デバ イ ス の上半分 と 下半分に ク ロ ッ ク 入力をバ ラ ン ス よ く
配置 し て く だ さ い。 こ れは、 BUFGCTRL を使用 し て複数の ク ロ ッ ク か ら 1 つを選択す る 場合に も 重要です。 関連の
BUFGCTRL ク ロ ッ ク 入力はデバ イ ス の同 じ 半分に配置 し て、 同 じ BUFGCTRL に接続 さ れ る よ う に し ます。 SSI テ ク
ノ ロ ジ デバ イ ス を タ ーゲ ッ ト と す る 場合 も 同様の規則があ り ますが、 デバ イ ス の上半分 と 下半分ではな く 、 SLR の
上半分 と 下半分に適用 さ れます。 PLL ま たは MMCM の ど ち ら か を選択す る 場合は、 で き る 限 り PLL を使用 し た方が
ジ ッ タ ーを厳密に制御で き ます。 MMCM は、 PLL を使い切っ て し ま っ てい る 場合、 PLL に含ま れない MMCM のア
ド バン ス機能が必要な場合に使用 し ます。
BUFG コ ンポーネン ト は、 デザ イ ンの次の よ う な比較的厳し く ないほ と んどの ク ロ ッ ク 要件を満たす こ と がで き ます。
•
ク ロ ッ ク数
•
デザ イ ン パフ ォーマ ン ス
BUFG コ ン ポーネ ン ト は合成で簡単に推論で き 、 制限が少な く 、 ほ と ん ど の汎用 ク ロ ッ キ ン グに使用で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
53
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
ク ロ ッ キ ン グ要件が BUFG コ ン ポーネ ン ト の機能や数を超え てい る 場合、 よ り 良い ク ロ ッ キ ン グ特性が必要な場合
は、 次を推奨 し ます。
1.
ク ロ ッ ク のニーズ を使用可能な ク ロ ッ ク リ ソ ース に対 し て解析 し ます。
2.
タ ス ク に最適な リ ソ ース を選択お よ び制御 し ます。
詳細は、 第 4 章の 「 ク ロ ッ キ ン グ ガ イ ド ラ イ ン」 を参照 し て く だ さ い。
1 つまたは複数の リ ージ ョ ナル ク ロ ッ ク ピ ンの選択
イ ン タ ーフ ェ イ ス のサ イ ズに よ っ て、 シ ン グル領域 ク ロ ッ ク 兼用 (SRCC) ピ ン ま たは複数領域 ク ロ ッ ク 兼用 (MRCC)
ピ ン を使用で き ま す。 イ ン タ ーフ ェ イ ス が複数のバン ク に ま たが る 場合は、 MRCC ピ ン を使用す る 必要があ り ま す
が、 ク ロ ッ ク ネ ッ ト ワ ー ク を介す る 遅延が増加 し ます。
シ ン グル エン ド の ク ロ ッ ク は、 ク ロ ッ ク の差動ペアの P 側に接続す る 必要があ り ます。
UltraScale デバイ ス
UltraScale™ デバ イ ス では、 FPGA への ク ロ ッ ク 入力は通常次のカ テ ゴ リ に分類 さ れます。
•
グ ロ ーバル ク ロ ッ ク (GC) : PLL (バン ク ご と に 2 つ) ま たは MMCM (バン ク ご と の 1 つ) を駆動可能な汎用 ク ロ ッ
ク 入力のほ と ん ど で、 グ ロ ーバル ク ロ ッ ク ネ ッ ト ワ ー ク への専用ア ク セ ス があ り ます。 通常は、 挿入遅延お よ
び消費電力が最小限に抑え ら れ る よ う に、 こ の ク ロ ッ ク を I/O ま たはア レ イ の ロ ジ ッ ク 配置の近 く に配置す る こ
と が推奨 さ れますが、 ク ロ ッ キ ン グ構造に よ っ ては配置に多少の柔軟性があ り ます。
•
バ イ ト レーン ク ロ ッ ク (DBC QBC) : I/O ビ ッ ト ス ラ イ ス の専用 ク ロ ッ ク ピ ンで、 通常 メ モ リ イ ン タ ーフ ェ イ ス
お よ びその他の高速 ク ロ ッ キ ン グに使用 し ます。 こ れ ら は通常、 必要な接続のために適切に配置 さ れ る よ う 、 高
速 イ ン タ ーフ ェ イ ス を作成す る 同 じ IP に よ り 割 り 当て ら れます。
•
MGT 基準 ク ロ ッ ク (MGTREFCLK) : MGT (GTH ま たは GTY) イ ン タ ーフ ェ イ スへの専用差動基準 ク ロ ッ ク です。
こ の ク ロ ッ ク 入力は、 IBUFGDS_GTE3 コ ン ポーネ ン ト を介 し て専用ピ ンに供給する 必要があ り ます。
•
コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク (EMCCLK、 TCK、 I2C_SCLK、 CCLK) : コ ン フ ィ ギ ュ レーシ ョ ン、 JTAG、 ま
たは SYSMON イ ン タ ー フ ェ イ ス に関連す る 専用 ク ロ ッ ク です。 詳細は、 『UltraScale アーキ テ ク チ ャ コ ン フ ィ
ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 37] を参照 し て く だ さ い。
UltraScale デバ イ ス の ク ロ ッ キ ン グの詳細は、 第 4 章の 「 ク ロ ッ キ ン グ ガ イ ド ラ イ ン」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
54
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
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 ビデオ チ ュ ー ト リ アル : I/O 配置の概要
最終的な I/O コ ン フ ィ ギ ュ レーシ ョ ンがいつ必要かの判断
通常、 PCB ボー ド の製造ス ケ ジ ュ ールに よ り 、 最終的な FPGA I/O コ ン フ ィ ギ ュ レーシ ョ ンがいつ必要かが決定 さ れ
ます。 可能であれば、 初期 RTL デザ イ ンが作成 さ れ、 合成 さ れた後に I/O プ ラ ン ニ ン グ を実行 し ます。 こ れは、 合成
済みネ ッ ト リ ス ト には ク ロ ッ ク 情報が含まれてお り 、 ロ ジ ッ ク が構造レベルで定義 さ れ る か ら です。 合成後に I/O 配
置を実行す る こ と に よ り 、 多数の ク ロ ッ ク 関連の DRC を実行で き 、 I/O バン ク お よ び ク ロ ッ ク ロ ジ ッ ク が正 し く 割
り 当て ら れてい る か ど う か を確認で き ます。
ま た、 イ ンプ リ メ ン テーシ ョ ン を実行す る と 、 すべての I/O お よ び ク ロ ッ ク の規則に従っ てお り 、 ビ ッ ト ス ト リ ーム
を生成で き る こ と を確認で き ます。こ れが、最終的な I/O コ ン フ ィ ギ ュ レーシ ョ ンの検証に推奨 さ れ る プ ロ セ ス です。
ただ し 、デザ イ ン サ イ ク ルに よ っ てはそれほ ど時間がな く 、合成可能な RTL が作成 さ れ る 前に I/O コ ン フ ィ ギ ュ レー
シ ョ ン を定義す る こ と が必要な場合 も あ り ま す。 Vivado ツールでは RTL 作成前に I/O プ ラ ン ニ ン グ を実行で き ます
が、 こ の時点で実行可能な DRC チ ェ ッ ク は限 ら れます。 詳細は、 該当する デバ イ ス の PCB デザ イ ン ガ イ ド お よ び関
連の I/O ハー ド ウ ェ ア資料を参照 し て く だ さ い。 ま た、 I/O 規格 と ピ ン割 り 当て を含むダ ミ ーの最上位デザ イ ン を作
成す る と 、 バン ク 規則に関連す る DRC を実行す る のに役立ち ます。
RTL 作成前の I/O プ ラ ン ニ ン グ
合成済みネ ッ ト リ ス ト を生成す る 前に I/O コ ン フ ィ ギ ュ レーシ ョ ン を定義す る 必要があ る 場合は、 関連す る すべての
規則に従っ てい る こ と を注意深 く 確認 し て く だ さ い。Vivado ツールにはピ ン プ ラ ン ニ ン グ プ ロ ジ ェ ク ト 環境があ り 、
CSV ま たは XDC フ ォーマ ッ ト の I/O 定義フ ァ イ ルを イ ン ポー ト で き ます。 ポー ト 宣言のみを定義 し たダ ミ ー RTL を
作成す る こ と も で き ます。 入力信号 と 出力信号の同時ス イ ッ チ ノ イ ズ (SSN) への影響は異な る ので、 ポー ト の方向が
指定 さ れてい る と SSN 解析が よ り 正確な も のにな り ます。
I/O ポー ト は イ ン タ ラ ク テ ィ ブに作成お よ び設定する こ と も 可能です。 基本的な I/O バン ク DRC ルール も 提供 さ れて
い ます。
該当す る デバ イ ス の PCB デザ イ ン ガ イ ド [参照 35] を参照 し て、 I/O コ ン フ ィ ギ ュ レーシ ョ ンが適切であ る こ と を確
認 し て く だ さ い。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 4]
の 「RTL 作成前の I/O プ ラ ン ニ ン グ」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
55
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
ネ ッ ト リ ス ト ベースの I/O プ ラ ン ニ ング
I/O お よ び ク ロ ッ ク ロ ジ ッ ク 制約を設定する のに推奨 さ れ る デザ イ ン サ イ ク ルは、 デザ イ ンの合成後です。 ネ ッ ト リ
ス ト には、制約設定用に ク ロ ッ ク ロ ジ ッ ク パス があ り ます。I/O お よ び ク ロ ッ ク ロ ジ ッ ク の DRC も よ り 包括的です。
該当す る デバ イ ス の PCB デザ イ ン ガ イ ド [参照 35] を参照 し て、 I/O コ ン フ ィ ギ ュ レーシ ョ ンが適切であ る こ と を確
認 し て く だ さ い。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 4]
の 「ネ ッ ト リ ス ト I/O プ ラ ン ニ ン グ」 を参照 し て く だ さ い。
代替デバイ スの定義
デザ イ ンの初期プ ラ ン ニ ン グでは、 最終的なデバ イ ス のサ イ ズ を予測す る のは困難です。 デザ イ ン サ イ ク ルの過程で
ロ ジ ッ ク が追加ま たは削除 さ れ、 デバ イ ス サ イ ズの変更が必要 と な る 場合があ り ます。
Vivado ツールでは代替デバ イ ス を定義で き 、 パ ッ ケージが同 じ であれば、 I/O コ ン フ ィ ギ ュ レーシ ョ ンが選択 さ れた
デバ イ スすべてで互換 し た も のにな る よ う 定義 さ れます。
重要 : デバ イ ス は、 同 じ パ ッ ケージ を使用する も のであ る 必要があ り ます。
デザ イ ン を移行す る 際の リ ス ク を軽減す る には、 デザ イ ン プ ロ セ ス の初期段階でデバ イ ス の選択、 ピ ン配置の選択、
お よ びデザ イ ンの基準を注意深 く 計画 し ます。同 じ パ ッ ケージのサ イ ズの異な る デバ イ ス に移行す る 際は、ピ ン配置、
ク ロ ッ ク 、 お よ び リ ソ ース管理を考慮 し ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ
ラ ン ニ ン グ』 (UG899) [参照 4] の 「互換性のあ る 代替デバ イ ス の指定」 を参照 し て く だ さ い。
ピ ン割 り 当て
適切な ピ ン配置を選択す る こ と は、 デザ イ ン ロ ジ ッ ク の適切な配置につなが り ます。 不適切な配置は、 配線が長 く な
り 、 消費電力が増加 し 、 パフ ォーマ ン ス が低下する 原因 と な り ます。 適切な ピ ン配置を選択する こ と は、 特に大型の
FPGA デバ イ ス で重要です。 一部の大型 FPGA デバ イ ス は複数のダ イ に ま たが る ので、 ピ ン配置が分散 し てい る と 関
連の信号の伝送距離が長 く な り ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン
グ』 (UG899) [参照 4] の 「I/O ピ ン プ ラ ン ニ ン グ」 を参照 し て く だ さ い。
ピ ン配置にザイ リ ン ク ス ツールを使用
ザ イ リ ン ク ス ツールでは、 イ ン タ ラ ク テ ィ ブにデザ イ ン プ ラ ン ニ ン グお よ びピ ン選択を実行で き ます。 ツールが ど
れだけ効率的であ る かは、 供給す る 情報に よ っ て決ま り ます。 Vivado デザ イ ン解析機能を使用する と 、 ピ ン配置に役
立ち ます。 こ れ ら の機能では、 I/O 配置を グ ラ フ ィ カルに表示 し た り 、 ク ロ ッ ク と I/O コ ン ポーネ ン ト の関係を表示
で き 、 ピ ンの選択を解析す る デザ イ ン ルール チ ェ ッ ク (DRC) も 提供 さ れてい ます。
デザ イ ン バージ ョ ン を使用で き る 場合は、 最上位フ ロ アプ ラ ン を作成 し てデバ イ ス内のデー タ フ ロ ーをすばや く 解
析で き ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参
照 21] を参照 し て く だ さ い。
必要な情報
ツールが効果的に機能す る ためには、 I/O の特性お よ び ト ポ ロ ジに関する 情報を で き る だけ多 く 供給す る 必要があ り
ます。 I/O 規格、 駆動電流、 スルー レー ト な ど の電気特性を指定す る 必要があ り ます。
ま た、 ク ロ ッ ク の ト ポ ロ ジや タ イ ミ ン グ制約な ど の関連情報 も 考慮す る 必要があ り ます。
「 ク ロ ッ ク リ ソ ース の選択」 で示 し た よ う に、 ク ロ ッ キ ン グはピ ン配置に、 ピ ン配置は ク ロ ッ キ ン グに大 き く 影響 し
ます。
I/O の電気特性の指定方法は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参
照 4] の 「I/O ポー ト の定義 と 設定」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
56
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
ピ ン配置の選択
一部の信号ピ ン配置は、 次に説明す る よ う に、 注意 し て選択す る こ と をお勧め し ます。
イ ン タ ー フ ェ イ ス デー タ ピ ン、 ア ド レ ス ピ ン、 お よび制御ピ ン
同 じ イ ン タ ーフ ェ イ ス のデー タ ピ ン、 ア ド レ ス ピ ン、制御ピ ン を同 じ バン ク にグループ化 し ます。 こ れ ら の コ ン ポー
ネ ン ト を同 じ バン ク にグループ化で き ない場合、隣接す る バン ク にグループ化 し ます。ス タ ッ ク ド シ リ コ ン イ ン タ ー
コ ネ ク ト (SSI) テ ク ノ ロ ジ デバ イ ス では、 1 つの イ ン タ ーフ ェ イ ス に含まれ る すべての ピ ン を同 じ SLR にグループ化
し ます。
イ ン タ ー フ ェ イ ス制御信号
イ ン タ ーフ ェ イ ス制御信号 ( ク ロ ッ ク 、 イ ネーブル、 リ セ ッ ト 、 ス ト ロ ーブ) を、 制御の対象 と な る デー タ バ ス の中
央に配置 し ます。
デザイ ン全体で使用 さ れる フ ァ ン アウ ト の大き い制御信号
デザ イ ン全体で使用 さ れ る フ ァ ン ア ウ ト の大 き い制御信号を、 デバ イ ス中央に配置 し ます。
SSI テ ク ノ ロ ジ デバ イ ス では、 こ れ ら の信号は、 駆動先の SLR コ ン ポーネ ン ト の中央にあ る SLR に配置 し ます。
コ ン フ ィ ギ ュ レーシ ョ ン ピ ン
効率の良いシ ス テ ム を設計す る には、 シ ス テ ム要件に最適な FPGA コ ン フ ィ ギ ュ レーシ ョ ン モー ド を選択す る 必要
があ り ます。 次の事項を考慮 し て く だ さ い。
•
専用ま たは多目的 コ ン フ ィ ギ ュ レーシ ョ ン ピ ン
ど の コ ン フ ィ ギ ュ レーシ ョ ン モー ド で も 、 一部の FPGA ピ ン を専用ピ ン と し て使用 し 、 多目的ピ ン を コ ン フ ィ
ギ ュ レーシ ョ ン中に一時的に使用で き ます。 多目的ピ ンは、 コ ン フ ィ ギ ュ レーシ ョ ンが完了す る と 、 汎用ピ ンに
な り ます。
•
コ ン フ ィ ギ ュ レーシ ョ ン モー ド に よ り 、 一部の FPGA I/O バン ク の電圧が制限 さ れ る こ と があ り ます。
•
異な る コ ン フ ィ ギ ュ レーシ ョ ン ピ ンに適 し た終端を選択 し ます。
•
コ ン フ ィ ギ ュ レーシ ョ ン ピ ンのプルア ッ プ ま たはプルダ ウ ン抵抗に推奨 さ れ る 値を使用 し ます。
推奨 : コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク は低速ですが、ボー ド 上でシ グナル イ ン テ グ リ テ ィ 解析を実行 し て信号に ノ
イ ズがない こ と を確認 し て く だ さ い。
コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ンは複数あ り 、柔軟性があ り ますが、 各シ ス テ ムに最適な ソ リ ュ ーシ ョ ンがあ る の
が一般的です。 コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ン を選択する 際は、 次を考慮 し ます。
•
セッ ト アップ
•
ス ピー ド
•
コス ト
•
複雑 さ
詳細は、 「 コ ン フ ィ ギ ュ レ ーシ ョ ン」 を 参照 し て く だ さ い。 FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン オプ シ ョ ン の詳細は、
『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
57
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
メ モ リ イ ン ターフ ェ イス
ザ イ リ ン ク ス メ モ リ IP を使用す る 場合は、追加の I/O ピ ン プ ラ ン ニ ン グ手順が必要です。IP を カ ス タ マ イ ズ し た後、
Vivado IDE でエ ラ ボ レー ト 済みデザ イ ン ま たは合成済みデザ イ ン を開いて最上位 IP ポー ト を物理的なパ ッ ケージ ピ
ンに割 り 当て ます。
各 メ モ リ IP に関連す る ポー ト はすべて I/O ポー ト イ ン タ ーフ ェ イ ス と し て グループ化 さ れてお り 、 簡単に特定お よ
び割 り 当てで き ます。 メ モ リ バン ク /バ イ ト プ ラ ンナーが提供 さ れてお り 、 メ モ リ I/O ピ ン グループ を物理的なデバ
イ ス ピ ンのバ イ ト レーンに割 り 当て る こ と がで き ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 4] の 「UltraScale デ
バ イ ス の メ モ リ IP の I/O プ ラ ン ニ ン グ」 を参照 し て く だ さ い。
デザ イ ンお よ びピ ン配置のガ イ ド ラ イ ン については、 『Zynq-7000 AP SoC お よ び 7 シ リ ーズ FPGA メ モ リ イ ン タ ー
フ ェ イ ス ソ リ ュ ーシ ョ ン ユーザー ガ イ ド 』 (UG586) [参照 47] お よ び『LogiCORE IP UltraScale アーキ テ ク チ ャ ベース
FPGA メ モ リ イ ン タ ーフ ェ イ ス ソ リ ュ ーシ ョ ン製品ガ イ ド 』 (PG150) [参照 48] を参照 し て く だ さ い。 こ れ ら のガ イ ド
で推奨 さ れ る ト レー ス長を使用 し 、 正 し い終端が使用 さ れてい る こ と を確認 し て、 メ モ リ IP I/O 割 り 当ての後 DRC
を実行 し て ピ ン配置を検証 し て く だ さ い。
ギガ ビ ッ ト ト ラ ン シーバー (GT)
ギガ ビ ッ ト ト ラ ン シーバー (GT) には、 特定の ピ ン配置要件があ り ます。 複数の GT で基準 ク ロ ッ ク を共有で き る 可
能性が あ り ま す。 7 シ リ ーズ デバ イ ス では ク ワ ッ ド の基準 ク ロ ッ ク を 隣接す る ク ワ ッ ド か ら 供給す る こ と がで き 、
UltraScale デバ イ ス では ク ワ ッ ド の基準 ク ロ ッ ク を 2 つ上ま たは 2 つ下ま での ク ワ ッ ド か ら 供給で き ます。 ス タ ッ ク
ド シ リ コ ン イ ン タ ー コ ネ ク ト (SSI) テ ク ノ ロ ジ を サ ポー ト す る デバ イ ス では、 基準 ク ロ ッ ク の共有は SLR (Super
Logic Region) 内に制限 さ れます。 コ アの生成には GT ウ ィ ザー ド を使用する こ と をお勧め し ます。 推奨 さ れ る ピ ン配
置は、 該当す る 製品ガ イ ド を参照 し て く だ さ い。
ク ロ ッ ク リ ソ ース をバ ラ ン ス よ く 使用す る ため、 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] を参照 し て く だ さ い。
CCIO および CMT の使用
デバ イ ス の上半分 と 下半分にあ る BUFG コ ン ポーネ ン ト へのア ク セ ス のバ ラ ン ス を取る ため、デバ イ ス の上半分 と 下
半分にあ る CCIO と CMT がバ ラ ン ス よ く 使用 さ れ る よ う に し て く だ さ い。 SSI テ ク ノ ロ ジ デバ イ ス では、 SLR 内の
上半分 と 下半分の CCIO コ ン ポーネ ン ト ま たは CMT コ ン ポーネ ン ト が、 ほかの SLR コ ン ポーネ ン ト に対 し てバ ラ ン
ス よ く 使用 さ れ る よ う に し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
58
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
イ ン タ ー フ ェ イ スの帯域幅の検証
小型の コ ネ ク テ ィ ビ テ ィ デザ イ ン を作成 し 、 FPGA 上の各 イ ン タ ーフ ェ イ ス を検証 し ます。 こ の よ う な小型のデザ イ
ンでは、 特定のハー ド ウ ェ ア イ ン タ ーフ ェ イ ス のみが使用 さ れます。 デザ イ ンの内部が作成 さ れてい る 必要はあ り ま
せん。 ハー ド ウ ェ ア イ ン タ ーフ ェ イ ス ご と に個別のデザ イ ン を作成 し 、 ハー ド ウ ェ ア を必要な速度で全帯域幅で実行
し ます。 FPGA 内部ループバ ッ ク ま たは単純なチ ェ ッ カーを使用 し て、 必要な速度でデー タ が正 し く 転送 さ れ る こ と
を確認 し ます。 こ れ ら のデザ イ ン を ボー ド 上の FPGA イ ン タ ーフ ェ イ ス を設計する 際に使用 し て、 イ ン タ ーフ ェ イ ス
と ボー ド が必要な速度で動作す る こ と を確認 し ます。
こ の よ う な小型のテ ス ト デザ イ ンは、 Vivado ツールで短時間で イ ンプ リ メ ン ト で き ます。 こ の フ ロ ーを使用す る と 、
選択 し た I/O の配置が有効であ る か、 イ ン タ ーフ ェ イ ス の タ イ ミ ン グ要件が満た さ れてい る か を検証で き 、 発生す る
可能性のあ る DRC 違反や タ イ ミ ン グ問題を ピ ン配置を最終決定 し なが ら 確認で き ます。
一部の イ ン タ ーフ ェ イ ス IP コ アでは、 Vivado ツールでテ ス ト デザ イ ン (SERDES の IBERT、 PCIe のサンプル デザ イ
ン な ど) を生成で き ます。
こ れ ら のデザ イ ンは、 デザ イ ン全体のビ ッ ト ス ト リ ーム を生成す る 前に、 各ハー ド ウ ェ ア コ ン ポーネ ン ト を シ ス テ ム
検証す る 際に も 使用で き ます。
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 には、 ほ と ん ど のザ イ リ ン ク ス FPGA デバ イ ス に共通のア ク テ ィ ブ回路が含ま れ ます。 こ の回路には、 次の
も のが多数含まれてい ます。
•
6 入力 LUT
•
レジス タ
•
I/O コ ン ポーネ ン ト
•
ギガ ビ ッ ト ト ラ ン シーバー (GT)
•
ブロ ッ ク メ モ リ
•
DSP ブ ロ ッ ク
•
その他のブ ロ ッ ク
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
59
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
SLR コ ンポーネ ン ト
1 つの SSI テ ク ノ ロ ジ デバ イ ス は、 複数の SLR コ ン ポーネ ン ト で構成 さ れてい ます。
SLR コ ン ポーネ ン ト は、 イ ン タ ーポーザー上に縦に積み重ね ら れてい ます。
X-Ref Target - Figure 3-1
図 3-1 : 1 つの SSI SLR
複数の SLR コ ン ポーネ ン ト が縦に積み重ね ら れ、 1 つの SSI テ ク ノ ロ ジ デバ イ ス を構成 し てい ます。
•
1 番下の SLR は SLR0 です。
•
上に行 く ほ ど番号が増加 し ます。
た と えば、 XC7V2000T デバ イ ス には 4 つの SLR があ り ます。 1 番下の SLR は SLR0 です。 SLR0 の上の SLR は SLR1
で、 SLR1 の上の SLR は SLR2 です。 1 番上の SLR は SLR3 です。
ザ イ リ ン ク ス ツールではグ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス (GUI) お よ びレ ポー ト で SLR コ ン ポーネ ン ト が明
確に識別 さ れます。
SLR の名前
タ ーゲ ッ ト デバ イ ス で SLR の名前が ど の よ う に付け ら れてい る かを理解する こ と は、 次の作業で重要 と な り ます。
•
ピ ンの選択
•
フ ロ アプ ラ ン
•
タ イ ミ ン グお よ びその他の レ ポー ト の解析
•
ロ ジ ッ ク の位置、 その ロ ジ ッ ク の ソ ース ま たはデス テ ィ ネーシ ョ ンの特定
Vivado Tcl コ マ ン ド get_slrs を使用 し て、 特定のデバ イ ス の SLR に関す る 特定の情報を取得で き ます。 た と えば、
次の コ マ ン ド を使用 し ます。
°
デバ イ ス の SLR 数を取得す る には、 「llength [get_slrs]」 を使用 し ます。
°
my_cell が配置 さ れてい る SLR を取得す る には、 「get_slrs -of_objects [get_cells my_cell]」
を使用 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
60
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
X-Ref Target - Figure 3-2
図 3-2 : Vivado ツールでの XC7V2000T デバイ スの表示
マ ス タ ー SLR
各 SSI テ ク ノ ロ ジ デバ イ ス には、 マ ス タ ー SLR が 1 つあ り ます。 次の表を参照 し て く だ さ い。
表 3-1 : マス タ ー SLR のイ ンデ ッ ク ス リ フ ァ レ ン ス
デバイ ス
デバイ ス ビ ュ ーアー
XC7V2000T
SLR1
XC7VX1140T
SLR1
XC7VH580T
SLR0
XC7VH870T
SLR2
XCKU085
SLR0
XCKU115
SLR0
XCVU125
SLR0
XCVU160
SLR1
XCVU190
SLR1
XCVU440
SLR1
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
61
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
マ ス タ ー SLR には、デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン を開始す る プ ラ イ マ リ コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク と 、
すべての SLR コ ン ポーネ ン ト が含まれてい ます。
マ ス タ ー SLR には、 次の専用回路が含まれます。
•
DNA_PORT
•
EFUSE_USER
こ れ ら の コ ン ポーネ ン ト を使用す る と 、 配置配線に よ り 関連の ピ ンお よ び ロ ジ ッ ク が適切な SLR に割 り 当て ら れ ま
す。 通常、 追加の操作は必要あ り ません。
ヒ ン ト : Vivado Design Suite で ど の SLR がマ ス タ ー SLR であ る か を確認す る には、 次の Tcl コ マ ン ド を使用 し ます。
get_slrs -filter IS_MASTER
次の図に、 XC7V2000T デバ イ ス のマ ス タ ー SLRを示 し ます。
X-Ref Target - Figure 3-3
6/5
6/5
0DVWHU
6/5
6/5
6/5
;
図 3-3 : XC7V2000T デバイ スのマ ス タ ー SLR
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
62
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
Virtex-7 デバイ ス フ ァ ミ リ の SLR コ ンポーネ ン ト
Virtex®-7 デバ イ ス フ ァ ミ リ では、 2 種類の SLR コ ン ポーネ ン ト が使用 さ れます。
•
「XC7V2000T デバ イ ス」
•
「XC7VX1140T お よ び Virtex-7 HT デバ イ ス フ ァ ミ リ 」
XC7V2000T デバイ ス
XC7V2000T デバ イ ス では、 次を含む SLR が使用 さ れます。
•
約 500 個の ロ ジ ッ ク セル
•
次の コ ン ポーネ ン ト の組み合わせ
°
I/O
°
ブ ロ ッ ク RAM
°
DSP ブ ロ ッ ク
°
GTX ト ラ ン シーバー
°
その他のブ ロ ッ ク
XC7VX1140T および Virtex-7 HT デバイ ス フ ァ ミ リ
XC7VX1140T デバ イ スお よ び Virtex-7 HT デバ イ ス フ ァ ミ リ では、 次を含む SLR が使用 さ れます。
•
約 290,000 個の ロ ジ ッ ク セル
•
GTH ト ラ ン シーバー
•
XC7V2000T デバ イ ス の SLR コ ン ポーネ ン ト よ り も 多数のブ ロ ッ ク RAM お よ び DSP コ ン ポーネ ン ト
表 3-2 : Virtex-7 の各 SLR タ イ プに含まれる主要な リ ソ ースの数
Virtex-7 T SLR
Virtex-7 XT/HT SLR
ロ ジ ッ ク セル
488,640
284,800
スライス
76,350
44,500
ブ ロ ッ ク RAM
323
470
DSP ス ラ イ ス
540
840
ク ロ ッ ク 領域/MMCM
6
6
I/O
300
300
ト ラ ン シーバー
12
24
SLR 間の イ ン タ ーコ ネ ク ト
13,440
10,560
注記 : 実際にボ ンデ ィ ン グ さ れてい る I/O お よ び ト ラ ン シーバーの数は、 選択 し たデバ イ スお よ びパ ッ ケージに よ っ
て異な る 可能性があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
63
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
UltraScale デバイ ス フ ァ ミ リ の SLR コ ンポーネ ン ト
UltraScale デバ イ ス フ ァ ミ リ では、 3 種類の SLR コ ン ポーネ ン ト が使用 さ れます。
•
XCKU085 お よ び XCKU115
•
XCVU125、 XCVU160、 XCVU190
•
XCVU440
XCKU085 および XCKU115
XCKU085 お よ び XCKU115 デバ イ ス では、 次を含む SLR が使用 さ れます。
•
約 580 個の ロ ジ ッ ク セル
•
GTH ト ラ ン シーバー
•
多数の DSP
XCVU125、 XCVU160、 XCVU190
XCVU125、 XCVU160、 XCVU190 デバ イ ス では、 次を含む SLR が使用 さ れます。
•
約 625,000 個の ロ ジ ッ ク セル
•
数個の GTH お よ び GTY ト ラ ン シーバー
•
数個の PCIe、 Interlaken、 お よ び イ ーサネ ッ ト 専用ブ ロ ッ ク
XCVU440
XCVU440 デバ イ ス の SLR には、 次が含まれます。
•
約 150 万個の ロ ジ ッ ク セル
•
数個の SelectIO™ イ ン タ ーフ ェ イ ス リ ソ ース
•
GTH ト ラ ン シーバー
表 3-3 : UltraScale デバイ スの各 SLR タ イ プに含まれる主要な リ ソ ースの数
Kintex® SLR
XCVU190
XCVU440
ロ ジ ッ ク セル
580,440
626,640
1,477,560
CLB
41,460
44,760
105,540
ブ ロ ッ ク RAM
1,080
1260
840
DSP ス ラ イ ス
2,760
600
960
ク ロ ッ ク 領域/MMCM
30
30
45
I/O
624
520
520
GTH ト ラ ン シーバー
32
20
30
GTY ト ラ ン シーバー
0
20
0
SLR 間の イ ン タ ーコ ネ ク ト
17,280
17,280
25,920
注記 : 実際にボ ンデ ィ ン グ さ れてい る I/O お よ び ト ラ ン シーバーの数は、 選択 し たデバ イ スお よ びパ ッ ケージに よ っ
て異な る 可能性があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
64
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
シ リ コ ン イ ン タ ーポーザー
シ リ コ ン イ ン タ ーポーザーは、 SSI テ ク ノ ロ ジ デバ イ ス内の不動態層です。
こ の層は、 SLR コ ン ポーネ ン ト 間の次の も のを配線 し ます。
•
コ ン フ ィ ギ ュ レーシ ョ ン
•
グ ロ ーバル ク ロ ッ ク
•
汎用 イ ン タ ー コ ネ ク ト
シ リ コ ン イ ン タ ーポーザーには、 次の も のが含まれます。
•
電源お よ びグ ラ ン ド
•
コ ン フ ィ ギ ュ レーシ ョ ン
•
ダ イ 間の接続
•
その他の必要な接続
SLR にはア ク テ ィ ブ回路があ り ます。 シ リ コ ン イ ン タ ーポーザーは、 Si 貫通電極 (TSV) コ ン ポーネ ン ト を使用 し て
パ ッ ケージ基板に実装 さ れ ま す。 こ れ ら の コ ン ポーネ ン ト は、 FPGA デバ イ ス の回路をパ ッ ケージ ボールに接続 し
ま す。
シ リ コ ン イ ン タ ーポーザーは、 SLR コ ン ポーネ ン ト と パ ッ ケージ基板の間の導管で、 次の も の をデバ イ ス パ ッ ケー
ジに接続 し ます。
•
電源お よ びグ ラ ン ド 接続
•
I/O コ ン ポーネ ン ト
•
ギガ ビ ッ ト ト ラ ン シーバー (GT)
X-Ref Target - Figure 3-4
図 3-4 : シ リ コ ン イ ン タ ーポーザー
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
65
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
SLL (Super Long Line) 配線
•
1 つの SLR か ら 別の SLR に信号を転送する ための汎用接続を提供 し ます。
•
SLL 配線は イ ン タ ーポーザー上に配置 さ れてい ます。
•
SLR の イ ン タ ーコ ネ ク ト に直接接続 さ れてい る マ イ ク ロ バンプに よ り 、SLR コ ンポーネン ト に接続 さ れてい ます。
•
SLR の 12 本の垂直配線の中央に接続 さ れてい ます。
SLL 接続
7 シ リ ーズ デバ イ ス では、 各 SLL コ ン ポーネ ン ト は 50 個の イ ン タ ー コ ネ ク ト タ イ ルの高 さ に及びます (50 個の ス ラ
イ ス コ ン ポーネ ン ト に相当)。 こ れは、 ザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス の 1 ク ロ ッ ク 領域の高 さ です。
UltraScale デバ イ ス では、各 SLL は 60 個の Laguna タ イ ルの高 さ に及びます (60 個の CLB コ ン ポーネ ン ト に相当)。 こ
れは、 UltraScale デバ イ ス の 1 ク ロ ッ ク 領域の高 さ です。
7 シ リ ーズの SLR に隣接す る ク ロ ッ ク 領域では、 ク ロ ッ ク 領域の各 イ ン タ ー コ ネ ク ト タ イ ルに、 隣接する SLR に接
続す る イ ン タ ー コ ネ ク ト ポ イ ン ト が 1 つあ り ます。 UltraScale デバ イ ス では、 SLL が Laguna と 呼ばれ る 専用 イ ン タ ー
フ ェ イ ス に接続 さ れてい る 点が 7 シ リ ーズ と 異な り ます。Laguna イ ン タ ーフ ェ イ ス には専用レ ジ ス タ があ り 、SLR を
ま た ぐ のに使用 し て高速パ イ プ ラ イ ン イ ン タ ーフ ェ イ ス を可能にする か、バ イ パ ス し て低速のパ イ プ ラ イ ン な し の イ
ン タ ーフ ェ イ ス にす る か を選択で き ます。
表 3-4 : 各 SLR 間の SLL コ ンポーネ ン ト 数
デバイ ス
SLL コ ンポーネ ン ト 数
7V2000T
13,440
7VX1140T
10,560
KU085
17,280
KU115
17,280
VU125
17,280
VU160
17,280
VU190
17,280
VU440
25,920
7VX1140T デバ イ ス には DSP お よ びブ ロ ッ ク メ モ リ の列が多いので、 7V2000T よ り も SLL コ ン ポーネ ン ト 数が少な
く な っ てい ます。 同 じ エ リ アの イ ン タ ー コ ネ ク ト タ イ ルの代わ り に、 こ れ ら の列が配置 さ れてい ます。 UltraScale デ
バ イ ス には、 SLR に隣接す る 各 ク ロ ッ ク 領域の SLL 数は固定 さ れてい ます。 各 ク ロ ッ ク 領域には、 2880 個の SLL が
あ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
66
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
X-Ref Target - Figure 3-5
48
䜲䞁䝍䞊䝫䞊䝄䞊
図 3-5 : 7 シ リ ーズ SSI デバイ スの SLR 間にず ら し て配置 さ れている SLL
SLR コ ン ポーネ ン ト の比率お よ びギ ャ ッ プのサ イ ズは図示のための も ので、 実際のギ ャ ッ プは こ れ よ り 小 さ く な り
ま す。
7 シ リ ーズ デバ イ ス では、SLL コ ン ポーネ ン ト は 12 本の垂直 ロ ン グ ラ イ ン (SLR の イ ン タ ー コ ネ ク ト タ イ ル 12 個に
及ぶ) の中点で SLR に接続 さ れてい ます。 UltraScale デバ イ ス では、 専用 Laguna イ ン タ ーフ ェ イ ス が使用 さ れます。
こ の接続では、 SLR か ら 隣接す る SLR への SLL に入出力す る のに最適な位置が 3 つあ り 、 パフ ォーマ ン スや消費電
力にほ と ん ど影響を与えずに柔軟な配置が可能です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
67
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
X-Ref Target - Figure 3-6
- SLL (Super Long Line)
- 12 ᮏ䛾ᆶ┤䝻䞁䜾㻌䝷䜲䞁
䜲䞁䝍䞊䝫䞊䝄䞊
- SLR㻌ቃ⏺䛻㏆䛔䝻䞁䜾㻌䝷䜲䞁䛿㻌
㻌㻌㻌U㻌䝍䞊䞁
X12430
図 3-6 : SLR の SLL 接続
伝搬の制限
ヒ ン ト : SLR 間の高速伝搬では、 SLR 境界を ま た ぐ信号に レ ジ ス タ を付け る こ と を考慮 し て く だ さ い。
SLR コ ン ポーネ ン ト 間では、 SLL 信号が唯一のデー タ 接続です。
次の も のは SLR コ ン ポーネ ン ト 間では伝搬 さ れません。
•
キ ャ リ ー チ ェ ーン
•
DSP カ ス ケー ド
•
ブ ロ ッ ク RAM ア ド レ ス のカ ス ケー ド
•
DCI カ ス ケー ド やブ ロ ッ ク RAM カ ス ケー ド な ど のその他の専用接続
ツールでは通常、 伝搬に関す る こ の制限が考慮 さ れ ます。 長い DSP カ ス ケー ド を構築 し 、 それ ら の ロ ジ ッ ク を SLR
境界の近 く に手動配線す る 場合やデザ イ ンの ピ ン配置を指定す る 場合に、 デザ イ ンが適切に配線 さ れ、 デザ イ ン要件
が満た さ れ る よ う にす る には、 こ の制限を考慮す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
68
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
SLR の使用に関する考慮事項
Vivado イ ンプ リ メ ン テーシ ョ ン ツールでは、 ロ ジ ッ ク を複数の SLR に分割す る ための特別なアルゴ リ ズ ムが使用 さ
れます。 SSI テ ク ノ ロ ジ デバ イ ス を タ ーゲ ッ ト にする デザ イ ンの タ イ ミ ン グ ク ロ ージ ャ が困難な場合は、 次のガ イ ド
ラ イ ン を使用す る こ と で改善で き ます。
タ イ ミ ン グ ク ロ ージ ャ お よ び コ ンパ イ ル時間を改善す る には、 Pblock を使用 し て ロ ジ ッ ク を各 SLR に割 り 当て て、
その各 SRL 内で フ ァ ブ リ ッ ク リ ソ ース タ イ プすべての中か ら 過度に使用率が高い も のがない よ う に し ます。 た と え
ば、 BRAM 使用率 70% のデザ イ ンで、 BRAM リ ソ ース が SLR 全体でバ ラ ン ス よ く 配置 さ れてお ら ず、 1 つの SLR で
BRAM の 85% 以上が使用 さ れてい る 場合、 タ イ ミ ン グ ク ロ ージ ャ 問題が発生す る 可能性があ り ます。
次の 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 ハー ド IP ま たは メ モ リ イ ン タ ーフ ェ イ ス コ ン ト ロ ー ラ ー)。デー タ フ ロ ーが SLR の境界を何度 も ま たが る こ
と が な い よ う に、 ハー ド IP の位置 と ピ ン 配置の選択には特に注意 し て く だ さ い。 密に イ ン タ ー コ ネ ク ト さ れた モ
ジ ュ ール と IP は同 じ SLR 内に配置 し ます。 こ れが不可能な場合は、 パ イ プ ラ イ ン レ ジ ス タ を追加 し て よ り 柔軟な配
置が実行 さ れ る よ う に し 、 ロ ジ ッ ク グループ間の接続が SLR を ま た ぐ 場合で も 適切な ソ リ ュ ーシ ョ ンが見つけ ら れ
る よ う に し て く だ さ い。ク リ テ ィ カル ロ ジ ッ ク は同 じ SLR 内に配置 し ます。主なモジ ュ ールがそれ ら の イ ン タ ーフ ェ
イ ス で適切にパ イ プ ラ イ ン処理 さ れ る よ う にす る と 、 配置で SLR を ま た ぐ 部分が フ リ ッ プ フ ロ ッ プか ら フ リ ッ プ フ
ロ ッ プの接続にな る SLR を見つけ る こ と がで き る よ う にな り ます。
次の図では、 SLR0 に制約 さ れた メ モ リ イ ン タ ーフ ェ イ ス が SLR1 のユーザー ロ ジ ッ ク を駆動す る 必要があ り ます。
AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス は メ モ リ IP バ ッ ク エ ン ド に接続 さ れてお り 、 メ モ リ IP と AXI4-Lite ス レーブ
イ ン タ ーフ ェ イ ス間の境界が適切に定義 さ れてい る ため、 SLR0 か ら SLR1 への遷移が問題な く 実行 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
69
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
X-Ref Target - Figure 3-7
8VHUBORJLF
$;,BVODYH
6/5
6/5
0,*B''5
;
図 3-7 : SLR0 の メ モ リ イ ン タ ー フ ェ イ スが SLR1 のユーザー ロ ジ ッ ク を駆動
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
70
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
幅の広いバスが SLR を また ぐ場合
幅の広いバ ス が SLR を ま た ぐ デー タ フ ロ ー要件があ る 場合は、 パ イ プ ラ イ ン ス ト ラ テ ジ を使用 し て タ イ ミ ン グ ク
ロ ージ ャ を改善 し 、 長い リ ソ ース の配線密集を軽減 し ます。 250MHz を超え る 周波数で動作す る 幅の広いバ ス の場合
は、 少な く と も パ イ プ ラ ン段を 3 つ (SLR の一番上に 1 つ、 一番下に 1 つ、 真ん中に 1 つ) 使用 し て、 SLR を ま た ぐ
よ う にす る 必要があ り ます。 非常にパフ ォーマ ン ス の高いバ ス の場合や、 水平方向に横切っ た り 、 垂直方向に縦断 し
た り す る 場合は、 さ ら に多 く のパ イ プ ラ イ ン段が必要にな る こ と も あ り ます。
次の図は、 vu190-2 デバ イ ス で SLR を ま た ぐ ワ ー ス ト ケー ス の状況を示 し てい ま す。 こ の例では、 SLR0 の左下の
Interlaken ハー ド IP か ら 、 SLR2 の右上に割 り 当て ら れたパケ ッ ト モニ タ ー ブ ロ ッ ク に到達 し てい ます。 パケ ッ ト モ
ニ タ ーを行 き 来す る デー タ バ ス に対 し てパ イ プ ラ イ ン レ ジ ス タ がない と 、デザ イ ンは タ イ ミ ン グ要件であ る 300MHz
を大差で満たす こ と がで き ません。
X-Ref Target - Figure 3-8
;
図 3-8 : SLR を またがるデー タ パス (パイ プ ラ イ ン フ リ ッ プ フ ロ ッ プ な し )
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
71
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
SLR0 か ら SLR2 に遷移 し やすい よ う にす る ためパ イ プ ラ イ ン段を 7 つ追加す る と 、 デザ イ ンが タ イ ミ ン グ要件を満
たす よ う にな り ます。 こ れに よ り 、次の図に示す よ う に、垂直お よ び水平方向の長い配線 リ ソ ース の使用 も 減 り ます。
X-Ref Target - Figure 3-9
;
図 3-9 : SLR を またがるデー タ パス (パイ プ ラ イ ン フ リ ッ プ フ ロ ッ プ を追加)
FPGA の消費電力およびシ ス テムの依存性
PCB を プ ラ ン ニ ン グす る 際は、 消費電力を考慮する 必要があ り ます。
•
FPGA デバ イ ス と ユーザー デザ イ ンに よ り 、 シ ス テ ム電源 と 放熱の要件が決定 し ます。
•
電気的要素お よ び物理的要素が FPGA デバ イ ス の電源お よ び冷却に影響 し 、 それが さ ら にデバ イ ス パフ ォーマ
ン ス に大 き く 影響 し ます。
そのため、 FPGA デバ イ ス の電力要件お よ び冷却要件を理解 し 、 ボー ド 設計に組み込む必要があ り ます。
FPGA デバイ スの電源パス
FPGA デバ イ ス に電源を供給す る には、 複数の電源が必要です。 一部の電源は、 特定の順序で投入する 必要があ り ま
す。 FPGA デバ イ ス、 GT、 お よ びその他のア ク テ ィ ブ コ ン ポーネ ン ト に正 し い順序で電源を投入す る ため、 電源モ
ニ タ ーま たはシーケ ン ス回路を使用す る こ と を考慮 し て く だ さ い。 よ り 複雑な環境では、 マ イ ク ロ コ ン ト ロ ー ラ ー、
MBUS や PMBUS な ど のパ ワ ー マネージ メ ン ト バ ス を使用 し て電源お よ び リ セ ッ ト プ ロ セ ス を制御する と 有益な場
合があ り ます。 電源のオン/オ フ シーケ ン ス の詳細は、 デバ イ ス のデー タ シー ト を参照 し て く だ さ い。
個別の電源か ら 、 異な る FPGA リ ソ ース に必要な電力が供給 さ れます。 こ れに よ り 、 さ ま ざ ま な リ ソ ース を異な る 電
圧レベルで動作 さ せ る こ と がで き る ので、 ノ イ ズや寄生効果に対 し て高い耐性を保ちなが ら 、 パフ ォーマ ン スお よ び
信号強度を向上で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
72
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
FPGA デバイ スの消費電力の要素
各電源で必要な電力は、 次の 3 つの要素で構成 さ れます。
•
デバ イ ス の ス タ テ ィ ッ ク ( リ ー ク ) 消費電力
デバ イ ス を動作 さ せ、 プ ロ グ ラ ムす る ために必要な電力。 こ の電力の大部分は、 デバ イ ス の コ ン フ ィ ギ ュ レ ー
シ ョ ン を保持す る ために使用 さ れ る ト ラ ン ジ ス タ の リ ー ク に よ る も のです。
•
デザ イ ンの ス タ テ ィ ッ ク 消費電力
デバ イ ス が コ ン フ ィ ギ ュ レーシ ョ ン さ れていて、 ア ク テ ィ ビ テ ィ がない と き に継続 し て消費 さ れ る 電力。 こ れに
は、 デザ イ ンのア ク テ ィ ビ テ ィ に関わ ら ず使用時に電力が必要 と な る I/O 終端、 ク ロ ッ ク マネージ ャ ー、 お よ び
その他の回路の ス タ テ ィ ッ ク 電流が含まれます。
•
デザ イ ンのダ イ ナ ミ ッ ク 消費電力
デザ イ ン ア ク テ ィ ビ テ ィ に よ り 発生す る 電力。 こ の電力は、 デザ イ ン ア ク テ ィ ビ テ ィ に よ っ て時間 と 共に変化
し 、 使用す る 電圧レベル、 ロ ジ ッ ク 、 お よ び配線 リ ソ ース に よ っ て異な り ます。
電力消費パス
FPGA デバ イ ス に供給 さ れ る 総電力 (熱消費電力お よ びオ フチ ッ プ消費電力を含む) は、 複数のパ ス を介 し て出入力 さ
れます。
熱消費電力
熱消費電力は、 FPGA 内部で消費 さ れ る 電力です。 こ れに よ り 熱が発生 し 、 デバ イ ス のジ ャ ン ク シ ョ ン温度が上昇す
る 原因 と な り ます。 こ の熱は、 環境に伝導 し ます。 ボー ド 設計に も 放熱パ ス を組み込み、 ジ ャ ン ク シ ョ ン温度がデバ
イ ス の動作範囲内に保持 さ れ る よ う にす る 必要があ り ます。
オ フ チ ッ プ消費電力
オ フチ ッ プ電力は、 電源か ら FPGA 電源ピ ン、 I/O ピ ン を通過 し 、 外部ボー ド コ ン ポーネ ン ト に散逸 さ れます。 FPGA
デバ イ ス で供給 さ れ る 電流は通常、 I/O 終端、 LED、 ほかのチ ッ プの I/O バ ッ フ ァ ーな ど、 オ フチ ッ プ コ ン ポーネ ン
ト で消費 さ れ る ので、 FPGA デバ イ ス のジ ャ ン ク シ ョ ン温度の上昇には影響 し ません。 ただ し 、 電源 ラ イ ンお よ びグ
ラ ン ド ラ イ ン を こ の電力が伝導 さ れ る よ う 設計する 必要があ り ます。
電力モー ド
FPGA デバ イ ス は、 電源を投入 し てか ら 切る ま での間に、 電力要件の異な る い く つかの電力フ ェ ーズ を経ます。
•
「電源投入」
•
「ス タ ー ト ア ッ プ電力」
•
「ス タ ンバ イ 電力」
•
「ア ク テ ィ ブ電力」
電源投入
電源投入電力は、 FPGA デバ イ ス に最初に電力を投入 し た と き に発生する 過渡スパ イ ク 電流です。 こ の電流は、 各電
圧電源で異な り 、 FPGA デバ イ ス の構造、 電源 ソ ース が公称電圧に上昇す る 能力、 温度や電源シーケ ン ス な ど のデバ
イ ス の動作条件に依存 し ます。
現代の FPGA デバ イ ス アーキ テ ク チ ャ では、 電源投入シーケ ン ス のガ イ ド ラ イ ン に従えば、 ス パ イ ク 電流は発生 し
ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
73
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
ス タ ー ト ア ッ プ電力
ス タ ー ト ア ッ プ電力は、 デバ イ ス の初期の立ち上げお よ びコ ン フ ィ ギ ュ レーシ ョ ンに必要な電力です。 こ の電力は通
常短期間に発生す る ので放熱を考慮す る 必要はあ り ませんが、 電流要件は満たす必要があ り ます。 ほ と ん ど の場合、
動作中のデザ イ ンのア ク テ ィ ブ電流の方が高いので、 変更は必要あ り ません。 ただ し 、 ア ク テ ィ ブ電流が低い低消費
電力デザ イ ンでは、 こ の期間電流要件を高 く す る こ と が必要な場合があ り ます。 Xilinx Power Estimator (XPE) を使用
し て、 こ の要件を理解で き ます。 [Process] を [Maximum] に設定 し た場合、 各電圧レールの電流要件が動作電流か ス
タ ー ト ア ッ プ電流の高い方に指定 さ れます。ス タ ー ト ア ッ プ電流の方が高い場合、XPE に電流値が青で表示 さ れます。
ス タ ンバイ電力
ス タ ンバ イ 電力 (デザ イ ンの ス タ テ ィ ッ ク 消費電力) は、デバ イ ス がデザ イ ン で コ ン フ ィ ギ ュ レーシ ョ ン さ れた と き に
供給 さ れ る 電力で、 外部か ら 適用 さ れ る ア ク テ ィ ビ テ ィ や内部で生成 さ れ る ア ク テ ィ ビ テ ィ はあ り ません。
ス タ ンバ イ 電力は、 デザ イ ンの動作中に供給す る 必要があ る 最小継続電力を示 し ます。
ア ク テ ィ ブ電力
ア ク テ ィ ブ電力 (デザ イ ンのダ イ ナ ミ ッ ク 消費電力) は、 アプ リ ケーシ ョ ンの実行中にデバ イ ス で必要な電力です。 ア
ク テ ィ ブ電力には、 ス タ ンバ イ 電力 (すべての ス タ テ ィ ッ ク 消費電力) と デザ イ ン ア ク テ ィ ビ テ ィ に よ り 生成 さ れ る
電力 (デザ イ ン のダ イ ナ ミ ッ ク 消費電力) を加算 し た も のです。 こ の電力は、 入力デー タ パ タ ーンお よ びデザ イ ン の
内部ア ク テ ィ ビ テ ィ に よ り ク ロ ッ ク サ イ ク ルご と に変化 し ます。
消費電力に影響する環境要因
消費電力は、 デザ イ ン その も のに加え、 い く つかの要因に依存 し ます。 こ れ ら の要因は、 デバ イ ス の電圧お よ びジ ャ
ン ク シ ョ ン温度に影響す る ので、 消費電力に影響 し ます。 消費電力に影響す る 環境要因には、 次の も のがあ り ます。
•
「電源供給ス ト ラ テジ」
•
「冷却ス ト ラ テジ」
電源供給ス ト ラ テ ジ
電源供給ス ト ラ テジは、 次の と お り です。
•
「レ ギ ュ レー タ 技術」
•
「デカ ッ プ リ ン グ ネ ッ ト ワ ー ク のパフ ォーマ ン ス」
•
「FPGA デバ イ ス の選択」
レギ ュ レー タ 技術
入力 と 出力の電圧差、応答時間、最大電流、出力電圧の精度制約を調整す る さ ま ざ ま な レ ギ ュ レー タ 技術があ り ます。
デ カ ッ プ リ ング ネ ッ ト ワー クのパ フ ォ ーマ ン ス
デカ ッ プ リ ン グ回路を効率 よ く 設計す る と 、高電力を要す る 短い期間に FPGA デバ イ ス に電力を供給す る だけではな
く 、 レ ギ ュ レー タ か ら の電流サージ要求を削減 し て、 レ ギ ュ レー タ の総消費電力を抑え る こ と がで き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
74
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
FPGA デバイ スの選択
電源数お よ び電圧レベル要件は、 FPGA デバ イ ス フ ァ ミ リ に よ っ て異な り ます。 すべてのザ イ リ ン ク ス FPGA デバ イ
ス に、 リ ソ ース、 パフ ォーマ ン ス、 お よ び消費電力のバ ラ ン ス が存在 し ます。 特定のデザ イ ン要件に合っ たデバ イ ス
を選択 し て く だ さ い。
1 つの特性 (パフ ォーマ ン ス な ど) を優先 し すぎ る と 、 ほかの特性 (消費電力な ど) に悪影響を及ぼす場合があ り ます。
低電圧 コ アや低電圧 I/O イ ン タ ーフ ェ イ ス をサポー ト す る デバ イ ス を選択す る と 、消費電力を抑え る こ と がで き ます。
冷却ス ト ラ テ ジ
冷却ス ト ラ テジは、 次の と お り です。
•
「シ ス テ ム環境」
•
「 ヒ ー ト シン ク」
•
「パ ッ ケージの選択」
•
「 コ ン ポーネ ン ト の配置」
シ ス テム環境
シ ス テ ム エン ク ロ ージ ャ の形状お よ び寸法 と その周囲温度は、 発生 し た熱の環境への分散に影響す る 主な要因です。
ヒー ト シン ク
ヒ ー ト シ ン ク の寸法、 形状、 熱融着、 お よ び実装方法 と 、 最終的に装着す る 強制エア フ ロ ー シ ス テ ムに よ り 、 FPGA
デバ イ ス か ら 抽出可能な熱量が決定 し ます。
パ ッ ケージの選択
パ ッ ケージの寸法、 材質、 お よ びボー ド への接続は、 コ ス ト と シ グナル イ ン テ グ リ テ ィ だけでな く 、 発生 し た熱が上
面 と 下面の両面か ら の ど の よ う に環境に散逸 さ れ る かに も 影響 し ます。ヒ ー ト シ ン ク と ボー ド 間で接触面が大 き いほ
ど、 熱抵抗が低 く な り ます。
コ ンポーネ ン ト の配置
シ ス テ ム エン ク ロ ージ ャ に対す る コ ン ポーネ ン ト の配置、 お よ びその他のボー ド 材質、 アセ ンブ リ 、 コ ン ポーネ ン ト
は、 環境への熱の散逸に影響 し ます。 た と えば、 障害物を 1 つ配置す る と 、 FPGA 付近のエア フ ロ ーが減少 し た り 、
方向が変わ る 可能性があ り ます。 FPGA デバ イ ス の近 く に配置 さ れてい る その他の熱を発生す る コ ン ポーネ ン ト は、
デバ イ ス上部の外気温を上昇 さ せた り 、 ヒ ー ト シ ン ク の効率を下げた り 、 ま たはボー ド 材質を介 し て FPGA デバ イ
ス に熱を伝導 し た り す る 可能性があ り ます。
消費電力モデルの精度
ツールに組み込まれてい る 特性デー タ の精度は、 デバ イ ス の入手可能性や製造プ ロ セ ス の成熟度を反映 し て し だいに
進化 し ます。 こ の精度は、 [Characterization] フ ィ ール ド に表示 さ れます。 デバ イ ス フ ァ ミ リ の特性デー タ は、 次の順
序で進化 し ます。
•
「Advance 仕様のデバ イ ス」
•
「Preliminary 仕様のデバ イ ス」
•
「Production 仕様のデバ イ ス」
推奨 : 最新のデー タ を反映す る ため、 最新版の Xilinx Power Estimator (XPE) を使用 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
75
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
Advance 仕様のデバイ ス
Advance 仕様のデバ イ ス には、 主に初期プ ロ ダ ク シ ョ ン デバ イ ス ロ ッ ト か ら のシ ミ ュ レーシ ョ ン結果ま たは測定値
に基づ く デー タ モデルが含まれます。 Advance デー タ は通常、 製品 リ リ ース か ら 1 年以内に入手で き ます。 デー タ は
比較的安定 し てお り 、 余裕 を持たせた設定ですが、 実際の値は上下す る 可能性が あ り ま す。 こ の仕様のデー タ は、
Preliminary や Production のデー タ ほ ど正確ではあ り ません。 最新のデー タ については、 FAE に問い合わせ る こ と をお
勧め し ます。
Preliminary 仕様のデバイ ス
Preliminary 仕様は、 完成 し てい る 初期プ ロ ダ ク シ ョ ン シ リ コ ン に基づいてい ます。 デバ イ ス フ ァ ブ リ ッ ク 内にあ る
ほぼすべてのブ ロ ッ ク が特性評価 さ れてい ます。 Advance デー タ と 比較す る と 、 消費電力値の精度は高 く な り ます。
Production 仕様のデバイ ス
Production 仕様は、 特定のデバ イ ス フ ァ ミ リ の十分な量産を経た上で特性評価が行われ、 相当数のプ ロ ダ ク シ ョ ン
ロ ッ ト を対象 と し た完全な電力相互関係が確立 さ れた後に リ リ ース さ れます。 Production 特性デー タ を持つデバ イ ス
モデルは、 こ れ以上進化 し ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
76
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
FPGA デバイ スの消費電力 と 全般的な シ ス テム設計プ ロ セス
プ ロ ジ ェ ク ト 考案か ら 完成ま で、 消費電力に影響する さ ま ざ ま な側面を考慮する 必要があ り ます。 ほかのすべての問
題 (機能、 パフ ォーマ ン ス、 コ ス ト 、 お よ び タ イ ム ト ゥ マーケ ッ ト ) を一時的に除外す る と 、 消費電力に関連す る タ
ス ク は次の 2 つに分類で き ます。
•
物理的領域 : エン ク ロ ージ ャ 、 ボー ド の形状、 電力分配シ ス テ ム、 熱消費電力の散逸シ ス テ ム
•
論理的領域 : エ リ ア、 パフ ォーマ ン ス、 I/O イ ン タ ーフ ェ イ ス のシ グナル イ ン テ グ リ テ ィ
通常、 ハー ド ウ ェ アの選択お よ びサ イ ズ設定は、 プ ロ ト タ イ プ ボー ド を構築で き る よ う 、 デザ イ ン フ ロ ーの初期段
階で行い ます。 FPGA デバ イ ス の機能に よ る 消費電力への影響は早期に予測可能で、 デザ イ ン ロ ジ ッ ク が完成に近づ
く につれ、 よ り 正確な値が得 ら れ る よ う にな り ます。 次の図に、 一般的な シ ス テ ム デザ イ ン プ ロ セ ス と 電力に関す
る 判断箇所を示 し ます。
X-Ref Target - Figure 3-10
;3(ቛቑኤዙኜ⏴┪ದ䀗彊榊┪℗䂻ቑ屲㨟
ኤክኁኖᇬ䂸ㄵᇬኤናኁዐ䔈⸩
ኤናኁዐት⮘㦃
1R
ኯዙእኔዐኌᇬ
ኅቿኲዊዙᇬቀቑⅥቑ
⑆☃ኾኈከኗኽት∎䞷
䀗彊榊┪ክንኄአእት
䄏ቂሺ቉ሧቮሮ"
<HV
1R
㦏⮶7-$ቊ
䄏ቂሺ቉ሧቮሮ"
<HV
榊䄟ት指㔭ሺᇬ
⑆☃ኖእ዆ኣንት䭉⸩
;
図 3-10 : PCB プ ラ ン ニ ング プ ロ セスでの消費電力面の管理
デバ イ スお よ び関連の冷却パーツ を選択す る 時点では、 FPGA ロ ジ ッ ク は ま だわか っ てい ません。 FPGA ロ ジ ッ ク の
電力要件を予測す る 手法が必要です。現在のデザ イ ン と 同等の初期デザ イ ンか ら の ロ ジ ッ ク デー タ を使用す る こ と を
お勧め し ま す。 最良の予測値を使用 し たデザ イ ン デー タ を入力 し 、 後で変更 し ま す。 初期デザ イ ン か ら のデー タ を
XPE に イ ン ポー ト す る 方法は、 第 5 章の 「デザ イ ンの イ ンプ リ メ ン テーシ ョ ン」 を参照 し て く だ さ い。
ザ イ リ ン ク ス では、 熱シ ミ ュ レーシ ョ ン を実行す る こ と を強 く お勧め し ます。 熱モデルは、 ザ イ リ ン ク ス か ら 入手で
き ます。 こ れに よ り 精度が上が り 、 ThetaJA も 提供 さ れ る ので、 XPE で指定で き ます。
•
熱シ ミ ュ レーシ ョ ンが不可能な場合は、 ヒ ー ト シ ン ク やエア フ ロ ーな どの環境条件の最良の予測値を供給 し ます。
•
XPE で算出 さ れた消費電力値が要件を超え てい る 場合は、デザ イ ンの消費電力を最適化す る 必要があ る 可能性が
あ り ます。
•
要件以下だが TJA が最大値を超え てい る 場合は、 放熱を向上 し てデバ イ ス の熱拡散を削減す る ため、 ヒ ー ト シ ン
ク やエア フ ロ ーな ど の冷却手法の追加お よ び消費電力最適化手法を考慮 し て く だ さ い。 こ れ ら は消費電力に影響
す る ので、 環境条件の新 し い値を入力 し て XPE を再実行 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
77
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
シ ス テム レ ベルの冷却ス ト ラ テ ジ
冷却ス ト ラ テジでは、 デバ イ ス で発生 し た熱を抽出 し て環境に吸収 さ れ る よ う に し ます。 次の冷却ス ト ラ テジは、 通
常設計の初期段階では適用で き ますが、 後の段階にな っ てか ら では適用 し づ ら く な り ます。 こ れ ら の ス ト ラ テ ジは、
デバ イ ス の ス タ テ ィ ッ ク 消費電力に大 き く 影響 し ます。 冷却ス ト ラ テ ジには、 エア フ ロ ーの増加、 周囲温度の低下、
ヒ ー ト シ ン ク (ま たは さ ら に大 き い ヒ ー ト シ ン ク ) の使用、 別の レ ギ ュ レー タ を選択す る な ど があ り ます。
シ ス テム レ ベルの電源ス ト ラ テ ジ
電圧は、 ス タ テ ィ ッ ク 消費電力お よ びダ イ ナ ミ ッ ク 消費電力の両方に大き く 影響 し ます。 電圧レベルを ア ク テ ィ ブに
制御す る と 、 デバ イ ス に指定の電圧が確実に適用 さ れ る よ う にな り ます。
•
ス イ ッ チン グ レ ギ ュ レー タ を使用する
ス イ ッ チン グ レ ギ ュ レー タ は、 リ ニ ア レ ギ ュ レー タ と 比べ る と 電力効率は高 く な り ますが、 コ ン ポーネ ン ト 数
は多 く な り ます。
•
調整可能な レ ギ ュ レー タ を使用す る
同 じ 電源か ら 複数の FPGA デバ イ ス に電力が供給 さ れ る 場合、 FPGA デバ イ スお よ び消費電力が最 も 高いデバ イ
ス の電圧値にで き る 限 り 近 く な る よ う 調整 し ます。
•
許容誤差が厳 し い レ ギ ュ レー タ を選択す る
許容誤差が厳 し い レ ギ ュ レー タ を選択す る と 、 デバ イ スへの電源供給が一貫 し た も のにな り ます。
消費電力および温度の計測
こ のセ ク シ ョ ンでは、 FPGA デバ イ ス の消費電力お よ び放熱量を計測する 方法について簡単に説明 し ます。 こ れ ら の
方法の一部では内部 FPGA リ ソ ー ス が使用 さ れ、 ほかの方法ではボー ド コ ン ポーネ ン ト ま たは外部 コ ン ポーネ ン ト
が使用 さ れ ます。 設置後に消費電力 と 温度を ア ク テ ィ ブに監視 し て調整す る 必要があ る アプ リ ケーシ ョ ン も あれば、
プ ロ ト タ イ プお よ び検証段階に ラ ボで こ れ ら の計測手法を使用す る アプ リ ケーシ ョ ン も あ り ます。
消費電力の計測方法
消費電力を計測す る には、 次の方法があ り ます。
•
「電流検出抵抗器を使用」
•
「ア ド バン ス レ ギ ュ レー タ お よ びデジ タ ル電力コ ン ト ロ ー ラ ーを使用」
•
「オン ボー ド 監視を実行」
•
「個別の電源レールを使用」
電流検出抵抗器を使用
レ ギ ュ レー タ 出力 と FPGA デバ イ ス の間に直列で電流検出抵抗器を挿入す る と 、電流に比例 し て電圧が少 し 下が り ま
す。 XADC で こ の電圧を計測す る と 、 FPGA デバ イ ス に供給 さ れてい る 電流がわか り ます。 正確に計測す る ために必
要な接続については、 『7 シ リ ーズ FPGA お よ び Zynq-7000 All Programmable SoC XADC デュ アル 12 ビ ッ ト 1MSPS ア
ナ ロ グ/デジ タ ル コ ンバー タ ー ユーザー ガ イ ド 』 (UG480) [参照 45] (XADC ユーザー ガ イ ド ) を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
78
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
ア ド バン ス レギ ュ レー タ およびデジ タ ル電力 コ ン ト ロー ラ ーを使用
最新の評価キ ッ ト には、 ア ド バン ス レ ギ ュ レー タ お よ びデジ タ ル電力コ ン ト ロ ー ラ ーが含まれてお り 、 こ れ ら を使用
し て レ ギ ュ レー タ の出力電流お よ び電圧を キ ャ プチ ャ し 、 その情報を USB イ ン タ ーフ ェ イ ス を介 し て監視 し てい る
コ ン ピ ュ ー タ ーに送信で き ます。 こ れが、 電源レールを監視す る 最 も 簡単で便利な方法です。
ほ と ん ど のザ イ リ ン ク ス開発ボー ド には、 テ キサ ス イ ン ス ツル メ ン ツ社の UCD92xx コ ン ト ロ ー ラ ーが搭載 さ れてお
り 、 PC 上の Fusions Digital Power Designer ソ フ ト ウ ェ アか ら PMBus (I2C) - USB イ ン タ ーフ ェ イ ス モジ ュ ールを介 し
てア ク セ ス で き ます。
オ ンボー ド 監視を実行
ザ イ リ ン ク ス 7 シ リ ーズ デバ イ ス フ ァ ミ リ には、内部セ ンサーお よ び最低 1 つのアナ ロ グ/デジ タ ル コ ンバー タ ーが
含ま れてお り 、 供給電圧お よ びデバ イ ス の温度を計測で き ます。 Vivado ハー ド ウ ェ ア マネージ ャ ーを使用す る と 、 リ
アル タ イ ムで JTAG にア ク セ ス で き 、 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンの実行前 と 実行後に さ ま ざ ま な電源電圧や
デバ イ ス のジ ャ ン ク シ ョ ン温度を計測で き ます (図 3-11 を参照)。 ま た、 シ ス テ ム モニ タ ーま たは XADC コ ン ポーネ
ン ト を コ ー ド に イ ン ス タ ン シエー ト し て、 FPGA アプ リ ケーシ ョ ンか ら こ れ ら を計測する こ と も で き ます。
個別の電源レールを使用
可能であれば、 各電源電圧に個別の電圧レールを使用 し て く だ さ い。 電圧レールが接続 さ れてい る 場合は、 こ れ ら の
レール間で電力を計測す る 際にそれを考慮 し ます。
熱の計測方法
熱を計測す る には、 次の方法があ り ます。
•
「外部監視を実行」
•
「オン ボー ド 監視を実行」
外部監視を実行
デバ イ ス パ ッ ケージに よ り シ リ コ ン にア ク セ ス で き ないので、 ジ ャ ン ク シ ョ ン温度を直接計測す る こ と はで き ませ
ん。 ジ ャ ン ク シ ョ ン温度は、 パ ッ ケージ、 ヒ ー ト シ ン ク 、 お よ びその他の熱電対があ る 場所の温度を計測す る こ と で
予測で き ます。
ま た、熱カ メ ラ を使用 し て、デバ イ ス の温度お よ び周辺の コ ン ポーネ ン ト や環境 と の放熱相互作用を視覚化で き ます。
オ ンボー ド 監視を実行
消費電力の計測 と 同 じ 方法を使用 し て熱を計測す る こ と が可能です。 デバ イ ス の コ ン フ ィ ギ ュ レ ーシ ョ ン の前後に
Vivado ハー ド ウ ェ ア マネージ ャ ーを使用で き ます (図 3-11 を参照)。
シ ス テ ム モニ タ ー /XADC プ リ ミ テ ィ ブ をデザ イ ンに含めて、 デバ イ ス のジ ャ ン ク シ ョ ン温度を読み出す こ と も 可能
です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
79
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
X-Ref Target - Figure 3-11
図 3-11 : 電圧およびジ ャ ン ク シ ョ ン温度の監視
消費電力お よび温度の計測方法
デザ イ ンの総消費電力に寄与す る 3 つの要素を評価す る ため、 計測前にデバ イ ス のジ ャ ン ク シ ョ ン温度を制御 し て安
定 さ せ る 必要があ り ます。 こ れは、 デバ イ スお よ びデザ イ ンの ス タ テ ィ ッ ク 消費電力がデバ イ ス のジ ャ ン ク シ ョ ン温
度に大 き く 依存 し てい る ため必要です。
デザ イ ンの総消費電力に寄与す る 3 つの要素は、 次の と お り です。
•
「デバ イ ス の ス タ テ ィ ッ ク 消費電力」
•
「デザ イ ンの ス タ テ ィ ッ ク 消費電力」
•
「デザ イ ンのダ イ ナ ミ ッ ク 消費電力」
デバイ スのス タ テ ィ ッ ク消費電力
空のデザ イ ン を ダ ウ ン ロ ー ド し 、 入力 ノ イ ズがキ ャ プチ ャ さ れず、 すべての内部 ロ ジ ッ ク お よ び コ ン フ ィ ギ ュ レ ー
シ ョ ン回路が既知の ス テー ト にな っ てい る こ と を確認 し ます。
注記 : 空のデザ イ ンには、 ト グル し ないゲー ト ま たはフ リ ッ プ フ ロ ッ プが 1 個含まれてお り 、 すべての出力が ト ラ イ
ス テー ト にな っ てい ます。
ジ ャ ン ク シ ョ ン温度が安定 し た ら 、 VCCINT、 VCCAUX、 お よ びその他の電源を計測 し ま す。 特殊な装置、 単純な
ヒ ー ト ガ ン、 ま たは冷却ス プ レーを使用す る と 、 温度を強制的に変更で き 、 デバ イ ス の ス タ テ ィ ッ ク 消費電力への環
境に よ る 影響を評価で き ます。
デザイ ンのス タ テ ィ ッ ク消費電力
FPGA デバ イ ス にデザ イ ン を ダ ウ ン ロ ー ド し て、 すべての入力お よ び内部ア ク テ ィ ビ テ ィ (入力デー タ 、 外部お よ び
内部 ク ロ ッ ク 生成) を開始 し ない よ う に し ます。 デバ イ ス の温度が安定 し た ら 、 すべての電源レールの消費電力を計
測 し ます。
こ れ ら の値か ら デバ イ ス の ス タ テ ィ ッ ク 消費電力を差 し 引 く と 、デザ イ ンで使用 さ れ る 特定の ロ ジ ッ ク リ ソ ースお よ
び コ ン フ ィ ギ ュ レーシ ョ ンで消費 さ れ る ス タ テ ィ ッ ク 消費電力 (デザ イ ンの ス タ テ ィ ッ ク 消費電力) が求め ら れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
80
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
デザイ ンのダ イ ナ ミ ッ ク消費電力
FPGA デバ イ ス にデザ イ ン を ダ ウ ン ロ ー ド し て、 デザ イ ン を表す ク ロ ッ ク お よ び入力 ス テ ィ ミ ュ ラ ス を供給 し ます。
ジ ャ ン ク シ ョ ン温度が安定 し た ら 、 すべての電源の消費電力を計測 し ます。
こ の消費電力は、 デザ イ ンの瞬間的な総消費電力を表 し ます。 消費電力は、 各 ク ロ ッ ク サ イ ク ルのア ク テ ィ ビ テ ィ に
よ っ て変化 し ます。
Xilinx Power Estimator (XPE) を使用 し たワース ト ケー
ス消費電力解析
ボー ド は、 ワ ース ト ケース の消費電力を考慮 し て設計す る 必要があ り ます。 Xilinx Power Estimator (XPE) を使用 し た
消費電力解析の詳細は、 『Xilinx Power Estimator ユーザー ガ イ ド 』 (UG440) [参照 23] を参照 し て く だ さ い。
期待の設定
総消費電力要件を理解 し てお く と 、 電力分配お よ び冷却仕様を定義する 際に役立ち ます。 次の値を決定す る 必要があ
り ます。
•
電源
•
それぞれで消費 さ れ る 電力
•
熱を発生す る 原因 と な る 吸収 さ れ る エネルギー
XPE を使用す る と 、 こ れ ら の値を予測で き ます。 XPE は、 FPGA ロ ジ ッ ク と デバ イ ス がはんだ付け さ れ る プ リ ン ト 回
路基板を同時に開発す る 際に役立ち ます。 こ れに よ り 、 必要なマージ ン を理解 し 、 イ ンプ リ メ ン ト 後にシ ス テ ム を指
定範囲内で動作 さ せ る こ と がで き る よ う にな り ます。 次の図に、 XPE の イ ン タ ーフ ェ イ ス を示 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
81
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
X-Ref Target - Figure 3-12
図 3-12 : Xilinx Power Estimator (XPE) で示 さ れる消費電力情報
XPE での消費電力予測
正常に機能す る 信頼性の高いシ ス テ ム を作成す る には、 消費電力仕様お よ び冷却仕様を適切に設定す る 必要があ り ま
す。 ほ と ん ど の場合、 こ れ ら の温度仕様お よ び消費電力仕様は PCB 設計の前に設定す る 必要があ り ます。 FPGA デバ
イ ス は柔軟性が高いので、 シ ス テ ム デザ イ ン ま たは PCB 製造の前に FPGA デザ イ ンが完了 し ていない こ と がほ と ん
ど で、 開始 し ていない場合 も あ り ます。
FPGA デザ イ ンではビ ッ ト ス ト リ ーム、 ク ロ ッ キ ン グ、 お よ びチ ッ プに入力 さ れ る デー タ に よ っ て温度特性お よ び電
力特性が大 き く 変化す る ので、 こ れは大 き な課題 と な り ます。
消費電力シ ス テ ム ま たは熱シ ス テ ム を過小設計す る と 、FPGA デバ イ ス が仕様どお り に動作 し ない可能性があ り ます。
こ れに よ り 、 デバ イ ス が必要なパフ ォーマ ン ス で動作せず、 よ り 重大な問題を引き 起 こ す場合 も あ り ます。
電力シ ス テ ム を過剰設計 し た場合、 通常問題はそれほ ど深刻ではあ り ませんが、 不必要に コ ス ト が高 く な っ た り 、 全
体的なシ ス テ ムが よ り 複雑にな る こ と があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
82
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
解析中に複数の消費電力最適化を試 し た り 適用 し た り で き 、 消費電力を大幅に削減で き る こ と があ り ます。 こ れ ら の
手法については、 第 4 章 「デザ イ ンの作成」 お よ び第 5 章 「 イ ンプ リ メ ン テーシ ョ ン」 を参照 し て く だ さ い。
ボー ド 設計段階で消費電力解析/予測を実行す る 際は、 Xilinx Power Estimator (XPE) を使用 し て く だ さ い。 XPE を使用
し た消費電力予測に関す る 詳細は、『Vivado Design Suite ユーザー ガ イ ド : 消費電力の解析 と 最適化』 (UG907) [参照 22]
の 「Xilinx Power Estimator を使用 し た正確な消費電力予測 を取得す る ための 7 つの手順」 を参照 し て く だ さ い。 次に、
XPE で消費電力を予測す る 際の主な注意事項を示 し ます。
Xilinx Power Estimator (XPE) ツールの最新版を使用 し ます。 消費電力情報は、 最新の電力モデルお よ び特性化デー タ
を反映 し て定期的にア ッ プデー ト さ れ ます。 XPE の最新版は、 ザ イ リ ン ク ス ウ ェ ブサ イ ト の消費電力ページ を参照
し て く だ さ い。
デバ イ ス選択に関す る 正確な情報を入力 し ます。 デバ イ ス設定は、 ス タ テ ィ ッ ク お よ び ク ロ ッ キ ン グ消費電力の算出
に大 き く 影響 し ます。
デバ イ ス を動作す る 環境条件を設定 し ます。 こ れ ら の条件は放熱に影響する のでデバ イ ス の温度に影響 し 、 温度は さ
ら に消費電力に影響 し ます。
デバ イ ス の各電圧レールを、各レールへの電源ま たはレ ギ ュ レー タ か ら の許容誤差に基づいて FPGA デバ イ ス で計測
さ れ る 最大電圧値に増加 し ます。
デザ イ ン を既に Vivado ツールで実行 し てい る 場合、 ま たは以前のバージ ョ ンのデザ イ ン が実行 さ れていて解析の開
始点 と し て使用で き る 場合は、 デザ イ ンの XPower エ ク ス ポー ト フ ァ イ ル (.xpe) を XPE に読み込んで リ ソ ース情報
を入力 し ます。
ヒ ン ト : Vivado Design Suite の XPE フ ァ イ ルを読み込んだ後、 デー タ が正 し い こ と を確認 し て く だ さ い。 こ の情報は、
開始点 と し てのみ使用 し て く だ さ い。
同等のデザ イ ンの .xpe フ ァ イ ルがない場合は、次の各 リ ソ ース タ イ プに対 し てデザ イ ン で使用 さ れ る リ ソ ース を調
べて入力 し ます。
•
クロッ ク ツ リー
•
ロジッ ク
•
I/O
•
ブ ロ ッ ク RAM の消費電力
•
DSP
•
ク ロ ッ ク マネージ ャ ー (CLKMGR)
•
GT
ト グル レー ト ([Toggle Rate])、 平均フ ァ ン ア ウ ト ([Average Fanout])、 イ ネーブル レー ト ([Enable Rate]) を含む タ ブで
こ れ ら の値を確認 し 、 必要に応 じ て変更 し ます。
次に例を示 し ます。
•
メ モ リ イ ン タ ーフ ェ イ ス に イ ン タ ーフ ェ イ ス上の ト グル レー ト を高 く 保つ ト レーニ ン グ パ タ ーン ルーチンが
あ る 場合は、 こ れを反映 し て ト グル レー ト を高 く し ます。
•
回路の ク ロ ッ ク イ ネーブルが回路全体のア ク テ ィ ビ テ ィ を削減する よ う に指定 さ れてい る 場合は、 ト グル レー
ト を低 く し ます。
ト グル レー ト の決定方法については、『Xilinx Power Estimator ユーザー ガ イ ド 』 (UG440) [参照 23] を参照 し て く だ さ い。
ロ ジ ッ ク の フ ァ ン ア ウ ト では、 デー タ パスお よ び制御パス の特性を考慮する 必要があ り ます。 次に例を示 し ます。
•
DSP デザ イ ン な ど、 シーケ ン シ ャ ル デー タ パ ス が適切に構築 さ れてい る デザ イ ン では、 フ ァ ン ア ウ ト は通常デ
フ ォ ル ト 値 よ り も 小 さ く な り ます。
•
エンベデ ッ ド デザ イ ン な ど、デー タ 実行パ ス が多数あ る デザ イ ンでは、 フ ァ ン ア ウ ト がデフ ォ ル ト 値 よ り も 大 き
く な る こ と があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
83
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
結果を解析す る 前に、 必要に応 じ て上記の手順を繰 り 返 し ます。 こ れ ら の手順を完了 し た ら 、 結果を解析 し ます。
ジ ャ ン ク シ ョ ン温度が範囲を超え てお ら ず、 消費電力がプ ロ ジ ェ ク ト で割 り 当て ら れてい る 消費電力を超え ていない
こ と を確認 し て く だ さ い。放熱ま たは電力特性が指定範囲外の場合は、適切な結果が得 ら れ る よ う に次を実行 し ます。
•
環境特性 (エア フ ロ ー、 ヒ ー ト シ ン ク な ど) を調整 し ます。
•
デザ イ ンの リ ソ ースお よ び電力特性を調整 し ます。
消費電力を抑え て必要な機能を達成で き る よ う にす る ため、 ト レ ー ド オ フ を考慮 し ま す。 ト レ ー ド オ フ のオプシ ョ
ンは、 設計プ ロ セ ス の初期段階で探索す る のが最適です。 デー タ の入力が完了 し てデバ イ ス が選択 し た グ レ ー ド の
制限温度範囲内で動作 し てい る 場合は、 XPE で レ ポー ト さ れた消費電力を使用 し て、 デザ イ ン の電源レ ールを決定
で き ま す。
入力 し たデー タ の信頼性が高 く ない場合は、 デバ イ ス の消費電力シ ス テ ム を過小設計 し ない よ う に、 数値を多少水増
し す る こ と が可能です。
設計プ ロ セ ス の進行に応 じ て ス プ レ ッ ド シー ト の情報を確認 し て更新 し 、 最新の要件お よ び イ ンプ リ メ ン テーシ ョ ン
の詳細が使用 さ れ る よ う に し ます。 こ の よ う にする こ と でデザ イ ンの消費電力の最新の状態がわか り 、 消費電力要件
の調整が必要か ど う か を早期に判断で き ます。
コ ン フ ィ ギ ュ レーシ ョ ン
コ ン フ ィ ギ ュ レーシ ョ ンは、 アプ リ ケーシ ョ ン特定のデータ を FPGA デバ イ ス の内部 メ モ リ に読み込むプ ロ セ ス です。
ザ イ リ ン ク ス FPGA コ ン フ ィ ギ ュ レーシ ョ ン デー タ は CMOS コ ン フ ィ ギ ュ レーシ ョ ン ラ ッ チ (CCL) に格納 さ れ る の
で、 コ ン フ ィ ギ ュ レーシ ョ ン デー タ には揮発性があ り 、 FPGA デバ イ ス に電源を投入す る たびに読み込み直す必要が
あ り ます。
ザ イ リ ン ク ス FPGA デバ イ ス は、 外部不揮発性 メ モ リ デバ イ ス か ら コ ン フ ィ ギ ュ レーシ ョ ン ピ ン を介 し て読み込む
こ と がで き ます。 次の よ う な外部ス マー ト ソ ース か ら コ ン フ ィ ギ ュ レーシ ョ ンする こ と も 可能です。
•
マイ ク ロプロセッサ
•
DSP プ ロ セ ッ サ
•
マ イ ク ロ コ ン ト ローラー
•
パ ソ コ ン (PC)
•
ボー ド テ ス タ ー
ボー ド プ ラ ン ニ ン グでは、 初期段階で コ ン フ ィ ギ ュ レーシ ョ ン を考慮す る 必要があ り ます。 こ れに よ り 、 コ ン フ ィ
ギ ュ レーシ ョ ンだけでな く デバ ッ グ し やす く な り ます。
サポー ト さ れ る コ ン フ ィ ギ ュ レーシ ョ ン モー ド お よ びその ピ ン数、 パフ ォーマ ン ス、 コ ス ト におけ る ト レー ド オ フ の
詳細は、 各 FPGA デバ イ ス フ ァ ミ リ の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド [参照 37] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
84
第 3 章 : ボー ド お よびデバイ ス プ ラ ン ニ ング
ボー ド 設計での ヒ ン ト
ボー ド 設計の際は、 コ ン フ ィ ギ ュ レーシ ョ ンだけでな く 、 ど の イ ン タ ーフ ェ イ スお よ びピ ンがデバ ッ グに役立つか を
考慮す る こ と が重要です。 た と えば、 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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
85
第 4章
デザイ ンの作成
デザイ ンの作成の概要
こ こ ま でで、 デバ イ ス I/O を プ ラ ン ニ ン グ し 、 PCB を ど の よ う に レ イ ア ウ ト す る か を プ ラ ニ ン グ し ま し た。 Vivado®
Design Suite の使用モデル も 決定 し ま し た。 こ れで、 デザ イ ンの作成を開始で き る よ う にな り ま し た。
考慮す る 主な点は、 次の と お り です。
•
必要な機能を達成す る
•
必要な周波数で動作す る
•
必要な信頼度で動作す る
•
シ リ コ ン リ ソ ースお よ び消費電力を要件内に収め る
上記の目標を達成す る デザ イ ン を作成す る には、 次が必要 と な り ます。
•
デザ イ ン階層をプ ラ ン ニ ン グ
•
デザ イ ン内で使用お よ びカ ス タ マ イ ズす る IP を特定
•
適切な IP が見つか ら なかっ た場合は、 イ ン タ ー コ ネ ク ト ロ ジ ッ ク お よ び機能を記述 し た カ ス タ ム RTL を作成
•
タ イ ミ ン グお よ び物理制約を作成
•
合成お よ び イ ンプ リ メ ン テーシ ョ ンで使用 さ れ る 追加の制約、 属性、 お よ びその他のエ レ メ ン ト を指定
こ こ での決定は、 すべて最終的な製品に大 き な影響を与え ます。 こ の段階で間違っ た決定をす る と 、 後の段階で問題
と な り 、 デザ イ ン サ イ ク ル全体を繰 り 返す こ と にな り ます。 プ ロ セ ス の初期段階で時間をかけてデザ イ ン を注意 し て
設計す る こ と をお勧め し ます。 こ れに よ り 、 必要なデザ イ ン目標を達成 し て、 デバ ッ グ時間を最小限に抑え る こ と が
で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
86
第 4 章 : デザイ ンの作成
適切なデザイ ン階層の定義
デザ イ ン の作成では、 ま ずデザ イ ン を ど の よ う に論理的に分割す る か を決定 し ま す。 階層を考慮す る 際は、 特定の
フ ァ ン ク シ ョ ン を含むデザ イ ン の部分を分割す る こ と を考え ます。 こ れに よ り 、 特定の設計者が 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 つの階層レベル内に収め る のが適切です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
87
第 4 章 : デザイ ンの作成
フ ロ アプ ラ ンは常に必要なわけではあ り ません。 必要な場合にのみフ ロ アプ ラ ン し て く だ さ い。
フ ロ アプ ラ ンの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906)
[参照 21] の 「フ ロ アプ ラ ン」 を参照 し て く だ さ い。
推奨 : Vivado ツールでは階層を ま た ぐ フ ロ アプ ラ ンが可能ですが、 さ ら に メ ン テナン ス が必要 と な り ます。 可能な限
り 、 階層を ま た ぐ フ ロ アプ ラ ンは避けて く だ さ い。
フ ァ ン ク シ ョ ンおよび タ イ ミ ン グ デバ ッ グ用の階層の最適化
こ のセ ク シ ョ ンの前半で説明 し た よ う に、 ク リ テ ィ カル パ ス が同 じ 階層境界内に含まれ る よ う に し てお く と 、 タ イ ミ
ン グ をデバ ッ グお よ び修正 し やす く な り ます。 同様に、 フ ァ ン ク シ ョ ン デバ ッ グ (お よ び修正) のために も 、 関連す
る 信号は同 じ 階層に含めてお く 必要があ り ます。 こ れに よ り 、 関連信号がプ ロ ーブ さ れて、 比較的簡単に修正で き る
よ う にな り ます。
モ ジ ュ ール レ ベルの属性の適用
モジ ュ ール レベルで属性を適用す る と 、 コ ー ド がシ ンプルにな り 、 拡張性 も 増 し ます。 信号レベルで属性を適用す る
代わ り に、 モジ ュ ール レベルで属性を適用す る と 、 その領域で宣言 さ れた信号すべてにその属性が伝搬 さ れます。 グ
ロ ーバル合成オプシ ョ ン を上書 き す る こ と も で き ます。 こ のため、 RTL にモジ ュ ール レベルの制約を適用す る ため
に階層レベルを追加す る と 、 有益な場合があ り ます。
注意 : 属性の中には、モジ ュ ールか ら モジ ュ ール内のすべての信号には伝搬 さ れない も の も あ り ます (DONT_TOUCH
な ど)。
ア ド バン ス設計手法のための階層の最適化
ボ ト ム ア ッ プ合成、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン、 お よ びア ウ ト オブ コ ン テ キ ス ト (OOC) デザ イ ン な ど の
ア ド バン ス設計手法を使用す る 場合、 階層レベルでのプ ラ ン ニ ン グが必要 と な り ます。 デザ イ ンには、 使用 さ れ る 手
法に適 し た階層レベルを選択す る 必要があ り ます。 こ れ ら の手法については、本書では説明 さ れてい ません。詳細は、
『Vivado Design Suite ユーザー ガ イ ド : 階層デザ イ ン』 (UG905) [参照 20] の 「設計に関す る 考慮事項」 を参照 し て く だ
さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
88
第 4 章 : デザイ ンの作成
高速 DSP デザイ ン での階層プ ラ ン ニ ング例
次の例はすべてのデザ イ ンに適用で き る わけではあ り ませんが、 階層を使用 し て何がで き る かを示 し てい ます。 DSP
デザ イ ンでは、通常デザ イ ンに レ イ テ ン シ を追加で き る ので、レ ジ ス タ を追加 し てパフ ォーマ ン ス を最適化で き ます。
ま た、 レ ジ ス タ は配置を柔軟にす る ために も 使用で き ます。 高速動作では 1 ク ロ ッ ク サ イ ク ルでダ イ を通過す る こ と
は不可能なので、 こ れは重要です。 レ ジ ス タ を追加す る こ と で、 到達 し に く いエ リ アが使用 さ れ る よ う にな り ます。
次の図に、 効果的な階層プ ラ ン ニ ン グに よ り 、 タ イ ミ ン グ ク ロ ージ ャ にかか る 時間を短縮で き る こ と を示 し ます。
X-Ref Target - Figure 4-1
placement_flexibility_wrapper_i
floorplanning_wrapper_i
DSP_i
DATA_IN
DATA_OUT
DSP
Algorithm
VALID_IN
VALID_OUT
CE
attribute KEEP_HIERARCHY = “yes”
attribute SHREG_EXRACT = “no”
X13500
図 4-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 に設定 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
89
第 4 章 : デザイ ンの作成
RTL コ ー ド 記述のガ イ ド ラ イ ン
グルー ロ ジ ッ ク 機能を イ ンプ リ メ ン ト し た り 、適切な IP が見つか ら ない フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト す る ため、
カ ス タ ム RTL の記述が必要な場合があ り ます。
基本的な機能
RTL は、 安全に イ ン プ リ メ ン ト で き る よ う に コ ー ド 記述 し ておかない と 、 デザ イ ン機能が RTL シ ミ ュ レーシ ョ ン の
結果 と 一致 し な く な る こ と があ り ます。 RTL は、 レース コ ンデ ィ シ ョ ンや、 シ ミ ュ レーシ ョ ン と 合成が不一致 と な
る よ う な コ ー ド の記述 ミ ス がない よ う にす る 必要があ り ます。
合成可能な RTL コ ー ド には、 基本的なガ イ ド ラ イ ン がい く つかあ り ま す。 こ れ ら のガ イ ド ラ イ ン については、 合成
可能な RTL コ ー ド に関す る 文書のほ と ん ど で説明 さ れてい ま す。 次に一般的なガ イ ド ラ イ ン のい く つか を説明 し ま
すが、 すべてが網羅 さ れてい る わけではあ り ません。 第 5 章の 「HDL コ ー ド の確認」 に説明す る よ う に、 RTL の DRC
セ ッ ト を実行す る こ と も で き ます。
ブ ロ ッ キング文 と ノ ン ブ ロ ッ キング文
Verilog のブ ロ ッ キ ン グ文ま たは ノ ン ブ ロ ッ キ ン グ文を正 し く 使用 し ない と 、 レース コ ンデ ィ シ ョ ンが発生す る 可能
性があ り 、 RTL シ ミ ュ レーシ ョ ン がネ ッ ト リ ス ト シ ミ ュ レーシ ョ ン と 一致 し な く な り ます。 原則 と し て、 ザ イ リ ン
ク ス では ノ ンブ ロ ッ キ ン グ文をすべての順次エ レ メ ン ト に、 ブ ロ ッ キ ン グ文をすべての組み合わせエ レ メ ン ト に使用
す る こ と をお勧め し ます。 こ れに よ り 、 シ ミ ュ レーシ ョ ン イ ベン ト 順が予測 し やす く な り 、 レース コ ンデ ィ シ ョ ン
が発生 し に く く な り ます。
不完全なセ ン シ テ ィ ビ テ ィ リ ス ト
process 文 (VHDL) お よ び always 文 (Verilog) のセ ン シテ ィ ビ テ ィ リ ス ト は、process ブ ロ ッ ク (VHDL) ま たは always ブ
ロ ッ ク (Verilog) の動作を制御す る 信号の リ ス ト です。 セ ン シ テ ィ ビ テ ィ リ ス ト に含 ま れ る 信号の値が変化す る と 、
process ブ ロ ッ ク ま たは always ブ ロ ッ ク に含まれ る 文が実行 さ れます。
セ ン シ テ ィ ビ テ ィ リ ス ト が不完全な場合、 意図どお り のハー ド ウ ェ ア を取得で き て も 、 RTL と 合成後のシ ミ ュ レー
シ ョ ンは異な り ます。 合成ツールの中には、 セ ン シ テ ィ ビ テ ィ リ ス ト が不完全であ る こ と を示す警告 メ ッ セージが表
示 さ れ る も の も あ り ま す。 こ の よ う な警告 メ ッ セージが表示 さ れた場合は、 合成の ロ グ フ ァ イ ルを確認 し て、 RTL
コ ー ド を修正 し て く だ さ い。
次に、 process ブ ロ ッ ク お よ び always ブ ロ ッ ク を使用 し た簡単な AND フ ァ ン ク シ ョ ン の記述例を示 し ます。 セ ン シ
テ ィ ビ テ ィ リ ス ト には必要な信号がすべて含まれてい ます。 こ のブ ロ ッ ク か ら 、 1 つの LUT が生成 さ れます。
VHDL process の コ ー ド 記述例 1
process (a,b) begin
c <= a and b;
end process;
Verilog always ブ ロ ッ ク の コ ー ド 記述例 1
always @(a or b)
c <= a & b;
信号 b がセン シテ ィ ビ テ ィ リ ス ト に含まれていな く て も 、 合成ツールでは組み合わせ ロ ジ ッ ク (AND フ ァ ン ク シ ョ ン)
が生成 さ れますが、 RTL シ ミ ュ レーシ ョ ンで信号 b の変化に基づいて信号 c の評価が ト リ ガー さ れない可能性があ り
ます。こ のため、RTL シ ミ ュ レーシ ョ ンが実際の回路動作 と は異な る も のにな り ます。次は、警告 メ ッ セージの例です。
WARNING:[Synth 8-567] referenced signal <signal name> should be on the sensitivity
list [<file name>:<line number>]
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
90
第 4 章 : デザイ ンの作成
Verilog では、 組み合わせ always ブ ロ ッ ク を定義する 際、 ア ス タ リ ス ク のセ ン シテ ィ ビ テ ィ リ ス ト を使用 し ます。
always @(*)
こ れに よ り 、 完全に指定 さ れたセ ン シテ ィ ビ テ ィ リ ス ト が自動的に使用 さ れます。
注記 : SystemVerilog を使用す る 場合は、 always_comb を使用す る と 、 セ ン シテ ィ ビ テ ィ リ ス ト を指定 し た り ブ ロ ッ ク
の意図を記述 し た り す る 必要はな く な り ます。
RTL コ ー ド の遅延
RTL コ ー ド には遅延 (Wait ま たは AFTER (VHDL)、あ る いは #delay (Verilog) のいずれか) を使用 し ないで く だ さ い。
遅延は コ ン ポーネ ン ト に合成 さ れません。 明示的な遅延代入を含むデザ イ ンでは、 シ ミ ュ レーシ ョ ン さ れ る デザ イ ン
の機能 と 合成済みのデザ イ ンの機能が一致 し ない こ と があ り ます。
ラ ッ チの推論
次の よ う な組み合わせ ロ ジ ッ ク (順序 ロ ジ ッ ク ではない) の不完全な条件式では、 ラ ッ チが推論 さ れます。
•
else 節のない if 文
•
立ち上が り ま たは立ち下が り エ ッ ジの構文がない レ ジ ス タ
else 節の含まれていない if 文の VHDL コ ー ド 例
process (G, D) begin
if (G=‘1’) then
Q <= D;
end if;
end process;
else 節の含まれていない if 文の Verilog コ ー ド 例
always @(G or D)
if (G)
Q = D;
分岐ま たはエ ッ ジ を含め忘れ る こ と は よ く あ り ます。 合成 ロ グで ラ ッ チが推論 さ れたか ど う か を確認 し 、 推論 さ れた
ラ ッ チが意図 し た も のであ る か ど う か確認 し ます。
FPGA デザ イ ン では、 ラ ッ チを使用 し ない よ う に し て く だ さ い。 ラ ッ チを使用す る と 、 シ ミ ュ レーシ ョ ン で問題がな
く て も 、 タ イ ミ ン グ解析が困難にな り ます。
ラ ッ チが推論 さ れない よ う にす る には、合成ツールのマニ ュ アルで推奨 さ れてい る コ ーデ ィ ン グ ス タ イ ルを使用 し て
く だ さ い。
注記 : SystemVerilog を使用す る 場合、 ラ ッ チが必要であれば、 always_latch コ ン ス ト ラ ク ト を使用 し て ラ ッ チが意図
し た も のであ る こ と を記述 し てお く こ と をお勧め し ます。 こ れは、 デバ ッ グお よ びコ ー ド の確認時に役立ち ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
91
第 4 章 : デザイ ンの作成
不完全な リ セ ッ ト 指定
次の例では、 リ セ ッ ト 分岐内で reg1 のみが代入 さ れてお り 、 reg2 があ り ません。 合成では、 リ セ ッ ト がアサー ト さ
れた と き に reg2 がその値を保持す る 必要があ る と 想定 さ れ る ので、 リ セ ッ ト 信号が CE ピ ン に接続 さ れ、 別の制御
セ ッ ト が作成 さ れます。 詳細は、 「制御信号お よ び制御セ ッ ト 」 を参照 し て く だ さ い。
always @(posedge clk)
if (rst)
reg1<= 1’b0;
else
begin
reg1 <= din1;
reg2 <= din2;
end
ヒ ン ト : リ セ ッ ト を使用す る 場合は、 リ セ ッ ト 分岐に レ ジ ス タ が必ず含まれ る よ う に し て く だ さ い。
Vivado Design Suite HDL テ ン プ レー ト の使用
推奨 : RTL を作成ま たはザ イ リ ン ク ス プ リ ミ テ ィ ブ を イ ン ス タ ン シエー ト す る 際は、 Vivado Design Suite 言語テ ンプ
レー ト を使用 し て く だ さ い。 言語テ ン プ レー ト には、 ザ イ リ ン ク ス FPGA デバ イ ス アーキ テ ク チ ャ に対 し て最適な
推論が実行 さ れ る よ う にす る ための、 推奨コ ーデ ィ ン グ コ ン ス ト ラ ク ト が含まれます。 テ ンプ レー ト を使用す る と 、
設計が簡単にな り 、 多 く の場合、 結果が向上 し ます。
Vivado Design Suite IDE か ら テ ンプ レー ト にア ク セ スす る には、 次の手順に従い ます。
1.
[Windows] → [Language Template] を ク リ ッ ク し ます。
2.
必要なテ ンプ レー ト を選択 し ます。
効率的な HDL コ ーデ ィ ン グ
コ ー ド でのループの使用
HDL のループは、 コ ー ド 記述の労力を最小限にす る ために よ く 使用 さ れ ま す。 ハー ド ウ ェ アの推論では、 ループ を
展開す る こ と に よ り 構造が効率的ではな く な り 、パフ ォーマ ン ス (エ リ ア と タ イ ミ ン グの両方) が悪化す る こ と があ り
ます。 展開 さ れた ロ ジ ッ ク を使用可能な リ ソ ース にマ ッ プする と 、 最適な イ ンプ リ メ ン テーシ ョ ンにな ら ない可能性
があ り ます。 ザ イ リ ン ク ス では、 同 じ 機能を ツールが解釈 し やすい コ ン ス ト ラ ク ト を使用 し て記述す る こ と をお勧め
し ます。
た と えば、 次の よ う な for ループ を使用 し たプ ラ イ オ リ テ ィ MUX の コ ー ド を考え ます。
always@(posedge clk) begin
for(i=0;i<=3;i=i+1) begin
if(en[i]) dout[i] <= i;
end
end
同 じ 機能は case/if-else を使用 し て も 記述で き 、 その方がツールが解釈 し やす く 、 効率的なハー ド ウ ェ ア を生成
で き ます。
ただ し 、 バ ス反転 コ ー ド な ど、 for ループ を使用す る こ と で、 結果の品質に影響を与え る こ と な く 、 簡潔な コ ー ド を
記述で き る 場合 も あ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
92
第 4 章 : デザイ ンの作成
コ ー ド でのループの使用例
reg [3:0] dout;
integer i;
always@(posedge clk)
for(i=0;i<=3;i=i+1)
dout[3-i] <= din[i];
ヒ ン ト : 基本的な接続にループ を推論す る こ と はで き ま すが、 コ ー ド で ワ イ ヤ/ イ ン タ ー コ ネ ク ト だけでな く ハー ド
ウ ェ ア リ ソ ース を推論す る 場合は、 ループ を使用 し ない よ う にする こ と をお勧め し ます。
ス テー ト マ シ ンのガ イ ダ ン ス
ス テー ト マシ ンの コ ー ド 記述には複数の方法があ り ます。特定の コ ーデ ィ ン グ ス タ イ ルに従 う こ と に よ り 、合成ツー
ルの FSM (有限 ス テー ト マ シ ン) 抽出アルゴ リ ズ ム で ス テー ト マシ ン が正 し く 認識お よ び最適化 さ れ、 シ ミ ュ レ ー
シ ョ ン、 タ イ ミ ン グ、 お よ び回路のデバ ッ グ も 改善 さ れ る 可能性があ り ます。 ス テー ト マシ ンの選択は、 タ ーゲ ッ ト
アーキ テ ク チ ャ お よ びス テー ト マシ ンのサ イ ズ と 動作仕様に よ っ て異な り ます。 次に、 異な る イ ンプ リ メ ン テーシ ョ
ンでの基本的な ト レー ド オ フ について説明 し ます。
•
ミ ー リ ー vs ムーア形式
ス テー ト マ シ ン の イ ン プ リ メ ン テーシ ョ ン形式では、 ミ ー リ ー と ムーア の 2 つの形式が よ く 知 ら れてい ま す。
ミ ー リ ー と ムーアの主な違いは、 ミ ー リ ー ス テー ト マシ ン では出力値が現在の ス テー ト と ス テー ト マシ ンへの
入力の両方に基づいて決定 さ れ る のに対 し 、 ムーア ス テー ト マシ ン では出力値が ス テー ト のみに基づいて決定
さ れ る 点です。
通常、 FPGA デバ イ スへの イ ン プ リ メ ン テーシ ョ ン にはムーア ス テー ト マシ ン が適 し てい ま す。 こ れは、 ほ と
ん ど の場合、 ワ ン ホ ッ ト ス テー ト マシ ンがエン コ ー ド 方法に選択 さ れ、 出力値にデ コ ー ド ロ ジ ッ ク が少 し し か
必要ないか ら です。
バ イ ナ リ エン コ ー ド の場合は、 ミ ー リ ー マシ ン を使用す る こ と で、 さ ら に コ ンパ ク ト で高速な ス テー ト マシ ン
を構築で き る こ と も あ り ますが、 ス テー ト マシ ンの詳細を知 ら ない と 、 簡単には決定で き ません。
•
ワ ン ホ ッ ト vs バ イ ナ リ エン コ ー ド
ス テー ト マシ ン デザ イ ン のエ ン コ ー ド には、 複数の方法があ り ま す。 FPGA デザ イ ン に最 も よ く 使用 さ れ る の
は、 バ イ ナ リ と ワ ン ホ ッ ト の 2 つです。 近年、 ほ と ん ど の合成ツールに FSM 抽出アルゴ リ ズ ムが含まれ、 ス テー
ト マシ ン コ ー ド を認識 し て、 最適なエン コ ー ド 方法が選択 さ れ る よ う にな っ てい ます。 場合に よ っ ては、 デザ
イ ンのエン コ ー ド 方法を手動で コ ー ド 記述 し た方が、 よ り 詳細に制御で き 、 イ ンプ リ メ ン ト さ れたデザ イ ンのデ
バ ッ グが簡単にな る こ と も あ り ます。 ス テー ト マシ ンの抽出機能の詳細は、 ご使用の合成ツールの資料を参照 し
て く だ さ い。
•
安全性 vs 高速化
ス テー ト マシ ン を コ ー ド 記述す る 場合、安全性 と 高速化 と い う 通常競合す る 2 つの目的について理解 し てお く 必
要があ り ます。 安全なセーフ ス テー ト マシ ンの イ ンプ リ メ ン テーシ ョ ンでは、 ス テー ト マシ ンが不明の入力を
受信 し た り 、 不明の ス テー ト にな る と 、 既知の ス テー ト に回復 し 、 その ス テー ト か ら 再開 し ます。 こ の要件がな
い と (回復ス テー ト な し )、 多 く の場合、 よ り 少ない ロ ジ ッ ク で よ り 高速な ス テー ト マシ ン を イ ンプ リ メ ン ト で き
ます。 セーフ ス テー ト を設計す る には、 デフ ォ ル ト ス テー ト を ス テー ト マシ ンの case 文に含め、 合成ツールで
ス テー ト マシ ン エン コー ド がセーフ モー ド で イ ンプ リ メ ン ト さ れ る よ う に指定 し ます。 セーフ ス テー ト 機能が
必要な場合は、 通常バ イ ナ リ エ ン コ ー ド が最適です。 こ れは、 バ イ ナ リ エ ン コ ー ド では代入のない ス テー ト が
少ないためです。 セーフ ス テー ト マシ ンの イ ン プ リ メ ン ト に関す る 詳細は、 ご使用の合成ツールの資料を参照
し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
93
第 4 章 : デザイ ンの作成
•
列挙型
SystemVerilog には、 enum デー タ 型 (列挙型) が新規に追加 さ れてお り 、 ス テー ト マシ ンの作成に役立つ こ と があ
り ます。 enum デー タ 型を使用す る と 、 レ ジ ス タ のエン コ ー ド に暗示的にマ ッ プ し な く て も 、 指定 し た ス テー ト
を使用で ます。 こ れに よ り 、 合成での ス テー ト マシ ンのエン コ ー ド 方法が柔軟にな り 、 シ ミ ュ レーシ ョ ンで特定
の ス テー ト を名前で表示お よ び ク エ リ で き る ので、 全体的にデバ ッ グ し やす く な り ます。 こ れ ら の理由か ら 、 デ
ザ イ ン言語に SystemVerilog ま たは VHDL (常に こ の機能あ り ) を選択す る 場合は、enum 型の使用をお勧め し ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 16] を参照 し て く だ さ い。
階層境界を保持 し ない
階層境界を保持す る と 、 境界が固定 さ れ る こ と があ り 、 境界を超え た最適化に悪影響を与え る 可能性があ り ます。
た と えば、 次の コ ー ド 例について考え てみます。
assign ored_signal = din[3]|din[2];
sub sub_inst (.clk (clk),
.din0 (ored_signal),
.din1 (din[1:0]),
.dout (dout));
endmodule
module sub …..
assign din_tmp = |din1 || din0;
endmodule
こ の例では、 次の 2 つの OR が使用 さ れてい ます。
•
最上位の ored_signal
•
sub の dim_tmp
合成属性ま たは制約を使用 し て こ れ ら 2 つの OR 間の階層境界を保持する と 、 こ れ ら の 2 つの OR を結合で き ないの
で、 デザ イ ンのエ リ アお よ び タ イ ミ ン グに影響 し ます。 詳細は、 「適切なデザ イ ン階層の定義」 を参照 し て く だ さ い。
フ リ ッ プ フ ロ ッ プのエ ッ ジ を混合 し ない
ク ロ ッ ク の立ち上が り エ ッ ジ と 立ち下が り エ ッ ジの両方を使用 し て順次エ レ メ ン ト を ト リ ガーす る と 、 2 つの異な る
極性で ト リ ガー さ れ る エ レ メ ン ト 間のパ ス に 1/2 の ク ロ ッ ク サ イ ク ル し か使用で き な く な り 、 タ イ ミ ン グが厳 し く な
り ます。
ヒ ン ト : 両方の ク ロ ッ ク エ ッ ジが外部 DDR 型のデー タ の取 り 込みま たは供給に使用 さ れ る 場合は、 ザ イ リ ン ク ス の
IDDR/ODDR プ リ ミ テ ィ ブ を使用 し て く だ さ い。
デバ ッ グ ロ ジ ッ ク の使用
効率的な コ ー ド を記述す る と 、 デザ イ ン イ ンプ リ メ ン テーシ ョ ン も 効率的にな り ます。 不要な コ ン ス ト ラ ク ト があ る
と 、 不要な ロ ジ ッ ク が作成 さ れ る こ と にな り ます。 デザ イ ン フ ァ ン ク シ ョ ンには必要のない、 デザ イ ン解析に便利な
デバ ッ グ信号や ロ ジ ッ ク を設計す る 場合は、 こ の点に注意 し て く だ さ い。 多 く の場合、 こ の よ う なデバ ッ グ コ ー ド
は、 設計段階では役に立っ て も 、 後で不要にな り ます。 こ の よ う な ロ ジ ッ ク は、 デバ ッ グ目的にのみ使用 し 、 最終デ
ザ イ ンには残 ら ない よ う に設計 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
94
第 4 章 : デザイ ンの作成
こ のためには、 次の方法を使用す る こ と をお勧め し ます。
•
こ れ ら の コ ー ド セ ク シ ョ ン をデ ィ ス エーブルま たは イ ネーブルに設定可能な `ifdef、 パ ラ メ ー タ ー、 ま たは
ジ ェ ネ リ ッ ク で ロ ジ ッ ク を囲みます。
•
ロ ジ ッ ク の コ ー ド を、 後で コ メ ン ト ア ウ ト し やすい よ う に記述 し ます。
•
モジ ュ ールま たはエン テ ィ テ ィ のデバ ッ グ バージ ョ ン を別に作っ て、 こ の目的に使用 し ます。
ど の方法を選択 し て も 、 基本的な概念は一緒で、 デザ イ ン コ ー ド と イ ンプ リ メ ン ト 済みハー ド ウ ェ アのデバ ッ グに最
適な方法を使用す る だけではな く 、 不要にな っ た ロ ジ ッ ク を削除す る のに最適な方法を使用する こ と も 重要です。
デバ ッ グ方法の詳細は、 第 6 章 「 コ ン フ ィ ギ ュ レーシ ョ ンお よ びデバ ッ グ」 を参照 し て く だ さ い。
ポー ト 宣言での配列
VHDL では、 ポー ト を配列型 と し て宣言で き ますが、 ザ イ リ ン ク ス では次の理由か ら 推奨 し てい ません。
•
Verilog と の互換性がない
Verilog ではポー ト を配列型 と し て宣言で き ないため、 言語間での移植性が制限 さ れ ます。 ま た、 混合言語プ ロ
ジ ェ ク ト で コ ー ド を使用す る こ と も で き な く な り ます。
•
元の配列宣言を格納ま たは再生成で き ない
ポー ト を配列型 と し て宣言す る と 、元の配列宣言を格納お よ び再生成で き ません。EDIF ネ ッ ト リ ス ト フ ォーマ ッ
ト お よ びザ イ リ ン ク ス のデー タ ベース で も 、 配列の元の型宣言を格納で き ません。 そのため、 シ ミ ュ レーシ ョ ン
ネ ッ ト リ ス ト が生成 さ れ る と き に、 ポー ト が ど の よ う に宣言 さ れたのかに関す る 情報があ り ません。
出 力 さ れ る ネ ッ ト リ ス ト で、 ポ ー ト 宣 言 と 信 号 名 に 不 一 致 が 発 生 し ま す。 ネ ッ ト 名 を 保 持 す る た め に
KEEP_HIERARCHY 属性を使用で き る ため、 こ の問題は最上位のポー ト 宣言だけでな く 下位のポー ト 宣言で も 発
生 し ます。
•
ソ フ ト ウ ェ アの ピ ン名 と 一致 し ない
ポー ト を配列 と し て宣言す る と 、ソ フ ト ウ ェ アの ピ ン名が ソ ース コ ー ド の ピ ン名 と 相関 し ない も のにな る こ と が
あ り ます。 ツールでは、 各 I/O を個別の ラ ベル と し て処理する 必要があ る ため、 配列 と し て宣言 さ れたポー ト に
対応す る 名前が予測 さ れ る も の と 異な る 場合があ り ます。 こ れが原因で、 デザ イ ン制約を渡す こ と 、 デザ イ ン解
析、 お よ びデザ イ ン レ ポー ト の解析が困難にな り ます。
制御信号および制御セ ッ ト
制御セ ッ ト と は、 SRL、 LUTRAM、 ま たはレ ジ ス タ を駆動す る 制御信号 (セ ッ ト / リ セ ッ ト 、 ク ロ ッ ク イ ネーブル、 ク
ロ ッ ク ) を ま と めた も ので、 制御信号の固有の組み合わせに対 し て固有の制御セ ッ ト が作成 さ れ ます。 7 シ リ ーズ ス
ラ イ ス内ではすべての レ ジ ス タ で制御信号が共有 さ れ、 同 じ ス ラ イ ス にパ ッ ク で き る のは共通の制御セ ッ ト を使用す
る レ ジ ス タ のみなので、 こ の概念は重要です。
デザ イ ンに制御セ ッ ト が多数含まれ る と 、 無駄な リ ソ ース が多 く 含まれた り 、 配置オプシ ョ ンが少な く な る こ と があ
る ので、 消費電力が増加 し 、 パフ ォーマ ン ス が低下 し ます。 制御セ ッ ト を少な く する と 、 配置のオプシ ョ ンが多 く な
り 、 柔軟性 も 向上す る ので、 通常結果は改善 し ます。 UltraScale™ デバ イ ス では、 CLB 内での制御セ ッ ト のマ ッ プの
柔軟性は高 く な り ますが、 ロ ジ ッ ク のグループ を最大限に柔軟に配置で き る よ う に、 固有の制御セ ッ ト の数を制限す
る こ と をお勧め し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
95
第 4 章 : デザイ ンの作成
次の表に、ザ イ リ ン ク ス 7 シ リ ーズ FPGA を使用 し たデザ イ ン で許容 さ れ る 制御セ ッ ト の数に関す る ガ イ ド ラ イ ン を
示 し ます。
表 4-1 : 7 シ リ ーズ FPGA の制御セ ッ ト ガ イ ド ラ イ ン
条件
通常許容範囲
< ス ラ イ ス合計の
解析が必要
7.5%b
> ス ラ イ ス合計の
デザイ ンの変更を推奨
15%a、 b
固有の制御セ ッ ト 数a
制御セ ッ ト の制限によ
り 失われる レ ジ ス タ 数a
ス ラ イ ス使用率 < 75%、
失われ る レ ジ ス タ 数 < 4%c
ス ラ イ ス使用率 < 85%、
失われ る レ ジ ス タ 数 < 2%c
> ス ラ イ ス合計の 25%b
制御セ ッ ト 数を減 ら す と 、
使用率お よ びパ フ ォ ーマ ン ス
が向上 し ます。
ス ラ イ ス使用率 < 90%、
失われ る レ ジ ス タ 数 < 1%c
a. report_utilization お よ び report_control_sets -verbose を実行 し ます。
b. ス ラ イ ス数は、 デバ イ ス の製品表を参照 し て く だ さ い。 た と えば、 XC7VX690T には 108,300 ス ラ イ ス が含ま れます。
許容 : 108,300 ス ラ イ ス x 7.5% = 8122 制御セ ッ ト
要解析 : 108,300 ス ラ イ ス x 15% = 16,245 制御セ ッ ト
c. 使用可能な レ ジ ス タ の合計
ヒ ン ト : UltraScale デバ イ ス では、制御セ ッ ト のマ ッ プお よ び使用の柔軟性が 7 シ リ ーズ よ り も 高 く 、制御セ ッ ト 使用
のガ イ ド ラ イ ンはそれほ ど厳 し く あ り ませんが、 最高のデサ イ ン最適化、 配置、 お よ び移植性を得 る ため、 7 シ リ ー
ズのガ イ ド ラ イ ンに従 う こ と をお勧め し ます。
リセッ ト
リ セ ッ ト は、 最 も よ く 使用 さ れ る 重要な制御信号の 1 つです。 リ セ ッ ト は、 デザ イ ンのパフ ォーマ ン ス、 エ リ ア、 お
よ び消費電力に大 き く 影響 し ます。
推論 さ れた同期 コ ー ド には、 次の よ う な リ ソ ース が使用 さ れます。
•
LUT
•
レジス タ
•
シ フ ト レ ジ ス タ LUT (SRL)
•
ブ ロ ッ ク ま たは LUT メ モ リ
•
DSP48 レ ジ ス タ
リ セ ッ ト の選択お よ び使用が こ れ ら の コ ン ポーネ ン ト の選択に も 影響 し 、 デザ イ ンに対 し て最適な リ ソ ース が使用 さ
れない こ と があ り ます。 リ セ ッ ト を誤っ て配列に配置す る と 、 1 つのブ ロ ッ ク RAM が推論 さ れ る 代わ り に、 何千 も
の レ ジ ス タ が推論 さ れて し ま う 可能性があ り ます。
乗算器の入力ま たは出力に非同期 リ セ ッ ト が記述 さ れ る と 、 レ ジ ス タ が DSP ブ ロ ッ ク ではな く 、 ス ラ イ ス に配置 さ
れ る こ と があ り ます。 こ の よ う な状況は リ ソ ース量に影響 し 、 全体的な消費電力 と パフ ォーマ ン ス に も かな り 影響 し
ます。
リ セ ッ ト を使用する状況 と 使用する場所
FPGA デバ イ ス には、 専用のグ ロ ーバル セ ッ ト / リ セ ッ ト 信号 (GSR) が含まれます。 こ れ ら の信号は、 デバ イ ス コ ン
フ ィ ギ ュ レーシ ョ ンの最後にすべての レ ジ ス タ を HDL コ ー ド で指定 し た初期値に初期化 し ます。
初期値が指定 さ れていない場合は、 デフ ォ ル ト で 0 にな り ます。 こ れに よ り 、 HDL コ ー ド で指定 し た リ セ ッ ト ト ポ
ロ ジに関係な く 、 すべての レ ジ ス タ が コ ン フ ィ ギ ュ レーシ ョ ン終了時に既知の ス テー ト にな り ます。 電源投入時にデ
バ イ ス を初期化す る 目的のためだけに、 グ ロ ーバル リ セ ッ ト の コ ー ド を記述する 必要はあ り ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
96
第 4 章 : デザイ ンの作成
デザ イ ンが リ セ ッ ト を必要 と す る 状況 と 必要 と し ない状況を判断す る 際は、 特に注意が必要です。 適切に動作 さ せ る
ために制御パ ス ロ ジ ッ ク に リ セ ッ ト が必要な場合が多 く あ り ますが、 デー タ パ ス ロ ジ ッ ク には通常 リ セ ッ ト が必要
でない場合が多いです。 リ セ ッ ト の使用を抑え る と 、 次の よ う にな り ます。
•
リ セ ッ ト ネ ッ ト の全体的な フ ァ ン ア ウ ト が制限 さ れ る
•
リ セ ッ ト の配線に必要な イ ン タ ー コ ネ ク ト の量が削減 さ れ る
•
リ セ ッ ト パス の タ イ ミ ン グが簡潔にな る
•
パフ ォーマ ン ス、 エ リ ア、 消費電力が全体的に改善す る こ と が多い
推奨 : 各同期ブ ロ ッ ク を評価 し て、 最適な動作に リ セ ッ ト が必要か ど う かを判断 し てみて く だ さ い。 リ セ ッ ト が実際
に必要か ど う か を確認せずに、 デフ ォ ル ト で記述 し ないで く だ さ い。
リ セ ッ ト が必要か ど う かは、 論理シ ミ ュ レーシ ョ ンで簡単に判断で き ます。
リ セ ッ ト を記述 し ない ロ ジ ッ ク では、 ロ ジ ッ ク を マ ッ プす る FPGA リ ソ ース を選択す る 際の柔軟性が増 し ます。
た と えば次を考慮す る こ と に よ り 、 合成ツールでその コ ー ド に最適な リ ソ ース が選択 さ れ、 結果が改善す る こ と があ
り ます。
•
リ ク エ ス ト さ れた機能
•
パフ ォーマ ン ス要件
•
使用可能なデバ イ ス リ ソ ース
•
消費電力
同期 リ セ ッ ト vs 非同期 リ セ ッ ト
リ セ ッ ト が必要な場合は、 同期 リ セ ッ ト を記述す る こ と をお勧め し ます。 同期 リ セ ッ ト には、 非同期 リ セ ッ ト よ り も
利点が多 く あ り ます。
•
同期 リ セ ッ ト を使用す る と 、 FPGA デバ イ ス アーキ テ ク チ ャ の よ り 多 く の リ ソ ース エ レ メ ン ト に直接マ ッ プで
き ます。
•
DSP48 お よ びブ ロ ッ ク RAM の よ う な一部の リ ソ ース には、ブ ロ ッ ク 内の レ ジ ス タ エ レ メ ン ト に同期 リ セ ッ ト し
かあ り ません。 こ れ ら のエ レ メ ン ト に関連す る レ ジ ス タ エ レ メ ン ト に非同期 リ セ ッ ト が使用 さ れ る と 、 こ れ ら の
レ ジ ス タ が こ れ ら のブ ロ ッ ク に直接推論 さ れない可能性があ り ます。
•
非同期 リ セ ッ ト は、 一般的な ロ ジ ッ ク 構造のパフ ォーマ ン ス に も 影響 し ます。 ザ イ リ ン ク ス FPGA の汎用レ ジ ス
タ はセ ッ ト / リ セ ッ ト を非同期ま たは同期のいずれかにプ ロ グ ラ ム で き る ので、非同期 リ セ ッ ト を使用 し て も 問題
ない と 思われがちですが、 こ れは間違いです。 グ ロ ーバル非同期 リ セ ッ ト が使用 さ れ る と 、 制御セ ッ ト は増加 し
ませんが、 こ の リ セ ッ ト 信号をすべての レ ジ ス タ エ レ メ ン ト に配線する 必要があ る ので、 タ イ ミ ン グは よ り 複雑
にな り ます。 詳細は、 「 タ イ ミ ン グが設定 さ れていない リ セ ッ ト の使用」 を参照 し て く だ さ い。
•
非同期 リ セ ッ ト を使用す る 場合は、非同期 リ セ ッ ト のデ ィ アサー ト を同期す る よ う に し て く だ さ い。詳細は、「デ
バ イ ス の ス タ ー ト ア ッ プの制御お よ び同期化」 を参照 し て く だ さ い。
•
集積度の高い配置や精度の高い配置が必要な場合は、 同期 リ セ ッ ト の方が制御セ ッ ト を柔軟にマ ッ プ し 直す こ と
がで き ます。 最適に配置 さ れた ス ラ イ ス内で互換性のない リ セ ッ ト が検出 さ れた場合、 同期 リ セ ッ ト であればレ
ジ ス タ のデー タ パス にマ ッ プ し 直す こ と がで き ます。 こ れに よ り 、 ワ イ ヤ長が短 く な り 、 集積度が増加 し て、 適
切な フ ィ ッ ト お よ びパフ ォーマ ン ス の向上が可能にな り ます。
•
回路を適切に リ セ ッ ト し て安定化 さ せ る ため、非同期 リ セ ッ ト にマルチサ イ ク ル アサー ト が必要な場合があ り ま
す。 同期 リ セ ッ ト では、 タ イ ミ ン グ制約が適切に設定 さ れていれば、 こ の要件は必要あ り ません。
•
非同期 リ セ ッ ト に よ り BRAM、 LUTRAM、 お よ び SRL の メ モ リ の内容が破損す る 可能性があ る 場合は、 同期 リ
セ ッ ト を使用 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
97
第 4 章 : デザイ ンの作成
制御信号の極性 (ア ク テ ィ ブ High vs ア ク テ ィ ブ Low)
ク ロ ッ ク イ ネーブルや リ セ ッ ト の よ う な フ ァ ン ア ウ ト の大 き い制御信号の場合は、 デザ イ ン全体でア ク テ ィ ブ High
を使用す る のが最適です。 ブ ロ ッ ク がア ク テ ィ ブ Low の リ セ ッ ト ま たは ク ロ ッ ク イ ネーブルで動作する 場合、 イ ン
バー タ ーがデザ イ ンに追加 さ れます。 こ の場合、 関連す る タ イ ミ ン グ ペナルテ ィ があ り 、 イ ンバー タ ーを最適化す る
ために合成オプシ ョ ンが フ ラ ッ ト 化 (flat) ま たは再構築 (rebuilt) に制限 さ れた り 、 カ ス タ ム ソ リ ュ ーシ ョ ンの イ ンプ
リ メ ン テーシ ョ ンが必要 と な っ た り し ます。
ザ イ リ ン ク ス FPGA の ス ラ イ スお よ び内部 ロ ジ ッ ク の ク ロ ッ ク イ ネーブルお よ び リ セ ッ ト は、デフ ォ ル ト でア ク テ ィ
ブ High です。 ア ク テ ィ ブ Low の リ セ ッ ト ま たは ク ロ ッ ク イ ネーブルを記述す る と 、 それ ら の配線用に LUT が追加
さ れ、 単純な イ ンバー タ ー と し て使用 さ れます。
UltraScale デバ イ ス では、 リ セ ッ ト にプ ロ グ ラ ム可能な反転があ る ので リ セ ッ ト の極性は柔軟ですが、 リ セ ッ ト の極
性を一貫 し た も のに し (すべて ア ク テ ィ ブ High ま たはすべて ア ク テ ィ ブ Low)、 ロ ジ ッ ク のパ ッ ク が最大限に柔軟に
実行 さ れ る よ う にす る こ と をお勧め し ます。 イ ネーブル信号には反転はないので、 常にア ク テ ィ ブ High を使用 し て
く だ さ い。
X-Ref Target - Figure 4-2
Top
Flip-Flop
CE
Clock
Enable
Partition
LUT6
Flip-Flop
Old Netlist
CE
Flip-Flop
CE
LUT6
LUT6
KEEP_HIERARCHY
Core
Flip-Flop
Flip-Flop
CE
CE
LUT6
LUT6
X13426
図 4-2 : ア ク テ ィ ブ Low によ っ て追加 さ れた イ ンバー タ ー
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
98
第 4 章 : デザイ ンの作成
リ セ ッ ト のコー ド 例 1
次の コ ー ド 例では、 パ イ プ ラ イ ン処理の多い乗算器 と パ リ テ ィ 生成フ ァ ン ク シ ョ ンが構築 さ れます。
// Reset synchronization
always @(posedge CLK) begin
reset_sync <= SYS_RST;
reset_reg <= reset_sync;
end
// Uses active-Low, async reset
// Also using an active-Low CE
always @(posedge CLK, negedge reset_reg)
if (!reset_reg) begin
data1_reg <= 16’h0000;
data2_reg <= 16’h0000;
DATA_VALID <= 1’b0;
end else if (!NEW_DATA) begin
data1_reg <= DATA1;
data2_reg <= DATA2;
DATA_VALID <= data_valid_delay[3];
end
// Uses an async reset when a reset is not necessary
always @(posedge CLK, negedge reset_reg)
if (!reset_reg) begin
parity <= 4’h0;
data1_pipe <= 32’h00000000;
data2_pipe <= 32’h00000000;
mult_data_reg <= 32’h00000000;
mult_pipe <= 32’h00000000;
mult_pipe2 <= 32’h00000000;
mult_par_reg <= 36’h000000000;
mult_par_pipe <= 36’h000000000;
data_valid_delay <= 4’h0;
DATA_OUT <= 36’h000000000;
end else begin
data1_pipe <= data1_reg;
data2_pipe <= data2_reg;
mult_data_reg <= data1_pipe * data2_pipe;
mult_pipe <= mult_data_reg;
parity <= {^mult_pipe[31:24], ^mult_pipe[23:16],
^mult_pipe[15:8], ^mult_pipe[7:0]};
mult_pipe2 <= mult_pipe;
mult_par_reg <= {parity[3], mult_pipe2[31:24],
parity[2], mult_pipe2[23:16],
parity[1], mult_pipe2[15:8],
parity[0], mult_pipe2[7:0]};
data_valid_delay <= {data_valid_delay[2:0], NEW_DATA};
mult_par_pipe <= mult_par_reg;
DATA_OUT <= mult_par_pipe;
end
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
99
第 4 章 : デザイ ンの作成
リ セ ッ ト のコー ド 例 2
上記の コ ー ド 例は、 次の よ う に書 き 直す こ と がで き ます。
•
不必要な リ セ ッ ト を削除
•
非同期 リ セ ッ ト を同期 リ セ ッ ト に変更
•
ア ク テ ィ ブ Low リ セ ッ ト を ア ク テ ィ ブ High に変更
// Reset synchronization, inversion moved here
always @(posedge CLK) begin
reset_sync <= SYS_RST;
reset_reg <= ~reset_sync;
end
// Notice the inversion above
// sync reset has become active High, though:
// from the top level port (SYS_RST) perspective,
// it is still active Low.
// Also changed to active-High CE
always @(posedge CLK)
if (reset_reg) begin
data1_reg <= 16’h0000;
data2_reg <= 16’h0000;
DATA_VALID <= 1’b0;
end else if (NEW_DATA) begin
data1_reg <= DATA1;
data2_reg <= DATA2;
DATA_VALID <= data_valid_delay[3];
end
// Removed unnecessary reset on datapath
always @(posedge CLK) begin
data1_pipe <= data1_reg;
data2_pipe <= data2_reg;
mult_data_reg <= data1_pipe * data2_pipe;
mult_pipe <= mult_data_reg;
parity <= {^mult_pipe[31:24], ^mult_pipe[23:16],
^mult_pipe[15:8], ^mult_pipe[7:0]};
mult_pipe2 <= mult_pipe;
mult_par_reg <= {parity[3], mult_pipe2[31:24],
parity[2], mult_pipe2[23:16],
parity[1], mult_pipe2[15:8],
parity[0], mult_pipe2[7:0]};
data_valid_delay <= {data_valid_delay[2:0], NEW_DATA};
mult_par_pipe <= mult_par_reg;
DATA_OUT <= mult_par_pipe;
end
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
100
第 4 章 : デザイ ンの作成
次の表で、 1 つ目の コ ー ド 例 と 2 つ目の コ ー ド 例の イ ンプ リ メ ン テーシ ョ ン結果を比較 し ます。
表 4-2 : 7 シ リ ーズ デバイ スの コ ー ド 例の比較
パラ メ ー タ ー
結果
リ ソ ース
リ ソ ース タ イ プに よ っ て 33% ~ 75% 削減
パフ ォーマ ン ス
36% 改善
タ イ ミ ン グ エン ド ポ イ ン ト 数
40% 削減
220 MHz でのダ イ ナ ミ ッ ク 消費電力
40% 削減
ま た、 2 つ目の コ ー ド 例の方が簡潔です。
リ セ ッ ト のコー ド 例 3
デザ イ ン にア ク テ ィ ブ Low の リ セ ッ ト が含ま れ る こ と があ り ます。 た と えば、 AXI 規格では リ セ ッ ト はア ク テ ィ ブ
Low と 指定 さ れてい ます。非同期 リ セ ッ ト にはデ ィ アサー ト の タ イ ミ ン グが適切にな る よ う に同期回路が含まれ る の
で、 こ の同期回路に多少の変更を加え る と LUT の数を削減で き る こ と があ り ます。 非同期 リ セ ッ ト を同期化す る 回
路の例は、 「デバ イ ス の ス タ ー ト ア ッ プの制御お よ び同期化」 を参照 し て く だ さ い。
変更前の HDL コ ー ド :
always @ (posedge clk or negedge rst_n) //async. negedge reset
begin
if (!rst_n)
synchronizer_ckt <= 4’b0; // 4 stage reset syncornization
else
synchronizer_ckt <= {synchornizer_ckt[2:0], 1’b1};
end
assign synchronized_rst_n = synchronizer_ckt[3]; // the final reset signal which is
used to reset the actual flops in the design
次の図に黒丸で示す よ う に、 リ セ ッ ト パ ス に LUT があ り ます。 リ セ ッ ト 信号は多 く の フ リ ッ プ フ ロ ッ プに入力 さ れ
る ので、 こ の LUT の遅延を削減す る と 、 多 く のパ ス に影響する 可能性があ り ます。
X-Ref Target - Figure 4-3
図 4-3 : リ セ ッ ト パスの LUT
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
101
第 4 章 : デザイ ンの作成
変更後の HDL コ ー ド :
always @ (posedge clk or negedge rst_n) //async. negedge reset
begin
if (!rst_n)
synchronizer_ckt <= 4’hf // 4 stage reset syncornization
else
synchronizer_ckt <= {synchornizer_ckt[2:0], 1’b0};
end
assign synchronized_rst_n = ~synchronizer_ckt[3]; // the final reset signal which is
used to reset the actual flops in the design
sychronizer_ckt に反転 ロ ジ ッ ク が接続 さ れ、 別の イ ンバー タ ーが最終的な synchronized_rst_n に追加 さ れ
て極性が元に戻 さ れます。 こ の よ う に同期回路に変更を少 し 加え る と 、 次の図に示す よ う に、 同期回路 と デザ イ ンの
フ リ ッ プ フ ロ ッ プに入力 さ れ る 実際の信号の間にあ る LUT を削除で き ます。
X-Ref Target - Figure 4-4
図 4-4 : 変更後の リ セ ッ ト 回路
セ ッ ト と リ セ ッ ト を同 じ process または always ブ ロ ッ ク に記述 し ない
ザ イ リ ン ク ス FPGA デバ イ ス の レ ジ ス タ には、 ビル ト イ ンのセ ッ ト ま たは リ セ ッ ト 機能があ り ますが、 両方を同時に
実行す る こ と はで き ません。 そのため、同期セ ッ ト と リ セ ッ ト の両方を使用す る 場合、デー タ パ ス に信号が追加 さ れ、
配置、 フ ァ ン ア ウ ト 、 タ イ ミ ン グに よ っ てはエ リ アお よ び タ イ ミ ン グに影響す る こ と があ り ます。 セ ッ ト と リ セ ッ ト
を同 じ シーケ ン シ ャ ル ブ ロ ッ ク に記述する のは、 絶対に必要な場合にのみにする こ と をお勧め し ます。
非同期セ ッ ト お よ び リ セ ッ ト を使用す る と 、 リ ソ ース使用量お よ び タ イ ミ ン グへの影響は さ ら に顕著なので、 回避す
る 必要があ り ます。 レ ジ ス タ に非同期 リ セ ッ ト と 非同期セ ッ ト 信号の両方が含まれ る 場合や、 値が変動す る 非同期制
御信号が含まれ る 場合、 正 し く タ イ ミ ン グ解析で き ない回路が生成 さ れます。 そのため、 非同期セ ッ ト お よ び リ セ ッ
ト 条件が必要な場合は、 少な く と も 1 つのセ ッ ト ま たは リ セ ッ ト 条件を同期 イ ベン ト に変更す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
102
第 4 章 : デザイ ンの作成
ク ロ ッ ク イ ネーブル
ク ロ ッ ク イ ネーブルは、 う ま く 使用す る と 、 エ リ アやパフ ォーマ ン ス にほ と ん ど影響を与え る こ と な く 、 デザ イ ンの
消費電力を削減で き ますが、 間違っ て使用す る と 、 次の よ う な問題が発生す る こ と があ り ます。
•
エ リ アの増加
•
集積度の減少
•
消費電力の増加
•
パフ ォーマ ン ス の悪化
多 く の制御セ ッ ト を含むデザ イ ンでは、フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク イ ネーブルが制御セ ッ ト 数が多 く な る 主な原
因 と な っ てい る こ と が よ く あ り ます。
ク ロ ッ ク イ ネーブルの作成
ク ロ ッ ク イ ネーブルは、 不完全な条件文が同期ブ ロ ッ ク に記述 さ れ る と 作成 さ れます。 ク ロ ッ ク イ ネーブルは、 前
の条件が満た さ れない場合に、 最後の値を保持する よ う に推論 さ れます。 こ れが必要な機能であれば こ の よ う に コ ー
ド を記述 し て も 問題あ り ませんが、 前の条件値が満た さ れない場合に出力が ド ン ト ケ ア と な る こ と があ り ます。 こ の
よ う な場合は、 定義 さ れた定数 (信号に 1 か 0 を代入) を使用 し て、 条件を閉 じ る (else 文を使用する ) こ と をお勧め し
ます。
ほ と ん ど の イ ンプ リ メ ン テーシ ョ ンでは、 こ れに よ っ て ロ ジ ッ ク が追加 さ れ る こ と はな く 、 ク ロ ッ ク イ ネーブル も 不
要ですが、 大 き いバス の場合に値が保持 さ れ る ク ロ ッ ク イ ネーブルを推論する と 、 消費電力が削減 さ れ る こ と があ り
ます。 基本的には、 推論 さ れ る レ ジ ス タ の数が少ない と き には ク ロ ッ ク イ ネーブルを使用す る と 制御セ ッ ト 数が増加
す る ので有害 と な る 可能性があ り ますが、 レ ジ ス タ 数が多い場合は利点が多いので、 ク ロ ッ ク イ ネーブルの使用をお
勧め し ます。
リ セ ッ ト および ク ロ ッ ク イ ネーブルの優先順位
ザ イ リ ン ク ス FPGA デバ イ ス では、 非同期ま たは同期セ ッ ト / リ セ ッ ト の ど ち ら が記述 さ れていて も 、 セ ッ ト / リ セ ッ
ト が ク ロ ッ ク イ ネーブル よ り も 優先 さ れ る よ う に全レ ジ ス タ が構築 さ れてい ます。 最適な結果を取得する には、同期
ブ ロ ッ ク 内の if/else 文で常に ク ロ ッ ク イ ネーブル (必要 と 判断 し た場合) よ り も 前にセ ッ ト / リ セ ッ ト を記述す る こ と
をお勧め し ます。 ク ロ ッ ク イ ネーブルを最初に記述す る と 、 同期の場合は リ セ ッ ト がデー タ パス に接続 さ れ、 非同期
の場合は追加 ロ ジ ッ ク が作成 さ れます。
ク ロ ッ キ ン グの詳細は、 「 ク ロ ッ キ ン グ ガ イ ド ラ イ ン」 を参照 し て く だ さ い。
制御信号に関する ヒ ン ト
•
グ ロ ーバル リ セ ッ ト が本当に必要か ど う か を確認
•
非同期制御信号は避け る
•
ク ロ ッ ク 、 イ ネーブル、 リ セ ッ ト の極性を統一す る
•
セ ッ ト お よ び リ セ ッ ト を同 じ レ ジ ス タ エ レ メ ン ト に記述 し ない
•
非同期 リ セ ッ ト が絶対に必要な場合は、 そのデ ィ アサー ト を同期す る
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
103
第 4 章 : デザイ ンの作成
推論に対する理解
コ ー ド は、 最終的にデバ イ ス に存在す る リ ソ ー ス にマ ッ プ さ れ ま す。 タ ーゲ ッ ト アーキ テ ク チ ャ の主な演算、 ス ト
レージ、 ロ ジ ッ ク エ レ メ ン ト について理解 し 、 デザ イ ン の機能を記述 し なが ら コ ー ド がマ ッ プ さ れ る ハー ド ウ ェ ア
リ ソ ース を予測 し て く だ さ い。 コ ー ト が ど のハー ド ウ ェ ア リ ソ ース にマ ッ プ さ れ る かを理解 し てお く と 、発生す る 可
能性のあ る 問題を早期に特定で き ます。
次の例では、 ハー ド ウ ェ ア リ ソ ース と マ ッ プを理解す る こ と に よ り 、 次の よ う なデザ イ ンに関す る 決定を下す こ と が
で き る こ と を示 し ます。
•
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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
104
第 4 章 : デザイ ンの作成
RAM および ROM の推論
RAM お よ び ROM は複数の方法で指定で き ます。 それぞれに利点 と 欠点があ り ます。
•
推論
利点 :
°
移植性が高い
°
読みやす く 理解 し やすい
°
自己文書化
°
シ ミ ュ レーシ ョ ンが高速
欠点 :
°
使用可能な RAM コ ン フ ィ ギ ュ レーシ ョ ンすべてにはア ク セ ス で き ない可能性あ り
°
最適な結果にな ら ない可能性あ り
推論は通常良い結果が得 ら れ る ので推奨 さ れ る 方法ですが、 使用方法がサポー ト さ れない場合や、 パフ ォーマ ン
ス、 エ リ ア、 ま たは消費電力の結果が最適にな ら ない場合な どは例外です。 こ の よ う な場合は、 別の方法を使用
し て く だ さ い。
RAM を推論す る 場合は、 Vivado ツールに含まれ る HDL テ ンプ レー ト の使用をお勧め し ます。 前述 し た よ う に、
非同期 リ セ ッ ト を使用す る と RAM の推論に影響が出る ので、 使用 し ない よ う に し て く だ さ い。 詳細は、 「Vivado
Design Suite HDL テ ンプ レー ト の使用」 を参照 し て く だ さ い。
•
RAM プ リ ミ テ ィ ブの直接 イ ン ス タ ン シエーシ ョ ン
利点 :
°
イ ンプ リ メ ン テーシ ョ ン を詳細に制御可能
°
ブ ロ ッ ク のすべての機能にア ク セ ス可能
欠点 :
•
°
コ ー ド の移植性が低い
°
文字数が多 く 、 機能お よ び意図を理解 し に く い
IP カ タ ロ グか ら の コ アの使用
利点 :
°
複数 コ ン ポーネ ン ト を使用す る 場合に よ り 最適な結果が得 ら れ る
°
指定お よ び設定がシ ンプル
欠点 :
°
コ ー ド の移植性が低い
°
コ ア を管理す る 必要があ る
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
105
第 4 章 : デザイ ンの作成
RAM を イ ン プ リ メ ン ト する際のパ フ ォ ーマ ン スに関する考慮事項
メ モ リ エ レ メ ン ト を効率的に推論す る には、 パフ ォーマ ン ス に影響する 次の要因について考慮す る 必要があ り ます。
•
出力パ イ プ ラ イ ン レ ジ ス タ の使用
出力レ ジ ス タ の使用は優れたパフ ォーマ ン ス のデザ イ ンには必須で、 すべてのデザ イ ンに推奨 さ れます。 こ れに
よ り 、 ブ ロ ッ ク RAM の clock-to-out タ イ ミ ン グが改善 さ れ ま す。 ま た、 ス ラ イ ス の出力 レ ジ ス タ の clock-to-out
タ イ ミ ン グはブ ロ ッ ク RAM レ ジ ス タ よ り も 高速なので、 2 つ目の出力レ ジ ス タ があ る と 効率的です。 両方の レ
ジ ス タ を使用す る と 、 読み出 し レ イ テ ン シの合計は 3 にな り ます。 こ れ ら の レ ジ ス タ を推論す る 場合は、 レ ジ ス
タ が RAM 配列 と 同 じ 階層レベルにあ る 必要があ り ます。 こ れに よ り 、 ツールでブ ロ ッ ク 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 ではな く LUT RAM が推論 さ れ、メ モ リ に リ セ ッ ト を追加す る と LUT RAM
ではな く レ ジ ス タ 配列に イ ンプ リ メ ン ト さ れます。
適切な ブ ロ ッ ク RAM 書き込みモー ド の選択
ザ イ リ ン ク ス ブ ロ ッ ク RAM では、 書 き 込みモー ド を変更で き 、 こ れが機能、 動作、 消費電力に影響す る 可能性があ
り ます。 特定の操作に対 し て最適な書 き 込みモー ド を選択す る には、 次のガ イ ド ラ イ ンに従っ て く だ さ い。
•
まず機能を考慮
書 き 込みモー ド を選択す る 際は、 まず機能を考慮 し ます。 ブ ロ ッ ク RAM の特定ポー ト に書 き 込む際、 出力 さ れ
る 読み出 し デー タ が特定の値にな る よ う にす る 必要があ る か ど う か を考慮 し ます。 書 き 込み中にブ ロ ッ ク RAM
の前の値を読み出す必要があ る 場合は READ_FIRST を選択 し 、ブ ロ ッ ク RAM に書 き込まれ る新 し いデー タ を読
み出す必要があ る 場合は WRITE_FIRST を選択 し ます。 書 き 込み中に読み出 さ れ る デー タ を気に し ない場合は、
次に メ モ リ 競合について考慮 し ます。
•
READ_FIRST モー ド の使用
デ ュ アル ポー ト メ モ リ を イ ンプ リ メ ン ト し ていて、同 じ ク ロ ッ ク をブ ロ ッ ク RAM に接続す る 際に、 メ モ リ 競合
が発生 し ない こ と を保証で き ない場合は、 READ_FIRST を選択 し ます。 READ_FIRST モー ド を使用す る と 、 同
じ ク ロ ッ ク が両方のブ ロ ッ ク RAM ポー ト に接続 さ れた場合に、 メ モ リ 競合が発生 し ません。 詳細は、 『7 シ リ ー
ズ FPGA メ モ リ リ ソ ース ユーザー ガ イ ド 』 (UG473) [参照 42] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
106
第 4 章 : デザイ ンの作成
•
WRITE_FIRST モー ド の使用
7 シ リ ーズのブ ロ ッ ク RAMを幅の広い SDP モー ド (72 ビ ッ ト 幅の RAMB36 ま たは 36 ビ ッ ト 幅の RAMB18) で使
用 し 、 両方 の ポ ー ト に 異 な る ク ロ ッ ク が 使用 さ れ て い る か 読み出 し /書 き 込み競合 を 回避 で き る 場合 は、
WRITE_FIRST モー ド を使用 し ます。 幅の広い SDP モー ド では、 こ のモー ド が消費電力が最 も 低 く 、 推奨 さ れ る
モー ド です。
•
NO_CHANGE モー ド の使用
それ以外のすべての場合は、 NO_CHANGE モー ド の使用をお勧め し ま す。 NO_CHANGE モー ド を使用す る と 、
最適な消費電力特性が得 ら れ る ので、 書 き 込み中の読み出 し で競合の心配がない場合に、 ブ ロ ッ ク RAM お よ び
関連す る イ ン タ ー コ ネ ク ト の消費電力が削減 さ れます。
FIFO の作成
FIFO (First-In, First-Out) バ ッ フ ァ ーは、 FPGA デザ イ ンで最 も よ く 使用 さ れ る メ モ リ の 1 つです。
注記 : 非同期 FIFO バ ッ フ ァ ーは、 Async FIFO ま たはマルチ レー ト FIFO と も 呼ばれます。
FIFO バ ッ フ ァ ーは 1 つの ク ロ ッ ク ド メ イ ンか ら 別の ク ロ ッ ク ド メ イ ンへのデー タ 転送に よ く 使用 さ れます。FIFO を
作成お よ び使用す る 際には、 評価す る 方法お よ び ト レー ド オ フ が複数あ り ます。
FIFO に適切な入力方法お よび リ ソ ースの選択
ザ イ リ ン ク ス FPGA デバ イ ス には、 専用 FIFO 回路を含むブ ロ ッ ク RAM があ り ます。 通常は、 最適なエ リ ア、 消費
電力、 パフ ォーマ ン ス、 お よ び MTBF (平均故障間隔) 特性を得 る ため、 こ のブ ロ ッ ク RAM を使用使用す る こ と をお
勧め し ます。
ハー ド FIFO を使用す る と 、 タ イ ミ ン グ制約を追加 し た り メ モ リ 競合を考慮す る 必要がな く な り 、 設計が簡単にな り
ます。 ただ し 、 こ の回路が要件を満た さ ない場合は、 その他の ソ フ ト イ ンプ リ メ ン テーシ ョ ン を作成する と 、 ほぼ無
限に さ ま ざ ま な動作お よ び特性を得 る こ と がで き ます。
ソ フ ト FIFO が必要な場合は、 IP カ タ ロ グか ら 作成する こ と をお勧め し ます。 IP カ タ ロ グ を使用す る と 、 ほ と ん ど の
一般的な FIFO イ ンプ リ メ ン テーシ ョ ンに対 し て適切な ロ ジ ッ ク が作成 さ れ る だけでな く 、 適切な タ イ ミ ン グ制約お
よ び属性 も 作成 さ れて、 最適な イ ンプ リ メ ン テーシ ョ ンお よ び解析が可能にな り ます。 究極のカ ス タ マ イ ズが必要な
場合は、 推論す る こ と も で き ます。
非同期 FIFO バ ッ フ ァ ーに ソ フ ト イ ン プ リ メ ン テーシ ョ ン を使用する際の注意事項
ソ フ ト FIFO を使用す る 場合は、 次の点について考慮する 必要があ り ます。 FIFO の ス テー タ ス を正 し く 判断 し 、 デー
タ を確実に転送す る には、 ス テー タ ス フ ラ グ (EMPTY お よ び FULL 信号) を監視す る 必要があ り ます。
こ れ ら の フ ラ グは、 位相ま たは周期に関連性のない 2 つの ク ロ ッ ク ド メ イ ンに基づいてい る ため、 フ ラ グの タ イ ミ ン
グお よ び予測可能性は常に簡単に決定で き る わけではあ り ません。 そのため、 非同期 FIFO を使用す る 際は注意が必
要です。
ほ と ん ど の非同期 FIFO の イ ンプ リ メ ン テーシ ョ ンでは、 フ ラ グのアサー ト お よ びデ ィ アサー ト はサ イ ク ルに基づい
てい ません。 論理シ ミ ュ レーシ ョ ン ま たは タ イ ミ ン グ シ ミ ュ レーシ ョ ンで ス テー タ ス フ ラ グが 1 つの ク ロ ッ ク サ イ
ク ルで変化 し た と し て も 、 FPGA デバ イ ス では ス テー タ ス フ ラ グがその前ま たは後の ク ロ ッ ク サ イ ク ルで変化す る
可能性があ り ます。 こ の よ う な状況は、 シ ミ ュ レー タ での イ ベン ト の タ イ ミ ン グ と 順序が FPGA デバ イ ス での イ ベン
ト の タ イ ミ ン グ と 順序 と 異な っ てい る 場合に発生 し ます。
FPGA デバ イ ス の最終的な タ イ ミ ン グは、 プ ロ セ ス、 電圧、 お よ び温度 (PVT) で決定 さ れます。 そのため、 チ ッ プに
よ っ て、 ま たは同 じ チ ッ プで も 環境に よ っ て、 サ イ ク ルの違いが発生する 可能性があ り ます。 回路の設計では、 こ れ
ら の違いを考慮す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
107
第 4 章 : デザイ ンの作成
特定の ク ロ ッ ク サ イ ク ル中ま たは ク ロ ッ ク サ イ ク ル後にデー タ が有効にな る と 想定 し 、EMPTY お よ び FULL フ ラ グ
を直接監視 し ない と 、 問題が発生す る 可能性があ り ます。 ほ と ん ど の FIFO の イ ンプ リ メ ン テーシ ョ ンでは、 メ モ リ
に容量があ っ て も 、 EMPTY フ ラ グがアサー ト さ れてい る と き の FIFO か ら の読み出 し 、 FULL がアサー ト さ れてい る
と き の FIFO への書 き 込みは無効です。 こ の よ う な読み出 し ま たは書 き 込みがあ る と 、 予想外の結果にな り 、 重大な
デバ ッ グ問題 と な る こ と があ り ます。 非同期 FIFO イ ンプ リ メ ン テーシ ョ ンのシ ミ ュ レーシ ョ ン で問題が検出 さ れ る
か ど う かにかかわ ら ず、 ス テー タ ス フ ラ グは必ず監視する よ う に し て く だ さ い。
ほ と ん ど の非同期 FIFO の イ ン プ リ メ ン テーシ ョ ン では、 EMPTY お よ び FULL ス テー タ ス フ ラ グが変化す る と き 、
ま たはその付近で読み出 し ま たは書 き 込みが実行 さ れ る と 、 ス テー タ ス フ ラ グはデフ ォ ル ト でセーフ状態にな り ま
す。 FIFO が実際にはフルでないのに FULL フ ラ グがアサー ト さ れた り 、 FIFO が実際には空でないのに EMPTY フ ラ
グがアサー ト さ れ る こ と があ り ます。 こ れに よ り 、 フ ラ グがアサー ト さ れない と い う リ ス ク はな く な り 、 あ る 程度安
全性が増 し ます。
さ ま ざ ま な合成お よ びシ ミ ュ レーシ ョ ン指示子を使用す る こ と に よ り 、 非同期条件を テ ス ト する 際に非同期 FIFO が
予測どお り に動作す る よ う にで き ます。
多 く の場合、 FIFO フ ラ グ ロ ジ ッ ク を設計する 際に タ イ ミ ン グ違反を回避する こ と はで き ません。 タ イ ミ ン グ シ ミ ュ
レーシ ョ ンで タ イ ミ ン グ違反が発生 し た場合、 シ ミ ュ レー タ では不明の ス テー ト を示す X 出力が生成 さ れます。 その
ため、 ロ ジ ッ ク が既知の非同期 ソ ース で駆動 さ れていて、 違反が発生 し た場合で も 正 し く 動作す る よ う 処理 さ れてい
る 場合は、FIFO フ ラ グ レ ジ ス タ の関連す る シ ン ク ロ ナ イ ザーに ASYNC_REG=TRUE 属性を追加す る こ と をお勧め し
ます。 こ の よ う にす る と 、 レ ジ ス タ で問題な く 非同期入力を受信で き ます。 レ ジ ス タ で タ イ ミ ン グ違反が発生 し て も
X は生成 さ れず、 以前の値が保持 さ れます。 ま た、 レ ジ ス タ の動作に悪影響を与え る 可能性のあ る レ ジ ス タ の複製や
その他の最適化 も 回避 さ れます。
同 じ メ モ リ ロ ケーシ ョ ンに対 し て読み出 し と 書き 込みが同時に実行 さ れ る と 、メ モ リ の競合が発生す る こ と があ り ま
す。 フ ラ グ (FULL ま たは EMPTY) を効果的に使用 し て、 で き る だけ メ モ リ 競合が発生 し ない よ う に し ない と 、 読み
出 し デー タ が破損す る 可能性があ り ます。 競合に よ り 破損 し たデー タ が読み出 さ れない よ う にデザ イ ン を保護 し てい
る 場合は、 RAM モデルに SIM_COLLISION_CHECK 属性を使用 し て競合チ ェ ッ ク を オ フ にで き ます。 こ の よ う にす
る と シ ミ ュ レーシ ョ ン モデルが高速にな り ますが、こ の方法を使用す る のは メ モ リ の競合が発生 し ない こ と が確実な
場合のみに し て く だ さ い。
ヒント :
- Vivado ツール内で HDL テ ンプ レー ト を使用 し ます。
- ブ ロ ッ ク メ モ リ か分散 メ モ リ の ど ち ら がユーザーの メ モ リ フ ァ ン ク シ ョ ンに適 し てい る か を決定 し ます。
- で き る だけ出力レ ジ ス タ を使用 し ます。
- メ モ リ 構造付近に非同期 リ セ ッ ト を使用する こ と は避け ます。
- 回路要件に よ っ て最適な書 き 込みモー ド を考慮 し ます。
- FIFO イ ンプ リ メ ン テーシ ョ ンでは、 専用ハー ド FIFO を最初に考慮 し ます。
DSP および演算ブ ロ ッ ク を適切に推論する ための コ ー ド 記述
ザ イ リ ン ク ス FPGA DSP ブ ロ ッ ク では、 次の よ う な さ ま ざ ま な フ ァ ン ク シ ョ ン を実行で き ます。
•
乗算
•
加算お よ び除算
•
コ ンパレー タ
•
カ ウ ン ター
•
汎用 ロ ジ ッ ク
DSP ブ ロ ッ ク は複数の レ ジ ス タ 段を使用 し てパ イ プ ラ イ ン処理 さ れてお り 、全体的な リ ソ ース の消費電力を削減 し な
が ら 、 高速操作が可能です。 コ ー ド を完全にパ イ プ ラ イ ン処理 し て DSP48 にマ ッ プ さ れ る よ う に し 、 すべてのパ イ
プ ラ ン段が使用 さ れ る よ う にす る こ と をお勧め し ます。 こ の追加 リ ソ ース が柔軟に使用 さ れ る よ う にす る には、 セ ッ
ト 条件を フ ァ ン ク シ ョ ン内に含めない よ う に し て、 DSP48 に正 し く マ ッ プ さ れ る よ う に し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
108
第 4 章 : デザイ ンの作成
ザ イ リ ン ク ス デバ イ ス内の DSP48 ス ラ イ ス レ ジ ス タ には、 リ セ ッ ト のみが含まれ、 セ ッ ト は含まれません。 そのた
め、 必要でない限 り 、 DSP48 ス ラ イ ス 内に イ ン プ リ メ ン ト 可能な乗算器、 加算器、 カ ウ ン タ ー、 ま たはその他の ロ
ジ ッ ク の付近にセ ッ ト (信号適用時の値が 1) は記述 し ない よ う に し て く だ さ い。 ま た、 DSP ス ラ イ ス では同期 リ セ ッ
ト 動作 し かサポー ト さ れないので、 非同期 リ セ ッ ト は使用 し ないで く だ さ い。 セ ッ ト ま たは非同期 リ セ ッ ト を生成す
る コ ー ド では、 エ リ ア、 パフ ォーマ ン ス、 ま たは消費電力の面で最適な結果が得 ら れない可能性があ り ます。
多 く の DSP デザ イ ンは、 ザ イ リ ン ク ス アーキ テ ク チ ャ に適 し てい ます。 アーキ テ ク チ ャ が最適に使用 さ れ る よ う に
す る には、 アーキ テ ク チ ャ の機能について理解 し 、 デザ イ ン入力 コ ー ド で こ れ ら の リ ソ ース が活用 さ れ る よ う にす る
必要があ り ます。
DSP48 ブ ロ ッ ク では、 符号付 き 演算の イ ンプ リ メ ン テーシ ョ ンが使用 さ れます。 ザ イ リ ン ク ス では、 リ ソ ース機能に
適 し た最 も 効率的なマ ッ プ を達成で き る よ う に、 HDL ソ ー ス に符号付 き の値を記述す る こ と をお勧め し ま す。 符号
な し のバ ス値が コ ー ド で使用 さ れた場合で も 、 合成ツールで こ の リ ソ ース を使用で き る 可能性はあ り ますが、 符号な
し か ら 符号付 き への変換があ る ため、 その コ ン ポーネ ン ト の完全な ビ ッ ト 精度を得 ら れない可能性があ り ます。
ザ イ リ ン ク ス 7 シ リ ーズ DSP48E1 ス ラ イ ス内の乗算器は、18 x 25 ビ ッ ト の符号付 き デー タ の入力ビ ッ ト 精度なので、
符号な し の ビ ッ ト 精度は 17 ビ ッ ト x 24 ビ ッ ト にな り ます。 UltraScale デバ イ ス では、 DSP48E2 ス ラ イ ス内の乗算器
は 18 x 27 ビ ッ ト の符号付 き デー タ の入力ビ ッ ト 精度なので、符号な し の ビ ッ ト 精度は 17 ビ ッ ト x 26 ビ ッ ト にな り ま
す。 Verilog コ ー ド の場合、 コ ー ド で宣言 さ れていなければ、 デー タ は符号な し と 認識 さ れ ます。 タ ーゲ ッ ト デザ イ
ンに多数の加算器が含まれ る 場合は、 デザ イ ン を評価 し て、 DSP48 ス ラ イ ス の前置加算器 と 後置加算器が よ り 多 く 使
用 さ れ る よ う に し ます。 た と えば、 FIR フ ィ ル タ ーを使用す る 場合は、 複数の加算器を連続 し て使用す る (加算器ツ
リ ー ) よ り も 、 加算器カ ス ケー ド を使用 し てシ ス ト リ ッ ク (対称) フ ィ ル タ ーを構築で き ます。 フ ィ ル タ ーが対称の場
合は、 専用の前置加算器を使用 し て、 フ ァ ン ク シ ョ ン を よ り 少ない数の LUT と フ リ ッ プ フ ロ ッ プに、 ま た、 よ り 少
ない数の DSP ス ラ イ ス (ほ と ん ど の場合、 リ ソ ース量は半分) に統合で き る か ど う か を確認 し ます。
加算器ツ リ ーが必要な場合は、 6 入力 LUT アーキ テ ク チ ャ で、 単純な 2 入力加算 と 同 じ リ ソ ース量を使用す る だけで
三項加算 (A + B + C = D) を効率的に作成で き ます。 こ れに よ り 、 キ ャ リ ー ロ ジ ッ ク リ ソ ース を節約で き ます。 多 く
の場合、 こ れ ら の方法を使用す る 必要はあ り ません。
こ れ ら の機能を知っ てお く と 、 ト レー ド オ フ を前 も っ て認識で き る ので、 イ ンプ リ メ ン テーシ ョ ンが最初か ら よ り ス
ムーズで効率的に実行 さ れ る よ う に RTL コ ー ド を記述で き ます。 ほ と ん ど の場合、 DSP リ ソ ース が推論 さ れ る はず
です。
DSP48 ス ラ イ ス の機能に関す る 詳細、 お よ びデザ イ ン の要件に合わせた こ の リ ソ ー ス の利用方法は、 『7 シ リ ーズ
DSP48E1 ス ラ イ ス ユーザー ガ イ ド 』 (UG479) [参照 43] お よ び 『UltraScale アーキ テ ク チ ャ DSP ス ラ イ ス ユーザー ガ
イ ド 』 (UG579) [参照 44] を参照 し て く だ さ い。
シ フ ト レ ジ ス タ および遅延ラ イ ンの コ ー ド 記述
シ フ ト レ ジ ス タ には、 通常次の制御信号お よ びデー タ 信号の一部ま たはすべてが含まれます。
•
クロック
•
シ リ アル入力
•
非同期セ ッ ト / リ セ ッ ト
•
同期セ ッ ト / リ セ ッ ト
•
同期/非同期パ ラ レル ロ ー ド
•
ク ロ ッ ク イ ネーブル
•
シ リ アル/パ ラ レル出力
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
109
第 4 章 : デザイ ンの作成
ザ イ リ ン ク ス FPGA デバ イ ス には専用の SRL16 お よ び SRL32 リ ソ ース (LUT に組み込まれてい る ) が含まれてお り 、
フ リ ッ プ フ ロ ッ プ リ ソ ース を使用せずにシ フ ト レ ジ ス タ を効率的に生成で き ます。 ただ し 、 こ れ ら のエ レ メ ン ト で
はレ フ ト シ フ ト し かサポー ト さ れてお ら ず、 使用可能な次の I/O 信号の数 も 制限 さ れます。
•
クロック
•
ク ロ ッ ク イ ネーブル
•
シ リ アル デー タ 入力
•
シ リ アルデー タ 出力
SRL には、 上記の信号に加え、 シ フ ト レ ジ ス タ の長 さ を決定する ア ド レ ス入力 (SRL16 では LUT の 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 zero
signal reg2 : std_logic := ‘1’; -- specifying register2 to start as a one
signal 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 zero
reg register2 = 1’b1; // specifying register2 to start as a one
reg [3:0] register3 = 4’b1011; //specifying INIT value for 4-bit register
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
110
第 4 章 : デザイ ンの作成
レ ジ ス タ お よ び ラ ッ チの初期ス テー ト を指定す る Verilog コ ー ド 例 2
Verilog では、 initial 文 も 使用で き ます。
reg [3:0] register3;
initial begin
register3= 4’b1011;
end
すべての順次エ レ メ ン ト が同時に リ セ ッ ト か ら 回復す る よ う にす る には、 「デバ イ ス の ス タ ー ト ア ッ プの制御お よ び
同期化」 を参照 し て く だ さ い。
イ ン ス タ ン シ エー ト するか推論するかの判断
ザ イ リ ン ク ス では、 デザ イ ン を RTL で記述 し 、 合成ツールで コ ー ド が FPGA デバ イ ス で使用可能な リ ソ ース にマ ッ
プ さ れ る よ う にす る こ と をお勧め し てい ま す。 コ ー ド が移植 し やす く な る だけでな く 、 合成ツールで推論 さ れた ロ
ジ ッ ク すべてが認識 さ れ、 フ ァ ン ク シ ョ ン間の最適化が実行 さ れ る よ う にな り ます。 こ れ ら の最適化には、 ロ ジ ッ ク
複製、 再構築 と 統合、 レ ジ ス タ 間の ロ ジ ッ ク 遅延のバ ラ ン ス を取 る ための リ タ イ ミ ン グ な ど が含まれます。
合成ツールの最適化
デバ イ ス の ラ イ ブ ラ リ セルが イ ン ス タ ン シエー ト さ れ る 場合、合成ツールではそれ ら はデフ ォ ル ト では最適化 さ れま
せん。 デバ イ ス の ラ イ ブ ラ リ セルを最適化す る よ う 指定 し た場合で も 、 合成ツールで RTL を使用 し た場合 と 同 じ レ
ベルの最適化は実行で き ません。 通常は こ れ ら のセルに入力 さ れ る パ スお よ びセルか ら 出力 さ れ る パ ス の最適化のみ
が実行 さ れ、 セルを通過す る パ ス は最適化 さ れません。
た と えば、 SRL が イ ン ス タ ン シエー ト さ れていて、 それが長いパ ス の一部であ る 場合、 こ のパ ス がボ ト ルネ ッ ク と な
る 可能性があ り ます。 SRL の clock-to-out 遅延は通常の レ ジ ス タ の遅延 よ り も 大 き く な り ます。 SRL に よ る エ リ ア削
減を保持 し なが ら clock-to-out パフ ォーマ ン ス を改善する ため、 実際に必要な遅延 よ り も 遅延が 1 つ少ない SRL が作
成 さ れ、 最後の段は標準フ リ ッ プ フ ロ ッ プに イ ンプ リ メ ン ト さ れます。
イ ン ス タ ン シ エーシ ョ ンが必要な場合
合成ツールのマ ッ プで タ イ ミ ン グ、 消費電力、 エ リ ア制約が満た さ れない場合、 ま たは FPGA デバ イ ス内の特定機能
を推論で き ない場合は、 イ ン ス タ ン シエーシ ョ ンが推奨 さ れます。
イ ン ス タ ン シエーシ ョ ンす る と 、 ユーザーが合成ツールを完全に制御で き ます。 た と えば、 パフ ォーマ ン ス を改善す
る ために、 通常合成ツールで選択 さ れ る LUT と キ ャ リ ー チ ェ ーン エ レ メ ン ト の組み合わせではな く 、 LUT のみを使
用す る コ ンパレー タ を イ ンプ リ メ ン ト で き ます。
デバ イ ス で使用可能な複雑な リ ソ ース を使用で き る よ う にす る には、 イ ン ス タ ン シエーシ ョ ンが唯一の方法であ る こ
と も あ り ます。 こ れは、 次が原因です。
•
HDL 言語の制限
た と えば、 VHDL でダブル デー タ レー ト (DDR) 出力を記述す る こ と はで き ません。 こ れは、 2 つの別のプ ロ セ
ス で同 じ 信号を駆動す る 必要があ る か ら です。
•
ハー ド ウ ェ アの複雑 さ
合成可能な コ ー ド を作成す る よ り も 、 I/O SerDes エ レ メ ン ト を イ ン ス タ ン シエー ト する 方が簡単です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
111
第 4 章 : デザイ ンの作成
•
合成ツールの推論の制限
た と えば、 合成ツールには現在の と こ ろ RTL 記述か ら ハー ド FIFO ま たは DSP48 の丸めお よ び飽和を推論す る
機能はないので、 イ ン ス タ ン シエー ト す る 必要があ り ます。
ザ イ リ ン ク ス プ リ ミ テ ィ ブ を イ ン ス タ ン シ エー ト す る と 決めた場合は、 タ ーゲ ッ ト アーキ テ ク チ ャ 用のユー
ザー ガ イ ド お よ び ラ イ ブ ラ リ ガ イ ド を参照 し 、 コ ン ポーネ ン ト の機能、 コ ン フ ィ ギ ュ レーシ ョ ン、 接続を完全
に理解 し て く だ さ い。
推論 と イ ン ス タ ン シエー ト の ど ち ら で も 、 Vivado Design Suite 言語テ ン プ レー ト か ら のテ ンプ レー ト を使用す る
こ と をお勧め し ます。
ヒント :
- 可能なかぎ り 機能を推論 し て く だ さ い。
- 合成可能な RTL コ ー ド で要件が満た さ れない場合は、 コ ー ド をデバ イ ス ラ イ ブ ラ リ コ ン ポーネ ン ト の イ ン ス タ ン
シエーシ ョ ン と 置 き 換え る 前に、 要件を見直 し て く だ さ い。
- 一般的な Verilog お よ び VHDL ビヘ イ ビ アー構文を記述す る 場合や、 プ リ ミ テ ィ ブ を イ ン ス タ ン シエー ト す る 必要
があ る 場合は、 Vivado Design Suite 言語テ ンプ レー ト を考慮 し て く だ さ い。
信頼性を向上する ための コ ーデ ィ ング ス タ イル
特定のデザ イ ン状況では、 信頼性を向上す る ため、 特定の考慮事項が必要です。
ク ロ ッ ク 乗せ換え
デー タ ま たは制御信号が 1 つの ク ロ ッ ク ド メ イ ンか ら 別の ク ロ ッ ク ド メ イ ンに転送 さ れ る 場合は、 ク ロ ッ ク 乗せ換
えの概念を理解 し てお く 必要があ り ます。 ク ロ ッ ク 乗せ換えは、 次に分類 さ れます。
•
同期乗せ換え
同期乗せ換え と は、 ド メ イ ン間の位相関係が既知で予測可能な乗せ換えです。
•
非同期乗せ換え
非同期乗せ換え と は、 ド メ イ ン間の位相関係が予測どお り に決定 さ れない乗せ換えです。
同期乗せ換えでは、 ク ロ ッ ク ス キ ュ ーが非常に大き く な り 、 タ イ ミ ン グ を満たすのが困難にな る こ と があ り ます。
重要 : ス キ ュ ーに よ り セ ッ ト ア ッ プが満た し やす く な っ てい る 場合はホール ド が満た し に く く な り 、 ホール ド が満た
し やす く な っ てい る 場合はセ ッ ト ア ッ プが満た し に く く な り ます。
同期乗せ換え
•
1 つの BUFG ネ ッ ト ワー ク か ら 同 じ MMCM、 PLL、 ま たはデバ イ ス ピ ンで駆動 さ れ る 別の BUFG ネ ッ ト ワー ク
への乗せ換え (ど ち ら の BUFG も チ ッ プの同 じ 半分 (上半分か下半分) にあ る 場合)
•
7 シ リ ーズ デバ イ ス で、BUFH ネ ッ ト ワ ー ク か ら 水平方向の隣に配置 さ れてい る 別の BUFH ネ ッ ト ワー ク への乗
せ換え ( こ れ ら 2 つの BUFH が同 じ ク ロ ッ ク ソ ース で駆動 さ れ る 場合)
•
7 シ リ ーズ デバ イ ス で、 BUFR か ら 同様に コ ン フ ィ ギ ュ レーシ ョ ン さ れてい る BUFR への乗せ換え (ど ち ら も 同
じ BUFMR で駆動 さ れ る 場合)
注記 : BUFR が BYPASS モー ド でない場合は、 すべての関連する BUFR の リ セ ッ ト を同期 し て位相を揃え る 必要
があ り ます。
•
7 シ リ ーズ デバ イ ス で、 BUFIO か ら BUFR ま たは BUFR か ら BUFIO への乗せ換え (同 じ ク ロ ッ ク ソ ース、 同 じ
ク ロ ッ ク 領域の場合)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
112
第 4 章 : デザイ ンの作成
同期 ク ロ ッ ク乗せ換え (スキ ュ ーが非常に大き く な る可能性あ り )
•
MMCM ま たは PLL を使用し た ク ロ ッ ク ネ ッ ト ワー ク か ら それ ら を使用 し ないネ ッ ト ワー ク (ま たはその逆方向)
への乗せ換え (同 じ ソ ース ク ロ ッ ク か ら 生成 さ れた場合で も )
•
BUFH ネ ッ ト ワー ク か ら 別のネ ッ ト ワー ク への乗せ換え (垂直方向に隣接する BUFH ネ ッ ト ワー ク を除 く )
•
専用 ク ロ ッ ク リ ソ ース (外部 ク ロ ッ ク ピ ン、 MMCM、 PLL な ど) で直接駆動 さ れない ク ロ ッ ク ネ ッ ト ワー ク (ま
たはその逆方向) への乗せ換え
•
デバ イ ス上半分にあ る BUFG か ら デバ イ ス下半分にあ る BUFG (ま たはその逆方向) への乗せ換え
非同期乗せ換え
•
ク ロ ッ ク ネ ッ ト ワ ー ク か ら 位相関係のない別の ク ロ ッ ク ネ ッ ト ワー ク への乗せ換え
•
ク ロ ッ ク 周期に単純な比率がな く 、 それ ら のエ ッ ジが少ないサ イ ク ル数内に揃わない場合の、 同 じ MMCM ま た
は PLL か ら 生成 さ れた ド メ イ ンへの乗せ換え。 こ れは、共通周期を持た ない ク ロ ッ ク ま たは展開不可能な ク ロ ッ
ク と 呼ばれます。
•
ザ イ リ ン ク ス FPGA デバ イ ス の GT TXCLKOUT ま たは RXCLKOUT 出力か ら 別の ド メ イ ン (ま たはその逆方向)
への乗せ換え。 こ れには、 TXCLKOUT お よ び RXCLKOUT 内のパ ス も 含まれます。
同期 ド メ イ ン と は、 既知で予測可能な位相関係があ る 2 つの ク ロ ッ ク ド メ イ ンの こ と です。 こ れは通常、 ド メ イ ンが
互いに派生関係にあ る か、 同 じ 内部ま たは外部 ソ ース か ら 供給 さ れてい る 場合です。 こ の場合、 タ イ ミ ン グは解析可
能であ り 、 考慮事項はあ り ますが、 ド メ イ ン間の転送は安全に実行 さ れます。
共通 ノ ー ド か ら ソ ース ま たはデス テ ィ ネーシ ョ ンに到達す る ま での距離 と ク ロ ッ ク リ ソ ース の特性に よ っ て、ク ロ ッ
ク ス キ ュ ーが無視で き ないほ ど大 き く な る こ と があ り ます。 レ ジ ス タ 間のパ ス な ど の短いデー タ パ ス の場合、 ク ロ ッ
ク ス キ ュ ーがデー タ 遅延 よ り も 大 き く な り 、 ホール ド 違反が発生す る こ と があ り ます。 複数の ロ ジ ッ ク レベルがあ
る 場合、 ス キ ュ ーが追加 さ れ る と タ イ ミ ン グ を満たすのが困難にな り ます。 こ の よ う な ク ロ ッ ク 乗せ換えでは ロ ジ ッ
ク レベルを注意 し て監視 し 、 ロ ジ ッ ク レベルが少なすぎ る 場合や多すぎ る 場合の影響について考慮す る よ う に し て
く だ さ い。
同期乗せ換えでは、不適切なバ ス キ ャ プチ ャ 、 メ タ ス テーブル状態、お よ びその よ う なパ ス のデー タ イ ン テ グ リ テ ィ
に影響す る よ う なその他の問題を軽減す る ため、 特別な手順を実行す る 必要があ り ます。
非同期 ク ロ ッ ク ド メ イ ン間でデー タ が安全に転送 さ れ る よ う にす る ため、 よ く 使用 さ れ る 方法が 2 つあ り ま す。 1
ビ ッ ト のみが必要な場合、 ま たはグ レ イ コ ー ド の よ う な方法を使用 し て関連デー タ の複数ビ ッ ト を転送する 場合、 レ
ジ ス タ 同期を挿入 し て、 回路の MTBF (平均故障間隔) を削減で き ます。 複数ビ ッ ト のデー タ (バ ス) の場合は、 独立
し た ク ロ ッ ク (非同期) FIFO を使用 し て、デー タ を ド メ イ ンか ら ド メ イ ンに安全に転送す る 方法が通常推奨 さ れます。
こ の よ う な FIFO は ソ フ ト ロ ジ ッ ク か ら 構築 さ れ る 場合は推論で き ますが、 専用ハー ド FIFO が必要な場合 (ま たは、
前 も っ て特性評価 さ れた定義済みの FIFO ロ ジ ッ ク に よ り タ ス ク が簡単にな る 場合)、 FIFO を直接 イ ン ス タ ン シエー
ト で き ます。 FIFO を構築す る には、 FIFO プ リ ミ テ ィ ブ ま たは FIFO Generator を使用で き ます。
同期 レ ジ ス タ を 特定す る た め、 HDL コ ー ド で ASYNC_REG 属性 を 使用 し て く だ さ い。 こ れに よ り 、 Vivado Design
Suite デザ イ ン ツールで認識 さ れ、 特別な アルゴ リ ズ ム が使用 さ れ る よ う にな り 、 合成、 シ ミ ュ レ ーシ ョ ン、 配置、
お よ び配線が改善 し 、 メ タ ス テーブル状態が削減 さ れ る こ と で MTBF も 改善 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
113
第 4 章 : デザイ ンの作成
ASYNC_REG の例 :
module synchronizer #(
parameter SYNC_STAGES = 2
) (
input ASYNC_IN,
input CLK,
output SYNC_OUT
);
(* ASYNC_REG = “TRUE” *) reg [SYNC_STAGES-1:0] sync_regs = {SYNC_STAGES{1’b1}};
always @(posedge CLK)
sync_regs <= {sync_regs[SYNC_STAGES-2:0], ASYNC_IN};
assign SYNC_OUT = sync_regs[SYNC_STAGES-1];
endmodule
ヒ ン ト : ク ロ ッ ク 乗せ換え を検出 し て適切に同期 さ れてい る こ と を確認する には、 ス タ テ ィ ッ ク チ ェ ッ カーを実行 し
てみて く だ さ い。
デバイ スのス タ ー ト ア ッ プの制御お よび同期化
FPGA デバ イ ス の コ ン フ ィ ギ ュ レ ーシ ョ ン が完了す る と 、 一連の イ ベン ト が発生 し 、 デバ イ ス が コ ン フ ィ ギ ュ レ ー
シ ョ ン ス テー ト か ら 抜けて一般動作を開始 し ます。 ほ と ん ど の コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス では、 最後にグ
ロ ーバル セ ッ ト リ セ ッ ト (GSR) がデ ィ アサー ト さ れ、 その後グ ロ ーバル イ ネーブル (GWE) 信号がデ ィ アサー ト さ
れます。 こ れに よ り デザ イ ンが既知の初期ス テー ト にな り 、 動作を開始で き る よ う にな り ます。
こ のポ イ ン ト が指定の ク ロ ッ ク ド メ イ ンに同期 さ れていない場合、 ま たは GWE が安全に解放 さ れ る よ り も ク ロ ッ ク
が速 く 動作す る 場合、 デザ イ ンの一部が不明な ス テー ト にな り ます。 こ れが問題 と な ら ないデザ イ ン も あ り ますが、
デザ イ ンが不安定な状態 と な っ た り 、 初期デー タ セ ッ ト が間違っ て処理 さ れ る 原因 と な る こ と も あ り ます。デザ イ ン
が既知の ス テー ト にな る 必要があ る 場合は、ス タ ー ト ア ッ プ同期プ ロ セ ス を制御す る こ と をお勧め し ます。 こ れには、
い く つかの方法があ り ます。
その 1 つは、 GWE がアサー ト さ れてか ら 一定の時間が経つま で、 すべてのデザ イ ン ク ロ ッ ク を遅 ら せ る 方法です。
こ れを実行す る 場合は、 次が推奨 さ れます。
•
イ ン ス タ ン シエー ト さ れた BUFGCE、 BUFHCE ま たは BUFR を使用 し ます。
•
こ れ ら の コ ン ポーネ ン ト の イ ネーブル信号を使用 し て、 コ ン フ ィ ギ ュ レーシ ョ ン後に ク ロ ッ ク を数サ イ ク ル遅 ら
せます。
•
MMCM を使用す る 場合は、 出力 ク ロ ッ ク で使用 し 、 フ ィ ー ド バ ッ ク ク ロ ッ ク では使用 し ない よ う に し て く だ さ
い。 こ れには、 Clocking Wizard で [Safe Clock Startup] オプシ ョ ン を オンに し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
114
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-5
VCC
FDCE
FDCE
FDCE
INIT = ‘0’
INIT = ‘0’
INIT = ‘0’
D
QV
D
Q
CC
VCC
D
Q
FDCE
INIT = ‘0’
VCC
D
Q
CE
CE
CE
CE
C
C
C
C`
CLR
CLR
CLR
CLR
Reset
Clock
I
CE
O
Synchronous
Elements
BUFGCE
X13499
図 4-5 : ク ロ ッ ク ス タ ー ト ア ッ プ
ま た、 デザ イ ンの ク リ テ ィ カル パス (ス テー ト マシ ン な ど) で ク ロ ッ ク イ ネーブル、 ロ ーカル リ セ ッ ト (同期)、 ま た
はその両方を使用 し て、 デザ イ ンの こ れ ら の部分の ス タ ー ト ア ッ プを制御 し 、 既知の状態にな る よ う に も で き ます。
タ イ ミ ングが設定 さ れていない リ セ ッ ト の使用
リ セ ッ ト (特にグ ロ ーバル リ セ ッ ト ) の フ ァ ン ア ウ ト が非常に大き く 、FPGA 配列の大部分に広がっ てい る こ と があ り
ます。 こ の よ う な場合、 ク ロ ッ ク 周波数や タ イ ミ ン グ要件に関係な く 、 リ セ ッ ト タ イ ミ ン グ を満たす こ と が困難にな
る 可能性があ り ます。 特に高速デザ イ ンで困難にな り ます。
リ セ ッ ト パ ス の タ イ ミ ン グが満た さ れない と 、初期デー タ の破損ま たは断続的なデー タ 破損な ど の不定な動作が発生
し 、 極端な場合はデザ イ ン全体が停止 し た り 、 機能不全にな り ます。
ほ と ん ど のデザ イ ンの問題は、 リ セ ッ ト のアサー ト ではな く 、 デ ィ アサー ト 中に発生 し ます (アサー ト で問題が発生
す る 場合 も あ り )。 特定レ ジ ス タ で ク ロ ッ ク がアサー ト さ れ る の と 同時に リ セ ッ ト がデ ィ アサー ト さ れ る と 、 レ ジ ス
タ 出力は不定にな り ま す ( リ カバ リ /削除違反)。 ま た、 リ セ ッ ト 信号の ス キ ュ ーに よ っ て、 デザ イ ン の一部があ る ク
ロ ッ ク サ イ ク ルで リ セ ッ ト か ら 抜け、 ほかの部分が別の ク ロ ッ ク サ イ ク ルで リ セ ッ ト か ら 抜け る よ う な場合、 回路
の動作は不明な も のにな り ます。 リ セ ッ ト のデ ィ アサー ト を同期す る 方法については、 「デバ イ ス の ス タ ー ト ア ッ プ
の制御お よ び同期化」 を参照 し て く だ さ い。
同期回路を追加す る こ と に加え、 リ セ ッ ト パ ス に正 し い タ イ ミ ン グ制約を設定 し 、 デザ イ ン入力中は、 リ セ ッ ト の タ
イ ミ ン グ ク ロ ージ ャ の影響を最小限に抑え る よ う にする こ と をお勧め し ます。 こ れには、 リ セ ッ ト を削除する か、 ド
ラ イ バーを複製 し て、 リ セ ッ ト 信号が駆動する ロ ー ド 数を制限する 方法があ り ます。 リ セ ッ ト の同期化に使用 さ れ る
フ リ ッ プ フ ロ ッ プに ASYNC_REG 属性を使用す る と 、 ド ラ イ バーは複製 さ れな く な り ま す。 そのため、 リ セ ッ ト の
フ ァ ン ア ウ ト が大 き く 、 ド ラ イ バーの複製が必要な場合は、 シ ン ク ロ ナ イ ザーの最後に追加の フ リ ッ プ フ ロ ッ プ を配
置 し 、 こ の最後の フ リ ッ プ フ ロ ッ プには ASYNC_REG プ ロ パテ ィ を設定 し ない よ う に し ます。 こ の最後の フ リ ッ プ
フ ロ ッ プは同期チ ェーンの一部ではな く 、 複製可能です。
こ の方法を使用 し て も タ イ ミ ン グ ク ロ ージ ャ を達成で き ない場合は、 BUFGCE を使用 し て内部で ク ロ ッ ク を停止す
る か、 リ セ ッ ト 中に外部か ら ク ロ ッ ク を停止 し 、 リ セ ッ ト 信号のデ ィ アサー ト 周期がマルチサ イ ク ルにな る よ う に し
ます。
重要 : リ セ ッ ト のデ ィ アサー ト には タ イ ミ ン グ制約を適用する 必要があ り 、 こ れに よ り デザ イ ン全体が同 じ サ イ ク ル
で リ セ ッ ト 状態か ら 回復 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
115
第 4 章 : デザイ ンの作成
UltraScale デバイ スの IDDRE1 の リ セ ッ ト に関する考慮事項
UltraScale デバ イ ス に含まれ る IDDRE1 の RST ピ ンの リ カバ リ 時間は、CLK ピ ンの立ち下が り エ ッ ジの タ イ ミ ン グ と
厳密に関係 し てい ます。 こ の厳密な タ イ ミ ン グ要件に よ り 、 タ イ ミ ン グ違反が発生す る 可能性があ り ます。 リ カバ リ
タ イ ミ ン グ を満たすのが困難な場合、 次の推奨事項に従っ て く だ さ い。
IDDRE1 RST がデ ィ アサー ト さ れた後数サ イ ク ル待機 し 、 デス テ ィ ネーシ ョ ン IDDRE1 RST ピ ンに
set_multicycle_path 制約を適用 し ます。 次に例を示 し ます。
•
D ピ ンの入力デー タ を保持 し 、 RST のデ ィ アサー ト 後、 3 ク ロ ッ ク サ イ ク ル待機 し てか ら IDDRE1 の Q ピ ンの
デー タ を使用 し ます。
•
RST のデ ィ アサー ト 後、 3 ク ロ ッ ク サ イ ク ル間は IDDRE1 の Q ピ ンか ら の入力デー タ を無視 し ます (ダ ウ ン ス ト
リ ームの レ ジ ス タ でデー タ のサンプ リ ン グ をデ ィ ス エーブル)。
•
IDDRE1 は リ セ ッ ト さ れたので、 出力は 0 です。 IDDRE1 の D 入力 も 3 サ イ ク ル間 0 に保持 し ます。
RST のデ ィ アサー ト 後すぐ に IDDRE1 の Q ピ ンか ら のデー タ をサンプ リ ン グす る 必要があ る 場合は、IDDRE1 の RST
ピ ン を駆動す る レ ジ ス タ を複製す る こ と をお勧め し ま す。 IDDRE1 ご と に 1 つの レ ジ ス タ が必要な場合 も あ り ます。
IDDRE1 の RST ピ ン を駆動す る レ ジ ス タ を LOC 制約ま たは Pblock を使用 し て IDDRE1 ので き る だけ近 く に配置 し 、
RST 信号がで き る 限 り 短時間で到達す る よ う に し ます。
組み合わせループの回避
FPGA デザ イ ンには組み合わせフ ィ ー ド バ ッ ク パ ス は使用 し ないで く だ さ い。 タ イ ミ ン グへの影響を シ ミ ュ レーシ ョ
ンお よ び解析 し 、 すべての動作条件下で考慮す る こ と は困難で、 結果が予測不可能にな る こ と があ り ます。
組み合わせループ を誤っ て使用 し ていないかを check_timing コ マ ン ド を使用 し て確認す る 方法は、 第 5 章 「 イ ン
プ リ メ ン テーシ ョ ン」 を参照 し て く だ さ い。
パ フ ォ ーマ ン ス を向上する ための コ ーデ ィ ン グ ス タ イル
前述の 「信頼性を向上す る ための コ ーデ ィ ン グ ス タ イ ル」 で説明 し た コ ーデ ィ ン グ手法に従わない と 、 パフ ォーマ
ン ス に悪影響があ り ます。 高パフ ォーマ ン ス のデザ イ ンでは、 こ のセ ク シ ョ ン で説明 さ れ る コ ーデ ィ ン グ手法を使用
す る こ と に よ り 、 発生す る 可能性のあ る タ イ ミ ン グ問題を軽減で き ます。
ク リ テ ィ カル パスでの フ ァ ン アウ ト の大き いネ ッ ト
フ ァ ン ア ウ ト の大 き いネ ッ ト は、 デザ イ ン プ ロ セ ス の初期段階での方が簡単に処理で き ます。 フ ァ ン ア ウ ト が大 き す
ぎ る 原因は、 パフ ォーマ ン ス要件お よ びパ ス の構造にあ る こ と が よ く あ り ます。
推奨 : ロ ー ド が何千 も あ る よ う なネ ッ ト を早期に調べ、 デザ イ ン全体への影響を評価 し て く だ さ い。
フ ァ ン ア ウ ト の大 き いネ ッ ト を見つけた ら 、 次の方法を使用 し ます。
•
「ネ ッ ト を必要 と し ないデザ イ ン部分での ロ ー ド の削減」
•
「レ ジ ス タ の複製」
ネ ッ ト を必要 と し ないデザイ ン部分でのロー ド の削減
フ ァ ン ア ウ ト の大 き い制御信号の場合、 デザ イ ンの コ ー ド 記述 さ れたすべての部分でそのネ ッ ト が必要か ど う か を判
断 し ます。 ロ ー ド を減 ら す と 、 タ イ ミ ン グ問題を大幅に改善で き る こ と があ り ます。 デー タ パ ス の場合、 フ ァ ン ア ウ
ト を削減で き る よ う な ロ ジ ッ ク の制限があ る か ど う かを判断 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
116
第 4 章 : デザイ ンの作成
レ ジ ス タ の複製
レ ジ ス タ を複製す る と 、 レ ジ ス タ の コ ピーを作成す る こ と に よ り 信号の フ ァ ン ア ウ ト が削減 さ れ、 ク リ テ ィ カル パ ス
を高速化で き ます。 こ れに よ り 、 イ ンプ リ メ ン テーシ ョ ン ツールでの さ ま ざ ま な ロ ー ド お よ び関連 ロ ジ ッ ク の配置配
線が柔軟にな り ます。 合成ツールでは、 こ の手法が広範に使用 さ れます。
タ イ ミ ン グ レ ポー ト に配線遅延が大 き く フ ァ ン ア ウ ト の大き いネ ッ ト が ク リ テ ィ カル パス と し て レ ポー ト さ れた ら 、
合成ツールで複製制約を指定する か、 レ ジ ス タ の手動複製を考慮 し てみて く だ さ い。 手動で複製 し た レ ジ ス タ が合成
ツールの最適化で削除 さ れない よ う にする には、 別の合成制約を追加する 必要のあ る こ と が よ く あ り ます。 ほ と ん ど
の合成ツールでは、 フ ァ ン ア ウ ト し き い値制限を使用 し て、 レ ジ ス タ を複製する かど う かが自動的に決定 さ れます。
こ のグ ロ ーバル し き い値を調整す る と 、 フ ァ ン ア ウ ト の大き いネ ッ ト が自動的に複製 さ れ る よ う にな り ますが、 ど の
レ ジ ス タ を複製す る かな ど の詳細な制御はで き ません。 特定の レ ジ ス タ ま たは階層レベルに属性を適用 し て、 複製可
能な レ ジ ス タ と 不可能な レ ジ ス タ を指定す る こ と をお勧め し ます。 レ ジ ス タ ではな く LUT1 が複製 さ れた場合は、 属
性ま たは制約が間違っ て適用 さ れてい ます。
ク ロ ッ ク ド メ イ ン を ま たが る 信号を同期する のに使用 さ れた レ ジ ス タ は複製 し ない よ う に し て く だ さ い。こ れ ら の レ
ジ ス タ に ASYNC_REG 属性を適用す る と 、 ツールで こ れ ら の レ ジ ス タ が複製 さ れな く な り ます。 同期チ ェーンの フ ァ
ン ア ウ ト が大 き く 、 タ イ ミ ン グ を満たすために複製が必要な場合は、 最後の フ リ ッ プ フ ロ ッ プの ASYNC_REG 属性を
削除 し て、 複製で き る よ う に し ます。 ただ し 、 こ の レ ジ ス タ は、 同期チ ェーンの一部ではな く な り ます。
次の表に、 デザ イ ンで許容 さ れ る フ ァ ン ア ウ ト 数のガ イ ド ラ イ ン を示 し ます。
表 4-3 : フ ァ ン アウ ト のガ イ ド ラ イ ン
条件
低周波数
1 ~ 125MHz
中周波数
125 ~ 250MHz
フ ァ ン アウ ト < 5000
フ ァ ン アウ ト < 200
フ ァ ン アウ ト < 100
同期 ロ ジ ッ ク 間の ロ ジ ッ ク レ
ベルは少数
最大周波数での ロ ジ ッ ク レ ベ
ル数は 13 未満
結果に依存。 達成す る た め に
フ ァ ン ア ウ ト ま たは ロ ジ ッ ク
レ ベルのいずれか ま た は両方
を 削減す る 必要の あ る こ と も
あり
最大周波数での ロ ジ ッ ク レ ベ
ル数は 6 未満 ( ド ラ イ バーお よ
び ロ ー ド タ イ プがパ フ ォ ーマ
ン ス に影響)
ほ と ん ど のデザ イ ン で推奨 さ
れない
高速の場合、 通常 ロ ジ ッ ク レ
ベル数 を 少な く す る こ と が必
要
高周波数
> 250 MHz
ア ド バン ス パ イ プ ラ イ ン手法
が必要。 注意 し て ロ ジ ッ ク 複
製。 コ ンパ ク ト な フ ァ ン ク
シ ョ ン。 ロ ジ ッ ク レベル数を
少な く する こ と が必要 ( ド ラ イ
バーお よ び ロ ー ド タ イ プがパ
フ ォーマ ン ス に影響)
ヒ ン ト : フ ァ ン ア ウ ト の大 き い信号に よ り デザ イ ン パフ ォ ーマ ン ス が制限 さ れてい る と タ イ ミ ン グ レ ポー ト に示 さ
れ る 場合は、 それ ら を複製す る こ と を考慮 し て く だ さ い。 phys_opt_design コ マ ン ド を使用 し た方が レ ジ ス タ を複
製す る よ り も 良い結果が得 ら れ る こ と があ り ます。 詳細は、 第 5 章の 「MAX_FANOUT」 を参照 し て く だ さ い。
ヒ ン ト : レ ジ ス タ を複製す る 際は、 <original_name>_a、 <original_name>_b の よ う な名前を付け て複製 さ れ
た も のであ る こ と がわか る よ う に し 、 RTL コ ー ド を管理 し やす く な る よ う に し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
117
第 4 章 : デザイ ンの作成
パイ プ ラ イ ンに関する注意事項
パフ ォ ーマ ン ス を向上す る には、 長いデー タ パ ス を数段の ロ ジ ッ ク レベルを使用 し て再構築 し 、 複数の ク ロ ッ ク サ
イ ク ルに分散す る と い う 方法 も あ り ます。 こ の方法を使用す る と 、 ク ロ ッ ク サ イ ク ルが速 く な り 、デー タ スループ ッ
ト が増加 し ますが、 レ イ テ ン シが増加 し 、 パ イ プ ラ イ ン オーバーヘ ッ ド ロ ジ ッ ク の管理が必要にな り ます。
FPGA デバ イ ス には レ ジ ス タ が多 く 含 ま れ る ので、 追加レ ジ ス タ お よ び ロ ジ ッ ク は通常問題 と な り ま せん。 ただ し 、
デー タ パ ス は複数サ イ ク ルに ま たが る ので、 残 り のデザ イ ンに特に注意 し て、 追加 さ れたパ ス レ イ テ ン シ を把握す る
必要があ り ます。
SSI デバイ スのパイ プ ラ イ ン を考慮
SLR の境界を ま た ぐ レ ジ ス タ 間の接続を高パフ ォ ーマ ン ス にす る には、 HDL コ ー ド に適切なパ イ プ ラ イ ン処理を記
述 し て、 合成で制御す る 必要があ り ます。 こ れに よ り 、 シ フ ト レ ジ ス タ LUT (SRL) の推論お よ びその他の最適化が、
SLR 境界を ま た ぐ 必要のあ る ロ ジ ッ ク パ ス では実行 さ れな く な り ます。 こ の方法で コ ー ド を変更 し 、 Pblock を適切
に使用す る こ と に よ り 、 SLR の境界を超え る 箇所が定義 さ れます。
パイ プ ラ イ ン を前も っ て考慮
パ イ プ ラ イ ンについて、 後で考慮す る のではな く 、 前 も っ て考慮 し てお く こ と で、 タ イ ミ ン グ ク ロ ージ ャ を改善 し や
す く な り ます。 特定のパ ス に後の段階でパ イ プ ラ イ ン を追加する と 、 通常は レ イ テ ン シの差が回路全体に伝搬 さ れま
す。 そのため、 少 し と 思われた変更に よ り 、 コ ー ド の一部を大 き く 設計 し 直す必要が出て く る こ と があ り ます。
パ イ プ ラ イ ン を使用す る か ど う か をデザ イ ン の初期段階で判断 し てお く と 、 タ イ ミ ン グ ク ロ ージ ャ 、 イ ン プ リ メ ン
テーシ ョ ンの実行時間 ( タ イ ミ ン グ問題を解決 し やす く な る )、 お よ びデバ イ ス消費電力 ( ロ ジ ッ ク の切 り 替えが減 る )
が大幅に改善 さ れ る こ と が よ く あ り ます。
推論ロ ジ ッ ク を チ ェ ッ ク
デザ イ ン を コ ー ド 記述す る 際には、 推論 さ れ る ロ ジ ッ ク に注意 し て く だ さ い。 次の状況で、 パ イ プ ラ イ ン を さ ら に考
慮す る 必要があ る か ど う か を調べます。
•
フ ァ ン イ ンの大 き い ロ ジ ッ ク コ ーン
た と えば、 出力を計算す る のに大 き なバ スや複数の組み合わせ信号を必要 と する コ ー ド です。
•
配置に制限があ る 、 clock-to-out が遅い、 ま たはセ ッ ト ア ッ プ要件が大 き いブ ロ ッ ク
た と えば、 出力レ ジ ス タ のないブ ロ ッ ク RAM ま たは正 し く パ イ プ ラ イ ン さ れていない演算 コ ー ド です。
•
長い配線の原因 と な る 指定配線
た と えば、 ピ ン配置に よ り 配線がチ ッ プ を横断する 必要があ る 場合、 高速動作を可能にす る ためにパ イ プ ラ イ ン
が必要です。
次の図では、 ク ロ ッ ク 速度が次に よ っ て制限 さ れます。
•
ソ ース フ リ ッ プ フ ロ ッ プの clock-to-out タ イ ム
•
4 つの ロ ジ ッ ク レベルを介 し た ロ ジ ッ ク 遅延
•
4 個の フ ァ ン ク シ ョ ン ジ ェ ネ レー タ ーに関連 し た配線
•
デス テ ィ ネーシ ョ ン レ ジ ス タ のセ ッ ト ア ッ プ タ イ ム
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
118
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-6
D
Q
Function
Generator
Function
Generator
Function
Generator
Function
Generator
D
Q
Slow_Clock
X13429
図 4-6 : パイ プ ラ イ ン処理前
次の図は図 4-6 と 同 じ デー タ パ ス の例です。フ リ ッ プ フ ロ ッ プが フ ァ ン ク シ ョ ン ジ ェ ネ レー タ ー と 同 じ ス ラ イ ス に含
まれてい る ので、ク ロ ッ ク 速度は ソ ース フ リ ッ プ フ ロ ッ プの clock-to-out 時間、1 つの ロ ジ ッ ク レベルを介す る ロ ジ ッ
ク 遅延、 配線遅延、 デ ス テ ィ ネーシ ョ ン レ ジ ス タ のセ ッ ト ア ッ プ タ イ ム に よ っ て制限 さ れます。 こ の例では、 パ イ
プ ラ イ ン処理前 よ り シ ス テ ム ク ロ ッ ク が高速にな り ます。
X-Ref Target - Figure 4-7
D
Q
Function
Generator
D
Q
D
Function
Generator
Q
Function
Generator
D
Q
Function
Generator
D
Q
Fast_Clock
X13430
図 4-7 : パイ プ ラ ン処理後
パイ プ ラ イ ン処理が必要かど う かの決定
大 き な組み合わせ ロ ジ ッ ク パス を特定 し 、 よ り 小 さ なパ ス に分割 し 、 こ れ ら のパ ス間に レ ジ ス タ 段を挿入 し て、 各パ
イ プ ラ イ ン段をバ ラ ン ス調整す る のが、 よ く 使用 さ れ る パ イ プ ラ イ ン処理手法です。
デザ イ ンにパ イ プ ラ イ ン処理が必要か ど う かを決定す る には、ク ロ ッ ク の周波数 と 各 ク ロ ッ ク グループに分散 さ れ る
ロ ジ ッ ク 量を確認 し ます。Tcl コ マ ン ド の report_design_analysis を使用す る と 、各 ク ロ ッ ク グループの ロ ジ ッ
ク レベルの分散を判断で き ます。
ヒ ン ト : デザ イ ン解析レ ポー ト には、 0 ロ ジ ッ ク レベルのパ ス数 も 示 さ れ る ので、 コ ー ド の ど の部分を修正すればい
いか を判断で き ます。
レ イ テ ン シのバラ ン ス
レ イ テ ン シのバ ラ ン ス を調整す る には、 パ イ プ ラ イ ン段をデー タ パ ス ではな く 、 制御パ ス に追加 し ます。 デー タ パ
ス には、 よ り 幅の広いバ ス が含まれ る ので、 使用 さ れ る フ リ ッ プ フ ロ ッ プ と レ ジ ス タ リ ソ ース の数が増え ます。
た と えば、 128 ビ ッ ト のデー タ パ ス と 2 段の レ ジ ス タ があ り 、 レ イ テ ン シ要件が 5 サ イ ク ルの場合は、 レ ジ ス タ を 3
段 (3 x 128 = 384 フ リ ッ プ フ ロ ッ プ) 追加で き ます。 ま たは、 制御 ロ ジ ッ ク を使用 し てデー タ パ ス を イ ネーブルに し ま
す。 5 段の単一ビ ッ ト のパ イ プ ラ イ ン を使用 し て、 デー タ パ ス の フ リ ッ プ フ ロ ッ プ を イ ネーブルに し ます。
注記 : こ の例は、 特定のデザ イ ンの場合にのみ可能です。 た と えば、 中間デー タ パ ス フ リ ッ プ フ リ ッ プか ら の フ ァ ン
ア ウ ト があ る 場合、 2 段だけでは動作 し ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
119
第 4 章 : デザイ ンの作成
推奨 : フ リ ッ プ フ ロ ッ プ と LUT の比率を 1.5 未満に抑え る こ と をお勧め し ます。 フ リ ッ プ フ ロ ッ プ と LUT の比率が
高 く な る と 、 ス ラ イ ス にパ ッ ク さ れ る 未関係 ロ ジ ッ ク の量が増え、 配線の複雑性が増 し 、 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 つ目のパ イ プ ラ イ ン段に接続) の例です。
FF->FF->FF(reset) -> FF->FF(reset)->FF->FF->FF(reset)->FF
SRL 推論の利点を生かすには、 次を実行 し ます。
•
パ イ プ ラ イ ン段用の リ セ ッ ト がない よ う に し ます。
•
リ セ ッ ト が本当に必要か ど う かを解析 し ます。
•
フ リ ッ プ フ ロ ッ プの 1 つ (た と えばパ イ プ ラ イ ンの最初 と 最後の段) で リ セ ッ ト を使用 し ます。
不要なパイ プ ラ イ ン を回避
使用率の高いデザ イ ンの場合、 パ イ プ ラ イ ン処理が多い と 問題 と な る こ と があ り ます。 た と えば、 不要なパ イ プ ラ イ
ン段があ る と 、 フ リ ッ プ フ ロ ッ プ と 配線 リ ソ ース の数が増加 し 、 使用率が高い場合に配置配線が制限 さ れ る こ と があ
り ます。
注記 : 0/1 レベルの ロ ジ ッ ク を含むパス が多 く あ る 場合は、 それが意図 し た も のであ る こ と を確認 し て く だ さ い。
専用ブ ロ ッ クのパイ プ ラ イ ン を考慮
タ ーゲ ッ ト アーキ テ ク チ ャ に基づいて、 パ イ プ ラ イ ン処理が十分使用 さ れてい る 場合は、 ブ ロ ッ ク RAM や DSP な
ど の専用プ リ ミ テ ィ ブは 500MHz 以上で動作で き ます。 周波数が高いデザ イ ンでは、 こ れ ら のブ ロ ッ ク 内のすべての
パ イ プ ラ イ ン を使用す る こ と をお勧め し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
120
第 4 章 : デザイ ンの作成
幅の広いバスの管理
高 ス ループ ッ ト のニーズが高 ま っ た こ と に よ り 、 高周波数で よ り 幅の広いバ ス フ ァ ン ク シ ョ ン が使用 さ れ る よ う に
な っ て き ま し た。 た と えば、 200Gb/s スループ ッ ト のデー タ 転送には、 200MHz でデー タ を転送する 1024 ビ ッ ト 幅の
バ ス が必要です。
近年の FPGA 業界では、 フ ァ ン ク シ ョ ンお よ び メ モ リ の拡大が重視 さ れてい ます。 ザ イ リ ン ク ス では、 シ リ コ ン上で
さ ま ざ ま な配線 リ ソ ースお よ び高度な配置配線アルゴ リ ズ ム を提供す る こ と で、 こ れ ら の状況に対処 し てい ます。
使用可能な リ ソ ース を考慮 し 、 パフ ォーマ ン ス を改善する ためにそれ ら を使用する よ う に し て く だ さ い。 こ の フ ロ ー
をサポー ト す る デザ イ ン手法には、 次の要素が含まれます。
•
•
•
メ モ リ の構成
°
ア ド レ スお よ び メ モ リ か ら 出力 さ れ る デー タ に レ ジ ス タ を付け ます。
°
RTL コ ー ド で メ モ リ 幅を分割 し 、 高パフ ォーマ ン ス を達成 し ます。
幅の広い フ ァ ン ク シ ョ ン
°
幅の広い演算フ ァ ン ク シ ョ ンおよび簡約演算子を イ ンプ リ メ ン ト する際は、十分なパ イ プ ラ ン段を含め ます。
°
SSI テ ク ノ ロ ジ タ ーゲ ッ ト を使用 し 、 デザ イ ン を手動で分割す る 場合は、 SLR を ま た ぐ接続を で き る だけ少
な く し ます。
°
幅の広いバ ス の複素演算を イ ンプ リ メ ン ト す る には、 ザ イ リ ン ク ス IP を使用 し ます。 IP コ アに よ り 、 高パ
フ ォーマ ン ス のための リ タ イ ミ ン グお よ びパ イ プ ラ イ ン要件が処理 さ れます。
I/O
°
幅の広いバ スお よ び高スループ ッ ト の信頼性の高い chip-to-chip デー タ 転送をサポー ト す る ザ イ リ ン ク ス シ
リ アル IP コ ア を使用 し ます。
°
同 じ バン ク ま たは隣接す る バン ク のプ ラ イ マ リ I/O を分配 し て、入力ま たは出力バ ス イ ン タ ーフ ェ イ ス の各
ビ ッ ト 間の ス キ ュ ーを最小限に し ます。
消費電力を向上する ための コ ーデ ィ ン グ ス タ イル
消費電力を向上す る ための コ ーデ ィ ン グ ス タ イ ルは、 次の と お り です。
ク ロ ッ ク またはデー タ パスにゲー ト を付け る
ク ロ ッ ク ま たはデー タ パ ス にゲー ト を付け る のは、 こ れ ら のパス の結果が使用 さ れない場合に、 遷移を停止す る ため
に よ く 使用 さ れ る 方法です。 ク ロ ッ ク にゲー ト を付け る と 、 駆動 さ れてい る すべての同期 ロ ー ド が停止 さ れ、 デー タ
パ ス信号が切 り 替わ ら な く な り 、 グ リ ッ チが伝搬 さ れな く な り ます。
ツールは、 記述お よ びネ ッ ト リ ス ト を解析 し て問題を検出 し ます。 ただ し 、 ツールでは認識 さ れず、 設計者のみが指
定可能なアプ リ ケーシ ョ ン、 デー タ フ ロ ー、 お よ び依存性に関する 情報があ る 場合 も あ り ます。
ゲー ト で制御する エ レ メ ン ト の数を最大にする
ゲーテ ィ ン グ信号に よ り 制御す る エ レ メ ン ト の数を最大限に し ます。 た と えば、 各 ロ ー ド を ク ロ ッ ク イ ネーブル信号
でゲーテ ィ ン グす る よ り も 、ク ロ ッ ク ド メ イ ン を その駆動 ソ ース を ゲーテ ィ ン グす る 方が消費電力の節約量が多 く な
り ます。
専用 ク ロ ッ ク バ ッ フ ァ ーのク ロ ッ ク イ ネーブル ポー ト を使用する
ア ク テ ィ ビ テ ィ ま たは ク ロ ッ ク ツ リ ーの使用を最小限に抑え る ために ク ロ ッ ク を ゲーテ ィ ン グ し た り ク ロ ッ ク にマ
ルチプ レ ク サを付け る 場合は、 専用 ク ロ ッ ク バ ッ フ ァ ーの ク ロ ッ ク イ ネーブル ポー ト を使用 し ます。 LUT を挿入 し
た り 、 その他の方法で ク ロ ッ ク 信号を ゲーテ ィ ン グす る と 、 消費電力 と タ イ ミ ン グの面で効率的ではあ り ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
121
第 4 章 : デザイ ンの作成
制御セ ッ ト に注意する
前述 し た よ う に、 制御セ ッ ト 数は最小限にする 必要があ り ます。 ザ イ リ ン ク ス では、 ゲーテ ッ ド ク ロ ッ ク が多数の同
期エ レ メ ン ト を駆動す る 場合にのみ、 ク ロ ッ ク ゲーテ ィ ン グ を推奨 し てい ます。 そ う でない場合、 フ リ ッ プ フ ロ ッ プ
が無駄にな る 可能性があ り ます。 ゲーテ ィ ン グ信号を追加 し てデー タ ま たは ク ロ ッ ク パ ス を停止する には、追加の ロ
ジ ッ ク お よ び配線 (そ し てそれ ら の消費電力) が必要 と な る 可能性があ り ます。 追加構造の数を最小限に抑え て、 本来
の目的に反 し ない よ う に し ます。
推奨 : 粒度が細かすぎ る ク ロ ッ ク ゲーテ ィ ン グは使用 し ないで く だ さ い。各ゲーテ ッ ド ク ロ ッ ク は、多数の同期エ レ
メ ン ト に影響 し ます。
プ ラ イ オ リ テ ィ エ ン コ ーダーが不要な場合は 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
1xx: val = reg_in1 ;
01x: val = reg_in2 ;
001: val = reg_in3 ;
default: val = reg_in4 ;
endcase
({reg1, reg2, reg3})
デザイ ンのブ ロ ッ ク RAM に関する最適な方法
ブ ロ ッ ク RAM の消費電力量は、 ブ ロ ッ ク RAM が イ ネーブルにな っ てい る 時間に直接比例 し ます。 消費電力を削減
す る には、 デザ イ ン でブ ロ ッ ク RAM が使用 さ れていない ク ロ ッ ク サ イ ク ルで RAM イ ネーブル信号を Low に し ま
す。 ブ ロ ッ ク RAM イ ネーブル レー ト と ク ロ ッ ク レー ト は、消費電力を最適化す る 際に必ず考慮す る 必要のあ る パ ラ
メ ー タ ーです。
ブ ロ ッ ク RAM のモー ド (NO_CHANGE、 READ_FIRST、 WRITE_FIRST な ど) の設定につい ては、 「適切な ブ ロ ッ ク
RAM 書 き 込みモー ド の選択」 を参照 し て く だ さ い。
メ モ リ の ワー ド 数が大 き く 幅が広い場合は、 ワ ー ド 数で分割する 方法を使用 し て、 ダ イ ナ ミ ッ ク 消費電力を削減す る
必要があ り ます。 IP カ ス タ マ イ ズ中に電力効率を優先す る アルゴ リ ズ ム を選択 し た場合は、 ワー ド 数分割が実行 さ れ
ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
122
第 4 章 : デザイ ンの作成
次の図は、 上記の文を 4Kx1024 ビ ッ ト を幅分割 し た メ モ リ コ ン フ ィ ギ ュ レーシ ョ ン を使用 し て示 し た例です。
X-Ref Target - Figure 4-8
data register
1024 data bus
concatination of
all RAM outputs
4K x 9
4K x 9
12 bit rd_addr
rd_addr
register
RAM1
RAM114
X13432
図 4-8 : 4K x 9 を使用 し た 4K x 1024 の RTL記述
こ の イ ンプ リ メ ン テーシ ョ ンでは、 各読み出 し ま たは書 き 込みですべてのブ ロ ッ ク RAM が常に イ ネーブルにな っ て
い る ので、 消費電力が増加 し ます。
次の図に、 ワー ド 数で分割 し た例を示 し ます。
X-Ref Target - Figure 4-9
18 bit
data register
4K x18 unit
4K x18 unit
18 bit
12th bit
2K x 18
2K x 18
2K x 18
2K x 18
1024 data bus
12 bit rd_addr
rd_addr
register
unit 1
unit 57
X13433
図 4-9 : 2K x 18 を使用 し た 4K x 1024 の RTL記述
こ の イ ンプ リ メ ン テーシ ョ ンでは、 各ユニ ッ ト か ら 一度に選択 さ れ る ブ ロ ッ ク RAM は 1 つなので、 ダ イ ナ ミ ッ ク な
消費電力はほぼ半分にな り ま す。 UltraScale デバ イ ス のブ ロ ッ ク RAM には専用の カ ス ケー ド MUX と 配線構造があ
り 、 複数のブ ロ ッ ク RAM プ リ ミ テ ィ ブ を必要 と す る 幅が広 く ワー ド 数の多い メ モ リ を、 パフ ォーマ ン スへの影響を
最小限に抑え て電力効率の高い コ ン フ ィ ギ ュ レーシ ョ ンで構築で き ます。 合成推論お よ び Block Memory Generator の
両方で、 指定 し た RAM コ ン フ ィ ギ ュ レーシ ョ ンに基づいて こ の回路を自動的に活用で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
123
第 4 章 : デザイ ンの作成
次の図に、 カ ス ケー ド 接続 さ れた 4 つのブ ロ ッ ク RAM の概念図を示 し ます。
X-Ref Target - Figure 4-10
'DWDWRWKH1H[W%ORFN5$0
&$6',08;
&$6'208;
&$625(*,08;
',1[
%5$0
4
'
4
'
4
)LQDO
2XWSXW
'287[
'287[
&/.
',1[
%5$0
'
'287[
&/.
',1[
%5$0
4
&/.
',1[
%5$0
'
'287[
&/.
'DWD)URPWKH3UHYLRXV%ORFN5$0
;
図 4-10 : ブ ロ ッ ク RAM カ スケー ド アーキテ ク チ ャ の概念図
パラ メ ー タ ー、 属性、 および制約
「プ ロ パテ ィ 」、 「属性」、 お よ び 「制約」 は、 文脈に よ っ て同 じ 意味で使用 さ れ る こ と があ り ます。 こ のセ ク シ ョ ンで
は、 こ の よ う な単語の概念について説明 し ます。 概念を理解 し てお く と 、 別の資料で別の用語が使用 さ れていて も 、
内容を解釈で き ます。
•
「パ ラ メ ー タ ー」
•
「制約お よ び属性」
パラ メ ー タ ー
パ ラ メ ー タ ー (VHDL ではジ ェ ネ リ ッ ク ) は、 デバ イ ス アーキ テ ク チ ャ のプ リ ミ テ ィ ブ コ ン ポーネ ン ト に関連付け る
プ ロ パテ ィ で、 イ ン ス タ ン シエー ト さ れ る コ ン ポーネ ン ト の フ ァ ン ク シ ョ ンお よ び イ ンプ リ メ ン テーシ ョ ンに影響 し
ます。こ れ ら のプ ロ パテ ィ は、ジ ェ ネ リ ッ ク マ ッ プ (VHDL) ま たは イ ン ラ イ ン パ ラ メ ー タ ー (Verilog) で渡 さ れ、VHDL
お よ び Verilog の両方でジ ェ ネ リ ッ ク ま たはパ ラ メ ー タ ー と 呼ばれます。
注記 : パ ラ メ ー タ ーを変更す る のには defparam も 使用で き ますが、 こ の目的での使用はお勧め し ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
124
第 4 章 : デザイ ンの作成
パ ラ メ ー タ ーの例は、 次の と お り です。
•
LUT6 コ ン ポーネ ン ト 上の INIT プ ロ パテ ィ
•
MMCM 上の DIVCLK_DIVIDE プ ロ パテ ィ
パ ラ メ ー タ ーの詳細は、ラ イ ブ ラ リ ガ イ ド のプ リ ミ テ ィ ブ コ ン ポーネ ン ト の説明を参照 し て く だ さ い。パ ラ メ ー タ ー
を使用す る と 、 ザ イ リ ン ク ス プ リ ミ テ ィ ブの特定動作を カ ス タ マ イ ズで き ます。
プ リ ミ テ ィ ブに関す る 内容では、 イ ン ス タ ン シエーシ ョ ン中に変更可能なプ ロ パテ ィ を説明する 際に、 こ のガ イ ド で
「パ ラ メ ー タ ー」 ま たは 「ジ ェ ネ リ ッ ク 」 と 定義 さ れてい る も のに対 し て、 「属性」 と い う 用語を使用 し てい る 資料 も
あ り ます。
プ リ ミ テ ィ ブ パラ メ ー タ ー (ジ ェ ネ リ ッ ク ) を設定する VHDL コ ー ド 例
次に、 イ ン ス タ ン シエー ト さ れ る RAM32X1S プ リ ミ テ ィ ブに対 し て INIT ジ ェ ネ リ ッ ク を設定す る VHDL コ ー ド 例
を示 し ます。 こ の INIT ジ ェ ネ リ ッ ク は、 RAM シ ン ボルの初期内容を 16 進数値 A1B2C3D4 に設定 し てい ます。
small_ram_inst :RAM32X1S
generic map (
INIT => X”A1B2C3D4”)
port map (
O => ram_out, -- RAM output
A0 => addr(0), -- RAM address[0] input
A1 => addr(1), -- RAM address[1] input
A2 => addr(2), -- RAM address[2] input
A3 => addr(3), -- RAM address[3] input
A4 => addr(4), -- RAM address[4] input
D => data_in, -- RAM data input
WCLK => clock, -- Write clock input
WE => we -- Write enable input
);
プ リ ミ テ ィ ブ パラ メ ー タ ーを設定する Verilog コ ー ド 例
次に、 イ ン ス タ ン シエー ト さ れ る IBUFDS シ ン ボルで DIFF_TERM を FALSE、 IOSTANDARD を LVDS_25 に指定す
る Verilog コ ー ド の例を示 し ます。
IBUFDS #(
.DIFF_TERM(“FALSE”), // Differential Termination
.IOSTANDARD(“DEFAULT”) // Specify the input I/O standard
) IBUFDS_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB) // Diff_n buffer input (connect directly to top-level port)
);
制約および属性
「制約」 と 「属性」 は、 よ く 同 じ 意味で使用 さ れ ます。 厳密に言 う と 、 「属性」 は HDL コ ー ド 自体に含ま れ る 指示子
で、 「制約」 は制約フ ァ イ ル (XDC) に含まれます。 制約 も 属性 も 、 特定の ツールに指定の信号ま たは イ ン ス タ ン ス の
解釈お よ び イ ンプ リ メ ン ト 方法を指示す る ための も のです。
プ ロ パテ ィ には HDL では 「属性」、 XDC では 「制約」 と し て提供 さ れ る も の も あ り 、 それ ら は 「属性」 で も あ り 「制
約」 で も あ る と 考え ら れます。 こ の場合、 「プ ロ パテ ィ 」、 「属性」、 お よ び 「制約」 は同 じ 意味で使用 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
125
第 4 章 : デザイ ンの作成
制約は、 次の 3 つのカ テ ゴ リ に分類 さ れます。
•
合成制約
•
タ イ ミ ン グ制約
•
物理制約
合成制約および属性
合成制約を使用す る と 、 合成ツールに よ る 特定のデザ イ ン ま たは HDL コ ー ド の一部に対す る 最適化手法を制御で き
ます。 合成制約 (合成属性) は、 VHDL ま たは Verilog コ ー ド に組み込むか、 ま たは別の合成制約フ ァ イ ルに含め ます。
合成属性の例には、 USE_DSP48 お よ び RAM_STYLE な ど があ り ます。
ザ イ リ ン ク ス では、 次を推奨 し てい ます。
•
機能に影響す る 指示子を属性 と し て HDL コ ー ド に含め ます。 HDL コ ー ド に常に関連する 属性を含め ます。
•
一時的な制約 (デバ ッ グに必要な制約な ど) を別の制約フ ァ イ ルに含め ます。 こ れ ら の制約は、 実際の HDL コ ー
ド を変更 し な く て も 、 簡単に削除ま たは追加で き ます。
合成属性、 制約、 お よ び指示子は通常、 コ ー ド に組み込まれ る か、 初期の イ ンプ リ メ ン テーシ ョ ン ま たはアーキ テ ク
チ ャ の合成制約フ ァ イ ルに組み込まれますが、 こ れ ら は コ メ ン ト ア ウ ト す る か、 削除す る こ と をお勧め し ます。 こ れ
ら に よ り 結果が悪化す る 可能性があ り 、 今後の イ ンプ リ メ ン テーシ ョ ンでは最適な選択ではあ り ません。
ヒ ン ト : 新規デザ イ ン ま たはデバ イ ス に変更す る 前に、 コ ー ド ま たは既存デザ イ ンのネ ッ ト リ ス ト に含ま れ る LOC、
RLOC、 BEL 制約やその他の物理制約を削除 し て く だ さ い。
以前のアーキ テ ク チ ャ で最適であ っ た配置が、 新 し いデザ イ ン ま たはアーキ テ ク チ ャ に適 し てい る と は限 り ません。
一部の制約 (位置に関す る 制約な ど) は、 新 し いアーキテ ク チ ャ では無効であ る こ と も あ り ます。
次の例では、 HDL コ ー ド でのみ属性を渡 し てい ます。
属性宣言の例
attribute attribute_name : attribute_type;
ポー ト または信号での属性の使用例
attribute attribute_name of object_name : signal is attribute_value
次に例を示 し ます。
library IEEE;
use IEEE.std_logic_1164.all;
entity d_reg is
port (
CLK, DATA: in STD_LOGIC;
Q: out STD_LOGIC
);
attribute KEEP_HIERARCHY : string;
attribute KEEP_HIERARCHY of d_reg : entity is “true”;
end d_reg;
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
126
第 4 章 : デザイ ンの作成
イ ン ス タ ン スでの属性の使用例
attribute attribute_name of object_name : label is attribute_value
次に例を示 し ます。
architecture struct of spblkrams is
attribute LOC: string;
attribute LOC of SDRAM_CLK_IBUFG: label is “AA27”;
begin
-- IBUFG:Single-ended global clock input buffer
-- All FPGA
-- Xilinx HDL Language Template
SDRAM_CLK_IBUFG :IBUFG
generic map (
IOSTANDARD => “DEFAULT”)
port map (
O => SDRAM_CLK_o, -- Clock buffer output
I => SDRAM_CLK_i -- Clock buffer input
);
-- End of IBUFG_inst instantiation
コ ンポーネ ン ト での属性の使用例
attribute attribute_name of object_name : component
is attribute_value
次に例を示 し ます。
architecture xilinx of tenths_ex is
attribute black_box : boolean;
component tenths
port (
CLOCK : in STD_LOGIC;
CLK_EN : in STD_LOGIC;
Q_OUT : out STD_LOGIC_VECTOR(9 downto 0)
);
end component;
attribute black_box of tenths : component is true;
begin
こ れま で Verilog には VHDL の attribute の よ う な概念はあ り ませんで し た。 こ のため、 ほ と んん ど のツールで Verilog
では独自の pragmas が使用 さ れてい ま し た。 Verilog 2001 では、 VHDL の attribute の よ う に統一 さ れた構文が提供 さ れ
てい ます。 属性はオブジ ェ ク ト 宣言の直前に宣言 さ れ る ので、 オブジ ェ ク ト 名は属性の宣言には含まれません。
(* (attribute_name = “attribute_value” *)
Verilog_object;
次に例を示 し ます。
(* (RLOC = “R1C0.S0” *) FDCE #(
.INIT(1’b0) // Initial value of register (1’b0 or 1’b1)
) U2 (
.Q(q1), // Data output
.C(clk), // Clock input
.CE(ce), // Clock enable input
.CLR(rst), // Asynchronous clear input
.D(q0) // Data input
);
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
127
第 4 章 : デザイ ンの作成
RTL DRC の実行
HDL で発生す る 可能性のあ る コ ー ド の問題を特定す る ための RTL DRC ルールがあ り ます。 こ れ ら の DRC チ ェ ッ ク
を実行す る には、 Flow Navigator で [Elaborated Design] → [Report DRC] を ク リ ッ ク す る か、 Tcl コ マ ン ド プ ロ ンプ ト で
「report_drc -ruledeck methodology_checks」 を実行 し ます。 こ れ ら のチ ェ ッ ク は、 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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
128
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-11
&ORFN5RXWLQJDQG'LVWULEXWLRQ7UDFNV
&ORFN5HJLRQ%RXQGDU\
&/%'63
%5$0
&ORFNLQJ
,2
*7+<
;
図 4-11 : UltraScale デバイ スのク ロ ッ ク領域 タ イル
ク ロ ッ キ ン グ アーキ テ ク チ ャ は、 あ る 配置の ク ロ ッ ク バ ッ フ ァ ー と ロ ー ド を接続す る のに必要な ク ロ ッ ク リ ソ ース
のみが使用 さ れ る よ う に設計 さ れてい る ので、 ロ ー ド のない ク ロ ッ ク 領域で リ ソ ース が無駄に使用 さ れ る こ と はあ り
ません。 ク ロ ッ ク リ ソ ース の使用が効率的だ と 、 アーキ テ ク チ ャ で よ り 多 く のデザ イ ン ク ロ ッ ク がサポー ト さ れ る
よ う にな る ほか、 パフ ォーマ ン スお よ び消費電力のために ク ロ ッ ク 特性 も 改善 さ れます。 ク ロ ッ ク タ イ プお よ び関連
の ク ロ ッ ク 構造は、 ド ラ イ バーお よ び使用法に よ っ て次の主な カ テ ゴ リ に分類 さ れます。
•
高速 I/O ク ロ ッ ク
こ れ ら の ク ロ ッ ク は高速 SelectIO™ イ ン タ ーフ ェ イ ス の ビ ッ ト ス ラ イ ス ロ ジ ッ ク に関連付け ら れてお り 、 PLL
に よ り 生成 さ れ、 専用の低ジ ッ タ ーの リ ソ ース を介 し て高速 I/O イ ン タ ーフ ェ イ ス の ビ ッ ト ス ラ イ ス ロ ジ ッ ク
に配線 さ れます。 通常、 こ の ク ロ ッ キ ン グ構造は メ モ リ IP や High Speed SelectIO Wizard な ど のザ イ リ ン ク ス IP
で作成 さ れて制御 さ れ る ので、 ユーザーが指定す る も のではあ り ません。
•
汎用 ク ロ ッ ク
こ れ ら の ク ロ ッ ク は、 ほ と ん ど の ク ロ ッ ク ツ リ ー構造で使用 さ れ、 GCIO パ ッ ケージ ピ ン、 MMCM/PLL、 ま た
はフ ァ ブ リ ッ ク ロ ジ ッ ク セル (通常は推奨 さ れない) に よ り 供給 さ れ ます。 汎用 ク ロ ッ キ ン グ ネ ッ ト ワ ー ク は、
I/O 列を含む ど の ク ロ ッ ク 領域で も 使用可能な BUFGCE/BUFGCE_DIV/BUFGCTRL バ ッ フ ァ ーで駆動す る 必要
があ り ます。 各 ク ロ ッ ク 領域で 24 個ま での固有の ク ロ ッ ク をサポー ト で き 、 ほ と ん ど の UltraScale デバ イ ス で ク
ロ ッ ク ト ポ ロ ジ、 フ ァ ン ア ウ ト 、 ロ ー ド 配置に よ っ て 100 個以上の ク ロ ッ ク ツ リ ーをサポー ト 可能です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
129
第 4 章 : デザイ ンの作成
•
ギガ ビ ッ ト ト ラ ン シーバー (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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
130
第 4 章 : デザイ ンの作成
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 4-12
7UDFN
7R7UDFN
%8)*&(B;<
%8)*&(B',9B;<
7R7UDFN
%8)*&(B;<
%8)*&75/B;<
7R7UDFN
%8)*&(B;<
08;
7R7UDFN
%8)*&(B;<
7UDFN
7UDFN
7UDFN
7UDFN
7R7UDFN
%8)*&(B;<
7UDFN
7UDFN
7UDFN
%8)*&75/B;<
7R7UDFN
7UDFN
%8)*&(B;<
;
図 4-12 : BBUFGCE、 BUFGCE_DIV、 BUFGCTRL の入力の共有 と MUX を介 し た出力
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
131
第 4 章 : デザイ ンの作成
ク ロ ッ ク の配線、 ルー ト 、 お よび分配
UltraScale デバ イ ス の ク ロ ッ キ ン グ機能 と デザ イ ン の ク ロ ッ キ ン グの使用を正 し く 理解す る には、 ク ロ ッ ク 配線で専
用配線 リ ソ ース が ど の よ う に使用 さ れ る かを知っ てお く こ と が重要です。
•
ク ロ ッ ク バ ッ フ ァ ーか ら ク ロ ッ ク ルー ト ま では、 ク ロ ッ ク 信号は縦方向配線お よ び横方向配線の 1 つま たは複
数セグ メ ン ト を通過 し ます。 各セグ メ ン ト は、 同 じ ト ラ ッ ク ID (0 ~ 23) を使用す る 必要があ り ます。
•
ク ロ ッ ク ルー ト では、 ク ロ ッ ク 信号が配線 ト ラ ッ ク か ら 同 じ ト ラ ッ ク ID の分配 ト ラ ッ ク に遷移 し ます。 最 も 良
好な ス キ ュ ーを取得する ために、 ク ロ ッ ク ルー ト は通常 ク ロ ッ ク 領域の真ん中 ( ク ロ ッ ク ウ ィ ン ド ウ の中央) に
配置 さ れ ます。 ク ロ ッ ク ウ ィ ン ド ウ は、 ク ロ ッ ク ネ ッ ト の ロ ー ド が配置 さ れ る ク ロ ッ ク 領域すべて を含む長方
形のエ リ アです。ス キ ュ ー最適化の理由か ら 、Vivado IDE で ク ロ ッ ク ルー ト が中心か ら ず ら さ れ る と があ り ます。
•
ク ロ ッ ク 信号は、 ク ロ ッ ク ルー ト か ら ロ ー ド が配置 さ れてい る CLB 列に向か っ て、 まず縦方向 (必要に応 じ てデ
バ イ ス の上下両方の方向) に分配 さ れた後、 横方向 (必要に応 じ てデバ イ ス の左右両方の方向) に分配 さ れます。
•
CLB 列は、 横方向分配 リ ソ ース の上下にあ る 2 つの半分に分割 さ れます。 CLB 列の半分にはそれぞれ、 横方向
の分配 ト ラ ッ ク のいずれかで到達可能な複数の リ ーフ ク ロ ッ ク 配線 リ ソ ース が含まれます。
場合に よ っ ては、 ク ロ ッ ク バ ッ フ ァ ーで ク ロ ッ ク 分配 ト ラ ッ ク を直接駆動で き ます。 こ れは通常、 ク ロ ッ ク ルー ト
が ク ロ ッ ク バ ッ フ ァ ー と 同 じ ク ロ ッ ク 領域にあ る 場合、 ま たは ク ロ ッ ク バ ッ フ ァ ーが ク ロ ッ ク 以外の ピ ン (フ ァ ン ア
ウ ト の大 き いネ ッ ト な ど) のみを駆動す る 場合に発生 し ます。
ク ロ ッ ク 配線 リ ソ ース はセグ メ ン ト に分割 さ れ る ので、 ク ロ ッ ク 領域を横切る ため、 ま たは ク ロ ッ ク 領域の ロ ー ド に
到達す る ために使用 さ れ る 配線セグ メ ン ト お よ び分配セグ メ ン ト のみが消費 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
132
第 4 章 : デザイ ンの作成
次の図は、ク ロ ッ ク 領域 X2Y1 にあ る ク ロ ッ ク バ ッ フ ァ ーが ク ロ ッ ク ウ ィ ン ド ウ (長方形で囲まれた X1Y3 か ら X5Y5
の ク ロ ッ ク 領域) 内にあ る ロ ー ド に到達する と こ ろ を示 し てい ます。
X-Ref Target - Figure 4-13
;<
;<
;<
;<
;<
;<
'HVLJQ,PSOHPHQWDWLRQ
&ORFN%XIIHU;<
&ORFN5RRW;<
&ORFN:LQGRZ;<!;<
&ORFN5HJLRQVZLWK/RDGV
8OWUD6FDOH$UFKLWHFWXUH
&ORFN5RXWLQJDQG'LVWULEXWLRQ7UDFNV
&ORFN5HJLRQ%RXQGDU\
;
図 4-13 : UltraScale デバイ スでの ド ラ イバーから ロー ド ま でのク ロ ッ ク配線
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
133
第 4 章 : デザイ ンの作成
次の図の配線済みデバ イ ス表示は、 デバ イ ス のほぼ全体に分配 さ れ る グ ロ ーバル ク ロ ッ ク の例を示 し てい ます。 ネ ッ
ト ワー ク を駆動す る ク ロ ッ ク バ ッ フ ァ ーは、 ク ロ ッ ク 領域 X2Y0 に青色で表示 さ れてお り 、 その ク ロ ッ ク 領域内の横
方向配線を駆動 し てい ます。 こ の後ネ ッ ト は横方向配線か ら ク ロ ッ ク 領域 X2Y0 の縦方向配線に遷移 し 、 ク ロ ッ ク 領
域 X2Y5 の ク ロ ッ ク ルー ト に到達 し ます。 すべての ク ロ ッ ク 配線は青色でハ イ ラ イ ト さ れてい ます。 ク ロ ッ ク ルー
ト は、 ク ロ ッ ク 領域 X2Y5 に赤色でハ イ ラ イ ト さ れてい ます。 X2Y5 の ク ロ ッ ク ルー ト か ら は、 ネ ッ ト が縦分配に遷
移 し た後、 横方向分配に遷移 し 、 ク ロ ッ ク リ ーフ ピ ンに到達 し ます。 分配レ イ ヤー と CLB 列の リ ーフ ク ロ ッ ク 配線
リ ソ ース は、 赤色でハ イ ラ イ ト さ れてい ます。
X-Ref Target - Figure 4-14
;
図 4-14 : 配線済み ク ロ ッ ク ネ ッ ト ワー ク を示す [Device] ウ ィ ン ド ウ
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
134
第 4 章 : デザイ ンの作成
ク ロ ッ ク ツ リ ーの配置配線
次の段階では、 Vivado 配置で物理的な XDC 制約を保持 し なが ら 、 MMCM/PLL、 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ー、
お よ び ク ロ ッ ク ルー ト の配置が決定 さ れます。
1.
I/O お よ び ク ロ ッ ク 配置
配置ツールで接続規則 と ユーザー制約に基づいて I/O バ ッ フ ァ ー と MMCM/PLL が配置 さ れます。 配置ツールで
は、 ク ロ ッ ク バ ッ フ ァ ーが ク ロ ッ ク 領域に割 り 当て ら れますが、 LOC プ ロ パテ ィ を使用 し て制約 さ れない限 り 、
個別のサ イ ト には割 り 当て ら れません。 詳細は、 表 4-4 を参照 し て く だ さ い。 ク ロ ッ ク 以外の ロ ー ド のみを駆動
す る ク ロ ッ ク バ ッ フ ァ ーだけが、その ド ラ イ バー と ロ ー ド の配置に基づいて フ ロ ーの後の段階で別の ク ロ ッ ク 領
域に移動で き ます。
こ の段階の配置ツール エ ラ ーは、 接続規則 と ユーザー制約のいずれか ま たは両方が競合す る ために発生 し ます。
ロ グ フ ァ イ ルにエ ラ ーの根本的な原因 と 考え ら れ る 要因に関する 情報が表示 さ れ る ので、詳細に確認 し てデザ イ
ン ま たは制約を適切に変更す る 必要があ り ます。
2.
SLR 分割(SSI テ ク ノ ロ ジ デバ イ ス のみ) お よ びグ ロ ーバル配置
配置ツールでは、早期の ド ラ イ バーお よ び ロ ー ド の配置に基づいて、初期 ク ロ ッ ク ツ リ ー イ ンプ リ メ ン テーシ ョ
ンが実行 さ れます。 各 ク ロ ッ ク ネ ッ ト は ク ロ ッ ク ウ ィ ン ド ウ に関連付け ら れます。 ク ロ ッ ク ウ ィ ン ド ウ が過剰
に重な る 場合、 ク ロ ッ ク 配線の競合が予測 さ れ、 配置ツール エ ラ ーが発生する 可能性があ り ます。
ク ロ ッ ク 分割エ ラ ーが発生 し た場合、 ロ グ フ ァ イ ルに各 ク ロ ッ ク ネ ッ ト の最後の ク ロ ッ ク バジ ェ ッ ト ソ リ ュ ー
シ ョ ン と 、 各 ク ロ ッ ク 領域に存在す る 固有の ク ロ ッ ク ネ ッ ト の数が表示 さ れ ます。 ロ グ フ ァ イ ルを詳細に確認
し 、過剰に使用 さ れてい る ク ロ ッ ク 領域か ら ど の ク ロ ッ ク を削除す る か を判断 し ます。 ク ロ ッ ク を削除す る には、
次の手法を使用で き ます。
°
同 じ同期 ク ロ ッ ク 同士を組み合わせる か、 不要な MMCM フ ィ ー ド バ ッ ク ク ロ ッ ク を削除する か、 フ ァ ン ン
ア ウ ト の小 さ い ク ロ ッ ク を フ ァ ン ア ウ ト の大き い ク ロ ッ ク に ま と めて、デザ イ ンの ク ロ ッ ク 数を削除 し ます。
°
ク ロ ッ ク プ リ ミ テ ィ ブ を別の ク ロ ッ ク 領域、 特に接続ベース の配置規則のない領域に移動 し ます。
°
ク ロ ッ ク ロ ー ド に フ ロ アプ ラ ン制約を追加 し て、フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク を それ ら の ド ラ イ バー近 く
に配置す る か、 使用率の高い ク ロ ッ ク 領域か ら 離 し ます。
配置ツールでは、 ク ロ ッ ク ツ リ ー イ ンプ リ メ ン テーシ ョ ン を何度 も 改良 し て、 タ イ ミ ン グの QoR (結果の品質)
を向上 し ます。 た と えば、 後の配置最適化段階で、 困難な ク ロ ッ ク が解析 さ れ、 よ り 適 し た ク ロ ッ ク ルー ト の位
置が決定 さ れます。
3.
ク ロ ッ ク ツ リ ーの事前配線
配置ツールで、 後に続 く イ ンプ リ メ ン テーシ ョ ン段階がガ イ ド さ れ、 配置後の タ イ ミ ン グ解析用に正確な遅延が
予測 さ れます。
配置後は、 Vivado ツールで ク ロ ッ ク ツ リ ー イ ンプ リ メ ン テーシ ョ ン を次の よ う に変更で き ます。
•
Vivado 物理最適化では、 セルを複製 し て、 関連 ク ロ ッ ク な し で ク ロ ッ ク 領域に移動で き ます。
•
Vivado 配線では、 タ イ ミ ン グ QoR (結果の品質) を改善 し て ク ロ ッ ク 配線を有効にす る ための調整を実行で き ま
す。 配線指示子の EXPLORE を使用す る と 、 Vivado 配線で ク ロ ッ ク ルー ト の位置を変更 し て タ イ ミ ン グ QoR (結
果の品質) を改善す る こ と も で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
135
第 4 章 : デザイ ンの作成
次の表では、 主な ク ロ ッ ク ト ポ ロ ジの配置規則 と 制約が こ れ ら の規則に ど う 影響する か を ま と めてい ます。
表 4-4 : 配置規則のある場合 と ない場合の ト ポロ ジ
制約付き ソ ース
制約な し のデス テ ィ ネーシ ョ ン
ビヘ イ ビ アー
GCIO
BUFGCE、 BUFGCTRL、 BUFGCE_DIV、 同 じ ク ロ ッ ク 領域に自動的に配置 さ れます。
PLL/MMCM
PLL/MMCM
BUFGCE、 BUFGCTRL、 BUFGCE_DIV
同 じ ク ロ ッ ク 領域に自動的に配置 さ れます。
GT*_CHANNEL
BUFG_GT
同 じ ク ロ ッ ク 領域に自動的に配置 さ れます。
BUFGCTRL
BUFGCTRL
同 じ ク ロ ッ ク 領域に自動的に配置 さ れます。
注記 : 同 じ ク ロ ッ ク 領域へ内の配置は、
CLOCK_REGION 制約を使用 し て無効にで き ます。
BUFG*
BUFG*
BUFG*
MMCM/PLL
制約の付いていないデス テ ィ ネーシ ョ ンの BUFG
は予測不可能な配置にな り ます。
デ ス テ ィ ネーシ ョ ン BUFG* に CLOCK_REGION
制約を設定する こ と を推奨 し ます。
注記 : BUFGCTRL -> BUFGCTRL は例外です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
制約の付い て い な いデ ス テ ィ ネーシ ョ ン
MMCM/PLL. は予測不可能な配置にな り ます。
MMCM/PLL に LOC 制約を設定す る こ と を推奨
し ます。
配線が隣接する ク ロ ッ ク 領域ま たは複数の ク ロ ッ
ク 領域に ま たが る場合は、
CLOCK_DEDICATED_ROUTE 制約を推奨 し ます。
japan.xilinx.com
136
第 4 章 : デザイ ンの作成
ク ロ ッ キング機能
ク ロ ッ ク プ ラ ン ニ ン グは、 タ ーゲ ッ ト デバ イ ス の フ ァ ン ア ウ ト の大 き い ク ロ ッ ク と フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク
の総数に基づいて実行す る 必要があ り ます。
フ ァ ン アウ ト の大き い ク ロ ッ ク
フ ァ ン ア ウ ト の大 き い ク ロ ッ ク は、 SSI テ ク ノ ロ ジ デバ イ ス の SLR のほ と ん ど全体に分配 さ れ る か、 モ ノ リ シ ッ ク
デバ イ ス のほ と ん どすべての ク ロ ッ ク 領域に分配 さ れます。 次の図は、 SLR のぼぼ全体に分配 さ れ る フ ァ ン ア ウ ト の
大 き い ク ロ ッ ク を示 し てい ます。 BUFGCE ド ラ イ バーは赤色で示 し てい ます。
X-Ref Target - Figure 4-15
図 4-15 : SLR 全体に分配 さ れる フ ァ ン アウ ト の大き い ク ロ ッ ク
注記 : デザ イ ンで使用 さ れ る ク ロ ッ ク が 24 個を超え る 場合は、特別なデザ イ ン考慮事項やその他の事前プ ラ ン ニ ン グ
が必要 と な る よ う な問題が発生す る こ と があ り ます。
重要 : ZHOLD お よ び BUF_IN 補正モー ド では、 MMCM フ ィ ー ド バ ッ ク ク ロ ッ ク パ ス は、 配線 ト ラ ッ ク 、 ク ロ ッ ク
ルー ト の位置、 分配 ト ラ ッ ク な ど が CLKOUT0 ク ロ ッ ク パ ス と 同 じ にな り ます。 そのため、 ク ロ ッ ク バ ッ フ ァ ー と
ク ロ ッ ク ルー ト が離れて い る 場合、 フ ィ ー ド バ ッ ク ク ロ ッ ク は フ ァ ン ア ウ ト の大 き い ク ロ ッ ク と 考え ら れ ま す。
MMCM 補正 メ カ ニズ ムの詳細は、 「MMCM ZHOLD/BUF_IN 補正を使用 し た I/O タ イ ミ ン グ」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
137
第 4 章 : デザイ ンの作成
フ ァ ン アウ ト の小 さ い ク ロ ッ ク
ほ と ん ど の場合、 フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク は、 横方向に隣接す る 3 つ以下の ク ロ ッ ク 領域に配置 さ れた 5000
個未満の ク ロ ッ ク ピ ンに接続 さ れ る ク ロ ッ ク ネ ッ ト です。 ク ロ ッ ク 配線、 ク ロ ッ ク ルー ト 、 お よ び ク ロ ッ ク 分配は、
すべて限 ら れたエ リ ア内に含ま れ ます。 配置ツールでは、 フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク が特定 さ れ る はずですが、
で き ない こ と も あ り ます。 こ れは、 デザ イ ン サ イ ズ、 デバ イ ス サ イ ズ、 ま たは LOC 制約や Pblock な ど の物理的な
XDC 制約が原因で、 配置ツールで ロ ー ド を ロ ーカル エ リ アに配置で き ない こ と があ る か ら です。 こ の問題を修正す
る には、 手動で Pblock を作成 し て、 既存の物理制約を変更す る 必要があ る こ と があ り ます。
フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク は、 た と えば FG_GT で駆動 さ れ る ク ロ ッ ク です。 Vivado 配置ツールでは、 自動的に
こ れ ら の ク ロ ッ ク ネ ッ ト が認識 さ れ、GT イ ン タ ーフ ェ イ ス に隣接する ク ロ ッ ク 領域に ロ ー ド を含め ます。次の図は、
2 つの ク ロ ッ ク 領域に含ま れ る フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク を示 し てい ます。 BUFG_GT ド ラ イ バーは赤色で示 し
てい ます。
X-Ref Target - Figure 4-16
図 4-16 : 2 つのク ロ ッ ク 領域に含まれる フ ァ ン アウ ト の小 さ い ク ロ ッ ク
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
138
第 4 章 : デザイ ンの作成
フ ァ ン アウ ト の大き い ク ロ ッ ク と 小 さ い ク ロ ッ ク のバラ ン ス
UltraScale デバ イ ス では、 それ以前のザ イ リ ン ク ス FPGA フ ァ ミ リ よ り も 多 く の ク ロ ッ ク がサポー ト さ れてお り 、 次
の よ う な さ ま ざ ま な ク ロ ッ キ ン グ手法が使用で き る よ う にな っ てい ます。
•
24 個以下の ク ロ ッ ク
競合す る ユーザー制約がなければ、 すべての ク ロ ッ ク を配置ま たは配線競合の リ ス ク な し に フ ァ ン ア ウ ト の大 き
い ク ロ ッ ク と し て扱 う こ と がで き ます。
•
ほぼ 300 個の ク ロ ッ ク
6 つの ク ロ ッ ク 領域行のデバ イ ス を タ ーゲ ッ ト に し ていて、 各 ク ロ ッ ク が最大 3 つの ク ロ ッ ク 領域に含 ま れ る
フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク し か含まれないデザ イ ンの場合は、6 行 x 各行 2 ク ロ ッ ク ウ ィ ン ド ウ x 各領域 24
ク ロ ッ ク = 288 ク ロ ッ ク が必要 と な り ます。
フ ァ ン ア ウ ト の小 さ い ク ロ ッ ク の ウ ィ ン ド ウ には決ま っ たサ イ ズはあ り ませんが、 通常は 1 ~ 3 ク ロ ッ ク 領域です。
フ ァ ン ア ウ ト の大 き い ク ロ ッ ク がデバ イ ス全体や SLR 全体に分配 さ れ る こ と は まれです。
次の手法は、 フ ァ ン ア ウ ト の大 き い ク ロ ッ ク と 小 さ い ク ロ ッ ク のバ ラ ン ス を取る 方法を示 し てい ます。 フ ァ ン ア ウ ト
の小 さ い ク ロ ッ ク の う ち数個は 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 制約
ク ロ ッ ク を制約す る には、 次の よ う に LOC 制約を使用で き ます。
•
I/O ポー ト の ク ロ ッ ク 入力に使用
GCIO の ク ロ ッ ク に PACKAGE_PIN 制約を割 り 当てた り 、 IOB に LOC を割 り 当て る と 、 ク ロ ッ ク ネ ッ ト ワー ク
に影響 し ます。 入力ポー ト に直接接続 さ れ る MMCM/PLL お よ び ク ロ ッ ク バ ッ フ ァ ーは、 同 じ ク ロ ッ ク 領域に配
置す る 必要があ り ます。
•
MMCM ま たは PLL に使用
MMCM ま たは PLL 出力に直接接続 さ れ る ク ロ ッ ク バ ッ フ ァ ー と MMCM ま たは PLL 入力に接続 さ れ る 入力 ク
ロ ッ ク ポー ト は、 同 じ ク ロ ッ ク 領域に自動的に配置 さ れます。 入力 ク ロ ッ ク ポー ト と MMCM ま たは PLL が直
接接続 さ れてお り 、 別の ク ロ ッ ク 領域に制約 さ れてい る 場合、 ク ロ ッ ク バ ッ フ ァ ーを手動で挿入 し 、 MMCM ま
たは PLL に接続 さ れたネ ッ ト に CLOCK_DEDICATED_ROUTE 制約を設定する 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
139
第 4 章 : デザイ ンの作成
•
GT*_CHANNEL ま たは IBUFDS_GTE3 セルに使用
セルで駆動 さ れ る BUFG_GT は、 同 じ ク ロ ッ ク 領域に配置 さ れます。
注意 : ク ロ ッ ク バ ッ フ ァ ー セルに LOC 制約を使用す る のは、 推奨 さ れ ません。 ク ロ ッ ク が特定の ト ラ ッ ク ID に指
定 さ れ、 配線で き な く な る よ う な配置にな る こ と があ り ます。 UltraScale デバ イ ス では、 デザ イ ンの ク ロ ッ ク ツ リ ー
全体を理解 し ていて、 配置がデザ イ ンで一貫 し てい る 場合に、 フ ァ ン ア ウ ト の大 き いバ ッ フ ァ ーを配置す る ためにの
み LOC 制約を使用 し て く だ さ い。 こ の よ う に注意を払っ て も 、デザ イ ンや制約の変更に よ り 、 イ ンプ リ メ ン テーシ ョ
ンで競合が発生す る こ と があ り ます。
ク ロ ッ ク バ ッ フ ァ ーでの CLOCK_REGION プ ロパテ ィ の使用
サ イ ト を指定せずに ク ロ ッ ク バ ッ フ ァ ーを ク ロ ッ ク 領域に割 り 当て る には、 CLOCK_REGION 制約を使用で き ます。
こ の制約を使用す る と 、 すべての ク ロ ッ ク ツ リ ーを最適化す る 際、 お よ び適切なバ ッ フ ァ ー サ イ ト を決定す る 際に、
配置が さ ら に柔軟に実行 さ れ る よ う にな り 、 すべての ク ロ ッ ク を問題な く 配線で き る よ う にな り ます。
CLOCK_REGION 制約は、 カ ス ケー ド ク ロ ッ ク バ ッ フ ァ ーや、 フ ァ ブ リ ッ ク ロ ジ ッ ク な ど の ク ロ ッ ク 以外のプ リ ミ
テ ィ ブで駆動 さ れ る ク ロ ッ ク バ ッ フ ァ ーの配置にガ イ ド ラ イ ン を提供する ために使用する こ と も で き ます。
次の例では、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]
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
140
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-17
図 4-17 : ク ロ ッ ク バ ッ フ ァ ーで駆動 さ れる ネ ッ ト セグ メ ン ト に適用 さ れた USER_CLOCK_ROOT
配置後は、次の例に示す よ う に、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]
次の図は、 こ の レ ポー ト を示 し てい ます。
X-Ref Target - Figure 4-18
図 4-18 : report_clock_utilization によ る ク ロ ッ ク ルー ト 割 り 当ての確認
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
141
第 4 章 : デザイ ンの作成
複数のク ロ ッ ク ネ ッ ト での 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」 を参照 し て く だ さ い。
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]
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
142
第 4 章 : デザイ ンの作成
次の図は、 CLOCK_DEDICATED_ROUTE 制約が BACKBONE に設定 さ れ、 縦方向に隣接す る ク ロ ッ ク 領域の MMCM
ま たは PLL が駆動 さ れ る と こ ろ を示 し てい ます。
X-Ref Target - Figure 4-19
• • • • • • •• • • • • •
図 4-19 : CLOCK_DEDICATED_ROUTE 制約をBACKBONE に設定
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
143
第 4 章 : デザイ ンの作成
ク ロ ッ ク バ ッ フ ァ ーで縦方向に隣接 し ないその他の ク ロ ッ ク 領域を駆動す る 場合は、 CLOCK_DEDICATED_ROUTE
を FALSE に設定す る 必要があ り ます。 こ れに よ り 、 イ ンプ リ メ ン テーシ ョ ン エ ラ ーが発生 し な く な り 、 ク ロ ッ ク が
グ ロ ーバル ク ロ ッ ク リ ソ ース のみを使用 し て配線 さ れ る よ う にな り ます。次の例 と 図は、縦に隣接 し ない 2 つの PLL
を駆動す る BUFGCE を示 し てい ます。
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_buf]
X-Ref Target - Figure 4-20
;
図 4-20 : CLOCK_DEDICATED_ROUTE 制約を FALSE に設定
ク ロ ッ キング ト ポロ ジの推奨事項
ザ イ リ ン ク ス では、 デザ イ ンに必要な最低限の数の ク ロ ッ ク バ ッ フ ァ ーを含む単純な ク ロ ッ ク ツ リ ー ト ポ ロ ジ を使
用す る こ と をお勧め し てい ます。 余分な ク ロ ッ ク バ ッ フ ァ ーを使用する と 、 必要 と な る 配線 ト ラ ッ ク が増え る ので、
ク ロ ッ ク 領域で配置エ ラ ーま たは配線競合が発生す る 可能性があ り 、 ク ロ ッ ク 配線要件 も 厳 し く な り 、 最大容量に近
く な っ て し ま い ます。
次に、 BUFGCE/BUFGCTRL/BUFGCE_DIV 接続に関す る ク ロ ッ キ ン グ ト ポ ロ ジの推奨事項を示 し ます。
並列 ク ロ ッ ク バ ッ フ ァ ー
並列 ク ロ ッ ク バ ッ フ ァ ーを使用す る と 、 次を達成で き ます。
•
イ ンプ リ メ ン テーシ ョ ン run 間で予測可能な配置
並列 ク ロ ッ ク バ ッ フ ァ ーを同 じ 入力 ク ロ ッ ク ポー ト 、 MMCM、 PLL、 ま たは GT*_CHANNEL で直接駆動す る
と 、 ネ ッ ト リ ス ト の変更ま たは ロ ジ ッ ク 配置のバ リ エーシ ョ ンに関係な く 、 バ ッ フ ァ ーは常にその ド ラ イ バー と
同 じ ク ロ ッ ク 領域に配置 さ れます。
•
ク ロ ッ ク ツ リ ーの並列分岐間の挿入遅延を一致 さ せる
分岐間に同期パ ス があ る 場合は、 カ ス ケー ド ク ロ ッ ク バ ッ フ ァ ー よ り も 並列バ ッ フ ァ ーをお勧め し ます。 カ ス
ケー ド さ れたバ ッ フ ァ ーを使用す る と 、 CLOCK_DELAY_GROUP ま たは USER_CLOCK_ROOT 制約を使用す る
場合で も 、 ク ロ ッ ク ツ リ ーの分岐間で ク ロ ッ ク 挿入遅延が一致 し ません。 こ の結果、 ク ロ ッ ク ス キ ュ ーが大 き
く な り 、 タ イ ミ ン グ ク ロ ージ ャ が困難にな り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
144
第 4 章 : デザイ ンの作成
次の図は、 MMCM CLKOUT0 ポー ト で駆動 さ れ る 3 つの並列 BUFGCE バ ッ フ ァ ーを示 し てい ます。
X-Ref Target - Figure 4-21
図 4-21 : MMCM 出力の並列 BUFGCE
カ スケー ド ク ロ ッ ク バ ッ フ ァ ー
通常は、 カ ス ケー ド バ ッ フ ァ ーを使用 し て遅延を人工的に増加 し 、 関連 し ない ク ロ ッ ク ツ リ ー分岐間の ス キ ュ ーを
削減す る こ と はお勧め し ません。BUFGCTRL 間の接続 と は違い、ほかの ク ロ ッ ク バ ッ フ ァ ー接続にはアーキ テ ク チ ャ
内に専用パ ス があ り ません。 こ のため、 ク ロ ッ ク バ ッ フ ァ ーの相対配置は予測で き ず、 すべての配置規則が制約 さ れ
ていないカ ス ケー ド バ ッ フ ァ ーの配置 よ り も 優先 さ れます。
ただ し 、 次を達成す る ためにはカ ス ケー ド ク ロ ッ ク バ ッ フ ァ ーを使用で き ます。
•
ク ロ ッ ク を異な る ク ロ ッ ク 領域にあ る 別の ク ロ ッ ク バ ッ フ ァ ーに配線する
こ の方法は、 異な る ク ロ ッ ク 領域にあ る MMCM で生成 さ れた ク ロ ッ ク に対 し て ク ロ ッ ク マルチプ レ ク サーを
使用す る 場合に通常使用 し ます。 MMCM の 1 つは BUFGCTRL (BUFGMUX) を直接駆動で き ますが、 も う 一方
の MMCM は ク ロ ッ ク 信号を それ以外の領域に配線す る ために中間 ク ロ ッ ク を必要 と し ま す。 次の図に例を示
し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
145
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-22
&ORFN5HJLRQ
&ORFN5HJLRQ
;
図 4-22 : ク ロ ッ ク を別の ク ロ ッ ク領域に配線
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
146
第 4 章 : デザイ ンの作成
•
分岐間に同期パ ス があ る 場合は、 ク ロ ッ ク ツ リ ー分岐間で ク ロ ッ ク バ ッ フ ァ ーの レベル数のバ ラ ン ス を調整 し
ます。
た と えば、 グループ A (異な る ク ロ ッ ク 領域にあ る BUFGCTRL を介 し て駆動 さ れ る シーケ ン シ ャ ル セル) と グ
ループ B (シーケ ン シ ャ ル セル) の両方を駆動す る clk0 と い う MMCM ク ロ ッ ク があ る と し ます。 分岐間の遅延
を よ り 一致 さ せ る には、 グループ B 用に BUFGCE を挿入 し 、 BUFGCTRL と 同 じ ク ロ ッ ク 領域に配置 し ます。 こ
れに よ り 、 グループ A と グループ B 間の同期パ ス の ス キ ュ ーの量が制御 さ れます。 次の図に例を示 し ます。
X-Ref Target - Figure 4-23
*URXS$
6\QFKURQRXV3DWKV
&ORFN5HJLRQ
&ORFN5HJLRQ
*URXS%
;
図 4-23 : ク ロ ッ ク領域間の同期パスのク ロ ッ ク ツ リ ーのバラ ン ス調整
注記 : ク ロ ッ ク ツ リ ー分岐間に非同期パ ス し かない場合、受信 ク ロ ッ ク ド メ イ ンに適切な同期回路があれば、 こ
れ ら の分岐間でバ ラ ン ス を調整す る 必要はあ り ません。
•
「 ク ロ ッ ク マルチプ レ ク サー」 に示す よ う に ク ロ ッ ク マルチプ レ ク サーを構築す る
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
147
第 4 章 : デザイ ンの作成
挿入遅延 と ス キ ュ ーの変動を削減す る には、 カ ス ケー ド ク ロ ッ ク バ ッ フ ァ ーを使用す る 場合に次を実行す る こ と を
お勧め し ます。
•
カ ス ケー ド バ ッ フ ァ ーを同 じ ク ロ ッ ク 領域ま たは隣接する ク ロ ッ ク 領域に配置する
•
ク ロ ッ ク ツ リ ー分岐のバ ラ ン ス が調整 さ れてい る 場合は、 同 じ レベルの ク ロ ッ ク
ロ ッ ク 領域に割 り 当て る
バ ッ フ ァ ーすべて を同 じ ク
注記 : 絶対に必要な場合は、 カ ス ケー ド BUFGCE の代わ り に 2 つのカ ス ケー ド BUFGCTRL を使用す る こ と をお勧め
し ます。 専用配線を使用す る と 、 両方の BUFGCTRL が同 じ ク ロ ッ ク 領域内に配置 さ れ る 場合に、 最小限の遅延で 2
つの隣接す る BUFGCTRL を カ ス ケー ド で き ます。
ク ロ ッ ク マルチ プ レ クサー
並列 BUFGCTRL と カ ス ケー ド BUFGCTRL を組み合わせて使用する と 、ク ロ ッ ク マルチプ レ ク サーを構築で き ます。
配置ツールでは、 使用可能な ク ロ ッ ク バ ッ フ ァ ー サ イ ト に基づいて、 最適な配置が検出 さ れ ま す。 可能で あれば、
BUFGCTR が同 じ ク ロ ッ ク 領域に配置 さ れ、 専用カ ス ケー ド パ ス が活用 さ れ ま す。 可能でない場合は、 隣接す る ク
ロ ッ ク 領域の同 じ レベルか ら の BUFGCTRL が配置 さ れます。
次の図は、 バ ラ ン ス調整 さ れて カ ス ケー ド さ れた 4:1 MUX を示 し てい ます。 BUFGCTRL バ ッ フ ァ ーの最初の レベル
は、 両方 と も 最後の BUFGCTRL (X0Y1) に直接隣接す る ク ロ ッ ク 領域 (X0Y2、 X0Y0) に配置 さ れます。 こ の コ ン フ ィ
ギ ュ レーシ ョ ンに よ り 、 最後の BUFGCTRL に到達する すべての ク ロ ッ ク に同 じ 挿入遅延が使用 さ れます。 同等の構
造は 3:1 MUX に も 使用で き ます。
X-Ref Target - Figure 4-24
図 4-24 : 並列 BUFGCTRL を使用 し た 4:1 MUX
5:1 ま たはそれ以上の ク ロ ッ ク MUX 構造を作成す る 場合は、 次の図に示す よ う な対称的な ク ロ ッ ク 構造を作成す る
方法 が よ く 使用 さ れ ま す が、 こ れ は最適 な ソ リ ュ ー シ ョ ン で あ り ま せ ん。 各 BUFGCTRL に は 2 つ の 隣接す る
BUFGCTRL へのカ ス ケー ド パ ス が 1 つ し かな く 、BUFGCTRL 間のすべての接続に最低限の遅延が提供 さ れないか ら
です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
148
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-25
図 4-25 : 推奨 さ れないバラ ン ス調整済み 8:1 ク ロ ッ ク MUX 構造
大型の ク ロ ッ ク マルチプ レ ク サー (5:1 ~ 8:1 MUX) をサポー ト す る ため、ザ イ リ ン ク ス では次の図に示す よ う な カ ス
ケー ド BUFGCTRL を使用す る こ と をお勧め し てい ます。 こ の図は、 7 つの BUFGCTRL を使用す る 最適な 8:1 MUX
を示 し てい ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
149
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-26
図 4-26 : カ スケー ド 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
プ ロ パテ ィ 値を使用 し ます。
BUFG_GT 分周器
BUFG_GT バ ッ フ ァ ーはフ ァ ブ リ ッ ク の ど の ロ ー ド で も 駆動で き 、GT*_CHANNEL か ら ク ロ ッ ク を分周す る ために使
用で き る オプシ ョ ンの分周器を含みます。 こ れに よ り 、 ク ロ ッ ク を分周する ために余分な MMCM ま たは BUFG_DIV
を使用す る 必要はな く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
150
第 4 章 : デザイ ンの作成
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 に配置 さ れ る よ う に決定 さ れま し た。
X-Ref Target - Figure 4-27
図 4-27 : ク ロ ッ ク ルー ト に制約が付いていない場合のク ロ ッ ク 使用量のサマ リ
次のサマ リ は、 ク ロ ッ ク ルー ト に制約が付いていない場合の I/O タ イ ミ ン グ を示 し てい ます。
X-Ref Target - Figure 4-28
図 4-28 : ク ロ ッ ク ルー ト に制約の付いていない場合の タ イ ミ ング サマ リ
次の例の場合、 ク ロ ッ ク ルー ト が X0Y0 の I/O レ ジ ス タ の隣に移動 さ れ、 ク ロ ッ ク 挿入遅延 と タ イ ミ ン グの不必要に
悪い見積 も り 部分が減 る ので、 I/O タ イ ミ ン グが改善 さ れます。
X-Ref Target - Figure 4-29
図 4-29 : ク ロ ッ ク ルー ト にユーザー制約が付いている場合のク ロ ッ ク使用量のサマ リ
次のサマ リ は、 ク ロ ッ ク ルー ト が移動 さ れた場合の I/O タ イ ミ ン グ を示 し てい ます。
X-Ref Target - Figure 4-30
図 4-30 : ク ロ ッ ク ルー ト にユーザー制約が付いている場合の タ イ ミ ング サマ リ
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
151
第 4 章 : デザイ ンの作成
同期 CDC
デザ イ ン に同 じ MMCM/PLL か ら の ク ロ ッ ク 間の同期 CDC パ ス が含ま れ る 場合、 次の方法を使用 し て、 ク ロ ッ ク 挿
入遅延 と ス キ ュ ーを さ ら に制御 し て、 こ れ ら のパ ス の ス ラ ッ ク を制御で き ます。
重要 : CDC パ ス が異な る MMCM/PLL か ら の ク ロ ッ ク 間にあ る 場合は、 MMCM/PLL の ク ロ ッ ク 挿入遅延の方が制御
す る のが困難です。 こ の場合、 こ れ ら の ク ロ ッ ク 乗せ換え を非同期 と し て扱っ て、 デザ イ ン を その よ う に変更す る こ
と をお勧め し ます。
同 じ MMCM/PLL の異な る 出力ピ ンか ら の 2 つの ク ロ ッ ク 間のパ ス に タ イ ミ ン グが付いてい る と 、 MMCM/PLL 位相
エ ラ ーに よ り そのパ ス に ク ロ ッ ク のば ら つ き が追加 さ れます。 高い ク ロ ッ ク 周波数を使用 し たデザ イ ンの場合は、 位
相エ ラ ーに よ り セ ッ ト ア ッ プ と ホール ド の両方で タ イ ミ ン グ ク ロ ージ ャ 問題が発生する こ と があ り ます。
次の図は、 位相エ ラ ーのあ る 場合 と ない場合のパス の例を示 し てい ます。 パ ス 1 は、 同 じ MMCM 出力に接続 さ れた
2 つのバ ッ フ ァ ーか ら ク ロ ッ ク が供給 さ れてい る CDC パ ス で、 位相エ ラ ーは含まれてい ません。 パ ス 2 には、 2 つの
異な る MMCM 出力か ら 2 つの ク ロ ッ ク が供給 さ れてお り 、 位相エ ラ ーが含まれます。
X-Ref Target - Figure 4-31
3DWK
3DWK
;
図 4-31 : MMCM および位相エ ラ ー
同 じ 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 バ ッ フ ァ ー ) を使用す る こ と をお勧め し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
152
第 4 章 : デザイ ンの作成
次の図は、 CLKOUT0 ク ロ ッ ク を 1 と 2 でそれぞれ分周する 2 つの BUFGCE_DIV を示 し てい ます。
注記 : 次の図では並列で 2 つの BUFGCE_DIV し か使用 し てい ませんが、ク ロ ッ ク 領域内で最大 4 つま で使用で き ます。
X-Ref Target - Figure 4-32
図 4-32 : 1 つの MMCM 出力に接続 さ れた BUFGCE_DIV を使用する MMCM 同期 CDC
同 じ MMCM ま たは PLL か ら の複数の ク ロ ッ ク 間のバ ラ ン ス が自動的に調整 さ れ る よ う にす る には、バ ラ ン ス調整す
る 必要のあ る ク ロ ッ ク バ ッ フ ァ ーで駆動 さ れ る ネ ッ ト に同 じ CLOCK_DELAY_GROUP プ ロ パテ ィ 値を設定 し ます。
次はその他の推奨事項です。
•
CLOCK_DELAY_GROUP を多 く の ク ロ ッ ク に設定 し すぎない よ う に し ます。 設定 し すぎ る と 、 ク ロ ッ ク 配置ツー
ルに ス ト レ ス がかか り 、 ソ リ ュ ーシ ョ ンが最適でな く な る か、 エ ラ ーが発生 し ます。
•
タ イ ミ ン グ サマ リ レ ポー ト で ク リ テ ィ カル同期 CDC パ ス を確認 し 、 タ イ ミ ン グ を満たすために ど の ク ロ ッ ク の
遅延を一致 さ せ る 必要があ る かを決定 し ます。
•
要件が厳 し く 、 ク ロ ッ ク ト ポ ロ ジが同 じ の場合は、 同期 ク ロ ッ ク のグループへの CLOCK_DELAY_GROUP の使
用は抑え て く だ さ い。
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 デバ イ ス間の
ク ロ ッ キ ン グ要件を比較 し てい ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
153
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-33
6HULHV'HYLFHV00&0XVHGIRUGLYLGH
8OWUD6FDOH'HYLFHV%8)*B*7XVHGIRUGLYLGH
/2&.('
%8)*
%8)*B*7
&/.287
+2
00&0
%8)+%8)*
%8)*B*7
7;287&/.
7;287&/.
&/.287
&/.,1
+1
%8)*
6HULHV
)3*$V
7UDQVFHLYHU
8OWUD6FDOH
'HYLFHV
*7+
7UDQVFHLYHU
7;865&/.
7;865&/.
7;'$7$ELWV
Design in
FPGA
7;865&/.
7;865&/.
7;'$7$ELWV
Design in
UltraScale
Architecture
;
図 4-33 : ク ロ ッ キング要件の比較
ク ワ ッ ド 内の GT*_CHANNEL の出力 ク ロ ッ ク ま たは ク ワ ッ ド 内の IBUFDS_GTE3/ODIV2 ピ ン で生成 さ れ る 基準 ク
ロ ッ ク の ど れ を 使用 し て も 、 同 じ ク ロ ッ ク 領域内 の 24 個 の BUFG_GT バ ッ フ ァ ー の ど れ で も 駆動 で き ま す。
BUFG_GT_SYNC は、 共有 ク ロ ッ ク ソ ース で駆動 さ れ る BUFG_GT の リ セ ッ ト と ク リ ア を同期す る ために常に必要
です。
注記 : Vivado ツールでは、 BUFG_GT_SYNC プ リ ミ テ ィ ブがデザ イ ンに含まれない場合、 自動的に追加 さ れます。
アプ リ ケーシ ョ ンの中には、 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 の半分の周期で動作する 場合 (例 : BUFG_GT が 1 で分周 さ れ る も の と 2 で分周 さ
れ る も の と 別々にな っ てい る 場合)、 GT イ ン タ ーフ ェ イ ス の各 GT*CHANNEL の [RT]XUSRCLK/[RT]XUSRCLK2 ペ
ア間の ス キ ュ ー要件は厳 し く な り ます。 こ の ス キ ュ ー要件を満たすには、 [RT]XUSRCLK/[RT]XUSRCLK2 ペア を生成
す る マ ス タ ー チ ャ ネルの最大 2 ク ロ ッ ク 領域内 (上か下) に GT*CHANNEL を配置 し ます。 ま た、配置ツールでは、 ス
キ ュ ーが次の よ う に厳 し く 制御 さ れます。
•
ク ワ ッ ド の上部ま たは下部 12 の BUFG_GT に BUFG_GT ペア を割 り 当て ます。
•
BUFG_GT を含む ク ロ ッ ク 領域に両方の ク ロ ッ ク の ク ロ ッ ク ルー ト を割 り 当て ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
154
第 4 章 : デザイ ンの作成
推奨 : ス キ ュ ー違反を避け る ため、 [RT]XUSRCLK2 が [RT]XUSRCLK の半分の周波数で動作す る 場合は、 こ の ク ロ ッ
キ ン グ ト ポ ロ ジに従 う よ う に し て く だ さ い。
PCI Express の CORECLK/PIPECLK/USERCLK スキ ュ ーを一致 さ せる ための統合ブ ロ ッ ク
UltraScale Integrated Block for PCI Express® には、 CORECLK、 USERCLK、 お よ び PIPECLK の 3 つの ク ロ ッ ク が必要
です。 こ の 3 つの ク ロ ッ ク は、 物理 イ ン タ ー フ ェ イ ス の GT*_CHANNEL の 1 つの 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] を参照 し て く だ さ い。
7 シ リ ーズ デバイ スの ク ロ ッ キング
こ のセ ク シ ョ ンでは、 Virtex®-7 の ク ロ ッ ク リ ソ ース を例 と し て使用 し ますが、 Virtex-6 デバ イ ス の ク ロ ッ ク リ ソ ース
も 同様です。 I別のアーキ テ ク チ ャ を使用す る 場合は、 該当デバ イ ス の 『 ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 [参
照 39] を参照 し て く だ さ い。
Virtex-6 お よ び Virtex-7 デバ イ ス には、 BUFG と い う 32 個の グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーが含 ま れ ま す。 BUFG
は、 ク ロ ッ ク に関す る 次の要件を満たすのに最適なバ ッ フ ァ ーです。
•
ク ロ ッ ク数
•
デザ イ ン パフ ォーマ ン ス
•
低消費電力
•
次の よ う なその他の ク ロ ッ ク 特性
°
ク ロ ッ ク ゲー ト
°
マルチプ レ ク サー
°
分周
°
その他の ク ロ ッ ク 制御
BUFG コ ン ポーネ ン ト は合成で推論 さ れ、 制限が少な く 、 ほ と ん ど の汎用 ク ロ ッ ク に使用で き ます。
推奨 : 使用可能な BUFG の数 よ り 多 く の BUFG が必要な場合、ま たは全体的な ク ロ ッ ク 特性を改善す る 必要があ る 場
合は、使用可能な ク ロ ッ ク リ ソ ース に対 し て ク ロ ッ ク の要件を解析 し 、タ ス ク に最適な リ ソ ース を選択 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
155
第 4 章 : デザイ ンの作成
グ ローバル ク ロ ッ ク リ ソ ース
こ のセ ク シ ョ ンでは、 次のグ ロ ーバル ク ロ ッ ク リ ソ ース について説明 し ます。
•
BUFG
BUFG エ レ メ ン ト は、 ク ロ ッ キ ン グに よ く 使用 さ れ ます。 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーには追加の機能があ
り ますが、 こ れ ら の機能を使用す る にはデザ イ ン コ ー ド ま たは合成に手動で変更を加え る 必要があ り ます。
•
BUFGCE
グ リ ッ チのない同期 ク ロ ッ ク イ ネーブル (ゲー ト ) 機能は、 BUFGCE プ リ ミ テ ィ ブ を使用する と 、 追加の ロ ジ ッ
ク や リ ソ ース を使用 し な く て も 使用で き ます。 BUFGCE は、 異な る 時間の回路動作に異な る 周波数が必要な場合
に、 ク ロ ッ ク を一定期間停止 し た り 、 高周波数 ク ロ ッ ク か ら 1/2 ま たは 1/4 の周波数な ど、 ス キ ュ ーお よ び消費
電力の少ない分周 ク ロ ッ ク を作成で き ます。
•
BUFGMUX
BUFGMUX を使用す る と 、 1 つの ク ロ ッ ク ソ ース か ら 別に ク ロ ッ ク ソ ース に、 グ リ ッ チ ま たはその他の問題な
し に安全に切 り 替え る こ と がで き ます。 こ れは、 時間お よ び動作条件に よ っ て 2 つの異な る ク ロ ッ ク 周波数が必
要な場合に使用で き ます。
•
BUFGCTRL
BUFGCTRL を使用す る と 、 グ ロ ーバル ク ロ ッ ク ネ ッ ト ワー ク の機能すべて を利用で き 、 ク ロ ッ ク 切 り 替え回路
がな く な っ た り 、 停止 し た り す る よ う な複雑な ク ロ ッ ク 条件で、 ク ロ ッ ク を非同期制御で き る よ う にな り ます。
ほ と ん ど の場合、 こ の コ ン ポーネ ン ト は コ ー ド に イ ン ス タ ン シエー ト する 必要があ り 、 必要な ク ロ ッ ク 動作を得
る ため、 接続が最適にな る よ う にす る 必要があ り ます。
状況に よ っ ては、 IP お よ び合成で こ れ ら のア ド バ ン ス ク ロ ッ ク 機能が使用 さ れ る こ と も あ り ま す。 た と えば、
Memory Interface Generator (MIG) を使用す る 場合、 I/O での高速デー タ の送受信に特別な ク ロ ッ ク バ ッ フ ァ ーが
使用 さ れ る こ と があ り ます。常に必要な ク ロ ッ ク リ ソ ースお よ び各 IP に使用 さ れ る ク ロ ッ ク リ ソ ース を認識 し 、
全体的な ク ロ ッ ク アーキ テ ク チ ャ お よ びプ ラ ン ニ ン グで考慮する こ と をお勧め し ます。
こ れ ら の コ ン ポーネ ン ト の詳細は、 ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド お よ び ラ イ ブ ラ リ ガ イ ド を参照 し て
く だ さ い。
リ ージ ョ ナル ク ロ ッ ク リ ソ ース
グ ロ ーバル ク ロ ッ ク リ ソ ース だけでな く 、 次の リ ージ ョ ナル ク ロ ッ ク リ ソ ース も あ り ます。
•
水平 ク ロ ッ ク リ ージ ョ ン バ ッ フ ァ ー (BUFH、 BUFHCE)
水平 ク ロ ッ ク リ ージ ョ ン バ ッ フ ァ ー (BUFH、 BUFHCE) は、 ス タ ン ド ア ロ ン ま たは BUFG と 組み合わせて使用
で き ます。 こ れ ら のバ ッ フ ァ ーを使用する と 、 ク ロ ッ ク お よ びその ク ロ ッ ク に接続 さ れ る 関連 ロ ジ ッ ク の配置が
さ ら に詳細に制御で き 、 ク ロ ッ ク ド メ イ ンの多いデザ イ ンに ク ロ ッ ク リ ソ ース を追加で き ます。
BUFH お よ び BUFHCE リ ソ ー ス を使用す る と 、 任意の ク ロ ッ ク 領域に接続 さ れ る グ ロ ーバル ク ロ ッ ク ネ ッ ト
ワー ク (BUFG) の一部を使用で き る よ う にな り ます。 こ れに よ り 、 ク ロ ッ ク 領域内に含め る こ と が可能な よ り 小
さ い ク ロ ッ ク ド メ イ ンの場合は、 グ ロ ーバル ク ロ ッ ク ネ ッ ト ワー ク のほかの未使用にな っ て し ま う 部分か ら ス
キ ュ ーの小 さ い リ ソ ー スへのア ク セ ス が可能にな り ます。 BUFHCE には同 じ グ リ ッ チのない ク ロ ッ ク イ ネーブ
ルが含まれ、 特定の ク ロ ッ ク ド メ イ ンの ク ロ ッ ク ゲー ト を よ り シ ンプルで安全な も のにで き ます。
BUFHCE を BUFG で駆動す る と 、 中粒度の ク ロ ッ ク ゲー ト フ ァ ン ク シ ョ ン と し て使用で き ま す。 断続的に ク
ロ ッ ク を停止す る 必要のあ る 数百か ら 数千 ロ ー ド の範囲の ク ロ ッ ク ド メ イ ン部分には、 BUFHCE が効率的な ク
ロ ッ ク リ ソ ー ス と な る こ と があ り ます。 BUFG は、 同 じ ま たは異な る ク ロ ッ ク 領域内の複数の BUFH を駆動で
き る ので、 ス キ ュ ーの小 さ い複数の ク ロ ッ ク ド メ イ ンが使用で き る よ う にな り 、 ク ロ ッ ク を個別に制御可能にな
り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
156
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-34
Enable
CE
I
Gated
Logic
O
BUFHCE
BUFG
Clock
I
O
Non-gated
Logic
X13496
図 4-34 : 水平ク ロ ッ ク リ ージ ョ ン バ ッ フ ァ ー
独立 し て使用す る 場合、 BUFH に接続 さ れてい る ロ ー ド はすべて同 じ ク ロ ッ ク 領域に含ま れ る 必要があ り ます。
こ れは、 高速で細粒度 ( ロ ー ド の少ない) の ク ロ ッ ク が必要な場合に適 し てい ます。 BUFHCE は、 特定 ク ロ ッ ク
領域内で中粒度の ク ロ ッ ク ゲー ト を達成する ために使用で き ます。BUFH で駆動 さ れ る リ ソ ース が ク ロ ッ ク 領域
で使用可能な リ ソ ース を超え ない よ う に し 、 ま た、 その他の競合が発生 し ない よ う に し て く だ さ い。
ヒ ン ト : こ の問題は、 こ れ ら のネ ッ ト ワ ー ク の ロ ー ド を少な く する と 回避で き ます。
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 構造にあ る 入力お よ び出力 コ ン ポーネ ン ト のみを駆動で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
157
第 4 章 : デザイ ンの作成
BUFIO を使用す る 場合は、 I/O ロ ジ ッ ク と フ ァ ブ リ ッ ク 間でデー タ を確実に転送す る 必要があ る こ と を考慮 し て
く だ さ い。
•
マルチ リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ ー (BUFMR)
マルチ リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ ー (BUFMR) を使用す る と 、1 つの ク ロ ッ ク ピ ン (MRCC) でそのバン ク 内
の BUFIO お よ び BUFR を駆動で き る ほか、 その上下の I/O バン ク (存在する 場合) も 駆動で き ます。
ザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス の ク ロ ッ キ ン グ リ ソ ース の詳細は、 『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ
ソ ース ユーザー ガ イ ド 』 (UG472) [参照 39] を参照 し て く だ さ い。
SSI デバイ スの ク ロ ッ ク に関する追加注意事項
通常、 前述の ク ロ ッ ク に関す る 注意事項はすべて SSI テ ク ノ ロ ジ デバ イ ス に も 当てはま り ますが、 こ れ ら のデバ イ ス
を タ ーゲ ッ ト にす る 場合、 その構造か ら 、 ほかに も 考慮が必要な事項があ り ます。 前のセ ク シ ョ ン で述べた よ う に、
リ ージ ョ ナル ク ロ ッ ク は BUFMR を使用す る 際の例外を除いて同 じ で、 SRL の境界を超え て ク ロ ッ ク リ ソ ース を駆
動す る こ と はで き ません。 そのため、 BUFMR を駆動す る ク ロ ッ ク を、 SLR 内の中央 ク ロ ッ ク 領域にあ る バン ク ま た
は ク ロ ッ ク 領域に配置す る こ と をお勧め し ます。 こ れに よ り 、 SLR の左側ま たは右側にあ る 3 つすべての ク ロ ッ ク
領域にア ク セ ス で き る よ う にな り ます。
グ ロ ーバル ク ロ ッ キ ン グに関 し ては、 デザ イ ンに必要な グ ロ ーバル ク ロ ッ ク (BUFG) が 16 個以下の場合は、 競合が
発生 し な い よ う に ツ ールで自動的に BUFG が割 り 当て ら れ る ので、 こ れ以上考慮す る 事項は あ り ま せん。 必要な
BUFG が 16 個を超え る が 32 個未満の場合は、 ピ ン選択お よ び配置に注意を払い、 グ ロ ーバル ク ロ ッ ク ラ イ ンの競
合や ク ロ ッ ク ロ ー ド の配置に よ っ て リ ソ ース の競合が発生 し ない よ う にする 必要があ り ます。
その他すべてのザ イ リ ン ク ス 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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
158
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-35
,QWHUSRVHU
%8)*;<
%8)*;<
%8)*;<
6/5
%8)*;<
,QWHUSRVHU&ORFN%DFNERQH7UDFNV %8)*;<
%8)*;<
%8)*;<
6/5
%8)*;<
,QWHUSRVHU&ORFN%DFNERQH7UDFNV
%8)*;<
%8)*;<
%8)*;<
6/5
%8)*;<
,QWHUSRVHU&ORFN%DFNERQHWUDFNV
%8)*;<
6/5&ORFN%DFNERQH
%8)*;<
6/5
%8)*;<
%8)*;<
,QWHUSRVHU
X14051
図 4-35 : SSI デバイ スのク ロ ッ ク ラ イ ンの絶縁 (オプ シ ョ ン)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
159
第 4 章 : デザイ ンの作成
SSI デバイ スのグローバル ク ロ ッ ク リ ソ ースの ク ロ ッ ク スキ ュ ー
高集積度 FPGA デバ イ ス の ク ロ ッ ク ス キ ュ ーが、 パ ス の全体的な タ イ ミ ン グ バジ ェ ッ ト のかな り の部分を占めて し
ま う こ と があ り ます。 ク ロ ッ ク ス キ ュ ーが大 き すぎ る と 、 最大 ク ロ ッ ク 速度で問題が発生する だけでな く 、 ホール ド
タ イ ム要件 も 厳 し く な り ます。 デバ イ ス に複数のダ イ があ る と 、 PVT 式のプ ロ セ ス部分が悪化 し ますが、 ザ イ リ ン ク
ス のアセ ンブ リ プ ロ セ ス で管理 さ れてお り 、同 じ よ う な速度のダ イ のみが一緒にパ ッ ケージ化 さ れ る よ う にな っ てい
ます。
こ の よ う に余分な動作はあ り ますが、 ザ イ リ ン ク ス タ イ ミ ン グ ツールでは こ れ ら の差異が タ イ ミ ン グ レ ポー ト の一
部 と し て考慮 さ れます。 パ ス解析中には、 こ れ ら の面がセ ッ ト ア ッ プお よ びホール ド 計算の一部 と し て解析 さ れ、 指
定 し た要件に対す る パ ス遅延の一部 と し て レ ポー ト さ れます。 SSI テ ク ノ ロ ジ デバ イ ス で も 、 こ れ ら は タ イ ミ ン グ解
析ツールで考慮 さ れ る ので、 別に計算 し た り 考慮 し た り す る 必要はあ り ません。
SLR の上部ま たは下部を遅延 と し て使用する と 、 ス キ ュ ーは増加 し ます。 ポ イ ン ト 間が長いほ ど、 違い も 大 き く な り
ます。 こ のため、 複数の SLR を駆動す る 必要のあ る グ ロ ーバル ク ロ ッ ク は中央の SLR に配置す る こ と をお勧め し ま
す。 こ れに よ り 、 パーツ全体に ク ロ ッ ク ネ ッ ト ワ ー ク が よ り 均一に分配 さ れ、 全体的な ク ロ ッ ク ス キ ュ ーが削減 さ
れます。
UltraScale デバ イ ス が タ ーゲ ッ ト の場合は ク ロ ッ ク 配置への影響は小 さ く な り ま すが、 ク ロ ッ ク 挿入遅延お よ び ク
ロ ッ ク の消費電力を削減で き る よ う 、 ク ロ ッ ク ソ ース を ク ロ ッ ク ロ ー ド の中央ポ イ ン ト ので き る だけ近 く に配置す
る こ と を強 く お勧め し ます。
ク ロ ッ ク 構造の設計
こ こ ま でで、 ク ロ ッ ク の決定に関す る 主な考慮事項については説明 し たので、 次はデザ イ ンに必要な ク ロ ッ ク を達成
す る 方法について説明 し ます。
推論
Vivado 合成では、 ユーザーが指定 し な く て も 、 すべての ク ロ ッ ク 構造に対 し てアーキ テ ク チ ャ で許容 さ れ る 最大数ま
でグ ロ ーバル バ ッ フ ァ ー (BUFG) が、 特に指定 し た場合を除いて、 自動的に指定 さ れます。 前述の よ う に、 BUFG を
使用す る と 、 ほ と ん ど の ク ロ ッ ク の必要性に合っ た、 詳細に制御 さ れた ス キ ュ ーの小 さ いネ ッ ト ワー ク が提供 さ れま
す。 デザ イ ン ク ロ ッ ク がそのパーツ の BUFG の数ま たは機能を超え ない限 り 、 こ れ以上の操作は必要あ り ません。
ただ し 、 ク ロ ッ ク 構造の制御を さ ら に追加する と 、 ジ ッ タ ー、 ス キ ュ ー、 配置、 消費電力、 パフ ォーマ ン ス、 ま たは
その他の特性な ど を改善で き る こ と があ り ます。
合成制約お よび属性
ク ロ ッ ク リ ソ ース を制御す る 単純な方法は、 CLOCK_BUFFER_TYPE 合成制約ま たは属性を使用す る こ と です。 合成
制約は、 次のために使用で き ます。
•
BUFG の推論を回避
•
BUFG を代替 ク ロ ッ ク 構造 と 置換
•
ク ロ ッ ク バ ッ フ ァ ーを指定 (指定 し ない と 存在 し ない)
合成制約を使用す る と 、 コ ー ド を変更す る 必要な く 、 こ れ ら の制御を実行で き ます。
属性は、 次のいずれかで指定で き ます。
•
HDL コ ー ド に直接 (コ ー ド 内に存続可能)
•
XDC フ ァ イ ルの制約 と し て (HDL ソ ース コ ー ド に変更を加え る 必要な し )
制約お よ び属性の詳細は、 「パ ラ メ ー タ ー、 属性、 お よ び制約」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
160
第 4 章 : デザイ ンの作成
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 テ ンプ レー ト の使用」 を参照 し て く だ さ い。
ク ロ ッ ク の位相、 周波数、 デ ュ ーテ ィ サイ ク ル、 およびジ ッ
タ ーの制御
こ のセ ク シ ョ ンでは、 い く つかの ク ロ ッ ク 特性の詳細な調整について説明 し ます。
•
「 ク ロ ッ ク 調整ブ ロ ッ ク (MMCM お よ び PLL) の使用」
•
「 ク ロ ッ ク に IDELAY を使用 し た位相制御」
•
「ゲーテ ッ ド ク ロ ッ ク の使用」
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
161
第 4 章 : デザイ ンの作成
ク ロ ッ ク 調整ブ ロ ッ ク (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 はユーザー ロ ジ ッ ク に接続 し 、 『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472) [参
照 39] に記述 さ れてい る よ う にアサー ト で き る よ う にす る 必要があ り ます。 RST を グ ラ ン ド 接続す る と 、 ク ロ ッ
ク に割 り 込みがあ っ た場合に問題 と な る こ と があ り ます。
•
LOCKED 出力は、 リ セ ッ ト の イ ンプ リ メ ン テーシ ョ ンに使用す る 必要があ り ます。 た と えば、 PLL か ら の ク ロ ッ
ク が供給 さ れ る 同期 ロ ジ ッ ク は、 LOCKED がア サー ト さ れ る ま で リ セ ッ ト の ま ま に し てお く 必要が あ り ま す。
LOCKED 信号は、 デザ イ ンの同期部分で使用 さ れ る 前に同期す る 必要があ り ます。
•
フ ィ ー ド バ ッ ク パス の BUFG は、PLL/MMCM 出力 ク ロ ッ ク の位相 と 入力基準 ク ロ ッ ク の位相がア ラ イ メ ン ト さ
れ る 必要があ る 場合にのみ必要です。
•
CLKFBIN お よ び CLKFBOUT 間の接続を確認 し て く だ さ い。
推奨 : Clocking Wizard 内で さ ま ざ ま な設定を試 し て、 全体的なデザ イ ン目標を達成す る ために最 も 必要 と さ れ る コ ン
フ ィ ギ ュ レーシ ョ ンが作成 さ れ る よ う に し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
162
第 4 章 : デザイ ンの作成
ク ロ ッ ク に 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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
163
第 4 章 : デザイ ンの作成
ク ロ ッ ク リ ソ ース選択のま と め
BUFG
•
フ ァ ン ア ウ ト の大 き い ク ロ ッ ク をデバ イ ス の複数の ク ロ ッ ク 領域に供給す る 必要があ る 場合に使用 し ます。 カ ス
ケー ド さ れた BUFG があ る 場合は、 それが必要か ど う か、 ま たは BUFG が誤っ て含ま れたのではないか を確認
し て く だ さ い。
•
イ ン ス タ ン シエー ト ま たは ク ロ ッ ク の手動制御が望まれない場合に使用 し ます。
•
混合極性が存在 し ない中~低速の ク ロ ッ ク の場合は、 グ ロ ーバル リ セ ッ ト の よ う な フ ァ ン ア ウ ト の大 き い、 ク
ロ ッ ク 以外のネ ッ ト に使用 し ます。 こ の よ う な使用は、 デザ イ ンに 2 つま でに制限す る こ と をお勧め し ます。
•
SSI テ ク ノ ロ ジ デバ イ ス で ク ロ ッ ク が複数の SLR に ま たが る 必要があ る 場合は、それ ら の ク ロ ッ ク を中央の SLR
の 1 つに配置 し ます。 こ れに よ り 、 ク ロ ッ ク ネ ッ ト がデバ イ ス全体に よ り 均等に分配 さ れ、 ス キ ュ ーを削減で き
ます。
BUFGCE
•
フ ァ ン ア ウ ト の大 き い複数領域の ク ロ ッ ク ド メ イ ン を停止する ために使用 し ます。
BUFGMUX/BUFGCTRL
•
デザ イ ンの操作中に ク ロ ッ ク 周波数ま たは ク ロ ッ ク ソ ース を変更する ために使用 し ます。
BUFGCE_DIV (UltraScale デバイ スのみ)
•
単純な ク ロ ッ ク 分周を生成す る ために使用 し ます。
BUFG_GT (UltraScale デバイ スのみ)
•
GT ま たは GT の専用基準 ク ロ ッ ク を ソ ース と す る 場合に使用 し ます。
BUFH (7 シ リ ーズ デバイ スのみ)
•
単一の ク ロ ッ ク 領域内に含め る こ と がで き る ロ ジ ッ ク の小 さ な ク ロ ッ ク ド メ イ ンに使用 し ます。
•
かな り 高速の ク ロ ッ ク ド メ イ ンに使用 し ます。
•
BUFG と ク ロ ッ ク リ ソ ース を争 う 可能性の少ない ク ロ ッ ク ド メ イ ンで使用 し ます。
•
SSI テ ク ノ ロ ジ デバ イ ス の場合、中央の SLR に配置 さ れた BUFG と リ ソ ース を争 う 可能性を少な く する ため、通
常は上部 SLR ま たは下部 SLR で使用する こ と をお勧め し ます。
BUFHCE (7 シ リ ーズ デバイ スのみ)
•
単一の ク ロ ッ ク 領域に配置可能な ク ロ ッ ク ネ ッ ト ワー ク の中粒度部分の ク ロ ッ ク ゲーテ ィ ン グに使用 し ます。
BUFHCE は BUFG で駆動で き ます。
•
単一の ク ロ ッ ク 領域内に含め る こ と がで き る 、 リ セ ッ ト の よ う な フ ァ ン ア ウ ト の大 き い ク ロ ッ ク 以外の信号に使
用 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
164
第 4 章 : デザイ ンの作成
BUFR (7 シ リ ーズ デバイ スのみ)
•
450MHz 以下のパフ ォーマ ン ス の小型~中型の ク ロ ッ ク ネ ッ ト ワ ー ク に使用 し ます。
•
ク ロ ッ ク 分周が必要で、 最大 3 つま での垂直に隣接 し た ク ロ ッ ク 領域内に制限可能な外部 ク ロ ッ ク に使用 し ま
す。
•
SSI テ ク ノ ロ ジ デバ イ ス の場合、中央の SLR に配置 さ れた BUFG と リ ソ ース を争 う 可能性を少な く する ため、通
常は上部 SLR ま たは下部 SLR で使用する こ と をお勧め し ます。
BUFIO (7 シ リ ーズ デバイ スのみ)
•
通常同期デー タ キ ャ プチ ャ の外部供給の高速 I/O ク ロ ッ ク に使用 し ます。
BUFMR (7 シ リ ーズ デバイ スのみ)
•
単一の ク ロ ッ ク ソ ース に対 し て、 BUFR ま たは BUFIO を垂直に隣接 し た複数の ク ロ ッ ク 領域で使用す る 必要が
あ る 場合に使用 し ます。
•
SSI テ ク ノ ロ ジ デバ イ ス の場合、BUFMR お よ び関連ピ ン を SLR 内の中央 ク ロ ッ ク 領域に配置す る こ と をお勧め
し ます。 こ れに よ り 、 必要に応 じ て BUFMR か ら 3 つすべての ク ロ ッ ク 領域にア ク セ ス で き ます。
BUFMRCE (7 シ リ ーズ デバイ スのみ)
•
ク ロ ッ ク が定期的に停止す る 必要のあ る 単一の ク ロ ッ ク ソ ース に対 し て、 BUFR ま たは BUFIO を垂直に隣接す
る 複数の ク ロ ッ ク 領域で使用す る 必要があ る 場合に使用 し ます。
•
ク ロ ッ ク 分周が使用 さ れ る 部分で複数の BUFR を使用 し た場合、 BUFMRCE を使用 し て、 接続 さ れたすべての
BUFR の位相を正 し く 開始で き ます。
PLL および MMCM
•
シ ス テ ム同期入力お よ び出力の ク ロ ッ ク 挿入遅延を削除す る ( ク ロ ッ ク の位相を入力デー タ に揃え る ) ために使
用 し ます。
•
ソ ース同期デー タ を適切なデー タ キ ャ プチ ャ 用 ク ロ ッ ク に揃え る ための ク ロ ッ ク 位相制御に使用 し ます。
•
単純な分周だけでな く 、入力 ク ロ ッ ク の ク ロ ッ ク 周波数ま たはデューテ ィ サ イ ク ルを変更する ために使用 し ます。
•
ク ロ ッ ク ジ ッ タ ーを フ ィ ル タ ーす る ために使用 し ます。
PLL を使用す る と ジ ッ タ ーを よ り 詳細に制御で き 、 MMCM を使用する と 使用可能な出力周波数の範囲が広 く な り ま
す。 タ イ ミ ン グ要件が厳 し い場合、 PLL で必要な周波数がサポー ト さ れていれば、 PLL の方が適 し てい ます。
IDELAY/IODELAY
•
7 シ リ ーズ デバ イ ス を タ ーゲ ッ ト と す る 場合、少量の位相オ フ セ ッ ト (遅延) を追加す る ために入力 ク ロ ッ ク で使
用 し ます。
•
データ に関する ク ロ ッ ク 位相オフ セ ッ ト を効率的に削減する ため、 入力デー タ に遅延を追加する のに使用 し ます。
ODDR
•
デバ イ ス か ら の外部転送 ク ロ ッ ク を作成す る ために使用 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
165
第 4 章 : デザイ ンの作成
SSI デバイ スの ク ロ ッ ク に関する注意事項
こ のセ ク シ ョ ンで前述 し た注意事項に加え、 SSI テ ク ノ ロ ジの ク ロ ッ ク 供給構造の設計では、 次の事項に も 注意する
必要があ り ます。
•
ク ロ ッ ク が複数の SLR に ま たが る 必要があ る 場合は、 BUFG を中央の SLR のいずれかに配置 し て、 ス キ ュ ーを
最小限に抑え る 必要があ り ます。
•
7 シ リ ーズ デバ イ ス では、 通常は BUFH お よ び BUFR を上ま たは下の SRL で使用 し て、 中央の SLR に配置 さ れ
てい る BUFG と リ ソ ース が競合す る 可能性を削減 し ます。
7 シ リ ーズ デバ イ ス では、 BUFMR お よ び関連ピ ン を 1 つの SLR 内の中央 ク ロ ッ ク 領域に配置 し ます。 こ の よ う に配
置す る と 、 必要に応 じ て BUFMR か ら 3 つすべての ク ロ ッ ク 領域にア ク セ ス で き ます。
IP (Intellectual Property) の使用
IP (Intellectual Property) コ ア を前 も っ て検証 し てお く と 、 設計お よ び検証にかか る 時間を大幅に削減で き る ので、 タ イ
ム ト ゥ マーケ ッ ト の短縮に有益です。 IP を使用 し た設計に関す る 詳細は、 次を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 9]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : 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、 ビデオお
よ び通信アプ リ ケーシ ョ ンに使用 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
166
第 4 章 : デザイ ンの作成
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 カ タ ログでの IP の選択
ザ イ リ ン ク スお よ びサー ド パーテ ィ ベン ダーの IP は、通信お よ びネ ッ ト ワー ク 、 ビデオお よ び画像処理、オー ト モー
テ ィ ブお よ び イ ン ダ ス ト リ アルな ど の よ う に、用途に基づいた カ テ ゴ リ 別に分類 さ れます。 こ のカ テ ゴ リ を使用 し て、
該当す る 分野で使用可能な IP を確認で き ます。
ビデオ : IP カ タ ロ グ を使用 し て IP を カ ス タ マ イ ズ し 、 プ ロ ジ ェ ク ト に追加 し て イ ン ス タ ン シエー ト す る 方法につい
ては、 Vivado Design Suite ビデオ チ ュ ー ト リ アル : IP のカ ス タ マ イ ズお よ び イ ン ス タ ン シエーシ ョ ン を参照 し て く だ
さ い。
IP カ タ ロ グの IP のほ と ん どは無償ですが、 有償で ラ イ セ ン ス が必要な も の も あ り ます。 IP を購入する 必要があ る か
ど う かや、 ラ イ セ ン ス の ス テー タ ス については、 IP カ タ ロ グに表示 さ れ ます。 IP カ タ ロ グか ら IP を選択す る 際は、
デザ イ ン要件に基づいて、 次の機能お よ び特定 IP が提供す る 機能を考慮 し て く だ さ い。
•
こ の IP に必要なシ リ コ ン リ ソ ース (該当す る IP の製品ガ イ ド を参照)
•
考慮 し てい る デバ イ スお よ びス ピー ド グ レー ド で こ の IP がサポー ト さ れてい る か ど う か (選択 し た IP に よ っ て
指定す る ス ピー ド グ レー ド が異な る )、 サポー ト さ れ る 場合、 達成可能な最大ス ループ ッ ト お よ び Fmax は どれ
く ら いか。
•
デザ イ ンがボー ド 上の コ ンパニオン チ ッ プ と 通信する ために必要な外部 イ ン タ ーフ ェ イ ス規格
°
イ ーサネ ッ ト 、 Interlaken、 PCIe® な ど の業界標準 イ ン タ ーフ ェ イ ス
°
メ モ リ イ ン タ ーフ ェ イ ス : サ イ ズお よ びパフ ォーマ ン ス を含む メ モ リ イ ン タ ーフ ェ イ ス の数
°
Aurora な ど のザ イ リ ン ク ス の イ ン タ ーフ ェ イ ス
注記 : ユーザー自身のカ ス タ ム イ ン タ ーフ ェ イ ス を設計する こ と も で き ます。
•
IP でサポー ト さ れ る オンチ ッ プ バ ス プ ロ ト コ ル
•
残 り のデザ イ ン と の通信に必要なオンチ ッ プ バス プ ロ ト コ ル。 次はその例です。
°
AXI4
°
AXI4-Lite
°
AXI4-Stream
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
167
第 4 章 : デザイ ンの作成
•
複数のプ ロ ト コ ルを使用す る 場合は、 IP カ タ ロ グか ら の イ ン フ ラ ス ト ラ ク チ ャ IP を使用 し て、 IP コ ア をブ リ ッ
ジす る こ と が必要 と な る 可能性があ り ます。 次はその例です。
°
AXI-AHB ブ リ ッ ジ
°
AXI-AXI イ ン タ ー コ ネ ク ト
°
AXI-PCIe ブ リ ッ ジ
°
AXI-PLB ブ リ ッ ジ
IP と I/O
外部に接続 さ れ る IP は、 I/O ピ ンに関連付け る 必要があ り ます。 こ のため、 IP を選択する 際に次の よ う な I/O 割 り 当
て を考慮 し て く だ さ い。
•
「パ ラ レル イ ン タ ーフ ェ イ ス」
•
「シ リ アル イ ン タ ーフ ェ イ ス」
•
「I/O 電圧お よ び I/O 規格」
パ ラ レル イ ン タ ー フ ェ イ ス
I/O バン ク で使用可能な I/O の数に よ っ て、 ど の I/O バン ク を選択する か決定で き ます。
シ リ アル イ ン タ ー フ ェ イ ス
•
低速シ リ アル イ ン タ ーフ ェ イ ス : 汎用 IOB の一部であ る ISERDES/OSERDES を使用で き ます。
•
高速シ リ アル イ ン タ ーフ ェ イ ス : 低消費電力のギガ ビ ッ ト ト ラ ン シーバー (GT) を使用で き ます。
I/O 電圧および I/O 規格
•
I/O 電圧が 1.8V の場合、 1.8V の Vccio をサポー ト す る I/O バン ク を選択 し ます。
•
デー タ レー ト が低い場合は、 LVCMOS の よ う なシ ン グルエン ド I/O 規格を使用 し ます。
•
デー タ レー ト が高い場合は、 次の よ う な差動 I/O 規格を使用 し ます。
°
LVDS
°
DIFF-SSTL
°
DIFF-HSTL
IP の選択 と カ ス タ マ イ ズに関する決定プ ロ セス例
次の要件の通信お よ びネ ッ ト ワー ク シ ス テ ム を考慮 し ます。
•
「10 ポー ト の 10G イ ーサネ ッ ト MAC」
•
「シ ス テ ム コ ン フ ィ ギ ュ レーシ ョ ン用の PCIe イ ン タ ーフ ェ イ ス」
•
「外部 メ モ リ ス ト レージ」
次に、 こ の要件 と 使用可能な IP に基づいて、 各 IP の主な機能を確認 し 、 デザ イ ンに適 し た IP と カ ス タ マ イ ズ方法を
決定す る 必要があ り ます。 こ れに よ り 、 目的に必要な正 し い IP が選択で き る よ う にな り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
168
第 4 章 : デザイ ンの作成
10 ポー ト の 10G イ ーサネ ッ ト MAC
IP ではオプシ ョ ン の XGMII イ ン タ ーフ ェ イ ス がサポー ト さ れ ます。 シ ス テ ムに外部 イ ン タ ーフ ェ イ ス と し て XAUI
ま たは 10G PCS/PMA が必要な場合は、 XGMII オプシ ョ ン を選択す る 必要があ り ます。 ザ イ リ ン ク ス の XAUI ま たは
10G PCS/PMA IP では、 XGMII イ ン タ ーフ ェ イ ス がサポー ト さ れます。
MAC か ら のデー タ 転送は AXI4-Stream イ ン タ ーフ ェ イ ス を介 し て行われ る ので、シ ス テ ム で MAC か ら のデー タ を消
費で き る よ う にす る 必要があ り ます。 こ の後、 ほかの IP コ ア と 通信す る ために AXI イ ン タ ー コ ネ ク ト に接続す る か、
独自のプ ロ ト コ ルを使用 し て ラ ッ パーで終端 し ます。
コ アは、 オプシ ョ ン の AXI-Lite イ ン タ ーフ ェ イ ス ま たは単純な読み出 し /書 き 込み イ ン タ ーフ ェ イ ス のいずれか を使
用 し て コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 AXI4-Lite を選択 し た場合、 シ ス テ ム内で AXI4-Lite がサポー ト さ れ る よ う
にす る 必要があ り ます。
シ ス テム コ ン フ ィ ギ ュ レーシ ョ ン用の PCIe イ ン タ ー フ ェ イ ス
前述の考慮事項に加え て、 イ ン タ ーフ ェ イ ス のデー タ レー ト 要件について も 注意が必要です。 詳細は、 次の表を参照
し て く だ さ い。
表 4-5 : デバイ ス別デー タ レー ト 要件
Artix®-7
Kintex®-7
Virtex®-7T
Virtex-7 XT
Virtex-7
GEN (統合ブ ロ ッ ク )
Gen2
Gen2
Gen2
Gen3
Gen3
幅
X4
X8
X8
X8
X8
ブロ ッ ク数
1
1
3~4
2~4
1~3
シ リ ア ル デー タ レ ー ト
(Gb/s)
5
5
8
8
8
外部 メ モ リ ス ト レージ
シ ス テ ム でサポー ト さ れ る DDR3 メ モ リ の数に注意す る 必要があ り ます。 こ のデザ イ ン の場合、 総ス ト レージ デー
タ レー ト 要件は、 メ モ リ コ ン ト ロ ー ラ ーの効率を考慮す る と 、 約 80Gb/s 有効帯域幅か 100Gb/s の生の帯域幅です。
こ れは、 次の よ う な コ ン ト ロ ー ラ ーを使用す る と 達成で き ます。
•
1 つの 64 ビ ッ ト DDR3 @ 1600 Mbps コ ン ト ロ ー ラ ー
•
4 つの 16 ビ ッ ト DDR3 @ 1600 Mbps コ ン ト ロ ー ラ ー
メ モ リ コ ン ト ロ ー ラ ーか ら のデー タ 転送は AXI4 イ ン タ ーフ ェ イ ス を介 し て行われ る ので、シ ス テ ムで メ モ リ コ ン ト
ロ ー ラ ーか ら のデー タ を消費で き る よ う にす る 必要があ り ます。 ユーザーは ½ レー ト ま たは ¼ レー ト イ ン タ ーフ ェ
イ ス を使用で き ます。 ¼ レー ト を使用す る 場合、 メ モ リ コ ン ト ロ ー ラ ーのアプ リ ケーシ ョ ン デー タ 幅は 8 x DDR3 の
幅です。 た と えば、 16 ビ ッ ト の DDR3 の場合、 AXI4-Stream のデー タ 幅は 128 ビ ッ ト です。 AXI Interconnect IP は ス
レーブ メ モ リ コ ン ト ロ ー ラ ー IP を メ モ リ にア ク セ スす る マ ス タ ー ペ リ フ ェ ラ ルに接続す る ために使用す る と 便利
です。 こ の場合、 IP コ ア か ら のデー タ が AXI4-Stream イ ン タ ー フ ェ イ ス を 通過す る の で、 コ ン ト ロ ー ラ ー用 に
AXI4-Stream を AXI4 に変換す る ため DMA を追加する 必要があ り ます。
ザ イ リ ン ク ス では、コ ン ト ロ ー ラ ーを生成す る のに MIG (Memory Interface Generator) を使用す る こ と をお勧め し ます。
こ の ツールを使用す る と 、 I/O バン ク の選択 も ガ イ ド さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
169
第 4 章 : デザイ ンの作成
IP のカ ス タ マ イ ズ
IP は、 GUI ま たは Tcl ス ク リ プ ト を使用 し て カ ス タ マ イ ズで き ます。
•
「カ ス タ マ イ ズ GUI の使用」
•
「Tcl ス ク リ プ ト の使用」
カ ス タ マ イ ズ GUI の使用
IP の検出、 リ サーチ、 カ ス タ マ イ ズには、 グ ラ フ ィ ッ ク イ ン タ ーフ ェ イ ス を使用する のが最適な方法です。 各 IP は、
一連の タ ブ ま たはページ を使用 し て カ ス タ マ イ ズで き る よ う にな っ てお り 、 関連す る コ ン フ ィ ギ ュ レーシ ョ ン オプ
シ ョ ン がグループ化 さ れてい ます。 次の図は、 カ ス タ マ イ ズ ウ ィ ン ド ウ の例を示 し てい ます。 IP は独自にカ ス タ マ
イ ズで き 、 その内容が XCI フ ァ イ ルに含まれます。 こ こ か ら 、 IP の さ ま ざ ま な出力フ ァ イ ルを作成で き ます。
X-Ref Target - Figure 4-36
図 4-36 : IP のカ ス タ マ イ ズ ウ ィ ン ド ウ
Tcl ス ク リ プ ト の使用
ほ と ん どすべての GUI 操作に対 し て Tcl コ マ ン ド が実行 さ れ ます。 カ ス タ マ イ ズ オプシ ョ ンすべての設定を含めた
IP の作成を、 ユーザーの操作な し で Tcl ス ク リ プ ト で実行で き ます。
ただ し 、 コ ン フ ィ ギ ュ レーシ ョ ン オプシ ョ ンの名前 と 設定可能な値を知っ てお く 必要はあ り ます。 通常は、 まず GUI
を使用 し て カ ス タ マ イ ズ し て、 そ こ か ら ス ク リ プ ト を作成 し ます。 結果の Tcl ス ク リ プ ト がで き た ら 、 デー タ サ イ ズ
の変更な ど、 必要に応 じ て ス ク リ プ ト を簡単に修正で き ます。
Tcl ベース での IP の作成は、 た と えば、 バージ ョ ン管理シ ス テ ム を使用す る 場合な ど、 自動化する 際に便利です。 詳
細は、 第 2 章の 「 ソ ース管理お よ び リ ビ ジ ョ ン管理の推奨事項」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
170
第 4 章 : デザイ ンの作成
IP 出力 フ ァ イル
IP を カ ス タ マ イ ズす る と 、選択 し たパ ラ メ ー タ ー値をすべて含む XCI フ ァ イ ルが作成 さ れます。Vivado IDE の各バー
ジ ョ ンでサポー ト さ れ る IP のバージ ョ ンはそれぞれ 1 つのみです。 使用 し てい る Vivado IDE のバージ ョ ンで最新の
IP バージ ョ ン を使用す る こ と をお勧め し ます。 以前のバージ ョ ン の IP を使用す る 場合は、 そのバージ ョ ン用の出力
フ ァ イ ルがすべてが保存 さ れてい る 必要があ り ます。 詳細は、 第 2 章の 「IP の管理」 を参照 し て く だ さ い。
ヒ ン ト : MIG の場合、 XCI フ ァ イ ルの代わ り に .prj フ ァ イ ルが作成 さ れます。 IP 関連の説明で XCI と 記述 さ れてい
る 場合、 MIG では .prj を意味 し ます。
生成 さ れる出力 フ ァ イル
Vivado ツールの設定に よ っ て、IP カ ス タ マ イ ズ中にデフ ォ ル ト の出力フ ァ イ ルがい く つか自動的に作成 さ れ る こ と が
あ り ます。 こ れは、 [Project Settings] か ら 変更で き ます。 カ ス タ マ イ ズ中に作成 さ れた XCI フ ァ イ ルを使用す る と 、 IP
か ら 提供 さ れ る 次の よ う な関連出力を作成で き ます。
•
イ ン ス タ ン シエーシ ョ ン テ ンプ レー ト
IP の イ ン ス タ ン シエー ト 方法を示 し ます。
•
合成
IP の こ の特定のカ ス タ マ イ ズ ビ ュ ーに合成を実行す る 際の ス ク リ プ ト を作成 し ます。
•
DCP (ア ウ ト オブ コ ン テ キ ス ト 合成)
デザ イ ンの IP 部分を再合成せずに、 直接上位デザ イ ンに使用可能な合成済みネ ッ ト リ ス ト を生成 し ます。
•
テ ス ト ベンチ
IP の機能を検証す る ためにシ ミ ュ レーシ ョ ン環境で使用す る テ ス ト ベンチを生成 し ます。
•
シ ミ ュ レーシ ョ ン
上記のテ ス ト ベンチを使用 し て、 IP の こ の特定のカ ス タ マ イ ズ ビ ュ ーに対 し て シ ミ ュ レーシ ョ ン を実行す る た
めの ス ク リ プ ト を生成 し ます。
XCI フ ァ イ ルお よ び こ れ ら の出力には、 デザ イ ン で IP を正 し く シ ミ ュ レーシ ョ ンお よ び合成す る ために必要な も の
(HDL フ ァ イ ルや制約フ ァ イ ルな ど) がすべて含まれます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
171
第 4 章 : デザイ ンの作成
制約の操作
デザイ ン制約の分類
デザ イ ン制約は、 デザ イ ンがハー ド ウ ェ アで正 し く 機能す る よ う にす る ために、 コ ンパ イ ル フ ロ ーで満たす必要のあ
る 要件を定義 し ます。 複雑なデザ イ ンの場合は、 ツールに対 し てガ イ ダ ン ス を定義 し て タ イ ミ ン グ ク ロ ージ ャ を達成
し やす く す る こ と も で き ます。 すべての制約が コ ンパ イ ル フ ロ ーのすべての段階で使用 さ れ る わけではあ り ません。
た と えば、 物理制約は イ ンプ リ メ ン テーシ ョ ン段階 (配置お よ び配線) でのみ使用 さ れます。
合成お よ び イ ンプ リ メ ン テーシ ョ ン アルゴ リ ズ ムは タ イ ミ ン グ ド リ ブ ン なので、 適切な タ イ ミ ン グ制約を作成す る
こ と が重要にな り ます。 デザ イ ンの制約を厳 し く し すぎた り 緩 く し すぎた り す る と 、 タ イ ミ ン グ ク ロ ージ ャ を達成す
る のが困難にな り ます。 アプ リ ケーシ ョ ンの要件に合っ た適度な制約を使用する 必要があ り ます。 制約に関す る 詳細
は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21]
•
Vivado のビデオ チ ュ ー ト リ アル ページに、 デザ イ ン制約の適用に関す る ビデオ チ ュ ー ト リ アルがあ り ます。
制約は通常、 1 つま たは多数の フ ァ イ ルに、 カ テ ゴ リ 別、 デザ イ ン モジ ュ ール別、 ま たはその両方で分類 さ れ ます。
分類方法に関係な く 、 制約の全体的な依存性を理解 し て、 メ モ リ に読み込まれた後の最終的なシーケ ン ス を確認す る
必要があ り ます。 た と えば、 タ イ ミ ン グ ク ロ ッ ク はほかの制約で使用 さ れ る 前に定義する 必要があ る ので、 その定義
が制約フ ァ イ ルの最初 ( メ モ リ に読み込まれ る 最初の制約セ ッ ト ) に含まれ る よ う にす る 必要があ り ます。
推奨 さ れる制約 フ ァ イル
プ ロ ジ ェ ク ト の大 き さ や複雑 さ に よ っ て、 制約方法は さ ま ざ ま です。 次に、 推奨事項の一部を示 し ます。
単純なデザイ ン
少数の設計者チームに よ る 単純なデザ イ ンの場合 :
•
すべての制約に対 し て 1 フ ァ イ ル
•
物理制約用に 1 フ ァ イ ル + タ イ ミ ン グ制約用に 1 フ ァ イ ル
•
物理制約用に 1 フ ァ イ ル + タ イ ミ ン グ (合成) 制約用に 1 フ ァ イ ル + タ イ ミ ン グ ( イ ンプ リ メ ン テーシ ョ ン) 制約
用に 1 フ ァ イ ル
複雑なデザイ ン
IP コ ア ま たは複数設計者のチームに よ る 複雑なデザ イ ンの場合 :
•
最上位 タ イ ミ ン グ制約用に 1 フ ァ イ ル + 最上位物理制約用に 1 フ ァ イ ル + IP/主なブ ロ ッ ク ご と に 1 フ ァ イ ル
読み出 し シーケ ン スの検証
プ ロ ジ ェ ク ト 制約フ ァ イ ルの分類方法が決ま っ た ら 、 フ ァ イ ルの内容に基づいて、 フ ァ イ ルの読み出 し シーケ ン ス を
確認す る 必要があ り ます。 プ ロ ジ ェ ク ト モー ド の場合、 Vivado IDE ま たは Tcl コ マ ン ド の reorder_files を使用
し て制約フ ァ イ ル シーケ ン ス を変更で き ま す。 非プ ロ ジ ェ ク ト モー ド の場合、 シーケ ン ス は read_xdc コ マ ン ド
(XDC フ ァ イ ルの場合) お よ び コ ンパ イ ル フ ロ ーの Tcl ス ク リ プ ト の source コ マ ン ド (Tcl ス ク リ プ ト で生成 さ れた
制約の場合) で直接定義 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
172
第 4 章 : デザイ ンの作成
推奨 さ れる制約の順序
制約言語 (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_false_path -hold
°
set_min_delay
°
set_multicycle_path -hold
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
173
第 4 章 : デザイ ンの作成
•
RTL 属性を指定す る と 、 マ ッ プお よ び最適化アルゴ リ ズ ムに よ る 決定が使用 さ れます。次は、 その例の一部です。
°
DONT_TOUCH / KEEP / KEEP_HIERARCHY / MARK_DEBUG
°
MAX_FANOUT
°
RAM_STYLE / ROM_STYLE / USE_DSP48 / SHREG_EXTRACT
°
FULL_CASE / PARALLEL_CASE (Verilog RTL のみ)
同 じ 属性を XDC か ら のプ ロ パテ ィ と し て設定する こ と も で き ます。 XDC ベース の制約を使用す る と 、 一部の場合に
のみ、 RTL を変更せずに合成結果に影響を与え る こ と がで き る ので便利です。
•
物理制約 (LOC、 BEL、 Pblock) は無視 さ れます。
合成制約はエ ラ ボ レー ト 済みネ ッ ト リ ス ト か ら の名前 (で き ればポー ト お よ びシーケ ン シ ャ ル セル) を使用す る 必要
があ り ます。 RTL 信号の中にはエ ラ ボ レーシ ョ ン中に削除 さ れ る も の も あ り 、 それ ら には XDC 制約は適用で き ませ
ん。 ま た、 エ ラ ボ レーシ ョ ン後の さ ま ざ ま な最適化のために、 ネ ッ ト ま たは論理セルが LUT や DSP ブ ロ ッ ク な ど の
さ ま ざ ま なデバ イ ス のプ リ ミ テ ィ ブに統合 さ れます。 デザ イ ン オブジ ェ ク ト のエ ラ ボ レー ト さ れた名前については、
第 5 章の 「エ ラ ボ レー ト 済みデザ イ ンの使用」 を参照 し て く だ さ い。
一部の レ ジ ス タ は RAM ブ ロ ッ ク に吸収 さ れ、 境界を ま たが る 最適化が実行で き る よ う に階層レベルが削除 さ れ る こ
と も あ り ます。
エ ラ ボ レー ト 済みネ ッ ト リ ス ト オブジ ェ ク ト ま たは階層レベルは、 DONT_TOUCH、 KEEP、 KEEP_HIERARCHY、 ま
たは MARK_DEBUG 制約を使用 し て保持す る こ と も で き ますが、 タ イ ミ ン グやエ リ アの QoR (結果の品質) は悪化す
る 可能性があ り ます。
最後に、 制約の中には、 競合す る ために合成で適用 さ れない も の も あ り ます。 た と えば、 MAX_FANOUT 属性が複数
の階層レベルに ま たが る ネ ッ ト に設定 さ れ、 階層の一部が DONT_TOUCH で保持 さ れ る 場合、 フ ァ ン ア ウ ト 最適化は
制限 さ れ る か、 完全に回避 さ れます。
重要 : イ ン プ リ メ ン テーシ ョ ン中 と 異な り 、 タ イ ミ ン グ制約を定義す る のに使用 さ れ る ネ ッ ト リ ス ト オブジ ェ ク ト
は、 QoR 改善のため、 合成の最適化で削除 さ れ る こ と があ り ま す。 こ れは、 制約がア ッ プデー ト さ れ イ ン プ リ メ ン
テーシ ョ ン用に検証 さ れていれば、 通常問題 と はな り ませんが、 必要であれば、 制約が合成 と イ ンプ リ メ ン テーシ ョ
ンの両方で適用 さ れ る よ う に、 DONT_TOUCH 制約を使用 し てオブジ ェ ク ト を保持で き ます。
合成が終了 し た ら 、 タ イ ミ ン グお よ び使用量レ ポー ト か ら 、 ネ ッ ト リ ス ト の品質がアプ リ ケーシ ョ ン要件を満た し て
い る か、 イ ンプ リ メ ン テーシ ョ ンに使用で き る か ど う かを確認 し ます。
イ ン プ リ メ ン テーシ ョ ン制約の作成
イ ン プ リ メ ン テーシ ョ ン制約は、 最終的な アプ リ ケーシ ョ ンの要件を正確に反映 さ せ る 必要があ り ます。 I/O ロ ケー
シ ョ ンお よ び I/O 規格な ど の物理制約は、 ボー ド ト レース遅延を含め、 ボー ド デザ イ ン で検出 さ れ ます。 全体的な
シ ス テ ム要件か ら のデザ イ ン内部要件 も 含まれます。 イ ンプ リ メ ン テーシ ョ ンに進む前に、 すべての制約が正 し いか
ど う か を確認 し てお く こ と をお勧め し ます。 制約が正 し く 設定 さ れていない と 、 イ ン プ リ メ ン テーシ ョ ンの QoR が
悪化 し 、 サ イ ンオ フ用の タ イ ミ ン グの信頼性レベル も 下が る 可能性があ り ます。
多 く の場合、 合成 と イ ンプ リ メ ン テーシ ョ ンで同 じ 制約を使用で き ますが、 合成中にデザ イ ン オブジ ェ ク ト が削除 さ
れた り 、 名前が変更 さ れ る 可能性があ る ので、 イ ンプ リ メ ン テーシ ョ ン ネ ッ ト リ ス ト ですべての合成制約が正 し く 適
用 さ れてい る か を検証す る 必要があ り ます。 適用 さ れていない場合は、 イ ンプ リ メ ン テーシ ョ ンのみで有効な制約を
含む XDC フ ァ イ ルを作成す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
174
第 4 章 : デザイ ンの作成
4 段階での タ イ ミ ング制約の定義
制約の定義方法は、 次の図に示す 4 つの手順に分割 さ れます。 こ れ ら の手順は、 タ イ ミ ン グ制約の優先お よ び依存規
則に従っ てお り 、 解析を実行す る ために タ イ ミ ン グ エン ジ ンに情報を供給する 論理的な方法です。
X-Ref Target - Figure 4-37
XDC:
create_clock
create_generated_clock
set_system_jitter
set_input_jitter
set_clock_uncertainty
set_external_delay
Create Clocks
(Primary/Virtual/Generated)
(External Feedback/Uncertainty)
Reports:
Clock Networks
Check Timing
Reports:
Check Timing
Report Timing
XDC:
set_input_delay
set_output_delay
Input/Output Delays
(System/Source Synchronous)
XDC:
set_clock_groups
set_false_path
Clock Groups and CDC
(Asynchronous/Exclusive)
Reports:
Clock Interaction
Check Timing
Timing Exceptions
(Ignore/Max/Min)
Reports:
Timing Summary
Report Timing
XDC:
set_false_path
set_min/max_delay
set_multicycle_path
set_case_analysis
set_disable_timing
X13445
図 4-37 : タ イ ミ ング制約の開発手順
•
最初の 2 つの手順は、デフ ォ ル ト の タ イ ミ ン グ パ ス要件を ク ロ ッ ク 波形お よ び I/O 遅延制約か ら 派生す る タ イ ミ
ン グ アサーシ ョ ンです。
•
3 つ目の手順では、 少な く と も 1 つの ロ ジ ッ ク パ ス を共有す る 非同期/排他的 ク ロ ッ ク ド メ イ ン間の関係を確認
し ます。 こ の関係に基づいて、 ク ロ ッ ク グループ ま たはフ ォ ル ス パ ス制約を入力 し て、 こ れ ら のパ ス の タ イ ミ
ン グ解析を無視 し ます。
•
最後の手順は タ イ ミ ン グ例外で、 特定の制約を使用 し て、 デフ ォ ル ト の タ イ ミ ン グ パス要件を無視 し た り 、 緩和
し た り 、 厳 し く し た り す る こ と で、 その要件を変更で き ます。
制約の作成は、 制約の特定 と 、 タ イ ミ ン グ エン ジ ン で生成 さ れ る さ ま ざ ま な レ ポー ト を使用 し て実行可能な制約検証
タ ス ク で構成 さ れ ます。 タ イ ミ ン グ エ ン ジ ンは、 完全にマ ッ プ さ れたネ ッ ト リ ス ト (合成後な ど) に対 し てのみ機能
し ます。 エ ラ ボ レー ト 済みネ ッ ト リ ス ト を使用 し て制約を入力する こ と はで き ますが、 制約の解析お よ びレ ポー ト が
イ ン タ ラ ク テ ィ ブに実行で き る よ う に、 最初の制約セ ッ ト は合成後のネ ッ ト リ ス ト を使用 し て作成す る こ と をお勧め
し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
175
第 4 章 : デザイ ンの作成
新規デザ イ ンの タ イ ミ ン グ制約を作成す る 場合、 ま たは既存の制約を完成 さ せる 場合、 タ イ ミ ン グ制約ウ ィ ザー ド を
使用 し て、図 4-37 の最初の 3 つの手順で不足 し てい る 制約を特定する こ と をお勧め し ます。 タ イ ミ ン グ制約ウ ィ ザー
ド は、 こ のセ ク シ ョ ンで説明 さ れてい る 設計手法に従っ て、 タ イ ミ ン グ ク ロ ージ ャ を達成す る ためにデザ イ ン制約が
安全で信頼で き る も ので あ る こ と を確実に し ま す。 タ イ ミ ン グ制約 ウ ィ ザー ド の詳細は、 『Vivado Design Suite ユー
ザー ガ イ ド : 制約の使用』 (UG903) [参照 18] を参照 し て く だ さ い。
次のセ ク シ ョ ンでは、 上記の 4 つの手順の詳細を説明 し ます。
•
「 ク ロ ッ ク 制約の定義」
•
「入力ポー ト お よ び出力ポー ト の制約」
•
「 ク ロ ッ ク グループお よ び CDC 制約の定義」
•
「 タ イ ミ ン グ例外の指定」
制約作成プ ロ セ ス の各段階での詳細な手法お よ び使用例については、 各セ ク シ ョ ン を参照 し て く だ さ い。
ク ロ ッ ク 制約の定義
ク ロ ッ ク は、 ほかの制約で使用で き る よ う に、 最初に定義する 必要があ り ます。 タ イ ミ ン グ制約作成フ ロ ーでは、 ま
ず ク ロ ッ ク を定義す る 必要のあ る 箇所を特定 し 、プ ラ イ マ リ ク ロ ッ ク ま たは生成 ク ロ ッ ク と し て定義す る 必要があ る
か ど う か を判断 し ます。
重要 : ク ロ ッ ク に特定の名前を指定す る 場合 (-name オプシ ョ ン)、 その ク ロ ッ ク 名がほかの ク ロ ッ ク 制約ま たは既存
の自動生成 ク ロ ッ ク で使用 さ れていない こ と を確認す る 必要があ り ます。 同 じ ク ロ ッ ク 名が複数の ク ロ ッ ク 制約で使
用 さ れてい る と 、 Vivado Design Suite の タ イ ミ ン グ エン ジ ンか ら 最初の ク ロ ッ ク 定義が上書 き さ れ る こ と を警告す る
メ ッ セージが表示 さ れます。 同 じ ク ロ ッ ク 名が 2 回使用 さ れた場合、 最初の ク ロ ッ ク 定義 と 、 2 つの ク ロ ッ ク 定義の
間に指定 さ れたその名前を参照す る 制約が失われます。 ほかの制約に影響を与えず、 すべての タ イ ミ ン グ パ ス に制約
が適用 さ れた状態を保持で き る 場合以外は、 ク ロ ッ ク 定義が上書 き さ れ る 状況を避け る こ と をお勧め し ます。
ク ロ ッ ク ソ ースの特定
制約の付いていない ク ロ ッ ク のルー ト は、 次の 2 つの レ ポー ト で特定で き ます。
•
「 ク ロ ッ ク ネ ッ ト ワ ー ク レ ポー ト 」
•
「チ ェ ッ ク タ イ ミ ン グ レ ポー ト 」
ク ロ ッ ク ネ ッ ト ワー ク レポー ト
制約が付いてい る ク ロ ッ ク ソ ース ポ イ ン ト と 付いていない ク ロ ッ ク ソ ース ポ イ ン ト は、 それぞれ別のカ テ ゴ リ に リ
ス ト さ れます。 制約の付いていない ソ ース ポ イ ン ト に対 し て、 それがプ ラ イ マ リ ク ロ ッ ク なのか生成 ク ロ ッ ク なの
か を判断す る 必要があ り ます。
% report_clock_networks
Unconstrained Clocks
Clock 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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
176
第 4 章 : デザイ ンの作成
チ ェ ッ ク タ イ ミ ング レポー ト
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 シ リ ーズ デバ イ ス のギガ ビ ッ ト ト ラ ン シーバーの出力ピ ン」
•
「一部のハー ド ウ ェ ア プ リ ミ テ ィ ブの出力ピ ン」
入力ポー ト
X-Ref Target - Figure 4-38
REGA
D
sysclk
IBUF
Q
Data Path
REGB
D
Q
BUFG
Recommended primary clock
source point: sysclk port
X13446
図 4-38 : 入力ポー ト の create_clock
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
177
第 4 章 : デザイ ンの作成
制約の例 :
create_clock -name SysClk -period 10 -waveform {0 5} [get_ports sysclk]
こ の例の場合、 波形は 50% のデ ュ ーテ ィ サ イ ク ルにな る よ う に定義 さ れてい ます。 上記の -waveform オプシ ョ ン
は、 その使用法を表すために示 さ れてい る だけで、 50% 以外のデ ュ ーテ ィ サ イ ク ルで ク ロ ッ ク を定義す る 場合にの
み必要です。差動 ク ロ ッ ク 入力バ ッ フ ァ ーの場合、プ ラ イ マ リ ク ロ ッ ク はペアの P 側でのみ定義す る 必要があ り ます。
7 シ リ ーズ デバイ スのギガ ビ ッ ト ト ラ ン シーバーの出力ピ ン
ギガ ビ ッ ト ト ラ ン シーバーの出力ピ ンは、 復元 さ れた ク ロ ッ ク な ど です。
X-Ref Target - Figure 4-39
REGA
D
REGB
Data Path
Q
D
Q
mmcm0
gt0
TXOUTCLK
txclk
CLKFBIN
CLKFBOUT
CLKIN1
CLKOUT0
CLKOUT1
Recommended primary clock
source point: gt0/TXOUTLK
X13447
図 4-39 : プ リ ミ テ ィ ブ ピ ンの create_clock
制約の例 :
create_clock -name txclk -period 6.667 [get_pins gt0/TXOUTCLK]
注記 : UltraScale デバ イ ス では、 ギガ ビ ッ ト ト ラ ン シーバー ク ロ ッ ク は関連のボー ド 入力 ク ロ ッ ク が定義 さ れていれ
ば自動的に生成 さ れます。 そのため、 UltraScale デバ イ ス を タ ーゲ ッ ト と す る デザ イ ンのギガ ビ ッ ト ト ラ ン シーバー
の出力にプ ラ イ マ リ ク ロ ッ ク を定義す る こ と はお勧め し ません。
一部のハー ド ウ ェ ア プ リ ミ テ ィ ブの出力ピ ン
特定のハー ド ウ ェ ア プ リ ミ テ ィ ブ (た と えば BSCANE2) の出力ピ ンには、同 じ プ リ ミ テ ィ ブの入力ピ ンか ら の タ イ ミ
ン グ アー ク はあ り ません。
X-Ref Target - Figure 4-40
instB
D
Q
instA
sysclk
IBUF
IN
OUT
X
no arc
Recommended primary clock
source point: instA/OUT
X13448
図 4-40 : タ イ ミ ング アー クがないために ク ロ ッ ク パスが切断 さ れる
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
178
第 4 章 : デザイ ンの作成
重要 : プ ラ イ マ リ ク ロ ッ ク がその フ ァ ン ア ウ ト 内で別のプ ラ イ マ リ ク ロ ッ ク で駆動 さ れない よ う に し て く だ さ い。こ
の よ う な状況は、 実際のハー ド ウ ェ アでは発生 し ません。 ま た、 ク ロ ッ ク 挿入遅延の計算が完了 し ない よ う にな っ て
い る 場合 も 、 タ イ ミ ン グ解析は正 し く 実行 さ れません。 こ の状況が発生 し た ら 、 制約を見直 し て修正す る 必要があ り
ます。
次の図は、 clk1 ク ロ ッ ク が clk0: ク ロ ッ ク の推移的フ ァ ン ア ウ ト で定義 さ れてい る と こ ろ を示 し てい ま す。 clk1
は、それが定義 さ れた BUFG1 の出力か ら clk0 の代わ り に使用 さ れます。こ の結果、clk0 お よ び clk1 間の ス キ ュ ー
計算が無効にな る ので、 REGA お よ び REGB 間の タ イ ミ ン グ解析が不正確にな り ます。
X-Ref Target - Figure 4-41
REGA
D
sysclk
IBUF
Q
Data Path
REGB
D
Q
BUFG0
BUFG1
NOT RECOMMENDED
create_clock –name clk1 –period 10 [get_pins BUFG1/0]
create_clock –name clk0 –period 10 [get_ports sysclk]
X13449
図 4-41 : 別のク ロ ッ クの フ ァ ン アウ ト 内での create_clock の実行 (推奨 さ れない)
生成 ク ロ ッ クの作成
生成 ク ロ ッ ク と は、 マ ス タ ー ク ロ ッ ク と 呼ばれ る 別の既存 ク ロ ッ ク か ら 派生 し た も ので、 通常 ロ ジ ッ ク ブ ロ ッ ク に
よ り マ ス タ ー ク ロ ッ ク で実行 さ れ る 波形変換を記述 し ます。 生成 ク ロ ッ ク の定義はマ ス タ ー ク ロ ッ ク の特性に よ っ
て 異 な る の で、 マ ス タ ー ク ロ ッ ク を 最初に定義す る 必要が あ り ま す。 生成 ク ロ ッ ク を 明示的に定義す る に は、
create_generated_clock コ マ ン ド を使用す る 必要があ り ます。
自動派生 ク ロ ッ ク
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
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
179
第 4 章 : デザイ ンの作成
ク ロ ッ ク ツ リ ーにあ る その他の組み合わせセルでは、 波形がセルで変換 さ れない限 り 、 タ イ ミ ン グ ク ロ ッ ク がそれ
ら を介 し て伝搬 さ れ る ので、 出力で定義 し 直す必要はあ り ません。 こ の自動派生機能は、 実際のハー ド ウ ェ ア動作に
該当す る 生成 ク ロ ッ ク を定義す る 最 も 安全な方法なので、 で き る だけ利用 し て く だ さ い。
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) に表示 さ れ ます。 上記の例に従っ て、 こ れ ら の
ク ロ ッ ク を定義 し ます。
マス タ ー ク ロ ッ ク と 生成ク ロ ッ ク 間のパス
プ ラ イ マ リ ク ロ ッ ク と は異な り 、 生成 ク ロ ッ ク はそれ ら のマ ス タ ー ク ロ ッ ク か ら 駆動 さ れ る フ ァ ン ア ウ ト 内に定義
し て、 タ イ ミ ン グ エン ジ ンでその挿入遅延が正確に計算 さ れ る よ う にする 必要があ り ます。 こ の規則に従っ ていない
と 、 タ イ ミ ン グ解析が不正確にな り 、 ス ラ ッ ク の計算が無効 と な る 可能性が高 く な り ます。 た と えば、 次の図では、
gen_clk_reg/Q が次の フ リ ッ プ フ ロ ッ プ (q_reg) の ク ロ ッ ク と し て使用 さ れ、プ ラ イ マ リ ク ロ ッ ク c1 の フ ァ ン ア
ウ ト コ ーンに も 含まれます。 こ のため、 gen_clk_reg/Q には、 create_clock ではな く 、
create_generated_clock を使用す る 必要があ り ます。
X-Ref Target - Figure 4-42
図 4-42 : マス タ ー ク ロ ッ クの フ ァ ン アウ ト の生成 ク ロ ッ ク
create_generated_clock -name GC1 -source [get_pins gen_clk_reg/C] -divide_by 2
[get_pins gen_clk_reg/Q]
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
180
第 4 章 : デザイ ンの作成
ク ロ ッ ク 定義お よび範囲の検証
デザ イ ン ク ロ ッ ク すべてが定義 さ れて、 メ モ リ に適用 さ れ る と 、 report_clocks コ マ ン ド で各 ク ロ ッ ク の波形を
検証で き る ほか、 マ ス タ ー ク ロ ッ ク と 生成 ク ロ ッ ク 間の関係を検証で き ます。
Clock
Period
Waveform
Attributes
sysClk
10.00000 {0.00000 5.00000}
P
clkfbout
10.00000 {0.00000 5.00000}
P,G
cpuClk
20.00000 {0.00000 10.00000} P,G
…
====================================================
Generated Clocks
====================================================
Generated Clock
Master Source
Master Clock
Edges
Edge Shifts
Generated Sources
Sources
{sysClk}
{clkgen/mmcm_adv_inst/CLKFBOUT}
{clkgen/mmcm_adv_inst/CLKOUT0}
: cpuClk
: clkgen/mmcm_adv_inst/CLKIN1
: sysClk
:{1 2 3}
:{0.000 5.000 10.000}
:{clkgen/mmcm_adv_inst/CLKOUT0}
ま た、 内部 タ イ ミ ン グ パ スすべてに少な く と も 1 つの ク ロ ッ ク が適用 さ れてい る か ど う か も 検証で き ます。 チ ェ ッ ク
タ イ ミ ン グ レ ポー ト では、 次の 2 種類のチ ェ ッ ク が提供 さ れてい ます。
•
no_clock
定義 し た ク ロ ッ ク で到達 し ないすべてのア ク テ ィ ブ ク ロ ッ ク ピ ンが レ ポー ト さ れます。
•
unconstrained_internal_endpoint
ク ロ ッ ク に対す る タ イ ミ ン グ チ ェ ッ ク があ る のに、 ク ロ ッ ク が定義 さ れていないシーケ ン シ ャ ル セルのすべて
のデー タ 入力ピ ンが レ ポー ト さ れます。
両方のチ ェ ッ ク で 0 が返 さ れた場合、 タ イ ミ ン グ解析の適用範囲は高 く な り ます。
ク ロ ッ ク 制約に関連す る 設計手法 XDC お よ び タ イ ミ ン グ DRC を実行 し て、制約の競合ま たは不正確な タ イ ミ ン グ解
析が実行 さ れ る 状況を発生 さ せずに、推奨 さ れ る ネ ッ ト リ ス ト オブジ ェ ク ト に ク ロ ッ ク が定義 さ れてい る こ と を確認
で き ます。 設計手法 DRC をすべて実行す る か、 XDC お よ び タ イ ミ ン グ DRC のみを実行す る には、 次の コ マ ン ド を
使用 し ます。
report_drc -ruledecks methodology_checks
ま たは
report_drc -checks [get_drc_checks {XDC-* TIMING-*}]
詳細は、 第 5 章の 「設計手法 DRC の実行」 を参照 し て く だ さ い。
ク ロ ッ ク 特性の調整
ク ロ ッ ク と その波形を定義 し た ら 、 次は ノ イ ズお よ びば ら つ き に関す る 情報を入力 し ます。 XDC 言語では、 ジ ッ タ ー
に関す る ば ら つ き と 位相エ ラ ーの記述が ス キ ュ ー と 遅延の記述 と は別にな っ てい ます。
•
「ジ ッ タ ー」
•
「その他のば ら つ き 」
•
「 ソ ース の ク ロ ッ ク レ イ テ ン シ」
•
「MMCM ま たは PLL の外部フ ィ ー ド バ ッ ク ループ遅延」
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
181
第 4 章 : デザイ ンの作成
ジッ ター
ジ ッ タ ーには、 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 -setup
set_clock_uncertainty -from clk1 -to clk0 0.250 -setup
ソ ースの ク ロ ッ ク レ イ テ ン シ
set_clock_latency コ マ ン ド に -source オプシ ョ ン を付け る と 、 ク ロ ッ ク レ イ テ ン シ を その ソ ー ス で指定で き
ます。 こ れは、 次の よ う な場合に便利です。
•
入力お よ び出力遅延制約 と は別に、 デバ イ ス の外部で ク ロ ッ ク 遅延の伝搬を指定する ため
•
ア ウ ト オブ コ ン テ キ ス ト コ ンパ イ ル中にブ ロ ッ ク で使用 さ れ る ク ロ ッ ク の内部伝搬レ イ テ ン シ を記述す る た
め。 こ の よ う な コ ンパ イ ル フ ロ ーでは、 完全な ク ロ ッ ク ツ リ ーは必要ではないので、 ブ ロ ッ ク 外部の最小お よ
び最大動作条件間の変動は自動的には計算で き ず、 手動で記述す る 必要があ り ます。
有効な レ イ テ ン シ値を指定す る のは困難なので、 こ の制約の使用はア ド バン ス ユーザーのみに推奨 さ れます。
MMCM または PLL の外部フ ィ ー ド バ ッ ク ループ遅延
内部 ク ロ ッ ク 遅延ではな く ボー ド 遅延を補正す る ために MMCM ま たは PLL フ ィ ー ド バ ッ ク ループ を接続す る 場合、
set_external_delay コ マ ン ド を使用 し て FPGA デバ イ ス外のベス ト ケース と ワース ト ケース の遅延を指定す る
必要があ り ます。 こ の遅延を指定 し ない と 、 MMCM ま たは PLL に関す る I/O タ イ ミ ン グ解析が不適切にな り 、 タ イ
ミ ン グ ク ロ ージ ャ が不可能な状態にな る 可能性があ り ます。 ま た、 外部補正を使用 し た場合は、 ボー ド での ク ロ ッ ク
ト レース遅延を考慮す る だけの通常の場合 と 異な り 、 入力お よ び出力遅延制約値を適切に変更する 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
182
第 4 章 : デザイ ンの作成
入力ポー ト および出力ポー ト の制約
デザ イ ンの各ポー ト の ロ ケーシ ョ ンお よび I/O 規格を指定する だけでな く 、入力お よび出力遅延制約を指定 し て、FPGA
デバ イ ス の イ ン タ ーフ ェ イ ス を行き 来する 外部パス の タ イ ミ ン グ を記述す る 必要があ り ます。 こ れ ら の遅延は、 通常
ボー ド で生成 さ れて FPGA デバ イ ス に入力 さ れ る ク ロ ッ ク に対 し て定義 さ れてい ます。 I/O パ ス がボー ド ク ロ ッ ク と
は異な る波形の ク ロ ッ ク と 関連し てい る場合、 遅延を仮想 ク ロ ッ ク に対 し て定義する必要のあ る こ と があ り ます。
シ ス テム レ ベルの視点
I/O パ ス は、 Vivado Design Suite タ イ ミ ン グ エ ン ジ ン で レ ジ ス タ 間のパ ス と 同様にモデ リ ン グ さ れ ますが、 パ ス の一
部が FPGA デバ イ ス外部にあ り 、 ユーザーが記述す る 必要があ る 点が異な り ます。 内部パス を解析する 場合は、 セ ッ
ト ア ッ プお よ びホール ド 解析の両方に対 し て最小遅延 と 最大遅延が考慮 さ れ ま す。 こ れは、 I/O パ ス で も 同様です。
こ のため、 最小遅延 と 最大遅延の条件を記述 し てお く こ と が重要です。 I/O タ イ ミ ン グ パス は、 デフ ォ ル ト でシ ン グ
ルサ イ ク ル パ ス と し て解析 さ れます。 こ れは、 次を意味 し ます。
•
最大遅延解析 (セ ッ ト ア ッ プ) では、 シ ン グル デー タ レー ト イ ン タ ーフ ェ イ ス では ソ ース エ ッ ジの 1 ク ロ ッ ク
サ イ ク ル後にデー タ がキ ャ プチ ャ さ れ、 ダブル デー タ レー ト イ ン タ ーフ ェ イ ス では ソ ース エ ッ ジの半 ク ロ ッ ク
サ イ ク ル後にデー タ がキ ャ プチ ャ さ れます。
•
最小遅延解析 (ホール ド ) の場合、 デー タ は同 じ ク ロ ッ ク エ ッ ジで開始 さ れて キ ャ プチ ャ さ れます。
ソ ース同期 イ ン タ ーフ ェ イ ス な ど、ク ロ ッ ク と I/O デー タ 間の関係に異な る タ イ ミ ン グ を設定す る 必要があ る 場合は、
異な る I/O 遅延を指定 し 、 タ イ ミ ン グ例外を設定 し ます。 こ れは、 高度な I/O タ イ ミ ン グ制約にな り ます。
入力遅延の定義
入 力 遅 延 は デ バ イ ス の イ ン タ ー フ ェ イ ス の ク ロ ッ ク に 対 し て 定義 さ れ ま す。 基準 ク ロ ッ ク の ソ ー ス ピ ン に
set_clock_latency が指定 さ れていなければ、 入力遅延は ソ ース エ ッ ジか ら ク ロ ッ ク ト レース を介 し て外部デバ
イ スお よ びデー タ ト レース に到達す る ま での絶対時間に相当 し ます。 ク ロ ッ ク レ イ テ ン シが既に別に指定 さ れてい
れば、 ク ロ ッ ク ト レース遅延は無視で き ます。
X-Ref Target - Figure 4-43
FPGA DEVICE
Board
Device
D
REGB
Internal Delay
Q
D
DIN
Ddata
Q
Tsetup
Tco
Thold
Input Delay
CLK
Dclock_to_ExtDev
BUFG
Dclock_to_ FPGA
Board Clock Generator
X13450
図 4-43 : 入力遅延の計算
両方の解析 タ イ プの入力遅延値は、 次の よ う に計算 さ れます。
入力遅延 (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)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
183
第 4 章 : デザイ ンの作成
次の図に、 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 4-44
Launch Edge
PERIOD
Source
Clock
CLK
Min Input Delay
Old Data
DIN
New Data
Max Input Delay
Destination
CLK
Clock
Capture Edge
(hold check)
Capture Edge
(setup check)
X13451
図 4-44 : 最小および最大入力遅延
負の入力遅延は、 ソ ー ス ク ロ ッ ク エ ッ ジ よ り も 前にデバ イ ス の イ ン タ ーフ ェ イ ス にデー タ が到着す る こ と を意味 し
ます。
出力遅延の定義
出力遅延は、 入力遅延 と 類似 し てい ますが、 すべての状況下で機能 さ せ る ために、 FPGA デバ イ ス外での出力パ ス の
最小時間お よ び最大時間を指定 し ます。
X-Ref Target - Figure 4-45
FPGA DEVICE
REGB
D
Board
Device
Internal Delay
Q
DOUT
D
Ddata
Tco
Q
Tsetup
Thold
Output Delay
BUFG
CLK
Dclock_to_ FPGA
Dclock_to_ExtDev
Board Clock Generator
X13452
図 4-45 : 出力遅延の計算
両方の解析 タ イ プの出力遅延値は、 次の よ う に計算 さ れます。
出力遅延 (max) = Tsetup + Ddata(max) + Dclock_to_FPGA(max) - Dclock_to_ExtDev(min)
出力遅延 (min) = Ddata(min) - Thold + Dclock_to_FPGA(min) - Dclock_to_ExtDev(max)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
184
第 4 章 : デザイ ンの作成
次の図に、 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 4-46
Launch Edge (FPGA)
PERIOD
Source
Clk
CLK
Old Data
DOUT
Destination
Clk
CLK
New Data
Min Output Delay
Max Output Delay
TH(DestDev)
TSU(DestDev)
TH(DestDev)
Capture Edge
(setup check)
Capture Edge
(hold check)
X13453
図 4-46 : 最小および最大出力遅延
出力遅延はデス テ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジ前のボー ド の遅延に相当 し ます。 ク ロ ッ ク と デー タ のボー ド ト レー
ス のバ ラ ン ス が取 ら れた標準的なシ ス テ ム同期 イ ン タ ーフ ェ イ ス の場合、デス テ ィ ネーシ ョ ン デバ イ ス のセ ッ ト ア ッ
プ時間に よ り 、 最大解析の出力遅延値が定義 さ れ ます。 ま た、 デス テ ィ ネーシ ョ ン デバ イ ス のホール ド タ イ ムに よ
り 、 最小解析の出力遅延が定義 さ れます。 指定 さ れた最小出力遅延は、 信号がデザ イ ンか ら 出力 さ れか ら 、 デス テ ィ
ネーシ ョ ン デバ イ ス イ ン タ ーフ ェ イ ス でホール ド 解析に使用 さ れ る ま での最小遅延を示 し ます。 こ のため、 ブ ロ ッ
ク 内の遅延はそれだけ小 さ く な り ます。 最小出力遅延が正の値の場合は、 信号にデザ イ ン内で負の遅延が含まれ る こ
と を意味 し ます。 最小出力遅延が負の値であ る こ と が よ く あ る のは こ のためです。 次はその例です。
set_output_delay -min -0.5 -clock CLK [get_ports DOUT]
こ れは、 ホール ド タ イ ム要件を満たすためには、 DOUT ま でのデザ イ ン内の遅延が少な く と も +0.5ns であ る 必要が
あ る こ と を示 し てい ます。
基準 ク ロ ッ クの選択
入力ま たは出力ポー ト に関す る シーケ ン シ ャ ル セルを制御す る ク ロ ッ ク ツ リ ー ト ポ ロ ジに よ っ て、 入力ま たは出力
遅延制約を定義す る のに最適な ク ロ ッ ク を選択す る 必要があ り ます。 I/O パ ス レ ジ ス タ の ク ロ ッ ク が生成 ク ロ ッ ク で
あ る 場合は通常、遅延制約を生成 ク ロ ッ ク の上流で定義 さ れてい る プ ラ イ マ リ ク ロ ッ ク を基準に定義す る 必要があ り
ます。 こ の規則の例外を こ のセ ク シ ョ ンで説明 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
185
第 4 章 : デザイ ンの作成
各ポー ト に関する ク ロ ッ クの特定
I/O 遅延制約を定義す る 前に、 各ポー ト に ど の ク ロ ッ ク が関連付け ら れてい る か を特定す る 必要があ り ます。 ク ロ ッ
ク を特定す る 方法は、 次の よ う に複数あ り ます。
•
「ボー ド 回路図の確認」
•
「デザ イ ン回路図の確認」
•
「ポー ト の入出力の タ イ ミ ン グの レ ポー ト 」
•
「自動的に認識 さ れたサンプ リ ン グ ク ロ ッ ク の使用」
ボー ド 回路図の確認
ボー ド 上の特定のデバ イ ス に接続 さ れてい る ポー ト のグループに対 し ては、デバ イ スお よ び FPGA の両方に供給 さ れ
る 同 じ ボー ド ク ロ ッ ク を入力遅延ま たは出力遅延の基準 ク ロ ッ ク と し て使用で き ます。 デバ イ ス のデー タ シー ト で、
ボー ド ク ロ ッ ク が I/O ポー ト の タ イ ミ ン グのために内部で変換 さ れてい る か ど う かを確認 し 、 FPGA デザ イ ンで関連
す る ポー ト のグループの タ イ ミ ン グ を制御す る ために同 じ ク ロ ッ ク が生成 さ れ る よ う にする 必要があ り ます。
デザイ ン回路図の確認
各ポー ト で、 パ ス の回路図を シーケ ン シ ャ ル セルの最初の レベル ま で展開 し 、 こ れ ら のセルの ク ロ ッ ク ピ ン か ら ク
ロ ッ ク ソ ース ま でた ど り ます。 こ の方法は、 フ ァ ン ア ウ ト の大 き いネ ッ ト に接続 さ れたポー ト では困難です。
ポー ト の入出力の タ イ ミ ングのレポー ト
ポー ト に既に制約が付いてい る か ど う かに関係な く 、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
---------(none)
(none)
(none)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
From Clock
---------clk0
To Clock
-------clk0
clk1
japan.xilinx.com
186
第 4 章 : デザイ ンの作成
ク ロ ッ ク 名のない フ ィ ール ド (ま たは Vivado IDE で <NONE>) は、開始点 (From Clock) ま たは終点 (To Clock) が ク ロ ッ
ク に関連付け ら れていないパ ス グループ を意味 し ま す。 制約の付いていない I/O ポー ト は、 こ のカ テ ゴ リ にな り ま
す。 残 り の レ ポー ト を確認す る と 、 こ れ ら の名前を取得で き ます。 た と えば、 Vivado IDE で [clk0 to NONE] カ テ ゴ リ
のセ ッ ト ア ッ プ パス を選択す る と 、 [To] 列に clk0 で駆動 さ れ る ポー ト が表示 さ れます。
X-Ref Target - Figure 4-47
図 4-47 : 制約の付いていない出力ポー ト の リ ス ト
新 し い制約を追加 し て、 メ モ リ でそれ ら を適用 し た ら 、 レ ポー ト を再び作成 し て ど のポー ト に ま だ制約が付いていな
いのか を確認 し ます。 ほ と ん ど のデザ イ ンで、 レ ポー ト さ れ る パ ス の数を増加 し て、 すべての 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 パ ス のシーケ ン シ ャ ル セルがそのプ ラ イ マ リ ク ロ ッ ク の内部 コ ピー (た と えば生成 ク ロ ッ ク ) に接続 さ れ ま
す。 両方の ク ロ ッ ク の波形は同 じ なので、 入力/出力遅延制約の基準 ク ロ ッ ク と し てプ ラ イ マ リ ク ロ ッ ク を使用す る
こ と をお勧め し ます。
X-Ref Target - Figure 4-48
mmcm
data_reg[0]
+
Input Delay
CLK
CLK IN1
CLK OUT1
mmcm_zhold
DIN
DIN_IBUF_inst
I
O
IBUF
C
CE
CLR
Q
D
FDCE
X13454
図 4-48 : ク ロ ッ ク パスに ZHOLD MMCM が含まれる場合の入力遅延
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
187
第 4 章 : デザイ ンの作成
ZHOLD MMCM は補正量に相当す る 負の挿入遅延を含む ク ロ ッ ク バ ッ フ ァ ーの よ う に動作す る ので、 制約は 「入力
遅延の定義」 セ ク シ ョ ンの例 と 同 じ にな り ます。
仮想 ク ロ ッ クの使用
ボー ド ク ロ ッ ク が挿入遅延を補正す る だけでな く 実際に波形を変換する ク ロ ッ ク 調整ブ ロ ッ ク を通過す る 場合、入力
ま たは出力遅延の基準 ク ロ ッ ク と し てボー ド ク ロ ッ ク の代わ り に仮想 ク ロ ッ ク を使用する こ と をお勧め し ます。仮想
ク ロ ッ ク を使用す る のには、 主に次の 3 つの場合があ り ます。
•
内部 ク ロ ッ ク お よ びボー ド ク ロ ッ ク の周期が異な る : 仮想 ク ロ ッ ク を内部 ク ロ ッ ク の周期お よ び波形 と 同 じ に
な る よ う 定義す る 必要があ り ます。 こ れに よ り 、 I/O パ ス のシ ン グルサ イ ク ル パ ス要件が標準的な も のにな り ま
す。
•
入力パ ス で、内部 ク ロ ッ ク の波形がボー ド ク ロ ッ ク か ら 正の方向にシ フ ト さ れてい る : 仮想 ク ロ ッ ク はボー ド ク
ロ ッ ク と 同様に定義 し 、仮想 ク ロ ッ ク か ら 内部 ク ロ ッ ク にセ ッ ト ア ッ プ対 し て 2 サ イ ク ルのマルチサ イ ク ル パ ス
制約を定義 し ます。 こ れ ら の制約に よ り 、 セ ッ ト ア ッ プ タ イ ミ ン グ解析が 1 ク ロ ッ ク サ イ ク ル + 位相シ フ ト 量
の要件で実行 さ れます。
•
出力パ ス で、内部 ク ロ ッ ク の波形がボー ド ク ロ ッ ク か ら 負の方向にシ フ ト さ れてい る : 仮想 ク ロ ッ ク はボー ド ク
ロ ッ ク と 同様に定義 し 、内部 ク ロ ッ ク か ら 仮想 ク ロ ッ ク にセ ッ ト ア ッ プに対 し て 2 サ イ ク ルのマルチサ イ ク ル パ
ス制約を定義 し ます。 こ れ ら の制約に よ り 、 セ ッ ト ア ッ プ タ イ ミ ン グ解析が 1 ク ロ ッ ク サ イ ク ル + 位相シ フ ト
量の要件で実行 さ れます。
ま と め る と 、 仮想 ク ロ ッ ク を使用す る こ と に よ り 、 デフ ォ ル ト の タ イ ミ ン グ解析を調整 し て、 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 の周期にな り 、
タ イ ミ ン グ ク ロ ージ ャ が達成 し に く く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
188
第 4 章 : デザイ ンの作成
遅延制約の確認
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 (結果の品質) に影響 し ます。
入力か ら 出力ま でのフ ィ ー ド スルー パス
入力ポー ト か ら 出力ポー ト ま での組み合わせパ ス に制約を付け る には、 複数の方法があ り ます。
例1
フ ィ ー ド スルー パス の タ ーゲ ッ ト 最大遅延以上の周期の仮想 ク ロ ッ ク を使用 し 、入力お よ び出力遅延制約を次の よ う
に適用 し ます。
create_clock -name vclk -period 10
set_input_delay -clock vclk <input_delay_val> [get_ports din] -max
set_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] 10
set_min_delay -from [get_ports din] -to [get_ports dout] 2
こ れは、 パ ス に最小遅延 と 最大遅延の両方の遅延を設定す る シ ンプルな方法で、 タ イ ミ ン グ解析では、 同 じ ポー ト の
既存の入力お よ び出力遅延制約 も 使用 さ れます。 こ のため、 こ の ス タ イ ルは頻繁には使用 さ れません。
最大遅延は通常最適化 さ れ、 Slow タ イ ミ ン グ コ ーナーに対 し て レ ポー ト さ れ ま すが、 最小遅延は Fast タ イ ミ ン グ
コ ーナーに対 し て レ ポー ト さ れます。 特にポー ト が互いに遠 く に配置 さ れてい る 場合は、 フ ィ ー ド スルー パ ス の遅延
制約を 2、 3 度繰 り 返 し て、 それ ら が合理的で、 イ ンプ リ メ ン テーシ ョ ン ツールで満たす こ と が可能であ る か ど う か
検証 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
189
第 4 章 : デザイ ンの作成
XDC テ ン プ レー ト の使用 : ソ ース同期イ ン タ ー フ ェ イ ス
シ ス テ ム同期 イ ン タ ーフ ェ イ ス の タ イ ミ ン グ制約を正 し く 記述で き て も 、 ソ ース同期 イ ン タ ーフ ェ イ ス には I/O 制約
テ ン プ レー ト を使用す る こ と をお勧め し ます。 ソ ー ス同期制約は、 複数の方法で記述で き ます。 Vivado Design Suite
に含 ま れ る テ ン プ レー ト は、 デフ ォ ル ト の タ イ ミ ン グ パ ス要件に基づいてい ます。 構文はシ ン プルですが、 セ ッ ト
ア ッ プ解析が同 じ エ ッ ジ (0 サ イ ク ル) ではな く 異な る ソ ース エ ッ ジお よ びデス テ ィ ネーシ ョ ン エ ッ ジ (1 サ イ ク ルま
たは 1/2 サ イ ク ル) で実行 さ れ る こ と を考慮 し て、 遅延値を調整する 必要があ り ます。 タ イ ミ ン グ レ ポー ト では、 ク
ロ ッ ク エ ッ ジが直接ハー ド ウ ェ アの実際の ク ロ ッ ク エ ッ ジに対応 し ないので、 解読 し に く い場合があ り ます。 こ れ
ら のテ ンプ レー ト は、Vivado の GUI で [Window] → [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 タ イ ミ ン グ制約を選
択す る 前にすべての ク ロ ッ ク ペア間のパス を注意 し て確認 し 、 制約が競合 し ない よ う にする こ と が重要です。
推奨 : methodology_check DRC ルール デ ッ ク も 実行 し て、 set_max_delay -datapath_only 制約が
set_clock_groups ま たは set_false_path 制約に よ り 無効にな っ てい る 状況を特定す る 必要があ り ます。 詳細
は、 第 5 章の 「設計手法 DRC の実行」 を参照 し て く だ さ い。
ク ロ ッ ク の関連性の確認
ク ロ ッ ク 間に論理パ ス があ る 場合は、 タ イ ミ ン グが適用 さ れます。 こ の場合、 ク ロ ッ ク 関係は次の よ う にな り ます。
•
「同期」
•
「非同期」
•
「排他的」
同期
2 つの ク ロ ッ ク に固定 さ れた位相関係があ る 場合は、 ク ロ ッ ク 関係が同期にな り ます。 こ れは、 2 つの ク ロ ッ ク が次
を共有 し てい る 場合です。
•
共通の回路 (共通の ノ ー ド )
•
プ ラ イ マ リ ク ロ ッ ク (同 じ 初期位相)
非同期
ク ロ ッ ク 間に固定 さ れた位相関係がない場合、 ク ロ ッ ク 関係は非同期にな り ます。 こ れは、 次のいずれかの状況で発
生 し ます。
•
デザ イ ン内で共有 さ れ る 共通の回路がな く 、 共通のプ ラ イ マ リ ク ロ ッ ク も ない場合
•
1000 サ イ ク ル以内に共通の周期を見つけ る こ と がで き ず、 タ イ ミ ン グ エン ジ ン で適切に タ イ ミ ン グ を適用で き
ない場合
2 つの ク ロ ッ ク が同期 し ていて共通周期が非常に小 さ い場合、 セ ッ ト ア ッ プ パ ス要件が タ イ ミ ン グ を満たすには厳 し
すぎ る も のにな り ます。 こ の場合、 2 つの ク ロ ッ ク を非同期 と し て処理 し 、 安全な非同期 CDC 回路を イ ン プ リ メ ン
ト す る こ と をお勧め し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
190
第 4 章 : デザイ ンの作成
排他的
同 じ ク ロ ッ ク ツ リ ーを伝搬 し 、 同 じ シーケ ン シ ャ ル セルの ク ロ ッ ク ピ ンに到達す る が、 物理的に同時にア ク テ ィ ブ
にな ら ない場合、 ク ロ ッ ク 関係は排他的にな り ます。
ク ロ ッ ク ペアの分類
ク ロ ッ ク ペアは、 次の レ ポー ト を使用 し て分類で き ます。
•
「 ク ロ ッ ク 関連性レ ポー ト 」
•
「チ ェ ッ ク タ イ ミ ン グ レ ポー ト 」
ク ロ ッ ク 関連性レポー ト
ク ロ ッ ク 関連性レ ポー ト は、 2 つの ク ロ ッ ク 間にど の よ う に タ イ ミ ン グが適用 さ れてい る か を示 し ます。
•
2 つの ク ロ ッ ク に共通のプ ラ イ マ リ ク ロ ッ ク があ る か。 ク ロ ッ ク が正 し く 定義 さ れてい る 場合、 デザ イ ンの同 じ
ソ ース か ら の ク ロ ッ ク はすべて同 じ プ ラ イ マ リ ク ロ ッ ク を共有 し ます。
•
2 つの ク ロ ッ ク に共通の周期があ る か。タ イ ミ ン グ エン ジ ンで ワ ース ト ケース のセ ッ ト ア ッ プ ま たはホール ド 関
係を決定で き ない場合、 こ れがセ ッ ト ア ッ プ ま たはホール ド パス要件の列に表示 さ れます。
•
2 つの ク ロ ッ ク 間の一部ま たはすべてのパスに ク ロ ッ ク グループ ま たはタ イ ミ ン グ例外制約が適用 さ れてい る か。
•
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
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
191
第 4 章 : デザイ ンの作成
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 度に伝搬で き る のは 1 つの ク ロ ッ ク のみですが、 タ イ ミ ン グ解析では同時に
複数の タ イ ミ ン グ モー ド が レ ポー ト さ れます。
こ のため、 CDC ( ク ロ ッ ク 乗せ換え) パ ス を確認 し 、 新 し い制約を追加 し て、 一部の ク ロ ッ ク 関係を無視す る 必要があ
り ます。 正 し い制約は、 ク ロ ッ ク がデザ イ ンの ど こ で ど の よ う に動作す る かに よ っ て異な り ます。
次の図は、 マルチプ レ ク サーに駆動 さ れ る 2 つの ク ロ ッ ク と 、 マルチプ レ ク サー前後でのそれ ら の ク ロ ッ ク の関連性
を示 し た例です。
X-Ref Target - Figure 4-49
D
Q
FD0
A
D
Q
D
FDM0
clk0
I0
clk1
I1
Q
FDM1
C
O
D
Q
B
FD1
X13455
図 4-49 : マルチ プ レ クサーを介する ク ロ ッ ク
•
パ ス A、 B、 C が存在 し ない場合
clk0 お よ び clk1 は、 マルチプ レ ク サーの フ ァ ン ア ウ ト (FDM0 お よ び FDM1) でのみ関連性があ り ます。 clk0
お よ び clk1 に直接 ク ロ ッ ク グループ制約を適用す る のが安全です。
set_clock_groups -logically_exclusive -group clk0 -group clk1
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
192
第 4 章 : デザイ ンの作成
•
パ ス 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 パ ス には、 通常ス キ ュ ーが多 く 、 現実的でないパ ス要件があ り ます。 こ れ ら のパ ス は、 デフ ォ ル ト
の タ イ ミ ン グ解析ではハー ド ウ ェ アで機能す る こ と を判断で き ないので、 タ イ ミ ン グ制約を適用す る べ き ではあ り ま
せん。
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 パ ス の制約」
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
193
第 4 章 : デザイ ンの作成
ク ロ ッ ク 間の双方向のグ ローバル制約
最大レ イ テ ン シ を制限す る 必要がない場合は、 ク ロ ッ ク グループ を使用で き ます。 次は、 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 パ ス に複
数のデー タ が存在す る こ と がない よ う に注意 し て く だ さ い。
ク ロ ッ ク 周期間の比率が大 き い場合、最小の ソ ース と デス テ ィ ネーシ ョ ン ク ロ ッ ク 周期を選択 し て転送レ イ テ ン シ を
削減す る こ と も で き ます。 ク リ ーン な非同期 CDC パ ス には ソ ースお よ びデス テ ィ ネーシ ョ ン シーケ ン シ ャ ル セル間
に ロ ジ ッ ク が含ま れないので、 通常は イ ン プ リ メ ン テーシ ョ ン ツールで Max Delay Datapath Only 制約を簡単に満た
す こ と がで き ます。
レ イ テ ン シ制御を必要 と し ないパ ス の場合は、 ポ イ ン ト ト ゥ ポ イ ン ト の フ ォ ルス パス制約を定義で き ます。
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 つ目のパ ス は複数ビ ッ ト のグ レ イ コ ー ド のバ ス転送
です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
194
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-50
GCB0[N..0]
D
GCB1a[N..0]
Q
D
Q
D
REG0
D
clk0
IBUF0
Q
GCB1b[N..0]
D
REG1a
Q
Q
REG1b
D
BUFG0
Q
BUFG1
IBUF1
clk1
X13456
図 4-50 : 2 つの非同期ク ロ ッ ク 間の複数の関連性
グ レ イ コ ー ド のバ ス転送で ビ ッ ト 内の遅延パ タ ーン を制限す る ために Max Delay Datapath Only が必要か ど う かは設
計者が判断す る ので、 ク ロ ッ ク 間に直接 ク ロ ッ ク グループ ま たはフ ォ ルス パ ス制約を使用す る こ と はで き ません。代
わ り に、 2 つの制約を定義す る 必要があ り ます。
set_max_delay -from [get_cells GCB0[*]] -to [get_cells [GCB1a[*]] \
-datapath_only 5
set_false_path -from [get_cells REG0] -to [get_cells REG1a]
こ の例にはパ ス がないので、 clk1 か ら clk0 ま でのフ ォ ルス パ ス を設定す る 必要はあ り ません。
タ イ ミ ング例外の指定
タ イ ミ ン グ例外は、 特定のパ ス での タ イ ミ ン グ解析の実行方法を変更す る ために使用 し ます。 デフ ォ ル ト では、 最悪
の ク ロ ッ ク 状況を網羅す る ため、 タ イ ミ ン グ エ ン ジ ンに よ り セ ッ ト ア ッ プ解析ですべてのパ ス にシ ン グル サ イ ク ル
要件の タ イ ミ ン グ制約が適用 さ れますが、 パ ス に よ っ ては こ れは当ては ま り ません。 次は、 その例の一部です。
•
非同期 ク ロ ッ ク 乗せ換えパ ス には ク ロ ッ ク 間に固定 さ れた位相関係がないので、 安全に タ イ ミ ン グ制約を適用す
る こ と がで き ない。 こ れ ら のパ ス は無視す る か ( ク ロ ッ ク グループ、 フ ォ ル ス パ ス制約)、 デー タ パ ス遅延制約
(Max Delay Datapath Only) を設定す る 必要があ り ます。
•
シーケ ン シ ャ ル セルの ソ ース ク ロ ッ ク エ ッ ジお よ びデス テ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジはすべての ク ロ ッ ク
サ イ ク ルでア ク テ ィ ブにな る わけではない。 こ の場合、 パ ス要件を緩和で き ます (マルチサ イ ク ル パ ス)。
•
ハー ド ウ ェ アでのデザ イ ン マージ ン を増加する ため、 パス遅延要件を厳 し く する 必要があ る (最大遅延)。
•
組み合わせセルを介す る パ ス が ス タ テ ィ ッ ク で、タ イ ミ ン グ を適用す る 必要がない (フ ォ ルス パス、ケース解析)。
•
マルチプ レ ク サーで駆動 さ れ る 特定の ク ロ ッ ク でのみ解析を実行す る 必要があ る (ケース解析)。
ど の場合で も 、 タ イ ミ ン グ例外の使用には注意が必要で、 実際の タ イ ミ ン グ問題を隠すために追加す る べ き ではあ り
ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
195
第 4 章 : デザイ ンの作成
タ イ ミ ング例外のガ イ ド ラ イ ン
タ イ ミ ン グ例外の数は制限 し 、 で き る 限 り 簡潔にない と 、 次の問題が発生 し ます。
•
例外が多 く 使用 さ れ る と (特に多数のネ ッ ト リ ス ト オブジ ェ ク ト に使用 さ れ る 場合)、 コ ンパ イ ル フ ロ ーの実行
時間が大幅に増加 し ます。
•
複数の例外が同 じ パ ス に適用 さ れ る と 、 制約のデバ ッ グが複雑にな り ます。
•
信号の制約に よ り 、 その信号の最適化が妨害 さ れ る こ と があ る ので、 例外 コ マ ン ド に不必要な例外やポ イ ン ト を
含め る と 、 最適化が妨害 さ れ る 可能性があ り ます。
次は、 実行時間に悪影響を及ぼす タ イ ミ ン グ例外の例です。
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
最初の 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 コ マ ン ド は、 デザ イ ンの特定部分での タ イ ミ ン グ解析をデ ィ
ス エーブルに し ます。 こ れ ら の コ マ ン ド は タ イ ミ ン グ例外 よ り も 優先順位が高 く な り ます。
フ ォルス パス制約の追加
フ ォ ル ス パ ス例外を タ イ ミ ン グ パ ス に追加す る と 、 こ れ ら のパ ス の ス ラ ッ ク 計算が無視 さ れます。 通常は、 シ ミ ュ
レーシ ョ ン ツールを使用 し て も 、 パ ス が機能す る ために タ イ ミ ン グが必要でない と い う こ と を証明す る のは困難で
す。 フ ォ ルス パス を使用す る 場合の リ ス ク を理解せずに、 フ ォ ルス パ ス を使用す る こ と はお勧め し ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
196
第 4 章 : デザイ ンの作成
使用状況
フ ォ ルス パ ス制約を使用す る 典型的な状況は、 次の と お り です。
•
ア ク テ ィ ブにな ら ないパ ス の タ イ ミ ン グ を無視す る 場合。 た と えば、 セ レ ク ト ピ ンが接続 さ れてい る ため、 同 じ
ク ロ ッ ク サ イ ク ルではデー タ を伝搬する こ と ので き ない 2 つのマルチプ レ ク サーを介する パス な ど です。
X-Ref Target - Figure 4-51
MUX0
REG0
D
Q
MUX1
I0
I0
O
I1
REG1
D
Q
O
I1
S
S
X13457
図 4-51 : 認識で き ないパス
set_false_path -through [get_pins MUX0/I0] -through [get_pins MUX1/I1]
•
非同期 CDC パ ス の タ イ ミ ン グ を無視する 場合。 こ れについては、 「 ク ロ ッ ク グループお よ び CDC 制約の定義」
セ ク シ ョ ンで説明 さ れてい ます。
•
デザ イ ンの ス タ テ ィ ッ ク パス を無視する 場合。 レ ジ ス タ の中には、 アプ リ ケーシ ョ ンの初期化段階で値を取 り 込
んだ後、 2 度 と ト グル し ない も のがあ り ます。 こ れ ら がデザ イ ンの ク リ テ ィ カル パ ス にあ る よ う な場合は、 それ
ら の タ イ ミ ン グ を無視す る と 、 イ ンプ リ メ ン テーシ ョ ンで制約が緩和 さ れて、 タ イ ミ ン グ ク ロ ージ ャ が達成 し や
す く な り ます。 明示的にパ ス のエ ン ド ポ イ ン ト を指定 し な く て も 、 ス タ テ ィ ッ ク レ ジ ス タ か ら の フ ォ ル ス パ ス
制 約 を 定 義 す る だ け で 十 分 で す。 た と え ば、 32
ビッ ト
コ ン フ ィ ギ ュ レーシ ョ ン
レジスタの
config_reg[31..0] か ら 残 り のデザ イ ンへのパ ス は、 次のフ ォ ルス パ ス制約を適用す る と 無視で き ます。
set_false_path -from [get_cells config_reg[*]]
合成への影響
フ ォ ルス パ ス制約は合成ツールでサポー ト さ れてお り 、 最大遅延 (セ ッ ト ア ッ プ/ リ カバ リ ) パス の最適化にのみ影響
し ます。 通常は、 CDC パ ス を無視す る 場合を除き 、 合成中に フ ォ ルス パ ス例外を使用す る 必要はあ り ません。
イ ン プ リ メ ン テーシ ョ ンへの影響
すべての イ ンプ リ メ ン テーシ ョ ン段階で、 フ ォ ルス パス タ イ ミ ン グ例外が認識 さ れます。
最小および最大遅延制約の追加
最小お よ び最大遅延例外は、 それぞれホール ド / リ ムーバルお よ びセ ッ ト ア ッ プ/ リ カバ リ のチ ェ ッ ク のデフ ォ ル ト パ
ス要件の ソ ース ク ロ ッ ク エ ッ ジ タ イ ムお よ びデス テ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジ タ イ ム を制約か ら の遅延値に置
き換え る ために使用 さ れます。
使用状況
最小ま たは最大遅延制約を使用す る 主な理由は、 次の と お り です。
•
セ ッ ト ア ッ プ/ リ カバ リ パ ス要件を厳 し く する こ と で、 デザ イ ンの 2、 3 のパ ス の制約を過剰にす る
こ れに よ り 、ロ ジ ッ ク 最適化ま たは配置が一部の ク リ テ ィ カル パ ス のセルに集中的に実行 さ れ る よ う にす る こ と
がで き 、 配線で タ イ ミ ン グ を満たすために柔軟な処理が可能にな り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
197
第 4 章 : デザイ ンの作成
•
マルチサ イ ク ル制約を置 き 換え る
こ れは、 ソ ース ク ロ ッ ク エ ッ ジお よ びデ ス テ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジが 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 制約はホール ド パ ス要件に置 き 換わ る も ので、 ホール ド を修正す る 必要があ る 場合にの
み配線動作に影響 し ます。
パス分割の回避
パ ス分割は、set_max_delay お よ び set_min_delay コ マ ン ド の -from ま たは -to オプシ ョ ンに無効な開始点ま
たは終点が指定 さ れ る と 発生 し ます。 set_max_delay に よ り パ ス でパ ス分割が発生する と 、 デフ ォ ル ト のホール ド
解析は実行 さ れな く な り ます。 ホール ド 解析に も 制約を付け る 必要があ る 場合は、 set_min_delay を同 じ パ ス に付
け る 必要があ り ます。 同様に、 セ ッ ト ア ッ プ解析に制約を付け る 必要があ る 場合は、 set_min_delay を同 じ パ ス に
付け る 必要があ り ます。
パ ス分割は、 次の よ う に タ イ ミ ン グ解析の基盤を変更 し て し ま う ので、 通常は使用 し ないで く だ さ い。
•
パ ス分割に よ り 、 分割 さ れたパ ス の ク ロ ッ ク ス キ ュ ー計算が分割 さ れ る
•
パ ス分割では、 set_max_delay ま たは set_min_delay コ マ ン ド で設定 さ れたパ ス よ り も 多 く のパ ス が分割
される
パ ス分割は、 制約が適用 さ れた と き にツールに よ り ロ グ フ ァ イ ルで レ ポー ト さ れます。 有効な開始点お よ び終点を使
用す る と 、 パ ス分割を回避で き ます。
•
開始点
ク ロ ッ ク 、 ク ロ ッ ク ピ ン、 シーケ ン シ ャ ル セル (セルの有効な開始点ピ ン)、 入力ま たは入出力ポー ト
•
終点
ク ロ ッ ク 、 シーケ ン シ ャ ル セルの入力デー タ ピ ン、 シーケ ン シ ャ ル セル (セルの有効な終点ピ ン)、 出力ま たは
入出力ポー ト
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
198
第 4 章 : デザイ ンの作成
マルチサイ クル パス制約の追加
マルチサ イ ク ル パス例外は、 デザ イ ンの機能を反映す る 必要があ り 、 ア ク テ ィ ブ ク ロ ッ ク エ ッ ジが ク ロ ッ ク サ イ ク
ルご と でないパ ス に対 し て、 ソ ース ク ロ ッ ク 、 デス テ ィ ネーシ ョ ン ク ロ ッ ク 、 ま たは両方の ク ロ ッ ク に適用す る 必
要があ り ます。 パ ス の乗数は、 -start オプシ ョ ン を使用す る 場合は ソ ース ク ロ ッ ク 、 -end オプシ ョ ン を使用す る
場合はデス テ ィ ネーシ ョ ン ク ロ ッ ク に基づいて ク ロ ッ ク サ イ ク ル数で指定 し ます。 こ れは、 ク ロ ッ ク 周期値 と は関
係な く 、 開始点お よ び終点間のセ ッ ト ア ッ プお よ びホール ド 関係を修正す る 場合に特に便利です。
ホール ド は、 常にセ ッ ト ア ッ プ と 関連 し てい ま す。 そのため、 ほ と ん ど の場合、 セ ッ ト ア ッ プ関係を変更 し た後に
ホール ド 関係 も 別に調整す る 必要があ り ます。 2 つ目の制約に -hold オプシ ョ ンが必要なのは こ のためです。 こ の規
則に対す る 主な例外は、 位相シ フ ト ク ロ ッ ク 間の同期 CDC パス で、 こ の場合はセ ッ ト ア ッ プのみを変更す る 必要が
あ り ます。 次の使用例を参照 し て く だ さ い。
マルチサイ クル パス例外の使用状況
マルチサ イ ク ル パス例外の使用状況は、 主に 2 つに分類 さ れます。
•
「ホール ド を変更 し ない ま ま セ ッ ト ア ッ プ要件を緩和」
•
「シ フ ト さ れた ク ロ ッ ク 間のパ ス でセ ッ ト ア ッ プ解析エ ッ ジの調整」
ホール ド を変更 し ないま ま セ ッ ト ア ッ プ要件を緩和
こ れは、N サ イ ク ルご と に ク ロ ッ ク を ア ク テ ィ ブにす る ク ロ ッ ク イ ネーブル信号で ソ ースお よ びデス テ ィ ネーシ ョ ン
シーケ ン シ ャ ル セルが制御 さ れ る 場合に発生 し ます。 次に 3 つの VHDL 記述を示 し ます。
•
「例 1 : 開始点お よ び終点の両方に同 じ ク ロ ッ ク ( ク ロ ッ ク イ ネーブルは 3 サ イ ク ルご と にア ク テ ィ ブ)」
•
「例 2 : 低速 ク ロ ッ ク か ら 高速 ク ロ ッ ク へのパ ス」
•
「例 3 : 高速 ク ロ ッ ク か ら 低速 ク ロ ッ ク へのパ ス」
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
199
第 4 章 : デザイ ンの作成
例 1 : 開始点および終点の両方に同 じ ク ロ ッ ク ( ク ロ ッ ク イ ネーブルは 3 サイ クルご と にア ク
テ ィ ブ)
X-Ref Target - Figure 4-52
REGA
D
REGB
Q
D
EN
Q
EN
X13458
図 4-52 : 同 じ ク ロ ッ ク 信号で フ リ ッ プ フ ロ ッ プ を イ ネーブル
X-Ref Target - Figure 4-53
BEFORE
launch edge
Source clock (REGA)
Setup
Hold (default)
(default)
Hold (default)
active edges
Destination clock (REGB)
capture edge
Clock Enable
X13459
図 4-53 : セ ッ ト ア ッ プ/ホール ド チ ェ ッ クの タ イ ミ ン グ図
制約 :
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
X-Ref Target - Figure 4-54
AFTER
launch edge
Source clock (REGA)
Hold
Setup
Hold
Destination clock (REGB)
capture edge
Clock Enable
X13460
図 4-54 : マルチサイ クルの指定によ り 変更 さ れたセ ッ ト ア ッ プ/ホール ド チ ェ ッ ク
注記 : 1 つ目の コ マ ン ド では、 セ ッ ト ア ッ プ デス テ ィ ネーシ ョ ン エ ッ ジが 3 つ目のエ ッ ジに (デフ ォ ル ト の位置か ら
2 サ イ ク ル分) 移動 さ れ る のに合わせて、 ホール ド エ ッ ジ も 2 サ イ ク ル分移動 さ れます。 2 つ目の コ マ ン ド では、 2 サ
イ ク ル分逆方向に移動 し て、 ホール ド エ ッ ジが元の位置に戻 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
200
第 4 章 : デザイ ンの作成
例 2 : 低速ク ロ ッ ク から高速ク ロ ッ クへのパス
こ の場合、 デス テ ィ ネーシ ョ ン フ リ ッ プ フ ロ ッ プのみが ク ロ ッ ク イ ネーブルで制御 さ れます。 ク ロ ッ ク イ ネーブル
は常に低速 ク ロ ッ ク の立ち上が り エ ッ ジ と 同時にア ク テ ィ ブにな り ます。 セ ッ ト ア ッ プのパ ス の乗数は 3 です。
X-Ref Target - Figure 4-55
REG0
D
REG1
Q
D
Q
EN
X13461
図 4-55 : 低速から高速へのク ロ ッ ク乗せ換え
X-Ref Target - Figure 4-56
BEFORE
launch edge
Source clock (REGA)
Hold (default)
Setup default)
Hold (default)
active edges
Destination clock (REGB)
capture edge
Clock Enable (REGB)
X13462
図 4-56 : セ ッ ト ア ッ プ/ホール ド チ ェ ッ ク の タ イ ミ ング図 - 低速から高速ク ロ ッ クへの乗せ換え
制約 :
set_multicycle_path -from [get_pins REG0/C] -to [get_pins REG1/D] -setup 3 -end
set_multicycle_path -from [get_pins REG0/C] -to [get_pins REG1/D] -hold 2 -end
-end オプシ ョ ンは、 デ ス テ ィ ネーシ ョ ン ク ロ ッ ク (ま たはエ ン ド ポ イ ン ト ク ロ ッ ク ) に対 し て、 セ ッ ト ア ッ プお よ
びホール ド 解析エ ッ ジ を変更す る ためだけに使用 さ れます。 正 し い ソ ース ク ロ ッ ク エ ッ ジは既に使用 さ れてい ます。
X-Ref Target - Figure 4-57
AFTER
launch edge
Source clock (REGA)
Hold
Setup
Hold
Destination clock (REGB)
capture edge
Clock Enable (REGB)
X13463
図 4-57 : セ ッ ト ア ッ プ/ホール ド チ ェ ッ クの タ イ ミ ング図 - 低速から 高速ク ロ ッ ク への乗せ換え (マルチサイ ク ル制約後)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
201
第 4 章 : デザイ ンの作成
例 3 : 高速ク ロ ッ ク から低速ク ロ ッ クへのパス
こ れは前述の低速 ク ロ ッ ク か ら 高速 ク ロ ッ ク へのパ ス と 類似 し てい ますが、ソ ース ク ロ ッ ク のエ ッ ジのみが変更 さ れ
る 点が異な り ます。 制約の例は、 次の よ う にな り ます。
set_multicycle_path -from [get_pins REGA/C] -to [get_pins REGB/D] -setup 3 -start
set_multicycle_path -from [get_pins REGA/C] -to [get_pins REGB/D] -hold 2 -start
シ フ ト さ れた ク ロ ッ ク 間のパス でセ ッ ト ア ッ プ解析エ ッ ジの調整
2 つの ク ロ ッ ク を シ フ ト す る 主な理由は、 次を実行する ためです。
•
ク ロ ッ ク か ら 遅い ク ロ ッ ク ま でのセ ッ ト ア ッ プ パス を緩和する ため。 反対の方向のパ ス は厳 し く な り ます。 こ れ
は、 デバ イ ス イ ン タ ーフ ェ イ ス の タ イ ミ ン グ を調整する ため、 I/O イ ン タ ーフ ェ イ ス では よ く あ る 方法です。
•
フ ォ ワー ド ク ロ ッ ク と ソ ース同期 イ ン タ ーフ ェ イ ス のデー タ 間に 90 度の位相シ フ ト を作成する 。
デフ ォ ル ト では、 タ イ ミ ン グ エン ジ ン で ワ ース ト ケース のセ ッ ト ア ッ プ関係にな る ソ ースお よ びデス テ ィ ネーシ ョ
ン ク ロ ッ ク の立ち上が り エ ッ ジが使用 さ れます。 正の位相シ フ ト をデス テ ィ ネーシ ョ ン ク ロ ッ ク の定義に挿入す る
と 、 こ れが最 も 厳 し い正のパス要件にな る ので、 セ ッ ト ア ッ プ関係が周期 + 位相シ フ ト ではな く 位相シ フ ト にな り ま
す。 次に例を示 し ます。
Source clock waveform: rise @ 0ns, fall @ 5ns, rise @ 10ns
Destination clock waveform: rise @ 2.5ns, fall @ 7.5ns, rise @ 12.5ns
X-Ref Target - Figure 4-58
DEFAULT SETUP AND HOLD RELATIONSHIPS:
Source clock
Setup
Hold
Hold
Destination clock
1
2
3
X13464
図 4-58 : 位相シ フ ト さ れた ク ロ ッ ク のセ ッ ト ア ッ プ/ホール ド エ ッ ジ
デス テ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジ #2 がセ ッ ト ア ッ プ解析に有効なデス テ ィ ネーシ ョ ン ク ロ ッ ク エ ッ ジであ る と
判断 し た場合は、 マルチサ イ ク ル パ ス制約を定義す る 必要があ り ます。 2 つの位相シ フ ト さ れた ク ロ ッ ク 間のパ スす
べて を変更す る 必要があ る 場合は、 ク ロ ッ ク に制約を直接指定で き ます。
set_multicycle_path -from [get_clocks clk] -to [get_clocks clkshift] -setup 2
X-Ref Target - Figure 4-59
Source clock
Hold
Setup
Hold
Destination clock
1
2
3
X13465
図 4-59 : 位相シ フ ト さ れた ク ロ ッ クのセ ッ ト ア ッ プ/ホール ド エ ッ ジ - マルチサイ クルの指定後
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
202
第 4 章 : デザイ ンの作成
重要 : こ の場合、 set_multicycle_path 制約を追加 し て ホール ド 関係を修正す る 必要はあ り ません。 こ れは、 ホール ド 関
係がセ ッ ト ア ッ プ関係に対 し て既に正 し く 構築 さ れてお り 、 すべての立ち上が り エ ッ ジがア ク テ ィ ブにな っ てい る か
ら です。
合成への影響
set_multicycle_path 制約は合成でサポー ト さ れてお り 、 各 ク ロ ッ ク サ イ ク ルでア ク テ ィ ブにな ら ない長いパ ス
の制約を緩和す る こ と で、 セ ッ ト ア ッ プのみの タ イ ミ ン グ QoR (結果の品質) を かな り 改善で き ます。
イ ン プ リ メ ン テーシ ョ ンへの影響
合成に関 し ては、 マルチサ イ ク ル パ ス例外を使用す る と 、 タ イ ミ ン グ ド リ ブン のアルゴ リ ズ ムが実際の ク リ テ ィ カ
ル
パ ス に 集 中 で き ま す。 ホ ー ル ド 要件 は 配線中 に の み重要 と な り ま す。 セ ッ ト ア ッ プ 関係 は
set_multicycle_path 制約で調整で き ま すが、 ホール ド 関係には対応 し てお ら ず、 ワ ー ス ト ホール ド 要件は 2、
3ns 超え る と 満た し に く く な る こ と があ り ます。 こ の状況では、 ホール ド 違反は修正で き ますが、 配線に よ り 遅延が
追加 さ れ る ので、 セ ッ ト ア ッ プ ス ラ ッ ク に悪影響がで ます。
典型的な ミ ス
次に、 必ず回避す る 必要のあ る 典型的な ミ ス 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 3
set_multicycle_path -from [get_pins REGA/C] \
-to [get_pins REGB/D] -hold 2
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
203
第 4 章 : デザイ ンの作成
その他のア ド バン ス タ イ ミ ング制約
次の よ う なその他の タ イ ミ ン グ制約を設定す る と 、 デフ ォ ル ト の タ イ ミ ン グ解析を無視お よ び変更で き ます。
•
「ケース解析」
•
「 タ イ ミ ン グのデ ィ ス エーブル」
•
「デー タ チ ェ ッ ク 」
•
「最大 タ イ ム ボ ロ ー イ ン グ」
ケース解析
ケース解析 コ マ ン ド は、 デザ イ ンの機能モー ド を記述す る のに よ く 使用 さ れ、 コ ン フ ィ ギ ュ レーシ ョ ン レ ジ ス タ の よ
う に ロ ジ ッ ク に定数を設定す る こ と に よ り 設定 し ます。 こ の制約は、 入力ポー ト 、 ネ ッ ト 、 階層ピ ン、 ま たは リ ーフ
セル入力ピ ンに適用で き ます。 定数値が ロ ジ ッ ク を介 し て伝搬 さ れ る と 、 ア ク テ ィ ブにな る こ と がないパ ス の解析が
オ フ にな り ます。 フ ォ ルス パス例外 と 同様の効果があ り ます。
最 も よ く 使用 さ れ る のは、 マルチプ レ ク サーのセ レ ク ト ピ ン を 0 か 1 に設定 し て、 2 つのマルチプ レ ク サー入力の う
ちの 1 つだけが伝搬 さ れ る よ う にす る 場合です。 次の例では、 mux/S お よ び mux/I1 を介す る パ ス の解析がオ フ に
な り ます。
set_case_analysis 0 [get_pins mux/S]
タ イ ミ ングのデ ィ ス エーブル
デ ィ ス エーブル タ イ ミ ン グ コ マ ン ド では、 タ イ ミ ン グ デー タ ベース の タ イ ミ ン グ アー ク がオ フ にな り 、 そのアー ク
を介 し た解析が完全に回避 さ れます。 デ ィ ス エーブル さ れた タ イ ミ ン グ アー ク は、 report_disable_timing コ マ
ン ド で レ ポー ト で き ます。
注意 : デ ィ ス エーブル タ イ ミ ン グ コ マ ン ド は注意 し て使用 し ない と 、パ ス が意図 し た以上に分割 さ れて し ま う 可能性
があ り ます。
デー タ チ ェ ッ ク
set_data_check コ マ ン ド では、 2 つの ピ ン間のセ ッ ト ア ッ プ ま たはホール ド タ イ ミ ン グ チ ェ ッ ク と 同等のチ ェ ッ
ク が設定 さ れ、 非同期 イ ン タ ーフ ェ イ ス に制約を付けて レ ポー ト す る ために よ く 使用 さ れます。 こ の コ マ ン ド は、 ア
ド バン ス ユーザー用です。
最大 タ イ ム ボロー イ ング
set_max_time_borrow コ マ ン ド では、ラ ッ チが次の段 ( ラ ッ チ後の ロ ジ ッ ク ) か ら 借用可能な最大時間が設定 さ れ、
前の段 ( ラ ッ チ前の ロ ジ ッ ク ) に渡 さ れます。 ラ ッ チはハー ド ウ ェ アではテ ス ト お よ び検証が困難なので、 通常推奨 さ
れません。 こ の コ マ ン ド は、 ア ド バン ス ユーザー用です。
ブ ロ ッ ク レ ベルの制約の作成
チーム プ ロ ジ ェ ク ト の場合、 最上位デザ イ ンの主なブ ロ ッ ク それぞれに個別の制約フ ァ イ ルを作成す る と 便利です。
こ れ ら のブ ロ ッ ク は個別に開発お よ び検証 さ れた後、 最終的に 1 つま たは多 く の最上位デザ イ ンに統合 さ れます。
ブ ロ ッ ク レベル制約は、 最上位制約 と は別に作成す る 必要があ り 、 さ ま ざ ま な コ ン テ キ ス ト で使用で き る よ う に、 で
き る だけ一般的に記述す る 必要があ り ます。 ま た、 こ れ ら はブ ロ ッ ク の境界を超え る ロ ジ ッ ク には影響 し ない よ う に
す る 必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
204
第 4 章 : デザイ ンの作成
ブ ロ ッ ク レ ベルの制約の規則
ブ ロ ッ ク レベルの制約は、 次の よ う な規則に従 う 必要があ り ます。
1.
ク ロ ッ ク がデザ イ ンの最上位で作成 さ れ る よ う にす る 場合は、ブ ロ ッ ク レベルの制約内で ク ロ ッ ク を定義 し ない
よ う に し ます。
ブ ロ ッ ク 内では、 get_clocks -of_objects コ マ ン ド を使用 し て ク エ リ し ます。 こ の コ マ ン ド は、 デザ イ ン
の特定オブジ ェ ク ト を介す る ク ロ ッ ク すべて を返 し ます。 次はその例です。
set blockClock [get_clocks -of_objects [get_ports clkIn]]
ク ロ ッ ク をブ ロ ッ ク 内で定義す る 必要があ る 場合は、イ ン ス タ ン シエー ト 済み入力/入出力バ ッ フ ァ ーを駆動す る
入力/入出力ポー ト か、 ク ロ ッ ク を作成/変換す る セルの出力 (MMCM/PLL ま たは タ イ ミ ン グ ツールで自動的に処
理 さ れ る 特別バ ッ フ ァ ーは除 く ) に対 し て定義する 必要があ り ます。 次はその例です。
2.
°
入力バ ッ フ ァ ーの付いた入力 ク ロ ッ ク
°
ク ロ ッ ク 分周器
°
GT 復元 ク ロ ッ ク
ポー ト が最上位ポー ト に直接接続 さ れ、 I/O バ ッ フ ァ ーが IP 内に イ ン ス タ ン シエー ト さ れてい る 場合にのみ、 入
力お よ び出力遅延を指定 し ます。 次はその例です。
°
入力バ ッ フ ァ ーの付いた入力デー タ ポー ト
°
出力バ ッ フ ァ ーの付いた出力デー タ ポー ト
3.
IP 内に制限 さ れていない 2 つの ク ロ ッ ク に タ イ ミ ン グ例外を定義 し ない よ う に し ます。
4.
ク ロ ッ ク 名は最上位の ク ロ ッ ク 名に基づいて変わ る ので、 ク ロ ッ ク は名前で指定 し ない よ う に し て く だ さ い。 ブ
ロ ッ ク が複数回 イ ン ス タ ン シエー ト さ れ る 場合 も 名前で指定 し ないで く だ さ い。
5.
ブ ロ ッ ク が同 じ 最上位デザ イ ンで複数回 イ ン ス タ ン シエー ト で き る 場合、 配置制約は追加 し ないで く だ さ い。
ブ ロ ッ ク レ ベル制約の最上位デザイ ンへの読み込み
Vivado Design Suite には、 最上位デザ イ ンでブ ロ ッ ク レベル制約を読み込むための制約適用範囲限定 メ カ ニズ ムがあ
り ます。 こ の メ カ ニズ ムは、 current_instance コ マ ン ド の動作に基づいてお り 、 名前ベース の ク エ リ では現在の
イ ン ス タ ン ス に含まれ る オブジ ェ ク ト のみが返 さ れます。
ブ ロ ッ ク レベルの制約を読み込む と 、 現在の イ ン ス タ ン ス がブ ロ ッ ク イ ン ス タ ン ス に設定 さ れ る ので、 そのブ ロ ッ
ク に属す る オブジ ェ ク ト のみに制約を付け る こ と がで き ます。 こ の規則には、 次の よ う な例外があ り ます。
•
タ イ ミ ング
ク ロ ッ ク はグ ロ ーバルで、 ブ ロ ッ ク 内か ら も 含め、 デザ イ ンの ど こ か ら で も ク エ リ 可能です。
get_clocks コ マ ン ド は、 ブ ロ ッ ク 外の ク ロ ッ ク を ク エ リ 可能なので、 使用には注意が必要です。
•
ブ ロ ッ ク モジ ュ ール定義のポー ト は、 get_ports コ マ ン ド で ク エ リ 可能です。 ブ ロ ッ ク イ ン ス タ ン ス が ど の よ
う に最上位デザ イ ンで接続 さ れ る かに よ っ て、 返 さ れ る オブジ ェ ク ト タ イ プは異な り ます。
°
ブ ロ ッ ク ポー ト が最上位ポー ト に直接接続 さ れる場合、 get_ports コ マン ド で最上位ポー ト が返 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
205
第 4 章 : デザイ ンの作成
X-Ref Target - Figure 4-60
top
IP
IP
IBUF
IBUF
X13443
図 4-60 : 最上位ポー ト に直接接続 さ れたブ ロ ッ ク ポー ト に対する get_ports
°
ブ ロ ッ ク ポー ト が最上位ポー ト に直接接続 さ れない場合、get_ports コ マ ン ド でブ ロ ッ ク イ ン タ ーフ ェ イ
ス の該当す る 階層ピ ンが返 さ れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
206
第 5章
イ ン プ リ メ ン テーシ ョ ン
イ ン プ リ メ ン テーシ ョ ンの概要
デバ イ ス を選択 し 、 IP を選択お よ び コ ン フ ィ ギ ュ レーシ ョ ン し て、 RTL お よ び制約を記述 し た ら 、 イ ンプ リ メ ン テー
シ ョ ン を実行 し ます。 イ ンプ リ メ ン テーシ ョ ンでは、 デバ イ ス のプ ロ グ ラ ムに使用す る ビ ッ ト ス ト リ ーム を生成 し ま
す。 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス では、 第 1 章 「概要」 で説明 し た よ う に、 反復作業が必要な場合があ り ます。
こ の章では、 イ ンプ リ メ ン テーシ ョ ンの各段階を説明 し 、 特別な注意が必要な点を指摘 し 、 問題を特定 し て回避す る
ための ヒ ン ト お よ び手法を示 し ます。
合成
合成では、 RTL お よ び タ イ ミ ン グ制約を入力 し 、 RTL と 機能的に同等な最適化 さ れたネ ッ ト リ ス ト を生成 し ます。 通
常、 合成ツールでは、 任意の有効な RTL を使用 し て、 その ロ ジ ッ ク を作成で き ます。 次に、 デザ イ ン を合成す る 際
の注意点のい く つか を示 し ます。 合成の詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 16]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado デザ イ ン フ ロ ーの概要
デザイ ンの移行での合成属性
DONT_TOUCH や MAX_FANOUT な ど の合成属性は、 QoR (結果の品質) に大 き く 影響 し ます。 こ れ ら の属性の設定
には注意が必要です。 プ ロ ジ ェ ク ト を異な る 合成ツールで実行 し てお り 、 Vivado® Design Suite 合成で実行す る よ う プ
ロ ジ ェ ク ト を移行す る 場合は、 既存の属性に注意 し て く だ さ い。 以前の ツールで最適化を制御す る ために追加 さ れた
すべての属性を削除 し て く だ さ い。
KEEP、 DONT_TOUCH、 MAX_FANOUT な ど の属性は、 RTL が最初に作成 さ れた時には通常使用 さ れ ま せん。 こ れ
ら の属性は、 最高のパフ ォーマ ン ス を得 る ために、 合成ツールを調整す る ために使用 さ れます。 合成ツールに よ っ て
最適化方法は異な る ので、 こ れ ら の属性を使用す る と 、 新 し い ツールに移行 し た と き に QoR に悪影響を与え る 可能
性があ り ます。
推奨 : 新 し い RTL か ら 開始 し 、 新 し い ツールお よ び要件に合っ た属性を適用 し て く だ さ い。
正確な タ イ ミ ング制約
Vivado Design Suite 合成は タ イ ミ ン グ ド リ ブ ン なので、 タ イ ミ ン グ制約が正 し い こ と を確認 し て く だ さ い。 詳細は、
「ベース ラ イ ン制約の作成」 を参照 し て く だ さ い。 デザ イ ン で タ イ ミ ン グ例外が必要な場合は、 それ ら も 設定 し ます。
XDC フ ァ イ ルに含ま れ る 制約が自動的に合成に供給 さ れ、 タ イ ミ ン グ ド リ ブ ン の run が実行 さ れ ます。 合成で使用
す る 制約 と 配置配線で使用す る 制約が異な る 場合は、 合成 と 配置配線で異な る パス が処理 さ れ る こ と にな り 、 タ イ ミ
ン グ ク ロ ージ ャ を達成す る のが困難にな り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
207
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
HDL コ ー ド の確認
合成後に希望の QoR が得 ら れない場合、 HDL コ ー ド をチ ェ ッ ク し 、 推論 さ れた ロ ジ ッ ク で次を確認 し ます。
•
セ ッ ト や リ セ ッ ト な ど の信号が必要か ど う かを評価 し ます。 必要な場合は、 同期信号 (ア ク テ ィ ブ High) を使用
す る 方が適切です。
•
DSP お よ びブ ロ ッ ク RAM には内部レ ジ ス タ があ る ので、 こ れ ら の レ ジ ス タ を使用 し ます。
HDL コ ー ド が ど の よ う に推論に影響 し 、 QoR に影響す る か を理解す る には、 第 4 章 「デザ イ ンの作成」 を参照 し て
く だ さ い。
合成済みデザイ ンのデバ ッ グ
合成後のネ ッ ト リ ス ト の動作が必要な動作 と 異な る 場合は、 問題の原因をデバ ッ グする 必要があ り ます。
エ ラ ボレー ト 済みデザイ ンの使用
エ ラ ボ レー ト 済みデザ イ ンは、 デザ イ ン を解析ま たはデバ ッ グす る 最初の段階で、 RTL コ ー ド その も のを直接表 し た
も のです。エ ラ ボ レー ト 済みデザ イ ン表示を使用す る こ と に よ り 、合成を実行す る 前にデザ イ ン をデバ ッ グで き ます。
こ れに よ り 、 デザ イ ン フ ロ ーの初期段階で RTL コ ー ド の問題を検出で き ます。 た と えば、 次の図に示す よ う なエ ラ
ボ レー ト 済みデザ イ ンがあ る と し ます。
X-Ref Target - Figure 5-1
図 5-1 : エ ラ ボ レー ト 済みデザイ ンの例
out2_reg は、 rst1 信号に よ り イ ネーブルにな り ます。 こ れは コ ー ド エ ラ ーであ る と 考え ら れます。 ク ロ ス プ ロ ーブ機
能に よ り 、 エ ラ ボ レー ト 済みデザ イ ンか ら その ロ ジ ッ ク を作成 し た RTL を直接表示で き ます。
エ ラ ボ レー ト 済みデザ イ ンは、 タ イ ミ ン グ を満た し ていないデザ イ ンで も 役立ち ます。 デザ イ ンで合成を実行 し 、 ク
リ テ ィ カル パ ス を特定 し た ら 、 同 じ パ ス を エ ラ ボ レー ト 済みデザ イ ンで検索 し ます。 こ れに よ り 、 デザ イ ンの タ イ ミ
ン グ を向上す る RTL の変更を見つけ る こ と がで き ます。 大型 MUX 構造、 パ イ プ ラ イ ン処理 さ れていない DSP ま た
はブ ロ ッ ク RAM 構造は、 エ ラ ボ レー ト 済みデザ イ ンで簡単に特定で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
208
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
エ ラ ボ レー ト 済みデザ イ ン を開 く には、 Flow Navigator で [Open Elaborated Design] を ク リ ッ ク し ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル のデザ イ ン入力』 (UG895) [参照 8] の 「RTL デザ イ ン
のエ ラ ボ レーシ ョ ン」 を参照 し て く だ さ い。
合成済みデザイ ンの使用
エ ラ ボ レー ト 済みデザ イ ン と 同様、 合成済みデザ イ ン も 合成を完了 し たデザ イ ン をデバ ッ グする のに有益です。 合成
済みデザ イ ン を開 く には、 デザ イ ン を合成 し た後、 Flow Navigator で [Open Synthesized Design] を ク リ ッ ク し ます。
こ の表示は、 ネ ッ ト リ ス ト の作成に使用 さ れたザ イ リ ン ク ス プ リ ミ テ ィ ブに基づ き ます。 合成済みデザ イ ンは、 RTL
が ど の よ う にプ リ ミ テ ィ ブに変換 さ れたかを確認す る のに使用で き ます。 プ リ ミ テ ィ ブのすべてのプ ロ パテ ィ が リ ス
ト さ れます。
次の よ う な例を考え ます。
X-Ref Target - Figure 5-2
図 5-2 : 合成済みデザイ ンの例
out1_reg のプ ロ パテ ィ (図の左下) を見 る と 、DSP48E1 で MREG お よ び PREG と い う エンベデ ッ ド パ イ プ ラ イ ン レ
ジ ス タ が使用 さ れてい る のがわか り ます。 こ れは、 デザ イ ンが ど の よ う にパ イ プ ラ イ ン処理 さ れてい る か を判断す る
のに有益です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
209
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ま た、 合成済みデザ イ ンは、 デザ イ ンの タ イ ミ ン グ を最初に解析す る 段階で も あ り ます。 合成後の タ イ ミ ン グは非常
に重要で、 イ ンプ リ メ ン テーシ ョ ン を実行す る 前に タ イ ミ ン グのボ ト ルネ ッ ク と な る 可能性のあ る 部分があ る か ど う
か を確認で き ます。 合成済みデザ イ ン を開 き 、 [Tools] → [Timing] → [Report Timing Summary] を ク リ ッ ク し て タ イ ミ
ン グ情報を表示 し ます。 こ の レ ポー ト には、 次の よ う な有益な情報が含まれます。
•
各 ク ロ ッ ク お よ び ク ロ ッ ク 間のパ ス のサマ リ
•
制約が適用 さ れていないパ ス ま たは I/O
•
タ イ ミ ン グ制約が設定 さ れていない ク ロ ッ ク
[Tcl Console] ウ ィ ン ド ウ か ら も 、 タ イ ミ ン グ制約が有効であ る か を確認で き ます。 ザ イ リ ン ク ス では、 常に タ イ ミ ン
グ制約が有効であ る こ と を確認す る こ と をお勧め し ます。 制約が有効でない場合、 Vivado ツールで正 し いパ ス が処理
さ れない可能性があ り ます。
特定のパ ス に対 し て report_timing コ マ ン ド を実行 し て、 そのパ ス に設定 し た制約が適用 さ れてい る か を確認で
き ます。 た と えば、 次の制約を適用 し よ う と し てい る と し ます。
set_false_path -from [get_pins inst1/pin1] -through [get_cells inst2]
こ の場合、 上記の制約を適用 し た後に次の コ マ ン ド を実行 し て、 パ ス の ス ラ ッ ク が infinite と 表示 さ れ る こ と を確認
し ます。
report_timing -from [get_pins inst1/pin1] -through [get_cells inst2]
合成済みデザ イ ンの [Hierarchy] ウ ィ ン ド ウ を表示する と 、 異な る 階層レベルが表示 さ れます。
こ れは、 エ リ アの問題があ る と 思われ る デザ イ ン をデバ ッ グす る のに有益です。 異な る ブ ロ ッ ク の大 き さ は、 含まれ
る プ リ ミ テ ィ ブの数に基づ き ます。 [Netlist] ウ ィ ン ド ウ で各階層レベルを ク リ ッ ク し 、 [Cell Properties] ウ ィ ン ド ウ の
[Statistics] ビ ュ ーを ク リ ッ ク す る と 、 その階層で使用 さ れてい る プ リ ミ テ ィ ブの タ イ プ と 数を確認で き ます。 こ れ ら
の数値は、 その階層お よ び下位階層に含まれ る プ リ ミ テ ィ ブの数を示 し ます。 こ のビ ュ ーを使用す る と 、 エ リ アが大
き く な り すぎ てい る か を簡単に確認で き ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク
ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21] の 「 ロ ジ ッ ク 解析機能」 を参照 し て く だ さ い。
合成属性
合成属性を使用す る と 、 ロ ジ ッ ク の推論を制御で き ます。 合成アルゴ リ ズ ムはほ と ん ど のデザ イ ン で最適な結果が得
ら れ る よ う に設定 さ れてい ますが、 要件の異な る デザ イ ン も あ り ます。 属性は通常、 QoR を向上する ため、 少 し 異な
る デザ イ ン を生成す る ために ツールを調整す る のに使用 し ます。 次に例を示 し ます。
•
MAX_FANOUT 属性は、 特定のネ ッ ト の最大フ ァ ン ア ウ ト を定義 し ます。
•
RAM_STYLE 属性は、 RAM を特定の方法で イ ンプ リ メ ン ト する よ う 定義 し ます。
まず属性を使用せずに ツールを実行 し 、 その結果お よ びデザ イ ン要件に応 じ て、 合成属性を追加す る こ と をお勧め し
ます。
1 つの信号に複数の属性を設定す る 場合、 関連のあ る 信号に異な る 属性を設定する 場合は、 注意が必要です。 ツール
は こ れ ら の 属 性 を で き る だ け 適 用 す る よ う 実 行 さ れ ま す が、 競 合 す る 属 性 が 設 定 さ れ て い る 場 合
(KEEP_HIERARCHY と MAX_FANOUT な ど)、 適用で き ない こ と も あ り ます。
通常、 属性が ツールで認識 さ れていれば (KEEP な ど)、 ツールで使用 さ れ、 結果がネ ッ ト リ ス ト に反映 さ れ ま すが、
属性自体は出力ネ ッ ト リ ス ト には含まれません。 属性がツールで認識 さ れない場合は、 フ ロ ーの後の段階で使用 さ れ
る と 想定 さ れます。 こ の場合、 属性 と その値が出力ネ ッ ト リ ス ト に含まれます。
合成でサポー ト さ れ る 属性については、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 16] を参照 し て く
だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
210
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
次の属性は、 特に注意を払わない と 問題を引 き 起 こ す可能性があ る ので、 詳 し く 説明 し ます。
•
「KEEP お よ び DONT_TOUCH」
•
「MAX_FANOUT」
KEEP および DONT_TOUCH
KEEP お よ び DONT_TOUCH は、 デザ イ ン をデバ ッ グす る 際に有益な属性です。 こ れ ら の属性が配置 さ れたオブジ ェ
ク ト は、 最適化で削除 さ れ る こ と はあ り ません。
•
KEEP 属性は合成ツールで使用 さ れ、 ネ ッ ト リ ス ト でプ ロ パテ ィ と し ては渡 さ れません。 KEEP 属性は、 合成中
に特定の信号に対す る 特定の最適化を オ フ に し 、 その信号を保持する な ど、 合成ツールの動作を調整す る ために
使用 し ます。
•
DONT_TOUCH 属性は、 合成ツールで使用 さ れた後、 配置配線ツールに も 渡 さ れます。
DONT_TOUCH 属性を階層レベルに設定する か、 信号に設定する かで違いがあ り ます。 こ の属性が信号に設定 さ れて
い る 場合、 信号が保持 さ れます。 こ の属性が階層レベルに設定 さ れてい る 場合、 階層の境界は最適化 さ れず、 階層を
介す る 定数の伝搬は実行 さ れませんが、 階層内での最適化は実行 さ れます。
こ れ ら の属性の設定には注意が必要です。 RAM の出力を受信す る レ ジ ス タ に KEEP 属性を設定す る と 、 レ ジ ス タ が
RAM に統合 さ れな く な り 、 ブ ロ ッ ク RAM が推論 さ れな く な り ます。 上の階層の ト ラ イ ス テー ト 出力ま たは双方向信
号を駆動す る 階層に、 こ れ ら の属性を設定 し ないで く だ さ い。 こ れは非常に重要です。 駆動信号 と ト ラ イ ス テー ト 状
態が こ の階層レベルにあ る場合、 IOBUF を作成する には階層を変更する必要があ る ため、 IOBUF が推論 さ れません。
MAX_FANOUT
MAX_FANOUT 属性は、 フ ァ ン ア ウ ト の制限を満たすため、 強制的に ロ ジ ッ ク を複製 し ます。 ツールで ロ ジ ッ ク は複
製 で き ま す が、 入力 ま た は ブ ラ ッ ク ボ ッ ク ス は複製 で き ま せ ん。 デザ イ ン へ の 直接入力 で 駆動 さ れ る 信号に
MAX_FANOUT 属性が設定 さ れてい る と 、 ツールで こ の制約を処理で き ません。
MAX_FANOUT 属性が設定 さ れてい る 信号を注意 し て解析 し て く だ さ い。 DONT_TOUCH 属性が設定 さ れてい る レ ジ
ス タ で駆動 さ れ る 信号、 ま た は DONT_TOUCH 属性が設定 さ れ て い る 異 な る 階層に あ る 信号 を 駆動す る 信号に
MAX_FANOUT 属性を設定 し て も 、 MAX_FANOUT 属性は適用 さ れません。
推奨 : 合成では、 MAX_FANOUT 属性はあ ま り 使用 し ないで く だ さ い。 Vivado ツールの phys_opt_design コ マ ン
ド でデザ イ ンの配置が よ り 的確に把握 さ れ る ので、 合成 よ り も ロ ジ ッ ク の複製を効果的に実行で き ます。 特定の フ ァ
ン ア ウ ト が必要な場合は、 通常 コ ー ド に手動で レ ジ ス タ を追加す る 方が適切な結果が得 ら れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
211
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ボ ト ムア ッ プ フ ロー
多 く の場合、 コ ンパ イ ル済みの下位階層を Vivado ツールに イ ン ポー ト する ボ ト ム ア ッ プ フ ロ ーが適 し てい ます。 ボ
ト ム ア ッ プ フ ロ ーでは、 イ ン ポー ト さ れたブ ロ ッ ク は合成で毎回コ ンパ イ ルお よ びマ ッ プ さ れないので、実行時間が
短縮 さ れます。 一方、 合成で境界を越えた最適化が許容 さ れない場合、 QoR に影響する 可能性があ り ます。
下位ネ ッ ト リ ス ト の作成
ボ ト ム ア ッ プ フ ロ ーを使用す る には、 まず下位ネ ッ ト リ ス ト を作成 し ます。 こ れには、 下位階層用のプ ロ ジ ェ ク ト を
デザ イ ンの最上位 と し て指定 し 、 階層の こ の部分に適用 さ れ る 制約フ ァ イ ル も 指定 し ます。 合成の前に、 次を実行 し
ます。
1.
Flow Navigator で [Synthesis Settings] を ク リ ッ ク し ます。
2.
[More Options] フ ィ ール ド に、 次を入力 し ます。
-mode out_of_context
こ の設定に よ り 、 合成で I/O バ ッ フ ァ ーは挿入 さ れません。
フ ロ ーの後の段階で残 り のデザ イ ンに挿入す る 際に、 デザ イ ンのパ ッ ド に接続 さ れていない IBUF ま たは OBUF コ ン
ポーネ ン ト があ る と エ ラ ーが発生す る ので、 こ の設定が必要です。
注意 : デザ イ ンに双方向信号ま たは出力 ト ラ イ ス テー ト があ る か ど う か を確認 し て く だ さ い。ザ イ リ ン ク ス ラ イ ブ ラ
リ の コ ン ポーネ ン ト で ト ラ イ ス テー ト を処理で き る のは IOBUF ま たは OBUFT のみなので、 I/O 挿入を オ フ にす る と
エ ラ ーが発生 し ます。
下位ネ ッ ト リ ス ト で双方向信号ま たは出力 ト ラ イ ス テー ト が必要な場合は、 RTL に IOBUF ま たは OBUFT コ ン ポー
ネ ン ト を イ ン ス タ ン シエー ト し て く だ さ い。 out_of_context モー ド を オンに し た場合で も 、 イ ン ス タ ン シエー ト
さ れた I/O バ ッ フ ァ ーは削除 さ れません。
ヒ ン ト : out_of_context は、 Vivado Design Suite の -mode オプシ ョ ンの設定です。 ほかの合成ツールで も こ の フ
ロ ーはサポー ト さ れますが、 その方法は異な り ます。 ほかの ツールで こ の フ ロ ーを使用す る 方法は、 サー ド パーテ ィ
合成ツールのマニ ュ アルを参照 し て く だ さ い。
合成を実行 し た ら 、 デザ イ ンの こ の部分のネ ッ ト リ ス ト と し て使用す る .edf フ ァ イ ルを作成 し ます。
1.
合成済みデザ イ ン を開 き ます。
2.
Tcl コ ン ソ ールに次を入力 し ます。
write_edif <name>.edf
下位ネ ッ ト リ ス ト を使用 し た最上位の実行
下位ネ ッ ト リ ス ト ( 「ブ ラ ッ ク ボ ッ ク ス」 と 呼ばれ る ) を イ ン ス タ ン シエー ト し て最上位を実行す る には、 まずネ ッ
ト リ ス ト を イ ン ス タ ン シエー ト し ます。 こ の方法は、 VHDL と Verilog で異な り ます。 ど ち ら の場合で も 、 下位ポー
ト を記述す る 必要があ り ます。 VHDL では、 component 文を使用 し てブ ラ ッ ク ボ ッ ク ス を記述 し ます。
component <name>
port (in1, in2 : in std_logic;
out1 : out std_logic);
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
212
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
Verilog には VHDL の コ ン ポーネ ン ト に相当す る も のはないので、 ラ ッ パー フ ァ イ ルを使用 し て ツールにポー ト を示
し ます。 こ の ラ ッ パー フ ァ イ ルは、 通常の Verilog フ ァ イ ル と 同 じ ですが、 ポー ト の リ ス ト のみが含まれます。
module <name> (in1, in2, out1);
input in1, in2;
output out1;
endmodule
ど ち ら の場合で も 、 ポー ト 定義が正 し い こ と を確認 し て く だ さ い。 ポー ト 定義が一致 し ない場合、 合成後に下位ネ ッ
ト リ ス ト が挿入 さ れ る と き にエ ラ ーが発生 し ます。
デザイ ンの統合
下位ネ ッ ト リ ス ト が作成 さ れ、最上位に正 し く イ ン ス タ ン シエー ト さ れた ら 、下位階層を Vivado Design Suite プ ロ ジ ェ
ク ト に追加 し ます。 下位階層は、 最上位で合成が実行 さ れた後に フ ロ ーに追加 さ れ、 配置配線は通常どお り 実行 さ れ
ます。
ネ ッ ト リ ス ト に下位 IOBUF があ る 場合、ブ ラ ッ ク ボ ッ ク ス の ピ ンに IOUBF を挿入 し ない よ う に合成ツールに指定す
る 必要があ り ます。 合成中に特定のポー ト に IOBUF が挿入 さ れない よ う にす る には、 BUFFER_TYPE 属性を設定 し
ます。
ほかの合成ツールで も 、 ボ ト ム ア ッ プ フ ロ ーがサポー ト さ れます。 サー ド パーテ ィ の合成ツールで こ の フ ロ ーを使用
す る 方法は、 該当す る ツールのマニ ュ アルを参照 し て く だ さ い。
合成後の処理
合成で生成 さ れ る ネ ッ ト リ ス ト が質の良い も ので、 後続の フ ロ ーで問題を引 き 起 こ さ ない こ と を確認 し て く だ さ い。
残 り の イ ンプ リ メ ン テーシ ョ ン フ ロ ーに進む前に確認する 必要のあ る 重要項目は、 次の と お り です。
•
「DRC の確認お よ び修正」
•
「合成 ロ グの確認」
•
「 タ イ ミ ン グ制約の確認」
•
「合成後に タ イ ミ ン グ を満たす」
DRC の確認および修正
report_drc コ マ ン ド を使用す る と 、 一般的なデザ イ ン の問題お よ びエ ラ ーを確認す る デザ イ ン ルール チ ェ ッ ク
(DRC) が実行 さ れます。 複数のルール デ ッ ク があ り ます。 default ルール デ ッ ク は、 次を実行 し ます。
•
合成済みネ ッ ト リ ス ト に関す る DRC を実行 し ます。
•
I/O、 BUFG、 お よ びその他の配置特定の要件を確認 し ます。
•
MGT、 IODELAY、 MMCM、 PLL な ど のプ リ ミ テ ィ ブの属性お よ び配線の基本的なチ ェ ッ ク を実行 し ます。
default ルール デ ッ ク に加え、 methodology_checks お よ び timing_checks ルール デ ッ ク も 実行 し て く だ さ い。
推奨 : イ ン プ リ メ ン テーシ ョ ン フ ロ ーの後の方での タ イ ミ ン グ ま たは ロ ジ ッ ク 関連の問題を回避す る ため、 DRC 違
反をデザ イ ン プ ロ セ ス ので き る だけ早い段階で確認 し て修正 し て く だ さ い。 必ず methodology_checks ルール デ ッ ク
も 実行 し て く だ さ い ( 「設計手法 DRC の実行」 を参照)。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
213
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
合成ログの確認
合成 ロ グ フ ァ イ ルを参照 し 、ツールで生成 さ れた メ ッ セージがデザ イ ン で意図 し た も の と 一致 し てい る か ど う か を確
認す る 必要があ り ます。 ク リ テ ィ カル警告お よ び警告を特に注意 し て確認 し て く だ さ い。 ほ と ん ど の場合、 信頼性の
高い合成結果を得 る ため、 ク リ テ ィ カル警告を解決す る 必要があ り ます。
注意 : あ る メ ッ セージが 100 回以上表示 さ れ る 場合、 合成 ロ グ フ ァ イ ルには最初の 100 回のみが記述 さ れます。 こ の
制限は、 Tcl コ マ ン ド set_param messaging.defaultLimit を使用 し て変更で き ます。
タ イ ミ ング制約の確認
有効な タ イ ミ ン グ制約お よ び タ イ ミ ン グ例外を設定す る 必要があ り ます。 不適切な制約を使用する と 、 実行時間が長
く な り 、 パフ ォーマ ン ス の問題やハー ド ウ ェ アでのエ ラ ーの原因 と な り ます。
推奨 : タ イ ミ ン グ制約に関す る ク リ テ ィ カル警告お よ び警告をすべて確認 し て く だ さ い。 こ れ ら の警告は、 制約が読
み込ま れていない こ と や適切に適用 さ れなかっ た こ と を示 し ます。
詳細は、 第 4 章の 「デザ イ ン制約の分類」 を参照 し て く だ さ い。
合成後に タ イ ミ ン グ を満たす
次のセ ク シ ョ ンに、 合成後に タ イ ミ ン グ を満たす方法を示 し ます。
•
「違反に関す る ガ イ ド ラ イ ン」
•
「 ロ ジ ッ ク レベル数が多い場合の処理」
•
「使用率の確認」
•
「 ク ロ ッ ク ツ リ ーの確認」
違反に関する ガ イ ド ラ イ ン
重要 : 合成後の タ イ ミ ン グ を解析し て、フ ローを続行する前に解決する必要のあ るデザ イ ンの問題を特定し て く だ さ い。
HDL の変更は、 QoR に大 き く 影響す る 傾向があ る ので、 タ イ ミ ン グ を短期間で満たす こ と がで き る よ う にす る ため、
イ ンプ リ メ ン テーシ ョ ンの前に問題を解決 し てお く のが適切です。 タ イ ミ ン グ パ ス を解析する 際は、次の事項に特に
注意 し て く だ さ い。
•
タ イ ミ ン グが満た さ れていない最悪のパ ス に最多数表示 さ れ る セルま たはネ ッ ト
•
レ ジ ス タ が付け ら れていないブ ロ ッ ク RAM を ソ ース と する パ ス
•
SRL を ソ ース と す る パ ス
•
レ ジ ス タ が付け ら れていないカ ス ケー ド 接続 さ れた DSP ブ ロ ッ ク
•
ロ ジ ッ ク レベル数の多いパス
•
フ ァ ン ア ウ ト の大 き いパ ス
詳細は、 「 タ イ ミ ン グ ク ロ ージ ャ 」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
214
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ロ ジ ッ ク レ ベル数が多い場合の処理
長い ロ ジ ッ ク パ ス を特定す る と 、 困難な QoR の問題を調べ る のに役立ち ます。 合成後のネ ッ ト 遅延予測は、 最適な
配置に近い も のです。 ロ ジ ッ ク レベル遅延の大 き いパ ス が タ イ ミ ン グ を満た し てい る かを評価する には、 ネ ッ ト 遅延
な し で タ イ ミ ン グ レ ポー ト を生成 し ます。 ネ ッ ト 遅延な し で タ イ ミ ン グ違反が発生 し てい る パ ス では、 タ イ ミ ン グ
ク ロ ージ ャ を達成す る こ と はで き ません。
詳細は、 「 タ イ ミ ン グ ク ロ ージ ャ 」 を参照 し て く だ さ い。
使用率の確認
LUT、 フ リ ッ プ フ ロ ッ プ、 ブ ロ ッ ク RAM、 お よ び DSP コ ン ポーネ ン ト の使用率を それぞれ確認す る こ と が重要です。
LUT/フ リ ッ プ フ ロ ッ プの使用率が低いデザ イ ンで も 、 ブ ロ ッ ク RAM の使用率が高い と 、 配置が困難にな る こ と があ
り ま す。 report_utilization コ マ ン ド を使用す る と 、 すべてのデザ イ ン オブジ ェ ク ト に対 し てそれぞれ個別の
セ ク シ ョ ン を含む包括的な使用率レ ポー ト が生成 さ れます。
ク ロ ッ ク ツ リ ーの確認
こ のセ ク シ ョ ンでは、 ク ロ ッ ク ツ リ ーの確認について説明 し ます。 次の内容が含まれます。
•
「 ク ロ ッ ク バ ッ フ ァ ーの使用率」
•
「 ク ロ ッ ク ツ リ ーの ト ポ ロ ジ」
ク ロ ッ ク バ ッ フ ァ ーの使用率
report_clock_utilization コ マ ン ド を 使用す る と 、 ク ロ ッ ク プ リ ミ テ ィ ブの使用率の詳細が表示 さ れ ま す。
アーキ テ ク チ ャ の ク ロ ッ キ ン グ規則を確認 し 、 配置の問題が発生 し ない よ う に し ま す。 た と えば、 BUFH は同 じ ク
ロ ッ ク 領域の ロ ー ド にのみフ ァ ン ア ウ ト で き ます。 配置制約が無効な場合や、 リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ ーの
フ ァ ン ア ウ ト が大 き すぎ る 場合、 配置で問題が発生す る 可能性があ り ます。 ク ロ ッ ク バ ッ フ ァ ーの使用率が非常に高
いデザ イ ンでは、 ク ロ ッ ク ジ ェ ネ レー タ ーお よ び一部の リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ ーの配置を固定す る こ と が
必要な場合があ り ます。
ソ ース同期 イ ン タ ーフ ェ イ ス な ど、 厳 し い タ イ ミ ン グ関係が必要な イ ン タ ーフ ェ イ ス では、 厳 し い タ イ ミ ン グ関係が
必要な信号の特定の リ ソ ース を固定 し た方が よ い場合 も あ り ます。 通常は、 上記の よ う な特別な理由がない場合は、
初めの う ちは I/O のみを固定 し ます。
推奨 さ れ る 配置制約の詳細は、 「 タ イ ミ ン グ ク ロ ージ ャ 」 を参照 し て く だ さ い。
ク ロ ッ ク ツ リ ーの ト ポロ ジ
•
report_clock_networks コ マ ン ド を実行する と 、 ク ロ ッ ク ネ ッ ト ワー ク が詳細な ツ リ ー ビ ュ ーで表示 さ れ
ます。
•
ク ロ ッ ク ツ リ ーを ス キ ュ ーを最小限に抑え る よ う に使用 し ます。
•
PLL お よ び MMCM の出力には、 ス キ ュ ーを最小限に抑え る ため同 じ ク ロ ッ ク バ ッ フ ァ ー タ イ プ を使用 し ます。
•
意図 し ないカ ス ケー ド 接続 さ れた BUFG エ レ メ ン ト がないか ど う か を確認 し ます。カ ス ケー ド 接続 さ れた BUFG
エ レ メ ン ト は、 遅延やス キ ュ ーの原因 と な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
215
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
デザイ ンのイ ン プ リ メ ン テーシ ョ ン
Vivado イ ンプ リ メ ン テーシ ョ ンは、 デザ イ ンの論理制約、 物理制約、 タ イ ミ ン グ制約を満た し なが ら ネ ッ ト リ ス ト を
FPGA デバ イ ス リ ソ ース に配置配線す る ためのすべての手順を含みます。 イ ンプ リ メ ン テーシ ョ ンの詳細は、 次の資
料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19]
•
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado デザ イ ン フ ロ ーの概要
プ ロ ジ ェ ク ト モー ド と 非プ ロ ジ ェ ク ト モー ド
イ ン プ リ メ ン テーシ ョ ンは、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で実行で き ます。 プ ロ ジ ェ ク ト
モー ド では、 run の管理、 フ ァ イ ル セ ッ ト の管理、 レ ポー ト の生成、 ク ロ ス プ ロ ーブな ど のプ ロ ジ ェ ク ト 構造を使用
で き ます。 非プ ロ ジ ェ ク ト モー ド は統合が簡単で、 Tcl ス ク リ プ ト を使用 し て実行す る ので、 必要な レ ポー ト を明示
的に作成す る 必要があ り ます。 こ れ ら のモー ド の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの
概要』 (UG892) [参照 5] の 「使用モデル」 を参照 し て く だ さ い。
プ ロ ジ ェ ク ト モー ド
プ ロ ジ ェ ク ト モー ド は、 run に基づいてい ます。 異な る 合成結果、 デザ イ ン制約を使用す る イ ンプ リ メ ン テーシ ョ ン
run を作成 し て起動 し、 イ ンプ リ メ ン テーシ ョ ン ソ リ ュ ーシ ョ ン を拡張 し 、 最適な結果を得 る こ と がで き ます。 プ ロ
ジ ェ ク ト モー ド では、 1 つのデザ イ ンに対 し て複数の ス ト ラ テジ を実行で き、 デザ イ ンに合わせてアルゴ リ ズ ム を調
整 し 、 カ ス タ マ イ ズ し た イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ をほかのプ ロ ジ ェ ク ト で使用で き る よ う 保存で き ます。
デザ イ ンに最適な ス ト ラ テジが見つかっ た ら 、 その ス ト ラ テジ を同様の特性を持つほかのデザ イ ンで も 使用で き ます。
非プ ロ ジ ェ ク ト モー ド
非プ ロ ジ ェ ク ト モー ド では、デザ イ ン フ ロ ーを定義 し た Tcl ス ク リ プ ト を使用 し て イ ンプ リ メ ン テーシ ョ ン を実行 し
ます。
推奨 フ ロー
デザ イ ン を読み込んだ後、 有効な ビ ッ ト ス ト リ ーム を生成す る のに最低限必要な コ マ ン ド は、 次の と お り です。
•
link_design
•
opt_design
•
place_design
•
route_design
•
report_drc
•
report_timing_summary
•
write_bitstream
タ イ ミ ン グ制約は、 完全に正 し く 設定す る 必要があ り ます。 デザ イ ンがハー ド ウ ェ アで機能す る よ う 、 こ れ ら の制約
が満た さ れ、 ス ラ ッ ク が正であ る こ と を確認 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
216
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
反復 フ ロー
非プ ロ ジ ェ ク ト モー ド では、 さ ま ざ ま な最適化 コ マ ン ド を異な る オプ シ ョ ン を使用 し て反復で き ま す。 た と えば、
route_design コ マ ン ド の後、 配線済みデザ イ ンでい く つかの ク リ テ ィ カル パ ス で タ イ ミ ン グが満た さ れていない
場合に、 place_design -post_place_opt コ マ ン ド を実行で き ます。 配置後の最適化は、 実際の タ イ ミ ン グ遅延
に基づいて実行 さ れます。 こ の手順の後に、 も う 一度 route_design コ マ ン ド を実行する 必要があ り ます。
phys_opt_design コ マン ド を繰 り 返し て実行する と 、 タ イ ミ ング を向上でき る可能性があ り ます。phys_opt_design
コ マン ド では、 最 も 問題のあ るパスが最適化さ れます。 phys_opt_design コ マン ド を反復実行する と 、 低いレベルの
タ イ ミ ング問題も最適化で向上する可能性があ り ます。 配線後に phys_opt_design を実行する と 、 未接続だったネ ッ
ト が配線し直されます。 こ のため、 配線後の phys_opt_design の後に、 route_design を も う 1 度実行する必要はあ
り ません。
設計手法 DRC の実行
設計手法の重要性 を 考慮 し 、 Vivado ツ ールでは設計手法に従 っ て い る か ど う か を チ ェ ッ ク す る デザ イ ン ルール
チ ェ ッ ク (DRC) のセ ッ ト が提供 さ れてい ます。デザ イ ン プ ロ セ ス の段階に よ っ て、異な る タ イ プの DRC があ り ます。
エ ラ ボ レー ト 済みデザ イ ンでは RTL リ ン ト ス タ イ ル チ ェ ッ ク 、合成済みデザ イ ンではネ ッ ト リ ス ト ベース の ロ ジ ッ
ク お よ び制約チ ェ ッ ク 、 イ ンプ リ メ ン ト 済みデザ イ ン では イ ンプ リ メ ン テーシ ョ ンお よ び タ イ ミ ン グチ ェ ッ ク が実行
さ れます。
こ れ ら のチ ェ ッ ク を Tcl プ ロ ンプ ト で実行す る には、 検証する デザ イ ン を開き 、 次の Tcl コ マ ン ド を入力 し ます。
report_drc -ruledeck methodology_checks
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
217
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
こ れ ら のチ ェ ッ ク を IDE か ら 実行す る には、 検証す る デザ イ ン を開 き 、 [Report DRC] コ マ ン ド を実行 し ます。 [Report
DRC] ダ イ ア ロ グ ボ ッ ク ス が開いた ら 、 次の図に示す よ う に methodology_checks ルール デ ッ ク を選択 し ます。
X-Ref Target - Figure 5-3
図 5-3 : [Report DRC] ダ イ ア ログ ボ ッ ク ス
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
218
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
検出 さ れた違反は、 次の図に示す [DRC] ウ ィ ン ド ウ に リ ス ト さ れます。
X-Ref Target - Figure 5-4
図 5-4 : DRC 違反
設計手法 DRC の実行に関す る 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レ ベル のデザ イ ン 入力』
(UG895) [参照 8] お よ び 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906)
[参照 21] を参照 し て く だ さ い。
デザ イ ン で特定の DRC 違反を ク リ ーン ア ッ プす る 必要がない場合は、 違反 と その影響を理解 し 、 なぜその違反がデ
ザ イ ンに悪影響を与え ないか を把握 し てお く 必要があ り ます。 ザ イ リ ン ク ス が提供す る IP コ アでは、 DRC 違反は既
に確認 さ れてい ます。
ス ト ラ テジ
ス ト ラ テジ と は、 プ ロ ジ ェ ク ト モー ド で run の動作を制御する Vivado イ ンプ リ メ ン テーシ ョ ン オプシ ョ ンの定義済
みセ ッ ト です。 ス ト ラ テ ジの動作は、 個々の イ ン プ リ メ ン テーシ ョ ン コ マ ン ド に適用 さ れ る -directive オプシ ョ ン で
制御 さ れます。 詳細は、 「-directive オプシ ョ ン」 を参照 し て く だ さ い。
推奨 : まずデフ ォ ル ト ス ト ラ テジであ る Vivado Implementation Defaults を試 し てみて く だ さ い。 実行時間 と デザ イ ン
パフ ォーマ ン ス のバ ラ ン ス を取 る こ と がで き ます。
ス ト ラ テジは、 ツールお よ びバージ ョ ン特定です。 Vivado Design Suite の各 メ ジ ャ ー リ リ ース には、 バージ ョ ン特定
の ス ト ラ テジが含まれます。
ス ト ラ テジは、 その目的に応 じ て カ テ ゴ リ 別に分類 さ れてお り 、 カ テ ゴ リ 名が接頭辞 と な っ てい ます。 次の表を参照
し て く だ さ い。
パフ ォ ーマ ン ス ス ト ラ テ ジは、 デザ イ ン パフ ォ ーマ ン ス を向上す る こ と を目的 と し てお り 、 実行時間は長 く な り ま
す。 た と えば、 Performance_Explore ス ト ラ テジ を使用する と 、 多 く のデザ イ ンで結果が向上 し ますが、 その代わ り に
実行時間が長 く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
219
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
表 5-1 : ス ト ラ テ ジのカ テ ゴ リ
カ テゴ リ
目的
Performance (パフ ォーマ ン ス)
デザ イ ン パフ ォーマ ン ス を向上 し ます。
Area (エ リ ア)
LUT 数を削減 し ます。
Power (電力)
消費電力最適化を実行 し ます。
Flow (フ ロ ー )
フ ロ ー手順を変更 し ます。
Congestion (密集)
密集お よ び関連の問題を低減 し ます。
重要 : 名前に SLL ま たは SLR が含まれ る ス ト ラ テジは、 SSI テ ク ノ ロ ジ デバ イ ス の追加の制御を実行 し ます。
-directive オプ シ ョ ン
-directive オプシ ョ ン を使用す る と 、 次の イ ンプ リ メ ン テーシ ョ ン コ マ ン ド を異な る モー ド で実行で き ます。
•
opt_design
•
place_design
•
phys_opt_design
•
route_design
最初は、 デフ ォ ル ト 設定を使用 し て く だ さ い。 デザ イ ンが完了に近づいて き た ら 、 ほかのモー ド を使用 し て ソ リ ュ ー
シ ョ ンの可能性を探 り ます。 一度に指定で き る モー ド は 1 つのみです。 -directive オプシ ョ ンは、 ほかのオプシ ョ ン と
共に使用す る こ と はで き ません。
ス ト ラ テジお よ び指示子の詳細は、『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19]
を参照 し て く だ さ い。
中間手順 と チ ェ ッ ク ポ イ ン ト
Vivado Design Suite では、 物理デザ イ ン デー タ ベース を使用 し て配置配線情報を格納 し ます。 デザ イ ン チ ェ ッ ク ポ イ
ン ト フ ァ イ ル (.dcp) を使用す る と 、 デザ イ ン フ ロ ーの主要な段階で こ の物理デー タ ベース を保存
(write_checkpoint コ マ ン ド ) お よ び復元 (read_checkpoint コ マ ン ド ) で き ます。チ ェ ッ ク ポ イ ン ト は、フ ロ ー
の特定の時点におけ る デザ イ ンの スナ ッ プシ ョ ッ ト です。
デザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ルには、 次の も のが含まれます。
•
イ ンプ リ メ ン テーシ ョ ン中に適用 さ れた最適化を含む現在のネ ッ ト リ ス ト
•
デザ イ ン制約
•
イ ンプ リ メ ン テーシ ョ ン結果
チ ェ ッ ク ポ イ ン ト デザ イ ンに対 し ては、 Tcl コ マ ン ド を使用 し てデザ イ ン フ ロ ーの残 り の段階を実行で き ます。 新 し
いデザ イ ン ソ ース を使用 し て変更す る こ と はで き ません。
チ ェ ッ ク ポ イ ン ト で使用す る コ マ ン ド の例は、 次の と お り です。
•
フ ロ ーのあ る 部分に戻 り 、 さ ら に解析す る ため、 結果を保存 し ます。
•
-directive オプシ ョ ンの異な る 設定を使用 し て place_design コ マ ン ド を実行 し 、 それぞれのチ ェ ッ ク ポ イ
ン ト を保存 し ます。 こ の よ う にする と 、 次の イ ンプ リ メ ン テーシ ョ ン手順に タ イ ミ ン グ結果が最高のチ ェ ッ ク ポ
イ ン ト を選択で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
220
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
イ ン ク リ メ ン タ ル フ ロー
Vivado Design Suite イ ン ク リ メ ン タ ル配置配線は、 現在のデザ イ ン と イ ン プ リ メ ン ト 済みの以前のバージ ョ ン が類似
し てい る 場合に、 デザ イ ンの既存の配置配線デー タ を再利用する こ と に よ り 、 イ ンプ リ メ ン テーシ ョ ンの実行時間を
短縮 し て よ り 予測可能な結果を生成 し ます。 デザ イ ン間でセル、 ネ ッ ト 、 ポー ト が 95% 以上一致 し ていれば、 イ ン
ク リ メ ン タ ル配置配線に よ り 実行時間が平均で通常の配置配線の 1/2 にな り ます。
基準デザ イ ン と 現在のデザ イ ンの間の一致パーセ ン ト が低 く な る と 、 実行時間の短縮度 も 低 く な り ます。
80% 未満にな る と 、 イ ン ク リ メ ン タ ル配置配線を使用する 利点はそれほ ど な く な る か、 ま っ た く な く な る 可能性があ
り ます。
イ ン ク リ メ ン タ ル フ ロ ーの適切な使用モデルは、 次の と お り です。
•
タ イ ミ ン グがほぼ満た さ れてお り 、 局地的に小 さ な修正が必要な イ ンプ リ メ ン ト 済みデザ イ ン を修正する 。
•
イ ンプ リ メ ン ト 済みデザ イ ンにデバ ッ グ コ ア を追加する 。
•
限 ら れた量の ロ ジ ッ ク に影響す る 局地的な ク リ テ ィ カル パス を変更する 。
•
デザ イ ンの新 し い リ ビ ジ ョ ン を作成す る 。
注記 : こ の場合、 類似性は低 く な り ます。
実行時間の短縮に加え、イ ン ク リ メ ン タ ル コ ンパ イ ルではデザ イ ンの変更 さ れていない部分への影響は最小限に抑え
ら れ る ので、 タ イ ミ ン グの変動 も 低減 さ れます。
基準デザ イ ンか ら の配置配線が効果的に再利用で き る か ど う かは、 2 つのデザ イ ンの差異に よ り ます。 ソ ース の少 し
の違いが最終的な結果に大 き く 影響 し 、 再利用が困難 と な っ た り 効果的でな く な る 場合 も あ り ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] の 「 イ ン ク リ メ ン タ ル コ
ンパ イ ル フ ロ ーのデザ イ ン」 を参照 し て く だ さ い。
少 し の RTL の変更に よ る影響
合成はネ ッ ト リ ス ト 名がで き る だけ変更 さ れない よ う に実行 さ れ ますが、 次の よ う な少 し の RTL の変更に よ っ てデ
ザ イ ンが大幅に変わっ て し ま う 場合があ り ます。
•
推論 さ れ る メ モ リ のサ イ ズ を大 き く す る 。
•
内部バ ス の幅を広 く す る 。
•
デー タ 型を符号な し か ら 符号付 き に変え る 。
制約および合成オプ シ ョ ンの変更に よ る影響
同様に、 次の よ う な制約お よ び合成オプシ ョ ン の変更が、 イ ン ク リ メ ン タ ル配置配線に大 き く 影響す る こ と があ り
ま す。
•
タ イ ミ ン グ制約の変更お よ び再合成
•
論理階層の保持ま たは解除
•
レ ジ ス タ の リ タ イ ミ ン グの イ ネーブル
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] の 「 イ ン ク リ メ ン タ ル コ
ンパ イ ル」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
221
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ネ ッ ト リ ス ト の ク オ リ テ ィ の確認
最高の イ ンプ リ メ ン テーシ ョ ン結果が得 ら れ る よ う にす る ため、 開始ネ ッ ト リ ス ト の ク オ リ テ ィ を確認す る こ と が重
要です。 合成中に こ れ ら のチ ェ ッ ク を実行 し ていない場合やネ ッ ト リ ス ト の ク オ リ テ ィ が不明な場合にネ ッ ト リ ス ト
の ク オ リ テ ィ を調べ る 方法は、 「合成後の処理」 を参照 し て く だ さ い。
デザ イ ンの記述を含む ソ ース フ ァ イ ルの特性お よ びデザ イ ンの状態に よ っ て、 次の Tcl コ マ ン ド を使用 し て合成済み
デザ イ ン を メ モ リ に読み込む こ と がで き ます。
•
synth_design/launch_runs synth_1
•
open_checkpoint
•
open_run
•
link_design
表 5-2 : Tcl コ マ ン ド を使用可能なモー ド
コマン ド
synth_design
プ ロ ジ ェ ク ト モー ド
X (launch_runs synth_1)
open_checkpoint
open_run
非プ ロ ジ ェ ク ト モー ド
X (synth_design)
X
X
link_design
X
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] を参照 し て く だ さ い。
ロ ジ ッ ク 最適化 (opt_design)
Vivado ロ ジ ッ ク 最適化では、 現在 メ モ リ に読み込まれてい る ネ ッ ト リ ス ト を最適化 し ます。 こ れが統合 さ れたデザ イ
ン (RTL お よ び IP ブ ロ ッ ク ) の最初の表示なので、 デザ イ ンは通常 さ ら に最適化で き ます。 opt_design コ マ ン ド で
は、 デフ ォ ル ト で ロ ジ ッ ク の自動削除、 ロ ー ド のないセルの削除、 定数入力の伝搬、 お よ びブ ロ ッ ク RAM の消費電
力最適化が実行 さ れます。 ま た、 複数の LUT を少ない数の LUT に統合 し てパ ス の ロ ジ ッ ク 段数を削減す る 再マ ッ プ
な ど、 ほかの最適化 も 実行で き ます。
ロ ジ ッ ク 最適化に影響する制約および属性
ロ ジ ッ ク 最適化中、 DONT_TOUCH お よ び MARK_DEBUG プ ロ パテ ィ が認識 さ れ、 こ れ ら のプ ロ パテ ィ が設定 さ れ
てい る ネ ッ ト は削除 さ れません。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 16] を参照 し て
く だ さ い。
•
MARK_DEBUG は、 Vivado ロ ジ ッ ク 解析を使用 し てプ ロ ーブす る 予定のネ ッ ト に設定 し ます。 MARK_DEBUG
の設定 さ れたネ ッ ト は ス ラ イ ス境界に接続 さ れ、 プ ロ ーブで き る 状態にな り ます。
•
DONT_TOUCH は最下位セルに設定 し 、 最適化 さ れない よ う に し ます。 階層セルに DONT_TOUCH を設定す る と
セルの境界は保持 さ れますが、 セル内で最適化が実行 さ れ る 可能性はあ り ます。
•
デザ イ ンのあ る 部分お よ び IP コ アに、 その範囲にだけに設定 さ れてい る 制約があ る 場合に、 制約が適用 さ れ る
オブジ ェ ク ト が最適化で削除 さ れない よ う に、 DONT_TOUCH が適用 さ れてい る 場合があ り ます。
ロ ジ ッ ク 最適化の -directive オプ シ ョ ン
opt_design コ マ ン ド の -directive オプ シ ョ ン を使用 し て、 エ リ ア の縮小に焦点を置いた り 、 デ フ ォ ル ト フ ロ ーに
LUT の再マ ッ プ を追加 し た り で き ます。
ロ ジ ッ ク 最適化指示子の詳細は、『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 16] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
222
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
最適化の解析
opt_design コ マ ン ド を実行す る と 、 各最適化フ ェ ーズの結果を詳細に示す メ ッ セージが生成 さ れます。 最適化を実
行 し た ら 、 report_utilization コ マ ン ド を実行 し て使用率が向上 し たかを調べ る こ と がで き ます。 最適化結果を
解析す る には、 -verbose オプシ ョ ン を使用 し 、 opt_design コ マ ン ド の最適化の影響を受け た ロ ジ ッ ク の詳細を
確認 し ます。
消費電力の最適化
消費電力の最適化については、 「消費電力の最適化」 を参照 し て く だ さ い。
配置 (place_design)
Vivado 配置エ ン ジ ンに よ り ネ ッ ト リ ス ト のセルが タ ーゲ ッ ト デバ イ ス の特定サ イ ト に配置 さ れ ます。 ほかの イ ン プ
リ メ ン テーシ ョ ン コ マ ン ド と 同様、 メ モ リ 内のデザ イ ンに対 し て処理が実行 さ れます。
配置に影響する制約
次の制約は、 デザ イ ン オブジ ェ ク ト の配置に影響 し ます。
•
I/O 制約 (IOB、 IOSTANDARD な ど)
•
ロ ケーシ ョ ン制約 (LOC、 PBLOCK、 PROHIBIT な ど)
•
タ イ ミ ン グ制約 (create_clock な ど)
•
ネ ッ ト リ ス ト 制約 (LOCK_PINS、 CLOCK_DEDICATED_ROUTE な ど)
•
RPM お よ び XDC マ ク ロ (create_macro な ど)
配置制約の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 18] を参照 し て く だ さ い。
配置解析
配置後に タ イ ミ ン グ サマ リ レ ポー ト を使用 し 、 ク リ テ ィ カル パス をチ ェ ッ ク し ます。
•
ネガテ ィ ブ セ ッ ト ア ッ プ タ イ ム ス ラ ッ ク が大き いパス は、 タ イ ミ ン グ ク ロ ージ ャ を達成する ため、 制約が適切
で完全な も のであ る か をチ ェ ッ ク し た り 、 ロ ジ ッ ク の再構築が必要な場合があ り ます。
•
ネガテ ィ ブ ホール ド タ イ ム ス ラ ッ ク が大 き いパ ス は、 ほ と ん ど の場合は不正な制約ま たは ク ロ ッ キ ン グ ト ポ ロ
ジが原因であ り 、 デザ イ ン を配線す る 前に修正す る 必要があ り ます。
•
ネガテ ィ ブ ホール ド タ イ ム ス ラ ッ ク が小 さ いパ スは、 たいていは配線で修正 さ れます。 place_design 後に
report_clock_utilization を実行 し て、 ク ロ ッ ク 領域ご と の ク ロ ッ ク リ ソ ースお よ び ロ ー ド 数を レ ポー ト
す る こ と も で き ます。
詳細は、 「 タ イ ミ ン グ ク ロ ージ ャ 」 を参照 し て く だ さ い。
ク ロ ッ ク お よ び I/O の適切な配置が見つか ら なか っ た場合は、 違反のあ っ た配置規則 と 、 影響を受けたセルの簡単な
説明が表示 さ れます。
配置で き ない理由には、 次の よ う な も のがあ り ます。
•
競合す る 制約に よ り ク ロ ッ ク ツ リ ーの問題が発生 し てい る 。
•
複雑すぎ て配置ツールで解決で き ない ク ロ ッ ク ツ リ ーの問題があ る 。
•
RAM お よ び DSP ブ ロ ッ ク の配置が Pblock な ど のほかの制約 と 競合 し てい る 。
•
リ ソ ース を過剰に使用 し てい る 。
•
I/O バン ク の要件お よ び規則
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
223
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
配置の問題を修正す る には、 エ ラ ー メ ッ セージ を注意深 く 確認 し て く だ さ い。 メ ッ セージには、 多 く の場合、 有効な
ソ リ ュ ーシ ョ ン を見つけ る こ と がで き なかっ た中間配置が示 さ れます。 配置問題の原因 と な る 可能性のあ る 配置制約
を削除 し た り 、 複雑な ク ロ ッ ク ツ リ ーの問題があ る 場合は ク ロ ッ ク バ ッ フ ァ ーを制約す る と 、 配置で き る よ う にな
る 可能性があ り ます。
SSI の配置
配置ス ト ラ テ ジ
ビル ト イ ン配置アルゴ リ ズ ム を使用す る と 、 次の よ う に処理 さ れます。
1.
SLL リ ソ ース を超えない よ う にデザ イ ンが配置 さ れます。
2.
SLR コ ン ポーネ ン ト を ま た ぐ タ イ ミ ン グ ク リ テ ィ カル パ ス の数が制限 さ れます。
3.
SLR に特定の リ ソ ース が過剰に配置 さ れない よ う に、 リ ソ ース のバ ラ ン ス が取 ら れます。
4.
SLL を ま た ぐ パ ス の数が最小限に抑え ら れます。
こ れ ら の ス ト ラ テジに従 う こ と に よ り 、 パフ ォーマ ン ス要件を満た し なが ら バ ラ ン ス の取れた配置が試み ら れます。
SLR の選択に影響する その他の要件
その他のデザ イ ンお よ び イ ンプ リ メ ン テーシ ョ ンの要件 も 、 SLR の選択に影響 し ます。 こ れ ら の要件には、 次の よ う
な も のがあ り ます。
1.
ピ ン配置
2.
ク ロ ッ ク 選択
3.
リ ソ ース タ イ プ
4.
フ ロ アプ ラ ン (Pblock) や LOC 制約な ど の物理制約
5.
タ イ ミ ン グ制約
6.
I/O 規格お よ びその他の制約
ザ イ リ ン ク ス では、 ピ ン配置、 ク ロ ッ ク 選択、 その他のデザ イ ンに関す る 選択を適切に行い、 SLR コ ン ポーネ ン ト の
割 り 当てはツールで実行す る よ う にす る こ と をお勧め し ます。
追加情報は、 こ の章の次のセ ク シ ョ ン を参照 し て く だ さ い。
•
「配置の -directive オプシ ョ ン」 : SSI テ ク ノ ロ ジ ベース のデザ イ ンで特に有益な -directive オプシ ョ ンについ
て説明 し てい ます。
•
「ス ト ラ テジ」 : SSI テ ク ノ ロ ジ ベース のデザ イ ンで特に有益な ス ト ラ テジについて説明 し てい ます。
SLR の手動割 り 当て
ツールでデザ イ ン要件を満たす ソ リ ュ ーシ ョ ンが見つけ ら れない場合や、 run と run の間で一貫 し た結果を得 る こ と
が重要な場合は、 SLR を手動で割 り 当て る 必要があ る こ と があ り ます。
SLR の手動割 り 当ての実行
SLR を手動で割 り 当て る には、 次の手順に従い ます。
1.
大型 Pblock (エ リ ア グループ) を作成 し ます。
2.
デザ イ ンの部分を それ ら のエ リ ア グループに割 り 当て ます。
デザ イ ンの大型の部分を 1 つの SLR に割 り 当て る には、 次の手順に従い ます。
1.
1 つの SLR を含む Pblock を作成 し ます。
2.
ロ ジ ッ ク に関連す る 階層を その Pblock に割 り 当て ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
224
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ロ ジ ッ ク を隣接す る 複数の SLR コ ン ポーネ ン ト に割 り 当て る こ と も で き ますが、 Pblock が SLR 全体を確実に含む よ
う にす る 必要があ り ます。
SLR 全体を制約せずに、 SLR の境界を ま た ぐ Pblock を作成 し ないで く だ さ い。 こ の よ う にす る と 、 自動 SLR 配置ア
ルゴ リ ズ ムで有効な配置を見つけ る のが困難にな り ます。
SLR の手動割 り 当てに関する ガ イ ド ラ イ ン
ロ ジ ッ ク を手動で SLR コ ン ポーネ ン ト に割 り 当て る 場合は、 次のガ イ ド ラ イ ンに従っ て く だ さ い。
1.
SLL リ ソ ース を超えない よ う にデザ イ ンが配置 さ れます。
2.
SLR コ ン ポーネ ン ト を ま た ぐ タ イ ミ ン グ ク リ テ ィ カル パ ス の数を制限 し ます。
3.
SLR に特定の リ ソ ース が過剰に配置 さ れない よ う に、 リ ソ ース のバ ラ ン ス を取 り ます。
4.
SLL を ま た ぐ パ ス の数を最小限に抑え ます。
配置の -directive オプ シ ョ ン
配置は通常デザ イ ンの全体的なパフ ォーマ ン ス に最 も 影響す る ので、-directive オプシ ョ ン を使用 し て さ ま ざ ま な
ソ リ ュ ーシ ョ ン を試す こ と がで き ます。
ヒ ン ト : 最初は、 デフ ォ ル ト 設定を使用 し て く だ さ い。 デザ イ ンが完了に近づいて き た ら 、 ほかのモー ド を使用 し て
ソ リ ュ ーシ ョ ンの可能性を探 り ます。
次の図に、 ど のモー ド が ど の よ う なデザ イ ンに効果的かを示 し ます。
表 5-3 : -directive オプ シ ョ ンのガ イ ド ラ イ ン
モー ド
効果が得ら れるデザイ ン
BlockPlacement
ブ ロ ッ ク RAM ま たは DSP ブ ロ ッ ク 、 あ る いはその両方を多数
含むデザ イ ン
NetDelay
遠距離 の ネ ッ ト 接続 を 含むデ ザ イ ン お よ び多数 の 異 な る モ
ジ ュ ールに フ ァ ン ア ウ ト す る ネ ッ ト を含むデザ イ ン
SpreadLogic
接続が多数あ る 密集が発生 し やすいデザ イ ン
ExtraPostPlacementOpt
すべての タ イ プのデザ イ ン
SSI
密集を緩和 し た り タ イ ミ ン グ を向上す る ため、 異な る 分割方法
が有益であ る 可能性のあ る SSI デザ イ ン
配置指示子の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] を参照 し て
く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
225
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
物理最適化 (phys_opt_design)
物理最適化は、 フ ロ ーのオプシ ョ ン の手順で、 デザ イ ンの負の ス ラ ッ ク パ ス に対 し て タ イ ミ ン グ ド リ ブン の最適化
を実行 し ます。 複製、 リ タ イ ミ ン グ、 ホール ド の修正、 お よ び配置の向上が実行 さ れます。 物理最適化では、 ネ ッ ト
リ ス ト お よ び配置の必要な変更が自動的に実行 さ れ る ので、 phys_opt_design の後に place_design を実行す る
必要はあ り ません。
物理合成の必要性
デザ イ ンに物理合成が有益であ る かを判断す る には、 配置後の タ イ ミ ン グ を評価 し ます。 タ イ ミ ン グが満た さ れてい
ないパ ス で フ ァ ン ア ウ ト を解析 し ます。 フ ァ ン ア ウ ト の大 き い ク リ テ ィ カル パ ス は、 フ ァ ン ア ウ ト 最適化で向上す る
可能性があ り ます。 ま た、 複数のブ ロ ッ ク RAM を含む大型 RAM ブ ロ ッ ク の フ ァ ン ア ウ ト の大 き いデー タ 、 ア ド レ
ス、 お よ び制御ネ ッ ト で route_design 後に タ イ ミ ン グが満た さ れない場合、 ネ ッ ト の複製を強制す る と 有益であ
る こ と があ り ます。 物理制約の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参
照 19] を参照 し て く だ さ い。
物理最適化に影響する制約
タ イ ミ ン グ制約は物理最適化に影響 し ます。 ほ と ん ど の物理最適化は、 負の ス ラ ッ ク が WNS のあ る 割合以内であ る
タ イ ミ ン グ パ ス に対 し て実行 さ れ ま す。 ネ ッ ト リ ス ト が変更 さ れ、 変更は イ ン ク リ メ ン タ ルに配置 さ れ ます。 変更
は、 ス ラ ッ ク 、 エ リ ア、 お よ び消費電力が評価 さ れた後にのみ確定 さ れます。
物理最適化中は、 ロ ジ ッ ク 最適化 と 同様、 DONT_TOUCH お よ び MARK_DEBUG プ ロ パテ ィ が認識 さ れます。
物理最適化の -directive オプ シ ョ ン
物理最適化の -directive オプシ ョ ン を使用 し て、 異な る ソ リ ュ ーシ ョ ン を試す こ と がで き ます。
ヒ ン ト : 最初は、 デフ ォ ル ト 設定を使用 し て く だ さ い。 デザ イ ンが完了に近づいて き た ら 、 ほかのモー ド を使用 し て
ソ リ ュ ーシ ョ ンの可能性を探 り ます。
物理最適化指示子の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] を参
照 し て く だ さ い。
配線 (route_design)
Vivado 配線は、 配置済みデザ イ ンに対 し て配置を実行 し 、 ホール ド タ イ ム違反を解決す る ため配線済みデザ イ ン の
最適化を実行 し ます。 デフ ォ ル ト では タ イ ミ ン グ ド リ ブンですが、 こ れはデ ィ ス エーブルにで き ます。
配線に影響する制約
次の制約は、 配線に影響 し ます。
•
固定配線 (FIXED_ROUTE な ど)
•
ピ ン固定制約 (LOCK_PINS な ど)
•
タ イ ミ ン グ制約 (create_clock な ど)
競合す る 制約は、 配線でエ ラ ーの原因 と な り ます。
配線制約の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 18] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
226
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
配線解析
最適に配線 さ れていないネ ッ ト があ る 場合、 問題は多 く の場合間違っ た タ イ ミ ン グ制約です。 配線設定を変更 し てみ
る 前に、 制約が適切であ る か ど う か を確認 し て く だ さ い。 配線の前の配置済みデザ イ ンの タ イ ミ ン グ レ ポー ト を参照
し て、 タ イ ミ ン グ と 制約を確認 し ます。
不適切な タ イ ミ ン グ制約の例 と し て、ホール ド タ イ ミ ン グで配線遅延が追加 さ れ る ク ロ ッ ク 乗せ換えパ スや不正なマ
ルチサ イ ク ル パ ス な ど があ り ます。 密集 し たエ リ アは、 RTL 合成での フ ァ ン ア ウ ト の最適化ま たは物理最適化に よ
り 解決で き ます。 すべて ま たは一部のデザ イ ン階層を保持 し 、 境界を ま たが る 最適化が実行 さ れない よ う に し 、 ネ ッ
ト リ ス ト の集積度を削減で き ます。 ま たは、 フ ロ アプ ラ ン制約を使用 し て密集を緩和で き ます。
詳細は、 「 タ イ ミ ン グ ク ロ ージ ャ 」 を参照 し て く だ さ い。
中間配線結果
配線を完了で き ない場合で も 、 Vivado 配線の処理は継続 さ れ、 デバ ッ グに使用で き る よ う にで き る だけ完成に近いデ
ザ イ ンが生成 さ れます。 配線が完了 し ない場合、 手動の変更が必要な場合があ り ます。 次の ヒ ン ト を使用 し て、 次の
手順を決定 し ます。
•
report_route_status コ マ ン ド を実行 し 、 「Nets with Routing Errors」 (配線エ ラ ーを含むネ ッ ト ) セ ク シ ョ ン を
チ ェ ッ ク し ます。 ネ ッ ト を検索 し て回路図を作成 し 、 フ ァ ン ア ウ ト の大き いネ ッ ト ま たは ク ロ ッ ク ルール違反な
ど を探 し ます。 DRC を実行す る と 、 ク ロ ッ ク ルール違反を特定で き る こ と があ り ます。
•
物理配置制約 (Pblock) に よ り 問題が発生 し てい る 場合は、 すべての Pblock 制約を削除 し た ビル ド を生成 し ます。
•
vivado.log フ ァ イ ルの配線セ ク シ ョ ンの 「Phase 3.2 Budgeting」 を参照 し ます。 密集の程度が 「levels」 に示 さ
れます。 最大値は 7 です。 レベル 7 の密集は、 2^7 (128) タ イ ルにお よ ぶ領域で、 配線使用率が 100% に近い こ と
を示 し ます。 配線方向 (北、 東、 南、 お よ び西) が レ ポー ト さ れます。 INT_xxx の数値は、 [Device] ウ ィ ン ド ウ で
[Routing Resources] を オンに し た と き に表示 さ れ る イ ン タ ーコ ネ ク ト 配線 タ イ ルの座標です。
•
配線済みデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (.dcp) を開 き 、 [Device] ウ ィ ン ド ウ を右 ク リ ッ ク し て [Metric] →
[Vertical routing congestion per CLB] お よ び [Horizontal routing congestion per CLB] を オンに し ます。 こ の表示には、
ロ ジ ッ ク タ イ ル (CLB な ど) ご と の配線使用率予測が示 さ れ ます。 使用率予測が 100% を超え る 場合、 配線ツー
ルで密集す る エ リ ア を通過す る すべてのネ ッ ト の配線を完了す る ため、 配線を迂回 さ せる 必要があ り ます。 ロ グ
フ ァ イ ルの密集レ ポー ト で レ ポー ト さ れてい る 密集度の高い タ イ ル エ リ ア を探 し ます。 [Device] ウ ィ ン ド ウ でそ
のエ リ ア内のすべてのセルを選択 し 、 回路図を生成 し ます。 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーを使用可能な フ ァ
ン ア ウ ト の大 き いネ ッ ト がないか ど う かを調べて ロ -カル配線 リ ソ -ス が解放 さ れ る よ う にする か、 主なブ ロ ッ
ク を特定 し て フ ロ アプ ラ ン制約を作成す る か、 異な る オプシ ョ ン ま たは属性を使用 し て合成 し ます。
•
配置の密集に焦点を置 く -directive オプシ ョ ン を使用 し てデザ イ ン を再実行 し ます。
特定のネ ッ ト のみを配線 し 直す方法の詳細は、 「再配線モー ド の使用」 を参照 し て く だ さ い。
配線の -directive オプ シ ョ ン
配線の -directive オプシ ョ ン を使用 し て、 異な る ソ リ ュ ーシ ョ ン を試す こ と がで き ます。
ヒ ン ト : 最初は、 デフ ォ ル ト 設定を使用 し て く だ さ い。 デザ イ ンが完了に近づいて き た ら 、 ほかのモー ド を使用 し て
ソ リ ュ ーシ ョ ンの可能性を探 り ます。
ルー タ ー指示子の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] を参照
し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
227
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
再配線モー ド の使用
route_design コ マ ン ド は再配線的に実行 さ れ、 部分的に配線 さ れてい る デザ イ ン に対 し ては、 始めか ら 配線 し 直
すのではな く 、 既存の配線が開始点 と し て使用 さ れます。 再配線モー ド の配線は通常、 完全に配線す る 前に ク リ テ ィ
カル ネ ッ ト お よ び ロ ッ ク ダ ウ ン リ ソ ース を事前に配線 し た り 、 ク リ テ ィ カルではないネ ッ ト の配線を手動で解除 し
て ク リ テ ィ カル ネ ッ ト に よ り 多 く の配線 リ ソ ース を使用で き る よ う にする な ど、特定の配線問題を修正す る ために イ
ン タ ラ ク テ ィ ブに実行 し ます。 再配線モー ド の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ
ン』 (UG904) [参照 19] を参照 し て く だ さ い。
タ イ ミ ング ク ロージ ャ
タ イ ミ ン グ ク ロ ージ ャ は、デザ イ ンがすべての タ イ ミ ン グ要件を満たす こ と がで き る 状態を指 し ます。 こ のセ ク シ ョ
ンでは、 デザ イ ン で タ イ ミ ン グ ク ロ ージ ャ を達成す る 方法を説明 し ます。 イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジのみ
を使用 し て タ イ ミ ン グ ク ロ ージ ャ を達成 し よ う と する のが よ く 見 ら れますが、 第 1 章 「概要」 で説明 し た よ う に、 合
成の段階で適切な HDL お よ び制約を記述 し てお く と 、 タ イ ミ ン グ ク ロ ージ ャ を達成 し やす く な り ます。 図 1-3 に示
し た、 合成を反復実行 し て HDL、 制約、 お よ び合成オプシ ョ ン を向上す る プ ロ セ ス を こ こ に再び示 し ます。 詳細は、
『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21] の 「 タ イ ミ ン グ
解析の実行」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
228
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
X-Ref Target - Figure 5 5
⚗㒟ቑ⸮嫛
ኇኴኔዄዐርቫቖ
+'/ነዙኦቑ䭉崜
UHSRUWBFORFNBQHWZRUNV
!FUHDWHBFORFNFUHDWHBJHQHUDWHGBFORFN
UHSRUWBFORFNBLQWHUDFWLRQ
!VHWBFORFNBJURXSVVHWBIDOVHBSDWK
FKHFNBWLPLQJ
!,2拔ㆅ
UHSRUWBWLPLQJBVXPPDU\
!ኜኁኼዐኍ√⮥
ኪአእ዇ኖእኰዂዙርቫቖ
ኅ዆ኹዉዙእ䂗ቢኰዂዙቑ
⥭恾⦂ቊኌ዇ኣኀኈወኮኖቑ
ኁዐኖኜዐኖትኌዊኖኴዊዙኳ
Ⓟ侓ቑ⸩券ርቫቖ嵎㠃
ኜኁኼዐኍቒⰴ㇢ሮ
1
<
揜函揜偩
;
図 5-5:
タ イ ミ ング ク ロージ ャ を短期間で達成する ための設計手法
次のガ イ ド ラ イ ンに従っ て く だ さ い。
•
最初 タ イ ミ ン グが満た さ れない場合、 フ ロ ー全体で タ イ ミ ン グ を評価 し ます。
•
TNS を向上す る 主な方法 と し て、 各 ク ロ ッ ク の WNS に焦点を置き ます。
•
WHS 違反が大 き い も の (< -1ns) を見直 し 、 不足 し てい る 制約ま たは不正な制約を特定 し ます。
•
デザ イ ンでの選択、 制約、 お よ び タ ーゲ ッ ト アーキ テ ク チ ャ での ト レー ド オ フ を再度考慮 し ます。
•
ツール オプシ ョ ンお よ び XDC の使用方法を理解 し ます。
•
タ イ ミ ン グが一度満た さ れ る と 、ツールではそれ以上 タ イ ミ ン グの向上 (マージ ンの増加) は試み ら れない と い う
こ と に注意 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
229
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ベース ラ イ ン制約の作成
ベース ラ イ ン制約を作成す る と い う こ と は、 最 も 単純な タ イ ミ ン グ制約のセ ッ ト を作成する と い う こ と です。 生成 ク
ロ ッ ク を含むすべての ク ロ ッ ク を完全に制約す る と 、 開始点 と 終点がデザ イ ン内に含まれ る すべてのパ ス (レ ジ ス タ
間のすべてのパ ス) は自動的に制約 さ れ ます。 こ れに よ り 、 デザ イ ンが変更中で も 、 内部デバ イ ス の タ イ ミ ン グの課
題を特定で き ます。 デザ イ ンには ク ロ ッ ク 乗せ換えがあ る 可能性があ る ので、 ベース ラ イ ン制約には指定の ク ロ ッ ク
(お よ び生成 ク ロ ッ ク ) 間の関係を含め る 必要があ り ます。
ベース ラ イ ン制約の作成におけ る 主要な概念は、 すべての制約が完全に指定 さ れ る ま で待たずに、 正確でほ と ん ど の
タ イ ミ ン グ パ ス に適用 さ れ る 最小限の制約を作成する こ と です。 I/O タ イ ミ ン グ定義お よ び ク ロ ージ ャ は、 デザ イ ン
がかな り 進行 し 、 I/O タ イ ミ ン グがわか っ て き てか ら 実行 し ます。 そのため、 ベース ラ イ ン制約には I/O タ イ ミ ン グ
制約は含まれません。
ベース ラ イ ン制約は、 設計プ ロ セ ス の初期段階で作成す る こ と をお勧め し ます。 デザ イ ンの HDL に大 き な変更を加
え る 際は、 こ れ ら のベース ラ イ ン制約を適用する 必要があ り ます。 デザ イ ン を ア ッ プデー ト し た と き に タ イ ミ ン グ を
確認す る こ と に よ り 、 タ イ ミ ン グのボ ト ルネ ッ ク をす ぐ に見つけ る こ と がで き ます。
ヒ ン ト : ベース ラ イ ン制約の作成については、 「ベース ラ イ ン制約の定義」 を参照 し て く だ さ い。 タ イ ミ ン グ レ ポー
ト の解釈方法については、 「 タ イ ミ ン グ レ ポー ト の理解」 を参照 し て く だ さ い。 ベース ラ イ ン制約で タ イ ミ ン グ問題
が発生 し た場合は、 「 タ イ ミ ン グ問題のデバ ッ グ と 修正」 を参照 し て く だ さ い。
I/O の タ イ ミ ン グ要件が決定 し た ら 、 I/O 制約を追加で き ます。
ザ イ リ ン ク ス IP ま たはパー ト ナー IP は、 ザ イ リ ン ク ス制約手法に準拠す る XDC 制約 と 共に提供 さ れます。 IP 制約
は、 合成 と イ ンプ リ メ ン テーシ ョ ンに自動的に含まれます。 デザ イ ンのベース ラ イ ン制約を作成す る 際に保持す る 必
要があ り ます。
デザ イ ン フ ロ ーを進行 し 、 制約を調整 し なが ら 、 付録 A 「ベース ラ イ ン制約の作成 と タ イ ミ ン グ制約の検証」 の質
問事項に答え て く だ さ い。 こ れ ら の質問事項は、 タ イ ミ ン グ ク ロ ージ ャ の達成に向けての進行状況を確認 し 、 ボ ト ル
ネ ッ ク と な る 可能性のあ る 問題を特定す る のに役立ち ます。
タ イ ミ ング レポー ト の理解
タ イ ミ ン グ サマ リ レ ポー ト には、 設定 さ れてい る 制約 と 比較 し たデザ イ ンの タ イ ミ ン グ特性に関す る 情報を示 し ま
す。 デザ イ ンのサ イ ンオ フ では、 タ イ ミ ン グ サマ リ の次の値を確認 し ます。
•
TNS ( ト ー タ ル ネガテ ィ ブ ス ラ ッ ク ) : デザ イ ン全体ま たは特定の ク ロ ッ ク ド メ イ ンに含まれ る 各エン ド ポ イ ン
ト のセ ッ ト ア ッ プ/ リ カバ リ 違反の合計。 ワ ース ト セ ッ ト ア ッ プ/ リ カバ リ ス ラ ッ ク は、 WNS (ワ ース ト ネガテ ィ
ブ ス ラ ッ ク ) です。
•
THS ( ト ー タ ル ホール ド ス ラ ッ ク ) : デザ イ ン全体ま たは特定の ク ロ ッ ク ド メ イ ンに含まれ る 各エン ド ポ イ ン ト
のホール ド / リ ムーバル違反の合計。 ワ ース ト ホール ド / リ ムーバル ス ラ ッ ク は、WHS ( ワース ト ホール ド ス ラ ッ
ク ) です。
•
TPWS ( ト ー タ ル パルス幅ス ラ ッ ク ) : デザ イ ン全体ま たは特定の ク ロ ッ ク ド メ イ ンに含まれ る 各 ク ロ ッ ク ピ ン
の、 次のチ ェ ッ ク におけ る 違反の合計。
•
°
最小 Low パルス幅
°
最小 High パルス幅
°
最小周期
°
最大周期
°
最大ス キ ュ ー (同 じ 下位セルの 2 つの ク ロ ッ ク ピ ン間)
WPWS ( ワース ト パルス幅ス ラ ッ ク ) は、 ク ロ ッ ク ピ ンのパルス幅、 周期、 ま たは ス キ ュ ー チ ェ ッ ク すべての
ワース ト ス ラ ッ ク です。
ト ー タ ル ス ラ ッ ク (TNS、THS、ま たは TPWS) は、デザ イ ンの違反のみを反映 し てい ます。すべての タ イ ミ ン グ チ ェ ッ
ク が満た さ れ る と 、 ト ー タ ル ス ラ ッ ク は ヌ ルにな り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
230
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
タ イ ミ ン グ パ ス レ ポー ト には、 各 タ イ ミ ン グ チ ェ ッ ク で論理パ ス の ス ラ ッ ク が ど の よ う に算出 さ れたかの詳細情報
も 示 さ れます。 完全に制約 さ れたデザ イ ンでは、 各パ ス には 1 つま たは複数の要件があ り 、 関連の ロ ジ ッ ク が正 し く
機能す る ためにはそれ ら の要件がすべて満た さ れ る 必要があ り ます。
WNS、 TNS、 WHS、 お よ び THS で示 さ れ る 主なチ ェ ッ ク は、 シーケ ン シ ャ ル セルの機能要件か ら 求め ら れます。
•
セ ッ ト ア ッ プ タ イ ム : 新 し いデー タ が正 し く キ ャ プチ ャ さ れ る ために、 次のア ク テ ィ ブ ク ロ ッ ク エ ッ ジの前に
新 し いデー タ が安定 し ていなければな ら ない時間。
•
ホール ド 要件 : 不正な値がキ ャ プチ ャ さ れない よ う に、ア ク テ ィ ブ ク ロ ッ ク エ ッ ジの後にデー タ が安定 し た ま ま
でいなければな ら ない時間。
•
リ カバ リ タ イ ム : 非同期 リ セ ッ ト 信号が非ア ク テ ィ ブ ス テー ト に ト グル さ れてか ら 次のア ク テ ィ ブ ク ロ ッ ク
エ ッ ジ ま でに必要な最小時間。
•
リ ムーバル タ イ ム : 非同期 リ セ ッ ト 信号を問題な く 非ア ク テ ィ ブ ス テー ト に ト グルで き る 、 ア ク テ ィ ブ ク ロ ッ
ク エ ッ ジか ら の最小時間。
同 じ ク ロ ッ ク ネ ッ ト に接続 さ れた 2 つの フ リ ッ プ フ ロ ッ プ間のパ ス が、 単純な例です。
ク ロ ッ ク ネ ッ ト に タ イ ミ ン グ ク ロ ッ ク を定義す る と 、 タ イ ミ ン グ解析に よ り 、 デス テ ィ ネーシ ョ ン フ リ ッ プ フ ロ ッ
プのデー タ ピ ン で最 も 見積 も り が悪いが妥当な動作条件におけ る セ ッ ト ア ッ プ チ ェ ッ ク お よ びホール ド チ ェ ッ ク の
両方が実行 さ れ ます。 セ ッ ト ア ッ プお よ びホール ド ス ラ ッ ク の両方が正の場合、 ソ ース フ リ ッ プ フ ロ ッ プか ら デス
テ ィ ネーシ ョ ン フ リ ッ プ フ ロ ッ プへのデー タ 転送が正 し く 実行 さ れます。
タ イ ミ ン グ解析の詳細は、『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906)
[参照 21] の 「 タ イ ミ ン グ解析の基礎の理解」 を参照 し て く だ さ い。
タ イ ミ ング ク ロージ ャの基準
タ イ ミ ン グ ク ロ ージ ャ は、デザ イ ンがハー ド ウ ェ アで ど の よ う に動作す る か を表す有効な制約を記述す る と こ ろか ら
始ま り ます。 次の基準を満たす必要があ り ます。
•
「適切な制約」
•
「 タ イ ミ ン グ違反がない」
適切な制約
•
すべてのア ク テ ィ ブな ク ロ ッ ク ピ ンに ク ロ ッ ク 定義が適用 さ れてい る 。
•
すべてのア ク テ ィ ブ パ ス のエン ド ポ イ ン ト に、 定義済み ク ロ ッ ク に対す る 要件 (セ ッ ト ア ッ プ/ホール ド / リ カバ
リ / リ ムーバル) があ る 。
•
すべてのア ク テ ィ ブな入力 ポー ト に入力遅延制約が設定 さ れてい る 。
•
すべてのア ク テ ィ ブな出力 ポー ト に出力遅延制約が設定 さ れてい る 。
•
タ イ ミ ン グ例外が正 し く 指定 さ れてい る 。
注意 : 制約に ワ イ ル ド カー ド を過剰に使用する と 、 実際に適用 さ れ る 制約が意図 し た も の と 異な る も のにな る こ と が
あ り ます。
ザ イ リ ン ク ス IP で提供 さ れ る 制約を除 き 、 入力お よ び出力遅延制約お よ びパ ス特定の タ イ ミ ン グ例外は、 ベース ラ
イ ン制約には適用 さ れません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
231
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
タ イ ミ ング違反がない
•
セ ッ ト ア ッ プ/ リ カバ リ (最大解析) : WNS > 0ns お よ び TNS = 0ns
•
ホール ド / リ ムーバル (最小解析) : WHS > 0ns お よ び THS = 0ns
•
パルス幅 : WPWS > 0ns お よ び TPWS = 0ns
デザイ ンが適切に制約 さ れているかを確認
タ イ ミ ン グ結果を見て違反がないか ど う かを確認す る 前に、 デザ イ ンのすべての同期エン ド ポ イ ン ト が適切に制約 さ
れてい る こ と を確認 し て く だ さ い。
check_timing を実行 し て制約が適用 さ れていないパ ス を特定 し ます。 こ の コ マ ン ド は ス タ ン ド ア ロ ン で実行で き
ますが、 report_timing_summary の一部 と し て も 実行 さ れます。
check_timing コ マ ン ド では、 次のチ ェ ッ ク が実行 さ れ ます。 こ れ ら のチ ェ ッ ク は、 タ イ ミ ン グ定義に不足 し てい
る も のがあ る か、 間違いがないか、 ま たは タ イ ミ ン グが正 し く 満た さ れてい る こ と を示 し ます。
•
「no_clock ま たは constant_clock」
•
「unconstrained_internal_endpoints」
•
「no_input_delay」
•
「no_output_delay」
•
「multiple_clock」
•
「generated_clocks」
•
「loops」
•
「partial_input_delay」
•
「partial_output_delay」
•
「latch_loops」
no_clock または constant_clock
定義 さ れた タ イ ミ ン グ ク ロ ッ ク が供給 さ れていない ク ロ ッ ク ピ ン を レ ポー ト し ます。 定数 ク ロ ッ ク ピ ン も レ ポー ト
さ れます。 不足 し てい る ク ロ ッ ク 制約がないか、 ま たは ク ロ ッ ク ピ ンが誤っ て定数に接続 さ れてないかがチ ェ ッ ク さ
れます。
unconstrained_internal_endpoints
出力ポー ト を除 く 、 タ イ ミ ン グ要件がないパ ス のエン ド ポ イ ン ト を レ ポー ト し ます。 こ れは、 no_clock チ ェ ッ ク で
レ ポー ト さ れ る 不足 し てい る ク ロ ッ ク 定義に も 直接関係 し てい ます。
no_input_delay
入力遅延制約が設定 さ れていない ク ロ ッ ク 以外の入力ポー ト を レ ポー ト し ま す。 不足 し てい る set_input_delay
がないか をチ ェ ッ ク し ます。
no_output_delay
出力遅延制約が設定 さ れていない ク ロ ッ ク 以外の出力ポー ト を レ ポー ト し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
232
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
multiple_clock
複数の タ イ ミ ン グ ク ロ ッ ク が到達す る ク ロ ッ ク ピ ン を レ ポー ト し ます。 こ の状況は、 ク ロ ッ ク ツ リ ーに ク ロ ッ ク マ
ルチプ レ ク サーがあ る 場合に発生す る こ と があ り ます。 同 じ ク ロ ッ ク ツ リ ーを共有する ク ロ ッ ク は、デフ ォ ル ト では
タ イ ミ ン グ関係があ る も の と し て制約が適用 さ れますが、 こ れは現実的な タ イ ミ ン グ状況を表 し てい ません。 ク ロ ッ
ク ツ リ ーに存在 さ せ る こ と がで き る ク ロ ッ ク は、 常に 1 つのみです。
ク ロ ッ ク ツ リ ーにマルチプ レ ク サーがあ る べ き でない と 思われ る 場合は、 ク ロ ッ ク ツ リ ーを調べて、 特定の ク ロ ッ
ク ピ ンにど の よ う に複数の ク ロ ッ ク が到達 し てい る か、 それはなぜか を確認 し て く だ さ い。
generated_clocks
同 じ ク ロ ッ ク ツ リ ーの フ ァ ン イ ン コ ーン にないマ ス タ ー ク ロ ッ ク ソ ース を基準 と す る 生成 ク ロ ッ ク を レ ポー ト し
ます。
loops
デザ イ ン で検出 さ れた組み合わせループ を レ ポー ト し ます。 ループは、 タ イ ミ ン グ を レ ポー ト す る ため Vivado タ イ
ミ ン グ エン ジ ンに よ り 自動的に分離 さ れます。
partial_input_delay
最小入力遅延制約ま たは最大入力遅延制約の ど ち ら か し か設定 さ れていない入力ポー ト を レ ポー ト し ます。 こ れ ら の
ポー ト は、 セ ッ ト ア ッ プ解析 と ホール ド 解析の両方では解析 さ れません。
partial_output_delay
最小出力遅延制約ま たは最大出力遅延制約の ど ち ら か し か設定 さ れていない出力ポー ト を レ ポー ト し ます。 こ れ ら の
ポー ト は、 セ ッ ト ア ッ プ解析 と ホール ド 解析の両方では解析 さ れません。
latch_loops
デザ イ ンに ラ ッ チを通過す る ループがあ る か ど う かをチ ェ ッ ク し ます。 こ れ ら のループは組み合わせループ と し ては
レ ポー ト さ れず、 同 じ パ ス上の借 り る こ と ので き る ラ ッ チ時間の算出に影響 し ます。
check_timing で検出 さ れた問題の修正
すべてのチ ェ ッ ク が同等に重要なわけではあ り ません。 次に、 check_timing で検出 さ れた問題を確認 し て修正す
る 際に、 重要な順にチ ェ ッ ク を示 し ます。
no_clock お よび unconstrained_internal_endpoints
こ れ ら のチ ェ ッ ク が最 も 重要です。 こ れ ら のチ ェ ッ ク に よ り 、 デザ イ ンの内部パ ス が完全に制約 さ れてい る か を確認
で き ます。 ス タ テ ィ ッ ク タ イ ミ ン グ解析のサ イ ンオ フ の ク オ リ テ ィ 確認においては、 unconstrained_internal_endpoints
が 0 であ る 必要があ り ます。
ただ し 、 unconstrained_internal_endpoints が 0 であ っ て も 、 問題がない と は限 り ません。 こ れは、 すべての内部パ ス に
タ イ ミ ン グ解析用の制約が適用 さ れてい る こ と を示 し てい る だけで、 制約の値が正 し い こ と は示 し てい ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
233
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
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 プ ロ グ ラ ム なので、 制約の順序が関係 し ます。
タ イ ミ ング問題のデバ ッ グ と 修正
次の表に、 タ イ ミ ン グ レ ポー ト に示 さ れ る タ イ ミ ン グ エ ラ ーを系統的にデバ ッ グお よ び修正す る ためのガ イ ド ラ イ
ン を示 し ます。
表 5-4 : タ イ ミ ング問題をデバ ッ グおよび修正する ための手順
手順
詳細情報を含むセ ク シ ョ ン
すべて の ク ロ ッ ク お よ び ク ロ ッ ク 関係が正 し く 定義 さ れ
てい る こ と を確認す る
「ベース ラ イ ン制約の定義」
ク ロ ッ ク ス キ ュ ーお よ びば ら つ き が大 き すぎ ない こ と を
確認す る
「ク ロ ッ ク のス キ ュー と ばらつき」
パ ス の ロ ジ ッ ク レベル数が多すぎない こ と を確認する
「デー タ パス遅延お よ び ロ ジ ッ ク レベル」
パ ス に最適な リ ソ ー ス (セル/ピ ン) が使用 さ れてい る か を
確認す る
「MMCM の周波数合成」
制御セ ッ ト の数が不必要に多 く ない こ と を確認す る
「制御セ ッ ト 」
上記を確認 し て問題がない場合は、 残 り の違反を調べて、 バ ッ ク エン ド の異な る オプシ ョ ン (フ ロ アプ ラ ンの手動作
成な ど) を使用す る な ど、 次の操作を決定 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
234
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
そ の他のデザ イ ン 解析テ ク ニ ッ ク の詳細お よ び report_design_analysis Tcl コ マ ン ド の使用方法は、 『Vivado
Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21] の 「デザ イ ン解析テ ク
ニ ッ ク 」 お よ び 「デザ イ ン解析レ ポー ト 」 を参照 し て く だ さ い。
ベース ラ イ ン制約の定義
適切な ク ロ ッ ク 制約がわか ら ない場合は、Vivado IDE を使用 し て合成後のネ ッ ト リ ス ト の ク ロ ッ ク 制約すべての リ ス
ト を作成で き ます。 Vivado Design Suite の IDE グ ラ フ ィ カル イ ン タ ーフ ェ イ スお よ びレ ポー ト 機能に よ り 、 制約が必
要な も のが正確に示 さ れます。
•
「手順 1 : 作成す る 必要のあ る ク ロ ッ ク を特定す る 」
•
「手順 2 : 不足 し てい る ク ロ ッ ク がない こ と を確認す る 」
•
「手順 3 : 非同期 ク ロ ッ ク ド メ イ ン を特定する 」
手順 1 : 作成する必要のある ク ロ ッ ク を特定する
合成後のネ ッ ト リ ス ト ま たはチ ェ ッ ク ポ イ ン ト を Vivado IDE に読み込みます。 Tcl コ ン ソ ールで タ イ ミ ン グ を リ セ ッ
ト し 、 すべての タ イ ミ ン グ制約を削除 し ます。 こ れに よ り 、 制約を白紙に戻す こ と がで き ます。
ク ロ ッ ク ネ ッ ト ワー ク レ ポー ト を生成す る と 、 デザ イ ン で定義す る 必要のあ る プ ラ イ マ リ ク ロ ッ ク をすべて リ ス ト
で き ます。 こ の ク ロ ッ ク ネ ッ ト ワー ク の リ ス ト に よ り 、 作成する 必要のあ る ク ロ ッ ク 制約がわか り ます。 ク ロ ッ ク 作
成 ウ ィ ザー ド を使用 し て、 各 ク ロ ッ ク のパ ラ メ ー タ ーを適切に指定 し て く だ さ い。
手順 2 : 不足 し ている ク ロ ッ クがない こ と を確認する
ク ロ ッ ク ネ ッ ト ワ ー ク レ ポー ト にすべての ク ロ ッ ク ネ ッ ト ワ ー ク に制約が設定 さ れた こ と が示 さ れた ら 、 生成 ク
ロ ッ ク が正 し い こ と を確認 し ます。 Vivado ツールでは、 ク ロ ッ ク 制約が MMCM、 PLL、 BUFGCTRL な ど の ク ロ ッ ク
調整ブ ロ ッ ク を介 し て自動的に伝搬 さ れ る ので、 生成 さ れた制約を確認する こ と が重要です。 report_clocks を使
用 し て、 create_clock 制約で ど の ク ロ ッ ク が生成 さ れ、 ど の ク ロ ッ ク が自動生成 さ れたかを確認 し ます。
report_timing の結果にすべての ク ロ ッ ク が伝搬 さ れてい る こ と が示 さ れ ます。 create_clock で作成 さ れ る プ
ラ イ マ リ ク ロ ッ ク と ク ロ ッ ク 調整ブ ロ ッ ク に よ り 生成 さ れ る 生成 ク ロ ッ ク の違いは、 [Attributes] 列に示 さ れます。
•
伝搬 (P) と のみ示 さ れ る ク ロ ッ ク は、 プ ラ イ マ リ ク ロ ッ ク です。
•
伝搬 (P) お よ び生成 (G) の両方が示 さ れ る ク ロ ッ ク は、 生成 ク ロ ッ ク です。
生成 ク ロ ッ ク は、 get_generated_clocks 制約を使用 し て も 作成で き ます。 詳細は、 『Vivado Design Suite ユーザー
ガ イ ド : 制約の使用』 (UG903) [参照 18] を参照 し て く だ さ い。
X-Ref Target - Figure 5-6
図 5-6 : report_clocks によ り 示 さ れる プ ラ イ マ リ ク ロ ッ クから生成 さ れた ク ロ ッ ク
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
235
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
手順 3 : 非同期ク ロ ッ ク ド メ イ ン を特定する
ク ロ ッ ク 制約を確認 し た ら 、 非同期 ク ロ ッ ク ド メ イ ン を ま た ぐ パス を特定する 必要があ り ます。
注記 : こ のセ ク シ ョ ンでは ク ロ ッ ク 領域の境界を適切に ま た ぐ方法は説明 し ませんが、存在する ク ロ ッ ク ド メ イ ン を
ま た ぐ パ ス を特定 し 、 制約す る 方法を示 し ます。
ク ロ ッ ク ド メ イ ン間の関係は、 report_clock_interaction を使用 し て確認する のが最適です。 こ の レ ポー ト に
は、 ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ ク のマ ト リ ッ ク ス が示 さ れ ます。 各セルの色は、 対応す る 行 と 列
で表 さ れ る ク ロ ッ ク 間の関連性を示 し ます。 次の図に、 ク ロ ッ ク 関連性レ ポー ト の例を示 し ます。
X-Ref Target - Figure 5-7
図 5-7 : ク ロ ッ ク関連性レポー ト の例
次の表に、 こ の レ ポー ト の各色の説明を示 し ます。
表 5-5 : report_clock_interaction の色の説明
色
説明
次の操作
黒
ク ロ ッ ク ド メ イ ン間に関連性はあ り ません。
こ れ ら の ク ロ ッ ク ド メ イ ン に関連性があ る はず
の場合以外は、 特に操作は必要あ り ません。
緑
ク ロ ッ ク ド メ イ ン間に関連性があ り 、 パ ス に タ
イ ミ ン グ制約が適用 さ れてい ます。
こ れ ら の ク ロ ッ ク ド メ イ ン に関連性がないはず
の場合以外は、 特に操作は必要あ り ません。
シア ン
関連性のあ る ク ロ ッ ク ド メ イ ン間の一部にユー
ザー例外が設定 さ れてお り 、タ イ ミ ン グが適用 さ
れてい ません。
タ イ ミ ン グ例外が適切な も ので あ る こ と を確認
し ます。
赤
ク ロ ッ ク ド メ イ ン間に関連性があ り 、 パ ス に タ
イ ミ ン グ制約が適用 さ れてい ますが、ク ロ ッ ク が
独立 (非同期) であ る よ う に見え ます。
こ れ ら の ク ロ ッ ク を非同期 と し て定義す る 必要
があ る か、 共通のプ ラ イ マ リ ソ ー ス を共有す る
必要があ る か を確認 し ます。
オレ ンジ
ク ロ ッ ク ド メ イ ン 間に関連性が あ り ま す。 ク 一部のパ ス のみにユーザー例外が設定 さ れて い
ロ ッ ク は独立 (非同期) であ る よ う に見え ますが、 る のはなぜか を確認 し ます。すべてのパ ス に例外
例外が設定 さ れてい る ために タ イ ミ ン グ が適用 を設定する 必要はあ り ますか。
さ れないのは一部のパ ス のみです。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
236
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
表 5-5 : report_clock_interaction の色の説明 (続き)
色
説明
次の操作
青
ク ロ ッ ク ド メ イ ン間に関連性があ り 、 パ ス に タ
イ ミ ン グ制約が適用 さ れてい ません。
こ れ ら の ク ロ ッ ク が非同期で あ る か を確認 し ま
す。 ま た、 対応す る HDL コ ー ド が正 し く 記述 さ
れてい る か を確認 し 、 ク ロ ッ ク ド メ イ ン間が正
し く 同期 さ れてお り 、デー タ が適切に転送 さ れ る
こ と を確認 し ます。
水色
ク ロ ッ ク ド メ イ ン間に関連性があ り 、
set_max_delay -datapath only に よ り パス
に タ イ ミ ン グ制約が適用 さ れてい ます。
ク ロ ッ ク が非同期であ り 、指定 さ れた遅延が正 し
い こ と を確認 し ます。
フ ォ ル ス パ ス制約ま たは ク ロ ッ ク グループ制約を作成す る 前に、 マ ト リ ッ ク ス に表示 さ れ る 色が黒、 赤、 緑のみに
な る よ う に し て く だ さ い。 すべての ク ロ ッ ク にはデフ ォ ル ト で タ イ ミ ン グ関係が適用 さ れ る ので、 非同期 ク ロ ッ ク を
分離す る こ と は重要です。 非同期 ク ロ ッ ク を分離 し ない と 、 デザ イ ンが過剰に制約 さ れ る 可能性があ り ます。
共通のプ ラ イ マ リ ク ロ ッ ク を持たない ク ロ ッ ク ペアの特定
ク ロ ッ ク 関連性レ ポー ト は、 関連性のあ る ク ロ ッ ク のプ ラ イ マ リ ク ロ ッ ク ソ ース が共通であ る か を示 し ます。 プ ラ
イ マ リ ク ロ ッ ク が共通でない ク ロ ッ ク ペアは、多 く の場合非同期です。そのため、レ ポー ト で [Common Primary Clock]
列で並べ替え て、 こ れ ら のペア を特定す る と 有益です。 こ の レ ポー ト では、 ク ロ ッ ク ド メ イ ン を ま た ぐ パ ス が適切に
設計 さ れてい る か ど う かは判断で き ません。 ク ロ ッ ク ド メ イ ン を ま た ぐ パ ス を適切に設計する 方法は、 第 4 章 「デザ
イ ンの作成」 を参照 し て く だ さ い。
厳 し い タ イ ミ ング要件の特定
ク ロ ッ ク 関連性レ ポー ト には、 各 ク ロ ッ ク ペアに対 し て、 ソ ース ク ロ ッ ク か ら デス テ ィ ネーシ ョ ン ク ロ ッ ク に切 り
替わ る すべてのパ ス のパ ス要件 も 示 さ れ ます。 表をパ ス要件 (WNS) で並べ替え、 デザ イ ン で最 も 厳 し い要件を特定
し ます。 図 5-7 では、 タ イ ミ ン グ レ ポー ト を [WNS] 列を基準に並べ替え てい ます。 こ れ ら の要件を見直 し て、 無効
な厳 し い要件が存在 し ていない こ と を確認 し ます。
Vivado ツールは、 各 ク ロ ッ ク を 1000 サ イ ク ル調べ、 最 も 少ないサ イ ク ルでエ ッ ジが揃 う 箇所を特定 し ます。
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 は
最 も 厳 し い要件 と はな り ません。
こ れは厳 し い タ イ ミ ン グ要件なので、 対処が必要 と な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
237
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
デザ イ ンに よ っ て、 次のいずれかの制約を使用す る と 、 こ れ ら の タ イ ミ ン グ ド メ イ ン を ま た ぐ状況を適切に処理で き
ます。
•
set_clock_groups
•
set_false_path
•
set_max_delay
•
set_multicycle_path
何 も し ない場合、 こ れ ら の ク ロ ッ ク ド メ イ ン を ま た ぐ パ ス で タ イ ミ ン グ違反が発生 し た り 、 最適化お よ び配置配線
が、 デザ イ ンの ク リ テ ィ カル パ ス ではな く 、 こ れ ら のパ ス に焦点を置いて実行 さ れ る 可能性があ り ます。 こ の よ う な
パ ス を タ イ ミ ン グ ド リ ブンの イ ンプ リ メ ン テーシ ョ ンの前に特定する こ と が重要です。
X-Ref Target - Figure 5-8
図 5-8 : ク ロ ッ ク ド メ イ ンが 250MHz から 200MHz に切 り 替わる
report_clock_networks を使用 し た プ ラ イ マ リ ク ロ ッ ク と 生成 ク ロ ッ ク の分離
タ イ ミ ン グ例外を作成す る 前に、report_clock_networks でデザ イ ンに含まれ る プ ラ イ マ リ ク ロ ッ ク を特定 し て
お く と 有益です。 すべてのプ ラ イ マ リ ク ロ ッ ク がお互いに非同期であ る 場合、 1 つの制約を使用 し てプ ラ イ マ リ ク
ロ ッ ク と それ ら か ら 生成 さ れた ク ロ ッ ク を分離で き ます。 report_clock_networks で生成 さ れた レ ポー ト のプ ラ
イ マ リ ク ロ ッ ク を使用 し て、 次の図に示す よ う に各 ク ロ ッ ク グループ と 関連の ク ロ ッ ク を分離で き ます。
X-Ref Target - Figure 5-9
図 5-9 : ク ロ ッ ク ネ ッ ト ワー ク レ ポー ト
### Decouple asynchronous clocks
set_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]
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
238
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
I/O 制約および タ イ ミ ング例外の制限
ほ と ん ど の タ イ ミ ン グ違反は内部パ ス で発生 し ます。 I/O 制約は、 特に ソ ース レ ジ ス タ と デス テ ィ ネーシ ョ ン レ ジ ス
タ が I/O バン ク 内にあ る 場合は、 最初のベース ラ イ ン制約の作成時には必要あ り ません。 I/O タ イ ミ ン グ制約は、 デ
ザ イ ンお よ びほかの制約が安定 し 、 タ イ ミ ン グ ク ロ ージ ャ がほぼ達成 さ れてか ら 追加 し ます。
タ イ ミ ン グ例外は、 RTL 設計の推奨事項に基づいて制限 し て使用 し 、 タ イ ミ ン グの問題が隠 さ れて し ま う こ と がない
よ う にす る 必要があ り ます。 ク ロ ッ ク 間の フ ォ ルス パ ス ま たは ク ロ ッ ク グループは、 こ の時点ま でに確認 し 、 最終
決定 し てお く 必要があ り ます。
IP 制約は、 すべて保持す る 必要があ り ます。 IP タ イ ミ ン グ制約がない と 、 既知の フ ォ ル ス パ ス が タ イ ミ ン グ違反 と
し て レ ポー ト さ れ る 可能性があ り ます。
各段階の前後におけるデザイ ンの WNS の評価
イ ンプ リ メ ン テーシ ョ ンの各段階の前後に、デザ イ ンの WNS を評価する 必要があ り ます。Tcl コ マ ン ド ラ イ ン フ ロ ー
を使用 し てい る 場合は、 ス ク リ プ ト の各 イ ン プ リ メ ン テーシ ョ ン段階の後に report_timing_summary を含め ま
す。 IDE を使用 し てい る 場合は、 tcl.post ス ク リ プ ト を使用 し て、 各手順の後に report_timing_summary を実行で
き ます。 ど ち ら の場合 も 、 WNS が大幅に悪化 し た場合は、 その手順のす ぐ 前のチ ェ ッ ク ポ イ ン ト を解析す る 必要が
あ り ます。
各 イ ンプ リ メ ン テーシ ョ ン手順の前後にデザ イ ン全体の タ イ ミ ン グ を評価す る のに加え、 フ ロ ーの各手順が タ イ ミ ン
グに与え る 影響を評価す る ため、 個別のパス を対象 と し た解析を実行で き ます。 た と えば、 タ イ ミ ン グ パ ス のネ ッ ト
遅延予測が、 配置後 と 最適化後で大幅に異な る と し ます。 各手順後の ク リ テ ィ カル パ ス の タ イ ミ ン グ を比較す る と 、
ク リ テ ィ カル パス の タ イ ミ ン グが ど の時点で悪化 し たのか を調べる こ と がで き ます。
合成後およびロ ジ ッ ク 最適化後
ネ ッ ト 遅延予測は、 すべてのパ ス の最適な配置に近い も のです。 違反の発生 し てい る パ ス を修正す る には、 次のいず
れか を実行 し ます。
•
RTL を変更 し ます。
•
異な る 合成オプシ ョ ン を使用 し ます。
•
マルチサ イ ク ル パス な どの タ イ ミ ン グ例外を追加し ます (適切でハー ド ウ ェ アでの機能に問題が発生し ない場合)。
合成前および配置後
配置後のネ ッ ト 遅延予測は、 フ ァ ン ア ウ ト が中程度か ら 大 き いネ ッ ト を除 き 、 最適な配線に近い も ので、 大 き めの遅
延が使用 さ れます。 ま た、 こ の時点のネ ッ ト 遅延では密集やホール ド の修正が考慮 さ れてお ら ず、 タ イ ミ ン グ結果が
実際 よ り 見積 も り の良い も の と な る こ と があ り ます。
ク ロ ッ ク ス キ ュ ーは正確に予測 さ れ、 バ ラ ン ス の悪い ク ロ ッ ク ツ リ ーの ス ラ ッ ク への影響を確認す る のに使用で き
ます。
ホール ド の修正は、 最小遅延解析を実行する こ と に よ り 予測で き ます。 違反が大 き い場合は、 ク ロ ッ ク ツ リ ーの変更
が必要です。 小 さ い違反は、 たいていは配線で修正 さ れます。
物理最適化の前後
次に関す る タ イ ミ ン グの問題を修正す る ために、 物理最適化を実行す る 必要があ る かを評価 し ます。
•
フ ァ ン ア ウ ト の大 き いネ ッ ト (report_high_fanout_nets で フ ァ ン ア ウ ト が最大の ク ロ ッ ク 以外のネ ッ ト を
表示)
•
タ ーゲ ッ ト が遠いネ ッ ト
•
パ イ プ ラ イ ン レ ジ ス タ の使用が最適でない DSP お よ び RAMB
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
239
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
配線の前後
ネ ッ ト が完全に配線 さ れていない場合を除 き 、ス ラ ッ ク は実際の配線ネ ッ ト 遅延で レ ポー ト さ れます。ス ラ ッ ク には、
セ ッ ト ア ッ プに対す る ホール ド の修正の影響 と 、 密集の影響が反映 さ れます。
配線後には、 ワース ト セ ッ ト ア ッ プ ス ラ ッ ク (WNS) 値にかかわ ら ず、 ホール ド 違反が残っ ていない よ う にす る 必要
があ り ます。 デザ イ ンでホール ド 要件が満た さ れていない場合、 さ ら に解析が必要です。 こ れは通常、 密集度が高 く 、
配線でそれ以上の タ イ ミ ン グの最適化が実行 さ れない こ と が原因です。 ホール ド 違反が大 き い場合 (4ns 以上) の場合
に も 発生す る こ と があ り ます。 大 き いホール ド 違反は配線でデフ ォ ル ト では修正 さ れません。 大 き いホール ド 違反は
通常、 不適切な ク ロ ッ ク 制約、 大 き い ク ロ ッ ク ス キ ュ ー、 不適切な I/O 制約が原因ですが、 こ れ ら は配置後ま たは合
成後に特定で き ます。
ホール ド 要件が満た さ れてい る (WHS>0) 場合は、 次の解析手順に従っ て く だ さ い。
タ イ ミ ング違反の根本的な原因の特定
タ イ ミ ン グ ド リ ブ ン アルゴ リ ズ ムは、 最悪の違反に焦点を置いて処理を実行 し ます。 最悪の違反に関連す る 問題を
理解 し て修正す る と 、 イ ンプ リ メ ン テーシ ョ ン フ ロ ーを再実行 し た と き に、 ほ と ん ど の小 さ い違反 も 修正 さ れます。
セ ッ ト ア ッ プでは、 まず各 ク ロ ッ ク グループの最悪の違反を解析 し ます。
•
ク ロ ッ ク グループ : あ る ク ロ ッ ク でキ ャ プチ ャ さ れ る ク ロ ッ ク 内、 ク ロ ッ ク 間、 非同期のパ スすべて
ホール ド では、 最悪の も のか ら すべての違反を解析す る 必要があ り ます。
セ ッ ト ア ッ プお よ びホール ド ス ラ ッ ク には、 複数の要素が影響 し ます。 次の簡潔なセ ッ ト ア ッ プお よ びホール ド ス
ラ ッ ク の式か ら 、 各要素を特定で き ます。
ス ラ ッ ク (セ ッ ト ア ッ プ/ リ カバ リ )
=
セ ッ ト ア ッ プ パス要件
- デー タ パス遅延 (最大)
+ ク ロ ッ ク スキ ュ ー
- ク ロ ッ クのばら つ き
- セ ッ ト ア ッ プ/ リ カバ リ タ イム
ス ラ ッ ク (ホール ド / リ ムーバル)
=
ホール ド パス要件
+ デー タ パス遅延 (最小)
- ク ロ ッ ク スキ ュ ー
- ク ロ ッ クのばら つ き
- ホール ド / リ ムーバル タ イム
タ イ ミ ン グ解析では、 ク ロ ッ ク ス キ ュ ーは常に次の よ う に算出 さ れます。
ク ロ ッ ク ス キ ュ ー = デス テ ィ ネーシ ョ ン ク ロ ッ ク 遅延 - ソ ース ク ロ ッ ク 遅延 (存在す る 場合は共通 ノ ー ド の後)
違反が発生 し てい る タ イ ミ ン グ パス の解析中、各変数の相対的な影響を調べ、 ど の変数が違反に最 も 影響 し てい る か
を判断す る 必要があ り ます。 その後主な要因を解析 し て、 パ ス の ど の特性がその値に最 も 影響 し てい る か を理解 し 、
その影響を軽減す る デザ イ ンお よ び制約の変更を特定 し ます。 デザ イ ン ま たは制約の変更が実質的でない場合は、 最
悪の も のか ら 開始 し てほかのすべての要因を同様に解析す る 必要があ り ます。 次に、 典型的な要因を最悪の も のか ら
順に リ ス ト し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
240
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
セ ッ ト ア ッ プ/ リ カバ リ の場合 :
•
デー タ パ ス遅延 : デー タ パス遅延か ら タ イ ミ ン グ パ ス要件を減算 し ます。差が負の ス ラ ッ ク 値 と 同等であ る 場合
は、 パ ス要件が厳 し すぎ る か、 デー タ パ ス遅延が大 き すぎ ます。
•
デー タ パ ス遅延 + セ ッ ト ア ッ プ/ リ カバ リ タ イ ム : デー タ パ ス遅延か ら タ イ ミ ン グ パ ス要件を減算 し 、 セ ッ ト
ア ッ プ/ リ カバ リ タ イ ム を加算 し ます。差が負の ス ラ ッ ク 値 と 同等であ る 場合は、パ ス要件が厳 し すぎ る か、 セ ッ
ト ア ッ プ/ リ カバ リ タ イ ムが通常 よ り 大 き い こ と が違反の原因 と な っ てい ます。
•
ク ロ ッ ク ス キ ュ ー : ク ロ ッ ク ス キ ュ ーお よ びス ラ ッ ク が似た よ う な負の値であ り 、ス キ ュ ーの絶対値が数百ピ コ
秒以上であ る 場合、 ス キ ュ ーが主な要因であ り 、 ク ロ ッ ク ト ポ ロ ジ を見直す必要があ り ます。
•
ク ロ ッ ク のば ら つ き : ク ロ ッ ク のば ら つき が数千ピ コ 秒以上であ る 場合、 ク ロ ッ ク ト ポ ロ ジ と ジ ッ タ ー値を見直
し てば ら つ き が大 き い原因を理解す る 必要があ り ます。
ホール ド / リ ムーバルの場合 :
•
ク ロ ッ ク ス キ ュ ー : ク ロ ッ ク ス キ ュ ーが 500ps を超え る 場合、 ク ロ ッ ク ト ポ ロ ジ を見直す必要があ り ます。
•
ク ロ ッ ク のば ら つ き : ク ロ ッ ク のば ら つき が数千ピ コ 秒以上であ る 場合、 ク ロ ッ ク ト ポ ロ ジ と ジ ッ タ ー値を見直
し てば ら つ き が大 き い原因を理解す る 必要があ り ます。
•
ホール ド / リ ムーバル タ イ ム : ホール ド / リ ムーバル タ イ ムが数百ピ コ 秒以上であ る 場合、 プ リ ミ テ ィ ブのデー タ
シー ト を見直 し て こ れが予測 さ れ る 結果であ る か ど う かを確認で き ます。
•
ホール ド パス要件 : 要件は通常 0 です。 0 でない場合、 タ イ ミ ン グ制約が正 し いか ど う か を確認す る 必要があ り
ます。
すべての タ イ ミ ン グ制約が正 し く 妥当であ る 場合は、 タ イ ミ ン グ違反の最 も 一般的な要因はセ ッ ト ア ッ プ/ リ カバ リ
タ イ ミ ン グ パ ス のデー タ パス遅延お よ びホール ド / リ ムーバル タ イ ミ ン グ パ ス の ス キ ュ ーです。デザ イ ン サ イ ク ルの
初期段階では、 こ れ ら 2 つの要因を解析する こ と に よ り ほ と ん ど の タ イ ミ ン グ問題を修正で き ます。 デザ イ ンお よ び
制約が改善お よ び調整 さ れた後に違反が残っ てい る 場合は、 こ れ ら の違反は通常複数の要素の組み合わせで あ る の
で、 すべての要素を同時に調べて どれを改善す る こ と がで き る かを特定す る 必要があ り ます。
デザ イ ン解析の実行には、 複数の方法があ り ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ
び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21] の 「デザ イ ン解析テ ク ニ ッ ク 」 を参照 し て く だ さ い。
デー タ パス遅延お よびロ ジ ッ ク レ ベル
通常、 パ ス に含まれ る LUT お よ びその他のプ リ ミ テ ィ ブの数が遅延に影響する 最 も 重要な要素です。
パ ス遅延が次の よ う な構成の場合があ り ます。
•
セル遅延が 50 ~ 100%
パ ス を変更 し て短 く す る か、 よ り 高速の ロ ジ ッ ク セルを使用で き ますか。 詳細は、 「テ ク ノ ロ ジの選択の確認」
を参照 し て く だ さ い。
エ ラ ボ レー ト 済みビ ュ ーを使用 し た RTL の最適化の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解
析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 21] の 「エ ラ ボ レー ト 済みビ ュ ーを使用 し た RTL の最適化」 を
参照 し て く だ さ い。
•
配線遅延が 50 ~ 100%
こ のパ ス はホール ド 違反の修正の影響を受けてい ますか。 対応す る 解析手法を使用 し ます。
°
°
はい : 影響を受けてい る ネ ッ ト は CDC パス の一部ですか。
-
はい : CDC パ ス に制約は設定 さ れてい ますか。
-
いいえ : ホール ド 違反が修正 さ れたパ ス の開始点お よ び終点にバ ラ ン ス の取れた ク ロ ッ ク ツ リ ーが使
用 さ れてい ますか。 ス キ ュ ー値を確認 し ます。
いいえ : 次の密集に関す る 項目を参照 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
241
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
こ のパ ス は密集の影響を受けてい ますか。 各ネ ッ ト 遅延お よ びフ ァ ン ア ウ ト を確認し 、 [Device] ウ ィ ン ド ウ で配
線 リ ソ ース の表示を オンに し て配線を表示 し ます (配線後の解析のみ)。 密集 メ ト リ ッ ク を オンに し て、 パ ス が密
集エ リ ア ま たはその近 く に配置 さ れてい る か も 確認で き ます。
°
°
はい : 遅延値が最 も 大 き いネ ッ ト で、 フ ァ ン ア ウ ト は小 さ いですか (< 10)。
-
はい : 配線が最適であ る よ う に見え る (直線) が ド ラ イ バー と ロ ー ド が離れてい る 場合、 最適でない配置
は密集に関連 し てい ます。 ド ラ イ バーま たは ロ ー ド を手動で移動 し 、 同 じ パ ス で タ イ ミ ン グ解析を実行
し て、 ほかのパ ス に悪影響を与え る こ と な く ス ラ ッ ク を向上で き る か ど う か を試 し てみて く だ さ い。 い
く つかのネ ッ ト で同 じ 処理を実行 し た後、 次回 イ ンプ リ メ ン テーシ ョ ン ツールを実行 し た と き に、同様
の配置 ソ リ ュ ーシ ョ ンが使用 さ れ る よ う に、 フ ロ アプ ラ ン制約を作成 し ます。
-
いいえ : 物理 ロ ジ ッ ク 最適化を使用 し てネ ッ ト の ド ラ イ バーを複製 し てみます。 複製す る と 、 各 ド ラ イ
バーが自動的に ロ ー ド の近 く に配置 さ れ る ので、 全体的なデー タ パ ス遅延が削減 さ れます。
いいえ : デザ イ ンが分散 し すぎてい ます。 I/O コ ン ポーネ ン ト ま たは特定のア ン カー ポ イ ン ト への接続に基
づいて、 特定の領域に配置す る 必要のあ る 部分を特定 し て フ ロ アプ ラ ン し ます。 詳細は、 「フ ロ アプ ラ ン」 セ
ク シ ョ ン を参照 し て く だ さ い。
密集お よ び タ イ ミ ン グ パ ス特性の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ
ク ニ ッ ク 』 (UG906) [参照 21] の 「report_design_analysis コ マ ン ド の使用」 を参照 し て く だ さ い。
ク ロ ッ ク のスキ ュ ー と ば ら つ き
ザ イ リ ン ク ス FPGA デバ イ ス では、 さ ま ざ ま な タ イ プの配線 リ ソ ー ス を使用 し て、 フ ァ ン ア ウ ト の大 き い ク ロ ッ ク 、
短い伝搬遅延、 非常に小 さ い ス キ ュ ーな ど、 一般的な ク ロ ッ キ ン グ方法をサポー ト し ます。 ク ロ ッ ク ス キ ュ ーは、 組
み合わせ ロ ジ ッ ク ま たは イ ン タ ー コ ネ ク ト の ど ち ら を含む場合で も 、 レ ジ ス タ 間のパ ス に影響 し ます。
推奨 : デザ イ ン解析レ ポー ト (report_design_analysis) を実行 し て タ イ ミ ン グ レ ポー ト を作成 し ます。 こ の レ
ポー ト に、 ク ロ ッ ク ス キ ュ ー デー タ に関する 情報が含まれます。 ク ロ ッ ク ネ ッ ト に可能な ク ロ ッ ク ス キ ュ ーがない
こ と を確認 し て く だ さ い。
パフ ォーマ ン ス の高い ク ロ ッ ク ド メ イ ン (300MHz 以上) の ク ロ ッ ク ス キ ュ ーは、 パフ ォーマ ン ス に影響 し ます。 ク
ロ ッ ク ス キ ュ ーは、 周期の 15% 以内であ る 必要があ り ます。 300MHz の ク ロ ッ ク では、 1 つの ク ロ ッ ク ド メ イ ン内
の最大 ク ロ ッ ク ス キ ュ ーは 500ps です。 ク ロ ッ ク 乗せ換えパ ス では、 ク ロ ッ ク で異な る リ ソ ー ス が使用 さ れ、 共通
ノ ー ド が ク ロ ッ ク ツ リ ーの さ ら に上の方に配置 さ れてい る ので、 ス キ ュ ーが大 き く な る こ と があ り ます。 SDC ベー
ス の ツールでは、 次の よ う に ク ロ ッ ク 間の タ イ ミ ン グ解析を実行 し ない よ う 指定 し ない場合、 すべての ク ロ ッ ク 間の
パ ス が解析 さ れます。
set_clock_groups/set_false_path/set_max_delay -datapath_only)
ク ロ ッ ク ス キ ュ ーが大 き い場合は、 Vivado IDE でそのパ ス に対 し て タ イ ミ ン グ解析を実行 し 、 回路図を作成 し て ク
ロ ッ ク ト ポ ロ ジ を調べて く だ さ い。
ク ロ ッ ク スキ ュ ーが大き い場合のデバ ッ グ
まず、 ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ ク 、 お よ びその関係を理解す る 必要があ り ます。
•
「 ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ ク が同期 し てい る 場合」
•
「 ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ ク が非同期の場合」
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
242
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ クが同期 し ている場合
ソ ー ス ク ロ ッ ク と デ ス テ ィ ネーシ ョ ン ク ロ ッ ク が同 じ か同 じ プ ラ イ マ リ ク ロ ッ ク か ら 派生 し てい る 場合 (同期 ク
ロ ッ ク )、 ク ロ ッ ク パス上の共通 ノ ー ド を使用 し て ク ロ ッ ク ス キ ュ ーが算出 さ れます。 ほ と ん ど の同期パス には、 共
通 ノ ー ド が含ま れ ます。 共通 ノ ー ド はデザ イ ンの物理デー タ ベース にのみ含ま れ、 論理ビ ュ ーには含ま れないので、
タ イ ミ ン グ レ ポー ト の ク ロ ッ ク パ ス を解析 し て も 、共通 ノ ー ド の前後の遅延は個別には示 さ れません。 そのため、共
通 ノ ー ド は Vivado IDE の [Device] ウ ィ ン ド ウ で [Routing Resources] をオンにする と 表示 さ れますが、[Schematic] ウ ィ
ン ド ウ には表示 さ れ ません。 タ イ ミ ン グ レ ポー ト では、 ス キ ュ ー算出のサマ リ と 、 ソ ース ク ロ ッ ク 遅延、 デス テ ィ
ネーシ ョ ン ク ロ ッ ク 遅延、 共通 ノ ー ド を調整する Clock Pessimism Removal (CPR) のみが示 さ れます。
一部の同期 ク ロ ッ ク では、共通 ノ ー ド が ク ロ ッ ク 調整ブ ロ ッ ク (MMCM、PLL な ど) の前に配置 さ れてお り 、 ス キ ュ ー
が大 き く な る 可能性があ り ます。こ の よ う な同期 タ イ ミ ン グ パ スは タ イ ミ ン グ を満たすのが困難であ る 可能性があ る
ので、 こ の よ う な同期 タ イ ミ ン グ パ ス を回避す る こ と をお勧め し ます。 こ の よ う なパ ス は非同期パス し て処理 し 、 タ
イ ミ ン グ例外を追加 し て非同期 ク ロ ッ ク 乗せ換え回路を イ ンプ リ メ ン ト す る こ と を考慮 し て く だ さ い。
ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ クが非同期の場合
ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ ク が異な り 、別のプ ラ イ マ リ ク ロ ッ ク か ら 派生 し てい る 場合、共通 ノ ー
ド はあ り ません。 ス キ ュ ーは、 プ ラ イ マ リ ク ロ ッ ク ソ ース (通常入力ポー ト ) か ら パ ス のシーケ ン シ ャ ル セルま での
ツ リ ー遅延全体の差に対応 し ます。 ク ロ ッ ク ト ポ ロ ジお よ び配置に よ っ ては、 ス キ ュ ーが非常に大き く な り 、 タ イ ミ
ン グ を満たすのが不可能にな る 可能性があ り ます。 すべての タ イ ミ ン グ パス を確認 し 、 set_clock_groups ま たは
set_false_path 制約を追加 し て タ イ ミ ン グ解析を完全に無視す る か、 set_max_delay -datapath_only 制約
を追加 し て ク ロ ッ ク ス キ ュ ーお よ びば ら つき のみを無視する よ う に し ます。
ヒ ン ト : ク ロ ッ ク パ ス を解析す る のに最適な方法は、 Vivado IDE で回路図を使用 し 、 タ イ ミ ン グ レ ポー ト と ク ロ ス
プ ロ ーブす る こ と です。
ク ロ ッ ク スキ ュ ーが大き い原因
ク ロ ッ ク ス キ ュ ーが大 き く な る のには、 次の よ う な原因があ り ます。
•
「 ク ロ ッ ク 信号がゲーテ ッ ド ロ ジ ッ ク ソ ース で駆動 さ れてい る 」
•
「直列に接続 さ れた BUFG コ ン ポーネ ン ト が同期エ レ メ ン ト を駆動 し てい る 」
•
「BUFG が同期エ レ メ ン ト を駆動 し てい る 」
•
「IBUFG が複数の MMCM を駆動 し てい る (関連 ク ロ ッ ク )」
•
「BUFG が レ ジ ス タ エ レ メ ン ト お よ び MMCM を駆動 し てい る (関連 ク ロ ッ ク )」
•
「BUFR/BUFIO/BUFH が複数の ク ロ ッ ク 領域の レ ジ ス タ エ レ メ ン ト を駆動 し てい る 」
•
「CLOCK_DEDICATED_ROUTE=FALSE 制約を使用 し てい る 」
ク ロ ッ ク 信号がゲーテ ッ ド ロ ジ ッ ク ソ ースで駆動 さ れている
こ れは推奨 さ れず、過剰な ク ロ ッ ク ス キ ュ ーが発生す る 原因 と な る こ と があ り ます。ゲーテ ッ ド ロ ジ ッ ク ド ラ イ バー
バ ッ フ ァ ーにはグ ロ ーバル ク ロ ッ ク ラ イ ンへの直接ア ク セ ス がないので、 ロ ーカルの フ ァ ブ リ ッ ク 配線 リ ソ ース が
使用 さ れ ます。 ゲーテ ッ ド ロ ジ ッ ク が BUFG に接続 さ れてい る 場合で も 、 過剰な配線遅延が発生す る こ と があ り ま
す。 report_clock_utilization の結果で過剰な ク ロ ッ ク ス キ ュ ーを確認 し て く だ さ い。
ク ロ ッ ク レ ポー ト を検証す る 際、配置配線アルゴ リ ズ ムに よ り ス キ ュ ーの大 き い ク ロ ッ ク が自動的に挿入 さ れてい る
こ と があ り ます。 こ れは、 未使用の ク ロ ッ ク ジ ェ ネ レー タ ーにおいて長期的なシ リ コ ンの メ タ ス テーブル状態を回避
す る のに一般的な手法です。 ク ロ ッ ク は最小限の リ ソ ース で低周波数範囲で動作 し 、 デザ イ ンのパフ ォーマ ン ス には
影響 し ません。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
243
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
X-Ref Target - Figure 5-10
図 5-10 : ク ロ ッ ク ネ ッ ト ワー ク で ロー カル配線が使用 さ れる ために発生する スキ ュ ー
図 5-10 では、 最初の BUFG (clk1_buf) が LUT3 で使用 さ れ、 ゲーテ ッ ド ク ロ ッ ク が作成 さ れてい ます。 こ れはお
勧め し ません。 要件を満たすため、 接続に低速の ロ ーカル配線が使用 さ れます。 合成アルゴ リ ズ ムに よ り 、 ブ ロ ッ ク
gc_noisegen 内の 2 番目の BUFG が自動的に挿入 さ れます。
直列に接続 さ れた BUFG コ ンポーネ ン ト が同期エ レ メ ン ト を駆動 し ている
合成済み IP ネ ッ ト リ ス ト を追加す る 際、 合成ツールに よ り 挿入 さ れ る グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの数が正 し い
こ と を確認 し て く だ さ い。 ブ ラ ッ ク ボ ッ ク ス IP を イ ン ポー ト す る 際に注意が必要なのは、 セルの CLK ポー ト に接続
さ れてい る 信号が検出 さ れ る と 自動的に BUFG が挿入 さ れ る と い う こ と です。 ダ ウ ン ス ト リ ームのブ ラ ッ ク ボ ッ ク
ス IP にグ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーが含まれてい る と 、2 つの BUFG コ ン ポーネ ン ト に よ り ク ロ ッ ク ス キ ュ ーが
増加 し ます。
X-Ref Target - Figure 5-11
図 5-11 : BUFG がカ スケー ド 接続 さ れている ために発生する スキ ュ ー
上記の例では、 レ ジ ス タ の ク ロ ッ ク ピ ンでの ク ロ ッ ク ネ ッ ト 遅延は 2.362ns です。 BUFG を MMCM で駆動 し ていな
い場合、 PVT お よ びフ ァ ブ リ ッ ク ス キ ュ ーは補正 さ れません。
ヒ ン ト : MMCM が余分にあ る 場合は、 ク ロ ッ ク ス キ ュ ーを削減す る ために使用 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
244
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
BUFG が同期エ レ メ ン ト を駆動 し ている
各 ク ロ ッ ク 領域には、同一の ク ロ ッ ク 配線が含まれてい ます。ク ロ ッ ク ツ リ ーの ソ ース ク ロ ッ ク ピ ン と デス テ ィ ネー
シ ョ ン ク ロ ッ ク ピ ンの相対的な位置に よ り 、 ク ロ ッ ク ス キ ュ ーが決ま り ます。 共通 ノ ー ド か ら の ソ ース ク ロ ッ ク 遅
延 と デス テ ィ ネーシ ョ ン ク ロ ッ ク 遅延が同 じ であ る 場合、 ク ロ ッ ク ス キ ュ ーは最小限です。
ソ ース と デス テ ィ ネーシ ョ ンが異な る ク ロ ッ ク 領域ま たは異な る SLR にあ る 場合、 ク ロ ッ ク ス キ ュ ーが通常 よ り も
大 き く な る こ と も 珍 し く あ り ま せん。 ソ ース と デス テ ィ ネーシ ョ ン を 1 つの ク ロ ッ ク 領域に含め る と 、 ク ロ ッ ク ス
キ ュ ーが最小限に抑え ら れます。 エ リ ア グループ ま たは Pblock を使用 し て、 ソ ース エ レ メ ン ト お よ びデス テ ィ ネー
シ ョ ン エ レ メ ン ト を同 じ ク ロ ッ ク 領域に配置で き ます。
X-Ref Target - Figure 5-12
図 5-12 : ソ ース と デス テ ィ ネーシ ョ ンが同 じ ク ロ ッ ク 領域にある と ク ロ ッ ク スキ ュ ーが小 さ く な る
図 5-12 では、 ソ ース レ ジ ス タ の ク ロ ッ ク ピ ンでの ク ロ ッ ク ネ ッ ト 遅延は 1.290ns で、 デス テ ィ ネーシ ョ ン レ ジ ス タ
の ク ロ ッ ク ピ ンでの ク ロ ッ ク ネ ッ ト 遅延は 1.275ns なので、 PVT にわた る ク ロ ッ ク ス キ ュ ーは 15ps のみです。 こ の
ク ロ ッ ク ネ ッ ト の最大ス キ ュ ーは、 すべてのデス テ ィ ネーシ ョ ンで 0.287ns です。
Num Loads
Index BUFG cell Net Name BELs Sites Locked MaxDelay (ns) Skew (ns)
----------------------------------------------------------------------------10 clkgen/clkout1_buf clkgen/cpuClk_o 3297 1298 no 1.37 0.287
IBUFG が複数の出力を持つ 1 つの MMCM を駆動 し ている (関連ク ロ ッ ク )
周期制約は、 その ツ リ ー ルー ト の ド ラ イ バー ピ ン ま たはポー ト で定義 さ れ ます。 ク ロ ッ ク 信号で MMCM を駆動 し
て複数の共通出力周波数を生成す る 場合、 関連の各 ク ロ ッ ク か ら の ス キ ュ ーは出力 BUFG ま で と 同 じ です。 ソ ース と
デス テ ィ ネーシ ョ ンが異な る ク ロ ッ ク 領域に配置 さ れてい る 場合があ り ます。こ れが タ イ ミ ン グ パフ ォーマ ン ス に影
響す る 場合は、 エ リ ア グループ ま たは Pblock を使用す る こ と をお勧め し ます。 上記の例では、 2 つの ク ロ ッ ク ド メ
イ ン間の ク ロ ッ ク ネ ッ ト ス キ ュ ーは 36ps です。
ヒ ン ト : Clocking Wizard では、 ク ロ ッ ク 要件に基づいてパ フ ォ ーマ ン ス ガ イ ド ラ イ ン (ジ ッ タ ーお よ び位相エ ラ ー )
が提供 さ れます。
IBUFG が複数の MMCM を駆動 し ている (関連ク ロ ッ ク )
可能な限 り 、 単純な ク ロ ッ ク ト ポ ロ ジ を使用す る こ と をお勧め し ま す。 ク ロ ッ ク ド メ イ ン の数 を削減す る と 、 パ
フ ォーマ ン ス、 リ ソ ース、 お よ び タ イ ミ ン グ ク ロ ージ ャ の面か ら 有益です。
ヒ ン ト : MMCM の出力 BUFG でほかの MMCM ま たは レ ジ ス タ を駆動する 場合は注意が必要です。 追加の BUFG に
よ り 、 ス キ ュ ーが増加 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
245
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
BUFG がレ ジ ス タ エ レ メ ン ト および MMCM を駆動 し ている (関連ク ロ ッ ク )
可能な限 り 、MMCM CLKIN BUFG が MMCM のみを駆動する ために使用 さ れてい る こ と を確認 し て く だ さ い。MMCM
の CLK0 出力を使用 し て レ ジ ス タ 付 き エ レ メ ン ト を駆動で き ます。 MMCM を使用す る と 、 BUFG と は異な り 、 PVT
の変動に対 し て安定 し た ク ロ ッ ク が供給 さ れます。 デザ イ ンの複雑性を考え る と 、 設計者が気がつかなか っ た ク ロ ッ
ク ド メ イ ン を ま た ぐ パス が、 ダ ウ ン ス ト リ ームで タ イ ミ ン グ エン ジ ンで検出 さ れ る こ と も あ り ます。
次の図では、 MMCM か ら の LOCKED 信号が入力 ク ロ ッ ク と 共に監視 さ れ ます。 こ れは、 ク ロ ッ ク ソ ース が中断 さ
れ る 場合に一般的な手法です。 信号 clockRef の リ ソ ース数は最小限です。
X-Ref Target - Figure 5-13
図 5-13 : MMCM で駆動 さ れる ク ロ ッ ク
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
246
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
BUFR/BUFIO/BUFH が複数のク ロ ッ ク領域のレ ジ ス タ エ レ メ ン ト を駆動 し ている
clock_report_utilization で生成 さ れ る レ ポー ト には、すべての タ イ プの リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ ーが
示 さ れます。各 リ ージ ョ ナル ク ロ ッ ク の ク ロ ッ ク ス キ ュ ーが妥当な も の (<< 1ns) であ る こ と を確認 し て く だ さ い。次
の例では、 BUFR の ク ロ ッ ク ス キ ュ ーは非常に大 き く 、 デス テ ィ ネーシ ョ ン エ レ メ ン ト が ク ロ ッ ク ルールに違反 し
てい る こ と が示 さ れてい ます (BUFR は同 じ 領域内の リ ソ ース のみを駆動可能)。
Details of Regional Clocks
----------------------------------------------------------------------------Num Loads
Index BUFR cell Net Name BELs Sites Locked MaxDelay (ns) Skew (ns)
----------------------------------------------------------------------------1 u0_pcie/txoutclk_i u0_pcie/refclk 1 2 no 0.594 0.055
2 u0_pcie/usrclk1_i1 u0_pcie/pipe_userclk1_in 11 25 no 5.93 5.36
3 u0_pcie/usrclk2_i1 u0_pcie/pipe_userclk2_in 463 160 no 0.728 0.202
4 u0_pcie/pclk_i1 u0_pcie/pipe_bclk_in 557 248 no 0.952 0.396
X-Ref Target - Figure 5-14
図 5-14 : 2 つの領域のフ リ ッ プ フ ロ ッ プ を駆動する BUFR
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
247
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
CLOCK_DEDICATED_ROUTE=FALSE 制約を使用 し ている
製品デザ イ ンでは CLOCK_DEDICATED_ROUTE=FALSE 制約は使用 し ないで く だ さ い。
CLOCK_DEDICATED_ROUTE=FALSE は、 デバ ッ グ用に [Device] ウ ィ ン ド ウ お よ び [Schematic] ウ ィ ン ド ウ で ク ロ ッ
ク ト ポ ロ ジ を表示す る ために、 デザ イ ンで配置配線を完了する ための一時的な回避策 と し てのみ使用 し て く だ さ い。
こ れ ら の タ イ プのパ ス の ク ロ ッ ク ス キ ュ ーは大き く な る こ と があ り 、 パフ ォーマ ン ス が悪 く な っ た り 、デザ イ ンが機
能 し な く な る 可能性があ り ます。 次の図の右側には専用 ク ロ ッ ク 配線があ り 、 左側では専用配線は ク ロ ッ ク で使用で
き ない よ う にな っ てい ます。
X-Ref Target - Figure 5-15
図 5-15 : ク ロ ッ ク 専用配線の使用
ば ら つ きが大き い原因
ば ら つ き は、 ユーザー指定の外部 ク ロ ッ ク のば ら つき 、 ジ ッ タ ー、 ま たはデ ュ ーテ ィ サ イ ク ルの歪みに よ る 、 理想的
な ク ロ ッ ク か ら のば ら つ き の総量です。 MMCM や PLL な ど の ク ロ ッ ク 調整ブ ロ ッ ク は、 ク ロ ッ ク のば ら つ き を生成
し ます。
Clocking Wizard では、 指定のデバ イ ス におけ る 正確なば ら つ き デー タ が提供 さ れます。 Clocking Wizard では、 異な る
ト ポ ロ ジ を比較す る ために さ ま ざ ま な MMCM ク ロ ッ キ ン グ コ ン フ ィ ギ ュ レーシ ョ ン も 生成で き ます。
新 し いデバ イ ス テ ク ノ ロ ジに移行 さ れていない レ ガ シ コ ー ド か ら 以前の FPGA アーキ テ ク チ ャ 用に作成 さ れた ク
ロ ッ キ ン グ ト ポ ロ ジが見 ら れ る こ と があ り ます。 ザ イ リ ン ク ス では、 タ ーゲ ッ ト デバ イ ス を使用 し て ク ロ ッ キ ン グ
部分を再作成 し 、 シ ス テ ム パフ ォーマ ン ス パ ラ メ ー タ ーが算出 さ れ、 DRC ルールが検証 さ れ る よ う にす る こ と をお
勧め し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
248
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
MMCM
MMCM は、 必要な ク ロ ッ ク を生成す る 際に入力 ク ロ ッ ク のば ら つき を取 り 除き ます。 MMCM で複数の関連 ク ロ ッ ク
が使用 さ れ る 場合、 シ ス テ ム ジ ッ タ ー、 離散ジ ッ タ ー、 お よ び位相エ ラ ーで構成 さ れ る い く ら かの ク ロ ッ ク のば ら つ
き が生成 さ れます。
次の図に示す よ う な 1 つの MMCM か ら の同 じ 出力 ク ロ ッ ク が供給 さ れ る ロ ジ ッ ク な ど、 位相ア ラ イ メ ン ト がシ ス テ
ム パフ ォーマ ン ス に影響 し ないデザ イ ンには影響あ り ません。
X-Ref Target - Figure 5-16
REG
REG
BUFG
MMCM
CLOCK
X13438
図 5-16 : MMCM を介 し た位相エ ラ ーの影響な し
MMCM および I/O タ イ ミ ン グ
MMCM の入力 と 出力の位相を揃え る こ と が重要なデザ イ ン では、 すべての タ イ ミ ン グ制約 (set_input_delay お
よ び set_output_delay) が満た さ れてい る こ と を確認す る 必要があ り ます。 次の図を参照 し て く だ さ い。
X-Ref Target - Figure 5-17
Input timing
REG
BUFG
CLOCK
MMCM
X13439
図 5-17 : MMCM での位相ア ラ イ メ ン ト が タ イ ミ ングに影響する可能性がある
MMCM の周波数合成
MMCM を周波数合成用に コ ン フ ィ ギ ュ レーシ ョ ンす る 際、 タ ーゲ ッ ト 周波数に複数の M (逓倍値) と D (分周値) があ
る 場合があ り ます。 ク ロ ッ ク のば ら つ き を最小限に抑え る ため、 大 き い VCO 周波数を生成す る 値を使用 し ます。 こ
の際、 デバ イ ス の最大 MMCM VCO 周波数ス イ ッ チ特性を超え ない よ う に し て く だ さ い。 デザ イ ン を以前のテ ク ノ ロ
ジか ら 移行す る 場合は、 新 し いテ ク ノ ロ ジで VCO 周波数が大き く な る よ う M 値 と D 値を変更 し ます。
次の MMCM 周波数合成の例では、 62.5MHz の入力 ク ロ ッ ク を使用 し て約 40MHz の出力 ク ロ ッ ク を生成 し てい ます。
2 つの ソ リ ュ ーシ ョ ンがあ り ますが、 MMCM_2 の方がジ ッ タ ーお よ び ク ロ ッ ク のば ら つ き が小 さ く な り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
249
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
表 5-6 : MMCM 周波数合成の例
MMCM_1
MMCM_2
入力 ク ロ ッ ク
62.5MHz
62.5MHz
出力 ク ロ ッ ク
40.0MHz
39.991MHz
CLKFBOUT_MULT_F
16
22.875
CLKOUT0_DIVIDE_F
25
35.750
VCO 周波数
1000.000MHz
1429.688
ジ ッ タ ー (ps)
167.542
128.632
位相エ ラ ー (ps)
384.432
123.641
IP カ タ ロ グの Clocking Wizard を使用す る 場合は、 [Jitter Optimization] で [Minimize Output Jitter] を オ ン に し て く だ さ
い。 こ の設定に よ り 、 大 き い VCO 周波数が選択 さ れます。
テ ク ノ ロ ジの選択の確認
設計お よ び合成での選択が、 デザ イ ンの全体的な タ イ ミ ン グ、 使用率、 お よ び消費電力に ど の よ う に影響す る か を理
解す る こ と が重要です。 同 じ ロ ジ ッ ク フ ァ ン ク シ ョ ン を イ ン プ リ メ ン ト す る のに多数の異な る リ ソ ース タ イ プがあ
り 、 選択す る リ ソ ース が大 き く 影響 し ます。 た と えば、 分散 RAM を使用 し て イ ンプ リ メ ン ト さ れた RAM は、 ブ ロ ッ
ク RAM を使用 し て イ ン プ リ メ ン テーシ ョ ン さ れた RAM と は動作が異な り ます。 テ ク ノ ロ ジの詳細に注意 し て設計
す る こ と に よ り 、 適切な ト レー ド オ フ を適用 し て QoR (結果の品質) を向上する こ と がで き ます。
ロ ジ ッ ク フ ァ ブ リ ッ ク は、 同 じ 制御信号を共有す る コ ン フ ィ ギ ャ ラ ブル ブ ロ ッ ク で構築 さ れ ます。 最小のブ ロ ッ ク
エン テ ィ テ ィ は、 アーキ テ ク チ ャ に よ っ て ス ラ イ ス ま たは CLB ( コ ン フ ィ ギ ャ ラ ブル ロ ジ ッ ク ブ ロ ッ ク ) です。 次の
説明では、 ス ラ イ ス を使用す る ザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス な ど の特定のテ ク ノ ロ ジの場合を除き 、 フ ァ
ブ リ ッ ク ロ ジ ッ ク を CLB と 呼びます。
ク ロ ッ ク に加え、 順次プ リ ミ テ ィ ブには リ セ ッ ト 、 セ ッ ト 、 ク ロ ッ ク イ ネーブルな ど の制御信号が必要です。 多 く の
リ ソ ース で同 じ 制御信号が共有 さ れ る ので、 その使用が制限 さ れます。 制御 ロ ジ ッ ク の使用が効率的でない と 、 デバ
イ ス リ ソ ース の使用お よ び ロ ジ ッ ク のパ ッ ク が非効率にな り 、 配線の密集やス ラ イ スお よ び CLB が過剰に使用 さ れ
る な ど の問題を引 き 起 こ す こ と があ り ます。
こ のセ ク シ ョ ン では、 組み合わせ ロ ジ ッ ク リ ソ ースお よ び順序 ロ ジ ッ ク リ ソ ース の選択 と 、 制御信号の イ ン プ リ メ
ン テーシ ョ ンの影響について概要を示 し ます。例お よ び図はザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス のテ ク ノ ロ ジの
一般的な特性に基づいてい ますが、 同 じ 解析は UltraScale™ デバ イ スお よ び今後のテ ク ノ ロ ジに も 適用 さ れます。 タ
イ ミ ン グ パ ラ メ ー タ ーの詳細は、 デバ イ ス の DC 特性お よ び AC ス イ ッ チ特性デー タ シー ト を参照 し て く だ さ い。
組み合わせロ ジ ッ ク : LUT ピ ン遅延
LUT を通過す る すべてのパ ス の遅延が同 じ であ る わけではあ り ません。 タ イ ミ ン グ レ ポー ト では、 各入力ピ ン遅延
は同 じ に見え ますが、 各入力ま でにネ ッ ト 遅延に統合 さ れ る 追加の ワ イ ヤ遅延があ り ます。 こ れは、 関連の イ ン タ ー
コ ネ ク ト の物理 イ ン プ リ メ ン テーシ ョ ン のためです。 ツールでは ク リ テ ィ カル信号に高速入力が使用 さ れ る よ う ロ
ジ ッ ク を イ ン プ リ メ ン ト す る よ う 試み ら れ ま すが、 こ の こ と を理解 し てお く と 複雑な タ イ ミ ン グ エ ラ ーを向上 し た
り 、 最適でない LOCK_PINS 制約を解析する のに役立ち ます。
LUT は、 論理ピ ン ま たは物理ピ ン で記述で き ます。 論理ピ ン には、 ネ ッ ト リ ス ト の接続を反映 し て I0、 I1、 I2、 I3、
I4、 お よ び I5 と い う 名前がついてい ます。 こ れ ら の名前が タ イ ミ ン グ レ ポー ト で使用 さ れ ます。 物理ピ ン名は A1、
A2、 A3、 A4、 A5、 お よ び A6 で、 使用 さ れてい る BEL に よ っ て B、 C、 ま たは D の異な る 文字が使用 さ れます。 物
理ピ ンは実際のデバ イ ス ピ ン を表 し てお り 、 デバ イ ス レベルで物理的な イ ン プ リ メ ン テーシ ョ ン を解析す る 場合に
のみ使用 さ れます。
論理ピ ンは、 配置、 配線、 ま たは LOCK_PINS プ ロ パテ ィ に よ っ て選択 さ れた物理ピ ンにマ ッ プ さ れます。 通常、 物
理 A6 LUT 入力が最速パス で、 A5、 A4 の順に低速にな り 、 A1 が最低速です。 A6 パ ス は、 A1 を介す る パ ス よ り も 通
常数百ピ コ 秒高速です。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
250
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
各 LUT の論理ピ ン と 物理ピ ン のマ ッ プは、 配置後に表示で き ます。 た と えば、 LUT6 では ピ ン マ ッ プはデフ ォ ル ト
で次の よ う にな っ てい ます。 こ れは、 [Cell Properties] ウ ィ ン ド ウ の [Cell Pins] ビ ュ ーに、 ま たは get_site_pins コ
マ ン ド を実行す る と 表示 さ れます。
X-Ref Target - Figure 5-18
図 5-18 : LUT の論理ピ ン と 物理ピ ン
[BEL Pin] 列は、 論理ピ ンがマ ッ プ さ れてい る 物理ピ ン を示 し ます。 つま り 、 次の よ う にマ ッ プ さ れてい ます。
I0 は A1 にマ ッ プ
I1 は A2 にマ ッ プ
.
.
.
I5 は A6 にマ ッ プ
イ ンプ リ メ ン テーシ ョ ン中、 ク リ テ ィ カル パ ス の タ イ ミ ン グ を向上す る ため、 配置、 物理最適化、 配線で LUT 入力
ピ ン が ス ワ ッ プ さ れ る こ と があ り ます。 タ イ ミ ン グ ク リ テ ィ カルな論理ピ ンは A6 な ど の高速物理ピ ンに移動 さ れ、
低速の論理ピ ンは低速の物理ピ ンに移動 さ れます。 複数の LUT を通過す る ク リ テ ィ カル パ ス は、 高速物理ピ ン を使
用す る か 低速物理 ピ ン を 使用す る か で か な り の 違 い が あ り ま す。 ピ ン マ ッ プ を 明確 に 定義す る に は、 セ ル に
LOCK_PINS プ ロ パテ ィ を設定 し て ピ ンが ス ワ ッ プ さ れない よ う に し ます。
組み合わせロ ジ ッ ク : LUT の結合
ザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス の ロ ジ ッ ク LUT は、 複数の 6 入力フ ァ ン ク シ ョ ン を含む こ と がで き る よ う 、
柔軟に設計 さ れてい ます。 2 つの出力 (O6 お よ び O5) に よ り 、 2 つの論理 LUT フ ァ ン ク シ ョ ン を 1 つの リ ソ ース に結
合す る こ と がで き ます。 内部論理表現は、 入力を共有す る 2 つの 5 入力 LUT で構成 さ れてい ます。 1 つの LUT は O5
出力を生成 し 、 O6 は LUT5 フ ァ ン ク シ ョ ン と A6 を結合 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
251
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
X-Ref Target - Figure 5-19
A5
A4
A3
A2
A1
05
LUT5
0
1 S
06
LUT5
A6
X13440
図 5-19 : 同 じ LUT6 から の複数の出力
LUT 結合の例は、 次の と お り です。
•
完全に無関連の LUT2 と LUT3
•
少な く と も 1 つの入力を共有す る 2 つの LUT3
•
少な く と も 2 つの入力を共有す る 2 つの LUT4
•
すべての入力を共有す る 2 つの LUT5
•
LUT5 お よ び LUT6 で、 LUT6 は O5 出力を生成す る LUT5 と A6 入力を結合 し た も の
最速の A6 入力は O6 出力を選択す る ために使用 さ れ る ので、 LUT を結合す る 場合は A6 の使用が制限 さ れ る こ と に
注意 し て く だ さ い。 A6 ピ ンは未使用の ま ま か、 結合 さ れた LUT に 6 入力フ ァ ン ク シ ョ ンが含ま れ る 場合、 A6 ピ ン
は共通でない入力に使用す る 必要があ り ます。
順序ロ ジ ッ ク : レ ジ ス タ
レ ジ ス タ は、 デバ イ ス の複数の タ イ プの リ ソ ース のいずれかにマ ッ プで き ます。
•
CLB レ ジ ス タ
•
SRL と し ての CLB LUT RAM
•
ILOGIC
•
OLOGIC
•
DSP お よ びブ ロ ッ ク RAM (レ ジ ス タ が演算機能ま たは メ モ リ 機能に隣接する 場合)
すべての順序 ロ ジ ッ ク を上記の ど の リ ソ ース に も マ ッ プで き る わけではあ り ませんが、 特定の順序 ロ ジ ッ ク が こ れ ら
の リ ソ ース の複数の も のにマ ッ プで き る こ と も あ り ます。 その よ う な選択肢があ る 場合、 その順序 ロ ジ ッ ク を イ ンプ
リ メ ン ト す る のに最速の リ ソ ース を使用す る のが理想的です。
LUT で駆動 さ れ る CLB レ ジ ス タ のセ ッ ト ア ッ プ要件は通常非常に小 さ いので、 パ ス遅延には通常それほ ど影響 し ま
せん。 ILOGIC 内に配置 さ れた レ ジ ス タ で も 同様です。 デー タ が LUT をバ イ パ スす る X 入力を介 し て CLB に入力 さ
れ る と 、 セ ッ ト ア ッ プが増加 し ます。 デー タ が FMUX ま たはキ ャ リ ー ロ ジ ッ ク を通過す る 場合、 セ ッ ト ア ッ プ要件
は数百 ピ コ 秒に増加 し ま す。 OLOGIC ま たは LUT RAM にマ ッ プ さ れた レ ジ ス タ で も 同様です。 こ の場合、 セ ッ ト
ア ッ プ要件が ク リ テ ィ カル パス に大 き く 影響 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
252
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
表 5-7 : 異な る リ ソ ースに配置 さ れた レ ジ ス タ の相対セ ッ ト ア ッ プ要件
フ リ ッ プ フ ロ ッ プの位置
ILOGIC
よ り 高速
LUT で駆動 さ れ る CLB フ リ ッ プ フ ロ ッ プ
X 入力で駆動 さ れ る CLB フ リ ッ プ フ ロ ッ プ
SRL と し ての LUT RAM
MUXFX ま た は CARRY で 駆動 さ れ る CLB フ
リ ッ プフ ロ ッ プ
OLOGIC
よ り 低速
通常、 CLB レ ジ ス タ の clock-to-output 遅延は最 も 小 さ く 、 ザ イ リ ン ク ス 7 シ リ ーズ FPGA デバ イ ス の最速の ス ピー ド
グ レー ド では約 250ps です。 CLB レ ジ ス タ には 2 つの BEL 位置があ り ます。 下の Q 位置は、 出力前にマルチプ レ ク
サーを通過す る 必要のあ る MUX 位置 よ り も 高速です。
X-Ref Target - Figure 5-20
図 5-20 : 下のレ ジ ス タ の方が遅延が小 さ い
SRL と し て LUT RAM にマ ッ プ さ れた レ ジ ス タ の clock-to-output 遅延は大き く 、 ナ ノ 秒の単位です。 SRL 出力が ク リ
テ ィ カル パ ス を駆動す る 場合は、 clock-to-output 遅延を削減する ため、 レ ジ ス タ の最終段を LUT RAM か ら CLB ペア
レ ジ ス タ に移動す る 必要があ る 場合があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
253
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ILOGIC お よ び OLOGIC の clock-to-output 遅延は、 CLB レ ジ ス タ の clock-to-output 遅延 よ り 多少大き く な り ます。
表 5-8 : 異な る リ ソ ースでの相対 clock-to-out 遅延
フ リ ッ プ フ ロ ッ プの位置
Q BEL の CLB フ リ ッ プ フ ロ ッ プ
よ り 高速
MUX BEL の CLB フ リ ッ プ フ ロ ッ プ
ILOGIC
OLOGIC
SRL と し ての LUT RAM
DSP
BRAM
よ り 低速
メモリ
ザ イ リ ン ク ス デバ イ ス の メ モ リ は、 ブ ロ ッ ク RAM ま たは分散 RAM のいずれかに イ ンプ リ メ ン ト さ れます。 ど ち ら
の タ イ プの RAM も 合成で推論、 IP カ タ ロ グ を使用 し て生成、 ま たは UNISIM と し て イ ン ス タ ン シエー ト で き ます。
ほ と ん ど のシ ン グル ポー ト お よ びダブル ポー ト RAM お よ び ROM フ ァ ン ク シ ョ ンは、 ど ち ら の タ イ プの メ モ リ を使
用 し て も イ ンプ リ メ ン ト で き ます。 通常、 機能要件に よ り ど ち ら の タ イ プの RAM を使用す る かが決定 さ れます。 た
と えば、 非同期読み出 し パ ス には分散 RAM が必要です。 要件に よ っ て、 ど ち ら の RAM が適切かが決ま る 場合 も あ
り ます。 ワ ー ド 数の多い RAM には、 通常複数のブ ロ ッ ク RAM が必要です。 デー タ 幅が狭い場合は、 分散 RAM を
使用 し た方が効率的です。ど ち ら を選択す る 場合で も 、各 タ イ プに よ る デザ イ ンへの影響を考慮す る 必要があ り ます。
ブ ロ ッ ク RAM
ブ ロ ッ ク RAMは、 RAM、 ROM、 お よ び FIFO に使用 さ れ る 専用ハー ド ウ ェ ア リ ソ ース です。 デバ イ ス の上か ら 下ま
での列に配置 さ れ、 CLB 間におお よ そ均等に分配 さ れてい ます。
ブ ロ ッ ク RAM は専用ブ ロ ッ ク であ る ため、 大容量の も のに適 し てい ます。 ま た、 ブ ロ ッ ク RAM は、 同程度の容量
の分散 RAM よ り も 消費電力が小 さ く な り ます。 ただ し 、 ブ ロ ッ ク RAM 列にア ク セ スす る ための遅延が大 き く な り
ます。 次の図に、 こ の よ う な配線パ ス の例を 2 つ示 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
254
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
X-Ref Target - Figure 5-21
図 5-21 : 例 : ブ ロ ッ ク RAM への配線
ブ ロ ッ ク RAM への読み出 し ア ク セ ス時間は約 1.5 ~ 2ns と 比較的低速です。 こ れは、clock-to-output 遅延の後に、CLB
ロ ジ ッ ク に到達す る ための配線遅延が 400 ~ 500ps あ る か ら です。
ブ ロ ッ ク RAM にはオプシ ョ ンのデー タ 出力レ ジ ス タ があ り 、 clock-to-output 遅延を 1/2 以下に削減で き ます。 セ ッ ト
ア ッ プ タ イ ム お よ び ホ ール ド タ イ ム も 、 高速パ ス に大 き く 影響 し ま す。 そ れ ぞれ 500 ~ 700ps の範囲ですが、
READ_FIRST モー ド を使用す る と それぞれ 1/2 以下に削減 さ れます。
ヒ ン ト : ブ ロ ッ ク RAM を手動で配置す る 場合は、 同 じ ア ド レ ス ラ イ ン を共有す る RAM を列に配置 し て く だ さ い。
列には高速のア ド レ ス ラ イ ン専用配線があ り 、 ブ ロ ッ ク RAM を カ ス ケー ド 接続 し て ワー ド 数の多い RAM を作成で
き ます。
分散 RAM
分散 RAM は、 CLB ロ ジ ッ ク (LUT RAM、 レ ジ ス タ 、 LUT、 マルチプ レ ク サー ) を使用 し て イ ンプ リ メ ン ト さ れます。
CLB ロ ジ ッ ク を使用 し て イ ン プ リ メ ン ト さ れ る ので、 容量が小 さ い も のに適 し てい ま す。 大型の分散 RAM は、 ブ
ロ ッ ク RAM と 比較す る と 、 CLB リ ソ ースお よ び電力を よ り 多 く 消費 し ます。 ただ し 、 小型の場合は RAM への配線
遅延が小 さ く な る ので、 高パフ ォーマ ン ス が得 ら れます。
LUT RAM は、 分散 RAM に使用 さ れ る LUT です。 LUT RAM にはブ ロ ッ ク RAM と 同様のセ ッ ト ア ッ プ要件があ り
ますが、 ホール ド 要件は約 1/2 です。読み出 し ア ク セ ス時間 も 約 1/2 ですが、既存の CLB に追加の遅延が必要なため、
200 ~ 400ps の配線遅延に加え、 マルチプ レ ク サー ロ ジ ッ ク を伝搬す る ために最大 1 ナ ノ 秒の遅延があ る 場合があ り
ます。 次の図に、 分散 RAM か ら 読み出す際の典型的な最小パ ス を示 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
255
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
X-Ref Target - Figure 5-22
図 5-22 : 分散 RAM の読み出 し 遅延
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
256
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
ブ ロ ッ ク RAM と 分散 RAM の比較
次の例では、 ブ ロ ッ ク RAM と 分散 RAM の違いを示 し ます。 IP カ タ ロ グで、 Virtex®-7 の -2 ス ピー ド グ レー ド デバ
イ ス のデフ ォ ル ト を使用 し てサ イ ズの異な る 2 つのシ ン グル ポー ト RAM を作成 し ます。 配線後の結果は、 理想的な
状況を表 し てい ます。 実際のパフ ォーマ ン ス は、 デザ イ ンに含まれ る 周辺の ロ ジ ッ ク に よ っ て異な り ます。
表 5-9 : 8K x 32 RAM イ ン プ リ メ ン テーシ ョ ンの比較
ブ ロ ッ ク RAM
分散 RAM
Fmax
> 500MHz
250MHz
エリア
RAMB36 8 個、 CLB 18 個
CLB 2043 個
消費電力
370mW
440mW
こ の ワ ー ド 数お よ び幅では、 ブ ロ ッ ク RAM イ ン プ リ メ ン テーシ ョ ン の方が よ い結果が得 ら れ る こ と がわか り ます。
次の図に、 分散 RAM の ク リ テ ィ カル パス を示 し ます。
注記 : パ イ プ ラ イ ン段を追加 し てデカ ッ プ リ ン グ ロ ジ ッ ク 全体で遅延のバ ラ ン ス を と る こ と に よ り Fmax を増加で き
る 可能性 も あ り ますが、 RAM プ リ ミ テ ィ ブ を介す る 遅延に制限 さ れます。
X-Ref Target - Figure 5-23
図 5-23 : 分散 RAM を介する ク リ テ ィ カル パス
表 5-10 : 128 x 4 RAM イ ン プ リ メ ン テーシ ョ ンの比較
ブ ロ ッ ク RAM
分散 RAM
Fmax
約 400MHz
> 500MHz
エリア
RAMB18 1 個、 ス ラ イ ス 3 個
スライス 4個
消費電力
260mW
260mW
こ の比較的小型のサ イ ズでは、 分散 RAM イ ンプ リ メ ン テーシ ョ ンの方が高速でエ リ アが小 さ く 、 配線 リ ソ ース の使
用量 も 少な く な り ます。
DSP48E1 ブ ロ ッ ク
ほ と ん ど の場合、 合成お よ び IP カ タ ロ グに よ り 演算フ ァ ン ク シ ョ ンに最適な イ ン プ リ メ ン テーシ ョ ン が決定 さ れ ま
す。 多 く のア ド バン ス フ ァ ン ク シ ョ ン (特に幅に依存す る 高速乗算) は、 専用ハー ド ウ ェ ア乗算器お よ び ALU を含む
DSP48E1 ブ ロ ッ ク に イ ン プ リ メ ン ト し 、 CLB の負荷を軽減す る のが最適です。 DSP48E1 はその内部が高度に最適化
さ れてい る だけでな く 、 ブ ロ ッ ク が配置 さ れてい る DSP 列に沿っ て専用の高速配線があ り ます。 こ れに よ り 、 複数
の DSP48E1 を使用 し て、 500MHz を超え る 速度で動作す る 幅の広い乗算器やパ イ プ ラ イ ン FIR フ ィ ル タ ーな ど のカ
ス ケー ド 接続 さ れた回路を イ ンプ リ メ ン ト で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
257
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
CLB キ ャ リ ー ロ ジ ッ ク は通常、定数での乗算や幅の狭い乗算器な ど の回路での方が適切です。特定の タ イ プの リ ソ ー
ス がほ と ん ど ま たは過剰に使用 さ れ る 場合は、 フ ァ ン ク シ ョ ン を別の タ イ プに移動で き ます。 DSP ブ ロ ッ ク が残 り 少
ない場合は、 DSP48E1 ベース のフ ァ ン ク シ ョ ン を CLB ロ ジ ッ ク に移動で き ます。
同様に、 CLB が過剰に使用 さ れてい る 場合には、 多 く の CLB ロ ジ ッ ク ベース の フ ァ ン ク シ ョ ン を DSP48E1 に移動
で き ます。 後者は、 密集を解消す る のに有益です。 DSP48E1 は、 乗算や積和演算フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト す
る だけでな く 、 加減算、 カ ウ ン タ ー、 多入力パ ラ レル ロ ジ ッ ク ゲー ト も イ ンプ リ メ ン ト で き ます。
次の図に示す よ う に、 DSP48E1 ブ ロ ッ ク は入力レ ジ ス タ 、 出力レ ジ ス タ 、 お よ び乗算器 と ALU の間の中間レ ジ ス タ
でパ イ プ ラ イ ン処理 さ れてい ます。
X-Ref Target - Figure 5-24
A
AREG
Mult
B
MREG
ALU
PREG
P
BREG
X13441
図 5-24 : DSP48 に含まれるパイ プ ラ イ ン レ ジス タ
最速のパフ ォ ーマ ン ス (3 サ イ ク ルの レ イ テ ン シ) を達成す る ため、 すべての レ ジ ス タ 段を使用す る 必要があ り ます。
次の例では、 使用 さ れ る 段数が タ イ ミ ン グに ど の よ う に影響す る かを示 し ます。 32 ビ ッ ト 出力を持つ 16x16 符号付 き
乗算器を Virtex-7 の -2 ス ピー ド グ レー ド デバ イ ス に イ ンプ リ メ ン ト す る と し ます。
表 5-11 : DSP48 レ ジ ス タ の FMax への影響
AREG/BREG
MREG
PREG
0
使用 し ない
使用 し ない
1
使用 し ない
2
3
レ イテンシ
Fmax
セ ッ ト ア ッ プ パス
clock-to-output パス
使用 し ない
なし
なし
使用 し ない
使用
セ ッ ト ア ッ プ 2.65 + clock-to-output 350ps
+ 配線 770ps
配線 400ps
300MHz
使用
使用 し ない
使用
セ ッ ト ア ッ プ 260 + clock-to-output 350ps
配線 760ps
+ 配線 700ps
360MHz
使用
使用
使用
セ ッ ト ア ッ プ 260 + clock-to-output 350ps
+ 配線 700ps
配線 760ps
> 500MHz
250MHz
ブ ロ ッ ク RAM にア ク セ スす る ための配線遅延がい く ら かあ り ます。
•
1 段 (PREG 段) の場合は、 レ ジ ス タ 入力への遅延は、 CLB ロ ジ ッ ク か ら DSP 列への配線を含め、 3ns 以上 と 大 き
く な り ます。
•
2 段 (入力レ ジ ス タ お よ び出力レ ジ ス タ ) の場合は、 Fmax は内部レ ジ ス タ か ら レ ジ ス タ へのパ ス に よ り 制限 さ れ
ます。
•
3 段の場合は、 DSP ブ ロ ッ ク は 500MHz を超え る 周波数で動作で き ます。 DSP ブ ロ ッ ク を接続す る ロ ジ ッ ク が適
切に配置 さ れていれば、 シ ス テ ムで 500MHz の Fmax を達成で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
258
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
3 段の乗算器を CLB ロ ジ ッ ク に移動す る 必要があ る 場合は、等価の イ ンプ リ メ ン テーシ ョ ンでは約 440MHz を達成で
き 、 部分積を追加す る ための 15 個のキ ャ リ ー チ ェーン を含め約 143 個の ス ラ イ ス が必要です。 キ ャ リ ー チ ェーンは
5 ~ 6 ス ラ イ ス分の高 さ で、 垂直方向に隣接 し た CLB に配置す る 必要があ り ます。 配置ツールでは、 こ れ ら の縦長の
マ ク ロ を既存の CLB ロ ジ ッ ク 統合で き る こ と が必要です。 次の図を参照 し て く だ さ い。
X-Ref Target - Figure 5-25
図 5-25 : CLB に イ ン プ リ メ ン ト さ れた DSP48
同様のパフ ォーマ ン ス を達成す る には、 追加のパ イ プ ラ イ ン段が必要です。
制御信号および制御セ ッ ト
通常、 リ セ ッ ト や ク ロ ッ ク イ ネーブルな ど の制御信号についてはそれほ ど考慮 さ れません。 リ セ ッ ト が必要か ど う か
を判断せずに、 HDL コ ー ド を if reset 文で開始す る 例が よ く 見 ら れます。 リ セ ッ ト お よ び ク ロ ッ ク イ ネーブルはすべ
ての レ ジ ス タ でサポー ト さ れ ますが、 こ れ ら の使用が最終的な イ ン プ リ メ ン テーシ ョ ン のパフ ォ ーマ ン ス、 使用率、
お よ び消費電力に大 き く 影響 し ます。 次のセ ク シ ョ ンに、 制御信号 と 制御セ ッ ト の定義を示 し ます。
制御信号
次の図に、 CLB リ ソ ース に配置 さ れてい る ラ イ ブ ラ リ プ リ ミ テ ィ ブの制御信号を示 し ます。
表 5-12 : 制御信号
クロッ ク
• ク ロ ッ ク お よ びゲー ト
( ラ ッ チの場合)
イ ネーブル
• ク ロ ッ ク イ ネーブル
• ラ イ ト イ ネーブル
• ゲー ト イ ネーブル ( ラ ッ チの場合)
リセッ ト
• ロジッ ク 0
° リ セ ッ ト (同期)
° ク リ ア (非同期)
• ロジッ ク 1
° セ ッ ト (同期)
° プ リ セ ッ ト (非同期)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
259
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
制御セ ッ ト
制御セ ッ ト は、 1 つのシーケ ン シ ャ ル セルで使用 さ れ る ク ロ ッ ク 、 イ ネーブル、 お よ びセ ッ ト / リ セ ッ ト のグループで
す。 イ ネーブルがない場合や、 セ ッ ト / リ セ ッ ト がない場合 も あ り ます。 た と えば、 同 じ ク ロ ッ ク が供給 さ れ る 2 つの
セルであ っ て も 、 リ セ ッ ト や ク ロ ッ ク イ ネーブルが 1 つのセルに し かない場合は、 2 つのセルの制御セ ッ ト は異な り
ます。
ス ラ イ ス の 8 つの レ ジ ス タ では同 じ ク ロ ッ ク 、 リ セ ッ ト 、 お よ び ク ロ ッ ク イ ネーブル信号が共有 さ れ る ので、 制御
セ ッ ト の数は 1 つの ス ラ イ ス に レ ジ ス タ をい く つ配置で き る かに影響 し ます。 2 つの レ ジ ス タ で異な る ク ロ ッ ク 、 リ
セ ッ ト 、 イ ネーブル信号 (使用 し ない場合 も 含む) が使用 さ れてい る 場合、 こ れ ら の レ ジ ス タ を同 じ ス ラ イ ス に配置す
る こ と はで き ません。 こ れは使用率だけでな く 配置その も のに も 影響 し 、 さ ら にパフ ォーマ ン スお よ び消費電力に も
悪影響を与え ます。
ザ イ リ ン ク ス 7 シ リ ーズ FPGA の ス ラ イ ス (CLB の半分、 各ス ラ イ ス に 8 個の レ ジ ス タ ) では、 同 じ 制御信号が共有
さ れ る ので、 制御セ ッ ト は同 じ です。 1 つの制御セ ッ ト の レ ジ ス タ 数が 8 の倍数でない場合、 一部の レ ジ ス タ が未使
用にな り ます。 こ れは主に、 1 つの レ ジ ス タ に供給 さ れ る ク ロ ッ ク イ ネーブルな ど、 フ ァ ン ア ウ ト が小 さ い制御信号
が複数あ る デザ イ ンで考慮す る 必要があ り ます。 制御セ ッ ト 数の多いデザ イ ンでは、 未使用 と な る レ ジ ス タ があ る た
め、 レ ジ ス タ の使用率が低 く な り ます。
制御信号の詳細は、 第 4 章の 「制御信号お よ び制御セ ッ ト 」 を参照 し て く だ さ い。
ヒ ン ト : 使用率ま たは密集の問題が発生 し た場合は、 report_control_sets Tcl コ マ ン ド を使用 し て制御信号の数
が多すぎ る か ど う か を調べて く だ さ い。
制御セ ッ ト 数が多い場合は、 次の ヒ ン ト を使用 し て、 特に フ ァ ン ア ウ ト の低い制御セ ッ ト に焦点を置いて、 制御セ ッ
ト 数を削減 し ます。
•
非同期 リ セ ッ ト と 同期 リ セ ッ ト の両方を持つ順次エ レ メ ン ト を使用 し ない よ う に し ます。
•
非同期を定数でない値に割 り 当てない よ う に し ます。 非同期を定数でない値に割 り 当て る と 、 多数の問題が発生
し ます。
°
2 つの レ ジ ス タ 、 1 つの ラ ッ チ、 お よ び 1 つの LUT と い う 大型回路にな り ます。
°
各順次エ レ メ ン ト の制御セ ッ ト が異な る ため、 最低 3 つ CLB が使用 さ れます。
°
適切に解析 し ない と 、 い く つかの非同期 タ イ ミ ン グ パ ス で タ イ ミ ン グの問題が発生 し 、デザ イ ン全体の安定
性に影響 し ます。
•
可能な限 り 、 ア ク テ ィ ブ High の制御信号を使用 し ます。
•
非同期セ ッ ト / リ セ ッ ト を使用 し ない よ う に し ます。 各非同期 リ セ ッ ト は、 デー タ パ ス に移動す る こ と ので き な
い制御信号です。 非同期 リ セ ッ ト ま たはセ ッ ト は、 同期 リ セ ッ ト ま たはセ ッ ト の よ う にデー タ パ ス ロ ジ ッ ク に
統合す る こ と はで き ないので、 制御セ ッ ト の増加を軽減する こ と はで き ません。 同期 リ セ ッ ト ま たはセ ッ ト を使
用す る と 、 パ ッ キ ン グお よ び配置の柔軟性が増 し ます。
•
セ ッ ト / リ セ ッ ト は必要な場合にのみ使用 し ます。
°
通常、 デー タ パス には自動的に初期化 さ れていない値が消去 さ れ る 多数の レ ジ ス タ が含まれます。
°
既知の値に リ セ ッ ト す る 必要のあ る I/O の レ ジ ス タ 、 ス テー ト マシ ン、 お よ び ク リ テ ィ カル制御信号には、
セ ッ ト お よ び リ セ ッ ト を使用す る 必要があ り ます。
°
同期 リ セ ッ ト を使用す る 場合、 タ イ ミ ン グは信号のアサー ト お よ びデ ィ アサー ト の両方で検証 さ れます。 通
常、 同期信号の方が予測 し やすいので、 非同期 リ セ ッ ト が ど う し て も 必要な場合を除 き 、 同期 リ セ ッ ト を使
用す る こ と を推奨 し ます。
•
ク ロ ッ ク イ ネーブルが実際には余分な ロ ジ ッ ク であ る のに、合成ま たは ロ ジ ッ ク 最適化で削減 さ れない場合があ
り ます。
•
合成、 ロ ジ ッ ク 最適化、 お よ び物理最適化で フ ァ ン ア ウ ト 制御を使用する 場合は、 注意が必要です。 フ ァ ン ア ウ
ト 数の制限が小 さ い と 、 制御セ ッ ト の数が不必要に多 く な る 可能性があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
260
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
コ ンパイル フ ローの調整
デフ ォ ル ト の コ ンパ イ ル フ ロ ーでは、すばや く ベース ラ イ ン制約を取得 し 、 タ イ ミ ン グが満た さ れてい る か ど う か を
解析 し 始め る こ と がで き ます。 初期 イ ンプ リ メ ン テーシ ョ ンの後、 タ イ ミ ン グ ク ロ ージ ャ を達成する ため、 コ ンパ イ
ル フ ロ ーを調整す る 必要があ る 場合があ り ます。
•
「ス ト ラ テジお よ び -directive オプシ ョ ン」
•
「最適化の反復」
•
「 イ ン ク リ メ ン タ ル コ ンパ イ ル」
•
「デザ イ ンの制約を厳 し く す る 」
ス ト ラ テ ジおよび -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> を実行 し て最高の結果の配置を解析する と 、デザ イ ン を フ ロ アプ ラ ン
し て各実行で安定 し た結果が得 ら れ る よ う にす る ためのテ ンプ レー ト を得 る こ と も で き ます。
最適化の反復
コ マ ン ド を複数回実行す る と 、 最適な結果を得 る のに有益であ る 場合があ り ます。 た と えば、 配線中に TNS に影響
す る と 思われ る ク リ テ ィ カル ネ ッ ト の一部を最適化する ため、 phys_opt_design を まず
-force_replication_on_nets オプシ ョ ン を使用 し て実行する と 有益な場合があ り ます。
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>
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
261
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
プ ロ ジ ェ ク ト モー ド では、 -directive オプシ ョ ン を使用 し て実行す る phys_opt_design の Tcl プ リ ス ク リ プ ト
の一部 と し て最初の phys_opt_design コ マ ン ド を実行 し ます。
イ ン ク リ メ ン タ ル コ ンパイル
イ ン ク リ メ ン タ ル コ ンパ イ ルを使用す る と 、 基準デザ イ ン の ク リ テ ィ カル パ ス が現在のデザ イ ンの変更の影響を受
けない場合に、 QoR を保持す る のに最高の結果を得 ら れます。 イ ン ク リ メ ン タ ル コ ンパ イ ルの詳細は、 「 イ ン ク リ メ
ン タ ル フ ロ ー」 を参照 し て く だ さ い。
デザイ ンの制約を厳 し く する
配線後にデザ イ ンの タ イ ミ ン グが少 し の差で満た さ れていない場合、こ れは通常配置後の タ イ ミ ン グ マージ ンが小 さ
いためです。 配置お よ び物理最適化で タ イ ミ ン グ要件を厳 し く す る と 、 配線の タ イ ミ ン グ マージ ンが増加す る 可能性
があ り ます。 こ れには、 次の理由か ら 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 clk1 -to clk1 0 -setup
set_clock_uncertainty -from clk2 -to clk3 0 -setup
5.
配線を実行 し ます。
配線後に タ イ ミ ン グ を解析 し 、 制約を厳 し く する こ と で タ イ ミ ン グが向上 し たか を確認 し ます。 配置後に タ イ ミ ン グ
が満た さ れてお り 、 配線後に少 し の差で タ イ ミ ン グが満た さ れない場合は、 ば ら つ き の量を増加 し て も う 一度実行 し
ます。
推奨 : 制約を 0.5ns 以上厳 し く し ない よ う に し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
262
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
フ ロアプ ラ ン
フ ロ アプ ラ ン を使用す る と 、 高レベルの階層レ イ ア ウ ト や詳細な配置を指定で き ます。 こ れに よ り 、 QoR が向上 し 、
予測可能な結果が得 ら れ る よ う にな り ます。 最悪の問題ま たは最 も 一般的な問題を修正する と 、 最 も 大 き く 改善 し ま
す。 た と えば、 ス ラ ッ ク が大幅に悪いパ ス、 ま たは ロ ジ ッ ク レベル数が多いパ ス があ る 場合、 Pblock を使用 し てそれ
ら のパ ス をデバ イ ス の同 じ 領域にグループ化す る な ど し て修正 し ます。 フ ロ アプ ラ ンは、 デザ イ ン全体に対 し て実行
す る のではな く 、 必要な部分にのみ制限 し ます。
I/O に接続 さ れ る ロ ジ ッ ク を I/O の近 く に フ ロ アプ ラ ンす る と 、 結果が向上す る 可能性があ り 、 コ ンパ イ ル反復実行
において一定 し た結果が得 ら れ る よ う にな り ます。通常は、Pblock のサ イ ズ を ク ロ ッ ク 領域内に収め る のが最適です。
こ の よ う にす る と 、 配置が最 も 柔軟に実行 さ れます。 複数の Pblock が重な っ てい る 部分があ る と 、 共有エ リ アの密集
度が高 く な る 可能性があ る ので、 Pblock が重な ら ない よ う に し ます。 ま た、 Pblock 間を ま た ぐ ネ ッ ト の数を最小限に
抑え ます。
ス タ ッ ク ド シ リ コ ン イ ン タ ー コ ネ ク ト (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 ビ デオ
チ ュ ー ト リ アル 「Vivado でのデザ イ ン解析お よ びフ ロ アプ ラ ン」 を参照 し て く だ さ い。
配置配線の保持
タ イ ミ ン グ解析が満た さ れた ら 、 デザ イ ンの ク リ テ ィ カルな部分の配置お よ び場合に よ っ ては配線を固定で き ます。
こ れに よ り 回路のパフ ォーマ ン ス が保持 さ れ、 今後の実行で予測どお り の結果を得 る こ と がで き ます。
次の も のの配置を再利用す る のは比較的簡単です。
•
I/O
•
グ ロ ーバル ク ロ ッ ク リ ソ ース
•
ブ ロ ッ ク RAM マ ク ロ
•
DSP マ ク ロ
配置を再利用す る と 、 ネ ッ ト リ ス ト の リ ビ ジ ョ ン間での結果が よ り 一貫 し た も のにな り ます。 こ れ ら のプ リ ミ テ ィ ブ
の名前は通常変化 し ないので、 配置を保持す る のは簡単です。
run の間で同 じ タ イ ミ ン グが得 ら れ る よ う にす る ため、 ク リ テ ィ カル ネ ッ ト ま たはその一部の配線を保持す る のが望
ま し い場合があ り ます。 ク リ テ ィ カル ネ ッ ト の配線を保持す る には、 ネ ッ ト の IS_ROUTE_FIXED プ ロ パテ ィ を 1 に
設定 し ます。 こ れは、 Vivado IDE ま たは Tcl コ マ ン ド で実行で き ます。 Vivado IDE でネ ッ ト の配線を固定す る には、
[Device] ウ ィ ン ド ウ で ネ ッ ト を右 ク リ ッ ク し 、 [Fix Routing] を ク リ ッ ク し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
263
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
X-Ref Target - Figure 5-26
図 5-26 : 特定の配線を保持
次の Tcl コ マ ン ド の例では、 $net のすべてのネ ッ ト の配線を固定 し てい ます。
set_property IS_ROUTE_FIXED 1 $net
こ れに よ り 配線が固定 さ れ、 メ モ リ 内のデザ イ ンに制約が追加 さ れます。 配線が固定 さ れたネ ッ ト は、 [Device] で破
線で示 さ れます。
デザ イ ンの リ ソ ース使用率が高い場合や タ イ ミ ン グ要件が非常に厳 し い場合、 デザ イ ン ま たは制約に小 さ な変更を加
えただけで も 配置、 配線、 ま たはその両方が大 き く 変更 さ れ る 可能性があ り ます。 デザ イ ンの関連す る 部分を保持す
る と 、 こ の よ う な場合に有益であ る こ と があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
264
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
消費電力
消費電力の重要性を考慮 し 、 Vivado ツールでは正確な消費電力予測を取得する 方法がサポー ト さ れてお り 、 消費電力
最適化の機能が提供 さ れてい ます。詳細は、『Vivado Design Suite ユーザー ガ イ ド : 消費電力の解析 と 最適化』 (UG907)
[参照 22] を参照 し て く だ さ い。
Vivado Design Suite の フ ローのすべての段階で消費電力を予測
デザ イ ン フ ロ ーを合成か ら イ ンプ リ メ ン テーシ ョ ンに進行 し てい く 際、 消費電力を定期的に監視 し て検証 し 、要件内
であ る こ と を確認す る 必要があ り ます。 そ う する こ と に よ り 、 消費電力が要件に近づ き すぎた場合にすばや く 対処で
き ます。
消費電力予測の精度は、 デザ イ ンの段階に よ っ て異な り ます。 合成後か ら イ ンプ リ メ ン テーシ ョ ンでは、 消費電力の
予測に report_power コ マ ン ド を使用する か、 Vivado IDE で消費電力レ ポー ト を開 き ます。
•
合成後
ネ ッ ト リ ス ト が タ ーゲ ッ ト デバ イ ス で使用可能な実際の リ ソ ース にマ ッ プ さ れます。
•
配置後
ネ ッ ト リ ス ト コ ン ポーネ ン ト が実際のデバ イ ス リ ソ ー ス に配置 さ れ ま す。 こ のパ ッ ク 情報を 基に最終的な ロ
ジ ッ ク リ ソ ース数お よ び コ ン フ ィ ギ ュ レーシ ョ ンが判明 し ます。
XPower Estimator ス プ レ ッ ド シー ト に こ のデー タ を エ ク ス ポー ト で き ます。 こ の コ マ ン ド を使用す る と 、 次が可
能にな り ます。
°
XPE で What-if 解析を実行 し ます。
°
同様の特性を持つ今後のデザ イ ンで ス プ レ ッ ド シー ト を入力す る 際の基準を提供 し ます。
詳細は、 第 3 章 「ボー ド お よ びデバ イ ス プ ラ ン ニ ン グ」 を参照 し て く だ さ い。
•
配線後
配線が完了す る と 、 使用 さ れ る 配線 リ ソ ース に関す る すべての詳細お よ びデザ イ ンに含まれ る 各パ ス の的確な タ
イ ミ ン グ情報が定義 さ れます。
シ ミ ュ レー タ では、 イ ン プ リ メ ン ト さ れた回路の機能をベス ト ケースお よ び ワ ース ト ケース のゲー ト お よ び配線遅
延で検証す る こ と に加え、 グ リ ッ チを含む内部 ノ ー ド の的確な ア ク テ ィ ビ テ ィ が レ ポー ト さ れます。 こ の レベルの消
費電力解析では、 プ ロ ト タ イ プのボー ド で消費電力を実際に計測す る 前に最 も 正確な消費電力が得 ら れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
265
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
report_power でサポー ト さ れる消費電力予測の タ イ プ
report_power コ マ ン ド では、 2 つのモー ド の消費電力解析がサポー ト さ れ ます。 必要な精度に応 じ て、 適切なモー ド
を使用で き ます。
ベ ク タ ー ベースの予測
通常は、 デザ イ ン開発の各段階でシ ミ ュ レーシ ョ ン を実行 し 、 デザ イ ンが要件どお り に動作す る か を検証 し ます。 デ
ザ イ ンの開発段階、 複雑性、 ま たは企業の方針に応 じ て、 さ ま ざ ま な検証手法があ り ます。
次に、 取得可能な有益なデー タ と 、 こ れ ら のデー タ を使用 し て消費電力を解析す る 際に犯 し やすい ミ ス について説明
し ます。 正確な消費電力予測を実行す る には、 デザ イ ンのア ク テ ィ ビ テ ィ レー ト が現実的であ る 必要があ り ます。 ア
ク テ ィ ビ テ ィ レー ト は、 シ ミ ュ レーシ ョ ン さ れ る ブ ロ ッ ク に入力 さ れ る デー タ の通常の動作ま たは ワ ース ト ケース
の動作を示す必要があ り ます。 こ の よ う な情報は、 検証や機能の確認中には必ず し も 供給 さ れません。
無効なデー タ が供給 さ れたために、 無効なデー タ やコ マ ン ド が入力 さ れた と き で も 、 シ ス テ ム で問題な く デー タ を処
理 し て安定 し た状態を保持す る こ と がで き る と 検証 さ れて し ま う 場合 も あ り ます。こ の よ う なテ ス ト ケース を使用 し
て消費電力解析を実行す る と 、 デザ イ ン ロ ジ ッ ク に通常のシ ス テ ム動作状況 と 同 じ よ う に入力が供給 さ れないため、
消費電力予測が不正確にな り ます。
シ ス テム ト ラ ンザク シ ョ ン レ ベル
デザ イ ン サ イ ク ル初期に、 PCB 上のデバ イ ス間ま たは FPGA アプ リ ケーシ ョ ン の異な る フ ァ ン ク シ ョ ン間で発生す
る ト ラ ンザ ク シ ョ ン を記述 し てい る 場合があ り ます。 こ の記述か ら 、 特定の I/O ポー ト お よ びほ と ん ど の ク ロ ッ ク ド
メ イ ン の ア ク テ ィ ビ テ ィ を フ ァ ン ク シ ョ ン ブ ロ ッ ク ご と に抽出で き ま す。 こ の情報は、 Xilinx Power Estimator ス プ
レ ッ ド シー ト の入力の際に役立ち ます。
FPGA 記述レ ベル
アプ リ ケーシ ョ ンの RTL を定義す る 際は、 ビヘ イ ビ アー シ ミ ュ レーシ ョ ン を実行 し て機能を検証で き ます。 こ れは、
デー タ フ ロ ーお よ び ク ロ ッ ク サ イ ク ルに対す る 計算の有効性を検証す る のに役立ち ます。 次の情報は、 こ の段階で
は取得で き ません。
•
実際に使用 さ れ る FPGA リ ソ ース
•
数
•
コ ン フ ィ ギ ュ レーシ ョ ン
リ ソ ース使用量を推定 し て、 I/O ポー ト ま たは内部制御信号 (セ ッ ト 、 リ セ ッ ト 、 ク ロ ッ ク イ ネーブル) のア ク テ ィ ビ
テ ィ を抽出で き ます。 こ の情報を Xilinx Power Estimator ス プ レ ッ ド シー ト に適用 し て、 よ り 正確な結果を得 る こ と が
で き ます。
シ ミ ュ レー タ で ノ ー ド ア ク テ ィ ビ テ ィ を抽出 し 、 SAIF フ ァ イ ル フ ォーマ ッ ト でエ ク ス ポー ト で き ます。 こ の フ ァ イ
ルは、 Vivado Design Suite デザ イ ン フ ロ ーで よ り 正確な消費電力解析を実行す る ために保存で き ます。 た と えば、 イ
ンプ リ メ ン テーシ ョ ン後のシ ミ ュ レーシ ョ ン を実行す る つ も り がない場合な どは、 配置配線後に こ の フ ァ イ ルを使用
で き ます。
FPGA イ ン プ リ メ ン テーシ ョ ン レベル
イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス の異な る 段階でシ ミ ュ レーシ ョ ン を実行 し 、消費電力に関連す る さ ま ざ ま な情報を
取得で き ます。 こ の追加情報を使用 し て、 Xilinx Power Estimator ス プ レ ッ ド シー ト お よ び Vivado 消費電力解析の結果
を向上で き ます。 ま た、 I/O ポー ト お よ び特定のモジ ュ ールのア ク テ ィ ビ テ ィ を保存 し 、 Vivado 消費電力解析機能で
再利用で き ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
266
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
シ ミ ュ レーシ ョ ン フ ァ イル
Vivado Design Suite の [Report Power] コ マ ン ド では、デザ イ ン デー タ ベース内のネ ッ ト を シ ミ ュ レーシ ョ ン結果のネ ッ
ト リ ス ト 内の名前 と 一致 さ せます。消費電力のシ ミ ュ レーシ ョ ン デー タ は、SAIF (Switching Activity Interchange Format)
フ ァ イ ルに保存 さ れます。
report_power ではネ ッ ト 名が一致 さ れ る ので、消費電力解析を実行 し たの と 同 じ デザ イ ン ビ ュ ー (合成後、配線後
な ど) でシ ミ ュ レーシ ョ ン結果を取得す る のが最適です。
重要 : Vivado IDE で [Report Power] ダ イ ア ロ グ ボ ッ ク ス の [Input Files] タ ブに SAIF フ ァ イ ル名を指定 し て、 SAIF シ
ミ ュ レーシ ョ ン出力フ ァ イ ルを読み込んで く だ さ い。 ま たは、 read_saif Tcl コ マ ン ド を使用 し て SAIF シ ミ ュ レー
シ ョ ン出力フ ァ イ ルを読み込みます。Vivado Design Suite での消費電力解析用に Mentor Graphics 社の ModelSim シ ミ ュ
レー タ で SAIF フ ァ イ ルを生成す る 場合は、 ア ンサー 53544 を参照 し て く だ さ い。
ベ ク タ ーレ ス予測
デザ イ ン ノ ー ド のア ク テ ィ ビ テ ィ がユーザーま たはシ ミ ュ レーシ ョ ン結果か ら 供給 さ れない場合、ベ ク タ ーレ ス消費
電力予測アルゴ リ ズ ムで こ のア ク テ ィ ビ テ ィ を予測で き ます。
ベ ク タ ーレ ス エ ン ジ ンは、 未定義 ノ ー ド すべてに初期シー ド (デフ ォ ル ト の信号レー ト お よ びス タ テ ィ ッ ク 確率) を
割 り 当て、 デザ イ ン のプ ラ イ マ リ 入力か ら さ ま ざ ま な回路エ レ メ ン ト を介 し て内部 ノ ー ド にア ク テ ィ ビ テ ィ を伝搬
し 、 プ ラ イ マ リ 出力に到達す る ま で こ の操作を繰 り 返 し ます。
こ のアルゴ リ ズ ムでは、 デザ イ ンの接続性、 リ ソ ース の機能、 およ びコ ン フ ィ ギ ュ レーシ ョ ンが認識 さ れます。 ヒ ュー
リ ス テ ィ ク ス に よ り 、 ネ ッ ト リ ス ト に含まれ る どの ノ ー ド のグ リ ッ チ レー ト で も 予測で き ます。 グ リ ッ チは、 デザ イ
ン エ レ メ ン ト がア ク テ ィ ブな ク ロ ッ ク エ ッ ジ間で最終的な値に安定する ま でに数回ス テー ト が変わ る と 発生し ます。
ベ ク タ ーレ ス伝搬エン ジ ンは、 時間が比較的かか る 配線後のシ ミ ュ レーシ ョ ンほ ど正確ではあ り ませんが、 精度 と 計
算速度のバ ラ ン ス が取 ら れた優れた方法です。
正確な消費電力解析のためのベス ト プ ラ ク テ ィ ス
正確な消費電力解析には、 次を使用 し ます。
•
「正確な ク ロ ッ ク 制約」
•
「正確な I/O 制約」
•
「最上位制御信号の正確な信号レー ト お よ び % High」
正確な ク ロ ッ ク 制約
消費電力は動作周波数に よ っ て大 き く 変わ る ので、 ク ロ ッ ク 周波数を正 し く 指定する 必要があ り ます。
特定の ノ ー ド のア ク テ ィ ビ テ ィ は、 シ ス テ ム の仕様 ま たは FPGA が通信す る イ ン タ ーフ ェ イ ス に よ り 決定 さ れ る の
で、 ど のデザ イ ン で も 通常は既知です。 こ の情報を ツールに入力す る と 、 消費電力予測アルゴ リ ズ ム で よ り 正確な結
果が得 ら れます。
こ の情報は、 FPGA デバ イ ス の複数のセルを駆動する ノ ー ト に対 し て入力 し てお く と 特に有益です。
•
セッ ト
•
リ セッ ト
•
ク ロ ッ ク イ ネーブル
•
ク ロ ッ ク 信号
すべての FPGA ク ロ ッ ク ド メ イ ン の正確な周波数、 お よ び外部か ら 供給 さ れ る か (入力ポー ト )、 内部で生成 さ れ る
か、 ま たは外部か ら プ リ ン ト 回路基板に供給 さ れ る か (出力ポー ト ) は、 通常判明 し てい ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
267
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
正確な I/O 制約
FPGA デバ イ ス か ら のデー タ の入出力のプ ロ ト コ ルお よ びフ ォーマ ッ ト が判明 し てい る と 、 通常はツールで少な く と
も 一部の I/O コ ン ポーネ ン ト に対 し て信号の遷移レー ト や信号の % High を指定で き ます。
た と えば、 プ ロ ト コ ルに DC バ ラ ン ス要件 (信号の % High が 50%) があ る 場合や、 メ モ リ イ ン タ ーフ ェ イ スへのデー
タ の書 き 込みお よ び メ モ リ イ ン タ ーフ ェ イ ス か ら のデー タ の読み出 し 頻度が判明 し てい る 場合は、ス ト ロ ーブ信号お
よ びデー タ 信号のデー タ レー ト を設定で き ます。
出力ポー ト で駆動 さ れ る ボー ド お よ びその他の外部容量は通常既知です。
すべての出力ポー ト の ロ ー ド を設定す る には、 Tcl コ ン ソ ールに次の コ マ ン ド を入力 し ます。
set_load <value in pF> [all_outputs]
最上位制御信号の正確な信号レー ト お よび % High
シ ス テ ムお よ びその機能か ら 、 セ ッ ト 、 リ セ ッ ト 、 ク ロ ッ ク イ ネーブルな ど の制御信号のア ク テ ィ ビ テ ィ を予測で き
る 場合があ り ます。 こ れ ら の信号は通常、 デザ イ ン ロ ジ ッ ク の広範囲部分を オン、 オ フ にで き る ので、 こ のア ク テ ィ
ビ テ ィ 情報を供給す る と 消費電力予測の精度が高 く な り ます。
I/O イ ン タ ーフ ェ イ ス のデー タ パ タ ーンが判明 し てい る 場合は、 こ のア ク テ ィ ビ テ ィ を入力 し ます。 ス プ レ ッ ド シー
ト な ど別の ツールで電源ご と の総消費電力を算出 し ていない場合、 出力の終端方法を指定 し て、 [Report Power] コ マ
ン ド で FPGA デバ イ ス の電源か ら こ れ ら の外部 コ ン ポーネ ン ト に供給 さ れ る 電力量が含め ら れ る よ う に し ます。
上記の信号 タ イ プの正確な信号特性を指定す る には、 set_switching_activity コ マ ン ド を使用す る か、 ま たは
Vivado IDE の [Properties] ウ ィ ン ド ウ の [Power] ビ ュ ーで [Signal Rate] と [Percentage High] を指定 し ます。
プ ロ ジ ェ ク ト のデバイ ス設定
[Report Power] ダ イ ア ロ グ ボ ッ ク ス の[Environment] お よ び [Power Supply] タ ブで変更可能な設定を確認 し ます。 プ ロ
セ ス、 電圧、 環境デー タ が意図 し た環境に近い も のであ る こ と を確認 し ます。 こ れ ら の設定は、 予測 さ れ る 総消費電
力に大 き く 影響 し ます。
こ れ ら の タ ブでは、 次を設定で き ます。
•
「[Device Settings] (デバ イ ス設定)」
•
「[Environment Settings] (環境設定)」
•
「[Power Supply] (電源)」
[Device Settings] (デバイ ス設定)
•
[Temp Grade]
デバ イ ス に適 し た温度グ レー ド を選択 し ます。 通常は [Commercial] ま たは [Industrial] です。 こ の設定に よ り ス タ
テ ィ ッ ク 消費電力仕様が異な る デバ イ ス も あ り ます。 こ れを適切に設定する こ と に よ り 、 選択 し たデバ イ ス に対
し て正 し いジ ャ ン ク シ ョ ン温度範囲が表示 さ れます。
•
[Process]
推奨 さ れ る プ ロ セ ス設定は、 ワース ト ケース解析では [Maximum] です。 デフ ォ ル ト 設定は [Typical] で、 統計的
な計測に基づ く よ り 正確な結果が得 ら れ ますが、 [Maximum] に変更す る と 、 消費電力仕様が ワ ース ト ケース の
値に変更 さ れます。
Tcl コ マ ン ド で温度グ レー ド お よ びプ ロ セ ス を設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -process maximum
set_operating_conditions -grade industrial
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
268
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
[Environment Settings] (環境設定)
[Report Power] ダ イ ア ロ グ ボ ッ ク ス の [Environment] タ ブで変更可能な設定を確認 し ます。
•
[Ambient Temperature] (°C)
FPGA デザ イ ン を含むエン ク ロ ージ ャ 内で達する 可能性のあ る 最大温度を指定 し ます。 こ の設定 と 、 エア フ ロ ー
やその他の放熱経路 ( ヒ ー ト シ ン ク な ど) に よ り 、 ジ ャ ン ク シ ョ ン温度が正確に算出 さ れ、 デバ イ ス の ス タ テ ィ ッ
ク 消費電力が よ り 正確に算出 さ れます。
Tcl コ マ ン ド で周囲温度を設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -ambient_temp 75
•
[Airflow] (LFM)
チ ッ プのエア フ ロ ーは、 LFM ( リ ニア フ ィ ー ト /分) で計測 さ れます。 LFM は、 CFM (立方フ ィ ー ト /分) で表 さ れ
た フ ァ ンの出力を空気が通過す る 断面で除算 し て求め る こ と がで き ます。
デバ イ ス ま たはフ ァ ンの具体的な配置が FPGA デバ イ ス上の空気の動 き に影響 し 、放熱に影響す る 可能性があ り
ます。 こ のパ ラ メ ー タ ーのデフ ォ ル ト 値は 250LFM です。 エア フ ロ ーな し (静止空気中) で FPGA デバ イ ス を動作
さ せ る 場合は、 デフ ォ ル ト の 250LFM を 0LFM に変更 し ます。
Tcl コ マ ン ド でエア フ ロ ーを設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -airflow 250
•
[Heat Sink] (使用可能な場合)
ヒ ー ト シ ン ク を使用 し てお り 、 詳細な放熱情報がない場合は、 ヒ ー ト シ ン ク の タ イ プに適切なプ ロ フ ァ イ ルを選
択 し ま す。 こ のパ ラ メ ー タ ー と ほかのパ ラ メ ー タ ーは、 有効 ΘJB (プ リ ン ト 回路基板の熱抵抗) の算出に使用 さ
れ、 よ り 正確な ジ ャ ン ク シ ョ ン温度お よ び静止消費電力が算出 さ れ ます。 ソ ケ ッ ト の設計お よ び構造に よ っ て、
ヒ ー ト シ ン ク と し て機能す る も の も あ り ます。
Tcl コ マ ン ド で ヒ ー ト シ ン ク を設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -heatsink low
•
[Board selection] お よ び [Number of board layers] (使用可能な場合)
ボー ド のおお よ そのサ イ ズ と ス タ ッ ク を選択す る と 、 ボー ド 自体の熱伝導性を考慮す る こ と に よ り 、有効 ΘJB の
算出に役立ち ます。
•
[ΘJB] (プ リ ン ト 回路基板の熱抵抗)
ボー ド お よ びシ ス テ ムの よ り 正確な温度モデルが存在す る 場合、 FPGA デバ イ ス か ら の放熱量を指定す る ために
使用 し ます。
よ り 正確な カ ス タ ム ΘJB を指定す る と 、 ジ ャ ン ク シ ョ ン温度が よ り 正確に予測 さ れ、デバ イ ス の ス タ テ ィ ッ ク 消
費電力を よ り 正確に算出で き る よ う にな り ます。
重要 : カ ス タ ム ΘJB を指定す る には、 [Board selection] を [Custom] に設定する 必要があ り ます。 カ ス タ ム ΘJB を指定
す る 場合は、 正確な消費電力を算出す る ため、 [Board temperature] も 指定する 必要があ り ます。
Tcl コ マ ン ド でボー ド 選択を設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -board jedec
Tcl コ マ ン ド で ΘJB を設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -thetajb 3
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
269
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
[Power Supply] (電源)
[Report Power] ダ イ ア ロ グ ボ ッ ク ス の [Power Supply] タ ブで変更可能な設定を確認 し ます。
•
電源電圧
電源情報が既知の場合は、 [Power Supply] タ ブで各電源に正 し い電圧値が設定 さ れてい る こ と を確認 し ます。 電圧は、
ス タ テ ィ ッ ク 消費電力お よ びダ イ ナ ミ ッ ク 消費電力の両方に大 き く 影響 し ます。
Tcl コ マ ン ド で Vccaux レールの電圧を設定す る には、 次の コ マ ン ド を使用 し ます。
set_operating_conditions -voltage {Vccaux <value>}
Vivado 消費電力解析を実行 し た後にデザイ ンの電力分配を確認
消費電力解析が完了 し た ら 、 [Power] ウ ィ ン ド ウ の [Summary] ページで [Total On-Chip Power] (総オンチ ッ プ消費電力)
お よ び温度プ ロ パテ ィ を確認 し ます。 [On-Chip Power] グ ラ フ では、 デバ イ ス リ ソ ース タ イ プご と の消費電力が示 さ
れ ます。 こ のグ ラ フ か ら 、 デザ イ ン で最 も 消費電力が高い箇所を特定で き ます。 [Power Supply] ページには、 各電源
の電流お よ びその ス タ テ ィ ッ ク 消費電力お よ びダ イ ナ ミ ッ ク 消費電力の内訳が表示 さ れます。
[Utilization Details] の下で リ ソ ース タ イ プ を選択す る と 、 その リ ソ ース におけ る 消費電力の詳細が表示 さ れ ます。 各
リ ソ ース のページは、 ツ リ ー形式の表にな っ てい ます。 列ヘ ッ ダーを ド ラ ッ グする と 、 列の順序を変更で き ます。 ま
た、 列ヘ ッ ダーを ク リ ッ ク す る と 並べ替え順を変更で き ます。
Vivado 消費電力解析を実行 し た後に制御信号のア ク テ ィ ビ テ ィ を
調整
正確な消費電力解析用に SAIF ベース のア ノ テーシ ョ ン を使用 し た場合は、 最初の解析を実行 し た後に消費電力解析
を調整で き ます。
[Report Power] コ マ ン ド では、 すべての制御信号が [Power] ウ ィ ン ド ウ の [Signals] に リ ス ト さ れます。 アプ リ ケーシ ョ
ンの予測動作か ら 、一部のセ ッ ト / リ セ ッ ト 信号が通常のデザ イ ン動作ではア ク テ ィ ブではない こ と な ど がわか る 場合
は、 こ れ ら の信号のア ク テ ィ ビ テ ィ を調整す る 必要があ り ま す。 同様に、 ブ ロ ッ ク が使用 さ れない と き に、 ア プ リ
ケーシ ョ ンに含まれ る 一部の信号に よ り 、 ブ ロ ッ ク 全体がデ ィ ス エーブルにな る 場合があ り ます。 機能に合わせてア
ク テ ィ ビ テ ィ を調整 し て く だ さ い。
合成お よ び配置配線アルゴ リ ズ ムでは、RTL 記述を最適化す る ために制御信号が推論ま たはマ ッ プ し 直 さ れ る こ と が
あ る ので、 こ れ ら のビ ュ ーに表示 さ れ る 信号に不明な信号が含まれてい る こ と があ り ます。 こ れ ら の信号は、 ツール
に よ り ア ク テ ィ ビ テ ィ を決定 さ せます。
消費電力レポー ト のテキス ト フ ァ イルを出力
Vivado IDE の Flow Navigator で [Report Power] を ク リ ッ ク し 、 [Report Power] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 こ のダ
イ ア ロ グ ボ ッ ク ス で消費電力設定を確認 し 、 デザ イ ンの既知のエ レ メ ン ト のア ク テ ィ ビ テ ィ を調整 し ます。
プ ロ ジ ェ ク ト の記録 と し て、 消費電力予測結果を テ キ ス ト フ ァ イ ルに保存する 必要があ る 場合があ り ます。
ま た、 パフ ォーマ ン ス ま たはエ リ ア制約を満たすために別のマ ッ プ、 配置、 お よ び配線オプシ ョ ン を試す場合、 各試
行の消費電力結果を保存 し てお く と 、 複数の条件で要件が満た さ れた と き に最 も 消費電力が低い ソ リ ュ ーシ ョ ン を選
択す る のに役立ち ます。
Tcl コ ン ソ ールに次の コ マ ン ド を入力 し ます。
report_power -file report.pwr
report.pwr フ ァ イ ルが生成 さ れ、 現在の作業デ ィ レ ク ト リ に配置 さ れます。 こ の フ ァ イ ルには、 消費電力予測結果
が含ま れます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
270
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
Vivado ツールか ら XPE に消費電力予測を エ ク スポー ト
Vivado IDE の Flow Navigator で [Report Power] を ク リ ッ ク し 、 [Report Power] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 こ のダ
イ ア ロ グ ボ ッ ク ス で消費電力設定を確認 し 、 既知のエ レ メ ン ト のア ク テ ィ ビ テ ィ を調整 し ます。
環境情報、デバ イ ス使用量、デザ イ ン ア ク テ ィ ビ テ ィ すべて を 1 つの フ ァ イ ル (.xpe) に保存 し 、Xilinx Power Estimator
(XPE) ス プ レ ッ ド シー ト に イ ン ポー ト で き ます。 消費電力要件を超えてお り 、 ツールの最適化機能だけでは要件を満
たす こ と がで き ない よ う な場合に有益です。
こ の場合、 次を実行で き ます。
•
現在の イ ンプ リ メ ン テーシ ョ ン結果を XPE に イ ン ポー ト し ます。
•
異な る マ ッ プ、 ゲーテ ィ ン グ、 畳み込み、 お よ びその他の手法を試 し ます。
•
それ ら の消費電力への影響を予測 し てか ら RTL コ ー ド を変更 し 、 イ ンプ リ メ ン テーシ ョ ン を再実行 し ます。
XPE ス プ レ ッ ド シー ト での予測 と こ れ ら の最終結果を比較 し ます。 こ れに よ り 、 今後のデザ イ ン で XPE に よ り 正確
な情報を供給で き ます。
Tcl コ ン ソ ールに次の コ マ ン ド を入力 し ます。
report_power -xpe report.xpe
report.xpe フ ァ イ ルが生成 さ れ、 現在の作業デ ィ レ ク ト リ に配置 さ れ ます。 こ の フ ァ イ ルは、 XPE ス プ レ ッ ド シー ト
に イ ン ポー ト で き ます。
消費電力の最適化
消費電力予測が要件を満た し ていない場合は、 消費電力を削減す る 必要があ り ます。
•
「消費電力予測お よ び最適化結果の解析」
•
「消費電力最適化の実行」
•
「消費電力最適化レ ポー ト の使用」
•
「 タ イ ミ ン グ レ ポー ト を使用 し て消費電力最適化の影響を確認」
消費電力予測お よび最適化結果の解析
消費電力予測を生成 し た ら 、 次を実行す る こ と をお勧め し ます。
•
[Summary] セ ク シ ョ ン で総消費電力を確認 し ます。 総消費電力お よ びジ ャ ン ク シ ョ ン温度はデザ イ ンの温度要件
お よ び消費電力要件を満た し てい ますか。
•
結果が要件を大幅に超え てい る 場合は、 ブ ロ ッ ク タ イ プご と お よ び電源レールご と の電力分配を確認 し ます。 こ
れに よ り 、 消費電力が最 も 大 き いブ ロ ッ ク を特定で き ます。
•
[Utilization Details] の下の [Hierarchical] ページ を確認 し ます。 階層ご と に情報が示 さ れてい る ので、 電力が最 も
消費 さ れてい る モジ ュ ールを特定で き ます。 特定のモジ ュ ールを展開表示する と 、 各ブ ロ ッ ク の消費電力を確認
で き ます。 ク ロ ス プ ロ ーブ を使用 し て、 モジ ュ ールの特定のセ ク シ ョ ン が ど の よ う に コ ー ド 記述 さ れてい る か、
消費電力を削減す る よ う コ ー ド を記述 し 直せ る かを判断で き ます。
消費電力最適化の実行
ヒ ン ト : 消費電力最適化の効果を最大にする には、 第 4 章の 「消費電力を向上する ための コ ーデ ィ ン グ ス タ イ ル」 を
参照 し て く だ さ い。
消費電力最適化はデザ イ ン全体ま たはデザ イ ンの一部 (set_power_opt を使用し た場合) に対 し て実行 し 、消費電力
を最小限に し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
271
第 5 章 : イ ン プ リ メ ン テーシ ョ ン
消費電力最適化は、 デザ イ ン フ ロ ーの配置前ま たは配置後のいずれかで実行で き ますが、 両方では実行で き ません。
配置前の消費電力最適化では、 消費電力の節電量を最大にする こ と に焦点が置かれ、 まれに タ イ ミ ン グが悪化す る こ
と も あ り ます。 タ イ ミ ン グの保持が主な目標の場合は、 消費電力最適化を配置後に実行す る こ と をお勧め し ます。 こ
の場合、 タ イ ミ ン グ を保持す る 消費電力最適化のみが実行 さ れます。
レ ガシ (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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
272
第 6章
コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グの概要
コ ン フ ィ ギ ュ レーシ ョ ン と は、アプ リ ケーシ ョ ンに特化 し たデー タ (ビ ッ ト ス ト リ ーム) を FPGA デバ イ ス の内部 メ モ
リ に読み込むプ ロ セ ス を指 し ます。 デザ イ ンがハー ド ウ ェ ア上の要件を満た さ ない場合はデバ ッ グが必要です。 デザ
イ ン イ ンプ リ メ ン テーシ ョ ン を完了 し た ら 、 FPGA にデザ イ ン を読み込み、 ハー ド ウ ェ ア上で実行 し ます。
コ ン フ ィ ギ ュ レーシ ョ ンお よ びデバ ッ グの ソ フ ト ウ ェ ア フ ロ ーお よ び コ マ ン ド に関す る 次のユーザー ガ イ ド を参照
し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24]
•
『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13]
コ ン フ ィ ギ ュ レーシ ョ ン
こ のセ ク シ ョ ンでは、 コ ン フ ィ ギ ュ レーシ ョ ン モー ド を選択 し 、 FPGA デバ イ ス にデザ イ ン を読み込む準備が整っ た
後、 タ ーゲ ッ ト コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ン を イ ンプ リ メ ン ト す る ための ヒ ン ト を紹介 し ます。 一般的
な コ ン フ ィ ギ ュ レーシ ョ ン モー ド や、 初期プ ラ ン ニ ン グ中の推奨事項については、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24]
•
『UltraScale FPGA の BPI コ ン フ ィ ギ ュ レーシ ョ ンお よ びフ ラ ッ シ ュ プ ロ グ ラ ム』 (XAPP1220) [参照 52]
•
『7 シ リ ーズ FPGA の BPI 高速 コ ン フ ィ ギ ュ レーシ ョ ンお よ び iMPACT フ ラ ッ シ ュ プ ロ グ ラ ム』 (XAPP587) [参
照 53]
•
『SPI フ ラ ッ シ ュ を使用 し た 7 シ リ ーズ FPGA の コ ン フ ィ ギ ュ レーシ ョ ン』 (XAPP586) [参照 54]
•
『UltraScale FPGA の SPI コ ン フ ィ ギ ュ レーシ ョ ンお よ びフ ラ ッ シ ュ プ ロ グ ラ ム』 (XAPP1233) [参照 55]
•
『暗号化を使用 し て 7 シ リ ーズ FPGA のビ ッ ト ス ト リ ーム を保護』 (XAPP1239) [参照 56]
•
Vivado の ビデオ チ ュ ー ト リ アル ページに、 プ ロ グ ラ ムお よ びデバ ッ グに関す る ビデオ チ ュ ー ト リ アルがあ り
ま す。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
273
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
ビ ッ ト ス ト リ ーム イ メ ージ (.bit) を作成す る 前に、 デザ イ ン を合成お よ び イ ン プ リ メ ン ト し てお く 必要があ り ます。
ビ ッ ト ス ト リ ーム を作成 し た ら 、次の 2 つの方法のいずれか を選択 し て FPGA デバ イ ス にビ ッ ト ス ト リ ーム を読み込
む こ と がで き ます。
•
直接プ ロ グ ラ ム
ケーブル、 プ ロ セ ッ サ、 ま たはカ ス タ ム ソ リ ュ ーシ ョ ン を使用 し て FPGA デバ イ ス に直接ビ ッ ト ス ト リ ーム が
読み込まれます。
•
間接プ ロ グ ラ ム
ビ ッ ト ス ト リ ーム を外部フ ラ ッ シ ュ メ モ リ に読み込む こ と がで き ます。 こ の後、 フ ラ ッ シ ュ メ モ リ か ら ビ ッ ト
ス ト リ ームが FPGA デバ イ ス に読み込まれます。
ザ イ リ ン ク ス か ら は次の作業を行 う ツールが提供 さ れてい ます。
•
FPGA ビ ッ ト ス ト リ ーム (.bit ま たは .rbt) を作成
•
ビ ッ ト ス ト リ ーム を フ ラ ッ シ ュ プ ロ グ ラ ミ ン グ フ ァ イ ル (.mcs) にフ ォーマ ッ ト
•
FPGA デバ イ ス に直接プ ロ グ ラ ム
•
接続 さ れてい る コ ン フ ィ ギ ュ レーシ ョ ン フ ラ ッ シ ュ デバ イ ス を間接的にプ ロ グ ラ ム
ビ ッ ト ス ト リ ームの生成
ビ ッ ト ス ト リ ーム (.bit) はユーザー デザ イ ン を表すバ イ ナ リ フ ァ イ ルです。 こ の ビ ッ ト ス ト リ ームには FPGA デバ イ
ス に読み込む こ と がで き る コ ン フ ィ ギ ュ レーシ ョ ン デー タ が含ま れてい ます。 複数の ビ ッ ト ス ト リ ーム フ ァ イ ルの
フ ォ ーマ ッ ト オプシ ョ ン と 、 FPGA 内部 コ ン フ ィ ギ ュ レーシ ョ ン レ ジ ス タ を初期化す る こ と に よ り 機能を有効にす
る さ ま ざ ま な ビ ッ ト ス ト リ ーム入力オプシ ョ ンがあ り ます。 ビ ッ ト ス ト リ ーム フ ァ イ ルを生成す る 前に、 XDC フ ァ
イ ルま たは Tcl シ ェ ルで set_property 設定が ビ ッ ト ス ト リ ーム生成に正 し く 設定 さ れてい る こ と を確認す る こ と
が重要です。
た と えば、 マ ス ター コ ン フ ィ ギ ュ レーシ ョ ン モー ド (マ ス タ ー SPI ま たはマ ス ター BPI な ど) では、 内部コ ン フ ィ ギ ュ
レーシ ョ ン ク ロ ッ ク (CCLK) ま たは外部マ ス ター コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク (EMCCLK) を使用で き ます。適切
な set_property (BITSTREAM_CONFIG_CONFIGRATE ま たは BITSTREAM.CONFIG.EXTMASTERCCLK_EN な ど) を
使用 し て タ ーゲ ッ ト ク ロ ッ ク ソ ース を イ ネーブルに し て く だ さ い。
ビ ッ ト ス ト リ ーム生成プ ロ パテ ィ の詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24]
•
『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13]
•
write_bitstream コ マ ン ド の使用方法については、 Vivado Design Suite ビデオ チ ュ ー ト リ アル 「Vivado Design
Suite での write_bitstream コ マ ン ド の使用方法」 を参照す る か、 Vivado® Design Suite Tcl シ ェ ルで コ マ ン ド のヘル
プ を参照 し て く だ さ い。
list_property_value を使用す る か 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908)
[参照 24] の 「デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定」 を参照 し てプ ロ パテ ィ に使用で き る 値を確
認 し ます。
フ ラ ッ シ ュ フ ァ イルの生成
Vivado Design Suite Tcl コ マ ン ド write_cfgmem は、 FPGA ビ ッ ト ス ト リ ーム (.bit) を フ ラ ッ シ ュ プ ロ グ ラ ム フ ァ
イ ル (.mcs) に変換 し ます。
バ ス 幅のデー タ 順が使用 さ れ、 フ ラ ッ シ ュ か ら の FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン が正 し く 実行 さ れ る よ う にす る た
め、 .mcs プ ロ グ ラ ム フ ァ イ ルを生成す る 際は適切な write_cfgmem イ ン タ ーフ ェ イ ス オプシ ョ ン を選択す る 必要
があ り ます。 設定可能なオプシ ョ ンは、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908)
[参照 24] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
274
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
Vivado Design Suite デバイ ス プ ログ ラ マ : イ ン シ ス テム JTAG プ ロ
グ ラ ミ ング
Vivado Design Suite デバ イ ス プ ロ グ ラ マにはい く つかの機能があ り ます。 一般的には、 ザ イ リ ン ク ス サポー ト のダ ウ
ン ロ ー ド ケーブルを使用 し て JTAG を介 し て FPGA デバ イ ス を プ ロ グ ラ ム、外部 SPI フ ラ ッ シ ュ お よ びパ ラ レル NOR
フ ラ ッ シ ュ を間接的にプ ロ グ ラ ム、 ま たは FPGA デバ イ ス eFUSE AES キーをプ ロ グ ラ ムす る のに使用 さ れます。
サポー ト お よ び コ マ ン ド の詳細は、 次の資料を参照 し て く だ さ い。
•
『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13]
•
『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24]
JTAB ベース のプ ロ グ ラ ム モー ド では、 JTAG ケーブル コ ネ ク タ が必要です。 Vivado Design Suite デバ イ ス プ ロ グ ラ
マ を使用 し て FPGA デバ イ ス を プ ロ グ ラ ムす る 場合は、 JTAG の最大周波数が JTAG チ ェ ーンの最低速デバ イ ス の制
限を受け る こ と に注意 し て く だ さ い。
SPI NOR ま たはパ ラ レル NOR フ ラ ッ シ ュの間接プ ログ ラ ム
外部フ ラ ッ シ ュ を使用 し た基本的な コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ン の場合、 FPGA デバ イ ス はパ ワ ーオ ン
時に自動的に フ ラ ッ シ ュ メ モ リ か ら ビ ッ ト ス ト リ ーム を読み出 し ます。 FPGA デバ イ ス は コ ン フ ィ ギ ュ レーシ ョ ン
用に フ ラ ッ シ ュ メ モ リ に接続 さ れてい る ので、 接続 さ れてい る イ ン タ ーフ ェ イ ス を介 し て フ ラ ッ シ ュ を プ ロ グ ラ ム
で き ま す。
イ ン シ ス テ ムでの フ ラ ッ シ ュ の間接的プ ロ グ ラ ムは、 よ く 利用 さ れ る オプシ ョ ンです。 Vivado Design Suite (バージ ョ
ン 2014.1 以降) では、 一部の SPI NOR お よ びパ ラ レ ル NOR フ ラ ッ シ ュ の間接プ ロ グ ラ ム がサポー ト さ れてい ます。
フ ラ ッ シ ュ は、 間接プ ロ グ ラ ム ビ ッ ト ス ト リ ーム を読み込む こ と に よ り 間接的にプ ロ グ ラ ム さ れます。 サポー ト さ れ
てい る フ ラ ッ シ ュ メ モ リ デバ イ ス の リ ス ト は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』
(UG908) [参照 24] を参照 し て く だ さ い。
Vivado Design Suite のビ ッ ト ス ト リ ーム イ メ ージは、FPGA コ ン フ ィ ギ ュ レーシ ョ ン フ ラ ッ シ ュ イ ン タ ーフ ェ イ ス ピ
ンのみを制御お よ びア ク セ ス し ます。その他の FPGA SelectIO™ テ ク ノ ロ ジ ピ ンは使用 さ れません。未使用の SelectIO
をすべて、 内部プルア ッ プ を使用、 内部プルダ ウ ン使用、 あ る いはプルア ッ プ ま たはプルダ ウ ン を使用 し ない よ う に
プ ロ グ ラ ム で き ま す。 間接プ ロ グ ラ ム中の予期 し ないボー ド 信号のア ク テ ィ ビ テ ィ が見 ら れ る 場合、 Vivado Design
Suite で こ れ ら の未使用の SelectIO テ ク ノ ロ ジ ピ ンの選択を確認 し て く だ さ い。
表 6-1 : フ ラ ッ シ ュ間接プ ログ ラ ムの推奨事項
操作
推奨事項
消去
フ ラ ッ シ ュ デバ イ ス は不揮発性デバ イ ス で、 プ ロ グ ラ ム前に消去す る 必要があ り ま す。
チ ッ プ全体の消去が指定 さ れない限 り 、割 り 当て ら れてい る MCS で指定 さ れてい る ア ド
レ ス範囲のみが消去 さ れます。
ブラ ン ク チェ ッ ク
消去操作を検証 し ます。
リ ードバッ ク
元の フ ラ ッ シ ュ プ ロ グ ラ ミ ン グ フ ァ イ ル と 比較す る ため、 フ ラ ッ シ ュ の内容を フ ァ イ ル
に リ ー ド バ ッ ク し ます。 こ の操作では、 割 り 当て ら れてい る MCS で指定 さ れてい る ア ド
レ ス範囲のみではな く 、 フ ラ ッ シ ュ 全体の内容が リ ー ド バ ッ ク さ れます。
間接プ ロ グ ラ ムの SPI フ ラ ッ シ ュ ま たはパ ラ レル NOR フ ラ ッ シ ュ の詳細は、 次の資料を参照 し て く だ さ い。
•
『UltraScale FPGA の BPI コ ン フ ィ ギ ュ レーシ ョ ンお よ びフ ラ ッ シ ュ プ ロ グ ラ ム』 (XAPP1220) [参照 52]
•
『7 シ リ ーズ FPGA の BPI 高速 コ ン フ ィ ギ ュ レーシ ョ ンお よ び iMPACT フ ラ ッ シ ュ プ ロ グ ラ ム』 (XAPP587) [参
照 53]
•
『SPI フ ラ ッ シ ュ を使用 し た 7 シ リ ーズ FPGA の コ ン フ ィ ギ ュ レーシ ョ ン』 (XAPP586) [参照 54]
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
275
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
基本的な コ ン フ ィ ギ ュ レーシ ョ ン デバ ッ グ
こ のセ ク シ ョ ン では、 コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ン を イ ン プ リ メ ン ト す る 際に問題に直面 し た と き のデ
バ ッ グや解決策の検討に役立つベス ト プ ラ ク テ ィ ス について説明 し ます。
コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ンの フル デバ ッ グ を始め る 前に、 まずはビ ッ ト ス ト リ ームのデフ ォ ル ト を使
用 し て単純なデザ イ ン を作成 し て テ ス ト し ます (カ ウ ン タ ーや LED の出力パ タ ーン な ど)。 単純なデザ イ ン テ ス ト を
実行 し てお く と 、高度な ビ ッ ト ス ト リ ーム設定やボー ド イ ン タ ーフ ェ イ ス を使用 し た場合に発生す る 可能性のあ る 問
題を回避す る のに役立ち ます。
フ ァ イル生成の確認
コ ン フ ィ ギ ュ レーシ ョ ンが完了 し ない場合、 ビ ッ ト ス ト リ ーム プ ロ パテ ィ お よ びフ ラ ッ シ ュ プ ロ グ ラ ミ ン グ フ ァ イ
ルのオプシ ョ ン が正 し く 選択 さ れてい る こ と を確認 し ま す。 イ メ ージで使用 さ れてい る ビ ッ ト ス ト リ ーム生成オプ
シ ョ ン を確認す る には、 次の Tcl コ マ ン ド を実行 し ます。
report_property [current_design]
こ の コ マ ン ド はデフ ォ ル ト 設定か ら 変更 さ れていてデザ イ ンに適用 さ れてい る プ ロ パテ ィ をすべて表示 し ます。 値が
何 も 表示 さ れていない場合は、 デフ ォ ル ト 値が使用 さ れてい ます。
write_cfgmem フ ラ ッ シ ュ プ ロ グ ラ ミ ン グ フ ァ イ ル オプシ ョ ン も 見直 し ます。
ス テー タ ス レ ジ ス タ
コ ン フ ィ ギ ュ レーシ ョ ンが正 し く 完了 し ない場合、ス テー タ ス レ ジ ス タ か ら 問題の原因に関す る 重要な情報を取得で
き ます。 詳細は、 次を参照 し て く だ さ い。
•
FPGA フ ァ ミ リ の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
•
ザ イ リ ン ク ス コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ン セ ン タ ー (ザ イ リ ン ク ス ア ンサー 34909)
ザ イ リ ン ク ス FPGA デバ イ ス の FPGA ス テー タ ス レ ジ ス タ のデー タ は、 Vivado Design Suite デバ イ ス プ ロ グ ラ マで
JTAG を使用 し て読み出す こ と がで き ます。 コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーが発生 し た場合、 こ の レ ジ ス タ は問題の
原因を判別す る のに役立つエ ラ ー コ ンデ ィ シ ョ ン を キ ャ プチ ャ し ます。 さ ら に、 ス テー タ ス レ ジ ス タ でモー ド ピ ン
設定 M[2:0] お よ びバ ス幅検出を検証す る こ と も で き ます。 ス テー タ ス レ ジ ス タ の詳細は、 該当す る デバ イ ス の コ ン
フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド [参照 37] を参照 し て く だ さ い。
検証および リ ー ド バ ッ ク
コ ン フ ィ ギ ュ レーシ ョ ン に問題があ っ た場合、 コ ン フ ィ ギ ュ レーシ ョ ン デー タ が正 し く FPGA デバ イ ス に読み込ま
れたか ど う か を判断す る ため、デバ イ ス で JTAG リ ー ド バ ッ ク /検証操作を実行 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン デー
タ が正 し く 読み込まれていない場合は、 それを調査で き ます。 Vivado Design Suite デバ イ ス プ ロ グ ラ マで JTAG 検証
を実行す る には、 マ ス ク フ ァ イ ル (.msk) が必要です。 こ の フ ァ イ ルはビ ッ ト ス ト リ ーム生成中に作成 さ れます。
重要 : UltraScale™ デバ イ ス の場合、 キーが BBR レ ジ ス タ にプ ロ グ ラ ム さ れ る 前に暗号化 さ れた ビ ッ ト ス ト リ ーム を
ダ ウ ン ロ ー ド す る と 、 FPGA が ロ ッ ク さ れ、 BBR キーを読み込む こ と がで き な く な り ます。 暗号化 さ れていないビ ッ
ト ス ト リ ームはダ ウ ン ロ ー ド で き ますが、 FPGA デバ イ ス に よ り BBR にキーを ダ ウ ン ロ ー ド す る こ と が阻止 さ れ る
ので、 暗号化 さ れた ビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド する こ と はで き ません。 ボー ド の電源を切っ て入れ直す こ と に
よ り UltraScale デバ イ ス の ロ ッ ク を解除 し てか ら 、 BBR キーを読み込み直す必要があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
276
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス
コ ン フ ィ ギ ュ レーシ ョ ン中に問題を隔離す る のに便利な基本的なチ ェ ッ ク を実行する こ と がで き ます。 ザ イ リ ン ク ス
FPGA ビ ッ ト ス ト リ ーム には、 特有のヘ ッ ダーが含ま れ ます。 こ のヘ ッ ダーには特別な同期 ワ ー ド が含ま れてお り 、
自動検出、 コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク タ イ プ、 レー ト 設定を含め る こ と がで き ます。 同期 ワ ー ド は、 ほ と ん
ど のザ イ リ ン ク ス FPGAで 32 ビ ッ ト ([31:0] = AA995566) であ り 、 有益なデバ ッ グ パ ラ メ ー タ ーです。
FPGA コ ン フ ィ ギ ュ レーシ ョ ン ス テー ト マシ ンは、 こ の同期 ワー ド が FPGA の ピ ン で認識 さ れ る ま で開始 し ません。
コ ン フ ィ ギ ュ レーシ ョ ンが開始 し ない場合、 同期ワ ー ド が正 し く 受信 さ れてい る こ と を確認する ため、 コ ン フ ィ ギ ュ
レーシ ョ ン デー タ を監視 し ます。 ま た、 ビ ッ ト ス ト リ ーム ヘ ッ ダーが正 し く 認識 さ れ る と 、 コ ン フ ィ ギ ュ レーシ ョ
ン ま たは EMCCLK オプシ ョ ンの設定に よ り 、 コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク が高速にな る はずです。 そ う な ら な
い場合は、 ヘ ッ ダーが認識 さ れてい ません。
コ ン フ ィ ギ ュ レーシ ョ ンのス タ ー ト ア ッ プ
FPGA デバ イ ス の電源投入は、 一般的な コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス に従い ます。 こ れは各 FPGA デバ イ ス の
コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド で詳 し く 説明 さ れてい ます。 次の FPGA 機能は、 コ ン フ ィ ギ ュ レーシ ョ ン
ス タ ー ト ア ッ プ シーケ ン ス を拡張 し ます。
•
PLL を待機
•
MMCM ロ ッ ク
•
DCI 一致
こ れ ら のオプ シ ョ ン のいずれかが使用 さ れ る 場合、 コ ン フ ィ ギ ュ レ ーシ ョ ン ソ ー ス の イ メ ージにマルチブー ト イ
メ ージ用に適切な間隔が置かれ る よ う に し ます。 マルチブー ト イ メ ージの処理に関する 詳細は、該当す る デバ イ ス の
コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド [参照 37] を参照 し て く だ さ い。 さ ら に、 ス レーブ モー ド を使用 し てい る 場
合は、 ス タ ー ト ア ッ プ シーケ ン ス が完了する のに十分な ク ロ ッ ク サ イ ク ルが供給 さ れてい る こ と を確認 し ます。
ス タ ー ト ア ッ プ ク ロ ッ ク (JTAGCLK、 CCLK、 EMCCLK) が ス タ ー ト ア ッ プ シーケ ン ス の終わ り ま で供給 さ れていな
い場合、 ス タ ー ト ア ッ プが不正であ っ た り 完了 し ていない こ と を示す次の よ う な状態が見 ら れ る こ と があ り ます。
•
I/O が ト ラ イ ス テー ト 状態の ま ま であ る 。
•
デ ュ アル モー ド ピ ンが指定 し た I/O 規格ではな く LVCMOS で動作 し てい る 。
•
コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク が ロ ッ ク さ れていないため FPGA デバ イ ス か ら ICAP イ ン タ ーフ ェ イ ス にア
ク セ ス で き ない。
ス タ ー ト ア ッ プが問題な く 完了す る と 、 EOS 信号が High に駆動 さ れます。 こ れは、 STATUS レ ジ ス タ で確認す る か、
ま たは FPGA デバ イ ス で STARTUP プ リ ミ テ ィ ブ を使用 し て検出で き ます。
ICAP にア ク セ スす る デザ イ ンの場合は、 STARTUP プ リ ミ テ ィ ブ を イ ン ス タ ン シエー ト す る よ う に し て く だ さ い。 こ
のプ リ ミ テ ィ ブには EOS ピ ンがあ り 、 コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス が完了 し てい る こ と 、 読み出 し お よ び書 き
込み操作に ICAP が使用で き る 状態にな っ てい る こ と を示 し ます。
リ モー ト ア ッ プデー ト
ザ イ リ ン ク ス FPGA デバ イ ス ではマルチブー ト お よ び予備対策機能がサポー ト さ れてお り 、 現場でのシ ス テ ム ア ッ
プデー ト が よ り 確実に実行 さ れ る よ う にな っ てい ます。ビ ッ ト ス ト リ ーム イ メ ージは現場でダ イ ナ ミ ッ ク にア ッ プグ
レー ド で き ます。 マルチブー ト お よ び予備対策機能はすべてのマ ス タ ー コ ン フ ィ ギ ュ レーシ ョ ン モー ド で使用で き
ます。
マルチブー ト 機能は、 ユーザー アプ リ ケーシ ョ ン で イ メ ージ を切 り 替え る こ と がで き る 機能です。 マルチブー ト コ
ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス中にエ ラ ーが検出 さ れ る と 、 別の フ ラ ッ シ ュ ア ド レ ス か ら 既知の ビ ッ ト ス ト リ ーム
を回復す る よ う に予備機能がデバ イ ス に よ っ て実行 さ れます。
信頼性の高い イ ン シ ス テ ム ア ッ プデー ト ソ リ ュ ーシ ョ ン を イ ン プ リ メ ン ト す る には、 初期 コ ン フ ィ ギ ュ レーシ ョ ン
方法、 そのア ッ プデー ト 方法、 お よ び予備措置に関 し て決定すべ き こ と が多数あ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
277
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
マルチブー ト ソ リ ュ ーシ ョ ンには、必要な ビ ッ ト ス ト リ ーム をすべて格納す る のに十分なサ イ ズの フ ラ ッ シ ュ が必要
です。圧縮率は さ ま ざ ま であ る ため、 フ ラ ッ シ ュ メ モ リ マ ッ プ をプ ラ ン ニ ン グす る 際は、圧縮前の最大サ イ ズのビ ッ
ト ス ト リ ーム を考慮 し て く だ さ い。
予備機能に関 し て ア ド バン ス オプシ ョ ン を使用する 場合は、 次の よ う な注意事項があ り ます。
•
マ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ン モー ド は 7 シ リ ーズ FPGA では x1 モー ド にな り ます。
•
BPI コ ン フ ィ ギ ュ レーシ ョ ン モー ド の同期読み出 し は、 7 シ リ ーズ FPGA では非同期読み出 し モー ド に切 り 替わ
り ます。 つま り 、 予備措置が使用 さ れ る と 、 同期読み出し 用の高速 ク ロ ッ ク ス ピー ド でエ ラ ーが発生す る 可能性
があ る ので、 使用 さ れてい る ク ロ ッ ク 周波数は両方のモー ド に対応で き る も のにする 必要があ り ます。
デバ ッ グ
イ ン シ ス テ ム デバ ッ グでは、 タ ーゲ ッ ト デバ イ ス上で リ アル タ イ ム にデザ イ ン をデバ ッ グす る こ と がで き ます。 こ
の手順は、 シ ミ ュ レー タ で再現 し づ ら い状況に遭遇 し た場合に必要です。
デバ ッ グでは、デザ イ ン を監視お よ び制御で き る よ う にする ための特別なデバ ッ グ ハー ド ウ ェ ア をデザ イ ンに追加 し
ます。 デバ ッ グが完了 し た ら 、 パフ ォーマ ン ス を高め、 ロ ジ ッ ク 使用率を低減す る ために、 こ のデバ ッ グ ハー ド ウ ェ
ア を取 り 除 く こ と がで き ます。
FPGA デザ イ ンのデバ ッ グは複数の段階を含む反復作業です。 複雑な問題を処理す る 場合 と 同様に、 FPGA デザ イ ン
のデバ ッ グ プ ロ セ ス も 、一度にデザ イ ン全体を処理す る のではな く 、 細分化 し てセ ク シ ョ ン ご と に集中 し て作業す る
のがベス ト です。
実際のデバ ッ グ手順はデザ イ ンの イ ンプ リ メ ン テーシ ョ ンが問題な く 終了 し た後にな り ますが、デザ イ ン サ イ ク ルの
早期にデバ ッ グ を ど の よ う に実行す る か、 ど こ でデバ ッ グす る のか を プ ラ ン ニ ン グ し てお く こ と をお勧め し ま す。
FPGA デバ イ ス のプ ロ グ ラ ムお よ び イ ン シ ス テ ム デバ ッ グの実行に必要な コ マ ン ド はすべて、 Vivado 統合設計環境
(IDE) の Flow Navigator の [Program and Debug] か ら 実行で き ます。
デバ ッ グに含まれ る 手順は、 次の と お り です。
1.
プ ロ ーブ : デザ イ ンでプ ロ ーブす る 信号を特定 し 、 プ ロ ーブ方法を指定 し ます。
2.
イ ンプ リ メ ン ト : プ ロ ーブす る ネ ッ ト に追加 さ れたデバ ッ グ IP を含むデザ イ ン を イ ンプ リ メ ン ト し ます。
3.
解析 : デザ イ ンに含まれ る デバ ッ グ IP にア ク セ ス し 、 機能的な問題をデバ ッ グお よ び検証 し ます。
4.
修正段階 : バグがあれば修正 し 、 必要に応 じ て繰 り 返 し ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24] を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
278
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
デザイ ンのプ ローブ
Vivado ツールではデザ イ ンにデバ ッ グ プ ロ ーブ を追加す る 方法が複数提供 さ れてい ます。 次の表に、 さ ま ざ ま な方
法を リ ス ト し 、 それぞれの方法の長所 と 短所を示 し ます。
表 6-2 : デバ ッ グ フ ロー
デバ ッ グ フ ロー名
フ ロー手順
長所/短所
HDL イ ン ス タ ン シ エ ー シ ョ
ン プ ロ ーブ フ ロ ー
HDL ソ ース で ILA デバ ッ グ コ ア イ ン ス
タ ン ス に信号を明示的に接続 し ます。
• デバ ッ グ ネ ッ ト お よ び IP はデザ イ ン
か ら 手動で追加/削除す る 必要が あ る
ので、 HDL ソ ー ス はユーザーが修正
す る 必要あ り
• HDL デザ イ ン レベルでプ ロ ーブす る
オプシ ョ ン あ り
• デバ ッ グ コ アの生成、 イ ン ス タ ン シ
エー ト 、 接続の際に間違いやすい
ネ ッ ト リ ス ト 挿入プ ロ ーブ フ
ロ ー (推奨)
ILA 2.1 以降のみで使用可能
デバ ッ グする 信号を選択す る には、 次の • 柔軟性が最 も 高 く 、 予測 し やすい
いずれかの方法を使用 し ます。
• さ ま ざ ま なデザ イ ン レベル (HDL、 合
• ソ ース RTL コ ー ド でデバ ッ グす る 信
成済みデザ イ ン、 シ ス テ ム デザ イ ン)
でのプ ロ ーブが可能
号 を マー ク す る た め MARK_DEBUG
属性を使用
• HDL ソ ース を修正する 必要な し
• 合成済みデザ イ ン ネ ッ ト リ ス ト で
ネ ッ ト を右 ク リ ッ ク し て [Mark
Debug] を ク リ ッ ク し 、 デバ ッ グす る
ネ ッ ト を選択
デバ ッ グする信号をマー ク し た ら、Set Up
Debug ウ ィ ザー ド を使用 し てネ ッ ト リ ス
ト 挿入プ ローブ フ ローを実行し ます。
Tcl ベー ス の ネ ッ ト リ ス ト 挿
入プ ロ ーブ フ ロ ー
set_property Tcl コ マ ン ド を 使用 し
てデバ ッ グ ネ ッ ト に MARK_DEBUG プ
ロ パテ ィ を設定 し 、 ネ ッ ト リ ス ト 挿入プ
ロ ーブ Tcl コ マ ン ド を使用 し てデバ ッ グ
コ ア を作成 し 、それ ら をデバ ッ グ ネ ッ ト
に接続 し ます。
合成後の ILA コ アの挿入方法は、 「ネ ッ
ト リ ス ト の変更」 を参照 し て く だ さ い。
• ネ ッ ト リ ス ト 挿入を完全に自動実行
• Tcl
コ マ ン ド を変更す る こ と で、 デ
バ ッ グのオン/オ フ を切 り 替え可能
• HDL ソ ース を修正する 必要な し
デバ ッ グ挿入 (2 段階のプ ロ セス)
該当す る ネ ッ ト に MARK_DEBUG を使用 し 、 デバ ッ グ コ ア をデザ イ ンに追加する には、 次の 2 段階のプ ロ セ ス が必
要です。
1.
ネ ッ ト を右 ク リ ッ ク し て MARK_DEBUG 属性を設定す る か、[Properties] ウ ィ ン ド ウ ま たは Tcl コ マ ン ド を使用 し
て MARK_DEBUG プ ロ パテ ィ を設定 し 、 デバ ッ グす る ネ ッ ト を指定 し ます。
2.
合成 し た ら 、Set Up Debug ウ ィ ザー ド を使用 し ます。ウ ィ ザー ド にア ク セ スする には、Flow Navigator の [Synthesis]
の下の [Set Up Debug] を ク リ ッ ク す る か、 [Tools] → [Set Up Debug] を ク リ ッ ク し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
279
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
デバ ッ グ ネ ッ ト の選択
デバ ッ グ ネ ッ ト を選択す る 際は、 次の推奨事項に従っ て く だ さ い。
•
特定の階層の境界 (入力ま たは出力) でネ ッ ト をプ ロ ーブす る と 、 問題のあ る 箇所をすばや く 特定で き ます。 その
後、 必要に応 じ てその階層を さ ら にプ ロ ーブで き ます。
•
組み合わせ ロ ジ ッ ク パ ス間のネ ッ ト はプ ロ ーブ し ないで く だ さ い。 組み合わせ ロ ジ ッ ク パ ス の真ん中のネ ッ ト
に MARK_DEBUG を追加す る と 、 イ ン プ リ メ ン テーシ ョ ン段階で適用可能であ っ た最適化が ま っ た く 適用 さ れ
ず、 QoR (結果の品質) が下が り ます。
•
サ イ ク ル精度の高いデー タ キ ャ プチ ャ を取得する ため、 同期のネ ッ ト をプ ロ ーブ し ます。
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 のオン/オ フ を切 り 替え る こ と がで き る ので柔軟性があ り ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
280
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
ILA コ アの使用
ILA (Integrated Logic Analyzer) コ ア を使用す る と 、FPGA デバ イ ス の イ ンプ リ メ ン ト 後のデザ イ ン を イ ン シ ス テ ムでデ
バ ッ グで き ます。 こ の コ アは、 デザ イ ンの信号を監視す る 必要があ る 場合に使用で き る ほか、 ハー ド ウ ェ ア イ ベン ト
を ト リ ガー し 、 デー タ を シ ス テ ム速度でキ ャ プチ ャ す る ために も 使用で き ます。
ILA は合成後に挿入す る こ と をお勧め し ます。 こ う す る こ と で、 HDL ソ ー ス フ ァ イ ルを変更 し 、 デザ イ ン を検証 し
直す必要がな く な り ます。
ネ ッ ト をデバ ッ グ コ アに追加す る には、 合成済みデザ イ ン を開いてか ら Flow Navigator の [Synthesis] の下の [Set Up
Debug] を ク リ ッ ク す る か、 メ ニ ュ ーか ら [Tools] → [Set Up Debug] を ク リ ッ ク し ます。
詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24] を参照 し て く だ さ い。
ILA コ ア と タ イ ミ ングに関する考慮事項
ILA コ ア を コ ン フ ィ ギ ュ レーシ ョ ンす る と 、 デザ イ ン全体の タ イ ミ ン グ目標の達成に影響 し ます。 タ イ ミ ン グへの影
響を最小限に抑え る ためには、 次をお勧め し ます。
•
プ ロ ーブ幅を注意 し て選択 し ます。 プ ロ ーブ幅が大き いほ ど、 リ ソ ース使用量 と タ イ ミ ン グの両方への影響 も 大
き く な り ます。
•
ILA コ アのデー タ の深 さ を注意 し て選択 し ます。 デー タ の深 さ が大 き いほ ど、 ブ ロ ッ ク RAM リ ソ ース使用量 と
タ イ ミ ン グの両方への影響 も 大 き く な り ます。
•
ILA に選択す る ク ロ ッ ク はフ リ ー ラ ン ニ ン グ ク ロ ッ ク に し ます。 そ う でない と 、 デザ イ ンがデバ イ ス に読み込ま
れた と き に、 デバ ッ グ コ ア と 通信で き な く な る 可能性があ り ます。
•
dbg_hub への ク ロ ッ ク はフ リ ー ラ ン ニ ン グ ク ロ ッ ク に し ます。 そ う でない と 、 デザ イ ンがデバ イ ス に読み込ま
れた と き に、 デバ ッ グ コ ア と 通信で き な く な る 可能性があ り ます。 Tcl コ マ ン ド の connect_debug_port を使
用す る と 、 デバ ッ グ ハブの clk ピ ン を フ リ ー ラ ン ニ ン グ ク ロ ッ ク に接続で き ます。
•
デバ ッ グ コ ア を追加す る 前にデザ イ ンの タ イ ミ ン グ ク ロ ージ ャ を達成 し てお き ます。 デバ ッ グ コ アは、 タ イ ミ
ン グ関連の問題をデバ ッ グす る ためには使用 し ないで く だ さ い。
•
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 コ アへの ク ロ ッ ク 入力がプ ロ ーブ さ れた信号 と 同期す る よ う に し ます。 こ う し ておかない と 、 デザ イ ンがデ
バ イ ス にプ ロ グ ラ ム さ れた と き に、 タ イ ミ ン グ問題が発生 し た り 、 デバ ッ グ コ ア と 通信で き な く な る 可能性があ
り ます。
•
ハー ド ウ ェ アで実行す る 前にデザ イ ン が タ イ ミ ン グ を満たす よ う に し ておかない と 、 結果の信頼性が低 く な り
ま す。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
281
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
次の表に、 特定の ILA 機能を使用 し た場合のデザ イ ン タ イ ミ ン グお よ び リ ソ ースへの影響を示 し ます。
注記 : こ の表は 1 つの ILA を含むデザ イ ンに基づいてお り 、 すべてのデザ イ ン を表す も のではあ り ません。
表 6-3 : ILA 機能のデザイ ン タ イ ミ ングおよび リ ソ ースへの影響
ILA 機能
使用する状況
影響 : 中~大
キ ャ プ チ ャ制御/
ス ト レージ必要条件
• 関連デー タ を キ ャ プチ ャ す
る ため
• デー タ キ ャ プチ ャ ス ト
レージ (BRAM) を効率的に
使用す る ため
• 追加 BRAM な し
• LUT/FF 数が多少増加
影響 : 大
• 追加 BRAM な し
• LUT/FF 数が中程度増加
ア ド バン ス ト リ ガー
• BASIC ト リ ガー条件が不十
分な場合
• 問題のエ リ ア に焦点 を置 く
ために複雑な ト リ ガーを使
用す る 場合
複数の条件文でプ ロ ーブ を 使
用す る 場合
• 基本 ト リ ガー : 1 ~ 2
• ア ド バン ス ト リ ガー : 1 ~ 4
• キ ャ プチ ャ 制御 : 1 以上
影響 : 中~大
• 追加 BRAM な し
• LUT/FF 数が多少か ら 中程
度増加
よ り 多 く のデー タ サ ン プルを
キ ャ プチ ャ す る ため
影響 : 大
• ILA コ ア ご と に追加
BRAM
• LUT/FF 数が多少増加
ス カ ラ ーで な く 大型バ ス を デ
バ ッ グす る ため
影響 : 中
• ILA コ ア ご と に追加
BRAM
• LUT/FF 数が多少増加
多数のネ ッ ト を プ ロ ーブす る
ため
影響 : 小
• ILA コ ア ご と に追加
BRAM
• LUT/FF 数が多少増加
プ ローブ ポー ト ご と
の コ ンパレー タ 数
注記 : 最大値は 4
デー タ の深 さ
ILA プ ローブ
ポー ト 幅
プ ローブ ポー ト 数
タ イ ミ ング
エリア
ク ロ ッ ク が高速のデザ イ ンでは、 次を考慮 し て く だ さ い。
•
デバ ッ グす る 信号の数お よ び幅を制限 し ます。
•
ILA への入力プ ロ ーブ をパ イ プ ラ イ ン処理 し (C_INPUT_PIPE_STAGES)、 追加のパ イ プ ラ イ ン段を イ ネーブルに
し ます。
使用可能な MMCM/BUFG が制限 さ れ る デザ イ ンでは、 デバ ッ グ ハブ内の ク ロ ッ ク 分周期を使用す る のではな く 、 デ
バ ッ グ ハブ をデザ イ ンの最低の ク ロ ッ ク 周波数を供給する こ と を考慮 し て く だ さ い。
ILA ク ロ ス ト リ ガー モー ド のイ ネーブル
ILA ク ロ ス ト リ ガー機能は、 ILA 間お よ び ILA と プ ロ セ ッ サ (Zynq®-7000 AP SoC ま たは MicroBlaze™ な ど) 間の ク
ロ ス ト リ ガーを イ ネーブルに し ます。
ク ロ ス ト リ ガ ー モ ー ド を 使 用 す る に は、 コ ア の 生成時 に ILA コ ア に 専用 ト リ ガ ー入力 ポ ー ト (TRIG_IN と
TRIG_IN_ACK) お よ び専用 ト リ ガー出力ポー ト (TRIG_OUT と TRIG_OUT_ACK) が含め ら れ る よ う コ ン フ ィ ギ ュ
レーシ ョ ン し ます。 ILA ト リ ガー入力ま たは出力信号を使用する 場合は、 HDL イ ン ス タ ン シエーシ ョ ン方法を使用 し
て ILA コ ア をデザ イ ンに追加す る こ と を考慮 し て く だ さ い。 ILA を合成後にデザ イ ンに挿入する 場合、 こ れ ら のポー
ト をデザ イ ンのネ ッ ト に接続す る には、 ネ ッ ト リ ス ト 変更コ マ ン ド を使用する 必要があ り ます。 合成後の ILA コ アの
挿入方法は、 「ネ ッ ト リ ス ト の変更」 を参照 し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
282
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
FPGA フ ァ ブ リ ッ ク と Zynq-7000 AP SoC プ ロ セ ッ サ間の ク ロ ス ト リ ガー機能を使用する 方法を示す詳細なチ ュ ー ト
リ アルは、『Vivado Design Suite チ ュ ー ト リ アル : エンベデ ッ ド プ ロ セ ッ サ ハー ド ウ ェ ア デザ イ ン』 (UG940) [参照 33]
を参照 し て く だ さ い。
ハー ド ウ ェ ア でのデバ ッ グ
デザ イ ンにデバ ッ グ コ ア を追加 し た ら 、 ラ ン タ イ ム ロ ジ ッ ク 解析機能を使用 し て、 ハー ド ウ ェ ア上でデザ イ ン をデ
バ ッ グで き ます。デザ イ ンに イ ン ス タ ン シエー ト さ れた ILA デバ ッ グ コ ア を利用す る ため Vivado Design Suite ロ ジ ッ
ク 解析を使用す る には、 Flow Navigator か ら [Program and Debug] → [Open Hardware Session] を ク リ ッ ク し ます。
こ の ス テ ッ プでは次の作業を行い ます。
•
タ ーゲ ッ ト ハー ド ウ ェ アに接続 し ます。
•
デバ イ ス にビ ッ ト ス ト リ ーム を プ ロ グ ラ ム し ます。
•
ILA デバ ッ グ コ アの ト リ ガーお よ びプ ロ ーブ条件を設定 し ます。
•
ILA デバ ッ グ コ ア を ト リ ガー待機状態に し ます。
•
波形ビ ュ ーアーで ILA デバ ッ グ コ アか ら の取 り 込まれたデー タ を解析 し ます。
ILA の ト リ ガー モー ド 設定
ト リ ガー モー ド では、 キ ャ プチ ャ ウ ィ ン ド ウ の ト リ ガー マーカーで示 さ れ る リ アル タ イ ムのハー ド ウ ェ ア イ ベン ト
の検出が制御 さ れます。
•
BASIC_ONLY : デバ ッ グ プ ロ ーブ比較結果の基本的な AND/OR 機能が満た さ れ る と 、 ILA 基本 ト リ ガー モー ド
を使用 し て ILA コ ア を ト リ ガー し ます。
•
ADVANCED_ONLY : ILA ア ド バン ス ト リ ガー モー ド を使用 し て ILA コ ア をユーザー定義の ス テー ト マシ ンで
指定 し た よ う に ト リ ガー し ます。
•
TRIG_IN_ONLY : ILA の TRIG_IN ト リ ガー モー ド を使用 し て ILA コ アの TRIG_IN ピ ンが Low か ら High に遷移
し た と き に、 ILA を ト リ ガー し ます。
•
BASIC_OR_TRIG_IN : ILA コ アの TRIG_IN ピ ン と BASIC_ONLY ト リ ガー モー ド を論理 OR で処理す る 場合に、
ILA の BASIC_OR_TRIG_IN ト リ ガー モー ド を使用 し て ILA を ト リ ガー し ます。
•
ADVANCED_OR_TRIG_IN : ILA コ アの TRIG_IN ピ ン と ADVANCED_ONLY ト リ ガー モー ド を論理 OR で処理
す る 場合に、 ILA の ADVANCED_OR_TRIG_IN ト リ ガー モー ド を使用 し て ILA を ト リ ガー し ます。
ト リ ガー位置はキ ャ プチ ャ デー タ バ ッ フ ァ ーの特定位置に設定で き ま す。 た と えば、 サ ン プル数が 1024 のキ ャ プ
チ ャ デー タ バ ッ フ ァ ーの場合は次の よ う にな り ます。
•
サンプル番号 0 は、 キ ャ プチ ャ デー タ バ ッ フ ァ ーの最初 (一番左) のサンプルに対応 し ます。
•
サンプル番号 1023 は、 キ ャ プチ ャ デー タ バ ッ フ ァ ーの最後 (一番右) のサンプルに対応 し ます。
•
サンプル番号 511 お よ び 512 は、 キ ャ プチ ャ デー タ バ ッ フ ァ ーの中央のサンプルに対応 し ます。
ILA コ アのキ ャ プ チ ャ モー ド
キ ャ プチ ャ モー ド では、 ILA コ アでデー タ が ど の よ う に取 り 込まれ る のかが制御 さ れます。
•
ALWAYS : 各 ク ロ ッ ク サ イ ク ルご と にプ ロ ーブ デー タ を キ ャ プチ ャ し ます。
•
BASIC : デバ ッ グ プ ロ ーブ比較結果の基本的な AND/OR 機能が満た さ れ る と 、 プ ロ ーブ デー タ を キ ャ プチ ャ し
ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
283
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
ILA コ ア でキ ャ プ チ ャ さ れたデー タ の波形の共有
Tcl コ マ ン ド の write_hw_ila_data を使用す る と 、 ILA でキ ャ プチ ャ さ れたデー タ を フ ァ イ ル アーカ イ ブに保存
で き ます。 フ ァ イ ル アーカ イ ブか ら キ ャ プチ ャ さ れたデー タ を復元 し て波形ビ ュ ーアーに表示す る には、 Tcl コ マ ン
ド の display_hw_ila_data を使用 し ます。
こ の 2 つの コ マ ン ド シーケ ン ス に よ り 、 ILA コ アでキ ャ プチ ャ さ れたデー タ を波形で表示で き る よ う にな り ます。 上
記の コ マ ン ド を実行す る 前に、 open_hw コ マ ン ド を実行す る 必要があ り ます。
ILA デー タ 波形 ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レーシ ョ ン設定 (仕切 り 、 マーカー、色、 プ ロ ーブの基数な ど) も 、ILA
キ ャ プチ ャ デー タ アーカ イ ブ フ ァ イ ルに保存 さ れます。 保存 さ れてい る ILA デー タ を表示す る と 、 保存 さ れてい る
波形 コ ン フ ィ ギ ュ レーシ ョ ン設定が使用 さ れます。
複数のキ ャ プ チ ャ ウ ィ ン ド ウ
複数キ ャ プチ ャ 機能を使用す る と 、 ト リ ガーが複数発生 し た場合にそれ ら の信号を キ ャ プチ ャ で き ます。 こ の機能を
使用す る には、 次の図に示す よ う に ラ ン タ イ ムでのキ ャ プチ ャ ウ ィ ン ド ウ の数を選択 し 、 通常どお り に ト リ ガーを設
定 し ます。
X-Ref Target - Figure 6-1
図 6-1 : 複数のキ ャ プ チ ャ タ ブ での ILA の設定
次の図は複数のキ ャ プチ ャ タ ブ を表示 し た例で、fast_cnt_reset_1 信号の立ち下が り エ ッ ジが発生す る たびに ト
リ ガー さ れてい ます。 ト リ ガー マー ク を含む複数の タ ブ を確認 し 、 背景表示をチ ェ ッ カーボー ド に変更 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
284
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
X-Ref Target - Figure 6-2
図 6-2 : 複数のキ ャ プ チ ャ タ ブの例
VIO (Virtual I/O)
VIO (Virtual Input/Output) は、 内部 FPGA 信号を リ アル タ イ ム で監視お よ び駆動で き る カ ス タ マ イ ズ可能な コ アです。
タ ーゲ ッ ト ハー ド ウ ェ アへの物理的な ア ク セ ス がない場合は、 こ の IP を使用 し て、 実際のハー ド ウ ェ アにあ る 信号
を駆動お よ び監視で き ます。 2 種類の入力 2 種類の出力を使用で き 、 ど ち ら も サ イ ズ を カ ス タ マ イ ズ し てデザ イ ン と
の イ ン タ ーフ ェ イ ス に使用で き ます。 VIO コ アが必要な場合は、 IP カ タ ロ グか ら 選択 し て、 デザ イ ンに イ ン ス タ ン シ
エー ト し ます。
VIO コ アの出力プ ロ ーブは、 FPGA デバ イ ス で実行 さ れてい る デザ イ ンに値を書 き 込むために使用 し ます。 VIO 出力
プ ロ ーブは通常、 テ ス ト 中のデザ イ ンの低帯域幅の制御信号 と し て使用 さ れ ます。 同様に、 VIO 入力ピ ンは、 FPGA
デバ イ ス で実行 さ れてい る デザ イ ンか ら 値を読み込むために使用 し ます。
VIO コ アは、 次を実行 し ます。
•
入力ポー ト を介 し て仮想 LED と その他の ス テー タ ス イ ン ジ ケー タ を提供
•
サ ン プル間の立ち上が り お よ び立ち下が り 遷移を検出す る オプシ ョ ン のア ク テ ィ ビ テ ィ 検出器が入力ポー ト に
ある
•
出力ポー ト を介 し て仮想ボ タ ンお よ びその他の制御を提供
•
デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンお よ びス タ ー ト ア ッ プの直後に VIO コ アの出力値を指定で き る カ ス タ ム出力
初期化
•
VIO コ アの時間を初期値に リ セ ッ ト
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
285
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
Vivado 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 信号がデバ ッ グ/駆動 さ れ
ます。 こ の コ アは、 プ ロ セ ッ サのないデザ イ ンに も 使用で き ます。
プ ローブ フ ァ イルの使用
プ ロ ーブ フ ァ イ ルは拡張子 .ltx の フ ァ イ ルで、 デバ イ ス に関連付け ら れた .bit フ ァ イ ルに該当 し ます。 ツールで
は、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス中に こ のプ ロ ーブ フ ァ イ ルが自動的に生成 さ れます。 デバ ッ グ プ ロ ーブ フ ァ
イ ルは、 Vivado ツールがプ ロ ジ ェ ク ト モー ド の場合に、 プ ロ ーブ フ ァ イ ル (debug_nets.ltx) がデバ イ ス に関連付
け ら れてい る ビ ッ ト ス ト リ ーム プ ロ グ ラ ム フ ァ イ ル (.bit) と 同 じ デ ィ レ ク ト リ にあれば、自動的にハー ド ウ ェ ア デ
バ イ ス に関連付け ら れます。
デバ イ ス にプ ロ グ ラ ム さ れた .bit フ ァ イ ル と それに関連付け ら れたプ ロ ーブ フ ァ イ ル間に不一致の可能性があ る
場合は、 その .bit フ ァ イ ル と プ ロ ーブ フ ァ イ ルがすべて最新の状態であ る か ど う か確認 し ます。
デバ ッ グ プ ロ ーブ情報を フ ァ イ ルに書き出すには、合成済みデザ イ ンに対し て Tcl コ マン ド の write_debug_probes
を使用 し ます。 プ ロ ーブ フ ァ イ ルのデ ィ レ ク ト リ は、 次の手順で指定 し ます。
1.
[Hardware] ウ ィ ン ド ウ で FPGA デバ イ ス を選択 し ます。
2.
[Hardware Device Properties] ウ ィ ン ド ウ の [Probes file] で フ ァ イ ルの場所を設定 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
286
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
3.
[Apply] を ク リ ッ ク し ます。
プ ロ ーブ フ ァ イ ルの場所は、 次の set_property Tcl コ マ ン ド を使用 し て も 設定で き ます。
set_property PROBES.FILE {location} [lindex [get_hw_devices] 0]
JTAG ク ロ ッ ク の減速
JTAG チ ェ ーン は、 チ ェ ーン内で一番遅いデバ イ ス と 同 じ 速 さ にな り ま す。 JTAG ク ロ ッ ク の周波数を下げ る には、
JTAG ク ロ ッ ク 周波数がデフ ォ ル ト の JTAG ク ロ ッ ク 周波数 よ り も 低いデバ イ ス タ ーゲ ッ ト に接続 し ます。
デフ ォ ル ト の JTAG ク ロ ッ ク 周波数 (ケーブル接続の場合は 15MHz、 USB ケーブル接続の場合は 6 MHz) を使用 し て
開いてみ る 必要があ り ます。 こ れ ら の速度で接続で き ない場合は、 次に説明す る よ う に、 デフ ォ ル ト の JTAG 周波数
を さ ら に下げ る こ と をお勧め し ます。
JTAG ク ロ ッ ク 周波数を変更する には、次の図に示す Vivado IDE の Open New Hardware Target ウ ィ ザー ド を使用 し ます。
X-Ref Target - Figure 6-3
図 6-3 : JTAG 周波数の設定
ま たは、 次の Tcl コ マ ン ド シーケ ン ス を使用 し ます。
open_hw
connect_hw_server -host localhost -port 60001 -url machinename:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/210203327962A]
set_property PARAM.FREQUENCY 250000 [get_hw_targets
*/xilinx_tcf/Digilent/210203327962A]
open_hw_target
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
287
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
Vivado のデバ ッ グ レ イ アウ ト
Vivado IDE には、 デザ イ ン がデバ イ ス に読み込ま れた と き に、 デバ ッ グ プ ロ セ ス と 関連付け ら れた特定の レ イ ア ウ
ト が含ま れます。 Vivado IDE を正 し い レ イ ア ウ ト に設定 し て、 右側の ウ ィ ン ド ウ にデバ ッ グ内容が表示 さ れ る よ う に
し て く だ さ い。 ILA お よ び VIO コ ア を使用す る デザ イ ン をデバ ッ グす る 際は、 [Logic Analyzer] レ イ ア ウ ト を使用 し
ます。 IBERT コ ア を使用す る デザ イ ン をデバ ッ グする 際は、 [Serial I/O Analyzers] レ イ ア ウ ト を使用 し ます。
Tcl オブ ジ ェ ク ト および コ マ ン ド
表 6-4 : Tcl オブ ジ ェ ク ト および コ マ ン ド
Tcl オブ ジ ェ ク ト
役割
hw_server
ハー ド ウ ェ ア サーバー
hw_target
ハー ド ウ ェ ア タ ーゲ ッ ト (ケーブル) 接続。 hw_target は有効で
サーバーに物理的に リ ン ク さ れてい ます。
hw_device
ハー ド ウ ェ ア での実際のデバ イ ス。 デバ イ ス は、 ハー ド ウ ェ ア
に接続 さ れて い る 有効な サーバーか ら 自動的に検出 さ れ る か、
hw_part ク エ リ か ら 手動で作成 さ れます。
hw_ila
ILA コ ア
hw_ila_data
プ ロ ーブ情報 と と も にキ ャ プチ ャ さ れた ILA デー タ
hw_probe
デバ ッ グす る ためのプ ロ ーブ。 プ ロ ーブはデザ イ ン のネ ッ ト の
リ ス ト に関連付け ら れてい ます。
hw_probeset
hw_probe オブジ ェ ク ト の コ レ ク シ ョ ン
hw_propset
ハー ド ウ ェ ア コ アで設定 さ れてい る プ ロ パテ ィ
こ の章で説明 さ れてい る 操作の多 く は、 Tcl コ マ ン ド を使用 し て実行で き ま す。 デバ ッ グ の Tcl コ マ ン ド の詳細は、
『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。
推奨 さ れる設計プ ラ ク テ ィ ス
1.
2.
次のガ イ ド ラ イ ンに従っ て、 設計の初期段階か ら デバ ッ グ を プ ラ ン ニ ン グ し ます。
a.
ロ ジ ッ ク ス ラ イ スお よ びブ ロ ッ ク RAM を イ ン シ ス テ ム デバ ッ グ用に予約 し ておき ます。
b.
FPGA デバ イ スの JTAG イ ン ターフ ェ イ スが、デバ ッ グ用にア ク セ スおよび使用可能であ る こ と を確認し ます。
c.
デザ イ ンのデバ ッ グに使用す る デバ ッ グ フ ロ ーを選択 し ます。 フ ロ ーは次のいずれかにな り ます。
-
HDL イ ン ス タ ン シエーシ ョ ン
-
ネ ッ ト リ ス ト 挿入 (推奨)
-
こ の 2 つの組み合わせ
d.
組み合わせ ロ ジ ッ ク ではな く 、 フ リ ッ プ フ ロ ッ プやブ ロ ッ ク RAM な ど の同期セルの出力をプ ロ ーブす る こ
と を検討 し ます。 デザ イ ン最適化への影響を抑え、 タ イ ミ ン グ を満たす確率を高め る こ と がで き ます。
e.
デザ イ ンにカ ス タ ム デバ ッ グ コ ア を追加 し ます。
デバ ッ グ を実行す る 場合は、 次のガ イ ド ラ イ ンに従い ます。
a.
デザ イ ン全体を一度にテ ス ト し ないで く だ さ い。
b.
デザ イ ンには少 し ずつ変更を加え、 機能を1 回に 1 つずつテ ス ト し ます。
c.
イ ン ク リ メ ン タ ル コ ンパ イ ルを使用 し てデザ イ ン イ ンプ リ メ ン テーシ ョ ン を実行す る こ と を検討 し ます。
d.
ロ ジ ッ ク アナ ラ イ ザーま たは ChipScope で解析す る ため、 制御お よ び高速デー タ 信号を ピ ンに配線 し ます。
e.
イ ベン ト に基づいてデー タ を キ ャ プチ ャ す る には、 デザ イ ンにデバ ッ グ コ ア を追加 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
288
第 6 章 : コ ン フ ィ ギ ュ レーシ ョ ンおよびデバ ッ グ
3.
RTL シ ミ ュ レーシ ョ ンで問題を再現する よ う に し 、その問題の修正が機能す る こ と も シ ミ ュ レーシ ョ ンで検証 し
ます。
4.
デザ イ ン をデバ ッ グ し た後、 次の目的のため、 プ ロ ダ ク シ ョ ンに入る 前にデバ ッ グ コ ア を削除す る こ と を考慮 し
ます。
a.
JTAG を使用 し たデザ イ ンへの不正な ア ク セ ス を防 ぐ
b.
消費電力の削減
c.
デザ イ ンにデバ ッ グ コ ア を追加する と デザ イ ンの タ イ ミ ン グ制約に影響が出る 可能性があ る こ と を考慮
詳細は、 次を参照 し て く だ さ い。
•
『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 24]
•
『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13]
•
該当す る デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド [参照 37]
ネ ッ ト リ ス ト の変更
機能的な ロ ジ ッ ク のバグ を修正、 タ イ ミ ン グ ク ロージ ャ を達成、 ま たはデバ ッ グ ロ ジ ッ ク を挿入する ため、 ネ ッ ト リ
ス ト の変更が必要な場合があ り ます。 こ れは通常エン ジニア リ ン グ チ ェ ン ジ オーダー (ECO) と 呼ばれます。 合成後、
配置後、 お よび配線後に Tcl コ マン ド を使用 し て、 既存のネ ッ ト リ ス ト を変更で き ます。 ネ ッ ト リ ス ト 変更コ マン ド の
情報は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 19] の 「ネ ッ ト リ ス ト 変更コ マ
ン ド 」 を参照し て く だ さ い。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
289
付録 A
ベース ラ イ ン制約の作成 と タ イ ミ ング制約
の検証
概要
デザ イ ンで イ ンプ リ メ ン テーシ ョ ンの段階を進行 し 、 制約を調整 し なが ら 、 次の質問事項に答え て く だ さ い。 こ れ ら
の質問事項は、 タ イ ミ ン グ ク ロ ージ ャ の達成に向けての進行状況を確認 し 、 ボ ト ルネ ッ ク と な る 可能性のあ る 問題、
修正が必要な制約を特定す る のに役立ち ます。
手順
1.
合成済みデザ イ ン を開 き ます。
2.
report_timing_summary -delay_type min_max コ マ ン ド を実行 し 、 表示 さ れ る 情報を次の表に記録 し
ま す。
WNS
タ イ ミ ングが
満た さ れてい
ないエ ン ド ポ
イ ン ト (Failing
Endpoints) の数
TNS
WHS
THS
タ イ ミ ングが
満た さ れてい
ないエ ン ド ポ
イ ン ト (Failing
Endpoints) の数
合成
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 : ___________
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
290
付録 A : ベース ラ イ ン制約の作成 と タ イ ミ ン グ制約の検証
7.
report_clock_interaction の結果を [Inter-Clock Constraints] で並べ替え、 「unsafe」 と 示 さ れ る ク ロ ッ ク ペ
ア をすべて リ ス ト し ます。
8.
合成済みデザ イ ン を開 く と き 、 ク リ テ ィ カル警告はい く つ表示 さ れますか。
合成済みデザ イ ンの ク リ テ ィ カル警告の数 : ___________
9.
ど の タ イ プの ク リ テ ィ カル警告があ り ますか。
各 ク リ テ ィ カル警告 タ イ プの例 :
10. report_high_fanout_nets -timing -load_types -max_nets 25 コ マ ン ド を実行 し ます。
フ リ ッ プ フ ロ ッ プで駆動 さ れていない フ ァ ン ア ウ ト の大 き いネ ッ ト の数 : ___________
フ リ ッ プ フ ロ ッ プで駆動 さ れていない フ ァ ン ア ウ ト が最大のネ ッ ト 上にあ る ロ ー ド の数 : ___________
フ ァ ン ア ウ ト の大 き いネ ッ ト に ス ラ ッ ク が負の も のがあ る 場合、 その WNS : ___________
11. デザ イ ン を イ ンプ リ メ ン ト し ます。 各段階の後に report_timing_summary コ マ ン ド を実行 し 、 表示 さ れ る 情
報を次の表に記録 し ます。
WNS
TNS
タ イ ミ ングが
満た さ れてい
ないエ ン ド ポ
イ ン ト (Failing
Endpoints) の数
WHS
THS
タ イ ミ ングが
満た さ れてい
ないエ ン ド ポ
イ ン ト (Failing
Endpoints) の数
最適化
配置
物理最適化
配線
12. report_exceptions -ignored コ マ ン ド を実行 し 、 デザ イ ン で重複 し てい る 制約がないか ど う か を確認 し ま
す。 結果を記録 し ます。
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
291
付録 B
その他の リ ソ ースおよび法的通知
ザイ リ ン ク ス リ ソ ース
ア ンサー、 資料、 ダ ウ ン ロ ー ド 、 フ ォー ラ ム な ど のサポー ト リ ソ ース は、 ザ イ リ ン ク ス サポー ト サ イ ト を参照 し て
く だ さ い。
ソ リ ュ ーシ ョ ン セ ン タ ー
デバ イ ス、 ツール、 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 : 英語版、 日本
語版)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
292
付録 B : その他の リ ソ ースおよび法的通知
11. 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900 : 英語版、 日本語版)
12. 『Vivado Design Suite ユーザー ガ イ ド : 入門』 (UG910 : 英語版、 日本語版)
13. 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835 : 英語版、 日本語版)
14. 『Vivado Design Suite プ ロ パテ ィ リ フ ァ レ ン ス ガ イ ド 』 (UG912 : 英語版、 日本語版)
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 : 英語版、 日本語版)
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
293
付録 B : その他の リ ソ ースおよび法的通知
『UltraScale アーキ テ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572 : 英語版、 日本語版)
40. 『UltraScale アーキ テ ク チ ャ GTH ト ラ ン シーバー ユーザー ガ イ ド 』 (UG576 : 英語版、 日本語版)
『UltraScale アーキ テ ク チ ャ GTY ト ラ ン シーバー ユーザー ガ イ ド 』 (UG578 : 英語版、 日本語版)
41. 『UltraScale Architecture Gen3 Integrated Block for PCI Express LogiCORE IP 製品ガ イ ド 』 (PG156 : 英語版、 日本語版)
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 か ら 入手で き ます。詳細は、「Documentation Navigator
の使用」 を参照 し て く だ さ い。
ト レーニ ン グ リ ソ ース
ザ イ リ ン ク ス では、本書に含まれ る コ ン セプ ト を説明す る さ ま ざ ま な ト レーニ ン グ コ ースお よ びオン ラ イ ン ビデオを
提供 し てい ます。 次の リ ン ク か ら 関連す る ト レーニ ン グ リ ソ ース を参照 し て く だ さ い。
1.
Vivado での FPGA 設計導入 ト レーニ ン グ コ ース
2.
ザ イ リ ン ク ス ビデオ チ ュ ー ト リ アル : UltraFast Vivado 設計手法
3.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado デザ イ ン フ ロ ーの概要
4.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し たデザ イ ン
5.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し た Zynq デバ イ ス の設計
6.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado でパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を実行
7.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : さ ま ざ ま な タ イ プのプ ロ ジ ェ ク ト の作成
8.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : プ ロ ジ ェ ク ト で ソ ース フ ァ イ ルを管理
9.
Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado Design Suite の リ ビ ジ ョ ン管理シ ス テ ム と の使用
UltraFast 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
294
付録 B : その他の リ ソ ースおよび法的通知
10. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP のバージ ョ ン ア ッ プグ レー ド の管理
11. Vivado Design Suite ビデオ チ ュ ー ト リ アル : I/O 配置の概要
12. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado での再利用可能な IP の コ ン フ ィ ギ ュ レーシ ョ ンお よ び管理
13. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado で write_bitstream コ マ ン ド を使用す る 方法
14. Vivado Design Suite ビデオ チ ュ ー ト リ アル : IP のカ ス タ マ イ ズお よ び イ ン ス タ ン シエーシ ョ ン
15. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado でのデザ イ ン解析お よ びフ ロ アプ ラ ン
16. Vivado Design Suite ビデオ チ ュ ー ト リ アル : 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-2015 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 設計手法ガ イ ド
UG949 (v2015.3) 2015 年 11 月 23 日
japan.xilinx.com
295