USER_CLOCK_ROOT プロパティを使用すると、クロック バッファーで駆動されるクロックのクロック ルートの位置を指定できます。USER_CLOCK_ROOT プロパティを指定すると、クロック配線が変更されて挿入遅延とスキューの両方に影響するため、デザインの配置に影響します。USER_CLOCK_ROOT 値はクロック領域に対応するので、このプロパティはファンアウトの大きいクロック バッファーで直接駆動されるネット セグメントに設定する必要があります。次に例を示します。
set_property USER_CLOCK_ROOT X3Y2 [get_nets -of [get_pins clkgen/BUFG_clkout2_inst/O]]
図 1. クロック バッファーで駆動されるネット セグメントに適用された USER_CLOCK_ROOT
配置後は、次の例に示すように、CLOCK_ROOT を使用して実際のクロック ルートをクエリできます。CLOCK_ROOT に対しては、割り当てられたルートがユーザーによって割り当てられたものであるか、Vivado ツールで自動的に割り当てられたものであるかがレポートされます。
get_property CLOCK_ROOT [get_nets -of [get_pins clkgen/BUFG_clkout2_inst/O]]
=> X3Y2
インプリメントしたデザインのクロック ルート割り当てを確認するには、Tcl コマンドの report_clock_utilization
を使用する方法もあります。次に例を示します。
report_clock_utilization -clock_roots_only
次の図に、このレポートを示します。
図 2. report_clock_utilization によるクロック ルート割り当ての確認