使用用户为 LPDDR4 和 x8 或 x16 DDR4 组件接口指定的 DQS 字节交换生成管脚分配时,其中可能包含错误且需更改

今日头条

1100人已加入

描述

问题版本: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 错误,并允许含正确管脚交换的组件设计成功完成器件镜像生成操作。

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分