• 検索結果がありません。

Vivado Design Suite ユーザー ガイド: 制約の使用

N/A
N/A
Protected

Academic year: 2021

シェア "Vivado Design Suite ユーザー ガイド: 制約の使用"

Copied!
183
0
0

読み込み中.... (全文を見る)

全文

(1)

Vivado Design Suite

ユーザー

ガイ ド

制約の使用

UG903 (v2020.1) 2020 年 8 月 17 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に

よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし

ては、必ず最新英語版をご参照ください。

(2)

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

セ ク シ ョ ン 改訂内容

2020 年 8 月 17 日 バージ ョ ン 2020.1

(3)

改訂履歴 . . . 2

第 1 章: 概要

UCF 制約か ら XDC 制約への変換 . . . 5 XDC 制約について . . . 5

第 2 章: 制約の入力方法

制約の入力方法について . . . 7 制約の管理 . . . 7 制約の順序 . . . 11 制約の入力 . . . 17 合成制約の作成 . . . 54 イ ンプ リ メ ン テーシ ョ ン制約の作成 . . . 59 制約の適用範囲の設定 . . . 62 制約の効率 . . . 68

第 3 章: ク ロ ッ クの定義

ク ロ ッ ク について . . . 73 プ ラ イ マ リ ク ロ ッ ク . . . 74 仮想 ク ロ ッ ク . . . 77 生成 ク ロ ッ ク . . . 78 ク ロ ッ ク グループ . . . 86 ク ロ ッ ク レ イ テ ン シ、 ジ ッ ター、 ば ら つき . . . 89

第 4 章: I/O 遅延の制約

I/O 遅延の制約について . . . 91 入力遅延 . . . 91 出力遅延 . . . 94

第 5 章: タ イ ミ ング例外

タ イ ミ ン グ例外について . . . 97 マルチサ イ ク ル パス . . . 98 フ ォ ルス パス . . . 113

(4)

XDC 制約の順序 . . . 132 例外の優先順位 . . . 132

第 8 章: 物理制約

物理制約について . . . 135 ネ ッ ト リ ス ト 制約 . . . 136 I/O 制約 . . . 138 配置制約 . . . 139 配線制約 . . . 142 コ ン フ ィ ギ ュ レーシ ョ ン制約 . . . 143

第 9 章: 相対配置マ ク ロの定義

相対配置マ ク ロ の定義について . . . 145 デザ イ ン エ レ メ ン ト のセ ッ ト の定義 . . . 145 RPM の作成 . . . 146 セルの RPM セ ッ ト への割 り 当て . . . 146 相対 ロ ケーシ ョ ンの割 り 当て . . . 148 RPM への固定 ロ ケーシ ョ ン の割 り 当て . . . 152 XDC マ ク ロ . . . 154 RPM の XDC マ ク ロ への変換 . . . 166

付録 A: サポー ト さ れる XDC および SDC コ マ ン ド

XDC フ ァ イ ルで使用可能な コ マ ン ド . . . 168 サポー ト さ れ る SDC コ マン ド . . . 169 サポー ト さ れない SDC コ マン ド . . . 180

付録 B: その他のソ ースおよび法的通知

ザ イ リ ン ク ス リ ソ ース . . . 181 ソ リ ュ ーシ ョ ン セン ター . . . 181 Documentation Navigator お よ びデザ イ ン ハブ. . . 181 参考資料 . . . 182 ト レーニ ン グ リ ソ ース . . . 182 お読み く だ さ い: 重要な法的通知 . . . 183

(5)

概要

UCF 制約から XDC 制約への変換

Vivado® 統合設計環境 (IDE) では、 ザ イ リ ン ク ス デザ イ ン制約 (XDC) が使用 さ れ、 ユーザー制約フ ァ イ ル (UCF) フ ォーマ ッ ト はサポー ト さ れてい ません。

ザ イ リ ン ク ス デザ イ ン制約 (XDC) と ユーザー制約フ ァ イ ル (UCF) の制約には、 重要な違いがい く つかあ り ます。 XDC は、 業界標準の Synopsys® Design Constraints (SDC) フ ォ ーマ ッ ト に基づいてい ます。 SDC は 20 年以上 も 使用 さ れ改善を重ねて き た、 デザ イ ン制約の記述に最 も よ く 利用 さ れてい る フ ォーマ ッ ト です。

ビデオ: UCF 制約の XDC への移行については、Vivado Design Suite QuickTake ビデオ: UCF 制約の XDC への変換を ご 覧 く だ さ い。

UCF には慣れてい る が XDC は初めて と い う 場合は、『ISE か ら Vivado Design Suite への移行ガ イ ド 』 (UG911) [参照 1] の 「UCF 制約の XDC への移行」 の章にあ る 「XDC と UCF 制約の違い」 を参照 し て く だ さ い。 こ の章では、 XDC 制 約を作成す る 開始点 と し て、 既存の UCF フ ァ イ ルを XDC に変換する方法が説明 さ れてい ます。 重要: デザ イ ンに適切に制約を設定する には、 XDC と UCF の基本的な違いを理解する必要があ り ます。 UCF か ら XDC への変換ユーテ ィ リ テ ィ には限界があ る ので、 XDC を正 し く 理解 し て作成す る のが確実な方法です。 こ のユー ザー ガ イ ド では、 各 XDC 制約について説明 し ます。

XDC 制約について

XDC 制約は、業界標準の Synopsys Design Constraints (SDC バージ ョ ン 1.9) と ザ イ リ ン ク ス独自の物理制約を組み合わ せた も のです。

XDC には、 次の特徴があ り ます。

(6)

XDC 制約は、 フ ロ ーの異な る 段階で複数の方法で入力で き ます。

• 制約を 1 つま たは複数の XDC フ ァ イ ルに保存 し ます。

メ モ リ 内に XDC フ ァ イ ルを読み込むには、 次のいずれかを実行し ます。

° read_xdc コ マ ン ド を使用 し ます。

° XDC フ ァ イ ルを プ ロ ジ ェ ク ト の制約セ ッ ト の 1 つに追加 し ます。 XDC フ ァ イ ルで使用可能な ビル ト イ ン

Tcl コ マ ン ド は、 set、 list、 お よ び expr のみです。 サポー ト さ れてい る コ マ ン ド の リ ス ト は、付録 A 「サポー ト さ れ る XDC お よび SDC コ マン ド 」 を参照 し て く だ さ い。 • ツールで管理 さ れない Tcl ス ク リ プ ト で制約を生成し ます。 Tcl ス ク リ プ ト を実行す る には、 次のいずれか を実行 し ます。 ° source コ マ ン ド を実行 し ます。 ° read_xdc -unmanaged コ マ ン ド を使用 し ます。 ° Tcl ス ク リ プ ト を プ ロ ジ ェ ク ト の制約セ ッ ト の 1 つに追加 し ます。 ヒ ン ト: XDC フ ァ イル と は異な り 、 ツールで管理さ れない Tcl ス ク リ プ ト には、 デザイ ン オブジ ェ ク ト を選択し た り デザ イ ン制約を定義す る ため、 条件やループ制御構造な ど の一般的な Tcl コ マン ド を含め る こ と がで き ます。

重要: Vivado Design Suite では、 同じ制約セ ッ ト に XDC フ ァ イル と Tcl ス ク リ プ ト の両方を追加で き ます。 変更さ れ た制約は、 XDC フ ァ イ ルか ら の も のであ る場合のみ元の場所に保存 さ れます。 ツールで管理 さ れない Tcl ス ク リ プ

ト か ら の も のは元の場所には保存 さ れません。 Tcl ス ク リ プ ト で生成 さ れた制約は Vivado Design Suite では管理 さ れ ないため、 イ ン タ ラ ク テ ィ ブには変更で き ません。 詳細は、第 2 章 「制約の入力方法」 を参照 し て く だ さ い。

重要: XDC 制約の場合、 source および read_xdc.の動作に違いがあ り ます。 source コ マン ド で イ ンポー ト し た制 約は、 イ ン ポー ト し た順番ではチ ェ ッ ク ポ イ ン ト に保存 さ れません。 read_xdc で イ ン ポー ト し た制約が まず保存

さ れてか ら 、 source で イ ン ポー ト し た制約が保存 さ れます。 すべての制約をデザ イ ンに適用 し た順番で保存する には、 source ではな く 、 read_xdc -unmanaged を使用 し ます。

デザ イ ン を メ モ リ に読み込んだ後に特定の制約の構文を検証ま たはその影響を確認す る には、 Tcl コ ン ソ ールおよ び Vivado Design Suite の レ ポー ト 機能を使用 し ます。 こ れは、 タ イ ミ ン グ制約お よ び物理制約を解析 し 、 デバ ッ グす る のに有益な方法です。

(7)

制約の入力方法

制約の入力方法について

デザ イ ン制約は、 デザ イ ンがボー ド 上で正 し く 機能す る よ う にす る ために、 コ ンパ イ ル フ ロ ーで満たす必要のあ る 要件を定義 し ます。 すべての制約が コ ンパ イ ル フ ロ ーのすべての段階で使用 さ れ る わけではあ り ません。 た と えば、 物理制約は イ ンプ リ メ ン テーシ ョ ン段階 (配置およ び配線) でのみ使用 さ れます。 Vivado® 統合設計環境 (IDE) の合成お よ び イ ン プ リ メ ン テーシ ョ ン アルゴ リ ズ ムは タ イ ミ ン グ ド リ ブ ン なので、 適 切な タ イ ミ ン グ制約を作成す る 必要があ り ます。 デザ イ ンの制約を厳 し く し すぎ た り 緩 く し すぎ た り す る と 、 タ イ ミ ン グ ク ロ ージ ャ を達成する のが困難にな り ます。 アプ リ ケーシ ョ ンの要件に合っ た適度な制約を使用する必要が あ り ます。

制約の管理

Vivado IDE では、 1 つ ま たは多数の制約フ ァ イ ルを使用で き ます。 コ ンパ イ ル フ ロ ー全体に 1 つの制約フ ァ イ ルを使 用す る 方が便利な よ う に思え ますが、 複雑なデザ イ ンでは、 すべての制約を 1 つのフ ァ イ ルで管理する のは簡単で はあ り ません。 複数のチームに よ っ て開発 さ れた複数の IP コ アや大型ブ ロ ッ ク を使用するデザ イ ンの場合は、 特に そ う です。 タ イ ミ ン グ制約 と 物理制約を イ ン ポー ト し た ら 、 ソ ース フ ァ イ ルの数ま たはプ ロ ジ ェ ク ト モー ド /非プ ロ ジ ェ ク ト モー ド にかかわ ら ず、 write_xdc コ マン ド を使用し てすべての制約を 1 つのフ ァ イ ルにエ ク ス ポー ト で き ます。 制 約はプ ロ ジ ェ ク ト ま たはデザ イ ンに読み込まれた順序で指定の出力フ ァ イ ルに記述 さ れます。 write_xdc -type コ マ ン ド ラ イ ン オプシ ョ ン を使用する と 、 制約のサブセ ッ ト (タ イ ミ ン グ、 物理、 ま たは除外) を選択 し てエ ク ス ポー ト で き ます。 推奨: タ イ ミ ン グ制約 と 物理制約は別のフ ァ イルに保存する こ と をお勧め し ます。 ま た、 特定のモジ ュール用の制約 を別の フ ァ イ ルに保存す る こ と も で き ます。

(8)

プ ロ ジ ェ ク ト フ ロー

ザ イ リ ン ク ス デザ イ ン制約 (XDC) フ ァ イ ルは、 新規プ ロ ジ ェ ク ト を作成する と き、 ま たは後で Vivado IDE メ ニ ュー か ら 制約セ ッ ト に追加で き ます。 図 2-1 に、 プ ロ ジ ェ ク ト に 2 つの制約セ ッ ト が含ま れてい る 例を示 し ます。 1 つ目の制約セ ッ ト には、 2 つの XDC フ ァ イ ルが含まれてい ます。 2 つ目の制約セ ッ ト では、 すべての制約を含む XDC フ ァ イ ルを 1 つ使用 し ます。 重要: プ ロ ジ ェ ク ト に独自の制約を使用する IP が含まれている場合、 その制約フ ァ イルは制約セ ッ ト には表示され ず、 IP ソ ース フ ァ イ ル と 共に リ ス ト さ れます。 Tcl ス ク リ プ ト を、 ツールで管理 さ れない制約ま たは Tcl ス ク リ プ ト と し て制約セ ッ ト に追加す る こ と も で き ます。 こ れ ら の制約を変更 し た場合、 Vivado Design Suite では こ れ ら の変更は管理 さ れない Tcl ス ク リ プ ト には保存 さ れま せん。 Tcl ス ク リ プ ト およ び XDC フ ァ イ ルは、 Vivado IDE に表示 さ れてい る の と 同じ 順序で読み込まれ る か (同 じ PROCESSING_ORDER グループに属 し てい る 場合)、 ま たは report_compile_order -constraints コ マ ン ド で レ ポー ト さ れ る の と 同 じ 順序で読み込まれます。

1 つの XDC フ ァ イ ル ま たは Tcl ス ク リ プ ト を必要に応 じ て複数の制約セ ッ ト で使用で き ます。 制約フ ァ イ ルお よ び 制約セ ッ ト の作成方法、 プ ロ ジ ェ ク ト への追加方法は、 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 2] のこ のセ ク シ ョ ンを参照 し て く だ さ い。

X-Ref Target - Figure 2-1

(9)

非プ ロ ジ ェ ク ト フ ロー

非プ ロ ジ ェ ク ト モー ド では、 コ ンパ イ ル コ マン ド を実行する前に各フ ァ イ ルを読み込む必要があ り ます。 次に、 合成お よ び イ ンプ リ メ ン テーシ ョ ンで複数の XDC フ ァ イ ルを使用する ス ク リ プ ト 例を示し ます。 ス ク リ プ ト 例: read_verilog [glob src/*.v] read_xdc wave_gen_timing.xdc read_xdc wave_gen_pins.xdc

synth_design -top wave_gen -part xc7k325tffg900-2 opt_design

place_design route_design

アウ ト オブ コ ン テキス ト 制約

Dynamic Function eXchange を使用す る デザ イ ンの場合は、 デザ イ ン の一部を ア ウ ト オブ コ ン テ キ ス ト (OOC) 方法で 合成す る のが一般的です。 こ の フ ロ ーが使用 さ れ る と 、 一部の制約を OOC 合成のみに指定で き ます。 た と えば、 ブ ロ ッ ク が合成済み OOC の場合、 ブ ロ ッ ク の入力バ ウ ン ダ リ で伝搬 さ れ る ク ロ ッ ク を定義する必要があ り ます。 こ れ ら の ク ロ ッ ク は、 OOC の XDC フ ァ イ ル内で定義 し ます。

プ ロ ジ ェ ク ト モー ド :

add_file constraints_ooc.xdc

set_property USED_IN {synthesis out_of_context} [get_files constraints_ooc.xdc]

ア ウ ト オブ コ ン テキ ス ト は、 GUI (constraints_ooc.xdc フ ァ イ ルのプ ロ パテ ィ ) を介 し て XDC フ ァ イ ルで も 設 定で き ます。

非プ ロ ジ ェ ク ト モー ド :

read_xdc -mode out_of_context constraints_ooc.xdc

合成および イ ン プ リ メ ン テーシ ョ ン制約 フ ァ イル

デフ ォ ル ト では、 プ ロ ジ ェ ク ト に追加 さ れたすべての XDC フ ァ イ ルおよ び Tcl ス ク リ プ ト が、 合成およ びイ ンプ リ メ ン テーシ ョ ンの両方で使用 さ れます。 XDC フ ァ イ ルま たは Tcl ス ク リ プ ト に USED_IN_SYNTHESIS および USED_IN_IMPLEMENTATION プ ロ パテ ィ を設定す る と 、 こ のデフ ォ ル ト を変更で き ます。 こ れ ら のプ ロ パテ ィ に有 効な値は、 TRUE ま たは FALSE です。

重要: DONT_TOUCH 属性は USED_IN_SYNTHESIS および USED_IN_IMPLEMENTATION のプ ロパテ ィ には従いませ ん。 合成 XDC で DONT_TOUCH プ ロ パテ ィ を使用する と 、 USED_IN_IMPLEMENTATION の値にかかわ ら ず、 イ ンプ

(10)

重要: モジ ュール (IP/BD/...) がア ウ ト オブ コ ンテキ ス ト (OOC) モー ド で合成さ れる場合、 最上位合成 run で これら の モジ ュ ールに対 し てブ ラ ッ ク ボ ッ ク ス が推論 さ れます。 こ のため、 最上位合成制約は OOC モジ ュール内部のピ ン、 ネ ッ ト 、 セルな ど のオブジ ェ ク ト を参照で き ません。 最上位制約の中に OOC モジ ュール内のオブジ ェ ク ト を参照す る も のがあ る 場合、 制約を合成用 (USED_IN_SYNTHESIS=TRUE / USED_IN_IMPLEMENTATION=FALSE) と イ ンプ リ メ ン テーシ ョ ン用 (USED_IN_SYNTHESIS=FALSE / USED_IN_IMPLEMENTATION=TRUE) の 2 つの XDC フ ァ イ ル に分割す る 必要があ り ます。 イ ンプ リ メ ン テーシ ョ ン中は こ の よ う な制限はあ り ません。 こ れは、 OOC モジ ュール の DCP か ら のネ ッ ト リ ス ト が、 最上位デザ イ ン フ ァ イ ル合成する際に生成 さ れたネ ッ ト リ ス ト と リ ン ク さ れ、 ブ ラ ッ ク ボ ッ ク ス が解決 さ れ る ためです。 イ ンプ リ メ ン テーシ ョ ンで使用する ために生成 さ れた XDC 出力フ ァ イ ル は、 ほかのユーザー制約 と 共に適用 さ れます。 た と えば、 制約フ ァ イ ルを イ ンプ リ メ ン テーシ ョ ンのみに使用す る 場合は、 次の手順に従い ます。 1. [Sources] ウ ィ ン ド ウ で制約フ ァ イ ルを選択 し ます。

2. [Source File Properties] ウ ィ ン ド ウ で、 オプシ ョ ン を次の よ う に設定 し ます。

a. [Synthesis] チ ェ ッ ク ボ ッ ク ス を オ フ に し ます。

b. [Implementation] チ ェ ッ ク ボ ッ ク ス を オ ン に し ます。

同等の Tcl コ マン ド は、 次の と お り です。

set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc] X-Ref Target - Figure 2-2

(11)

次に、 2 つの XDC フ ァ イ ルを フ ロ ーの異な る段階で読み込むコ ンパ イ ル Tcl ス ク リ プ ト 例を示 し ます。 read_verilog [glob src/*.v]

read_xdc wave_gen_timing.xdc

synth_design -top wave_gen -part xc7k325tffg900-2 read_xdc wave_gen_pins.xdc opt_design place_design route_design ヒ ン ト: 合成後に読み込まれた制約が、 合成前に読み込まれた制約に加えて適用さ れます。

制約の順序

XDC 制約は順に適用 さ れ、 規則に従っ て優先順位が付け ら れ る ので、 制約の順序を よ く 確認 し てお く 必要があ り ま す。 詳細は、第 7 章 「XDC の優先順位」 を参照 し て く だ さ い。 注記: 複数の物理制約が競合 し てい る場合は、 最後の制約が適用 さ れます。 た と えば、 I/O ポー ト が複数の XDC フ ァ イ ルに よ り 異な る 場所に割 り 当て ら れてい る 場合、 ポー ト に最後に割 り 当て ら れた場所が適用 さ れます。 Vivado IDE では、 デザ イ ン を詳細に確認で き ます。 制約を検証す る には、 次の手順に従い ます。 1. 適切な レ ポー ト コ マン ド を実行 し ます。 2. [Tcl Console] ま たは [Messages] ウ ィ ン ド ウ の メ ッ セージ を確認 し ます。 表 2-1: 合成前後の XDC フ ァ イルの読み込み フ ァ イル名 フ ァ イルを読み込む段階 制約が使用 さ れる段階 wave_gen_timing.xdc 合成前 • 合成 • イ ン プ リ メ ン テーシ ョ ン wave_gen_pins.xdc 合成後 • イ ン プ リ メ ン テーシ ョ ン

(12)

推奨 さ れる制約の順序

推奨: デザ イ ンで XDC フ ァ イルを 1 つま たは複数使用する場合のどち ら で も、 制約を次の順序で指定し ます。 ## Timing Assertions Section

# Primary clocks # Virtual clocks # Generated clocks # Clock Groups

# Bus Skew constraints

# Input and output delay constraints

## Timing Exceptions Section # False Paths

# Max Delay / Min Delay # Multicycle Paths # Case Analysis # Disable Timing

## Physical Constraints Section

# located anywhere in the file, preferably before or after the timing constraints # or stored in a separate constraint file

注記: ク ロ ッ ク の関係ま たは ク ロ ッ ク 伝搬を変更する ケース解析制約は、 生成 ク ロ ッ ク を定義する前に定義する必要 があ り ます。 こ れには、 ク ロ ッ ク バ ッ フ ァ ーにその出力 ク ロ ッ ク に影響する よ う な ケース解析を定義する場合 も 含 まれます。 まず ク ロ ッ ク 定義か ら 始め ます。 ク ロ ッ ク を作成 し ない と 、 ク ロ ッ ク を ほかの制約で使用す る こ と はで き ません。 ク ロ ッ ク を定義す る 前に ク ロ ッ ク を参照す る と 、 エ ラ ーが発生 し 、 その制約は無視 さ れます。 こ れは、 1 つの XDC フ ァ イ ル内で も 、 デザ イ ン内のすべての XDC フ ァ イ ル (ま たは Tcl ス ク リ プ ト ) で も 同様です。 制約フ ァ イ ルの順序は重要です。 各フ ァ イ ルの制約が、 ほかの フ ァ イ ルの制約に依存 し ない よ う にす る 必要があ り ます。 あ る フ ァ イ ルの制約が、 ほかの フ ァ イ ルの制約に依存 し てい る 場合は、 依存す る 制約を含むフ ァ イ ルを最後 に読み込む必要があ り ます。 2 つの制約フ ァ イ ルが相互に依存 し てい る場合は、 1 つのフ ァ イ ルに統合 し て制約を適 切な順序で記述す る か、 2 つのフ ァ イ ルを さ ら に分割し てそれ ら のフ ァ イ ルの順序が正 し く な る よ う にする必要があ り ます。

制約の順序の編集

Vivado IDE では、 編集 し た制約は XDC フ ァ イ ルの元の位置に保存 さ れ ますが、 Tcl ス ク リ プ ト には保存 さ れ ません。 新 し い制約はすべて、 「target」 と マー ク さ れてい る XDC フ ァ イ ルの最後に保存 さ れます。 制約セ ッ ト に複数の XDC フ ァ イ ルが含ま れてい る 場合、 こ の タ ーゲ ッ ト 制約フ ァ イ ルは リ ス ト の最後にあ る フ ァ イ ルではない こ と が多 く 、 デザ イ ン を開いた と き 、 ま たはデザ イ ン を読み込み直 し た と き に、 最後に読み込まれ る と は限 り ません。 その ため、 制約 ソ ース フ ァ イ ルに保存 さ れた制約の順序が メ モ リ 内での順序 と 異な る も のにな る可能性があ り ます。 重要: 制約フ ァ イルに保存されている最終的な順序が、 意図し た と お り に機能する こ と を確認する必要があ り ます。 順 序を変更する必要があ る場合は、 制約フ ァ イ ルを直接編集し ます。 こ れは、 特に タ イ ミ ン グ制約の場合に重要です。

(13)

制約 フ ァ イルの順序

IP を含ま ないプ ロ ジ ェ ク ト フ ロ ーでは、 制約はすべて制約セ ッ ト に含ま れ ます。 デフ ォ ル ト では、 エ ラ ボ レー ト 済 みデザ イ ン ま たは合成済みデザ イ ン を メ モ リ に読み込む と き に、 Vivado IDE に表示 さ れてい る順序で XDC フ ァ イ ル (ま たは Tcl ス ク リ プ ト ) が読み込ま れ ます。 リ ス ト の 1 番上の フ ァ イ ルが最初に読み込ま れ、 1 番下の フ ァ イ ルが最 後に読み込まれます。 こ の順序を変更す る には、 IDE でフ ァ イ ルを選択 し 、 リ ス ト 内での位置を変更し ます。 た と えば図 2-3 では、 ド ラ ッ グ ア ン ド ド ロ ッ プで wave_gen_pin.xdc を wave_gen_timing.xdc の前に移動 し てい ます。 こ れ と 同等の Tcl コ マン ド は、 次の と お り です。

reorder_files -fileset constrs_1 -before [get_files wave_gen_timing.xdc] \ [get_files wave_gen_pins.xdc]

非プ ロ ジ ェ ク ト モー ド では、 read_xdc で読み込む順序が、 制約フ ァ イ ルが評価 さ れ る順序にな り ます。 X-Ref Target - Figure 2-3

図 2-3: Vivado IDE での XDC フ ァ イル順の変更

表 2-2: フ ァ イル順の変更前 と 変更後

フ ァ イル 変更前の フ ァ イル順 変更後の フ ァ イル順

wave_gen_timing.xdc 1 2

(14)

IP コ ア を含む場合の制約 フ ァ イルの順序

IP コ アは、 1 つま たは複数の XDC フ ァ イ ル と 共に配布 さ れ る こ と が多 く 、 その よ う な IP コ アが RTL プ ロ ジ ェ ク ト 内で生成 さ れ る と 、 その XDC フ ァ イ ル も さ ま ざ ま なデザ イ ン コ ンパ イ ル段階で使用 さ れます。 た と えば、図 2-4 では、 プ ロ ジ ェ ク ト に含ま れてい る IP の 1 つが、 1 つの XDC フ ァ イ ル と 共に配布 さ れてい ます。 デフ ォ ル ト では、 IP の XDC フ ァ イ ルがユーザー XDC フ ァ イ ルの前に読み込まれます。 こ の順序で処理する こ と で、 IP に XDC で参照で き る ク ロ ッ ク オブジ ェ ク ト を作成で き ます。 ま た、 ユーザー制約が IP の後に評価 さ れ る ので、 IP コ アで設定 さ れた物理制約を ユーザー制約で上書 き で き ます。 ただ し 、 ユーザーま たは別の IP で生成 さ れた ク ロ ッ ク オブジ ェ ク ト に依存 し てい る IP コ アは例外です (get_clocks -of_objects [get_ports clka] な ど)。 こ の場合、 IP の XDC がユーザー フ ァ イ ルの後に読み込まれます。

こ の動作は、 各 XDC フ ァ イ ルに設定 さ れてい る PROCESSING_ORDER プ ロ パテ ィ で指定し ます。 • EARLY: 最初に読み込む必要のあ る フ ァ イ ル

• NORMAL: デフ ォ ル ト

• LATE: 最後に読み込む必要のあ る フ ァ イ ル

IP の XDC では、 PROCESSING_ORDER プ ロ パテ ィ は EARLY ま たは LATE に設定 さ れ ます。 IP の XDC フ ァ イ ルの PROCESSING_ORDER プ ロ パテ ィ が NORMAL に設定 さ れてい る こ と はあ り ません。 PROCESSING_ORDER 設定が 同 じ ユーザー XDC (ま たは Tcl) フ ァ イ ルは、 Vivado IDE で表示 さ れてい る順序で読み込まれます。 グループ内の順序 X-Ref Target - Figure 2-4

(15)

ユーザー グループ と IP XDC PROCESSING_ORDER グループの間の相対的な順序は、 次の と お り です。 1. EARLY と マー ク さ れてい る ユーザー制約 2. EARLY と マー ク さ れてい る IP 制約 (デフ ォ ル ト ) 3. NORMAL と マー ク さ れてい る ユーザー制約 4. LATE と マー ク さ れてい る IP 制約 ( ク ロ ッ ク 依存関係を含む) 5. LATE と マー ク さ れてい る ユーザー制約 注記: ユーザー制約の後に処理する ため PROCESSING_ORDER が LATE に設定 さ れてい る IP の XDC フ ァ イ ルは、 <IP_NAME>_clocks.xdc と い う 名前にな り ます。 次の図に、 PROCESSING_ORDER プ ロ パテ ィ の設定例を示 し ます。 こ れ と 同等の Tcl コ マン ド は、 次の と お り です。

set_property PROCESSING_ORDER EARLY [get_files wave_gen_pins.xdc]

推奨: Tcl コ ン ソールで report_compile_order -constraints コ マン ド を使用し て、 IS_ENABLED、

USED_IN_SYNTHESIS、 お よ び USED_IN_IMPLEMENTATION な ど の上記のプ ロ パテ ィ に基づいて ツールで決定 さ れた XDC フ ァ イ ル読み出 し シーケ ン ス が レ ポー ト さ れ る よ う に し ます。

注記: IP を ア ウ ト オブ コ ン テキ ス ト で合成する と 、 IP に よ り デフ ォル ト の ク ロ ッ ク 定義を含む _occ.xdc フ ァ イ ルが 必要に応 じ て供給 さ れます。 _ooc.xdc の USED_IN プ ロ パテ ィ は synthesis out_of_context implementation (順序は関係な し ) に設定 さ れます。 ア ウ ト オブ コ ン テキ ス ト 合成中は、 _occ フ ァ イ ルはほかの制約よ り も 先に処理 さ れます。

読み込み順の変更

制約セ ッ ト 内での XDC フ ァ イ ルま たはツールで管理 さ れない Tcl ス ク リ プ ト の読み込み順序を変更する には、 次の 手順に従い ます。 1. [Sources] ウ ィ ン ド ウ で、 移動す る XDC フ ァ イ ル ま たは Tcl ス ク リ プ ト を選択 し ます。 2. その フ ァ イ ルを、 制約セ ッ ト の適切な位置に ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 図 2-3 の例を Tcl コ マ ン ド にす る と 、 次の よ う にな り ます。

reorder_files -fileset constrs_1 -before [get_files wave_gen_timing.xdc] \ X-Ref Target - Figure 2-5

(16)

デフ ォ ル ト では、 ユーザーの XDC フ ァ イ ルは PROCESSING_ORDER NORMAL グループに含まれます。 こ れ ら は、 EARLY XDC フ ァ イ ルの後、 LATE XDC フ ァ イ ルの前に読み込ま れ ます。 各 PROCESSING_ORDER グループ ご と に、 IP の XDC フ ァ イ ルが IP コ アの [IP Sources] ウ ィ ン ド ウ で リ ス ト さ れ る の と 同 じ 順序で読み込ま れ ます。 た と えば、 次の図は XDC フ ァ イ ルを含むプ ロ ジ ェ ク ト IP コ アの 1 つを示 し てい ます。

デザ イ ン を開 く と 、 ロ グ フ ァ イ ルに IP の XDC フ ァ イ ルが最後に読み込まれてい る こ と がわか り ます。

Parsing XDC File [C:/project_wave_gen_hdl.srcs/sources_1/ip/clk_core/clk_core.xdc] for cell 'clk_gen_i0/clk_core_i0/inst'

Finished Parsing XDC File

[C:/project_wave_gen_hdl.srcs/sources_1/ip/clk_core/clk_core.xdc] for cell 'clk_gen_i0/clk_core_i0/inst'

Parsing XDC File

[C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/char_fifo/char_fifo.xdc] for cell 'char_fifo_i0/U0'

Finished Parsing XDC File

[C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/char_fifo/char_fifo.xdc] for cell 'char_fifo_i0/U0'

Parsing XDC File

[C:/project_wave_gen_hdl.srcs/constrs_1/imports/verilog/wave_gen_timing.xdc] Finished Parsing XDC File

[C:/project_wave_gen_hdl.srcs/constrs_1/imports/verilog/wave_gen_timing.xdc] X-Ref Target - Figure 2-6

(17)

ユーザー XDC フ ァ イ ル と は異な り 、 同 じ PROCESSING_ORDER グループの IP XDC フ ァ イ ルが読み込まれ る順序を 直接変更す る こ と はで き ません。 変更が必要な場合は、 次を実行 し ます。 1. 対応す る IP の XDC フ ァ イ ルをデ ィ ス エーブルに し ます (IS_ENABLED を false に設定)。 2. その フ ァ イ ルの内容を コ ピー し ます。 3. 制約セ ッ ト に含まれ る XDC フ ァ イ ルのいずれかに コ ピーし た内容を貼 り 付け ます。 4. コ ピー さ れた IP の XDC コ マン ド を、 階層ネ ッ ト リ ス ト オブジ ェ ク ト の完全なパス名を使用 し てア ッ プデー ト し ます。 IP の XDC 制約は適用範囲が IP イ ン ス タ ン ス に限定 さ れ る よ う に記述 さ れてい る ので、 こ の作業は必 要です。 5. 範囲が限定 さ れた制約に対 し て特別な方法で処理 さ れ る get_ports ク エ リ を確認 し ます。 XDC の適用範囲の 詳細は、62 ページの 「制約の適用範囲の設定」 を参照 し て く だ さ い。

制約の入力

Vivado IDE で制約を入力す る 方法はい く つかあ り ます。 テ キ ス ト エデ ィ タ ーで直接 XDC フ ァ イ ルを編集す る 場合を 除 き 、 Vivado IDE の制約入力機能にア ク セ スする にはデザ イ ン データ ベース (エ ラ ボ レー ト 済み、 合成済み、 ま たは イ ンプ リ メ ン ト 済み) を開 く 必要があ り ます。

メ モ リ 内の制約の保存

編集中の制約を検証す る には、 メ モ リ にデザ イ ン を読み込んでお く 必要があ り ます。 Vivado IDE ユーザー イ ン ター フ ェ イ ス を使用 し て制約を編集す る 場合は、 Tcl コ ン ソ ールで同等の XDC コ マ ン ド が実行 さ れ、 メ モ リ 内で適用 さ れます。 編集 し た タ イ ミ ン グ制約を XDC フ ァ イ ルに保存する には、 まず メ モ リ に適用する必要があ り ます。 合成ま たは イ ンプ リ メ ン テーシ ョ ン を実行す る 前に、 メ モ リ 内の制約を プ ロ ジ ェ ク ト の XDC フ ァ イ ルに保存する必 要があ り ます。 Vivado IDE では、 制約の保存が必要な場合は メ ッ セージが表示 さ れます。 制約を手動で保存す る には、 次のいずれかを実行 し ます。 • ツールバーの [Save Constraints] を ク リ ッ ク し ます。 • [File] → [Constraints] → [Save] を ク リ ッ ク し ます。

注記: メ モ リ 内の制約を保存する際、 合成お よび イ ンプ リ メ ン テーシ ョ ンが最新の状態でな く な る可能性があ る こ と を示すダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 こ のダ イ ア ロ グ ボ ッ ク ス の [Remember Preference] チ ェ ッ ク ボ ッ ク ス を オンにす る と 、 今後 こ の警告が表示 さ れない よ う にで き ます。 こ れ ら の コ マ ン ド を実行す る と 、 Vivado で次の処理が実行 さ れます。 • 新 し い制約はすべて、 デザ イ ンに関連付け ら れてい る 制約セ ッ ト の 「target」 と マー ク さ れてい る XDC フ ァ イ ルに保存 さ れます。

(18)

制約編集 フ ロー

図 2-7 に、 推奨 さ れ る 制約編集フ ロ ーを示 し ます。 こ れ ら 2 つの フ ロ ーを混合 し ないで く だ さ い。 混合す る と 、 制約 が失われ る 可能性があ り ます。 推奨 さ れ る フ ロ ーは、 次の と お り です。 • 「ユーザー イ ン タ ーフ ェ イ ス を使用」 • 「手動で編集」

ユーザー イ ン タ ー フ ェ イ ス を使用

制約は Vivado IDE で管理 さ れ る ので、 XDC フ ァ イ ルを同時に編集 し ないで く だ さ い。 Vivado IDE で メ モ リ の内容を 保存す る と 、 制約は次の よ う に保存 さ れます。 • 変更 さ れた制約は、 元の フ ァ イ ルの元の制約に上書 き さ れます。 • 新 し い制約は、 「target」 と マー ク さ れた フ ァ イ ルに追加 さ れます。 • XDC フ ァ イ ルを手動で変更 し た場合、 変更内容はすべて上書 き さ れ ます。

手動で編集

制約を手動で編集す る 場合、 ユーザーが XDC フ ァ イ ルを変更およ び管理し ます。 Tcl コ ン ソ ールを使用 し て制約の 構文を確認す る こ と はで き ますが、 デザ イ ン を閉 じ た り 読み込み直 し た り す る と 、 メ モ リ 内の変更は破棄 さ れます。 制約を保存す る と き に競合があ る 場合は、 次のいずれかを選択す る よ う メ ッ セージが表示 さ れます。 • メ モ リ で加えた変更を破棄す る • 変更を新 し い フ ァ イ ルに保存す る • XDC フ ァ イ ルを上書 き す る 制約の作成は繰 り 返 し 作業です。 ケース バ イ ケース で、 IDE エデ ィ タ ーを使用 し た り 、 制約フ ァ イ ルを手動で変更 で き ます。

(19)

各繰 り 返 し 実行で、図 2-7 に示 さ れてい る 両方のオプシ ョ ン を同時に使用 し ないで く だ さ い。

2 つのオプシ ョ ン を切 り 替え て使用す る 場合は、 まず制約を保存す る か、 デザ イ ン を読み込み直 し 、 メ モ リ 内の制約 が XDC フ ァ イ ル と 一致する よ う に し ます。

X-Ref Target - Figure 2-7

図 2-7: 制約編集フ ロー ȋǺǨȷǟȥȦȮƸᛤnjᡆǍ 7JWBEP ȋȼȃȝȼǽ ȋǺǨȷǟᚔௐ <4$IFNBUJDT><%FWJDF> <3FQPSUT>ǪǧȷȍǪ Хኚƻٱ஀ƙ ࣓ᙶƘ 7JWBEP*%& <%FWJDF> <1IZTJDBM$POTUSBJOUT> <5JNJOH$POTUSBJOUT> ǪǧȷȍǪƷƶNjƬƼ5DM Ƿȷȁȼȯǟ̉ဋ ȊDZǽȌǬȋǧȃȼƴ9%$ șǥǨȯǟዿᩀ 9%$șǥǨȯǟܑ̰ ȋǺǨȷǟϔᛤnjᡆnj ȋǺǨȷǟ᧑ƥǘǷȷȕǨȯǟܵᘑ (6*ٱ஀ǟ9%$șǥǨȯ ଀ᙽNjƬƼଓܑƸܑ̰ ৚ѧ˸ǏƤƷƑ ٱ஀ǟᄎె /0 :&4 (6*ǟ̉ဋ :&4 ৚ѧƴዿᩀ 9

(20)

ピ ン割 り 当て

RTL 解析、 合成、 イ ン プ リ メ ン テーシ ョ ン環境で最上位ポー ト を作成 し た り 、 既存の配置を変更す る には、 次の手 順に従い ます。

1. [I/O Planning] レ イ ア ウ ト を選択 し ます。

2. 表 2-3 に示す ウ ィ ン ド ウ を開 き ます。

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

X-Ref Target - Figure 2-8

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

表 2-3: 最上位ポー ト を作成、 および既存の配置を変更するウ ィ ン ド ウ

ウ ィ ン ド ウ 機能

[Device] デバ イ ス フ ロ アプ ラ ンでポー ト の位置を表示およ び変更し ます。 [Package] デバ イ ス パ ッ ケージでポー ト の位置を表示およ び変更し ます。

[I/O Ports] ポー ト を選択 し て [Device] ま たは [Package] ウ ィ ン ド ウ に ド ラ ッ グ ア ン ド ド ロ ッ プ し て 配置 し た り 、 各ポー ト の現在の割 り 当て を表示 し ます。

(21)

フ ロ ア プ ラ ン

RTL 解析、 合成、 イ ン プ リ メ ン テーシ ョ ン環境で Pblock を作成お よ び変更す る には、 次の手順に従い ます。 1. [Floorplanning] レ イ ア ウ ト を選択 し ます。 2. 表 2-4 に示す ウ ィ ン ド ウ を開 き ます。 特定の BEL ま たはサ イ ト にセル配置制約を作成する には、 次の手順に従い ます。 1. [Netlist] ウ ィ ン ド ウ でセルを選択 し ます。 2. セルを ド ラ ッ グ し て [Device] ウ ィ ン ド ウ の適切な位置に配置 し ます。

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

X-Ref Target - Figure 2-9

図 2-9: [Floorplanning] レ イ アウ ト

表 2-4: Pblock を作成および変更するウ ィ ン ド ウ

ウ ィ ン ド ウ 機能

[Netlist] Pblock に割 り 当て る セルを選択 し ます。 [Physical Constraints] 既存の Pblock と そのプ ロ パテ ィ を確認 し ます。

(22)

Timing Constraints ウ ィ ザー ド

Timing Constraints ウ ィ ザー ド では、 合成済みま たは イ ン プ リ メ ン ト 済みのデザ イ ン に不足 し てい る タ イ ミ ン グ制約 が検出 さ れます。『UltraFast 設計手法 (Vivado Design Suite 用)』 (UG949) [参照 5] の推奨事項に従っ てい る こ と を確認す る ため、 ネ ッ ト リ ス ト 、 ク ロ ッ ク ネ ッ ト の接続性、 およ び既存の タ イ ミ ン グ制約が解析 さ れます。 制約の 3 つのカ テ ゴ リ について ウ ィ ザー ド の 11 ページで解析 さ れ、 最後にサマ リ ページが表示 さ れます。 ウ ィ ザー ド には、 次の ス テ ッ プが含まれます。 • ク ロ ッ ク ° プ ラ イ マ リ ク ロ ッ ク ° 生成 ク ロ ッ ク ° フ ォ ワー ド ク ロ ッ ク ° 外部フ ィ ー ド バ ッ ク 遅延 • 入力お よ び出力ポー ト ° 入力遅延 ° 出力遅延 ° 組み合わせ遅延 • ク ロ ッ ク 乗せ換え ° 物理的に排他的な ク ロ ッ ク グループ ° 論理的に排他的な ク ロ ッ ク グループ ( ク ロ ッ ク 関連性な し ) ° 論理的に排他的な ク ロ ッ ク グループ (相互作用あ り ) ° 非同期 ク ロ ッ ク 乗せ換え • [Constraints Summary] ページ 各ス テ ッ プで、 推奨 さ れた制約を追加す る か、 推奨 さ れた各制約を オン/オフに し て リ ス ト を変更で き ます。 ただ し、 ウ ィ ザー ド の最初の方のページで推奨 さ れた制約を オ フ にす る と 、 後のページで不足 し てい る 制約が検出 さ れな く な る こ と があ り ます。 た と えば、 あ る ク ロ ッ ク の作成を オ フ にす る と 、 その ク ロ ッ ク ま たはその ク ロ ッ ク か ら 自動 生成 さ れ る ク ロ ッ ク を基準 と す る 制約は検出 さ れず、 推奨 さ れな く な り ます。 ウ ィ ザー ド の最後のページには、 作成 さ れ る 制約のサマ リ が表示 さ れます。 各ハ イ パー リ ン ク を ク リ ッ ク す る と 、 制約の詳細が表示 さ れ る か、 ウ ィ ザー ド 後に [Timing Constraints] ウ ィ ン ド ウ でその新 し い制約が表示 さ れ る よ う にな り ます。 [Finish] を ク リ ッ ク す る と き に、 次の推奨レ ポー ト が生成 さ れ る よ う に選択す る こ と も で き ます。

• [Create Timing Summary report]: check_timing レ ポー ト に加え、 新 し い制約を使用 し た タ イ ミ ン グ ス ラ ッ ク が レ ポー ト さ れます。 入力 し た周期ま たは I/O 遅延制約を満たすのが困難な場合は、 タ イ ミ ン グ違反が表示 さ れ る こ と があ り ます。

• [Create Check Timing report]: check_timing コ マ ン ド を実行 し て不足 し てい る 制約ま たは不適切な制約が特定 さ れます。

(23)

Timing Constraints ウ ィ ザー ド で、 適切に タ イ ミ ン グ解析で き ない危険な状況を発生 さ せ る 制約が推奨 さ れ る こ と は あ り ません。 ま た、 デザ イ ン を メ モ リ に読み込んだ と き に既に存在 し てい る 不適切な制約は、 ウ ィ ザー ド では修正 さ れません。 ただ し 、 Vivado Design Suite をプ ロ ジ ェ ク ト モー ド で使用し 、 不足し てい る ク ロ ッ ク をすべて作成する こ と に よ り 、 無効だっ た制約が有効にな る こ と があ り ます。 詳細は、「制約の処理順 と 無効な制約」 を参照 し て く だ さ い。 ウ ィ ザー ド の終了後に check_timing ま たは report_drc を実行し て制約の問題が レ ポー ト さ れ る場合、 ソ ース XDC フ ァ イ ルに既に存在 し ていた制約が原因であ る こ と がほ と んど なので、 ウ ィ ザー ド を使用する のではな く 、 直接問題を解決す る 必要があ り ます。

ビデオ: Vivado Timing Constraints ウ ィ ザー ド の詳細は、Vivado Design Suite QuickTake ビデオ: Vivado タ イ ミ ン グ制約 ウ ィ ザー ド の使用を参照 し て く だ さ い。

制約の処理順 と 無効な制約

Timing Constraints ウ ィ ザー ド では、 ク ロ ッ ク を定義 し た り 、 ク ロ ッ ク を参照す る 制約が推奨 さ れ、 プ ロ ジ ェ ク ト モー ド の場合は タ ーゲ ッ ト XDC フ ァ イ ルの最後に、 それ以外のモー ド の場合はすべての制約の最後に保存 さ れま す。 こ のため、 次の規則を理解 し てお く 必要があ り ます。

• プ ロ ジ ェ ク ト モー ド : Timing Constraints ウ ィ ザー ド を起動する前に、 PROCESSING_ORDER を NORMAL に設定 し た タ ーゲ ッ ト XDC フ ァ イ ルを指定する必要があ り ます。 タ ーゲ ッ ト XDC フ ァ イ ルは、 メ モ リ で開いてい る デザ イ ンの現在選択 さ れてい る 制約セ ッ ト に含まれてい る 必要があ り ます。 すべての XDC フ ァ イ ルの中で タ ー ゲ ッ ト XDC フ ァ イ ルがど こ に位置 し てい る かに よ り 、 推奨 さ れた制約がど こ で適用 さ れ、 保存 さ れ る かが決ま り ます。 ま た、 ウ ィ ザー ド はで き る だけ完全で正確な制約を推奨す る ため、 タ ーゲ ッ ト XDC フ ァ イ ルの後に解 析 さ れ る XDC フ ァ イ ルに含まれ る無効な制約を適用し 直そ う と し ます。

た と えば、 制約セ ッ ト constr_1 が選択 さ れた synth_1 run か ら のネ ッ ト リ ス ト が メ モ リ で開いてい る と し ま す。 こ の制約セ ッ ト には、 3 つの XDC フ ァ イ ルが a.xdc、 b.xdc、 c.xdc の順で含まれています。 タ ーゲ ッ ト XDC フ ァ イ ル と し て b.xdc を選択 し 、 各フ ァ イ ルに無効な制約が含ま れてい る と 、 Timing Constraints ウ ィ ザー ド は、 次の段階に進んでほかの不足 し てい る 制約を検出す る 前に、 推奨 ク ロ ッ ク を適用 し て c.xdc の無効な制 約を適用 し 直 し ます。 • 非プ ロ ジ ェ ク ト モー ド ま たはデザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) モー ド : こ れ ら のモー ド では タ ーゲ ッ ト XDC フ ァ イ ルを指定で き ないので、 Timing Constraints ウ ィ ザー ド は新し い制約を制約順の最後に推奨 し て適用 し ま す。 こ れは、 Tcl コ ン ソ ールま たは [Timing Constraints] ウ ィ ン ド ウ に新し い制約を入力する の と 同じ です。 こ れ ら のモー ド では、 ウ ィ ザー ド は無効な制約を適用 し 直そ う と は し ません。 制約の依存関係や優先度の問題を回 避す る ために新 し い制約を先に適用す る 必要があ る 場合は、 制約の順序を手動で変更す る 必要があ り ます。 制約を手動で変更す る には、 次の手順に従い ます。

a. Vivado Design Suite を使用 し て新 し い制約を作成 し ます。

b. 次のいずれか を実行 し ます。

(24)

f. 次の コ マ ン ド を実行 し て、 編集 し た タ イ ミ ン グ制約フ ァ イ ルを読み込みます。 read_xdc timing_constraints.xdc

ア ッ プデー ト さ れた タ イ ミ ン グ制約の順序は、 [Timing Constraints] ウ ィ ン ド ウ を使用し て確認で き ます。 新し い制約 を確認 し た ら 、 その順序を DCP に保存で き ます。

ウ ィ ザー ド を開いてい る と き に使用可能な レ ポー ト 機能

Timing Constraints ウ ィ ザー ド を開いてい る と き は、 デー タ ベース に競合が発生 し ない よ う にす る ため、 [Tcl Console] ウ ィ ン ド ウ の使用や タ イ ミ ン グ解析の実行な ど、 Vivado IDE でほ と ん どの操作が実行で き な く な り ます。 ウ ィ ザー ド ウ ィ ン ド ウ は、 その他の Vivado IDE ウ ィ ン ド ウ よ り も 常に手前に表示 さ れます。 Vivado IDE の メ ニ ューま たは ウ ィ ン ド ウ を使用す る 必要があ る 場合は、 ウ ィ ザー ド ウ ィ ン ド ウ を移動する必要があ り ます。

Timing Constraints ウ ィ ザー ド が開いてい る と き に使用で き る のは、 次の機能のみです。

• ク ロ ッ ク ネ ッ ト ワー ク を レ ポー ト およ び表示

ほ と ん ど の ウ ィ ザー ド のページに ク ロ ッ ク ネ ッ ト ワー ク レ ポー ト を生成 し て表示する ためのボ タ ンがあ り 、 ク ロ ッ ク ト ポ ロ ジ、 その起点、 一部の ク ロ ッ ク の共有セグ メ ン ト を表示で き ます。

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

• ソ ース フ ァ イ ルで名前を検索、 ま たは メ モ リ 内のデザ イ ンでオブジ ェ ク ト を検索

[Edit] メ ニ ュ ーか ら [Find] ま たは [Find In Files] を ク リ ッ ク し 、[Find] ま たは [Find In Files] ダ イ ア ロ グ ボ ッ ク ス を 開 き ます。 こ れ ら のダ イ ア ロ グ ボ ッ ク ス を使用する と 、 ウ ィ ザー ド で制約を入力 し なが ら 、 デザ イ ンに関する 情報を取得で き ます。

• 回路図を作成お よ び表示

Vivado IDE の メ イ ン ウ ィ ン ド ウ でデザ イ ン オブジ ェ ク ト を選択 し 、 それ ら を回路図で表示で き ます。 すべての 回路図機能を使用で き ます。 Timing Constraints ウ ィ ザー ド では、 [Asynchronous Clock Domain Crossings] ページの [Timing Paths] タ ブで 1 つま たは複数のエ ン ト リ を選択 し た場合にのみ、 回路図 ク ロ ス プ ロ ーブ機能がサポー ト

さ れます。

回路図の使用に関す る 詳細は、『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 7] を参照 し て く だ さ い。

• [Timing Constraints] ウ ィ ン ド ウ を使用 し て メ モ リ 内の制約を表示 し ます。 X-Ref Target - Figure 2-10

(25)

ウ ィ ザー ド 内での制約の編集

ウ ィ ザー ド の各ページでは、 複数の制約が推奨 さ れます。 制約に よ っ て、 次のいずれかを実行す る 必要があ り ます。

• 次のいずれかの方法で、 作成 し ない制約を オ フ に し ます。

° リ ス ト で制約を 1 つずつオフに し て削除 し ます。

° 表の左上のチ ェ ッ ク ボ ッ ク ス をオ フに し て、 すべての制約を削除 し ます。

ヒ ン ト: ま たは、図 2-11 に示す よ う に、 制約を右 ク リ ッ ク し て [Do Not Create Constraint] を ク リ ッ ク し ます。

図 2-12 では、 clk1 お よ び ddr_clk_in がオ フ にな っ てお り 、 ス キ ッ プ さ れ ます。

• [undefined] と 表示 さ れてい る セル (図 2-12 では clk2 お よ び clk3 の [Frequency] ま たは [Period]) を ク リ ッ ク し 、 値を入力 し ます。

X-Ref Target - Figure 2-11

図 2-11: コ ン テキス ト メ ニ ュ ーを使用 し た推奨制約の削除

X-Ref Target - Figure 2-12

(26)

次に、 必要な フ ィ ール ド (図 2-14 の [Frequency] お よ び [Period] な ど) を入力 し ます。 複数の制約を一度に編集す る 機能は、 入力お よ び出力遅延制約な ど を編集す る 際に特に便利です。 • 変更が不要な場合は、 単に制約を確認 し ます。 すべての推奨制約を確認 し た ら 、 [Next] を ク リ ッ ク し て次のページに進みます。 入力 し 忘れたエン ト リ があ る と 、 ウ ィ ザー ド の次のページに進め ません。 [Back] ボ タ ン を ク リ ッ ク す る と 、 前のページに戻 る こ と がで き ます。 前のページで制約を編集 し て [Next] を ク リ ッ ク す る と 、 ウ ィ ザー ド はデザ イ ン を解析 し 直 し 、 それに合わせて新 し い制約を推奨 し ます。 ほ と ん ど の場合、 前に 推奨 さ れていた制約で変更の影響を受けない も のは、 その ま ま復元 さ れます。 推奨 さ れた制約を変更せずに前の ページ を確認 し ただけの場合は、 解析は再実行 さ れないため、 無駄な ラ ン タ イ ムは発生 し ません。 重要: Timing Constraints ウ ィ ザー ド を使用し て、 既存の タ イ ミ ング制約を編集する こ と はで き ません。 代わ り に、 [Timing Constraints] ウ ィ ン ド ウ を使用す る 必要があ り ます。

X-Ref Target - Figure 2-13

図 2-13: 複数の推奨制約の編集

X-Ref Target - Figure 2-14

(27)

ウ ィ ザー ド で推奨 さ れる制約

プ ラ イ マ リ ク ロ ッ ク

ウ ィ ザー ド では、図 2-15 に示す よ う に 2 つの ク ロ ッ ク カ テ ゴ リ が特定 さ れ ます。

• セ ッ ト ア ッ プ、 ホール ド 、 リ カバ リ 、 リ ムーバル チ ェ ッ ク 用の タ イ ミ ン グ ス ラ ッ ク を算出する のに必要なプ ラ イ マ リ ク ロ ッ ク は、 [Recommended Constraints] に表示 さ れます。

• [Constraints For Pulse Width Check Only] には、 パル ス 幅チ ェ ッ ク (min_period、 max_period、 max_skew、 min_low_pulse_width、 お よ び min_high_pulse_width) を実行す る のに必要な ク ロ ッ ク のみが表示 さ れ ます。 デフ ォ ル ト では、 こ れ ら の ク ロ ッ ク はレ ポー ト 目的のみに使用 さ れ、 イ ンプ リ メ ン テーシ ョ ン ツールの X-Ref Target - Figure 2-15

(28)

[Generated Clocks] ページ

Timing Constraints ウ ィ ザー ド は、 シーケ ン シ ャ ル セルの出力がほかのシーケ ン シ ャ ル セルの ク ロ ッ ク ピ ン を直接ま たは イ ン タ ー コ ネ ク ト ロ ジ ッ ク を介 し て駆動する場合、 そのシーケ ン シ ャ ル セルの出力に生成 ク ロ ッ ク の作成を推 奨 し ます。 PLL ま たは MMCM と は異な り 、 ユーザー ロ ジ ッ ク ではマ ス タ ー ク ロ ッ ク の周波数を逓倍で き ないので、 図 2-16 に示す よ う に、 ウ ィ ザー ド には分周係数を指定す る オプシ ョ ン し かあ り ません。 複数のマ ス タ ー ク ロ ッ ク が生成 ク ロ ッ ク の起点に到達する と 、 対応する生成 ク ロ ッ ク すべてが、 固有の名前 と 個々 のマ ス タ ー ク ロ ッ ク への明確な参照を使用 し て生成 さ れます。図 2-16 は、 2 つの ク ロ ッ ク (clk3 お よ び clk4) が シーケ ン シ ャ ル セル FDIV_reg に到達する場合を示し てい ます。 こ の例では、 2 つの生成 ク ロ ッ ク 制約 (FDIV およ び FDIV_1) が推奨 さ れてい ます。 ヒ ン ト: ク ロ ッ ク パス上のカ ス ケー ド 接続さ れた レ ジ ス タ などの一部の ク ロ ッ キング ト ポ ロ ジでは、 不足し ている 生成 ク ロ ッ ク すべて を検出す る ため、 Timing Constraints ウ ィ ザー ド を複数回実行する必要があ る場合があ り ます。 X-Ref Target - Figure 2-16

(29)

[Forwarded Clocks] ページ

定数入力を持つダブル データ レー ト レ ジ ス タ に よ り 駆動 さ れ る出力ポー ト に対 し て、 生成 ク ロ ッ ク 制約が推奨 さ れ ます。 入力 さ れ る 定数の接続に基づいて、 生成 ク ロ ッ ク 位相は正 (0 度の位相シ フ ト ) ま たは反転 (180 度の位相シ フ

ト ) のいずれかに調整 さ れます。 制約で使用 さ れ る マ ス タ ー ク ロ ッ ク は、 ダブル データ レー ト レ ジ ス タ の ク ロ ッ ク ピ ンに到達す る ク ロ ッ ク です。図 2-17 の [Recommended Constraints] に示 さ れてい る [Source Clock] 列を参照 し て く だ さ い。

7 シ リ ーズ デバ イ ス フ ァ ミ リ に対 し て ウ ィ ザー ド で認識 さ れ る ト ポ ロ ジ を図 2-18 に示 し ます。 マ ス タ ー ク ロ ッ ク ま たは出力バ ッ フ ァ ーの特性に制限はあ り ません。

X-Ref Target - Figure 2-17

図 2-17: 推奨 さ れる フ ォ ワー ド ク ロ ッ ク

(30)

UltraScale デバ イ ス フ ァ ミ リ の場合、 ODDR お よ び ODDRE1 プ リ ミ テ ィ ブは、 プ ロ パテ ィ が ODDR_MODE=TRUE に設 定 さ れた OSERDESE3 に自動的に変更 さ れます。 ウ ィ ザー ド で図 2-19 の ト ポ ロ ジが認識 さ れ、 OSERDESE3/D[0] は 1 に、 OSERDESE3/D[4] は 0 (位相シ フ ト な し ) に接続 さ れます。

[External Feedback Delays] ページ

Timing Constraints ウ ィ ザー ド では、 デザ イ ン内に含ま れ る MMCM お よ び PLL セルの フ ィ ー ド バ ッ ク ループの接続 が解析 さ れます。 CLKFBIN および CLKFBOUT ピ ンが、 I/O バ ッ フ ァ ーおよ び MMCM/PLL プ ロ パテ ィ

COMPENSATION=EXTERNAL を使用 し てデザ イ ン ポー ト に接続 さ れてい る 場合は、 外部遅延制約 (最小 と 最大) が推 奨 さ れます。図 2-20 に、 推奨 さ れ る 外部遅延制約の例を示 し ます。

X-Ref Target - Figure 2-19

図 2-19: UltraScale のフ ォ ワー ド ク ロ ッ クの典型的な回路

X-Ref Target - Figure 2-20

(31)

図 2-21 に、 外部フ ィ ー ド バ ッ ク パ ス 回路の典型的な MMCM を示 し ます。

現在の Vivado Design Suite リ リ ース の Timing Constraints ウ ィ ザー ド では、 フ ォ ワー ド ク ロ ッ ク の生成に使用 さ れ る ODDR な ど、 フ ィ ー ド バ ッ ク パ ス にシーケ ン シ ャ ル セルがあ る と 、 外部遅延制約を推奨で き ません。 こ の場合、 ウ ィ ザー ド 終了後に外部遅延制約を手動で作成す る か、 [Timing Constraints] ウ ィ ン ド ウ を使用し て作成する必要があ り ます。

[Input Delays] ページ

Timing Constraints ウ ィ ザー ド では、 入力ポー ト か ら のパ ス がすべて解析 さ れ、 それ ら のパ ス のデザ イ ン内でのデス テ ィ ネーシ ョ ン ク ロ ッ ク と ア ク テ ィ ブ エ ッ ジが特定 さ れます。 こ の情報を基に、 Vivado IDE で提供 さ れ る XDC テ ンプ レー ト に基づいて基本的なシ ス テ ム同期入力遅延制約が推奨 さ れます。 テ ンプ レー ト の詳細は、52 ページの 「XDC テ ンプ レー ト 」 を参照 し て く だ さ い。 [Recommended Constraints] で制約エン ト リ を選択する と 、 選択 さ れたテ ンプ レー ト に関連付け ら れてい る 波形が ウ ィ ザー ド ウ ィ ン ド ウ下部にあ る [Waveform] タ ブに表示 さ れます。 X-Ref Target - Figure 2-21

(32)

図 2-22 に、 ウ ィ ザー ド で推奨 さ れ る 入力制約の例を示 し ます。 こ れ ら は部分的にユーザーが変更で き ます。 ボー ド の実際の イ ン タ ーフ ェ イ ス タ イ ミ ン グに対応する波形を指定する ため、 各制約に対 し て次の 3 つの特性を編 集で き ます。 • [Synchronous]: ク ロ ッ ク と デー タ の関係を指定 し ます。 ° [System] (シ ス テ ム同期 イ ン タ ーフ ェ イ ス 用): デー タ が送信 さ れて、 1 周期ま たは ½ 周期ずれた ク ロ ッ ク エ ッ ジでキ ャ プチ ャ さ れ る 場合に使用 し ます。 ° [Source] ( ソ ー ス同期 イ ン タ ーフ ェ イ ス用): デー タ が送信 さ れて、 同 じ ク ロ ッ ク エ ッ ジでキ ャ プチ ャ さ れ る 場合に使用 し ます。 • [Alignment]: ア ク テ ィ ブ ク ロ ッ ク エ ッ ジに対す る デー タ 遷移ア ラ イ メ ン ト を指定 し ます。 ° シ ス テ ム同期 イ ン タ ーフ ェ イ ス の場合のみ:

X-Ref Target - Figure 2-22

(33)

• [Data Rate and Edge]: テ ン プ レー ト で制約が設定 さ れてい る ア ク テ ィ ブ ク ロ ッ ク エ ッ ジ を指定 し ます。 ウ ィ ザー ド で推奨 さ れ る デフ ォ ル ト 値は、 キ ャ プチ ャ シーケ ン シ ャ ル セルのア ク テ ィ ブ ク ロ ッ ク エ ッ ジに基づき ます。

° [Single Rise]: 立ち上が り ク ロ ッ ク エ ッ ジでのみ FPGA の外部にデー タ が送信 さ れ る 場合に使用 し ます。

° [Single Fall]: 立ち下が り ク ロ ッ ク エ ッ ジでのみ FPGA の外部にデー タ が送信 さ れ る 場合に使用 し ます。

° [Dual]: 立ち上が り お よ び立ち下が り ク ロ ッ ク エ ッ ジの両方で FPGA の外部にデー タ が送信 さ れ る 場合に使 用 し ます。 推奨 さ れ る ク ロ ッ ク は、 通常、 入力パ ス のシーケ ン シ ャ ル セルに関連付け ら れてい る ボー ド ク ロ ッ ク です。 入力パ ス の内部 ク ロ ッ ク が MMCM/PLL 生成 ク ロ ッ ク の場合、 MMCM/PLL を駆動する ボー ド ク ロ ッ ク が入力制約の基準 ク ロ ッ ク と し て使用 さ れます。 ただ し 、 次の よ う に内部 ク ロ ッ ク 波形 と ボー ド ク ロ ッ ク 波形が異な る場合は例外です。 • 周期が異な る 場合 入力制約は、 内部 ク ロ ッ ク と 同 じ 波形の仮想 ク ロ ッ ク を基準 と す る ので、 セ ッ ト ア ッ プ解析は 1 サ イ ク ル パス 要件で実行 さ れます。 仮想 ク ロ ッ ク は自動的に作成 さ れます。 • 正の位相シ フ ト ク ロ ッ ク の場合 仮想 ク ロ ッ ク が基準 ク ロ ッ ク と し て使用 さ れます。 仮想 ク ロ ッ ク は、 ボー ド ク ロ ッ ク と 同 じ 波形を使用 し て自 動的に作成 さ れます。 ま た、 仮想 ク ロ ッ ク と 内部 ク ロ ッ ク 間のマルチサ イ ク ル パス制約 も 指定 さ れ、 デフ ォ ル ト の解析が 1 周期 + セ ッ ト ア ッ プの位相シ フ ト 分に調整 さ れます。 仮想 ク ロ ッ ク と マルチサ イ ク ル パス の制約 の組み合わせに よ り Vivado Design Suite タ イ マーで処理し やすい簡単な制約が提供 さ れ、 仮想 ク ロ ッ ク を参照す る 入力ポー ト にのみ影響 し ます。 負の位相シ フ ト の場合、 デフ ォ ル ト のセ ッ ト ア ッ プ パス要件は 1 サ イ ク ルか ら 位相シ フ ト 分を引いた周期なの で、 仮想 ク ロ ッ ク と マルチサ イ ク ル パス制約は必要あ り ません。 ウ ィ ザー ド 内では、 制約に対 し て選択 さ れた基準 ク ロ ッ ク を変更で き ません。 こ れには、 ウ ィ ザー ド 終了後に XDC フ ァ イ ルを手動で編集す る か、 [Timing Constraints] ウ ィ ン ド ウ を使用 し て編集する必要があ り ます。 適切なテ ンプ レー ト を選択 し た ら 、 ウ ィ ザー ド 右側の [Delay Parameters] パネルに遅延パ ラ メ ータ ー値を入力 し 、 [Apply] を ク リ ッ ク し て入力内容を適用 し ます。 入力遅延の式は、 遅延パ ラ メ ー タ ー フ ィ ール ド の下に表示 さ れます。図 2-23 に、 DDR シ ス テ ム同期 イ ン タ ーフ ェ イ ス テ ンプ レー ト の [Delay Parameters] パネルを示 し ます。

(34)

ク ロ ッ ク と テ ンプ レー ト が同 じ 複数の制約を選択 し て編集す る と 、 遅延パ ラ メ ー タ ーの入力時間を短縮で き ます。

制約を入力 し て適用 し た ら 、 該当す る Tcl 構文を [Tcl Command Preview] タ ブで確認 し 、 [Next] を ク リ ッ ク し て次の ページに進みます。

ヒ ン ト: Timing Constraints ウ ィ ザー ド では、 フ ォルス パス制約が設定さ れた入力ポー ト は無視さ れます。 こ れは、 通 常デザ イ ンの ど の ク ロ ッ ク と も 既知の位相関係がない非同期 リ セ ッ ト を無視す る 場合な ど に特に便利です。 フ ォ ル ス パス制約は、 ウ ィ ザー ド 外で し か作成で き ません。

X-Ref Target - Figure 2-23

(35)

[Output Delays] ページ

Timing Constraints ウ ィ ザー ド では、 入力遅延 と 同様、 すべての出力ポー ト へのパ ス が解析 さ れ、 それ ら のパ ス のデ ザ イ ン内での ソ ース ク ロ ッ ク と ア ク テ ィ ブ エ ッ ジが特定 さ れます。 テ ンプ レー ト の選択規則は、「[Input Delays] ページ」 と 同 じ です。図 2-24 に、 ウ ィ ザー ド で推奨 さ れ る 出力制約の例を示 し ます。 こ れ ら は部分的にユーザーが 変更で き ます。 ボー ド の実際の イ ン タ ーフ ェ イ ス タ イ ミ ン グに対応する波形を指定する ため、 各制約に対 し て次の 3 つの特性を編 X-Ref Target - Figure 2-24

(36)

• [Data Rate and Edge]: テ ン プ レー ト で制約が設定 さ れてい る ア ク テ ィ ブ ク ロ ッ ク エ ッ ジ を指定 し ます (詳細は 31 ページの 「[Input Delays] ページ」 を参照)。 推奨 さ れ る 入力遅延制約 と 同様、 基準 ク ロ ッ ク は通常ボー ド ク ロ ッ ク にな り ますが、 次の場合は例外です。 • ボー ド ク ロ ッ ク と 出力パス内部 ク ロ ッ ク の周期が異な る場合。 出力制約は、 内部 ク ロ ッ ク と 同 じ 波形の仮想 ク ロ ッ ク を基準 と す る ので、 セ ッ ト ア ッ プ解析は 1 サ イ ク ル パス 要件で実行 さ れます。 仮想 ク ロ ッ ク は自動的に作成 さ れます。 • ボー ド ク ロ ッ ク に対する出力パス内部 ク ロ ッ ク の位相シ フ ト が負の場合。 仮想 ク ロ ッ ク が基準 ク ロ ッ ク と し て使用 さ れます。 仮想 ク ロ ッ ク は、 ボー ド ク ロ ッ ク と 同 じ 波形を使用 し て自 動的に作成 さ れます。 ま た、 仮想 ク ロ ッ ク と 内部 ク ロ ッ ク 間のマルチサ イ ク ル パス制約 も 指定 さ れ、 デフ ォル ト の解析が 1 周期 + セ ッ ト ア ッ プの位相シ フ ト 分に調整 さ れます。 仮想 ク ロ ッ ク と マルチサ イ ク ル パス の制約 の組み合わせに よ り Vivado Design Suite タ イ マーで処理 し やすい簡単な制約が提供 さ れ、 仮想 ク ロ ッ ク を参照す る 出力ポー ト にのみ影響 し ます。 注記: 正の位相シ フ ト の場合、 デフ ォル ト のセ ッ ト ア ッ プ パス要件が 1 サ イ ク ルか ら 位相シ フ ト 量を引いた値な ので、 仮想 ク ロ ッ ク と マルチサ イ ク ル パス制約は必要あ り ません。 • 共有 ク ロ ッ ク 接続に基づ く 出力パ ス の タ イ ミ ン グ指定に フ ォ ワー ド ク ロ ッ ク が特定 さ れてい る場合。 フ ォ ワー ド ク ロ ッ ク は、 ウ ィ ザー ド の 3 段階目の [Forwarded Clocks] で作成 さ れてい る はずです。 作成 さ れな か っ た場合は、 ボー ド ク ロ ッ ク ま たは仮想 ク ロ ッ ク が出力遅延制約の基準 ク ロ ッ ク と し て使用 さ れます。 図 2-25 に、 7 シ リ ーズ フ ァ ミ リ の フ ォ ワ ー ド ク ロ ッ ク を使用 し た出力 ソ ー ス同期パ ス の基本的な例を示 し ま す。 ODDR/OSERDES イ ン ス タ ン スは、 ど ち ら も 同じ ク ロ ッ ク ネ ッ ト に接続 さ れます (青のハ イ ラ イ ト 部分)。 ck_vsf_clk_2 生成 ク ロ ッ ク は、 既に vsf_clk_2 出力ポー ト に定義 さ れてい ます。

X-Ref Target - Figure 2-25

(37)

図 2-26 に、 ウ ィ ザー ド の該当す る 制約を示 し ます。

適切なテ ンプ レー ト を選択 し た ら 、 遅延パ ラ メ ー タ ー値を入力す る 必要があ り ます。 ク ロ ッ ク と テ ンプ レー ト が同 じ 複数の制約を選択 し て編集す る と 、 遅延パ ラ メ ー タ ーの入力時間を短縮で き ます。 制約を入力 し て適用 し た ら 、 該当す る Tcl 構文を [Tcl Command Preview] タ ブで確認 し 、 [Next] を ク リ ッ ク し て次のページに進みます。

ヒ ン ト: Timing Constraints ウ ィ ザー ド では、 フ ォルス パス制約が設定された出力ポー ト は無視されます。 フ ォルス パ ス制約は、 ウ ィ ザー ド 外で し か作成で き ません。

[Combinatorial Delays] ページ

パ ス の中には、 デバ イ ス内でシーケ ン シ ャ ル セルに よ り 取 り 込まれず、 入力ポー ト か ら 出力ポー ト に直接伝搬 さ れ る も のがあ り ます。 入力ポー ト が出力ポー ト と シーケ ン シ ャ ル セルの両方に接続 さ れてい る場合、 Timing

Constraints ウ ィ ザー ド では、 入力ポー ト には [Input Delay] ページで制約が設定 さ れてい る はずなので、 入力/出力 ポー ト ペア間に組み合わせ制約は推奨 さ れません。 組み合わせパス に対 し ては、図 2-27 に示す よ う に、 デザ イ ン ポー ト の入力遅延お よ び出力遅延 と 共に仮想 ク ロ ッ ク を定義す る よ う に推奨 さ れます。

X-Ref Target - Figure 2-26

(38)

最終的な組み合わせパ ス遅延制約は、 次の よ う にな り ます。

• セ ッ ト ア ッ プ解析:

仮想 ク ロ ッ ク の周期 - 最大入力遅延 - 最大出力遅延 • ホール ド 解析:

0 - 最小出力遅延 - 最小入力遅延 X-Ref Target - Figure 2-27

(39)

仮想 ク ロ ッ ク の周期は、 制約が設定 さ れたすべての組み合わせパ ス の中で最大の組み合わせ遅延制約 よ り 大 き く な る よ う に変更す る 必要があ り ます。図 2-28 は、 入力/出力ポー ト ペア ご と に必要な遅延入力を示 し てい ます。 入力お よ び出力遅延制約が既存の も の よ り 優先 さ れ る こ と はあ り ません。 同 じ ク ロ ッ ク に対 し て遅延制約が複数設 定 さ れてい る ポー ト があ る 場合、 その中の最小値が Vivado タ イ ミ ン グ解析のホール ド 解析に使用 さ れ、 最大値が セ ッ ト ア ッ プ解析に使用 さ れます。 すべての遅延を入力 し た ら 、 [Next] を ク リ ッ ク し て次のページに進みます。

ヒ ン ト: Timing Constraints ウ ィ ザー ド を使用せずに、 set_max_delay および set_min_delay コ マン ド を使用し て、 組み合わせパ ス に制約を設定す る こ と も で き ます。

X-Ref Target - Figure 2-28

(40)

[Physically Exclusive Clock Groups] ページ

物理的に排他的な ク ロ ッ ク は、 同 じ 起点で定義 さ れ、 同 じ ク ロ ッ ク ツ リ ーで伝搬 さ れ る ク ロ ッ ク です。図 2-29 に、 同 じ 入力ポー ト で定義 さ れてい る 2 つのプ ラ イ マ リ ク ロ ッ ク の例を示し ます。 こ の よ う なオーバー ラ ッ プは、 1 つのデザ イ ン と 制約データ ベース を使用 し て複数のアプ リ ケーシ ョ ン モー ド の タ イ ミ ン グ解析を実行す る には便利ですが、 こ れ ら の ク ロ ッ ク と その派生 ク ロ ッ ク 間で タ イ ミ ン グ解析を実行す る べ き ではあ り ません。 Timing Constraints ウ ィ ザー ド では、 ク ロ ッ ク 乗せ換えパス で不要な タ イ ミ ン グ解析が実行 さ れ ない よ う にす る ため、図 2-30 に示す よ う に、 こ の よ う な ク ロ ッ ク が特定 さ れ、 ク ロ ッ ク グループ制約が推奨 さ れ ま す。

X-Ref Target - Figure 2-29

図 2-29: 物理的に排他的な ク ロ ッ ク を含むデザイ ン例

(41)

[Logically Exclusive Clock Groups with No Interaction]

論理的に排他的な ク ロ ッ ク は異な る 起点に定義 さ れ る ク ロ ッ ク ですが、 マルチプ レ ク サーま たはその他の組み合わ せ ロ ジ ッ ク のため、 ク ロ ッ ク ツ リ ーの一部が共有 さ れます。 Timing Constraints では こ の よ う な ク ロ ッ ク が特定 さ れ、 それ ら の ク ロ ッ ク 間に共有 ク ロ ッ ク ツ リ ーに接続 さ れてい る ロ ジ ッ ク を除いて タ イ ミ ン グ パス がない場合は、 直接 ク ロ ッ ク グループ制約を設定する こ と が推奨 さ れます。図 2-31 に、 clkA と clkB の 2 つの ク ロ ッ ク の例を示 し ま す。 入力ポー ト はそれぞれ別ですが、 BUFGMUX の出力か ら オーバー ラ ッ プ し ています。

[Logically Exclusive Clock Groups with Interaction] ページ

Timing Constraints ウ ィ ザー ド では、 共有 ク ロ ッ ク ツ リ ーに接続 さ れてい る ロ ジ ッ ク 以外に ク ロ ッ ク 間に タ イ ミ ン グ パ ス があ る 論理的に排他的な ク ロ ッ ク が特定 さ れます。図 2-32 の clkA と clkB には、 ク ロ ッ ク ツ リ ーに共有部分 があ り 、 共有 ク ロ ッ ク ツ リ ーか ら clkA のみへの タ イ ミ ン グ パス も あ り ます。

X-Ref Target - Figure 2-31

図 2-31: 論理的に排他的な ク ロ ッ ク グループ (ク ロ ッ ク関連性な し ) の例

図  2-4: IP  ソ ースの  XDC  フ ァ イル
図  2-6: IP  ソ ースの  XDC  フ ァ イル
図  2-15: 推奨 さ れる プ ラ イ マ リ ク ロ ッ ク
図  2-16: Timing Constraints  ウ ィ ザー ド の  [Generated Clocks]  ページ
+7

参照

関連したドキュメント

テストが成功しなかった場合、ダイアログボックスが表示され、 Alienware Command Center の推奨設定を確認するように求め

(a) 主催者は、以下を行う、または試みるすべての個人を失格とし、その参加を禁じる権利を留保しま す。(i)

メモ  : 権利の詳細な管理は、 BlackBerry WorkspacesEnterprise ES モード BlackBerry Workspaces およ. び Enterprise ES ( 制限付きフルアクセス )

締約国Aの原産品を材料として使用し、締約国Bで生産された産品は、締約国Bの

① 新株予約権行使時にお いて、当社または当社 子会社の取締役または 従業員その他これに準 ずる地位にあることを

雇用契約としての扱い等の検討が行われている︒しかしながらこれらの尽力によっても︑婚姻制度上の難点や人格的

基準の電力は,原則として次のいずれかを基準として決定するも

これら諸々の構造的制約というフィルターを通して析出された行為を分析対象とする点で︑構