前言
之前移植接触的都是Xilinx7系列的板子。项目需要使用Xilinx5系列的板子,两者的时钟单元不一样。
在网上搜集了一些资料,总结一下DCM\PLL\MMCM之间的差别。
环境
- 无
正文
在 Xilinx FPGA 中,时钟管理器称为时钟管理,简称 CMT。我们使用的DCM /PLL/MMCM都包含在CMT中。
DCM是旧技术,在Spartan-3和Virtex-4系列中使用。Spartan-6和 Virtex-5系列同时使用PLL和DCM。在Virtex-6系列中开始使用MMCM,且Virtex-6中只有MMCM。7系列中同时使用PLL和MMCM。UltraScale/UltraScale+系列也是用PLL和MMCM的组合。
器件 | 时钟管理单元(CMT) | 备注 |
---|---|---|
Spartan-3和Virtex-4 | DCM | |
Spartan-6和 Virtex-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具有一些更加高级的功能,一般动态配置的时候会使用。
附件
无