CLOCK_DEDICATED_ROUTE 制約の使用 - 2023.2 日本語

Versal アダプティブ SoC ハードウェア、IP、およびプラットフォーム開発設計手法ガイド (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 日本語

CLOCK_DEDICATED_ROUTE 制約は、1 つのクロック領域のクロック バッファーで別のクロック領域の MMCM、XPLL、DPLL を駆動する場合に通常使用されます。デフォルトでは、CLOCK_DEDICATED_ROUTE 制約は TRUE に設定され、バッファーと MMCM、XPLL、DPLL のペアは同じクロック領域に配置されます。

重要: CLOCK_DEDICATED_ROUTE の値 BACKBONE および ANY_CMT_COLUMN は、以前のアーキテクチャではサポートされていましたが、Versal デバイスではサポートされません。Versal デバイスでは、CLOCK_DEDICATED_ROUTE に使用できる値は SAME_CMT_ROW および ANY_CMT_REGION です。以前のアーキテクチャではクロッキングは厳密にカラム型なので、AMD では、制約をアップデートする前にクロッキング トポロジの配置を確認することをお勧めします。

次の表に、CLOCK_DEDICATED_ROUTE 制約の値、使用法、および動作を示します。

注記: ANY_CMT_COLUMN 制約と SAME_CMT_COLUMN 制約は、グローバル クロック バッファーのネットにのみ適用してください。
表 1. Versal デバイス用 CLOCK_DEDICATED_ROUTE 制約のサマリ
[Value] 使用法 ビヘイビアー
TRUE クロック ネットのデフォルト値

グローバル クロック バッファーおよび MMCM/XPLL/DPLL を同じクロック領域に配置する必要があります。

ネットがグローバル クロック リソースのみを使用して配線されます。

SAME_CMT_COLUMN

BUFG_GT グローバル クロック バッファーまたは HDIO バンクのグローバル クロック バッファーで駆動されるネット

例:

set_property CLOCK_DEDICATED_ROUTE SAME_CMT_COLUMN \
[get_nets -of [get_pins BUFG_GT_inst/O]]

DPLL を同じ垂直列のクロック領域に配置する必要があります。

ネットがグローバル クロック リソースのみを使用して配線されます。

最適な結果を得るには、AMD では DPLL に LOC 制約を使用して DPLL を同じ垂直列に配置することをお勧めします。

SAME_CMT_ROW

グローバル クロック バッファーで駆動されるネット

 

例:

set_property CLOCK_DEDICATED_ROUTE SAME_CMT_ROW \
[get_nets -of [get_pins BUFGCE_inst/O]]
set_property CLOCK_DEDICATED_ROUTE SAME_CMT_ROW \
[get_nets -of [get_pins BUFGCE_DIV_inst/O]]
set_property CLOCK_DEDICATED_ROUTE SAME_CMT_ROW \
[get_nets -of [get_pins BUFGCTRL_inst/O]]

MMCM/XPLL/DPLL は、使用可能なリソースのあるどの水平クロック領域行にでも配置できます。

ネットがグローバル クロック リソースのみを使用して配線されます。

最適な結果を得るには、AMD では MMCM/XPLL/DPLL に LOC 制約を使用して MMCM//XPLL/DPLL をデバイスの水平クロック領域行内に配置することをお勧めします。

ANY_CMT_REGION

グローバル クロック バッファーで駆動されるネット

 

例:

set_property CLOCK_DEDICATED_ROUTE ANY_CMT_REGION \
[get_nets -of [get_pins BUFGCE_inst/O]]
set_property CLOCK_DEDICATED_ROUTE ANY_CMT_REGION \
[get_nets -of [get_pins BUFGCE_DIV_inst/O]]
set_property CLOCK_DEDICATED_ROUTE ANY_CMT_REGION \
[get_nets -of [get_pins BUFGCTRL_inst/O]]

MMCM/XPLL/DPLL は、使用可能なリソースのあるどのクロック領域にでも配置できます。

ネットがグローバル クロック リソースのみを使用して配線されます。

最適な結果を得るには、AMD では MMCM/XPLL/DPLL に LOC 制約を使用して MMCM/XPLL/DPLL をデバイス内に配置することをお勧めします。

FALSE

グローバル クロック バッファーでは駆動されないがクロック ネットワークの一部であるクロック ネット (IBUF で駆動されるネット、MMCM の出力クロック ピンに直接接続されているネットなど)

 

例:

set_property CLOCK_DEDICATED_ROUTE FALSE \
[get_nets -of [get_pins MMCME5_inst/CLKOUT0]]
set_property CLOCK_DEDICATED_ROUTE FALSE \
[get_nets -of [get_pins IBUF_inst/O]]

ネットがファブリックおよびグローバル クロック リソースを使用して配線されます。

ジッターやスキューといった、クロック ネットワークのタイミング特性に悪影響を与える可能性があります。

重要: Versal デバイスでは、特別なデザイン要件によりグローバル クロック リソースをファブリック リソースに配置する必要がある場合以外は、FALSE は使用しないでください。

同じ行にある XPIO クロック領域間の MMCM/XPLL/DPLL の駆動

1 つの XPIO クロック領域のクロック バッファーで同じ行の隣接していない XPIO クロック領域の MMCM/XPLL/DPLL を駆動する場合は、CLOCK_DEDICATED_ROUTE 制約を SAME_CMT_ROW に設定する必要があります。これにより、インプリメンテーション エラーが発生しなくなり、クロックが XPIO クロック領域全体でグローバル クロック リソースを使用して配線されるようになります。次の例および図に、隣接していない XPIO クロック領域にある 2 つの DPLL を駆動するクロック バッファーを示します。

set_property CLOCK_DEDICATED_ROUTE SAME_CMT_ROW [get_nets -of [get_pins BUFG_inst/O]]
set_property LOC DPLL_X4Y0 [get_cells DPLL_inst_1]
set_property LOC DPLL_X11Y0 [get_cells DPLL_inst_2]
図 1. CLOCK_DEDICATED_ROUTE 制約を SAME_CMT_ROW に設定

異なる行にあるクロック領域間の DPLL の駆動

HDIO に DPLL が含まれるデバイスでは、次の場合に CLOCK_DEDICATED_ROUTE 制約を ANY_CMT_REGION に設定する必要があります。

  • XPIO クロック領域のクロック バッファーで HDIO クロック領域の DPLL を駆動する場合
  • HDIO クロック領域のクロック バッファーで XPIO クロック領域の MMCM、XPLL、DPLL を駆動する場合

これにより、インプリメンテーション エラーが発生しなくなり、クロックがデバイス全体でグローバル クロック リソースを使用して配線されるようになります。次の例に、XPIO クロック領域のクロック バッファーで、XPIO クロック領域の DPLL と HDIO クロック領域の DPLL を駆動する例を示します。

set_property CLOCK_DEDICATED_ROUTE ANY_CMT_REGION [get_nets -of [get_pins BUFG_inst/O]]
set_property LOC DPLL_X4Y2 [get_cells DPLL_inst_1]
set_property LOC DPLL_X12Y0 [get_cells DPLL_inst_2]
図 2. CLOCK_DEDICATED_ROUTE 制約を ANY_CMT_REGION に設定