FPGA(二)时钟

7系列FPGA时钟,官方文档参考UG472。

2.1 总体架构

  • 首先垂直时钟中心线(图中标注为Clocking Center,也即Clock Backbone)将器件分为左右两部分;水平时钟中心线(图中标注为Horizontal Center)将器件分为上下两部分。

  • 整个器件被划分为多个Clock Region(时钟区域),如上图阴影部分。

  • Clock Backbone是全局时钟主干道,为全局时钟布线,包含32个BUFG。

  • HROW(Horizontal Clock Row)是水平时钟线,将每个时钟区域分成上下两部分。

  • CMT Backbone可以用于相邻时钟区域的布线,节省全局时钟网络。

  • 此外还有CMT Column(后面会详细讲)、I/O Column(外部时钟输入)、GT Column(内含高速串行收发器)。

2.2 时钟区域

  • BUFG(全局时钟缓冲器):通过HROW进入每个时钟区域,可以驱动时钟区域的所有资源。
  • BUFH(水平时钟缓冲器):与BUFG共享HROW,也可以驱动时钟区域的所有资源。
  • BUFIO(IO时钟缓冲器):在IO Bank内,只能驱动IO资源。
  • BUFR(区域时钟缓冲器):在IO Bank内,可以驱动IO和逻辑资源。
  • BUFMR(多区域时钟缓冲器):可以通过CMT Backbone驱动上下相邻两个区域的BUFIO和BUFR。
  • CC(Clock-Capable):外部时钟输入管脚,其管脚在内部可以连接到BUFG、BUFR、BUFIO、BUFH、MMCM、PLL等。

可以结合vivado中的device视图来理解,标有X0Y0字样的大框就是时钟区域。时钟区域的每一列可以包含50个CLB、10个36K的BRAM或20个DSP,黄色的是CMT,以及最外侧的IO bank。

更细致的连接和驱动关系参考下面这张图,UG472有表格总结。

2.3 CMT

CMT(Clock Management Tiles)包含1个MMCM(Mixed-Mode Clock Manager)和1个PLL(Phase-Locked Loop)。功能为:频率综合(将外部输入的固定频率时钟调理成多路可调节频率的时钟)、去抖动、去偏斜。

抖动(Jitter):由于晶振本身稳定性、电源以及温度变化等原因造成了时钟频率的变化

偏斜(Skew):同样的时钟产生的多个子时钟信号之间的延时差异,通常是时钟相位上的不确定。

与外部连接如下:

内部结构如下:

  • MMCM

    从2个时钟输入中任选1路,经过PFD(Phase-Frequency Detector)、CP(Charge Pump)、LF(Loop Filter)后产生一定幅度的电压输入到VCO(Vector-Controlled Oscillator),VCO产生频率与输入电压幅度成比例的高频时钟,再被除以M倍并反馈到PFD。

  • PLL

总结:PLL是MMCM功能的子集,它们均可实现时钟整数倍的频率综合、去抖、去偏斜,但MMCM还可以实现分数倍的频率综合、反相时钟输出以及动态的时钟相位调整。

2.4 IP核使用

参考下面两张图。一般保持默认即可,注意复位是高有效还是低有效。


FPGA(二)时钟
https://shuusui.site/blog/2025/11/23/fpga-2/
作者
Shuusui
发布于
2025年11月23日
许可协议