在 Xilinx 的 FPGA 中,时钟管理器称为 Clock Management ,简称 CMT 。常用到的 DCM / PLL / MMCM 都包含在 CMT 中。
PLL
PLL 简介
PLL 就是锁相环,具有时钟倍频、分频,调节相位等都是可以用 PLL ,而且 PLL 是一个模拟电路,它产生的频率比 DCM 更加准确,jitter 也更好,但 PLL 无法动态调整相位。
PLL 组成
1. 鉴频鉴相器
2. 电荷泵
3. 环路滤波器
4. 压控振荡器
PLL 在芯片上的位置
DLL
DLL 简介
DLL 主要由一个延时线和控制逻辑组成。延时线对时钟输入端 CLKIN 产生一个延时,时钟分布网线将该时钟分配到器件内的各个寄存器和时钟反馈端 CLKFB ;控制逻辑在反馈时钟到达时采样输入时钟以调整二者之间的偏差,实现输入和输出的零延时。
具体工作原理是:控制逻辑在比较输入时钟和反馈时钟的偏差后,调整延时线参数,在输入时钟后不停地插入延时,直到输入时钟和反馈时钟的上升沿同步,锁定环路进入“锁定”状态,只要输入时钟不发生变化,输入时钟和反馈时钟就保持同步。DLL 可以被用来实现一些电路以完善和简化系统级设计,如提供零传播延迟,低时钟相位差和高级时钟区域控制等。
DLL 的优点
- 实现零时钟延时,消除了时间分配延时,实现了时钟闭环控制
- 可用于外部芯片的同步,使得内外时钟一体化。
DLL 与 PLL 区别
DLL 与 PLL 的主要不同在于 DLL 用延时线代替了 PLL 的压控振荡器,延时线产生输入时钟的延时输出。时钟分布网络把时钟送到内部寄存器的时钟端口,控制逻辑对输入时钟和反馈时钟进行抽样、比较,调整延时线。两者的实现方式如下图所示。
DCM
DCM 是比较早的 FPGA 中使用的,某些 Sparten-3 和 Virtex-4 ,后面的器件不再使用了。在 Virtex-4 中,CMT 包括一个P LL 和两个 DCM 。DCM 的核心是 DLL ,即延迟 Locked Loop ,它是一个数字模块,可以产生不同相位的时钟,分频,倍频,相位动态调整等,但精度有限。
DCM 在芯片上的位置
MMCM
MMCM 是混合模式时钟管理器,它的官方解释是:这是一个 PLL ,上面加上了 DCM 的一小部分以进行精细的相移(这就是它的混合模式的原因 PLL 是模拟的,但是相移是数字的) 。它是在 PLL 的基础上加上了相位动态调整功能,因为 PLL 是模块电路,而动态调相是数字电路,所以叫混合模式。
- Virtex-6 中也只有 MMCM 。
- 7系列 FPGA 中,每个 CMT 包含一个 MMCM 和一个 PLL 。
- Ultrascale 系列 FPGA 中,一个 CMT 包含一个 MMCM 和两个 PLL 。
MMCM相对PLL的优势就是相位可动态调整,但 PLL 占用的面积更小。
MMCM 在芯片上的位置
参考链接
- PLL datasheet
https://www.xilinx.com/support/documentation/ip_documentation/pll_module.pdf
https://www.xilinx.com/support/documentation/user_guides/ug572-ultrascale-clocking.pdf
https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf
- DCM datasheet
https://www.xilinx.com/support/documentation/application_notes/xapp462.pdf
- MMCM datasheet
www.xilinx.com/support/documentation/ip_documentation/mmcm_module.pdf