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
    +关注

    关注

    1624

    文章

    21601

    浏览量

    601065
  • 时钟管理器
    +关注

    关注

    0

    文章

    3

    浏览量

    5308
收藏 人收藏

    评论

    相关推荐

    专为运行而设计:使用bq2018电源管理器IC的通用电池监控

    电子发烧友网站提供《专为运行而设计:使用bq2018电源管理器IC的通用电池监控.pdf》资料免费下载
    发表于 10-24 09:28 0次下载
    专为运行而设计:使用bq2018电源<b class='flag-5'>管理器</b>IC的通用电池监控<b class='flag-5'>器</b>

    TLV320AIC31的HPLOUT输出到音频管理器,音频管理器输出接到耳机,声音几乎听不到怎么处理?

    TLV320AIC31的HPLOUT后面接到音频管理器的输入,对我这边要求是,匹配阻抗600欧姆时,输出电压最大有效值800mv,请问TLV320AIC31的HPLOUT满足这样的输出要求吗,还是说必须
    发表于 10-12 07:02

    负载管理器的主要功能

    负载管理器(Load Manager)是计算机系统中的一个关键组件,它负责分配和管理计算资源,以确保系统运行的效率和稳定性。负载管理器的主要功能包括任务调度、资源分配、性能监控、故障恢复等。以下
    的头像 发表于 10-10 11:26 204次阅读

    FPGA如何消除时钟抖动

    FPGA(现场可编程门阵列)设计中,消除时钟抖动是一个关键任务,因为时钟抖动会直接影响系统的时序性能、稳定性和可靠性。以下将详细阐述FPGA中消除
    的头像 发表于 08-19 17:58 835次阅读

    NN325-Q1多重感应触摸管理器数据表

    电子发烧友网站提供《NN325-Q1多重感应触摸管理器数据表.pdf》资料免费下载
    发表于 08-06 09:42 0次下载
    NN325-Q1多重感应触摸<b class='flag-5'>管理器</b>数据表

    FPGA时钟电路结构原理

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

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

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

    四路集成电源设备电源管理器TPS2384数据表

    电子发烧友网站提供《四路集成电源设备电源管理器TPS2384数据表.pdf》资料免费下载
    发表于 04-07 09:26 0次下载
    四路集成电源设备电源<b class='flag-5'>管理器</b>TPS2384数据表

    超级电容管理器bq33100数据表

    电子发烧友网站提供《超级电容管理器bq33100数据表.pdf》资料免费下载
    发表于 04-01 10:13 2次下载
    超级电容<b class='flag-5'>管理器</b>bq33100数据表

    Windows 11 22H2新版任务管理器新增启用隐藏功能

    关于如何隐藏调用旧版任务管理器,网友 @thebookisclosed 分享了详细步骤。他指出,在现有 Windows 11 环境中,即使按 Ctrl+Shift+Esc 组合键也难以调出老版本的任务管理器,需通过特定路径“C:\Windows\SysWOW64\Task
    的头像 发表于 03-27 15:08 431次阅读

    fpga芯片是什么意思

    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,是一种可编程逻辑芯片,其逻辑电路可以通过编程修改,从而实现不同的功能。FPGA芯片由可编程逻辑单元、寄存
    的头像 发表于 03-14 16:37 2102次阅读

    FPGA数字时钟电路解析

    FPGA 在通信领域的应用可以说是无所不能,得益于 FPGA 内部结构的特点,它可以很容易地实现分布式的算法结构,这一点对于实现无线通信中的高速数字信号处理十分有利。
    发表于 01-24 13:46 694次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>数字</b><b class='flag-5'>时钟</b>电路解析

    FPGA时钟内部设计方案

    的)、频率限制和不同时钟管理器的抖动特性,以及能用于单个时钟域的时钟最大数量。 本文介绍了时钟设计方案中的每个部分,并推荐了一些设计方法。
    发表于 01-22 09:30 540次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>时钟</b>内部设计方案

    FPGA时钟的用法

    生成时钟包括自动生成时钟(又称为自动衍生时钟)和用户生成时钟。自动生成时钟通常由PLL或MMCM生成,也可以由具有分频功能的
    的头像 发表于 01-11 09:50 1583次阅读
    <b class='flag-5'>FPGA</b>中<b class='flag-5'>时钟</b>的用法

    如何在层堆栈管理器中定义单层板?

    如何在层堆栈管理器中定义单层(单面)板?电路板目前有两层,但Layer Stack Manager不允许我删除其中一个信号层。
    的头像 发表于 11-10 15:19 732次阅读