时钟布线、时钟根和时钟分布 - 2023.2 简体中文

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

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

要正确理解 Versal 器件的时钟容量以及设计的时钟使用率,重要的是了解时钟布线使用专用布线资源的方式:

  • 从时钟缓冲器到时钟根,时钟信号经过 1 个或多个垂直和水平布线阶段。每个分段都必须使用相同的轨道 ID(介于 0 和 23 之间)。
  • 在时钟根处,时钟信号从布线轨道转变为具有相同轨道 ID 的分布轨道。为了减少偏差,时钟根通常在位于时钟扩展窗口中心的时钟区域中。时钟扩展窗口 (clock expansion window) 是包含布局时钟信号线负载的所有时钟区域的矩形区域。通过读取只读 CLK_EXPANSION_WINDOW 属性即可判定时钟信号线的时钟扩展窗口。下面给出 1 个示例:
    get_property CLK_EXPANSION_WINDOW [get_nets -of [get_pins BUFGCE_inst/O]]
    => CLOCKREGION_X5Y2:CLOCKREGION_X6Y3
  • 从时钟根到负载所在的 CLB 列,时钟信号垂直分布(根据需要沿器件向上和向下)方向移动,然后沿水平分布(根据需要向左和向右)移动。
  • CLB 列分成两半,分别位于水平分布资源的上方和下方。每一半 CLB 列都包含几个叶时钟布线资源,可以通过任何水平分布轨道来获取。Versal 器件中的叶时钟布线资源允许 MBUFG* 原语执行叶级时钟分频,以降低时钟轨道资源使用率、提升功耗效率并降低同步时钟域之间的偏差。

在某些情况下,时钟缓冲器可以直接驱动到时钟分布轨道上。当时钟根与时钟缓冲器位于相同时钟区域中或者当时钟缓冲器仅驱动非时钟管脚(例如,高扇出信号线)时,通常会发生此情况。

由于时钟布线资源已分段,因此所耗用的资源仅限于用于在整个时钟扩展窗口内遍历时钟区域和执行时钟分布的布线段和分布段。

下图显示了位于时钟区域 X3Y0 内的时钟缓冲器访问其布局在时钟扩展窗口内的负载的方式,该时钟扩展窗口是由从 X5Y2 到 X6Y3 的矩形时钟区域构成的。

图 1. Versal 自适应 SoC 时钟布线(从驱动到负载)

在下图中,已布线的器件视图显示了遍布器件上大部分区域的全局时钟示例。驱动网络的时钟缓冲器在时钟区域 X2Y0 中以蓝色高亮显示,并通过 XPIO bank 驱动到该时钟区域中的水平布线,直至 X7Y0 为止。然后,信号线从水平布线转换到时钟区域 X5Y1 中的垂直布线,并到达时钟区域 X5Y2 内的时钟根。所有时钟布线均标记为蓝色。时钟根在时钟区域 X5Y2 中标记为红色。信号线从 X5Y2 中的时钟根转换到垂直分布,然后通过水平分布到达时钟叶管脚。CLB 列中的分布层和叶时钟布线资源标记为红色。

图 2. Versal 自适应 SoC 已布线的时钟网络的布线器件视图