FPGA 全局时钟缓存连接和布局跟踪
每个时钟区域中的
24
个
BUFGCE
缓存只能驱动特定的时钟布线。然而,
BUFGCTRL
和
BUFGCE_DIV
输出可以通过
MUX
结构使用
24
个布线中的任何一个。每个
BUFGCE_DIV
与特定的
BUFGCE site
位置共享输入连接,每个
BUFGCTRL
与两
个特定的
BUFGCE site
位置共享输入连接。因此,当在时钟区域中使用
BUFGCE_DIV
或
BUFGCTRL
缓存时,
BUFGCE
缓
存的使用将会受到限制。下图显示在时钟区域内复制
4
次的时钟区域底部的
6
个
BUFGCE
。
注释:
对于时钟使用的所有垂直,水平布线和分布资源,全局时钟网络被分布给器件中的特定轨道
ID
。时钟无法更改
布线
ID
,除非时钟通过另一个时钟缓存。
时钟布线、根和分布
要正确理解
UltraScale
器件的时钟容量和设计的时钟利用率,首先了解时钟布局如何使用专用的布局资源非常关键:
•
从时钟缓存到时钟根,时钟信号经过垂直和水平布局的一个或几个阶段。每个细分必须使用相同的轨道
ID
(介于
0
和
23
之间)。
•
在时钟根处,时钟信号从布线轨道转变到具有相同轨道
ID
的分布轨道。为了减少偏差,时钟根通常在位于时钟窗
口中心的时钟区域中。时钟窗口是包括布局时钟网络负载的所有时钟区域的矩形区域。为了偏差优化,
Vivado IDE
可能会将时钟根偏移到偏离中心。
•
从时钟根到负载所在的
CLB
列,时钟信号在垂直分布 (根据需要在器件上下)上行进,然后到水平分布 (根据需
要向左和向右)。
• CLB
列分成两半,分别位于水平分布资源的上方和下方。
CLB
列的每一半包含几个叶时钟布线资源,可以通过任
何水平分布轨道到达。
在某些情况下,时钟缓存可以直接驱动到时钟分布轨道上。这通常发生在时钟根位于与时钟缓存相同的时钟区域中时,
或者当时钟缓存仅驱动非时钟引脚 (例如,高扇出网)时。
因为时钟布线资源是分段的,所以仅消耗用于穿过时钟区域或到达时钟区域中的负载的布线和分布段。
下图显示位于时钟区域
X2Y1
中的时钟缓存如何到达其位于时钟窗口内的负载,该时钟窗口由
X1Y3
至
X5Y5
的时钟区
域的矩形形成。
在下图中,布线器件视图显示了跨越器件大部分的全局时钟。驱动网络的时钟缓存在时钟区域
X2Y0
中以蓝色突出显
示,并且驱动到该时钟区域中的水平布线。然后,网络在时钟区域
X2Y0
中从水平布线转换到垂直布线,到达时钟区域
X2Y5
中的时钟根。所有时钟布线以蓝色突出显示。时钟根在时钟区域
X2Y5
中以红色突出显示。从
X2Y5
中的时钟根,
网络转换到垂直分布,然后到时钟叶针的水平分布。
CLB
列中的分布层和叶子时钟布线资源以红色突出显示。