MIG 3.3,Virtex-6 FPGA DDR3  – 由于IDELAYCTRL未被软件自动推断,因此写入电平未成功且校准失败-Altera-Intel社区-FPGA CPLD-ChipDebug

MIG 3.3,Virtex-6 FPGA DDR3 – 由于IDELAYCTRL未被软件自动推断,因此写入电平未成功且校准失败

问题描述

当我在硬件中运行多组件或DIMM Virtex-6 FPGA DDR3 MIG设计时,写入电平未完成,导致校准失败。可以通过以下方式检测此特定写入级别故障:

  • DQS不切换FPGA输出
  • 未检测到DQ转换
  • 在“phy_dly_ctrl.v”模块中找到的信号dlyval_dqs_early始终为0

校准失败的原因是:

对phy_init_done没有断言

解决/修复方法

如果写入级别未完成,则必须检查IDELAYCTRL块是否正确放置。目前正在实施工具中调查的问题导致IDELAYCTRL块无法正确复制。

在MIG设计中,单个IDELAYCTRL在“iodelay_ctrl.v”中实例化,并启用了IODELAY_GROUP参数。使用此配置,实现工具应为每个使用IODELAY的Bank复制此块。

在MIG设计中,IODELAY组件用于捕获时钟和重新同步clocklogic。因此,任何放置捕获或rsync逻辑的bank都需要IDELAYCTRL。捕获时钟逻辑总是与数据组放在同一个bank中,但rsync逻辑可能放在地址/控制和系统时钟库(除数据库之外)。有关rsync(BUFR)分配规则的完整详细信息,请参见“ Virtex-6内存接口解决方案/修复方法的用户指南” (UG406)。当rsync逻辑放置在非数据库(即Addr / Cont或Sys Clock)中时,实现工具没有在这些库中正确分配IDELAYCTRL。

要解决此问题,请为使用IODELAY的所有Bank手动实例化和LOC IDELAYCTRL。

1.为IDELAYCTRL实例化修改iodelay_ctrl.v,如下所示:

//开始编辑 //结束编辑

注意:此示例适用于需要两个IDELAYCTRL的MIG设计,可能需要根据使用IODELAY组件的库的数量手动实例化其他IDELAYCTRL。

INST“u_iodelay_ctrl / u_idelayctrl_#”LOC = IDELAYCTRL_X_Y_;

注意 :要确定XY坐标,请使用FPGA编辑器在每个库中找到所需的IDELAYCTRL。单击该块时,它会在控制台窗口中显示坐标(IDELAYCTRL_X_Y_)。

从使用MIG v3.4的ISE 12.1软件开始修复此问题。

请登录后发表评论

    没有回复内容