歡迎您光臨本站 登入註冊首頁

概述

DDR1&2&3匯流排概覽   DDR全名為DoubleDataRateSDRAM,簡稱為DDR。現在DDR技術已經發展到了DDR3,理論上速度可以支持到……

DDR 1&2&3匯流排概覽
    DDR全名為Double Data Rate SDRAM ,簡稱為DDR。現在DDR技術已經發展到了DDR 3,理論上速度可以支持到1600MT/s。DDR匯流排走線數量多,速度快,操作複雜,探測困難,給測試和分析帶來了巨大的挑戰。
    DDR 本質上不需要提高時鐘頻率就能加倍提高SDRAM的速度,它允許在時鐘的上升沿和下降沿讀出數據,因而其速度是標準SDRAM的兩倍。至於地址與控制信號則與傳統SDRAM相同,仍在時鐘上升沿進行數據判斷。
    目前,許多計算機使用時鐘頻率為533MHz的DDR2內存,更先進的DDR2內存正在日益普及,它的時鐘頻率在400 MHz-800 MHz之間,新的DDR3內存的時鐘頻率則可以工作在800MHz-16OOMHz之間。DDR3內存晶元還有另外一個長處:更低的能耗,它的運行電壓是1.5伏,低於DDR2內存晶元的1.8伏和DDR1內存晶元的2.5伏。在使用電池的設備中能夠延長電池續航時間,因為能耗低,產生的熱量也就少,從而對冷卻的要求也就低一些。
    DDR 2&3幾個新增特性的含義是:ODT( On Die Termination),DDR1 匹配放在主板上,DDR2&3把匹配直接設計到DRAM晶元內部,用來改善信號品質。OCD(Off Chip Driver)是加強上下拉驅動的控制功能,通過減小DQS與/DQS(DQS是數據Strobe,源同步時鐘,數據的1和0由DQS作為時鐘來判斷) Skew(時滯)來增加信號的時序容限(Timing Margin)。Posted CAS是提高匯流排利用率的一種方法。AL(Additive Latency)技術是相對於外部CAS,內部CAS執行一定的延時。
 
圖1:DDR匯流排的體系結構
    圖1是DDR匯流排的體系結構。其中DQS是源同步時鐘,在接收端使用DQS來讀出相應的數據DQ,上升沿和下降沿都有效。DDR1匯流排,DQS是單端信號,而DDR2&3, DQS則是差分信號。DQS和DQ都是三態信號,在PCB走線上雙向傳輸,讀操作時,DQS信號的邊沿在時序上與DQ的信號邊沿處對齊,而寫操作時,DQS信號的邊沿在時序上與DQ信號的中心處對齊,參考圖2,這就給測試驗證帶來了巨大的挑戰:把“讀”信號與“寫”信號分開是非常困難的!
 
圖2:DDR匯流排“讀”“寫”操作時序
    圖2中,Addr/Cmd Bus意思是地址/命令匯流排,都是時鐘的上升沿有效,其中命令由:/CS(片選),/RAS, /CAS,/WE(寫使能)決定,比如:“讀”命令為:LHLH,“寫”命令為:LHLL等。操作命令很多,主要是NOP(空超作),Active(激活),Write,Read,Precharge (Bank關閉),Auto Refresh或Self Refresh(自動刷新或自刷新)等(細節請參考:Jedec規範JESD79)。Data Bus是數據匯流排,由DQS的上升沿和下降沿判斷數據DQ的0與1。

DDR 1&2&3匯流排的信號完整性測試
    DDR匯流排PCB走線多,速度快,操作時序複雜,很容易出現失效問題,為此我們經常用示波器進行DDR匯流排的信號完整性測試和分析,通常的測試內容包括:
1,命令信號的波形和時序參數:需要測試/RAS,/CAS,/WE,/CS的信號品質,如Vmax(最大電壓值),Vmin(最小電壓值),Slew Rate(斜率),Ringback(回溝)等;還需要測試相對於時鐘邊沿的Setup Time(建立時間)和Hold Time(保持時間)。測試相對於時鐘邊沿的建立時間和保持時間時,需要注意參考電平的位置和最差情況波形的捕獲。如圖3的/CS建立時間和保持時間的測試就沒有測試出最差的建立時間和保持時間值,為此,我們需要用眼圖累積的方式設法找到最差情況下的建立時間和保持時間。
 
圖3:/CS信號的建立時間和保持時間測試
2,地址信號的波形和時序參數:測試內容和測試方法類似於命令信號的測試,包括信號品質和相對於時鐘邊沿的建立時間和保持時間的測試。
3,時鐘信號的波形和抖動參數:測試建議用差分探頭。波形參數包括overshoot(過沖),undershoot(下沖),Slew Rate(斜率)或Rise Time(上升時間)和Fall Time(下降時間),高低時間和Duty Cycle(占空比失真)等。時鐘抖動一般只是測試Cycle-Cycle Jitter(周期到周期抖動),但是當速率超過533MT/s的DDR2&3時,則測試內容相當多,不可忽略,下表1是DDR2 667的規範參數。這些抖動參數的測試需要用專用軟體實現,比如Agilent的N5413A DDR2時鐘表徵工具。
 
表1:DDR 2 667 時鐘抖動測試參數(參考Jedec規範)
4,速據信號的波形和時序參數:DQS(源同步時鐘)和DQ(數據)波形參數與命令地址測試類似,測試起來比較簡單,但是探測卻比較複雜和困難。DDR1,DQS是單端信號,可以用單端探頭測試,DDR2&3 DQS則是差分信號,建議用差分探頭測試,減小探測難度。DQS和DQ的時序關係,即相對的在不同操作條件下的建立時間和保持時間關係則非常複雜,分析比較困難,圖4是實際捕獲的DDR2 533 DQS和DQ的波形。從圖中可以看出DQS和DQ的三態(Tri-state)特徵,讀數據(Read Burst)和寫數據(Write Burst)的DQS和DQ的相對時序特徵。在我們測試時,只是捕獲了這樣的波形,然後測試出在“讀”“寫”操作時的建立時間和保持時間參數是不夠的,因為數據碼型是變化的,猝髮長度也是變化的,只測了幾個時序參數很難覆蓋各種情況,更難測出最差情況。很多工程師花了一周去測試DDR,仍然測不出問題的關鍵點就在此處。因此我們應該用眼圖的方式去測試DDR的讀寫時序,確保反映整體時序情況和捕獲最差情況下的波形,最好能夠套用串列數據的分析方法,調用模板幫助判斷。
 
圖4:實際捕獲的DDR2 533 DQS和DQ的波形

DDR 1&2&3 “讀”“寫”眼圖測試
    基於DDR“讀”“寫”信號相位不同的特徵,本人設計了一個軟體進行“讀”“寫”眼圖的測試分析,軟體使用VEE Pro 7.5設計界面,使用VEE Pro內嵌的Matlab腳本分析數據,基於規範的AC參數設計模板,幫助工程師進行DDR信號完整性測試分析的最複雜部分即“讀” “寫”數據眼圖的測試分析。
    圖5是軟體界面和分析結果的一個示例,上面兩福圖形是用戶界面。左邊的是離線分析軟體,用示波器同時採集DQS和DQ信號,並且存為*.CSV文件。採集時,採樣率設置為20GSa/s,存儲深度設置為200k以上,確保捕獲足夠的數據,同時被測系統運行大型的軟體或MemoryTest.exe工具(此內存測試軟體能夠進行內存匯流排的加壓測試,一般做系統設計的或內存設計的都有),以讓匯流排上有足夠多的數據,來增加捕獲各種碼型和最差情況的可能性。離線軟體調用採集的波形,自動去掉三態數據,把“讀”數據放在一起,把“寫”數據放在一起,基於DQS的有效邊沿(去掉預調整和后調整后的上升邊沿和下降邊沿),累積在一起形成眼圖,調用模板判斷信號的優劣和是否滿足規範要求。
    圖5右上圖是基於Agilent的DSO80000和54850系列示波器的在線實時分析軟體界面。需要把軟體安裝在示波器內部,或安裝在外部電腦上用LAN或GPIB到USB適配器(82357A)連接到示波器。示波器的通道1探測DQS,通道3探測DQ,被測系統上運行大型的軟體或MemoryTest.exe工具。在在線軟體上輸入想重複捕獲波形的次數,然後按“starting”進行實時數據的捕獲和實時眼圖的分析,軟體會控制示波器捕獲波形,然後分析數據,形成眼圖,調用模板判斷信號是否滿足規範要求,然後重複下一次捕獲和分析,同時把新捕獲的波形累積到前面捕獲的波形上面。在線軟體執行的演算法與離線軟體類似,只是可以自動控制示波器,進行波形的多次捕獲和分析,並同時把實時捕獲的波形的分析結果連同以前的結果一同顯示出來。
 
 
圖5:自己設計的DDR 1/2/3“讀”“寫”眼圖分析軟體的用戶界面和測試結果示例
    圖5下面的兩個波形是實際的分析結果示例,分析的是DDR2 667,測試點是在DIMM內存條上。對我們比較有意義的是左邊的“寫”眼圖,它反映的是信號從北橋發出,通過主板較長距離傳輸到達DRAM接收晶元的波形,這是我們做系統設計和測試時需要得到的眼圖。右圖則是直接從DRAM晶元發出的信號的波形,因為測試點是在DIMM上,所以對我們只有參考價值:當在北橋測試出時序問題時,通過此波形的觀察確定是主板設計的問題,還是DIMM或DRAM晶元本身的問題。如果測試點在北橋,則我們需要關注“讀”眼圖,而此時“寫”眼圖一般只有參考價值。
    這個DDR“讀”“寫”眼圖分析軟體的演算法是什麼呢?其實很簡單,如圖6所示,如果直接用DQS觸發DQ,則會形成比較亂的眼圖,但是中間又包括需要的信息,如圖中的紅色圓圈周圍的是“寫”眼圖信息,途中的黃色圓圈周圍則是“讀”眼圖信息。而眼圖之所以亂,是因為同時包括“三態”信號和“讀”“寫”信號,而“讀” 和“寫”信號的時序是矛盾的。使用軟體進行分離的處理比較容易:首先,扔掉三態信號,保留有用信息,軟體設計時,檢測DQS有效邊沿,離DQS有效邊沿較遠的信號就是三態信號,扔掉它;然後,根據建立時間和保持時間的關係把“讀”信號和“寫”信號分成兩個資料庫;最後,把“讀”信號資料庫按DQS有效邊沿放在一起形成眼圖,把“寫”信號資料庫按DQS有效邊沿放在一起形成眼圖,分別調用模板產生測試結果。
 
圖6:直接使用DQS觸發DQ而形成的雜亂眼圖

DDR 1&2&3 模板定義
    DDR規範沒有定義模板,這給用眼圖方式分析信號時判斷信號是否滿足規範要求帶來挑戰。為了更容易判斷是否滿足規範的要求,像分析一般串列信號一樣分析“讀”“寫”眼圖,本人根據Jedec規範設計了“讀”“寫”模板。下面以定義“寫”眼圖模板為例,介紹一下模板的設計方法。
    圖7是Jedec規範上的時序和波形參數,tDS是相對於DQS有效邊沿的建立時間,tDH是相對於DQS有效邊沿的保持時間,tDS相對於DQ的AC參數,tDH則相對於DQ的DC參數,不過為了測試方面的方便性,我們都可以用AC參數來定義tDS和tDH。tDS和tDH參數的測試是DDR的核心測試參數。
 
 
圖7:Jedec規範上的DDR2電參數定義
    在Jedec規範上,我們可以查到各種速率的tDS和tDH 的規範值,比如DDR2 533,tDS是100ps,tDH 是225ps。我們也可以查到各種速率的AC參數值,比如DDR2 533:
VIH(ac)min=Vref+0.25V=0.9+0.25=1.15V
VIL(ac)max=Vref-0.25V=0.9-0.25=0.65V
    其中,VIH(ac)min是VIH(ac)規範的最小值,VIL(ac)max是VIL(ac)規範的最大值,Vref是參考電壓,對DDR1來說是1.25V,DDR2來說是0.9V,DDR3來說是0.75V。
    基於tDS和tDH 和VIH(ac)min和VIL(ac)max參數,我們可以得出DDR2 533“寫”眼圖的模板如圖8示。中間的紅色區域就是模板,Setup time是tDS建立時間,Hold time是tDH 保持時間,VIH(AC)是VIH(ac)min值,VIL(AC)是VIL(ac)max值。中間的黃色線是DQS的有效邊沿即有效的上升沿或下降沿。
 
圖8:DDR2 533“寫”眼圖模板的定義
    嚴格按規範的話,中間的模板應該定義為橫著的梯形,因為保持時間是相對於DC參數,不過用長方形可以定義一個更嚴格的參數要求。

小結
    DDR是需要進行信號完整性測試的匯流排中最複雜的匯流排,不僅走線多、探測困難,而且時序複雜,各種操作交織在一起。本文基於多年的實踐經驗,提供了一些測試的參考方法,尤其對 “讀”“寫”眼圖的測試方法和模板的定義提出一種創新的觀點,並設計軟體實現了這種方法,希望對主板,DIMM,DRAM設計者和測試者有參考價值。

參考資料:
1、 DDR匯流排的失效分析方法探索,孫燈亮,2004
2、 High Speed Memory Debug Techniques, Agilent Technologies, Inc.2004
3、 Double Data Rate(DDR) SDRAM Specification, JEDEC SOLID STATE TECHNOLOGY ASSOCIATION, May 2002
4、 DDR2 SDRAM Specification ,JEDEC SOLID STATE TECHNOLOGY ASSOCIATION,Sep. 2003
5、 DDRII System Validation and Debug, IDF, 2004
作者簡介:
孫燈亮於2003年作為高級系統工程師加入Agilent公司。之前,作為應用工程師和研發工程師工作多年。曾在華為技術有限公司從事信號完整性分析和高速互連設計的技術研究和產品開發工作。Email:deng-liang_sun@agilent.com


[admin via 研發互助社區 ] DDR1&2&3的「讀」和「寫」眼圖分析已經有59234次圍觀

http://cocdig.com/docs/show-post-44235.html