xilinx fpga中pll与mmcm的区别
Xilinx中的PLL(锁相环)和MMCM(混合模式时钟管理器)都是用于时钟管理的关键组件,但它们之间存在一些显著的区别。以下是对两者的详细比较:
1. 功能特性
- PLL(锁相环):
- 主要用途是作为频率合成器,能够产生与输入时钟同步的输出时钟信号。
- 支持时钟倍频、分频、相位调整等功能。
- 是一个模拟电路,产生的频率精度较高,抖动(jitter)性能较好。
- 无法动态调整相位。
- 在Xilinx 7系列FPGA中,PLL是MMCM功能的一个子集。
- MMCM(混合模式时钟管理器):
- 在PLL的基础上加上了相位动态调整功能,因此被称为混合模式。
- 支持比PLL更高级的时钟管理功能,如直接连接到高性能时钟(HPC)或缓冲器输入输出(BUFIO)等。
- 提供比Virtex-5 DCM更高精度的精确相位调整功能(相位控制精度低于30ps)。
- 支持动态相位移动和扩频时钟的产生。
- 输出的时钟个数上限达到7个(而PLL的输出时钟个数上限为6个)。
2. 结构与应用
- PLL:
- 结构相对简单,包括输入时钟复用器、分频器、相位频率检测器(PFD)、压控振荡器(VCO)、电荷泵(CP)、环路滤波器(LF)等组件。
- 适用于较简单的时钟管理需求。
- MMCM:
- 结构类似于PLL,但增加了相位动态调整功能。
- 适用于更复杂的时钟管理场景,如需要精确相位控制、多个时钟输出或跨时钟区域的时钟分配等。
3. 配置与使用
- PLL:
- 在Xilinx的Vivado设计套件中,可以通过选择PLL IP核并进行参数配置来使用。
- 配置选项相对简单,主要包括输入时钟频率、输出时钟频率、分频倍频比率、相位调整量等。
- MMCM:
- 同样可以通过选择MMCM IP核并进行参数配置来使用。
- 配置选项更加丰富,包括动态相位移动、扩频时钟产生、时钟输出个数等。
- MMCM还提供了多种原语(如MMCME2_BASE和MMCME2_ADV),以满足不同的时钟管理需求。
4. 性能与资源占用
- PLL:
- 由于结构相对简单,因此占用的FPGA资源较少。
- 产生的时钟信号抖动性能较好,但相位调整能力有限。
- MMCM:
- 由于增加了相位动态调整功能,因此占用的FPGA资源相对较多。
- 提供的时钟管理功能更加灵活和强大,但可能增加设计的复杂性和资源占用。