マルチビット・クロック・ドメインの交差にタイミング制約を適用することが不可欠です。このバスにset_false_path制約がある場合、バス全体のスキューが 1 クロック期間以上になる可能性があり、機能的エラーを引き起こす可能性があります。
1 つ目の要件は、2 つのクロックドメイン間にset_false_path制約がないことを意味します。セットアップと保留のためにそれらの間のパスを分析したくない場合は、優先順位の低いset_clock_groupsを使用できます。
次に 、set_net_delay を使用してパスを制限して、できるだけ短くし 、set_max_skew.Set_max_skewはフィッターを制約しませんが、タイミング・アナライザーでこの制約に対して分析することができます。
クロックドメインclk_aのdata_aとクロックドメインclk_bのdata_b間を交差するクロックドメインの制約は、次のようになります。
create_clock -name clk_a -period 4.000 [get_ports {clk_a}]
create_clock -name clk_b -period 4.500 [get_ports {clk_b}]
set_clock_groups -asynchronous -group [get_clocks {clk_a}] -group [get_clocks {clk_b}]
set_net_delay -from [get_registers {data_a[*]}] - [get_registers {data_b[*]}] -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
set_max_skew -from [get_keepers {data_a[*]}] - [get_keepers {data_b[*]}] -get_skew_value_from_clock_period min_clock_period -skew_value_multiplier 0.8
実際のスキュー要件は、デザインとクロックドメインの交差をどのように処理したかによって異なります。
最後に、タイミング・アナライザーで Report Max Skew Summary および Report Net Delay Summary を実行して、クロックドメインが交差するタイミングを確認します。