使用 CLOCK_DEDICATED_ROUTE 约束
CLOCK_DEDICATED_ROUTE 约束通常在从一个时钟区域中的时钟缓存驱动到另一个时钟区域中的 MMCM 或 PLL 时使
用。默认情况下, CLOCK_DEDICATED_ROUTE 约束设置为 TRUE ,并且缓存 /MMCM 或 PLL 对必须布局在相同的时钟区
域中。
注释: 在使用 UltraScale 器件工作时,勿在端口直接驱动的网络上应用 CLOCK_DEDICATED_ROUTE 属性。相反,将 CLOCK_DEDICATED_ROUTE 属性应用到 IBUF 的
输出。
当从一个时钟区域中的时钟缓存驱动垂直相邻时钟区域中的 MMCM 或 PLL 时,必须将 7 系列器件的 CLOCK_DEDICATED_ROUTE 设置为 BACKBONE 或 UltraScale 器
件的 CLOCK_DEDICATED_ROUTE 设置为 SAME_CMT_COLUMN 。这可以防止实现错误,并确保时钟仅使用全局时钟资源进行布线。以下示例显示了在垂直相邻时钟
区域中驱动两个 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]
当从时钟缓存驱动到不垂直相邻的其他时钟区域时,必须将 7 系列器件的 CLOCK_DEDICATED_ROUTE 设置为 FALSE 或
UltraScale 器件的 ANY_CMT_COLUMN 设置为 CLOCK_DEDICATED_ROUTE 。这可以防止实现错误,并确保时钟仅使用
全局时钟资源进行布线。以下示例和图显示了驱动与输入缓存不在同一时钟区域列上的两个 PLL 的 BUFGCE 。
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]