wjw576657631的个人空间 https://blog.eetop.cn/743817 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Spartan-6时钟管理模块的介绍与使用

已有 5707 次阅读| 2011-10-31 19:32 |个人分类:FPGA知识

Spartan-6时钟管理模块的介绍与使用  

2010-10-12 10:15:56|  分类: FPGA |  标签: |字号 订阅

最近评估使用了下XILINX最新的Spartan-6 FPGA器件,感觉跟前一代使用比较多的Spartan-3E FPGA器件相比性能有了很大的提高, 如Spartan-6的时钟管理模块就引入了以前在高端器件Virtex-5才有的模拟锁相环(PLL).本文从用户角度介绍了Spartan-6 FPGA时钟管理模块的特性,并就它的使用做了一个总结, 可供使用Spartan-6时钟管理模块时参考。
闲话少说,书归正传,我们知道同步时序电路设计中最关键的是时钟设计,随着电路规模与速度的提高,对时钟的周期、占空比、延时和抖动等方面的要求也越来越高。为了顺应这需求,Spartan-6系统器件在原有的DCM模块基础引入了模拟PLL模块构成了功能强大、控制灵活的时钟管理模块(CMT)。每个CMT模块包含两个DCM模块和一个PLL模块。Spartan-6系统器件有多至六个 CMT模块。

一、器件组成与特性

1.DCM模块主要有以下功能模块组成:
a.DLL模块, 主要由延时线和控制逻辑组成。
b.数字频率合成器,为系统产生丰富的频率合成信号输出到CLKFX和CLKFX180。可以提供2~32的倍乘与1~32的分频系数。
c.数字移相器, 可提供粗调的0,90,180,270度移相和具有动态调节能力的相位细调。
d.数字频谱合成器,产生扩频时钟减少电磁干扰(EMI)。
Spartan-6 DCM模块提供给用户的设计原语有DCM_SP和DCM_CLKGEN,DCM_SP在Spartan-3E FPGA器件中也有,而DCM_CLKGEN是Spartan-6新增的,可以用产生动态的频率合成信号和扩频时钟。

2. PLL模块,有一400MHz~1000 MHz压控振荡器(VCO),可提供8种移相(0°, 45°, 90°, 135°, 180°, 225°, 270°, 315°)和6个可独立编程倍乘与分频系数的输出信号。提供给用户的设计原语有PLL_BASE和PLL_ADV,PLL_BASE是单独使用PLL模块最常调用的原语,允许使用PLL的最常用特性,PLL_ADV包括PLL_BASE所有的特性之外,还提供时钟切换及与DCM的连接。可用于以下工作模式:
a. 时钟网络去歪斜
b. 频率合成
c. 抖动滤波
d. 零延时的缓冲
f. PLL与PLL、DCM的级联

二、使用指南

1.注意时钟的输入与输出范围,所有应用不能超过范围.。如Spartan-6 器件DCM的DLL模块的时钟输入范围如下(以下摘自Spartan-6 DATA SHEET):
速度等级为-1L的为器件5MHz~175MHz。
速度等级为2的为器件5MHz~250MHz。
速度等级为3和4的为器件5MHz~280MHz。

DCM的DLL模块的时钟输出范围如下:
CLKOUT_FREQ_CLK0与CLKOUT_FREQ_CLK180为5MHz~250MHz(等级2)或5MHz~280MHz(等级3或4);
CLKOUT_FREQ_CLK90与CLKOUT_FREQ_CLK270为5MHz~200MHz;
CLKOUT_FREQ_2X与CLKOUT_FREQ_2X180为0.3125MHz~166MHz(等级2)或0.3125MHz~186MHz(等级3或4);

DCM的DFS模块的时钟输入范围如下:
速度等级为2的为器件0.5MHz~333MHz。
速度等级为3和4的为器件0.5MHz~375MHz。

DCM的DFS模块的时钟输出范围如下:
CLKOUT_FREQ_FX与CLKOUT_FREQ_FX180为5MHz~333MHz(等级2)或5MHz~375MHz(等级3或4);
PLL模块的最小的输入时钟频率为19 MHz,最大输入时钟频率为375MHz(从全局时钟输入,速度等级2),400MHz(从全局时钟输入,速度等级3),450MHz(从I/O时钟输入,速度等级2),525MHz(从I/O时钟输入,速度等级3)。
PLL模块的最小的输出时钟频率为3.125MHz,最大输入时钟频率为从BUFGMUX输出为375MHz(速度等级2)或400MHz(速度等级3或4),从BUFPLL输出为950MHz(速度等级2)或1050MHz(速度等级3)或1080MHz(速度等级4)。
无论什么时候都不能使VCO超出范围,Spartan-6 器件VCO的频率范围为400MHz~1000MHz(等级2),400MHz~1050MHz(等级3),400MHz~1080MHz(等级4),

2.PLL或DCM的选择使用问题。
PLL和DCM有类似的功能,又有各自的特性, 在应用中什么时候选择使用PLL模块较好, 什么时候选择使用DCM模块较好呢? 一般认为PLL模块有六组输出时钟, 在多时钟的应用中使用PLL比较合适,另外PLL对抖动滤波效果比较好,如要实现抖动滤波也推荐使用PLL模块。Spartan-6 PLL模块还提供时钟切换功能,在需要动态切换时钟源的应用中尤为合适。DCM在相位调整上功能比较全,既有粗调的0,90,180,270度移相,又有动态调节的相位细调能力,在实现时钟相位调整的时候推荐使用DCM模块。其它情况如频率合成、调整时钟占空比,消除时钟延时使用PLL模块或DCM模块都可以。

3.DCM除对输入时钟的频率有要求外,对输入时钟的抖动也有要求,如果超出限制的话会导致DCM失锁,失锁后需要用户将DCM复位。抖动主要分两类:
a. Cycle-to-cycle jitter
b. Period jitter
Cycle-to-cycle jitter一般为±150ps(FCLKFX > 150 MHz)或±3000ps(FCLKFX < 150 MHz),
Period jitter一般为±1ns. 具体参见Spartan-6 DATA SHEET。
如果输入时钟的抖动过大,建议先经过PLL模块进行抖动滤波。

4.PLL与DCM的级联选择
a. PLL输出驱动DCM模块,优点是在输入DCM模块前可减少输入时钟的抖动,同时又可以使用户能构访问所有DCM模块的输出信号,一个PLL可以驱动多个DCM模块,并不要求PLL与DCM都是在同一CMT模块内。
b. DCM模块输出驱动PLL模块,这种情况可以减少输入时钟和DCM时钟输出的总体抖动。如果DCM输出直接连到PLL输入,要求PLL与DCM都是在同一CMT模块内,这种情况可减少的本地噪声与专用布线资源。如果PLL与DCM不在同一CMT模块内,DCM输出必须经过BUFG缓冲后连到PLL。由于PLL输入信号的限制, 最多只有两个DCM输出信号可以连到一个PLL模块.
c. PLL与PLL的级联, 级联PLL可以产生更大范围的时钟, 两个PLL的级联也要通过BUFG缓冲, 此时器件通路的抖动最小。
以上抛砖引玉,主要参考文献为XILINX的:

1.ug382 Spartan-6 FPGA Clocking Resources User Guide.
2.Ds162 Spartan-6 FPGA Data Sheet: DC and Switching Characteristics.
3.xapp1065 Spread-Spectrum Clock Generation in Spartan-6 FPGAs
如有不当之处或要补充的地方,还望博友不吝赐教以共同提高使用Spartan-6时钟管理模块的水平^_^。此文为“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 33

    评论
  • 1523

    访问数
关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-7 13:53 , Processed in 0.026886 second(s), 15 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部