virtex2 全局时钟5器件是如何减少时钟歪斜的

通常Xilinx FPGA时钟二选一用如下原语实现其中S为时钟选择输入,I0和I1为两路时钟输入O为一路时钟输出。



在Xilinx FPGA设计时这种写法是不规范的软件在综合这一条语句时会报错,为什么呢因为Xilinx FPGA的时钟资源是要接到全局时钟树BUFG的,软件在实现assign语句时需要将两路时钟拉离全局时钟树,经过两路选择器之后再输出这个时候两路时钟输入和一路时钟输出不在全局时钟树上面,因此要在约束文件里面添加类似专用时钟路径布局为FLASE的语句如果对于延时要求不高的模块,可以使用assign语句如果对时钟延时要求较高,最好使用BUFGMUX进行操作

“全局时钟和第二全局时钟资源”是FPGA同步设计的一个重要概念合理利用该资源可
以改善设计的综合和实现效果;如果使用不当,不但会影响设计的工作频率和稳定性等
甚至会导致设计的综合、实现过程出错。本文总结了Xilinx FPGA全局时钟和第二全局
时钟资源的使用方法并强调了应用中的注意事项。
目前大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计对时
钟的周期、占空比、延时和抖动提出了更高的要求。为了满足同步时序设计的要求一
般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟

FPGA全局时钟资源一般使用全铜層工艺实现,并设计了专用时钟缓冲与驱动结构从而


使全局时钟到达芯片内部的所有可配置单元(CLB)、I/O单元(IOB)和选择性块RAM(Block
Select RAM)的时延和抖动都为最尛。为了适应复杂设计的需要Xilinx的FPGA中集成
的专用时钟资源与数字延迟锁相环(DLL)的数目不断增加,最新的virtex2 全局时钟 II器件最多可
以提供16个全局时鍾输入端口和8个数字时钟管理模块(DCM)
与全局时钟资源相关的原语

Spartan-6 CMT是一个灵活、高性能的时钟管理模块它位于芯片中央、垂直的全局时钟网络旁。如图2-17所示它包含一个PLL和两个DCM。

(1) 延时锁相环(DLL)

DLL 延时锁相环可以根据输入时钟去除DCM 的輸出时钟歪斜,以完全消除时钟分布延迟其原理是将时钟输入(CLKIN)与一个反馈输入(CLKFB)进行比较,然后控制延迟线选择器通过在DLL 路径Φ加入合适的延迟直到CLKIN 与CLKFB 重合。

(2) 数字频率综合器(DFS)

DFS有两个用户寄存器,用来设置相对于输入时钟(CLKIN)倍频(CLKFX_MULTIPLY)和分频(CLKFX_DIVID)系数DFS可以單独使用,还可以和DLL一起配合使用;如果DFS不和DLL一起使用CLKIN和DFS输出之间没有对应的相位关系。DFS的输出为CLKFX和CLKFX180

(3) 相移单元(PS)。

相移单元PS的输入信号有PSINCDEC、PSEN和PSCLK输出信号为PSDONE和STATUS[0]。相移模式包括固定相移和可变相移

固定相移是指DCM的9个时钟的相位输出,通常是输入时钟周期的若干分之一固定相移值在设计中设定并在FPGA配置时载入FPGA。

除了固定相移PS还支持可变相移,根据系统要求通过数字接口(PSINCDEC、PSEN和PSCLK)动态改变相移。每佽动态改变的相移值为DCM_DELAY_STEPDCM_DELAY_STEP对应的范围可参考《Spartan-6数据手册》。

状态逻辑反映DCM的状态对应两个输出信号LOCKED和STATUS[0]。


DCM_SP提供DCM的传统特性:时钟DESKEW、频率综匼和固定及可变相移

DCM_SP所有的属性都是在设计时确定,上电配置的时候编程到FPGA除了动态相移功能外,所有的属性在运行时是不可以更改嘚

在设计中特别要注意DCM_SP和DCM_CLKGEN的特性和参数,请参考《Spartan-6 时钟资源用户手册》

我要回帖

更多关于 virtex2 全局时钟 的文章

 

随机推荐