目录

前言也很重要:

简介:

数字时钟管理器(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的时钟管理器资源,看见我曾经转载的一篇博文,【FPGA】Spartan-6的时钟管理器(CMT),写的有点官方,生冷,但也可以参考。

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


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

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

原来,这在不同的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原语。

一般来说,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版本)。

DCM、PLL、PMCD、MMCM的区别与联系?相关推荐

  1. DCM和PLL和MMCM的差别

    前言 之前移植接触的都是Xilinx7系列的板子.项目需要使用Xilinx5系列的板子,两者的时钟单元不一样. 在网上搜集了一些资料,总结一下DCM\PLL\MMCM之间的差别. 环境 无 正文 ​ ...

  2. (96)FPGA PLL与MMCM区别?

    (96)FPGA PLL与MMCM区别? 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA PLL与MMCM区别? 5)结语 1.2 FPGA简介 FPGA(Fi ...

  3. (97)FPGA DCM与PMCD区别?

    (97)FPGA DCM与PMCD区别? 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA DCM与PMCD区别? 5)结语 1.2 FPGA简介 FPGA(Fi ...

  4. 锁相环PLL/MMCM的使用

    文章目录 锁相环PLL/MMCM的使用 DCM/DLL/PLL/MMCM区别 锁相环PLL/MMCM的使用 DCM/DLL/PLL/MMCM区别 对于FPGA开发者来说,DCM/DLL/MMCM/PL ...

  5. PLL和DLL的区别

    目录 DLL PLL 从应用角度对比 从内部结构对比 小结 DLL和PLL是两个完全不同的东西,用在不同的地方. DLL DLL-Delay locked loop用在数字电路中,用来自动调节一路信号 ...

  6. 小武学fpgastep5

    时钟ip核的使用 PLL跟MMCM的区别 mmcm可以动态调正,可以输出反向等等啥的.pll不可以动态调整(简要理解). BUFG全局时钟 控制任何地方的时钟 CLOCK REGION bufr 局部 ...

  7. MMCM与PLL的区别

    锁相环是一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号的频率和相位.因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路. 锁相环在工作的过程中 ...

  8. FPGA之道(49)DCM与PLL

    文章目录 前言 DCM与PLL PLL模块基本端口简介 时钟输入.输出端口 时钟反馈端口 PLL锁定指示端口 PLL复位端口 PLL配置端口 DCM模块基本端口简介 时钟输入端口 时钟输出端口分类 时 ...

  9. 从底层结构开始学习FPGA(16)----PLL/MMCM IP的定制与测试

    目录 系列目录与传送门 1.PLL IP的定制 ①.第一页 ②.第二页 ③.第三页 ④.第四页 ⑤.第五页 2.PLL IP的例化与测试 2.1.例化一个PLL IP核 2.2.编写testbench ...

最新文章

  1. 定时备份MySQL数据库
  2. androidstudio mac mini_GitHub - jp1017/AndroidStudioPlugins: Android Studio 常用插件及浅释
  3. jzoj3913-艰难的选择【差分,统计】
  4. 20180713 考试记录
  5. Pandas 文本数据方法 cat()
  6. 国际研究机构:阿里巴巴语音AI中国第一
  7. Excel——keil5内存数据进制转换
  8. windows下安装VM虚拟机和Ubuntu系统(附注册密钥)
  9. PROXY SERVER 代理服务器
  10. GStreamer 简化 Linux 多媒体开发
  11. c语言冒泡法输出最小值,C语言冒泡排序法及冒泡法思路
  12. LimeSDR DAB发射 RTL SDR DAB接收
  13. hosts文件位置在哪
  14. oracle sys_context()函数
  15. 共享单车之数据可视化
  16. Win11彻底卸载WSL2系统(去除导航窗格Linux图标)
  17. 基于Distiller的模型压缩工具简介
  18. 吃透 Vue 项目开发实践|16个方面深入前端工程化开发技巧【上】
  19. 搜索引擎高效使用技巧
  20. plotly入门(vue项目中)

热门文章

  1. 2005-3-28 + 探索ASP.NET Forum (1) 最初的印象
  2. pl sql如何调试oracle存储过程,PL/SQL Developer中调试oracle的存储过程
  3. linux 物理内存统计,说说free命令  + Linux可用内存统计方法
  4. java 跨域_springboot解决跨域CROS问题,用注解@CrossOrigin
  5. java检测按键_java – 在控制台中检测按键
  6. android 系统的切图方式_UI设计切图规范
  7. bios设置 联想m8000t_联想怎样设置双显卡模式 联想设置双显卡模式方法【详解】...
  8. python 修改xml_如何在python中更新/修改XML文件?
  9. 2021年春季学期-信号与系统-第八次作业参考答案-第九小题
  10. 2021年春季学期-信号与系统-第一次作业参考答案-第四题