パス分割 - 2023.2 日本語

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

Document ID
UG903
Release Date
2023-11-01
Version
2023.2 日本語

set_max_delay および set_min_delay コマンドでは、ほかの XDC 制約とは異なり、-from および -to オプションを使用する場合に、それぞれに無効の始点および終点のリストを使用できます。

無効な始点を指定した場合、そのノードが有効な始点となるようにするため、タイミングはそのノードを介して伝搬されなくなります。

次の例では、有効な始点は FD1/C のみです。

set_max_delay 5 -from [get_pins FD1/C]
図 1. 元のタイミング アーク

FD1/Q に制約が適用されると、Q ピンを有効な始点にするため、タイミングはアーク C->Q を介して伝搬されなくなります。

set_max_delay 5 -from [get_pins FD1/Q]
図 2. パス分割後タイミングは伝搬されない

有効な始点を作成するためにタイミングの伝搬を停止するプロセスは、パス分割と呼ばれます。パス分割は、最大および最小遅延解析の両方に影響します。パス分割は、それらのノード (FD1/C および FD1/Q) を介するタイミング制約にも影響します。

注記: パス分割により、FD1/Q からのパスのソース クロックにクロック挿入遅延は使用されません。そのため、終点のクロック スキューは考慮されるので、スキューが大きくなる可能性があります。次の図を参照してください。
図 3. パス分割の結果スキューが大きくなる

注意:
パス分割により、予期しない結果を招く可能性があります。パス分割を避けるか、十分に注意して使用してください。

パスが分割された場合、パスにデフォルトのホールド要件はありません。-datapath_only オプションが指定されていない場合は、必要であれば set_min_delay コマンドを使用してパスにホールド要件を設定します。

こうしたリスクがあるため、パス分割が発生するとクリティカル警告メッセージが表示されます。

クロック スキューを考慮しないようにするため出力 FD1/Q を始点とする場合、AMDでは -datapath_only オプションを使用することを勧めしています。次に例を示します。

set_max_delay 5 -from [get_pins FD1/C] -datapath_only

同様に、有効でない終点を指定した場合、そのノードが有効な終点となるように、タイミングはそのノードの後には伝搬されなくなります。

次の例では、無効な終点である LUTA/O に最大遅延が指定されています。

set_max_delay 5 -from [get_pins LUTA/O]

これを次の図に示します。

図 4. 有効でない終点が指定された場合のパス分割

LUTA/O を有効な終点にするため、タイミングは LUTA/O の後には伝搬されなくなります。この結果、LUTA/O を通過するすべてのタイミング パスのセットアップおよびホールドが影響を受けます。REGA/C から LUTA/O までのパスに対しては、ソース クロックの挿入遅延のみが考慮されるので、スキューが大きくなる可能性があります。

パス分割によりタイミングがタイミング アークを介して伝搬されなくなるので、予期しない結果を招く可能性があります。これらのノードを通過するすべてのタイミング パスが影響を受けます。

次の例では、LUTA/O と REGB/D との間に最大遅延が設定されています。

set_max_delay 6 -from [get_pins LUTA/O] -to [get_pins REGB/D]

これを次の図に示します。

図 5. パス分割により複数のパスが分割される

LUTA/O は有効な始点ではないため、パスが分割され、LUTA/I* および LUTA/OLUTA/O からのタイミング アークが切断されます。set_max_delay 制約は LUTA/O と REGB/D の間にのみ設定されていますが、REGA/C と REGC/D との間のパスなど、ほかのパスも分割されます。