【Versal DDRMC 设计咨询 】使用用户为 LPDDR4 和 x8 或 x16 DDR4 组件接口指定的 DQS 字节交换生成管脚分配时,其中可能包含错误且需更改 PCB 方可修复

描述

问题版本:Vivado 2020.2

已解决问题的版本:请参阅(赛灵思答复记录 75764)

本设计咨询涵盖如下 Versal DDRMC 设计:使用对应 LPDDR4 和 x8 或 x16 DDR4 组件接口的 DQS 字节组管脚交换所生成的设计。

执行 DQS 字节组交换时,根据 Versal DDRMC 架构,要求 DQS 对必须与 DQS 对进行交换,同样地,DM 管脚也必须与 DM 管脚进行交换。 在 Vivado 2020.2.2 版及所有更低版本中,原先正确遵循此要求执行交换后,会生成如下 DRC 消息。 用户在此之后如果又将 DQS 对与 DM 进行交换(此操作违反 DDRMC 管脚规则,请参阅如下示例),则此 DRC 消息会消失,且可能生成器件镜像。

正确完成交换的情况下不应生成此 DRC 消息,仅在执行错误交换后,才应生成此消息。此问题在 Vivado 2020.3 中已得到解决。

[Mig 66-441] Memory/Advanced IO Wizard core Error - [ddrmc_CH3/axi_noc_0/inst/MC0_ddrc] Strobe ports (CH3_DDR4_dqs_t[5],CH3_DDR4_dqs_c[5]) of this instance placed in nibble-0 of nibble pair(0,1) of the I/O bank 711. These ports must be placed in the other nibble of the nibble pair. Nibble pairs are (0,1)/(2,3)/(4,5)/(6,7).
[Mig 66-441] Memory/Advanced IO Wizard core Error - [ddrmc_CH0/axi_noc_0/inst/MC0_ddrc] Strobe ports (CH0_DDR4_dqs_t[6],CH0_DDR4_dqs_c[6]) of this instance placed in nibble-3 of nibble pair(2,3) of the I/O bank 702.These ports must be placed in the other nibble of the nibble pair.Nibble pairs are (0,1)/(2,3)/(4,5)/(6,7).
[Mig 66-441] Memory/Advanced IO Wizard core Error - [ddrmc_CH1/axi_noc_0/inst/MC0_ddrc] Strobe ports (CH1_DDR4_dqs_t[6],CH1_DDR4_dqs_c[6]) of this instance placed in nibble-3 of nibble pair(2,3) of the I/O bank 705.These ports must be placed in the other nibble of the nibble pair.Nibble pairs are (0,1)/(2,3)/(4,5)/(6,7).

对于 LPDDR4/X 也同样如此,给定 LPDDR4 数据通道的 DQS 字节组必须保留在该数据通道内。在 Vivado 2020.2.2 版及所有更低版本中,DRC 下并未涵盖跨 LPDDR4 数据通道的 DQS 字节组交换,由此导致允许用户生成无效的 LPDDR4/X 管脚分配。

如果 Versal ES 和量产设计原先以此错误方式执行了管脚交换,则必须在 Vivado 设计和 PCB 布局/原理图中修复管脚分配。

具有此错误管脚交换的设计将在硬件中出错,并呈现 DQS 门电路 (DQS Gate) 或写入均衡 (Write Leveling) 校准错误。

以下设计不受影响,无需复查:

  • 使用默认管脚分配生成的 LPDDR4 和 DDR4 组件接口
  • 含 DQS 字节交换的 x4 DDR4 组件接口
  • 生成的 LPDDR4 和 DDR4 组件接口仅在单个半字节或单个字节内包含 DQ 位交换。
  • 所有 DIMM 接口
  • 所有软核 DDR4 IP

    注:命令、控制和地址 site 位置均已固定,无法交换。

    如需了解有关如何订阅新“设计咨询”通知的更多信息,请参阅(赛灵思答复记录 18683)。

    解决方案

    以下管脚分配旨在演示位级别交换和字节级别交换的示例。左图显示的是有效的字节交换,其中虽已遵循 DQS 和 DM 管脚位置,但 Vivado 2020.2.2 版本及所有更低版本的工具仍会错误生成 DRC。

    右图显示的是无效的管脚分配交换,但不生成 DRC 错误。

    注:两个示例演示的 DQ 位交换均有效。

    对于 LPDDR4/X,每个数据通道位宽均为 16 位,对于 x32 LPDDR4 组件,则有 2 条 16 位数据通道。

    这 2 条通道分别以 DQ_A[15:0] 和 DQ_B[15:0] 来表示。如果存在 ECC 器件,那么还需要另一条 16 位数据通道用于 LPDDR4 ECC 组件,此附加通道以 DQ_A[31:16] 来表示。

    设计仅允许将 DQS 字节组交换包含在其各自的 16 位数据通道内,且仅限在此情况下 DQS 字节组交换才有效。即,DQ_A[7:0] 对应 DQ_A[15:8],DQ_B[7:0] 对应 DQ_B[15:8],DQ_A[31:24] 对应 DQ_A[23:16]。

    此 DRC 问题在 Vivado 2020.3 中已得到解决。建议升级到 2020.3 版本。

    如需使用低于 2020.3 的版本,请使用本答复记录中随附的补丁,确保按正确方式生成 Vivado DRC 错误,并允许含正确管脚交换的组件设计成功完成器件镜像生成操作。

  • 最新文章

    最新文章