Xilinx可编程逻辑器件设计与开发(基础篇)连载22:Spartan

5.1.3 混合模式时钟管理器(mmcm) 除了丰富的时钟网络以外,xilinx还提供了强大的时钟管理功能,提供更多更灵活的时钟。xilinx在时钟管理上不断改进,从virtex-4的纯数字管理单元dcm,发展到virtex-5cmt(包含pll),再到virtex-6基于pll的新型混合模式时钟管理器mmcm(mixed-mode clock manager),实现了最低的抖动和抖动滤波,为高性能的fpga设计提供更高性能的时钟管理功能。
virtex-6的cmt包含2个mmcm,处于同一个cmt中的2个mmcm之间有专门布线资源。每个时钟片里的mmcm可以独立使用,也可以将mmcm之间的专门布线资源释放出来供其他设计单元使用。
mmcm之间的连接关系及输入源的框图如图5-12所示。同前一代virtex-5的pll相比,扩充了时钟输入,允许多个时钟源作为mmcm的输入参考时钟。
图5-12 virtex-6 fpga cmt框图
virtex-6最多有9个cmt片,输入多路复用器从ibufg、bufg、bufr、gtx(仅clkin)或通用布线(不推荐)中选择参考时钟和反馈时钟。
virtex-6中的pll内部结构图如图5-13所示。每个时钟输入有一个可编程计数器d。相位/频率检测器(pfd)比较输入(参考)时钟和反馈时钟的相位和频率。仅考虑上升沿即可,因为只要保持最小high/low脉冲,则占空比无关紧要。pfd用来生成与两个时钟之间的相位和频率差成比例的信号。此信号驱动电荷泵(cp)和环路滤波器(lf),以便为vco生成参考电压。pfd为电荷泵和环路滤波器生成一个上升或下降信号,以确定vco应该在较高频率还是较低频率工作。当vco工作频率过高时,pfd触发一个下降信号,致使控制电压下降,从而降低vco的工作频率。当vco工作频率过低时,pfd触发一个上升信号,致使控制电压上升,从而提高vco的工作频率。vco产生八个输出相位和一个可变相位的精细相位输出。每个输出相位都可选作输出计数器的参考时钟。可以根据给定的客户设计对每个计数器独立编程。另外还提供了一个专用计数器m。此计数器控制pll的反馈时钟,以实现大范围频率合成。
除了整数分频输出计数器,virtex-6器件通过组合o0/o5和/或m/o6寄存器,可以实现小数计数器。使用小数模式时候,o5和o6输出不可用。
图5-13 pll内部结构图
virtex-6 mmcm提供了广泛而强大的时钟管理功能,分别介绍如下。
一、 时钟去歪斜 在许多情况下,设计人员在其i/o时序预算中不希望在时钟网络上有延迟,这时可以使用mmcm来补偿时钟网络的延迟。一个与参考时钟clkin的频率相匹配的时钟输出(通常是clkfbout)连接到bufg,并且反馈到mmcm的clkfbin反馈引脚。其余输出仍可通过分频产生更多输出频率。在这种情况下,所有输出时钟对于输入参考时钟都具有固定的相位关系。
二、 基于整数分频器的数字频率合成 mmcm还可以用作独立频率合成器。在这种应用中,pll不能用于时钟网络去歪斜,而是用它来生成输出时钟频率。在这种模式下,pll反馈通路为internal模式,这样所有布线保留为局部布线,使抖动最小。
三、 基于小数分频器的数字频率合成 virtex-6在clkout0输出和/或m反馈路径上支持非整数分频。如果clkout0的计数器用于小数模式,那么clkout5计数器的输出不可用。类似,在m反馈计数器使用时,clkout6计数器输出也不可用。小数分频的精度是1/8或0.125度。在小数分频的情况下,占空比和相移不可编程。
四、 抖动滤波器 mmcm可以降低参考时钟上固有的抖动。作为抖动滤波器,mmcm通常被看作一个缓冲器,在输出上重新生成输入频率(例如,fin=100mhz,fout=100mhz)。一般来说,通过使用mmcm的bandwidth属性并且将其设置为low,可以实现较强的抖动过滤。但将bandwidth设置为low会导致mmcm的静态偏差增大。
五、 相移 在许多情况下,各时钟之间需要有相移。mmcm可以通过多个选项实现相移。最好通过软件工具选择合适的相位模式。
(1) 静态相移模式。
vco能够以45°的间隔提供8个移相时钟,静态相移模式通过选择这8个vco输出相移中的一个实现的。因此以时间为单位的相移分辨率定义为:ps=1/8fvco或d/8mfin。因为vco具有明确的工作范围,所以可以把相移分辨率的范围界定为从1/8 fvco_min到1/8 fvco_max。vco的频率越高,相移分辨率就越高。各输出计数器可分别编程,允许每个计数器在vco的输出频率的基础上具有不同的相移。
(2) ifps模式。
virtex-6还提供一种ipfs模式相移,支持固定或动态模式。在该模式下,相移实现线性移位特性,和clkout_divide值无关,只决定于vco频率。mmcm以fvco/56为步长进行相位调节。相移值可在配置过程中固定,也可动态改变。
clkout计数器可分别设置成静态相移模式或者ipfs模式,固定相移模式下,动态相移接口不能被使用。
(3) 动态相移接口。
virtex-6可以由psen、psincdec、psclk和psdone控制动态相移。mmcm锁住后,clkout_phase属性决定初始相位,通常情况下,可以不设置初始相移。mmcm根据psen、psincdec、psclk和psdone信号的动作,改变输出相移。步长为vco时钟周期的1/56。信号时序图请参考图5-14。
图5-14 动态相移接口时序图
如图5-15所示,mmcm_base是基本时钟管理模块的原语,实现mmcm的基本功能;mmcm_adv是在mmcm_base的基础上,增加输入时钟切换、同一cmt中mmcm之间连接、动态相移调节等功能。
图5-15 mmcm的两种原语
注意:virtex-6不支持动态重配置端口。

音频体验提升的关键,蓝牙芯片的音频DSP技术有哪些升级
【新唐开发工具】快速建构低功耗蓝牙设计的开发模块:BLE ATCMD
东莞百瑞设计制造的电动伺服挤压针刺试验机采用数控模式实现
快讯:特斯拉回应宁德时代锂电池订单 个人信息保护法今起实施
华为鸿蒙操作系统发布,将用于手机等移动终端
Xilinx可编程逻辑器件设计与开发(基础篇)连载22:Spartan
ATA-2021B高压放大器经典应用合集(内附技术指标)
国民技术N32G/N32L通用安全MCU芯片荣获“2020年网络安全创新产品优秀奖”!
索尼KV-W32MHll型子画面无屏显功能
华为新款手机为何引起轰动
5G由标准到商用的浪潮来得更加迅猛
传希捷苏州工厂正式解散 HHD机械硬盘前途难测
沃尔沃携手NVIDIA共同开发全新自动驾驶技术
怎样拆下微波炉并重新组装其磁控管电源
单片机仿真器是什么?有什么作用?
基于MAX1647的大功率激光电源的设计
SES展示全球首个容量超过100 Ah的锂金属电池
大文件上传服务器、支持超大文件HTTP断点如何续传教程
基于RJM32L030的大棚温湿度报警器解决方案
Linux时钟精度的提高方法