DCM、PLL、PMCD、MMCM的区别与联系?

目录

前言也很重要:

简介:

数字时钟管理器(DCM)

相位匹配时钟分频器(PMCD)


前言也很重要:

由于XIlinx FPGA分为很多器件系列,而且不同系列的FPGA包含的时钟管理资源还不一样,于是我们经常遇到DCM、PLL、PMCM、MMCM这些专用术语,出现的比较混乱,让人很是迷惑。

例如在Spartan_6系列的FPGA中,我曾看到它的时钟管理资源是时钟管理器(CMT),时钟管理器(CMT)中又包含一个PLL和两个DCM,且这两者的作用还不同,也就是各尽其职。

如下图,为Spartan_6系列FPGA的CMT片内布局图,可见每一个CMT包含一个PLL和两个DCM。

Spartan-6 FPGA CMT片内布局图

有关Spartan_6系列FPGA的时钟管理器资源,看见我曾经转载的一篇博文,【FPGA】Spartan-6的时钟管理器(CMT),写的有点官方,生冷,但也可以参考。

我会根据我的理解,重新整理这些内容,但不是现在。(因为水平还不够!)


在手上师兄门留下的项目中用到的FPGA是7系列的FPGA,里面用到的时钟管理资源是PLL和MMCM,第一次接触时,我很迷惑,什么是MMCM(黑人问号)?PLL我还能知道,这是耳熟能详,大名鼎鼎的锁相环,但那时在FPGA中具体的作用我还不是很清楚。

今天的这篇博文就来说明一下,为什么见到的FPGA中一会是DCM和PLL组合,又一会是PLL和MMCM?

原来,这在不同的FPGA中拥有的时钟资源还不一样,到底是怎么样的一种情况呢?请看下图:

赛灵思在其FPGA中提供了丰富的时钟资源

 

简介:

(注:此部分来自于FPGA设计小Tips:如何正确使用FPGA的时钟资源)(以下内容还不是我自己的内容,我总有一天会把它改成自己的内容,并且讲的更加的清晰,现在看来下面讲的都不是人话,真难受!)

这四大类中的每一种都针对特定的应用。

例如,数字时钟管理器(DCM)适用于实现延迟锁相环(DLL)、数字频率综合器、数字移相器或数字频谱扩展器。 DCM还是镜像、发送或再缓冲时钟信号的理想选择。

另一种时钟资源相位匹配时钟分频器(PMCD)可用于实现相位匹配分配时钟或相位匹配延迟时钟。

锁相环(PLL)和混合模式时钟管理器(MMCM)处理的工作有许多是相同的,比如频率综合、内外部时钟抖动滤波、时钟去歪斜等。这两种资源也可用于镜像、发送或再缓冲时钟信号。


数字时钟管理器(DCM)

顾名思义,数字时钟管理器(DCM)是一种用于管理时钟架构并有助于时钟信号成形和操控的模块。DCM内含一个延迟锁相环(DLL),可根据输入时钟信号,去除DCM输出时钟信号的歪斜,从而避免时钟分配延迟。

DLL 内含一个延迟元件和控制逻辑链路。延迟元件的输出是输入时钟延迟所得。延迟时间取决于延迟元件在延迟链路中的位置。这种延迟体现为针对原始时钟的相位改变或相移,这就是所谓的“数字相移”。图1所示的即为Virtex-4器件中的典型DCM模块。根据Virtex-4FPGA用户指南(UG070,2.6 版本)的介绍,Virtex-4中有三种不同的DCM原语。

Virtex-4中有三种不同的DCM原语

一般来说,DLL与PLL类似。但与PLL不同的是DLL不含压控振荡器(VCO)。(什么是压控振荡器?可见:压控振荡器,百度百科,或压控振荡器的原理和作用,电子发烧友,压控振荡器(百度文库),反正都看不太明白!)

PLL会一直存储相位和频率信息,而DLL只存储相位信息。因此,DLL略比PLL稳定。DLL和PLL这两种类型都可以使用模拟和数字技术设计,或者混合两种技术设计。但赛灵思器件中的DCM采用全数字化设计。

有时设计可能需要一个更高的时钟频率来运行FPGA上的逻辑。但是,只有低频率输出的时钟源可以用。此时可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。这种技术称为“数字频率综合”。(您可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。

设计人员使用扩频时钟并通过调制时钟信号来降低时钟信号的峰值电磁辐射。未经调制的时钟信号的峰值会产生高电磁辐射。但经调制后,电磁辐射被扩展到一系列时钟频率上,从而降低了所有频点的辐射。一般来说,如果需要满足一定的最大电磁辐射要求和在FPGA上执行高速处理的时候(比如说通信系统中接收器使用的解串器),就需要使用扩频时钟。因此,FPGA中的DCM将乘以输入扩频时钟信号,在内部生成高频时钟信号。 DCM的输出必须准确地跟随扩频时钟,以保持相位和频率对齐并更新去歪斜和相移。DCM相位和频率对齐的恶化会降低接收器的歪斜裕量。

  建立时钟的镜像需要将时钟信号送出FPGA器件,然后又将它接收回来。可以使用这种方法为多种器件的板级时钟信号去歪斜。DCM能够把时钟信号从FPGA发送到另一个器件。这是因为FPGA的输入时钟信号不能直接路由到输出引脚,没有这样的路由路径可用。如果仅需要发送时钟信号,那么使用DCM将时钟信号发送到输出引脚,可以确保信号的保真度。另外也可选择在时钟信号发送之前,将DCM输出连接到ODDR触发器。当然也可以选择不使用DCM,仅使用ODDR 来发送时钟信号。往往时钟驱动器需要将时钟信号驱动到设计的多个组件。这会增大时钟驱动器的负荷,导致出现时钟歪斜及其它问题。在这种情况下,需要采用时钟缓冲来平衡负载。

  时钟可以连接到FPGA上的一系列逻辑块上。为确保时钟信号在远离时钟源的寄存器上有合适的上升和下降时间(从而将输入输出时延控制在允许的范围内),需要在时钟驱动器和负载之间插入时钟缓冲器。DCM可用作时钟输入引脚和逻辑块之间的时钟缓冲器。

  最后,还可以使用DCM将输入时钟信号转换为差分I/O标准信号。例如,DCM可以将输入的LVTTL时钟信号转换为LVDS时钟信号发送出去。

相位匹配时钟分频器(PMCD)

设计人员可使用相位匹配时钟分频器(PMCD)来生成相位匹配的分频输入时钟信号。这与分频时钟的DCM频率综合相似。PMCD还能生成设计中相位匹配但有延迟的时钟信号。在后一种情况下,PCMD能够在输入时钟信号和其它PMCD输入时钟信号之间保持边缘对齐、相位关系和歪斜。与DCM不同的是,在分频器的值可配置的情况下,赛灵思器件中现有的PMCD生成的时钟信号仅按2、4和8分频。这意味着PMCD生成的时钟信号的频率是输入时钟信号的1/2、1/4和1/8。在如Virtex-4FPGA这样的赛灵思器件中,PMCD紧邻 DCM并与其位于同一列上。每一列有两个PMCD-DCM对。因此DCM的输出可以驱动PMCD的输入。

  由于DCM还负责处理去歪斜,因此只要不需要去歪斜时钟,设计人员就可以使用不带DCM的PMCD。通过专用引脚,还可以把一列中的两个PMCD连接起来。图2是 Virtex-4器件中的PMCD原语。详细内容请参阅Virtex-4FPGA用户指南(UG070,2.6版本)。

Virtex-4器件中的PMCD原语

 

 

  • 7
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值