锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

从底层结构开始学习FPGA(15)----MMCM与PLL

时间:2022-09-09 02:00:00 016lf连接器1连接器pf

系列目录和传送门

从底层结构学习FPGA》目录及传送门


1、概述

相环 (phase-locked loop,PLL),是控制反馈电路。PLL系统级时钟管理和偏移控制时钟网络,具有时钟倍频、分频、相位偏移和可编程空比的功能。MMCM是混合时钟管理器,相当于精确相移PLL。(PLL动态调相位数字电路模拟电路)。

时钟管理器的混合模式 (mixed-mode clock manage,MMCM) 官方解释:This is a PLL with some small part of a DCM tacked on to do fine phase shifting (that’s why its mixed mode - the PLL is analog, but the phase shift is digital)。就是MMCM是在PLL的基础上增加了相位动态调整功能,使得纯模拟电路的PLL数字电路设计混合,因此被称为Mixed Mode。就是MMCM是在PLL相位动态调节功能在此基础上增加,使纯模拟电路PLL数字电路设计混合,因此被称为Mixed Mode。在某种程度上,可以PLL看做是MMCM功能子集。

MMCM、PLL可概括为三点:

  • 频率综合
  • 去抖动
  • 去偏斜

2、组成

在 7 系列 FPGA 中间,每个时钟管理块 (CMT) 都包括一个MMCM和一个PLL。一般框图如下:

PLL和MMCM可以输入两个时钟(一般一个就够了),输入时钟可以来自:

  • IBUFG - 输入缓冲器具有时钟功能,MMCM 这条路径的延迟将得到补偿。 IBUFG 表示具有时钟功能的时钟管脚在同一区域。
  • BUFGCTRL 或BUFG - 内部全局时钟缓冲器,MMCM 这条路径的延迟不会得到补偿。
  • IBUF - 不推荐常规输入缓冲区,因为一般路由可以用于输入缓冲区。 IBUF 时钟输入必须在路由到达 MMCM/PLL 之前路由到 BUFG。 MMCM/PLL 不补偿该路径的延迟。
  • BUFR - 区域时钟输入缓冲器,MMCM/PLL 这条路径的延迟不会得到补偿。
  • GT - 吉比特收发器可以直接连接到MMCM

同时,还需要选择时钟输入到时钟反馈引脚CLKFB,作为系统的反馈时钟输入。

下图详细说明PLL工作原理本质上是反馈相位和频率控制系统。

  1. 首先需要参考时钟(ref_clk)通过鉴频(FD)鉴相器(PD)与需要比较的时钟频率进行比较,我们以频率调整为例。如果参考时钟频率等于需要比较的时钟频率,则测频相机输出为 0.如果参考时钟频率大于需要比较的时钟频率,则鉴频鉴相器输出成正比值,如果参考时钟频率小于需要比较的时钟频率,则鉴频鉴相器输出较小的正比值。
  2. 连接到环路滤波器的输出(LF)在上面,用于控制噪声的带宽,过滤掉高频噪声,使其稳定在一个值中,使带有噪声的波形光滑。如果检测器前的波形抖动较大,则通过环路过滤器后的抖动较小,接近信号的平均值。
  3. 经过环路滤波器的输出连接到压控振荡器(VCO)环路滤波器输出的电压可以控制 VCO 环路滤波器输出的电压越大 VCO 输出频率越高,然后将这个频率信号连接到鉴频鉴相器作为比较频率。
  4. 如果 ref_clk 参考时钟输入的频率与需要比较的时钟频率不相等。该系统最终实现的是逐平等和稳定。ref_clk 参考时钟的频率是 50MHz,整个闭环反转
  5. 反馈系统后,锁相对外输出时钟频率 pll_out 也是 50MHz。
  6. 倍频是在 VCO 直接加分频器,ref_clk 参考时钟输入的频率和需要比较的时钟频率最终会在闭环反馈系统后保持相同的频率。在需要比较的时钟之前添加分频器将使进入分频器之前的信号频率为需要比较的时钟频率的倍数,VCO 后输出的 pll_out 信号频率是 ref_clk 参考时钟倍频后的结果。
  7. 分频是在 ref_clk 参考时钟后加分频器,需要比较时钟频率 ref_clk 参考时钟分频后的频率相等 VCO 后输出的 pll_out 信号就是 ref_clk 参考时钟分频后的结果。

下图是MMCM结构框图:

  • MMCM有2个时钟输入,使用时可选择1路
  • 可编程计数器分频器输入时钟 (D),PFD(phase-frequency detector),CP(charge pump),LF(loop filter)产生一定范围的电压输入VCO
  • VCO产生频率与输入电压范围成比例的高频时钟,除以M倍并反馈给PFD
  • 因此VCO输出频率是一个稳定的高频时钟,输入频率为M倍,除以不同的倍数(用户可调)clkout0~clkout6
  • 此外,第0路输出和反馈输出可以被小数除法(计数器M),且第0路~提供反相180度的输出,VCO输出也可以准确调整相位

下图是PLL结构框图(功能较少):

其结构与MMCM大致相同,但没有反相输出,分数倍数除法,动态相位调整准确,CLKOUT6。

MMCM、PLL可实现时钟整数倍的频率综合、抖动和偏差,但MMCM还可以实现分数倍的频率综合、反相时钟输出和动态时钟相位调整。用于一般应用PLL还是MMCM差别不大。


3.官方推荐用法

(1)时钟网络偏斜

最典型的用法,PLL输入时钟与输出时钟相位一致,即去除时钟偏差SKEW。缺点是用了两个BUFG,而BUFG在FPGA一般只有32个,真的很珍贵。

右下角的时序图显示输入时钟2与输出时钟5的相位已知对齐。4和6都是输出时钟,相位一致。二是输入,三是负反馈输入,二、三是一致的。4到5经过一个BUFG,6到3经过一个BUFG,而BUFG通常延时一致,所以5、3相位一致。5=3,3=2,所以5=2.即输出5与输入2相位一致,从而消除时钟偏差。

下图是一个BUFH的例子,BUFH不是全局时钟,只能应用于相邻的时钟区域,所以应用范围不如上面BUFG,但原则是一样的。


(2)内部反馈

与上述方法相比,该方法去除了反馈环路BUFG,直接接线接入反馈时钟引脚。该方法比上述方法具有更好的性能,因为反馈时钟不受内核电源噪声的影响,从不通过该电源的模块。但这也失去了输入时钟域输出时钟的相位对齐关系,因此更适合高精度频率综合和不太关注相位关系的应用。


(3)零延迟缓冲器

MMCM 也可用于生成零延迟缓冲器时钟。 零延迟缓冲器对于将单个时钟信号扇出多个目的地,并且它们之间偏差较低的应用非常有用。 如下图所示。 除了反馈信号驱动芯片外,电路板布线反馈还旨在将布线与外部组件相匹配。 假设时钟沿在此配置中 FPGA 与外部组件的输入对齐。 CLKIN 和 CLKFBIN 输入时钟缓冲器必须在同一个时间 bank 中。

这种方法有点像方法1,但反馈信号和时钟信号都输出了FPGA因此,外部会有更多的不可控因素。在某些情况下,由于外部组件的输入电容和 FPGA 无法准确对齐反馈路径电容器之间的负载差异。 例如,外部组件的输入电容为 1 pF 至 4 pF,而 FPGA 输入电容约为 8 pF。 信号率存在差异,基本上是歪斜的。 设计人员需要意识到这种影响以确保时序。

        这种应用适用于单个外部时钟源供给需要保持相位关系的多个数字系统。


4、总结与参考

  • PLL与MMCM作为FPGA底层内嵌的时钟资源,最大的作用就是实现频率综合、去抖动和去偏斜,本质上就是提供更高质量的时钟
  • PLL与MMCM的基础应用还是非常简单的,但是一些高级应用要用熟练也需要相当多的经验

参考资料1:FPGA - 7系列 FPGA内部结构之Clocking -03- 时钟管理模块(CMT)_Vuko-wxh的博客-CSDN博客

参考资料2:xilinx 7系列FPGA理论篇——CMT时钟模块简介_fpga_start的博客-CSDN博客_cmt fpga


  • 📣博客主页:wuzhikai.blog.csdn.net
  • 📣本文由 孤独的单刀 原创,首发于CSDN平台🐵
  • 📣文章有任何问题,都可以在评论区和我交流📞!
  • 📣创作不易,您的支持是我持续更新的最大动力!如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章