当我在设计中有多个基于DDR2 / DDR3 SDRAM UniPHY的内存控制器实例时,为什么我总是会在其中一个基于DDR2 / DDR3 SDRAM UniPHY的内存控制器中看到读取捕获定时故障?-Altera-Intel社区-FPGA CPLD-ChipDebug

当我在设计中有多个基于DDR2 / DDR3 SDRAM UniPHY的内存控制器实例时,为什么我总是会在其中一个基于DDR2 / DDR3 SDRAM UniPHY的内存控制器中看到读取捕获定时故障?

当相同的UniPHY内核不止一次实例化时,Quartus®II10.0版本中存在一个已知的问题。问题sdc计时脚本导致设置不正确的输入最大延迟,因此读取捕获失败。

这个问题已在Quartus II软件10.1中修复。按照以下步骤操作10.0以解决问题。

1.在文本编辑器中打开<core> .sdc文件。

2.找到“for”循环,其中核心的所有实例都受搜索文本“foreach {inst} $ instances”的约束。

3.在“for”循环内,向下滚动到“QUERIED TIMING”部分,找到这两行;

set data_input_max_delay [round_3dp [expr $ data_input_max_delay + $ fpga …

set data_input_min_delay [round_3dp [expr $ data_input_min_delay – $ t(CK)…

将它们更改为:

set final_ data_input_max_delay [round_3dp [expr $ data_input_max_delay + $ fpga …

set final_ data_input_min_delay [round_3dp [expr $ data_input_min_delay – $ t(CK)…

4.在“for”循环内向下滚动,找到下面的行:

#指定DQ引脚和DQS引脚之间的最大延迟差:

set_input_delay -max $ data_input_max_delay -clock [get_clocks …

#指定DQ引脚和DQS引脚之间的最小延迟差:

set_input_delay -min $ data_input_min_delay -clock [get_clocks …

改变他们

#指定DQ引脚和DQS引脚之间的最大延迟差:

set_input_delay -max $ final_ data_input_max_delay -clock [get_clocks …

#指定DQ引脚和DQS引脚之间的最小延迟差:

set_input_delay -min $ final_ data_input_min_delay -clock [get_clocks …

5.保存文件并重新编译项目,检查读取捕获时序,以确保所有接口的读取时间均为正。

请登录后发表评论

    没有回复内容