MIG Virtex-6 DDR2 / DDR3  – 从现有的MMCM资源生成参考clk-Xilinx-AMD社区-FPGA CPLD-ChipDebug

MIG Virtex-6 DDR2 / DDR3 – 从现有的MMCM资源生成参考clk

描述

Virtex-6 DDR2 / DDR3 MIG设计有两个时钟输入:参考时钟和系统时钟输入。

参考时钟驱动设计中的IODELAYCTRL组件,而系统时钟输入用于创建所有MIG设计时钟(用于用户界面,控制器和PHY层)并驱动在基础架构模块中实例化的MMCM。

可以从现有MMCM资源生成参考时钟,而不是从外部时钟源驱动它。

注意:本答复记录是Xilinx MIG解决方案中心(Xilinx答复34243)的一部分

Xilinx MIG解决方案中心可用于解决与MIG相关的所有问题。

无论您是使用MIG开始新设计还是对问题进行故障排除,都可以使用MIG解决方案中心来指导您获取正确的信息。

要从单个时钟源内部生成参考时钟,请执行以下步骤:

  1. 必须针对此要求更改的RTL文件是Design top模块(example_top或用户设计顶部),基础结构和iodelayctrl。
  2. 在对RTL进行更改之前,请从CORE Generator接口调用时钟向导并提供源时钟频率。
    另外,配置时钟向导以生成四个输出; MIG默认设计需要三个输出,第四个输出作为idelayctrl参考时钟(200 MHz或300 MHz)。
    记下生成的倍增因子(CLKFBOUT_MULT_F),除法因子(DIVCLK_DIVIDE)和相应的时钟输出除法因子(CLOCKn_DIVIDE)。
  3. 模块基础设施变更
    1. 应为第四个时钟输出添加一个额外的新参数,该参数将取CLOCK3_DIVIDE的值;将此参数命名为CLKOUT3_DIVIDE。
      此外,将此参数传递给MMCM实例的CLKOUT3_DIVIDE参数(或)CLKOUT3_DIVIDE参数值可以直接映射到基础架构模块中MMCM实例的CLKOUT3_DIVIDE参数。
    2. 在“infrastructure.v”文件中,添加一个额外的输出端口clk_ref,它是从MMCM生成的200 MHz或300 MHz时钟。
      这应该连接到MMCM的CLKOUT3端口。
      该时钟驱动iodelayctrl模块。
    3. 添加其他输出端口以将pll_lock信号从基础结构模块中移出。
      当PLL驱动idelayctrl块时,此pll_lock需要合并到iodelay_ctrl模块中的idelayctrl复位中。
  4. 模块iodelayctrl更改:
    1. MMCM生成idelayctrl参考时钟;因此,BUFG可以驱动参考时钟。
      因此,请使用clk_ref替换clk_ref_ibufg信号。

      BUFG u_bufg_clk_ref

      .O(clk_ref_bufg),
      .I(clk_ref)
      );

    2. 添加一个额外的输入端口以从基础架构模块的MMCM引入pll_lock信号。
    3. 根据iodelay_ctrl.v / vhd中的注释,将pll_lock合并到idelayctrl重置中:

      //如果PLL在用户设计中驱动IDELAYCTRL,则添加PLL锁定

      assign rst_tmp_idelay = sys_rst_act_hi或(不是pll_lock);

    4. 注释generate和endgenerate语句之间的代码部分。
      该逻辑包括处理单端或差分结束时钟输入,并为其提供缓冲器。
  1. 设计顶层模块更改(example_top.v或用户设计顶部):
    1. 用新生成的因子替换CLKFBOUT_MULT_F,DIVCLK_DIVIDE和CLKOUT_DIVIDE的参数值。
      请注意,CLKOUT_DIVIDE参数应具有由Clocking Wizard生成的CLOCK0_DIVIDE值。
    2. 在顶级输入端口注释掉参考时钟端口(用于差分模式的clk_ref_p和clk_ref_n以及用于SINGLE_ENDED模式的clk_ref)并将它们声明为有线。
      还应该执行从基础结构模块生成的参考时钟到iodelayctrl实例端口的映射。
    3. 为基础架构和iodelay_ctrl模块添加pll_lock端口并连接这两个端口。
  2. UCF更改:
    1. MMCM生成idelayctrl参考时钟,因此UCF中不需要idelayctrl时钟约束。
      因此,在UCF中注释掉idelayctrl参考时钟约束。

注意:

(1)所有Virtex-6设计的输入时钟频率与存储器控制器频率相同。
因此,当调用时钟向导时,可能不会为各种输入频率生成200 MHz或300 MHz的参考时钟频率。

请登录后发表评论

    没有回复内容