专栏首页瓜大三哥DCM 模块的Verilog HDL 调用

DCM 模块的Verilog HDL 调用

DCM 共由四部分组成,如图12-6 所示。其中最底层仍采用成熟的DLL 模块;其次分别为数字频率合成器(DFS,Digital Frequency Synthesizer)、数字移相器(DPS,Digital PhaseShifter)和数字频谱扩展器(DSS,Digital Spread Spectrum)。不同芯片模块的DCM 输入频率范围是不同的,例如:Virtex -4SX 系列芯片,低输入模式的外范围为1~210MHz,高输入模式的范围为50~350MHz;而Spartan 3E 系列低、高两种模式的范围都只能是0.2~333MHz。

(1)DLL 模块

DLL 主要由一个延时线和控制逻辑组成。延时线对时钟输入端CLKIN 产生一个延时,时钟分布网线将该时钟分配到器件内的各个寄存器和时钟反馈端CLKFB;控制逻辑在反馈时钟到达时采样输入时钟以调整二者之间的偏差,实现输入和输出的零延时,如图12-7 所示。具体工作原理是:控制逻辑在比较输入时钟和反馈时钟的偏差后,调整延时线参数,在输入时钟后不停地插入延时,直到输入时钟和反馈时钟的上升沿同步,锁定环路进入“锁定”状态,只要输入时钟不发生变化,输入时钟和反馈时钟就保持同步。DLL 可以被用来实现一些电路以完善和简化系统级设计,如提供零传播延迟,低时钟相位差和高级时钟区域控制等。

(2)数字频率合成器

DFS 可以为系统产生丰富的频率合成时钟信号,输出信号为CLKFB 和CLKFX180,可提供输入时钟频率分数倍或整数倍的时钟输出频率方案,输出频率范围为1.5~320 MHz(不同芯片的输出频率范围是不同的)。这些频率基于用户自定义的两个整数比值,一个是乘因子CLKFX_ MULTIPLY),另外一个是除因子(CLKFX_ DIVIDE),输入频率和输出频率之间的关系为:

比如取CLKFX_MULTIPLY = 3,CLKFX_DIVIDE = 1,PCB 上源时钟为100 MHz,通过DCM 3 倍频后,就能驱动时钟频率在300 MHz 的FPGA,从而减少了板上的时钟路径,简化板子的设计,提供更好的信号完整性。

(3)数字移相器

DCM具有移动时钟信号相位的能力,因此能够调整I/O信号的建立和保持时间,能支持对其输出时钟进行0度、90度、180度、270度的相移粗调和相移细调。其中,相移细调对相位的控制可以达到1%输入时钟周期的精度(或者50ps),并且具有补偿电压和温度漂移的动态相位调节能力。对DCM输出时钟的相位调整需要通过属性控制PHASE_SHIFT来设置。PS设置范围为-255到+255,比如输入时钟为200MHz,需要将输出时钟调整+0.9 ns的话,PS=(0.9ns/5ns)×256=46。如果PHASE_SHIFT值是一个负数,则表示时钟输出应该相对于LKIN向后进行相位移动;如果PHASE_SHIFT是一个正值,则表示时钟输出应该相对于CLKIN向前进行相位移动。移相用法的原理图与倍频用法的原理图很类似,只用把CLK2X输出端的输出缓存移到CLK90、CLK180或者CLK270端即可。利用原时钟和移相时钟与计数器相配合也可以产生相应的倍频。

(4)数字频谱合成器

Xilinx公司第一个提出利用创新的扩频时钟技术来减少电磁干扰(EMI)噪声辐射的可编程解决方案。最先在FPGA中实现电磁兼容的EMIControl技术,是利用数字扩频技术(DSS)通过扩展输出时钟频率的频谱来降低电磁干扰,减少用户在电磁屏蔽上的投资。数字扩频(DSS)技术通过展宽输出时钟的频谱,来减少EMI和达到FCC要求。这一特点使设计者可极大地降低系统成本,使电路板重新设计的可能性降到最小,并不再需要昂贵的屏蔽,从而缩短了设计周期。

例子:在ISE中调用DCM模块,完成61.44MHz时钟信号到40.96MHz时钟信号的转换,二者的分频比为3/2。

module dcm_top(
CLKIN_IN,
RST_IN,
CLKFX_OUT,
CLKIN_IBUFG_OUT,
CLK0_OUT,
LOCKED_OUT
    );
 input CLKIN_IN;
 input RST_IN;
 output CLKFX_OUT;
 output CLKIN_IBUFG_OUT;
 output CLK0_OUT;
 output LOCKED_OUT;
 my_dcm dcm1(
.CLKIN_IN(CLKIN_IN),
.RST_IN(RST_IN),
.CLKFX_OUT(CLKFX_OUT),
.CLKIN_IBUFG_OUT(CLKIN_IBUFG_OUT),
.CLK0_OUT(CLK0_OUT),
.LOCKED_OUT(LOCKED_OUT)
);
Endmodule

本文分享自微信公众号 - 瓜大三哥(xiguazai_tortoise),作者:anytao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 高级时钟约束

    时序的零起点 用create_clock定义的主时钟的起点即时序的“零起点”,在这以前的上游路径都会被工具自动忽略。所以主时钟在哪个“点”很重要,以下图所示结...

    瓜大三哥
  • Xilinx 7系列时钟结构

    xilinx 的 FPGA 时钟结构,7 系列 FPGA 的时钟结构和前面几个系列的时钟结构有了很大的区别,7系列的时钟结构如下图所示。

    瓜大三哥
  • Zynq 7000的PS为PL分配信号

    在PS内的时钟模块可以为PL提供4个时钟FCLKCLK[3:0],这4个时钟的频率可以通过配置界面进行修改。由于这4个时钟的频率由PS引到PL中,所以可将FCL...

    瓜大三哥
  • FPGA时序约束实战篇之梳理时钟树

      我们以Vivado自带的wave_gen工程为例,该工程的各个模块功能较为明确,如下图所示。为了引入异步时钟域,我们在此程序上由增加了另一个时钟--clki...

    猫叔Rex
  • 【vivado约束学习四】跨时钟域路径分析

    A, Reports > Timing > Report Clock Interaction

    FPGA开源工作室
  • 【vivado约束学习三】 时钟网络分析

    B,Tcl命令:report_clock_networks -name {network_1}

    FPGA开源工作室
  • 从小白到 Pro | RCC时钟基础知识和常见问题

    RCC,Reset and Clock Control(复位和时钟控制),在绝大部分MCU芯片中都包含复位和时钟控制模块,也是MCU重要的组成部分。

    AI 电堂
  • 深度解析ug1292(8)

    过大的Clock Skew也可能导致时序违例,尤其是其数值超过0.5ns时。如下三个命令生成的报告中均可显示Clock Skew的具体数值。

    Lauren的FPGA
  • 【Vivado约束学习】 时钟约束

    在数字设计中,时钟代表从寄存器(register)到寄存器可靠传输数据的时间基准。Xilinx Vivado集成设计环境(IDE)时序引擎使用ClocK特征计算...

    FPGA开源工作室
  • FPGA时序约束理论篇之时钟周期约束

      时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。

    猫叔Rex

扫码关注云+社区

领取腾讯云代金券