バス スキュー制約は、複数の非同期 CDC パス間の最大スキュー要件を設定するために使用します。バス スキューは、タイミング パスに関連付けられている従来のクロック スキューとは異なり、同じ set_bus_skew
制約が適用されているすべてのパス間におけるキャプチャ時間の最大差に対応します。バス スキュー要件はファースト コーナーおよびスロー コーナーの両方に適用されますが、コーナーを超えては解析されません。
バス スキュー制約の目的は、データを送信可能で、1 つのデスティネーション クロック エッジで受信可能なソース クロック エッジの数を制限することです。許容誤差は、制約が設定されるパスに使用されている CDC 同期機構によって異なります。通常、バス スキュー制約は次の CDC トポロジに使用されます。
- 非同期 FIFO などで使用されるグレイ コード バス転送
- CE、MUX、または MUX Hold 回路でインプリメントされる複数ビット CDC
- コンフィギュレーション レジスタ
set_bus_skew
コマンドを使用すると、安全にタイミング解析可能な同期 CDC にもバス スキュー制約を設定できてしまいますが、このような制約は必要ありません。セットアップおよびホールド チェックで、安全にタイミング解析可能な 2 つの同期 CDC パス間で安全にデータが転送されるよう確認されます。
バス スキュー制約を使用する CDC は、次のとおりです。
-
set_clock_groups
が適用されている非同期 CDC -
set_false_path
またはset_max_delay -datapath_only
、あるいはその両方が全体に適用されている非同期 CDC -
set_false_path
またはset_max_delay -datapath_only
、あるいはその両方が適用されている同期 CDC パス
バス スキュー制約は、タイミング例外ではなくタイミング アサーションなので、タイミング例外 (set_clock_group
、set_false_path
、set_max_delay
、set_max_delay -datapath_only
、および set_multicycle_path
) およびそれより優先される制約には影響しません。
バス スキュー制約は、route_design
コマンドでのみ最適化されます。set_bus_skew
制約をレポートするには、コマンド ラインから report_bus_skew
または GUI から を使用します。バス スキュー制約は、タイミング サマリ レポート (report_timing_summary) ではレポートされません。