非同期信号の制約 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: 制約の使用 (UG903)

Document ID
UG903
Release Date
2022-06-01
Version
2022.1 日本語

set_max_delay コマンドは、クロック関係がないが、最大遅延が必要な非同期信号を制約するためにも使用できます。

たとえば、2 つの非同期クロック ドメインの間のタイミング パスは、set_clock_groups コマンド (推奨)、または set_false_path コマンド (推奨されない) を使用して、ディスエーブルにできます。これは、クロック ドメイン間がダブル レジスタ シンクロナイザーや FIFO などを使用して適切に設計されていることを想定しています。ただし、2 つのクロック ドメイン間のパス遅延が不必要に大きくないことを確認する必要があります。

複数ビットの CDC の場合、ビット間のスキューが特定の要件内に収まるようにする必要があることがあります。スキューはバス スキュー制約 (set_bus_skew) で設定することはできますが、2 つのクロック ドメイン間のパス遅延が不必要に大きくないことを確認する必要があります。これには、関連するパスのソースの XDC ファイル内で set_false_path または set_clock_groups 制約を set_max_delay –datapath_only に置換します。CDC パスの制約の詳細は、CDC の制約を参照してください。

注記: パスには最大遅延でタイミング制約が付くので、フォルス パス制約と最大遅延制約でランタイムが異なるようになります。

2 つのクロック ドメイン間のいくつかのパス、またはすべてのパスに対し、最大遅延を設定する必要がある場合は、set_max_delay -datapath_only コマンドを使用してください。この場合、set_clock_groups よりも set_max_delay が優先されるため、2 つのクロック ドメインを非同期として定義するのに set_clock_groups は使用できません。ほかのクロック乗せ換えパスを set_false_pathset_max_delay 制約を組み合わせて制約する必要があります。

次に例を示します。

set_max_delay <delay> -datapath_only -from <startpoints_source_clock_domain> \
-to <endpoints_destination_clock_domain>