描述
7系列DDR3 / DDR2 MIG设计有两个时钟输入,即参考时钟和系统时钟输入。
参考时钟驱动设计中的IODELAYCTRL组件,而系统时钟输入用于创建所有MIG设计时钟(用于用户接口,控制器和PHY层)并驱动在基础架构模块中实例化的PLL。
可以从现有PLL资源生成参考时钟,而不是从外部时钟源驱动它。
解
要从单个时钟源内部生成参考时钟,可以使用以下两个选项:
- 生成MIG IP时, 请为参考时钟选择“ 使用系统时钟”选项:
注意: “使用系统时钟”选项仅在选择“5000 ps(200 MHz)”的输入时钟周期时可用。
2.手动内部生成参考时钟:
- 生成MIG IP时,选择参考时钟的无缓冲区选项:
- 需要更改的RTL文件是example_top.v / .vhd,<user_design> .v / .vhd,以及infrastructure.v和iodelayctrl.v。
- 要找出PLL的设置,请从CORE Generator接口调用时钟向导并提供源时钟频率。
此外,配置时钟向导以生成五个输出:默认设计MIG需要四个输出,第五个输出作为idelayctrl参考时钟(200 MHz)。
记下生成的倍增因子(CLKFBOUT_MULT_F),除法因子(DIVCLK_DIVIDE)和相应的时钟输出除法因子(CLOCKn_DIVIDE)。- 模块基础设施变更
- 应为第五个时钟输出添加一个额外的新参数,该参数将取CLOCK5_DIVIDE的值;将此参数命名为CLKOUT5_DIVIDE。
另外,将此参数传递给PLLE2_ADV实例的CLKOUT5_DIVIDE参数(或),CLKOUT5_DIVIDE参数值可以直接映射到基础架构模块中PLLE2_ADV实例的CLKOUT5_DIVIDE参数。- 在“infrastructure.v”文件中,添加一个额外的输出端口clk_ref,它是从PLL生成的200 MHz时钟。
这应该连接到PLL的CLKOUT5端口。
该时钟驱动iodelayctrl模块。- MIG Design Top模块更改(example_top.v / vhd或用户设计顶部):
- 用新生成的因子替换CLKFBOUT_MULT,DIVCLK_DIVIDE和CLKOUT#_DIVIDE的参数值。
请注意,CLKOUT#_DIVIDE参数应具有时钟向导生成的每个CLOCK#_DIVIDE的值。- UCF更改:
- idelayctrl参考时钟由PLL生成,不需要在UCF中提供idelayctrl时钟约束。
因此,在UCF中注释掉idelayctrl参考时钟约束。
没有回复内容