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

;

図5-6 に、 両方のマルチサ イ ク ルパ ス制約を適用 し た後のセ ッ ト ア ッ プ関係 と ホール ド 関係を示 し ます。

こ の例を ま と め る と 、data0_reg/C と data1_reg/D の間の 2 のマルチサ イ ク ル パ ス を適切に定義す る には、 次 の制約が必要です。

set_multicycle_path 2 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

set_multicycle_path 1 -hold -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

セ ッ ト ア ッ プの乗数が 4 のマルチサ イ ク ル パ ス では、 制約は次の よ う にな り ます。

set_multicycle_path 4 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

set_multicycle_path 3 -hold -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

X-Ref Target - Figure 5-6

図 5-6:マルチサイ ク ルパス: セ ッ ト ア ッ プ と ホール ド の両方を緩和

X-Ref Target - Figure 5-7

Source clock

Destination clock

Clock Enable

0ns 2ns 4ns 6ns 8ns 10ns 12ns

launch edge

capture edge Hold

Hold Setup

;

Source clock

Destination clock

Clock Enable

launch edge

capture edge Hold

Hold Setup

セ ッ ト ア ッ プの移動

次に、 セ ッ ト ア ッ プ を移動 し た例を示 し ます。

• 「例 1: セ ッ ト ア ッ プの乗数を 5 に設定 し 、 ホール ド を それに応 じ て移動」

• 「例 2: セ ッ ト ア ッ プの乗数を 5、 ホール ド の乗数を 4 に設定」

例 1: セ ッ ト ア ッ プの乗数を 5 に設定 し 、 ホール ド を それに応 じ て移動

セ ッ ト ア ッ プパス の乗数を 5 に設定す る と し ます。 ホール ドパ ス の乗数は指定 さ れていないので、 ホール ド 関係は セ ッ ト ア ッ プの ソ ース エ ッ ジお よ びデス テ ィ ネーシ ョ ン エ ッ ジか ら 算出 さ れます。

set_multicycle_path 5 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

デフ ォ ル ト では、 セ ッ ト ア ッ プ パス の乗数はデス テ ィ ネーシ ョ ン ク ロ ッ ク に対 し て定義 さ れ る ので、 デス テ ィ ネー シ ョ ン ク ロ ッ ク のエ ッ ジが先に移動 し ます。 セ ッ ト ア ッ プのデス テ ィ ネーシ ョ ン エ ッ ジは、5 ク ロ ッ ク 周期後にな り ます。 ホール ド の乗数は指定 さ れていないので、 ホール ド チ ェ ッ ク のデス テ ィ ネーシ ョ ン ク ロ ッ ク のエ ッ ジは、

セ ッ ト ア ッ プ チ ェ ッ ク に使用 さ れ る ア ク テ ィ ブ エ ッ ジの 1 サ イ ク ル前に到着す る エ ッ ジの ま ま にな り ます。

セ ッ ト ア ッ プ関係お よ びホール ド 関係の両方に対 し 、 ソ ース ク ロ ッ ク のエ ッ ジは変更 さ れません。

4 サ イ ク ルのホール ド 要件では、 タ イ ミ ン グ ド リ ブンの イ ンプ リ メ ン テーシ ョ ンツールで通常、 ス ロ ーお よ び フ ァ ース ト の両方の タ イ ミ ン グ コ ーナーでホール ド タ イ ミ ン グ を満たすため、 デー タ パ ス に大 き な遅延を挿入す る 必要があ り ます。 こ れに よ り 、 不要なエ リ アお よ び消費電力が発生 し ます。 そのため、 可能な場合はホール ド 要件 を緩和す る こ と が重要です。

こ のサンプル デザ イ ンでは、 ク ロ ッ ク イ ネーブル信号があ る ので、data0_reg でデー タ を 4 サ イ ク ル間保持 し な く て も メ タ ス テーブル状態にな る こ と はあ り ません。「例 2: セ ッ ト ア ッ プの乗数を 5、 ホール ド の乗数を 4 に設定」

では、 ホール ド 要件の緩和方法を説明 し ます。

X-Ref Target - Figure 5-8

図 5-8:セ ッ ト ア ッ プの乗数を 5 に設定 し 、 ホール ド を それに応 じ て移動 launch edge

capture edge Setup

Hold

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns 18ns 20ns 22ns 24ns Clock Enable

;

Destination clock (CLK2) Source clock

(CLK1)

例 2: セ ッ ト ア ッ プの乗数を 5 、 ホール ド の乗数を 4 に設定

こ の例では、 次の よ う に定義 さ れてい ます。

• セ ッ ト ア ッ プの乗数を 5

• ホール ド の乗数を 4 (5 - 1)

こ れは、2 つのシーケ ン シ ャ ルセル間で新 し いデー タ が 5 サ イ ク ルご と に送信お よ び受信 さ れ る と い う こ と です。

set_multicycle_path 5 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

set_multicycle_path 4 -hold -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

デフ ォ ル ト では、 セ ッ ト ア ッ プの乗数はデス テ ィ ネーシ ョ ン ク ロ ッ ク に適用 さ れ、 こ の例ではデス テ ィ ネーシ ョ ン エ ッ ジが 5 サ イ ク ル先に移動 し ます。 ホール ドチ ェ ッ ク は、 デフ ォ ル ト ではセ ッ ト ア ッ プチ ェ ッ ク に応 じ て変更 さ れます。

2 つ目の コ マ ン ド では、 ホール ド の乗数は ソ ース ク ロ ッ ク に適用 さ れ、 こ の例では ソ ース エ ッ ジが 4 サ イ ク ル先に

移動 し ます。

ソ ース ク ロ ッ ク お よ びデス テ ィ ネーシ ョ ン ク ロ ッ ク の両方の波形が同 じ で、 位相 も 一致 し てい る ので、図5-9 は 図5-10 と 同 じ にな り ます。

X-Ref Target - Figure 5-9

図 5-9:セ ッ ト ア ッ プの乗数を 5、 ホール ド の乗数を 4 に設定

X-Ref Target - Figure 5-10

launch edge

capture edge Setup

Hold

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns 18ns 20ns 22ns 24ns Clock Enable

Destination clock (CLK2) Source clock

(CLK1)

マルチサイ クル パスおよび ク ロ ッ ク位相シ フ ト

ク ロ ッ ク 周期が同 じ で位相シ フ ト のあ る 2 つの ク ロ ッ ク ド メ イ ン間で、 タ イ ミ ン グ制約を定義す る 必要があ る 場合 があ り ます。 その場合、 タ イ ミ ン グエン ジ ンで使用 さ れ る デフ ォ ル ト のセ ッ ト ア ッ プ関係お よ びホール ド 関係を理 解 し てお く こ と が重要です。 注意深 く 調整 し ない と 、2 つの ク ロ ッ ク 間の位相シ フ ト に よ り 、 こ れ ら の ク ロ ッ ク ド

メ イ ン間の ロ ジ ッ ク が過剰に制約 さ れ る 可能性があ り ます。

次の よ う な 2 つの ク ロ ッ ク があ る と し ます。

• 2 つの ク ロ ッ ク CLK1 と CLK2 の波形は同 じ 。

• CLK2 は +0.3 ns シ フ ト さ れてい る 。

タ イ ミ ン グ エン ジ ンでは、 セ ッ ト ア ッ プ関係を算出す る ため、 両方の波形のすべてのエ ッ ジが検出 さ れ、 最 も 厳 し い制約 と な る ソ ース ク ロ ッ ク と デス テ ィ ネーシ ョ ン ク ロ ッ ク の 2 つのエ ッ ジが選択 さ れます。

ク ロ ッ ク の位相シ フ ト のため、 タ イ ミ ン グエン ジ ンで使用 さ れ る セ ッ ト ア ッ プ関係 と ホール ド 関係が予測 と 異な る 場合があ り ます。図5-12 を参照 し て く だ さ い。

こ の例では、 位相シ フ ト のためセ ッ ト ア ッ プ制約は 0.3 ns にな り ます。 こ れでは、 タ イ ミ ン グ ク ロ ージ ャ を達成す る こ と はほぼ不可能です。 一方、 ホール ド チ ェ ッ ク は -3.7 ns であ り 、 こ れはゆ る すぎ ます。

意図どお り の動作を得 る ため、 セ ッ ト ア ッ プエ ッ ジ と ホール ドエ ッ ジ を調整す る 必要があ り ます。 こ れには、 セ ッ ト ア ッ プの乗数を 2 に設定す る マルチサ イ ク ル パ ス制約を追加 し ます。

X-Ref Target - Figure 5-11

図 5-11:マルチサイ ク ルパスおよび ク ロ ッ ク 位相シ フ ト

X-Ref Target - Figure 5-12

図 5-12:位相シ フ ト ク ロ ッ ク でマルチサイ ク ルパス制約を設定 し ない場合の例

DATAPATH Q

REGISTER Q

REGISTER

CLK1 CLK2

;

launch edge

capture edge Setup Hold

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns -2ns

-4ns -6ns -8ns

;

Destination clock (CLK2) Source clock

(CLK1)

2 つの ク ロ ッ ク ド メ イ ン間の位相シ フ ト が負の場合 (図5-14)、 セ ッ ト ア ッ プチ ェ ッ ク お よ びホール ド チ ェ ッ ク に使 用 さ れ る ソ ース エ ッ ジ と デス テ ィ ネーシ ョ ン エ ッ ジは、1 つの ク ロ ッ ク ド メ イ ン で位相シ フ ト のない場合 と 似てい ます。

負の位相シ フ ト では、 位相シ フ ト の影響を相殺す る ためマルチサ イ ク ル パス制約を設定す る 必要は通常あ り ません が、 位相シ フ ト が大 き い場合は、 セ ッ ト ア ッ プお よ びホール ド 要件を現実的な も のにす る ために ク ロ ッ ク の ソ ース エ ッ ジ ま たはデス テ ィ ネーシ ョ ン エ ッ ジ を調整す る 必要があ る 場合 も あ り ます。

低速 ク ロ ッ クか ら高速 ク ロ ッ クのマルチサイ クル

ソ ース ク ロ ッ ク CLK1 が低速で、 デス テ ィ ネーシ ョ ン ク ロ ッ ク CLK2 が高速であ る 場合を考え ます。図5-15 を参照 し て く だ さ い。

X-Ref Target - Figure 5-13

図 5-13:正の位相シ フ ト の例: セ ッ ト ア ッ プの乗数を 2 (-end) に設定 し 、 ホール ド を それに応 じ て移動

X-Ref Target - Figure 5-14

図 5-14:負の位相シ フ ト の例

X-Ref Target - Figure 5-15

launch edge

capture edge Setup Hold

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns -2ns

-4ns -6ns -8ns

;

Destination clock (CLK2) Source clock

(CLK1)

launch edge

capture edge Setup Hold

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns -2ns

-4ns -6ns -8ns

;

Destination clock (CLK2) Source clock

(CLK1)

DATAPATH Q

REGISTER Q

REGISTER CLK1

(SLOW)

CLK2 (FAST) N Cycles

次の よ う な 2 つの ク ロ ッ ク があ る と し ます。

• CLK2 の周波数は CLK1 の周波数の 3 倍

• 受信レ ジ ス タ に ク ロ ッ ク イ ネーブル信号があ り 、2 つの ク ロ ッ ク の間にマルチサ イ ク ルパス制約を設定可能。

図5-16 を参照 し て く だ さ い。

図5-17 に、 マルチサ イ ク ルが設定 さ れていない場合に STA ツールで使用 さ れ る セ ッ ト ア ッ プ関係 と ホール ド 関係を 示 し ます。

例 1: セ ッ ト ア ッ プの乗数を 3 に設定 し 、 ホール ド を それに応 じ て移動

次の よ う なセ ッ ト ア ッ プの乗数が 3 のマルチサ イ ク ル パ ス制約を定義す る と し ます。

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]

セ ッ ト ア ッ プに対 し てマルチサ イ ク ル パス制約を設定す る と 、 セ ッ ト ア ッ プ チ ェ ッ ク に使用 さ れ る デス テ ィ ネー シ ョ ン ク ロ ッ ク のエ ッ ジが 2 (3 - 1) サ イ ク ル先に移動 し ます。 ホール ド パス の乗数は指定 さ れていないので、 ホー ル ド 関係はセ ッ ト ア ッ プの ソ ース エ ッ ジお よ びデス テ ィ ネーシ ョ ン エ ッ ジか ら 導出 さ れます。 ソ ース ク ロ ッ ク のア

ク テ ィ ブ エ ッ ジはマルチサ イ ク ル パ ス制約に よ り 変更 さ れません。

X-Ref Target - Figure 5-16

図 5-16:低速 ク ロ ッ ク から 高速ク ロ ッ ク のマルチサイ ク ル

X-Ref Target - Figure 5-17

図 5-17:デ フ ォル ト のセ ッ ト ア ッ プおよびホール ド 関係

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns 18ns 20ns 22ns 24ns

;

Destination clock (CLK2) Source clock

(CLK1)

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns 18ns 20ns 22ns 24ns launch edge

capture edge Setup Hold

;

Destination clock (CLK2) Source clock

(CLK1)

図5-18 に、 マルチサ イ ク ルが設定 さ れた後のセ ッ ト ア ッ プ関係 と ホール ド 関係を示 し ます。

こ のパ ス が機能す る ためには、 送信レ ジ ス タ にデー タ を CLK2 の 1 サ イ ク ル間保持す る 必要はあ り ません。 その よ う にす る と 不要な ロ ジ ッ ク を追加す る こ と にな り 、 エ リ アお よ び消費電力が増加 し ます。

受信レ ジ ス タ には ク ロ ッ ク ネーブル信号があ る ので、 メ タ ス テーブル状態にな る こ と な く ホール ド 要件を緩和で き ます。

例 2: セ ッ ト ア ッ プの乗数を 3 、 ホール ド の乗数を 2 (-end) に設定

前の例でホール ド 要件を緩和す る には、 ホール ド 関係のデス テ ィ ネーシ ョ ン ク ロ ッ クエ ッ ジ を 2 ク ロ ッ クサ イ ク ル 前に移動す る 必要があ り ます。 こ れには、set_multicycle_path -hold コ マ ン ド を -end オプシ ョ ン を指定 し て使用 し ます。

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]

set_multicycle_path 2 -hold -end -from [get_clocks CLK1] -to [get_clocks CLK2]

ヒ ン ト:set_multicycle_path -hold コ マ ン ド で -end オプシ ョ ン を指定 し ない場合、 ソ ース ク ロ ッ クエ ッ ジが 先に移動 し ます。 こ れでは意図 し た ホール ド 要件が得 ら れません。

「例 1: セ ッ ト ア ッ プの乗数を 3 に設定 し 、 ホール ド を それに応 じ て移動」 にあ る よ う に、 セ ッ ト ア ッ プの乗数は、

セ ッ ト ア ッ プチ ェ ッ ク に使用 さ れ る デス テ ィ ネーシ ョ ン ク ロ ッ ク のエ ッ ジ を 2 (3 - 1) サ イ ク ル先に移動 し ます。

X-Ref Target - Figure 5-18

図 5-18:セ ッ ト ア ッ プの乗数を 3 に し 、 ホール ド を それに応 じ て移動 Destination

clock (CLK2) Source clock

(CLK1)

0ns 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns 18ns 20ns 22ns 24ns launch edge

capture edge Setup

Hold

Source clock (CLK2)

;

ドキュメント内 Vivado Design Suite ユーザー ガイド: 制約の使用 (ページ 102-136)

関連したドキュメント