锁相环PLL/MMCM的使用

文章目录

锁相环PLL/MMCM的使用

DCM/DLL/PLL/MMCM区别

对于FPGA开发者来说,DCM/DLL/MMCM/PLL这些模块几乎天天都在用,但很它们之间有设么差异呢,可能有些人还没有搞清楚。

在Xilinx系列的FPGA中,时钟管理器叫做Clock Management,简称CMT。我们所用到的DCM/PLL/MMCM都包含在CMT中。

DCM是在早期的Xilinx 系列FPGA芯片中使用的,比如早期的Sparten-3,Virtex-4等其他芯片。例如在Virtex-4中,CMT包括一个PLL和两个DCM。DCM的核心是DLL,即Delay Locked Loop,它是一个数字模块,可以产生不同相位的时钟、分频、倍频、相位动态调整等,但精度有限。

PLL的英文全称为Phase Locked Loop,这个模块大家应该不陌生,时钟倍频、分频、调节相位等功能的实现都可以借助PLL来实现。由于PLL是一个模拟电路,虽然它产生的频率比DCM更加准备,jitter也更好,占用的面积更小,但是它PLL不能动态的调整相位,这是PLL相对于DCM的不足。

MMCM的全英文魏Mixed Mode Clock Manager,官方解释: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是在Virtex-6中被引入的,而且Virtex-6中也只有MMCM。

目前到了7系列和Ultrascale是同时包含有MMCM和PLL单元的。在7系列的 FPGA中,最多包含有24个CMT,而每个CMT包含一个MMCM和一个PLL。在Ultrascale中,一个CMT包含一个MMCM和 两个PLL。

在Vivado软件建立IP时中,在使用Clock Wizard时,我们可以选择使用MMCM或者PLL。他们的区别仅限下面两幅图红框中设置时的区别。

锁相环PLL/MMCM的使用

锁相环PLL/MMCM的使用

上一篇:华云大咖说 | 安超DCM给数据中心“做主”


下一篇:java-如何以编程方式获取Hibernate模型的jOOQ表?