DDR3 Read Leveling
1. 将读回的DQS与DQ信号对齐
2. 将读回的不同字节的DQS信号之间进行对齐
请问哪个是正确的理解?万分感谢啊!
仔细想了想,read leveling的目的应该是将DQS对齐到该字节组的8个DQ窗口的中央
read leveling 是用于对齐不同byte之间的dqs
能否详细解释一下read leveling的原理呢?
因为我查了一些资料,虽然没有明确讲原理,但理解上应该是对齐DQS和DQ的,而且没有管不同byte的DQS关系
tongqiu
read leveling = read eye training + gate training
read eye training = left bound search + dqsdbl adjust to deskew + right bound search + make sure dqs rise in the midpoint of dq
gate traning for make gate rise align with dqs, because of phy rx is not enable power, so gate traning is to enable phy rx。 gate training steps are the same as write leveling
so you can see read leveling is for all bits dq deskew and make gate rise align with dqs
that's my understanding, mybe not right
Thank you very much!
In my understanding, read leveling includes several steps such as MPR reading and normal reading. For MPR reading, the memory controller reads "01010101" patterns from the MPR of the SDRAM, to aliagn the read DQS to the center of the valid DQ window. Then the memory controller writes some fixed pattern to the SDRAM and reads them back from the same location, to adjust the DQS phase more precisely. During the calibration, it needs to find the left bound and the right bound just as you have said, to define the valid data window.
This is my understanding now, maybe not correct as well...
I'm confused about the gate training step you said, could you explain more detaily? Thanks a lot!
最近也在研究,诸多不懂
亲爱的前辈可不可以把你的DDR3 SDRAM ip发过来借我用用嘛,前辈你最好了
呃,不是前辈,也没有ip……
DDR3初始化的时候停在这一步了,请教一下是什么原因造成的?
你用的是MIG还是什么?
雪中月影,请问:你的问题解决了吗?是什么原因造成的呢?我现在遇到了类似的问题,不知道从哪里找线索。谢谢答复!
我也遇到了read leveling 过不去。且有些DDR 内存条可以,有些内存条不可以。
请问是什么原因,是PCB走线吗
read leveling过不去一般是因为找不到dq窗口,read leveling是以byte为单位进行校准的,就是说一个byte的dq和dqs要对齐,走线尽可能等长。具体是什么原因导致通不过,我就不好说了。
你是用的MIG吗?可以抓一下read leveling相关的信号,以及rddata,看看到底哪些byte出错了
我有个疑问:
对于32bits的dq,共有4个bytes,对应4根dqs线;
对齐的意思是这样吗:这4根dqs分别和byte3 byte2 byte1 byte0 的眼图中部对齐,
如果是这样,也就是说不要求dq的32位都对齐,只要每个字节内部对齐就ok?
没错,是这样的
非常感谢你的回答,你对ddr了解的挺深入的。
呵呵,也是慢慢摸索的

上图来自JEDEC 79-3(DDR3的spec),有一点疑问,在write时是什么操作
保证DQS的上升沿基本对齐到DQ的中心里,也就是数据眼图开口最大处?
一般都是通过写校验,具体做法是先向固定地址写固定pattern,然后读出。每一组写操作将写dqs的相位移动一点,然后记录读出数据的正确性。找到读数据恰好出错的两个极值,然后取中间值就是最佳写dqs的相位。当然,在做写校验之前,要先通过初步的读校验来保证读出数据的有效性。
在write Leveling的时候保证了ck和dqs相位对齐;如果此时再移动dqs的相位以满足dqs和dq的中间对齐,那么dqs跟ck不就不对齐了吗
我想是不是移动的其实是dq的相位?
啊,你说的没错……
学习了
我也在看这个,请问哪里有read leveling 的spec吗?
没有什么特别详细的手册,Xilinx的MIG和Altera的EMIF控制器,都有DDR初始化相关的介绍,但也不是特别详尽,你可以找来看看。
这是啥问题呀?
