CDC 制約を記述する場合は、優先度を考慮する必要があります。set_max_delay -datapath_only
を 2 つのクロック間の少なくとも 1 つのパスに使用すると、同じクロック間に set_clock_groups
制約は使用できず、2 つのクロック間のほかのパスに使用できるのは set_false_path
制約のみです。
次の図では、clk0
クロックの周期は 5 ns で、clk1
とは非同期です。clk0
ドメインから clk1
ドメインまでには、2 つのパスがあります。最初のパスは 1 ビット データ同期で、2 つ目のパスは複数ビットのグレイ コードのバス転送です。
図 1. 2 つの非同期クロック間の複数の関連性
グレイ コードのバス転送でビット内の遅延パターンを制限するために set_max_delay -datapath_only 制約が必要かどうかは設計者が判断するので、クロック間に直接クロック グループまたはフォルス パス制約を使用することはできません。代わりに、2 つの制約を定義する必要があります。
set_max_delay -from [get_cells GCB0[*]] -to [get_cells [GCB1a[*]] \
-datapath_only 5
set_false_path -from [get_cells REG0] -to [get_cells REG1a]
この例にはパスがないので、clk1
から clk0
までのフォルス パスを設定する必要はありません。