DDR3基本概念6 - Write leveling(寫入均衡)(轉)


https://blog.csdn.net/tbzj_2000/article/details/88304245

為了提供更好的信號完整性,DDR3的memory controller可以使用write leveling來調整DQS差分對和CK差分對的相對位置,利用DQS差分對路徑上的可調整延時來達成該目的。

   對於簡單的運用,比如on-board DDR memory,並且僅有一顆DDR內存的情況下可以考慮不需要做write leveling。 

   T型布線,如下圖。該布線方式同步切換噪聲(Simultaneous Switching Noise) 較大。

 

 

所謂的fly-by 布線,指地址、命令和時鍾的布線依次經過每一顆DDR memory芯片(即每一顆芯片共用了這些信號,在Lattice DDR SDRAM controller IP配置時,則ClockWidth要求設置為1)。而dq和dqs作了點到點的連接。VTT表示這些信號都接了ODT端接電阻。fly-by 結構相對於T布線,有助於降低同步切換噪聲(Simultaneous Switching Noise)。

Write Leveling的功能是調整DRAM顆粒端DQS信號和CLK信號邊沿對齊;調節過程描述:DDR控制器不停地調整DQS信號相對於CLK的延遲,DRAM芯片在每個DQS上升沿采樣CLK管腳上的時鍾信號,如果采樣值一直低,則會將所有的DQ[n]保持為低電平來告知DDR控制器,tDQSS(DQS, DQS# rising edge to CK, CK# rising edge,在標准中要求為+/-0.25 tCK。tCK為CLK時鍾周期)相位關系還未滿足,如果發現在某個DQS上升沿,采樣到此時的CLK電平發現了遷越(由之前的低跳變為高),則認為此時DQS和CLK已經滿足tDQSS,同時通過DQ[n]向DDR控制器發送一個高,表征一個寫均衡成功,同時DDR控制器會鎖住這個相位差。這樣,在每個DRAM端,看到的CLK和DQS信號都是邊沿對齊的

參考DDR3標准的寫入均衡的4.8.2 procedure description一節和上圖,寫入均衡的修調過程:

t1:將ODT拉起,使能on die termination;

t2:等待tWLDQSEN時間后(保證DQS管腳上的ODT已設置好),DDR控制器將DQS置起;DDR memory在DQS上升沿采樣CK信號,發現CK=0,則DQ保持為0。

t3:DDR控制器將DQS置起;DDR memory在DQS上升沿采樣CK信號,發現CK=0,則DQ仍然保持為0。

t4:DDR控制器將DQS置起;DDR memory在DQS上升沿采樣CK信號,發現CK=1,則等待一段時間后,DDR memory將dq信號置起。

   采取以上策略的原因:對於DDR controller來說,其無法測定clk邊沿和dqs邊沿的絕對位置,故采用了不斷調整dqs delay,在dqs上升沿判斷clk從0到1或1到0的一個變化,一旦檢測到變化,則寫入均衡停止。

   DDR3標准的Figure 17 write leveling concept圖不太好理解,以下進行說明。

從1中的兩個信號diff_DQS和DQ,可以看到 diff_DQS的上升沿采到的CK值都是0;
將diff_DQS加延時,直到如2 中所示diff_DQS的上升沿采到的CK值都是1,進而DQ輸出從0到1,完成寫入均衡(write leveling)。
注意:在DDR3的標准文檔中,在同一個時序圖中經常性看到有多個相同信號名,但波形不同的情況,需要結合上下文分析波形。

布線要求:

1.只有使用了fly-by的情況下需使能write leveling
2.CPU內部的內存控制器只能對DQS信號做延遲,不能做超前處理,所以CK要大於DQS信號線的長度,否則將不能滿足tDQSS
實戰說明:

對於Lattice VIP board,兩塊DDR芯片的布線使用了fly-by布線,故需使能Write leveling。即在Clarity designer的DDR3 SRAM controller的配置窗口的Type頁面,將Write leveling鈎選上。

將MR1寄存器的A7設置為1進入write leveling模式,然后在檢測到DQ上有0到1的跳變后,說明已結束,則設置A7為0退出該模式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM