UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 54710

MIG 7 系列- DDR3 –控制器在 read-modify-write 操作中挂起。

Description

发现问题的版本 MIG 7 系列 1.8
解决问题的版本: 敬请参见 (Xilinx 答复 45195)

用户设计顶层有一个已知的问题,即在 ECC 逻辑启用时,发出的 read-modify-write 操作指令会让控制器冻结。这个问题的故障特征是能正确执行初始读取操作,但随后的写入操作却无法进行。相反,控制器通过对 app_rd_data_valid 进行断言,意外地在 UI 接口上返回读取数据。此后不久,控制器挂起,会观察到 app_rdy signal 永久无效。

解决方案

其原因在于两个 ECC 参数(MC_ERR_ADDR_WIDTH 和 ECC_WIDTH)在用户设计顶层中定义不正确。这两个参数在顶层用户设计中为静态设置,而对某些配置而言设置不正确,这就会导致上述行为。这两个参数应为动态设置,类似于以下做法:example_design.v/.vhd.要解决这个问题,请用以下方程替换顶层用户设计中的 MC_ERR_ADDR_WIDTH 和 ECC_WIDTH 参数定义:

localparam C0_MC_ERR_ADDR_WIDTH = ((C0_CS_WIDTH == 1) ?0 : C0_RANK_WIDTH)
                                 + C0_BANK_WIDTH + C0_ROW_WIDTH + C0_COL_WIDTH
                                 + C0_DATA_BUF_OFFSET_WIDTH;

localparam C0_ECC_WIDTH = (C0_ECC == "OFF")?
                           0 : (C0_DATA_WIDTH <= 4)?
                            4 : (C0_DATA_WIDTH <= 10)?
                             5 : (C0_DATA_WIDTH <= 26)?
                              6 : (C0_DATA_WIDTH <= 57)?
                               7 : (C0_DATA_WIDTH <= 120)?
                                8 : (C0_DATA_WIDTH <= 247)?
                                 9 : 10;

注意:在多控制器设计中,C0 需要对应于存储器控制器的数字(即 C0、C1、C2等)。

修订历史记录
03/05/2013——初始版本

AR# 54710
创建日期 03/04/2013
Last Updated 10/10/2013
状态 Active
Type 已知问题
器件
  • Artix-7
  • Kintex-7
  • Virtex-7
  • Zynq-7000
IP
  • MIG 7 系列