局部时钟是使用常规互连结构资源而不是专用全局时钟资源进行布线的时钟信号线。大多数情况下,Vivado 综合和 Vivado 逻辑最优化工具会插入时钟缓冲器以满足架构要求,或者用于具有超过 30 个时钟负载的时钟信号线。通常在如下情况下会出现局部时钟:
- 全局时钟由用互连结构逻辑实现的计数器进行分频
- 时钟门控转换不能从时钟路径中删除所有 LUT
-
7 系列器件中使用了太多的时钟缓冲器 注释: UltraScale 器件具有比 7 系列器件更多的时钟缓冲器,并且低扇出时钟缓冲器的高使用率通常不会导致任何问题。
一般情况下请避免使用局部时钟。局部时钟给实现工具带来了几个难题:
- 时钟偏差不可预测,导致难以执行时序收敛
- 增加由布线器谨慎处理的中低扇出信号线会导致潜在的可布线性问题 提示: 如果局部时钟引发时序约束 QoR 问题,请尝试使用 Pblock 在一小块面积上对时钟驱动和负载进行布局规划。使用
report_clock_utilization
来识别局部时钟的位置,查看时钟布局,并决定如何降低其数量或影响。