Zynq UltraScale+ MPSoC 处理系统的设计咨询 — PS DDR4/DDR3 必须为温度超过 85°C 的工作进行刷新

2 posts / 0 new
最新文章
匿名
Zynq UltraScale+ MPSoC 处理系统的设计咨询 — PS DDR4/DDR3 必须为温度超过 85°C 的工作进行刷新

描述

在 85 摄氏度以上的工作温度下,DRAM 需要更频繁的刷新。

明仕彩票app对于 PS DDR4/DDR3,这一刷新周期必须减少一半。如果不进行调整,可能会出现数据丢失/损坏的情况。

judy
judy的头像
解决方案

要解决该问题,可以修改 psu_init。c:

1. 将刷新间隔 tREFI 改成当前设置的 1/2
发现最后一行显示 PSU_Mask_Write(DDRC_RFSHTMG_OFFSET, 0x0FFF83FFU, 0x0iiibccc); where iii = a three-digit hex representation of ROUNDDOWN(tREFI/(2*32*clock_period_in_ns))。
用一个为原值 1/2 的新值代替 iii。
请注意:新值 * 32 必须比 ccc 大,这是一个代表 t_rfc_min 的三位十六进制数字。

2. 将刷新间隔 PGCR2.tREFPRD 改成其当前设置的 1/2
发现该行显示 PSU_Mask_Write(DDR_PHY_PGCR2_OFFSET, 0xFFFFFFFFU, 0x00FaaaaaU);, where aaaaa = a five-digit hex representation of (8 * ROUNDDOWN(tREFI / clock_period_in_ns))-1000。
使用 tREFI / 2 而非 tREFI 重新计算该值,并将这个新值代入 PSU_Mask_Write 行。

3. 找到以 Xil_Out32(0xFD080018U) 开头的一行的两个实例,并将其替换为:

1) 实例 1:
int cur_R006_tREFPRD;
cur_R006_tREFPRD = (Xil_In32(0xFD080018U) & 0x0003FFFFU) >> 0x00000000U;
prog_reg(0xFD080018, 0x3FFFF, 0x0, cur_R006_tREFPRD);

2) 实例 2:
prog_reg(0xFD080018, 0x3FFFF, 0x0, cur_R006_tREFPRD);

4。 调整 MR2 中自动刷新的刷新率至手动扩展的温度范围

  • 找到 PSU_Mask_Write(DDRC_INIT4_OFFSET, 0xFFFFFFFFU, 0x00a00b00U) 所在的行并把 a 的 3:2 位设置为‘10’。这就是整个数据字段的 23:22 位
  • 找到 PSU_Mask_Write(DDR_PHY_MR2_OFFSET, 0xFFFFFFFFU, 0x000000c0U) 所在的行并把 c 的 3:2 位设置为‘10’。这就是整个数据字段的 7:6 位
  • 注意,修复和解决方法都将使刷新开销从总体理论内存带宽约 6% 增加到大约 12%,这是 DRAM 在较高温度下工作所必需的。

    福建快3走势 099彩票官网 智诚彩票投注 云南11选5走势图 一起玩彩票注册 连连中彩票开户 盛峰彩票投注 kk彩票开奖 内蒙古11选5 荣鼎彩