Version Found: DDR4 v2.0
Version Resolved: See (Xilinx Answer 69035)
There is a bug in the tREFI counter logic. It should checking if it has reached one, not zero.
If an IP is generated with a tREFI of 7.8us in simulation it is actually set to 7.805us which will cause a 9xtREFI violation.
To work around the problem, the tREFIF parameter inside ddr4_v2_0_mc_ref.sv needs to be updated to the following:
To modify the IP RTL files, you can manually edit ddr4_v2_0_mc_ref.sv with a text editor. However, if the output products are regenerated, the modifications will be overwritten by Vivado.
As an alternative, you can create a custom IP Repository using the following steps:
1) Copy the DDR4 Controller directory from your Vivado install area.
(Full IP) C:\Xilinx\Vivado\2016.1\data\ip\xilinx\mem_v1_2
2) Make your edits to the source code in this copied directory and store the files in a location of your choice. Somewhere in your project directory is recommended.
(Full IP) make the following edits to mem_v1_2_ddr_mc_ref.sv line 179:
3) You will then need 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 in the repository should be displayed in the lower box.
The following screen capture is an example of what it should look like:
The IP in the standard MIG directory will now be over-written and you will see your edits when you generate the IP and look at the relevant code.
05/16/2016 - Initial Release