如何节省BUFG,打破时序收敛高扇出 net 的瓶颈

作者:高亚军,赛灵思高级战略应用工程师

高扇出 net 是时序收敛的一个常见瓶颈。所以,除了传统的降低扇出的方法之外,还可以将该 net 引入 BUFG,但前提是有可用的 BUFG。众所周知,BUFG 是全局时钟资源,在配置 MMCM 或 PLL 时会用到。这里, 我就给大家介绍两种可以通过合理使用 MMCM/PLL 节省 BUFG 的方法。

大多数情形下,MMCM 用作去除时钟网络 Skew 模式(Clock Network Deskew),如下图所示。在这种模式下,尽可能地合并同频时钟将是节省 BUFG 的有效方法之一。同频时钟可能来自于同一个 MMCM,也可能来自于不同的 MMCM。合并时需要考虑系统对时钟相位关系的要求。下图中,端点1、4、6为同相位,2、3、5为同相位。

MMCM 用作去除时钟网络 Skew 模式

注:图片来源ug572, figure 3-9

节省 BUFG 另一种方法,就是可以将 MMCM 工作在 INTERNAL 模式下。如下图所示。这种模式下,MMCM 被纯粹用作频率合成器,您无需关心 MMCM 输出时钟与输入时钟之间的相位关系。此时,CLKFBOUT 直接连到到 CLKFBIN,就可以节省一个 BUFG。

MMCM 工作在 INTERNAL 模式下

值得注意的是, 当你将 MMCM 用作 INTERNAL 模式时,对应于 IP Core中Phase Alignment 不勾选,如下图所示。

MMCM 用作 INTERNAL 模式时

好了,这就是几个节省 BUFG 的非常有效的方法, 祝设计顺利。

关于作者:
Lauren Gao(高亚军),赛灵思高级战略应用工程师。 Lauren 专注于 C/C++ 高层次综合,拥有多年利用 Xilinx FPGA 实现数字信号处理算法的经验,对 Xilinx FPGA 的架构、开发工具和设计理念有深入的理解。发布网络视频课程“Vivado入门与提高“ 及 “跟 Xilinx SAE 学 HLS”,点击率均15万以上;撰写并出版《基于FPGA的数字信号处理》及《Vivado从此开始》两本专业图书, 广受好评。