この例では、次が想定されます。
- セットアップの乗数 3 がソース クロックに対して定義されます (-start)。
- ホールドの乗数 1 が定義されます。
例:
set_multicycle_path 3 -setup -start -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path 2 -hold -from [get_clocks CLK1] -to [get_clocks CLK2]
ソース クロック (-start
) に対してセットアップの乗数を設定すると、セットアップ チェックに使用されるソース クロックのエッジが 2 (3 - 1) サイクル前に移動します。ただし、ホールドの乗数はソース クロックに対して設定されるので (デフォルトの -start
オプションと -hold
を使用)、ホールド関係に使用されるソース クロックのエッジは 2 サイクル先に移動します。
セットアップ チェックおよびホールド チェックの両方で、デスティネーション クロックのエッジは変更されません。次の図を参照してください。
図 1. セットアップの乗数を 3 (-start)、ホールドの乗数を 2 に設定
重要: 高速クロックから低速クロックへのクロック乗せ換えでは、セットアップの乗数をソース クロック (-start) に対して N に設定し、ホールドの乗数を N-1 に設定します (最も一般的なケース)。次に例を示します。
set_multicycle_path N -setup -start -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path N-1 -hold -from [get_clocks CLK1] -to [get_clocks CLK2]
次の表に、前の結果を示します。
状況 | マルチサイクル パス制約 |
---|---|
同じクロック ドメインまたは同じ周期で位相シフトのない同期クロック ドメイン間 |
|
同期した低速クロック ドメインから高速クロック ドメイン |
|
同期した高速クロック ドメインから低速クロック ドメイン |
|
注記: コマンドをシンプルにするため、前の表では
get_clocks
コマンドは省略されています。