2024年4月6日发(作者:戎淳雅)
Spartan-6时钟管理模块的介绍与使用
同步时序电路设计中最关键的是时钟设计,随着电路规模与速度的提高,对时钟的周期、
占空比、延时和抖动等方面的要求也越来越高。为了顺应这需求,Spartan-6系统器件在原
有的DCM模块基础引入了模拟PLL模块构成了功能强大、控制灵活的时钟管理模块(C
MT)。每个CMT模块包含两个DCM模块和一个PLL模块。Spartan-6系统器件有多
至六个 CMT模块。
一、器件组成与特性
1.DCM模块主要有以下功能模块组成:
模块, 主要由延时线和控制逻辑组成。
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
2024年4月6日发(作者:戎淳雅)
Spartan-6时钟管理模块的介绍与使用
同步时序电路设计中最关键的是时钟设计,随着电路规模与速度的提高,对时钟的周期、
占空比、延时和抖动等方面的要求也越来越高。为了顺应这需求,Spartan-6系统器件在原
有的DCM模块基础引入了模拟PLL模块构成了功能强大、控制灵活的时钟管理模块(C
MT)。每个CMT模块包含两个DCM模块和一个PLL模块。Spartan-6系统器件有多
至六个 CMT模块。
一、器件组成与特性
1.DCM模块主要有以下功能模块组成:
模块, 主要由延时线和控制逻辑组成。
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