0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何把握FPGA的数字时钟管理器

电子设计 来源:EDN 作者:Sharad Sinha 2021-02-13 17:02 次阅读

把握DCM、PLL、PMCD和MMCM知识是稳健可靠的时钟设计策略的基础。

赛灵思在其FPGA中提供了丰富的时钟资源,大多数设计人员在他们的FPGA设计中或多或少都会用到。不过对FPGA设计新手来说,什么时候用DCM、PLL、PMCD和MMCM四大类型中的哪一种,让他们颇为困惑。赛灵思现有的FPGA中没有一款同时包含这四种资源(见表1)。

pIYBAGASfNeAQqQkAAJNt6n9Y2w556.png

这四大类中的每一种都针对特定的应用。例如,数字时钟管理器(DCM)适用于实现延迟锁相环(DLL)、数字频率综合器、数字移相器或数字频谱扩展器。DCM还是镜像、发送或再缓冲时钟信号的理想选择。另一种时钟资源相位匹配时钟分频器(PMCD)可用于实现相位匹配分配时钟或相位匹配延迟时钟。

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

在深思设计实现细节时,把这些通常用法记在心里,有助于理清时钟选择的思路。对于长期产品发展规划而言,在制定合适的时钟策略时,应考虑各个器件系列之间的兼容性。下面让我们深入了解一下这些时钟资源。

您可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。

数字时钟管理器

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

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

o4YBAGASfOWAFhlAAAHeJ6zFnro831.png

一般来说,DLL与PLL类似。但与PLL不同的是DLL不含压控振荡器(VCO)。PLL会一直存储相位和频率信息,而DLL只存储相位信息。因此,DLL略比PLL稳定。DLL和PLL这两种类型都可以使用模拟和数字技术设计,或者混合两种技术设计。但赛灵思器件中的DCM采用全数字化设计。

由于DCM可以在时钟路径上引入延迟,比如您就可使用DCM可以精确地为DRAM生成行和列访问选通信号的时序。与此类似,数据总线上的各个数据位可以在不同的时间到达。为了正确对数据位采样,接收端的时钟信号必须适当地与所有数据位的到达保持同步。如果接收器使用发射时钟,可能会要求延迟从发送端到接收端的时钟信号。

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

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

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

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

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

相位匹配时钟分频器

设计人员可使用相位匹配时钟分频器(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版本)。

pIYBAGASfPOAAAfYAAGeOTfnu2U634.png

混合模式时钟管理器

另一种类型的时钟资源——混合模式时钟管理器(MMCM),用于在与给定输入时钟有设定的相位和频率关系的情况下,生成不同的时钟信号。不过与DCM不同是,MMCM使用PLL来完成这一工作。Virtex-6FPGA中的时钟管理模块(CMT)有两个MMCM,而Virtex-7中的CMT有一个 MMCM和一个PLL。Virtex-6器件中的MMCM没有扩频功能,因此输入时钟信号上的扩频不会被滤波,将直接被传送给MMCM输出时钟。但 Virtex-7FPGA的MMCM却有扩频功能。

Virtex-6FPGA中的MMCM要求插入一个校准电路,以便在用户复位或用户断电后确保MMCM正确运行。赛灵思ISE设计套件11.5版本及更高版本能够在设计的MAP阶段自动插入必要的校准电路。若使用赛灵思ISE 的更早版本,则需要使用赛灵思技术支持部提供的设计文件手动插入校准电路。最后需要注意的是,在本移植该设计,以便用ISE11.5版本或更高版本实现时,必须手动移除校准电路,或通过适当设置每个MMCM上的综合属性,禁用自动插入功能。详细介绍请参阅赛灵思答复记录AR#33849。

对7系列器件中的MMCM就不存在这样的问题,因为这些FPGA只得到ISE13.1版本和更高版本以及新型Vivado设计套件的支持。Virtex-6系列中提供的MMCM间专用走线可便于用户将全局时钟资源用于设计的其余部分。

图3显示了Virtex-6FPGA中的MMCM原语。各个端口的详细介绍请参阅Virtex-6FPGA时钟资源用户指南(UG362,2.1版本)。图 4显示了赛灵思7系列FPGA中的MMCM原语,有关详细介绍请参阅7系列FPGA时钟资源用户指南(UG472,1.5版本)。

o4YBAGASfQGAfU_sAAPQoBTAu3Q768.png

o4YBAGASfQ6AX1HgAAOctHZeckI770.png

锁相环

设计人员使用锁相环(PLL)主要用于频率综合。使用一个PLL可以从一个输入时钟信号生成多个时钟信号。结合DCM使用,还可以用作抖动滤波器。Spartan-6、Virtex-5和7系列FPGA中都提供有PLL。Spartan-6和 Virtex-5中均有专门的“DCM到PLL”和“PLL到DCM”走线。Spartan-6和Virtex-5中的PLL输出是非扩频的。对这两种器件而言,如果设计使用多个不同时钟,都可以用PLL替代DCM。PLL时钟输出具有宽范的配置范围,而DCM的输出是预定的,不可配置。PLL和DCM的选择还是取决于设计的要求。不过如果相移是必需的,就应该明确地选择DCM。

同时,7系列器件中的PLL所实现的功能没有 MMCM所实现的多。因此虽然MMCM是建立在PLL架构之上,但7系列器件中也有独立的PLL。图5显示了Virtex-5FPGA中的PLL原语。各个端口的详细介绍请参阅Virtex-5用户指南(UG190,5.4版本)。

pIYBAGASfR2AU-qbAAL-T1HJSrM250.png

设计移植

掌握四种主要的时钟资源之间的差异及其在不同器件系列中的可用性非常重要。同时,在不同的系列中,相似的资源(比如DCM)可能在功能上并不完全相同。例如,Spartan-6FPGA中的DCM支持扩频时钟,但Virtex-5和Virtex-5器件中的DCM就不支持。

在规划未来设计向更高端系列移植时,除了确保功能,为给定设计选择正确的时钟资源也很重要。如表1所示,Virtex-6和7系列中的MMCM能够与之前系列中的DCM向后兼容。但需要判断在多大程度上支持向后兼容性,因为所有这些时钟资源都具有多功能性,提供与时钟相关的多种不同功能。在制定产品长期发展规划时,必须对兼容性了如指掌。

(作者:Sharad Sinha,南洋理工大学)
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593266
  • 时钟管理器
    +关注

    关注

    0

    文章

    3

    浏览量

    5293
收藏 人收藏

    评论

    相关推荐

    FPGA时钟电路结构原理

    FPGA 中包含一些全局时钟资源。以AMD公司近年的主流FPGA为例,这些时钟资源由CMT(时钟管理器
    发表于 04-25 12:58 64次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>电路结构原理

    FX3无法启动启动,电脑设备管理器不能识别产品

    电脑连接产品,设备管理器和USB Control Center都无法识别产品, 无法进行FX3->SPI flash,产品FX3不能启动与FPGA有关系吗?谢谢。
    发表于 04-15 17:00

    KeiL5仿真时报错, 只能从任务管理器关闭它是为什么?

    KeiL5 仿真时报错,只能从任务管理器关闭它, 重启
    发表于 04-07 06:44

    如何正确应用FPGA的四种时钟资源?

    把握DCM、PLL、PMCD和MMCM知识是稳健可靠的时钟设计策略的基础。赛灵思在其FPGA中提供了丰富的时钟资源,大多数设计人员在他们的FPGA
    发表于 10-30 11:47 642次阅读
    如何正确应用<b class='flag-5'>FPGA</b>的四种<b class='flag-5'>时钟</b>资源?

    Xilinx FPGA的GTx的参考时钟

    本文主要介绍Xilinx FPGA的GTx的参考时钟。下面就从参考时钟的模式、参考时钟的选择等方面进行介绍。
    发表于 09-15 09:14 2437次阅读
    Xilinx <b class='flag-5'>FPGA</b>的GTx的参考<b class='flag-5'>时钟</b>

    FPGA的锁相环PLL给外围芯片提供时钟

    FPGA的锁相环PLL给外围芯片提供时钟 FPGA锁相环PLL(Phase-Locked Loop)是一种广泛使用的时钟管理电路,可以对输
    的头像 发表于 09-02 15:12 1512次阅读

    Xilinx 7系列FPGA时钟结构解析

    通过上一篇文章“时钟管理技术”,我们了解Xilinx 7系列FPGA主要有全局时钟、区域时钟时钟
    发表于 08-31 10:44 1283次阅读
    Xilinx 7系列<b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>结构解析

    高性能时钟有哪些特点 Xilinx 7系列时钟管理技术解析

      业界高端FPGA的卓越性能和高口碑声誉都有哪些因素了?其中很重要的一个因素就是FPGA内部丰富的时钟资源使得FPGA在处理复杂时钟结构和
    发表于 08-31 10:44 567次阅读

    OneCommand管理器应用程序10.2版

    电子发烧友网站提供《OneCommand管理器应用程序10.2版.pdf》资料免费下载
    发表于 08-22 14:13 0次下载
    OneCommand<b class='flag-5'>管理器</b>应用程序10.2版

    MCU类设备的电源管理器框架使用

    电子发烧友网站提供《MCU类设备的电源管理器框架使用.pdf》资料免费下载
    发表于 08-16 16:41 0次下载
    MCU类设备的电源<b class='flag-5'>管理器</b>框架使用

    在烧录完E203软核后,调试连接开发板时设备管理器中没有JTAG-DEBUGGER如何解决?

    FPGA里。现在遇到的问题是,在使用第三方调试连接PC和开发板时(相应驱动已经安装,调试管脚连线也按照约束文件一一对应),但是电脑上的设备管理器中没有显示“JTAG-DEBUGGE
    发表于 08-12 06:33

    Arm安全报警管理器规范

    Arm®安全警报管理器(SAM)允许您对多达64个安全事件的检测应用编程响应。 其中一些安全事件是在子系统内以数字方式检测的,其他可选事件可以由SoC集成的外部模拟和数字传感检测。
    发表于 08-09 06:43

    用于 Linux 管理 API 手册的 PTP 时钟管理器

    用于 Linux 管理 API 手册的 PTP 时钟管理器
    发表于 07-04 18:31 0次下载
    用于 Linux <b class='flag-5'>管理</b> API 手册的 PTP <b class='flag-5'>时钟</b><b class='flag-5'>管理器</b>

    fpga pcie插到主板,PC设备管理器无法识别

    大佬们通过pcie延长线连接主板pcie插槽和板子上的金手指pcie代码烧到板子里重启电脑了但设备管理器其他设备没出现PCI内存控制是什么原因呀救救孩子
    发表于 05-22 09:49

    为什么在管理器中找不到“ESP8266”库?

    管理器中找不到“ESP8266”库
    发表于 05-06 08:38