由于面向 Cyclone® V SoC 和 Arria® V SoC 设备的 Altera SoC 嵌入式设计套件生成的 HPS SDRAM 控制器校准算法存在问题,DQS 使能中心报告可能大于开始和结束报告。
校准算法可查找多个延迟的最大和最小参数,并选择中心值。对于 DQS 启用,开始和结束报告都已规范化为VFIFO_SIZE,但中心报告未规范化,因此它可能看起来超出范围开始:结束。
对于 Cyclone® V 和 Arria® V 器件,VFIFO_SIZE 设置为 16。
注意:要启用此报告,必须设置宏RUNTIME_CAL_REPORT,这会将校准过程结果报告给 stdout(通常是 UART)。
中心VFIFO报告应除以16,这是VFIFO_SIZE,其余是VFIFO延迟。
例如:
序。C: DQS 启用 ;第 0 组 ;排名 0 ;启动 VFIFO 6 ;第一阶段 ;延迟 4
序。C: DQS 启用 ;第 0 组 ;排名 0 ;结束 VFIFO 7 ;阶段 0 ;延迟 18
序。C: DQS 启用 ;第 0 组 ;排名 0 ;中央 VFIFO 22 ;阶段 5 ;延迟 3
真正的中心 VFIFO 值为 22 % 16 = 6,按预期介于 6 和 7 之间。
可以修改生成的预加载器代码,以进行如下更改:
1. 打开 <preloader>\uboot-socfpga\board\altera\socfpga\sdram\sequencer.c
2. 搜索 以下 行:
RPRINT(“DQS Enable ;集团 %lu ;排名 %lu ;中心视觉 %2li ;相 %里 ;延迟 %2li“, grp, sr, v, p-1, d);
3. 替换为 此 行:
RPRINT(“DQS Enable ;集团 %lu ;排名 %lu ;中心视觉 %2li ;相 %里 ;延迟 %2li“, grp, sr, (v % VFIFO_SIZE), p-1, d);
4. 运行 以下命令重新生成 预加载器 :
使清洁;让。
从Altera SoC 嵌入式设计套件 15.1 开始修复该问题。