I am setting up the DDR4 controller IP for a device which has a speed bin of 3200 MT/s. However, I would be using that device only for 2400 MT/s. While entering the timing parameters from the device datasheet in Quartus, I wanted to confirm whether I should be using the parameters for the speed bin at which I am running the controller or the speed bin of the memory device which is being used? In the EMIF User Guide:
Speed bin: The speed grade of the memory device used. This parameter refers to the maximum rate at which the memory device is specified to run. (Identifier:MEM_DDR4_SPEEDBIN_ENUM).
Does this mean the speed grade at which I am running the device, i.e. 2400?
No, in the top section of the Mem Timing tab in the parameter editor, you should enter information for the binning of the part, not the speed at which you plan to run it. This sets up the controller and interface for correctly accessing the external memory at any speed it is designed for.
At the bottom of the Mem Timing tab of the parameter editor, you should see some info to enter that is not bin specific. Here and on the other tabs is where you enter info for the speed you'll be running at.
Thanks for that. And I believe that the Memory CAS latency and Memory Write CAS latency settings would depend on the speed at which we are running the core (2400 MT/s in this case). Please correct me if you find that incorrect.
Hi I think you should use the 3200 datasheet. for some specific parameter that need to derive from memory clock, then you have to calculate it based on the actual frequency that you use which is 2400. (1200MHz)
Hi BoonT_Intel and sstrell,
Thanks for your reply. I will be using using the speed grade of the device in the timing information in the "Parameters dependent on Speed Bin" section of the "Mem Timing" tab of the EMIF IP. Also, for the "Parameters dependednt on Speed Bin, Operating Frequency, and Page size", I would be using the parameters depending on the operating frequency and the page size of the device used.
However, I am still not sure about the "Latency and Burst" section in "Memory" tab of the EMIF IP. I want to write the correct "Memory CAS latency setting" and "Memory write CAS latency setting". I need to dig in more into the details... please let me know your thoughts on that.
Are you able to find the "Memory CAS latency setting" and "Memory write CAS latency setting" in the device datasheet? to be accurate, you need to get these value from memory vendor. Otherwise, you can select the preset (at right bottom corner) that nearest to the device that you using and apply it to get the recommended setting.
Yes. I can get these settings fromt he memory vendor. However, I see different settings "Memory CAS latency" and "Memory write CAS latency" depending on different speed bins. If the device is of 3200 speed bin but we are operating it at 2400 speed bin, then which of values should I enter while configuring the IP CAS values for 2400 or for 3200?
in this case, my practice is to use the larger latency value as this loosen the requirement but it gives additional latency to the traffic.
If you have the memory support contact, you can check with them see if they got better explanation on this. Hope you can share with us if you get the answer from them. Thanks 😉