基本的なオプションを使用した set_multicycle_path コマンドの構文は、次のとおりです。
set_multicycle_path <path_multiplier> [-setup|-hold] [-start|-end]
[-from <startpoints>] [-to <endpoints>] [-through <pins|cells|nets>]
<path_multiplier>
は必ず指定する必要があります。デフォルト値は次のとおりです。
- セットアップ (またはリカバリ) 解析では 1
- ホールド (またはリムーバル) 解析では 0
ホールド関係は、セットアップ関係と直接関連しています。最も一般的なケースのホールド サイクル数は、次の式を使用して計算します。
ホールド サイクル = <セットアップ パスの乗数> - 1 - <ホールド パスの乗数>
- デフォルトでは、セットアップ パスの乗数はデスティネーション クロックに対して定義されます。セットアップ要件をソース クロックに対して変更するには、
-start
オプションを使用します。 - 同様に、ホールド パスの乗数はソース クロックに対して定義されます。ホールド要件をデスティネーション クロックに対して変更するには、
-end
オプションを使用します。
重要: 各セットアップ関係に対し、2 つのホールド関係があります。(1) 1 つ目のホールド関係は、アクティブなデスティネーション エッジの前に到着するエッジでセットアップ ソース エッジがキャプチャされないようにします。(2) もう 1 つのホールド関係は、アクティブなソース エッジの後のエッジが、アクティブなデスティネーション エッジでキャプチャされないようにします。タイミング解析ツールでは両方のホールド関係が算出されますが、解析およびレポートでは厳しい方のホールド関係のみが使用されます。次の図を参照してください。
図 1. パスのセットアップ関係およびホールド関係の例
重要: 同じクロックまたは同一の 2 つのクロック (位相シフトがあるなしにかかわらず同じ波形) が供給されるパスにマルチサイクル パス制約を適用する場合、
-start
または -end
オプションを指定しても効果はありません。次の表に、-start
および -end
オプションがアクティブなソース エッジとデスティネーション エッジに与える影響を示します。
ソース クロック (-start) によるソース エッジの移動 | デスティネーション クロック (-end) によるデスティネーション エッジの移動 | |
---|---|---|
セットアップ | <---- (前) | ----> (先) (デフォルト) |
ホールド | ----> (先) (デフォルト) | <---- (前) |
重要:
-setup
コマンドの set_multicycle_path
オプションは、セットアップ関係を変更するだけでなく、ホールド関係にも影響します。ホールド関係は、セットアップ関係と直接関連しています。ホールド関係を元の位置に戻すには、別の set_multicycle_path
制約を -hold
を使用して指定する必要があります。注記: マルチサイクル制約は、1 つのパス、複数のパス、または 2 つのクロック間に設定できます。
次のセクションでは、マルチサイクル パスを使用する一般的な状況と、セットアップおよびホールドの乗数と -start
および -end
オプションのタイミング パス要件への影響を示します。