USER_CLOCK_ROOT 分配 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

Versal 器件中的 USER_CLOCK_ROOT 分配与 UltraScale 器件有细微差异,因为时钟架构发生了变化。在 Versal 器件中,并非所有时钟区域都具有垂直时钟轴,这些时钟区域无法用于 USER_CLOCK_ROOT 分配。

下图显示了垂直时钟轴的位置。以蓝色高亮显示的时钟轴与位于 2 个时钟区域边界处的垂直 NoC 列相邻。Vivado 工具仅支持将 USER_CLOCK_ROOT 置位于这些时钟轴的左侧时钟区域内。器件左侧和右侧的收发器四通道列中的垂直时钟轴以紫色高亮显示。您可将 USER_CLOCK_ROOT 分配至收发器四通道列中的任意时钟区域。但如果将 USER_CLOCK_ROOT 分配至最左侧收发器四通道列中的时钟区域(PS 上方)则会导致该时钟无法触及 PS 同一行上的时钟区域内的任意负载。此外,源自 XPIO 的时钟无法将其 USER_CLOCK_ROOT 分配至 PS 上方最左侧的收发器四通道列,因为该时钟无法越过 PS 布线,必须沿 VNoC 列进行必须。绿色高亮的时钟区域表示 USER_CLOCK_ROOT 分配合规,红色时钟区域则表示时钟根分配违规。在下图中,如果 USER_CLOCK_ROOT 设为时钟区域 X0Y2、X0Y3 或 X0Y4,那么该时钟就无法到达时钟区域 X*Y1 中的负载。

图 1. 合规和违规 USER_CLOCK_ROOT 分配的垂直时钟轴和时钟区域

在以下示例中,USER_CLOCK_ROOT 约束违规,因为此约束设置为垂直时钟轴右侧的时钟区域:

set_property USER_CLOCK_ROOT X4Y3 [get_nets -of [get_pins BUFGCE_DIV_inst/O]]

在此情况下,布局器会发出一条消息,并将合规的 CLOCK_ROOT 分配给 CLOCK_REGION X3Y3 中的信号线。

除了以上针对 Versal SSI 技术器件所罗列的通用 USER_CLOCK_ROOT 规则外,如有任意时钟跨多个 SLR,那么其时钟根都必须位于 SLR 边界之下的时钟区域行上。如果 USER_CLOCK_ROOT 约束设置为任何其他时钟区域,那么布局器将忽略此约束,以创建平衡的时钟树并最大程度减小时钟偏差。

图 2. Versal SSI 技术 XCVP1802 器件中多 SLR 时钟的有效的 USER_CLOCK_ROOT 时钟区域