在时钟信号线上使用 USER_CLOCK_ROOT 属性 - 2023.2 简体中文

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

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

USER_CLOCK_ROOT 属性可用于强制限制时钟缓冲器所驱动的时钟的时钟根位置。指定 USER_CLOCK_ROOT 属性会影响设计布局,因为它会修改时钟布线,从而影响插入延迟和偏差。USER_CLOCK_ROOT 值对应时钟区域,并且必须在高扇出时钟缓冲器所驱动的信号线段上直接设置该属性。下面给出 1 个示例:

set_property USER_CLOCK_ROOT X2Y3 [get_nets clkgen/wbClk_o]
图 1. 应用于由时钟缓冲器驱动的信号线段上的 USER_CLOCK_ROOT

完成布局后即可使用 CLOCK_ROOT 属性来查询实际时钟根,如以下示例所示。CLOCK_ROOT 会报告由用户分配的根和由 Vivado 工具自动分配的根。

get_property CLOCK_ROOT [get_nets clkgen/wbClk_o]
=> X2Y3

复查已实现的设计的时钟根分配的另一种方法是使用 report_clock_utilization Tcl 命令。例如:

report_clock_utilization -clock_roots_only

下图显示了此报告。

图 2. report_clock_utilization 时钟根分配