减少 UltraScale 和 UltraScale+ 器件中的时钟延迟 - 2023.2 简体中文

适用于 FPGA 和 SoC 的 UltraFast 设计方法指南 (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文

UltraScaleAMD UltraScale+™ 全局时钟布线中,时钟信号线首先通过水平和垂直布线轨道从全局时钟缓冲器布线至称为时钟根的集中位置。时钟信号线从时钟根向外扩展以通过垂直分布轨道来驱动每个时钟区域中的时钟行。在每一行上,位于 BUFCE_ROW 直通式布线站点上的时钟网络中存在可编程延迟,此类站点可在时钟从时钟根向外扩展的过程中执行低精度的纠偏。

下图显示了从全局时钟缓冲器 (BUFG) 到时钟根的时钟路径。时钟布线从布线切换到垂直分布轨道,穿过驱动水平分布轨道的每个时钟区域行中的 BUFCE_ROW,然后进入叶级。源显示为绿色,目标显示为红色。

图 1. 从 BUFG 穿过 BUFCE_ROW 到叶级的时钟路径

可编程行抽头延迟即时钟根附近最大的延迟。随时钟与根之间垂直方向距离增大,每增加 1 个时钟区域,抽头延迟值即减 1,最终降至 0。

下图显示了从时钟根递减的可编程行抽头的拓扑结构。抽头值越高,表示延迟越高且跨 SLR 时钟偏差越高,原因在于因制造工艺差异导致的最小/最大延迟差值,使抽头值增大,从而使时序不确定性增加。这导致更加难以满足可编程抽头延迟值较高的时钟根附近的时序要求。垂直方向距离时钟根越远,不确定性越低,并且通常更便于修复跨 SLR 总线的保持时间违例。对于水平方向距离时钟根更远的 SLR 交汇总线,时钟行延迟会增加。此额外延迟会导致最小/最大延迟差值增大,从而降低 SLR 交汇的性能。

图 2. UltraScale+ SSI 技术器件的可编程行抽头延迟设置

对于 UltraScale+ SSI 技术器件,您可使用以下任一方法来提高 SLR 交汇速度:

  • 将时钟根移至水平方向接近 SLR 交汇处的位置
  • 限制可编程行抽头延迟最大值以降低不确定性
注释: 垂直方向距离时钟根更远的时序路径可能会因保持时间修复布线绕行而导致变得更慢。但使用这些方法可提升总体性能。

在“Clock Utilization”(时钟使用率)报告中的“Device Cell Placement Summary for Global Clock”(全局时钟的器件单元布局汇总)部分中,可查看 Vivado 工具为设计中每个全局时钟所选的行可编程抽头延迟设置。以下示例显示了 HORIZONTAL PROG DELAY 列中的 g13 全局时钟(黄色高亮部分)的行可编程抽头延迟设置。

图 3. “时钟使用率”报告中的全局时钟行可编程抽头延迟设置

对于 UltraScale+ SSI 技术器件,布局器会限制行可编程抽头延迟最大值,以减小最小/最大延迟差值,并减小时钟根附近的 SLR 交汇时钟偏差,同时确保通过增大或减小 SLR 交汇任一侧的时钟区域的抽头延迟值来平衡距离时钟根更远的 SLR 交汇路径上的时钟偏差。通过查询时钟信号线的 MAX_PROG_DELAY 属性值,即可找到布局器所用的行可编程抽头延迟最大值。

您还可使用 USER_MAX_PROG_DELAY 属性来限制行可编程抽头值。下面给出了 1 个示例。要设置 USER_MAX_PROG_DELAY 属性,必须直接向全局时钟缓冲器驱动的信号线段应用该值。如果 USER_MAX_PROG_DELAY 属性未设置,布局器可使用可设置的最大抽头值 7。

set_property USER_MAX_PROG_DELAY <0-7> [get_nets -of [get_pins BUFG/O]]

以下是 USER_MAX_PROG_DELAY 属性的一些使用技巧:

  • 对于遍布大部分 UltraScale+ SSI 技术器件的时钟,建议的 USER_MAX_PROG_DELAY 抽头值为 3 或 4。当时钟根靠近 GT、 PCIe® 或偏离器件中心的 CMAC 块时,器件上对向的 SLR 交汇性能将受到严重影响,因为发送和捕获时钟的公共节点与 SLR 交汇相距更远。
  • 对于使用 CLOCK_DELAY_GROUP 进行时钟网络匹配的时钟组,请确保时钟组内所有时钟都使用相同的 USER_MAX_PROG_DELAY 值。