DCM和PLL和MMCM的差别

fengbohan1 发布于 2022-05-14 13925 次阅读


前言

之前移植接触的都是Xilinx7系列的板子。项目需要使用Xilinx5系列的板子,两者的时钟单元不一样。

在网上搜集了一些资料,总结一下DCM\PLL\MMCM之间的差别。

环境

正文

​ 在 Xilinx FPGA 中,时钟管理器称为时钟管理,简称 CMT。我们使用的DCM /PLL/MMCM都包含在CMT中。

DCM是旧技术,在Spartan-3Virtex-4系列中使用。Spartan-6Virtex-5系列同时使用PLLDCM。在Virtex-6系列中开始使用MMCM,且Virtex-6中只有MMCM。7系列中同时使用PLLMMCMUltraScale/UltraScale+系列也是用PLLMMCM的组合。

器件 时钟管理单元(CMT) 备注
Spartan-3Virtex-4 DCM
Spartan-6Virtex-5 DCM\PLL
Virtex-6 MMCM
7系列 MMCM\PLL 7系列之所以使用MMCM和PLL的组合,是因为PLL更小,可以提供更多的时钟管理资源。此外PLL通过MIG和DDRx-SDRAM控制器的IO结构紧密绑定。
UltraScale/UltraScale+ MMCM\PLL 与7系列相比,UltraScale/UltraScale+中的PLL功能更加精简。与IO的绑定更加紧密。主要用于DDRx-SDRAM高速IO端口。尽管仍可以使用PLL作为时钟,但是不推荐。推荐使用MMCM。

名词解释

名词 全称 解释
DCM digital clock manager 是数字时钟管理器,核心是一个延迟锁定环路DLL(Delay locked Loop)。可以对时钟进行纠偏,生成不同相位的时钟。动态改变时钟的相位。
PLL Phase Locked Loop PLL是模拟器件,除动态和精细相移之外,几乎可以完成所有DCM的功能。除此之外还可以进行更精确的频率合成,可以同时生成多个不同的时钟频率。具有比DCM更好的抖动性能。
MMCM Mixed-Model Clock Manager 混合时钟管理单元,由一个PLL和DCM的一小部分组成。混合模式是因为PLL是模拟的,DCM是数字的。MMCM可以完成PLL的所有功能,还可以进行精确的相移(依赖DCM的部分)。

DCM可以精确微调相位,也可以用于分频。但是精度有限。

PLL产生的频率比DCM更多,抖动更好,时钟信号质量更好。但是PLL无法动态调整相位。

MMCM由PLL和DCM的一小部分组成,同时具有PLL和MMMCM的优点。但是占用面积比较大。

MMCM_ADV 、PLL_ADV、 DCM_ADV具有一些更加高级的功能,一般动态配置的时候会使用。

附件

参考文献

  1. Xlinx论坛中关于DCM、MMCM 和 PLL的讨论
  2. The difference between PLL and MMCM
  3. DCM、PLL、PMCD、MMCM的区别与联系?
  4. PLL/DLL/DCM/MMCM - Karatos
  5. Differences : MMCM vs PLL vs DCM