CLOCK_DEDICATED_ROUTE 制約の使用 - 2023.2 日本語

FPGA および SoC 用 UltraFast 設計手法ガイド (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 日本語

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

注記: UltraScale デバイスで BACKBONE に 7 シリーズの次の CLOCK_DEDICATED_ROUTE 値を使用すると、SAME_CMT_COLUMN と同じ動作になります。

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

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

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

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

SAME_CMT_COLUMN

(BACKBONE)

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

例:

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

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

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

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

ANY_CMT_COLUMN

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

例:

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

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

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

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

FALSE

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

例:

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

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

クロック ネットワークのタイミングおよびパフォーマンスに悪影響を与える可能性があります。

重要: UltraScale デバイスでは、特別なデザイン要件によりグローバル クロック リソースをファブリック リソースに配置する必要がある場合以外は、FALSE に設定しないでください。
注記: UltraScale デバイスで合は、直接ポートで駆動されるネットには CLOCK_DEDICATED_ROUTE プロパティは適用しないでください。その代わり、IBUF の出力に CLOCK_DEDICATED_ROUTE プロパティを適用してください。

上下に隣接するクロック領域の制約例

1 つのクロック領域のクロック バッファーで上下に隣接するクロック領域の MMCM または PLL を駆動する場合は、CLOCK_DEDICATED_ROUTE を 7 シリーズ デバイスでは BACKBONE に、UltraScale デバイスでは SAME_CMT_COLUMN に設定してください。これにより、インプリメンテーション エラーの発生を回避でき、クロックがグローバル クロック リソースのみを使用して配線されるようになります。場合によっては、CLOCK_DEDICATED_ROUTE 制約を設定せずに、垂直方向に隣接するクロック領域に 2 つ以下の MMCM または PLL を配置できます。CLOCK_DEDICATED_ROUTE 制約なしで垂直方向に隣接するクロック領域の MMCM または PLL の有効なソリューションを見つけることができる場合、結果のソリューションがデザインに最適ではない可能性があります。次の例および図に、垂直方向に隣接するクロック領域にある 2 つの PLL を駆動する中央クロック バッファーを示します。

set_property CLOCK_DEDICATED_ROUTE SAME_CMT_COLUMN [get_nets -of [get_pins BUFG_inst_0/O]]
set_property LOC PLLE3_ADV_X0Y0 [get_cells PLLE3_ADV_inst_0]
set_property LOC PLLE3_ADV_X0Y4 [get_cells PLLE3_ADV_inst_1]
図 1. CLOCK_DEDICATED_ROUTE 制約を SAME_CMT_COLUMN に設定

上下に隣接していないクロック ネットの制約例

1 つのクロック領域のクロック バッファーで上下に隣接していないクロック領域を駆動する場合は、CLOCK_DEDICATED_ROUTE を 7 シリーズ デバイスでは FALSE に、UltraScale デバイスでは ANY_CMT_COLUMN に設定する必要があります。これにより、インプリメンテーション エラーが発生しなくなり、クロックがグローバル クロック リソースのみを使用して配線されるようになります。次の例および図に、BUFGCE が入力バッファーと同じ列にないクロック領域に配置されている 2 つの PLL を駆動しているところを示します。

set_property CLOCK_DEDICATED_ROUTE ANY_CMT_COLUMN [get_nets -of [get_pins BUFG_inst_0/O]]
set_property LOC PLLE3_ADV_X1Y0 [get_cells PLLE3_ADV_inst_0]
set_property LOC PLLE3_ADV_X1Y4 [get_cells PLLE3_ADV_inst_1]
図 2. CLOCK_DEDICATED_ROUTE 制約を ANY_CMT_COLUMN に設定