この例では、次のように定義されています。
- セットアップの乗数を 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 番目のサイクルに移動します。
図 1. セットアップの乗数を 5、ホールドの乗数を 4 に設定
ソース クロックおよびデスティネーション クロックの両方の波形が同じで、位相も一致しているので、図 1 は図 2 と同じになります。
図 2. セットアップの乗数を 5、ホールドの乗数を 4 に設定
重要: 通常、同じクロック ドメイン内または同じ波形を持つ 2 つのクロック間では、次に示すように、セットアップの乗数が N の場合、ホールドの乗数は N-1 (最も一般的なケース) に定義します。
set_multicycle_path N -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]
set_multicycle_path N-1 -hold -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]