Hi All,
Yuri
My custom hardware is based on i.MX6Q processor and 800MHz Alliance DDR3 memory AS4C256M16D3A-12BCN.Design is most related to Nitrogen6_max design.
I set tCL = 6 and tCWL = 8 for the calibration and ddr init script. Some boards are working for this values and for some boards I had to change tCWL = 7 for better performance. Otherwise getting segmentation faults.
1) How this could happen with the same ddr layout and same production line boards ? What can we figure with this fine tuning of tCL and tCWL value of board to board ?
A well as I could see following write DQS delays for my boards. You can see DQS 3 and DQS 4 are way off. It should be lover than 1/8 according to NXP user manual.
2) What can we say from following DQS results ? Is it a impedance problem of those byte lanes ?
3) To optimize above values I used following method. But I couldn't see any impact for DQS 3 and DQS 4 with WALAT changes. Why is that ?
4) What are the other dependency which we can tolerate like tCWL and tCL for the memory performance ?
Here I have attached DDR3 memory data sheet and NXP calibration tool results.
I must be thankful to you if you will kindly reply me soon.
Regards,
Peter.
Hello,
Look at my comments below.
I.
From practical point of view - it makes sense to modify / setup some MMDC registers
in initialization script after memory calibration, using its results. In Your case:
MMDC registers updated from calibration
Write leveling calibration
MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x0018001E
MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x0028001A
MMDC_MPWLDECTRL0 ch1 (0x021b480c) = 0x001A0025
MMDC_MPWLDECTRL1 ch1 (0x021b4810) = 0x0014001E
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x02580258
MPDGCTRL1 PHY0 (0x021b0840) = 0x024C0250
MPDGCTRL0 PHY1 (0x021b483c) = 0x02600268
MPDGCTRL1 PHY1 (0x021b4840) = 0x02500230
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x423A3A3C
MPRDDLCTL PHY1 (0x021b4848) = 0x3A383842
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x3A3A403C
MPWRDLCTL PHY1 (0x021b4850) = 0x403A403A
If overnight test with new initialization parameters is OK - the found parameters are good
candidates for final release.
II.
tCL and tCWL should be the same for i.MX6 MMDC and DDR3 (AS4C256M16D3A).
III.
Please verify PCB design, using Excel page named “MX6 DRAM Bus Length Check” in “HW Design
Checking List for i.Mx6”.
https://community.nxp.com/docs/DOC-93819
Have a great day,
Yuri
------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer
button. Thank you!
Hi Peter
unfortunately I am not aware of nxp documentation for optimization tCL and tCWL memory settings.
I believe such documentation should be provided by memory vendors.
NXP i.MX6 DDR Script Aid suggest to enter tCL and tCWL from datasheet mamories, without changes.
>>4) What are the other dependency which we can tolerate like tCWL and tCL for the memory performance ?
suggest to post this to memory vendor (Alliance) tech support
WALAT is described on p.18 AN4467 i.MX 6 Series DDR Calibration
https://www.nxp.com/docs/en/application-note/AN4467.pdf
In general issues with improving performance and customer boards analysis may be provided with
extended support of Professional Services
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------