Knowledge Base Article
Why is my DDR3 hard memory controller ODT not toggling?
Description
There is a problem with the DDR3 hard memory controller that causes the ODT signal (mem_odt) to remain high during write and read accesses.
Resolution
The workaround is as follows:
- In the MegaWizard Memory Parameters tab, set MR1 RttNom to disabled, set MR2 RttWr to RZQ/4 (or whatever value works best for your board)
- Regenerate the IP
- Make the following change to force the mem_odt signal permanently high. Open the *_p0_*_addr_cmd_pads.v file and change the datain connection in the ucmd_pad instantiation as follows:
From :
.datain({ phy_ddio_we_n, phy_ddio_cas_n, phy_ddio_ras_n, phy_ddio_odt, phy_ddio_cke, phy_ddio_cs_n})
To:
.datain({ phy_ddio_we_n, phy_ddio_cas_n, phy_ddio_ras_n, 4\'b1111, phy_ddio_cke, phy_ddio_cs_n})
Recompile the design and observe with a scope that mem_odt is always high. By disabling RttNom and enabling RttWr, it ensures that ODT in the memory device is only turned on for write accesses.
This issue will be fixed in a future release of the Quartus® II software.
Updated 18 days ago
Version 2.0No CommentsBe the first to comment