在7系列FPGA中,时钟管理单元(CMT)包含了混合模式时钟管理器(MMCM)和锁相环(PLL)。PLL是包含了MMCM功能的一个子集。CMT骨干网可用于链接CMT的时钟功能。CMT图(图3-1)展示了各种时钟输入源与MMCM/PLL之间连接的高级视图,时钟输入连接允许多个资源为MMCM/PLL提供参考时钟。
1.MMCMs和PLLs介绍
每个7系列FPGA最多支持24个时钟管理单元(CMT),而每个CMT都包含一个混合模式时钟管理器(MMCM)和一个锁相环(PLL)。
MMCMs和PLLs的主要功能包括频率综合、抖动滤波以及时钟去斜。它们能够处理广泛的频率范围,无论是作为外部还是内部时钟的抖动滤波器都能起到作用。具体来说,MMCM的功能更为强大,其时钟输出和分频能力均大于PLL。PLL则可以看作是MMCM功能的一个子集。
MMCM支持的其他功能有:
• 直接通过CLKOUT[0:3]将HPC连接到BUFR或BUFIO
• 提供反向时钟输出(CLKOUT[0:3]B)
• 提供CLKOUT6
• 提供CLKOUT4_CASCADE
• 提供CLKOUT0_DIVIDE_F的分数分频
• 提供CLKFBOUT_MULT_F的分数倍频
• 提供精细相位调整
• 提供动态相位调整
输入多路复用器可以从IBUFG、BUFG、BUFR、BUFH、GTs(仅CLKIN)中选择参考和反馈时钟。每个时钟输入都有一个可编程计数器分频器(D)。输入多路复用器从IBUFG、BUFG、BUFR、BUFH、GTs(仅CLKIN)中选择参考时钟和反馈时钟。每个时钟输入都有一个可编程的计数器分频器(D)。相位频率检测器(PFD)比较输入(参考)时钟和反馈时钟上升边缘的相位和频率。如果维持了最小的高/低脉冲,占空比就是次要的。
PFD用于生成一个与两个时钟之间的相位和频率成比例的信号。这个信号驱动电荷泵(CP)和环路滤波器(LF)来生成一个参考电压到压控振荡器(VCO)。PFD向电荷泵和环路滤波器产生一个上升或下降信号,以确定VCO应该工作在更高的频率还是更低的频率。当VCO工作在过高的频率时,PFD会激活一个下降信号,导致控制电压降低,从而降低VCO的工作频率。当VCO工作在过低的频率时,一个上升信号将增加电压。
VCO产生八个输出相位和一个可变相位用于精细相位调整。每个输出相位都可以被选择作为输出计数器的参考时钟(如图3-2和图3-3所示)。每个计数器都可以根据特定的客户设计进行独立编程。此外,还提供了一个特殊的计数器M。这个计数器控制MMCM和PLL的反馈时钟,允许进行广泛的频率合成。
除了整数分频输出计数器外,MMCMs还为CLKOUT0和CLKFBOUT添加了一个分数计数器。这增加了频率合成的灵活性,使得MMCM能够生成非整数的输出频率,从而满足更广泛的应用需求。
每个计数器都可以针对特定的客户设计进行独立编程。
此外,还提供了一个特殊的计数器M。这个计数器用于控制MMCM和PLL的反馈时钟,从而允许进行广泛的频率合成。
除了整数分频输出计数器外,MMCMs还为CLKOUT0和CLKFBOUT增加了一个分数计数器。分数计数器提供了更精细的频率控制,使得MMCMs能够生成非整数倍或分频的时钟信号,从而进一步扩展了可用的频率范围。这种灵活性使得MMCMs在需要精确控制时钟频率的应用中特别有用。通过适当编程,分数计数器可以实现高精度的频率调整,满足复杂系统中的时序要求。
2、MMCM 和 PLL 原语的应用
7系列FPGA的MMCM的原语有两种,分别是MMCME2_BASE和MMCME2_ADV。PLL原语也有两种,分别为PLLE2_BASE和PLLE2_ADV。
2.1 MMCME2_BASE
MMCME2_BASE是基本的混合模式时钟管理器,它提供了基本的时钟管理功能,如分频、倍频和相位调整等。它适用于大多数常见的时钟管理需求,并且相对简单易用。端口列在表3-1中。
使用MMCME2_BASE,可以轻松地实现基本的时钟管理需求。通过配置相应的端口和参数,可以实现输入时钟的相位锁定、频率转换以及占空比调整等功能。这使得MMCME2_BASE成为在FPGA设计中实现稳定可靠时钟信号的常用选择。
2.2 PLLE2_BASE
PLLE2_BASE原语提供了对独立PLL最常用功能的访问。它支持时钟去斜、频率合成、粗相位调整和占空比编程等功能。使用PLLE2_BASE,可以方便地实现基本的时钟同步和频率管理需求。通过配置相应的端口和参数,PLLE2_BASE能够实现输入时钟的相位锁定,从而生成稳定且准确的时钟信号。端口列在表3-2中,这些端口用于连接输入参考时钟、配置PLL的参数、以及输出生成的时钟信号等。通过合理地连接和配置这些端口,可以精确地控制PLL的行为,实现所需的时钟同步和频率转换功能。
需要注意的是,虽然PLLE2_BASE提供了基本的时钟管理功能,但在某些复杂的应用场景中,可能还需要使用更高级的原语或功能来满足特定的需求。例如,对于需要更高精度相位调整或更复杂时钟分配的应用,可以考虑使用更高级的PLL原语或结合其他时钟管理单元来实现。
2.3 MMCME2_ADV
MMCME2_ADV原语不仅提供了MMCME2_BASE的所有功能,还增加了时钟切换、动态重配置端口(DRP)访问以及动态精细相位调整等额外端口。这使得MMCME2_ADV在时钟管理方面更加灵活和强大。
通过时钟切换端口,MMCME2_ADV可以在多个时钟源之间进行选择,从而适应不同的应用场景和时序需求。这种灵活性使得设计师能够在FPGA设计中实现复杂的时钟分配和切换逻辑。
动态重配置端口(DRP)为MMCME2_ADV提供了在线配置的能力。通过DRP,设计师可以在系统运行过程中动态地改变MMCM的配置参数,从而实现时钟管理的实时调整和优化。这对于需要快速响应系统变化或进行时钟故障恢复的应用场景非常有用。
2.4 PLLE2_ADV
PLLE2_ADV是高级型的锁相环,PLLE2_ADV原语不仅提供了PLLE2_BASE的所有功能,还增加了时钟切换端口以及动态重配置端口(DRP)的访问功能。这使得PLLE2_ADV在时钟管理和配置方面具有更高的灵活性和可定制性。PLLE2_ADV的端口列在表3-4中。
通过时钟切换端口,PLLE2_ADV能够支持多个时钟源的选择,允许设计师在FPGA设计中根据应用需求灵活地切换不同的时钟源。这对于处理多种工作模式或动态调整时钟频率的场景非常有用。
动态重配置端口(DRP)的引入为PLLE2_ADV提供了在线配置的能力。通过DRP,设计师可以在系统运行过程中实时地修改PLL的配置参数,而无需重新加载整个设计。这种动态配置的能力使得PLLE2_ADV能够更好地适应系统变化,实现更高效的时钟管理。
7系列FPGA的MMCM和PLL是混合信号模块,旨在支持时钟网络去斜、频率合成和抖动减少。
压控振荡器(VCO)的工作频率可以通过以下关系确定:
其中M、D和O计数器如图3-2所示。M的值对应于CLKFBOUT_MULT_F设置,D的值对应于DIVCLK_DIVIDE,而O的值对应于CLKOUT_DIVIDE。
七个“O”计数器可以独立编程。例如,O0可以被编程为进行二分频,而O1被编程为三分频。唯一的限制是,由于单个VCO驱动所有计数器,因此所有输出计数器的VCO工作频率必须相同。
在实际应用中,根据设计需求,设计师可以通过配置MMCM和PLL的相应参数,来精确控制时钟信号的频率和相位。通过使用这些混合信号块,FPGA系统能够实现高性能、低抖动的时钟网络,确保数据在系统中正确、可靠地传输。此外,独立编程的O计数器为设计师提供了灵活性,可以根据不同的输出需求进行定制。
3、时钟网络去斜
在许多情况下,设计师不希望将时钟网络的延迟计入其I/O时序预算中,因此他们使用MMCM/PLL来补偿时钟网络的延迟。7系列FPGA支持这一特性。一个与参考时钟CLKIN频率相匹配的时钟输出(始终是CLKFBOUT)被连接到FPGA同一半部分的BUFG,并反馈回MMCM/PLL的CLKFBIN反馈引脚。其余的输出仍可用于将时钟分频以生成额外的合成频率。
在这种情况下,所有输出时钟与输入参考时钟之间都有明确的相位关系。MMCM或PLL的CLKOUT0至CLKOUT3可以用于级联到其他MMCMs/PLLs。然而,级联的MMCMs/PLLs之间的输出时钟存在相位偏移。
4、仅使用整数分频的频率合成
MMCMs和PLLs也可以用于独立的频率合成。在这种模式下,MMCM/PLL的反馈路径是内部的,这使得所有路由保持局部化,从而最小化了抖动。
5、分频频率合成
7系列FPGA在CLKOUT0输出路径上支持分数(非整数)分频。分数分频的分辨率为1/8或0.125,这实际上将可合成的频率数量增加了八倍。例如,如果CLKIN频率为100 MHz,并且M分频值设置为8,那么VCO频率为800 MHz。CLKOUT0可以进一步用于将800 MHz的VCO频率进行分数分频(例如,CLKOUT0_DIVIDE = 2.5,从而产生320 MHz的输出频率)。
当使用分数分频器时,用于分数模式的输出的占空比是不可编程的。
6、抖动滤波器
MMCMs和PLLs可以减少参考时钟固有的抖动。MMCM和PLL可以作为独立功能实例化,以支持在将外部时钟驱动到另一个块之前过滤其抖动。作为抖动滤波器,通常假定MMCM和PLL将作为缓冲器,并在输出上再生输入频率(例如,FIN = 100 MHz,FOUT = 100 MHz)。一般来说,通过将MMCM的BANDWIDTH属性设置为Low,可以实现更好的抖动滤波。将BANDWIDTH设置为Low可能会导致MMCM的静态偏移量增加。文章来源:https://www.toymoban.com/news/detail-858405.html
7、动态相位偏移接口
MMCME2_ADV基本元件提供了三个输入和一个输出,用于动态精细相位偏移。每个CLKOUT和CLKFBOUT分频器都可以单独选择进行相位偏移。属性CLKOUT[0:6]_USE_FINE_PS和CLKFBOUT_USE_FINE_PS用于选择要进行动态相位偏移的输出时钟。所选的所有输出时钟将具有共同的动态相位偏移量。文章来源地址https://www.toymoban.com/news/detail-858405.html
到了这里,关于Xilinx 7系列FPGA的时钟管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!