クロック バッファーのロードを 1 つのクロック領域に含めるには、CLOCK_LOW_FANOUT 制約を使用できます。CLOCK_LOW_FANOUT 制約は、グローバル クロック バッファーで直接駆動されるクロック ネット セグメントまたはフリップフロップに設定できます。
フリップフロップの制約例
CLOCK_LOW_FANOUT 制約をグローバル クロック バッファーで直接駆動されるフリップフロップのリストに設定すると、フリップフロップを隔離するため opt_design
により新しい並列グローバル クロック バッファーが作成されます。place_design
の実行中、新しく作成された並列グローバル クロック バッファーで駆動される隔離されたフリップフロップは、1 つのクロック領域に含まれます。
set_property CLOCK_LOW_FANOUT TRUE [get_cells safeClockStartup_reg[*]]
このデザインでは最初、alwaysOn クロック ネットワークが、ほかのロジックのクロック ゲーティングに使用するクロック ゲーティング同期化回路の一部であるフリップフロップを含め、2000 個を超えるロード (フリップフロップを含む) を駆動していました。次の回路図に、opt_design
を使用して新しい並列グローバル クロック バッファーを作成してクロック ゲーティング同期化回路を隔離する前と後の、alwaysOn クロック ネットワークに接続されたクロック ゲーティング同期化回路と追加のロジックを示します。
完全にインプリメントされたデザインの Device ウィンドウに、緑色で示されたクロック ゲーティング同期化回路と、alwaysOn ロジックおよびクロック ゲーティングされたロジックが示されます。クロック ゲーティング同期化回路は、MMCM と同じクロック領域の、グローバル クロック バッファーの近くに配置されます。
クロック ネットの制約例
CLOCK_LOW_FANOUT プロパティをグローバル クロック バッファーで直接駆動されるクロック ネット セグメントに設定し、グローバル クロック バッファーのファンアウトが 2,000 ロード未満の場合、ロードの配置は 1 つのクロック領域に含まれます。
次に、グローバル クロック バッファーで直接駆動されるクロック ネットに CLOCK_LOW_FANOUT 制約を設定する例を示します。クロック ネットワークで駆動されるロードは 2000 個未満で、1 つのクロック領域に含まれます。入力クロック ポート clkIn は、PACKAGE_PIN が CLOCK_REGION X2Y0 内の GCIO に設定されており、PLLE3_ADV を駆動します。PLLE3_ADV はグローバル クロック バッファーを駆動し、そのグローバル クロック バッファーはロード数が 1379 個のクロック ネットワークを駆動します。グローバル クロック バッファーのロードは、すべて CLOCK_REGION X2Y0 内に配置されます。
# PACKAGE_PIN AF9 - IOBank 64 - CLOCK_REGION X2Y0
set_property PACKAGE_PIN AF9 [get_ports clkIn]
set_property IOSTANDARD LVCMOS18 [get_ports clkIn]
set_property CLOCK_LOW_FANOUT TRUE [get_nets -of [get_pins clkOut0_bufg_inst/O]]