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# 66471

DDR4 IP - Incorrect Write Recovery (WR) value programmed to Mode Register 0 (MR0)

Description

Version Found: v1.1

Version Resolved: See (Xilinx Answer 58435)

The DDR4 IP incorrectly programs the WR value for Mode Register 0 (MR0) for some scenarios. For example, for DDR4 operation at 2400Mb/s tWR=15ns and tCK=833ps so the Write Recovery (WR) time should be 18 clocks. 

However, the DDR4 IP incorrectly configured MR0 for 20 clocks which can have a negative impact on controller efficiency or result in DRAM errors when using the PHY Only IP.

For example, the following error message might be seen during PHY Only simulations if the users controller is programmed for 18 clocks but the PHY IP is programmed for 20:

VIOLATION: cmdPRE BG:0 B:0 A:0 (BL:8 WL:12 RL:10) @3411760 Required: tWR (WL + BL/2 + WR) - 2 clocks.

Solution

To fix the issue you can simply change the MR0 parameter value inside the <core_name>_ddr4.sv file (for full IP) and/or inside <core_name>_phy_ddr4.sv (PHY Only IP)

    parameter         MR0                       = 13'b0100101100100, //0101101100100,

Note: Make sure that Out Of Context is disabled for the IP. Otherwise, you risk any RTL change you make being overwritten by Vivado during synthesis.

Alternatively, you can create an IP Repository for the DDR4 IP, and hard code the MR0 parameter value to 18CK. 

This would enable you to use Out of Context and will ensure your RTL changes never get overwritten.

To use the IP Repository flow, follow these steps:

1. Copy the DDR4 Controller directory from your Vivado install area. For example: 

  • Full IP: C:\Xilinx\Vivado\2015.4\data\ip\xilinx\ddr4_v1_1
  • PHY Only IP: C:\Xilinx\Vivado\2015.4\data\ip\xilinx\ddr4_phy_v1_1

2. Make your edits to the source code in this copied directory and store the files in a location of your choice, preferably, somewhere your project directory.

  • Full IP: make edits to user_design_top.ttcl line 525.
  • PHY Only IP: make edits to phy.ttcl line 173.

3. You then have to add it in the IP Catalog. Click on the IP Settings:

4. Then Add a Repository, point to the newly edited PHY directory and Refresh All. The IPs should be shown in the repository in the lower box:

The screen capture below shows an example of what it should look like.

The IP in the standard MIG directory will now be over-ridden and you will see your edits when you generate the IP and look at the relevant code.

Revision History:

01/25/2016 - Initial Release

Linked Answer Records

Master Answer Records

AR# 66471
Date Created 01/25/2016
Last Updated 02/08/2016
Status Active
Type Known Issues
Devices
  • Kintex UltraScale
  • Virtex UltraScale
IP
  • MIG UltraScale