摘要
本文章主要涉及到對DDR2和DDR3在設計印制線路板(PCB)時,考慮信號完整性和電源完整性的設計事項,這些是具有相當大的挑戰(zhàn)性的。文章重點是討論在盡可能少的PCB層數(shù),特別是4層板的情況下的相關技術,其中一些設計方法在以前已經(jīng)成熟的使用過。
1. 介紹
目前,比較普遍使用中的DDR2的速度已經(jīng)高達800 Mbps,甚至更高的速度,如1066 Mbps,而DDR3的速度已經(jīng)高達1600 Mbps。對于如此高的速度,從PCB的設計角度來講,要做到嚴格的時序匹配,以滿足波形的完整性,這里有很多的因素需要考慮,所有的這些因素都是會互相影響的,但是,它們之間還是存在一些個性的,它們可以被分類為PCB疊層、阻抗、互聯(lián)拓撲、時延匹配、串擾、電源完整性和時序,目前,有很多EDA工具可以對它們進行很好的計算和仿真,其中Cadence ALLEGRO SI-230 和Ansoft’s HFSS使用的比較多。
表1顯示了DDR2和DDR3所具有的共有技術要求和專有的技術要求。
表1: DDR2和DDR3要求比較
2. PCB的疊層(stackup)和阻抗
對于一塊受PCB層數(shù)約束的基板(如4層板)來說,其所有的信號線只能走在TOP和BOTTOM層,中間的兩層,其中一層為GND平面層,而另一層為 VDD 平面層,Vtt和Vref在VDD平面層布線。而當使用6層來走線時,設計一種專用拓撲結構變得更加容易,同時由于Power層和GND層的間距變小了,從而提高了PI。
互聯(lián)通道的另一參數(shù)阻抗,在DDR2的設計時必須是恒定連續(xù)的,單端走線的阻抗匹配電阻50 Ohms必須被用到所有的單端信號上,且做到阻抗匹配,而對于差分信號,100 Ohms的終端阻抗匹配電阻必須被用到所有的差分信號終端,比如CLOCK和DQS信號。另外,所有的匹配電阻必須上拉到VTT,且保持50 Ohms,ODT的設置也必須保持在50 Ohms。
在 DDR3的設計時,單端信號的終端匹配電阻在40和60 Ohms之間可選擇的被設計到ADDR/CMD/CNTRL信號線上,這已經(jīng)被證明有很多的優(yōu)點。而且,上拉到VTT的終端匹配電阻根據(jù)SI仿真的結果的走線阻抗,電阻值可能需要做出不同的選擇,通常其電阻值在30-70 Ohms之間。而差分信號的阻抗匹配電阻始終在100 Ohms。
圖1 : 四層和六層PCB的疊層方式
3. 互聯(lián)通路拓撲
對于DDR2和DDR3,其中信號DQ、DM和DQS都是點對點的互聯(lián)方式,所以不需要任何的拓撲結構,然而列外的是,在multi-rank DIMMs(Dual In Line Memory Modules)的設計中并不是這樣的。在點對點的方式時,可以很容易的通過ODT的阻抗設置來做到阻抗匹配,從而實現(xiàn)其波形完整性。而對于 ADDR/CMD/CNTRL和一些時鐘信號,它們都是需要多點互聯(lián)的,所以需要選擇一個合適的拓撲結構,圖2列出了一些相關的拓撲結構,其中Fly- By拓撲結構是一種特殊的菊花鏈,它不需要很長的連線,甚至有時不需要短線(Stub)。
對于DDR3,這些所有的拓撲結構都是適用的,然而前提條件是走線要盡可能的短。Fly-By拓撲結構在處理噪聲方面,具有很好的波形完整性,然而在一個4 層板上很難實現(xiàn),需要6層板以上,而菊花鏈式拓撲結構在一個4層板上是容易實現(xiàn)的。另外,樹形拓撲結構要求AB的長度和AC的長度非常接近(如圖2)??紤]到波形的完整性,以及盡可能的提高分支的走線長度,同事又要滿足板層的約束要求,在基于4層板的DDR3設計中,最合理的拓撲結構就是帶有最少短線(Stub)的菊花鏈式拓撲結構。
圖2: 帶有2片SDRAM的ADDR/CMD/CNTRL拓撲結構
對于DDR2-800,這所有的拓撲結構都適用,只是有少許的差別。然而,菊花鏈式拓撲結構被證明在SI方面是具有優(yōu)勢的。
對于超過兩片的SDRAM,通常,是根據(jù)器件的擺放方式不同而選擇相應的拓撲結構。圖3顯示了不同擺放方式而特殊設計的拓撲結構,在這些拓撲結構中,只有A和 D是最適合4層板的PCB設計。然而,對于DDR2-800,所列的這些拓撲結構都能滿足其波形的完整性,而在DDR3的設計中,特別是在1600 Mbps時,則只有D是滿足設計的。
圖3: 帶有4片SDRAM的ADDR/CMD/CNTRL拓撲結構
4. 時延的匹配
在做到時延的匹配時,往往會在布線時采用trombone方式走線,另外,在布線時難免會有切換板層的時候,此時就會添加一些過孔。不幸的是,但所有這些彎曲的走線和帶過孔的走線,將它們拉直變?yōu)榈乳L度理想走線時,此時它們的時延是不等的,如圖4所示。
圖4: Trombone 和 Vias的實例
顯然,上面講到的trombone方式在時延方面同直走線的不對等是很好理解的,而帶過孔的走線就更加明顯了。在中心線長度對等的情況下,trombone 走線的時延比直走線的實際延時是要來的小的,而對于帶有過孔的走線,時延是要來的大的。這種時延的產(chǎn)生,這里有兩種方法去解決它。一種方法是,只需要在 EDA工具里進行精確的時延匹配計算,然后控制走線的長度就可以了。而另一種方法是在可接受的范圍內,減少不匹配度。
對于trombone線,時延的不對等可以通過增大L3的長度而降低,因為并行線間會存在耦合,其詳細的結果,可以通過SigXP仿真清楚的看出,如圖 5,L3(圖中的S)長度的不同,其結果會有不同的時延,盡可能的加長S的長度,則可以更好的降低時延的不對等。對于微帶線來說,L3大于7倍的走線到地的距離是必須的。
圖5: 針對trombone的仿真電路和仿真波形
trombone線的時延是受到其并行走線之間的耦合而影響,一種在不需要提高其間距的情況下,并且能降低耦合的程度的方法是采用saw tooth線。顯然,saw tooth線比trombone線具有更好的效果,但是,它需要更多的空間。由于各種可能造成時延不同的原因,所以,在實際的設計時,要借助于CAD工具進行嚴格的計算,從而控制走線的時延匹配。
考慮到在圖2中6層板上的過孔的因素,當一個地過孔靠近信號過孔放置時,則在時延方面的影響是必須要考慮的。先舉個例子,在TOP層的微帶線長度是 150 mils,BOTTOM層的微帶線也是150 mils,線寬都為4 mils,且過孔的參數(shù)為:barrel diameter="8mils",pad diameter="18mils",anti-pad diameter="26mils"。
這里有三種方案進行對比考慮,一種是,通過過孔互聯(lián)的這個過孔附近沒有任何地過孔,那么,其返回路徑只能通過離此過孔250 mils的PCB邊緣來提供;第二種是,一根長達362 mils的微帶線;第三種是,在一個信號線的四周有四個地過孔環(huán)繞著。圖6顯示了帶有60 Ohm的常規(guī)線的S-Parameters,從圖中可以看出,帶有四個地過孔環(huán)繞的信號過孔的S-Parameters就像一根連續(xù)的微帶線,從而提高了 S21特性。由此可知,在信號過孔附近缺少返回路徑的情況下,則此信號過孔會大大增高其阻抗。當今的高速系統(tǒng)里,在時延方面顯得尤為重要。
現(xiàn)做一個測試電路,類似于圖5,驅動源是一個線性的60 Ohms阻抗輸出的梯形信號,信號的上升沿和下降沿均為100 ps,幅值為1V。此信號源按照圖6的三種方式,且其端接一60 Ohms的負載,其激勵為一800 MHz的周期信號。在0.5V這一點,我們觀察從信號源到接收端之間的時間延遲,顯示出來它們之間的時延差異。其結果如圖7所示,在圖中只顯示了信號的上升沿,從這圖中可以很明顯的看出,帶有四個地過孔環(huán)繞的過孔時延同直線相比只有3 ps,而在沒有地過孔環(huán)繞的情況下,其時延是8 ps。由此可知,在信號過孔的周圍增加地過孔的密度是有幫助的。然而,在4層板的PCB里,這個就顯得不是完全的可行性,由于其信號線是靠近電源平面的,這就使得信號的返回路徑是由它們之間的耦合程度來決定的。所以,在4層的PCB設計時,為符合電源完整性(power integrity)要求,對其耦合程度的控制是相當重要的。
圖6: 帶有過孔互聯(lián)通道的s-parameters
圖7: 圖6三種案例的發(fā)送和接收波形
對于DDR2和DDR3,時鐘信號是以差分的形式傳輸?shù)?,而在DDR2里,DQS信號是以單端或差分方式通訊取決于其工作的速率,當以高度速率工作時則采用差分的方式。顯然,在同樣的長度下,差分線的切換時延是小于單端線的。根據(jù)時序仿真的結果,時鐘信號和DQS也許需要比相應的ADDR/CMD /CNTRL和DATA線長一點。另外,必須確保時鐘線和DQS布在其相關的ADDR/CMD/CNTRL和DQ線的當中。由于DQ和DM在很高的速度下傳輸,所以,需要在每一個字節(jié)里,它們要有嚴格的長度匹配,而且不能有過孔。差分信號對阻抗不連續(xù)的敏感度比較低,所以換層走線是沒多大問題的,在布線時優(yōu)先考慮布時鐘線和DQS。
5. 串擾
在設計微帶線時,串擾是產(chǎn)生時延的一個相當重要的因素。通常,可以通過加大并行微帶線之間的間距來降低串擾的相互影響,然而,在合理利用走線空間上這是一個很大的弊端,所以,應該控制在一個合理的范圍里面。典型的一個規(guī)則是,并行走線的間距大于走線到地平面的距離的兩倍。另外,地過孔也起到一個相當重要的作用,圖8顯示了有地過孔和沒地過孔的耦合程度,在有多個地過孔的情況下,其耦合程度降低了7 dB??紤]到互聯(lián)通路的成本預算,對于兩邊進行適當?shù)姆抡媸潜仨毜?,當在所有的網(wǎng)線上加一個周期性的激勵,將會由串擾產(chǎn)生的信號抖動,通過仿真,可以在時域觀察信號的抖動,從而通過合理的設計,綜合考慮空間和信號完整性,選擇最優(yōu)的走線間距。
圖8: 相互耦合走線的s-parameters
6. 電源完整性
這里的電源完整性指的是在最大的信號切換情況下,其電源的容差性。當未符合此容差要求時,將會導致很多的問題,比如加大時鐘抖動、數(shù)據(jù)抖動和串擾。
這里,可以很好的理解與去偶相關的理論,現(xiàn)在從”目標阻抗”的公式定義開始討論。
Ztarget=Voltage tolerance/Transient Current (1)
在這里,關鍵是要去理解在最差的切換情況下瞬間電流(Transient Current)的影響,另一個重要因素是切換的頻率。在所有的頻率范圍里,去耦網(wǎng)絡必須確保它的阻抗等于或小于目標阻抗(Ztarget)。在一塊 PCB上,由電源和地層所構成的電容,以及所有的去耦電容,必須能夠確保在100KHz左右到100-200MH左右之間的去耦作用。頻率在 100KHz以下,在電壓調節(jié)模塊里的大電容可以很好的進行去耦。而頻率在200MHz以上的,則應該由片上電容或專用的封裝好的電容進行去耦。實際的電源完整性是相當復雜的,其中要考慮到IC的封裝、仿真信號的切換頻率和PCB耗電網(wǎng)絡。對于PCB設計來說,目標阻抗的去耦設計是相對來說比較簡單的,也是比較實際的解決方案。
在 DDR的設計上有三類電源,它們是VDD、VTT和Vref。VDD的容差要求是5%,而其瞬間電流從Idd2到Idd7大小不同,詳細在JEDEC里有敘述。通過電源層的平面電容和專用的一定數(shù)量的去耦電容,可以做到電源完整性,其中去耦電容從10nF到10uF大小不同,共有10個左右。另外,表貼電容最合適,它具有更小的焊接阻抗。
Vref要求更加嚴格的容差性,但是它承載著比較小的電流。顯然,它只需要很窄的走線,且通過一兩個去耦電容就可以達到目標阻抗的要求。由于Vref相當重要,所以去耦電容的擺放盡量靠近器件的管腳。
然而,對VTT的布線是具有相當大的挑戰(zhàn)性,因為它不只要有嚴格的容差性,而且還有很大的瞬間電流,不過此電流的大小可以很容易的就計算出來。最終,可以通過增加去耦電容來實現(xiàn)它的目標阻抗匹配。
在4層板的PCB里,層之間的間距比較大,從而失去其電源層間的電容優(yōu)勢,所以,去耦電容的數(shù)量將大大增加,尤其是小于10 nF的高頻電容。詳細的計算和仿真可以通過EDA工具來實現(xiàn)。
7. 時序分析
對于時序的計算和分析在一些相關文獻里有詳細的介紹,下面列出需要設置和分析的8個方面:
1. 寫建立分析: DQ vs. DQS
2. 寫保持分析: DQ vs. DQS
3. 讀建立分析: DQ vs. DQS
4. 讀保持分析: DQ vs. DQS
5. 寫建立分析: DQS vs. CLK
6. 寫保持分析: DQS vs. CLK
7. 寫建立分析: ADDR/CMD/CNTRL vs. CLK
8. 寫保持分析: ADDR/CMD/CNTRL vs. CLK
表2舉了一個針對寫建立(Write Setup)分析的例子。表中的一些數(shù)據(jù)需要從控制器和存儲器廠家獲取,段”Interconnect”的數(shù)據(jù)是取之于SI仿真工具。對于DDR2上面所有的8 項都是需要分析的,而對于DDR3,5項和6項不需要考慮。在PCB設計時,長度方面的容差必須要保證total margin是正的。
表2: 針對DQ vs. DQS的DDR3寫保持時域分析案例
8. PCB Layout
在實際的PCB設計時,考慮到SI的要求,往往有很多的折中方案。通常,需要優(yōu)先考慮對于那些對信號的完整性要求比較高的。畫PCB時,當考慮一下的一些相關因素,那么對于設計PCB來說可靠性就會更高。
1. 首先,要在相關的EDA工具里要設置好里設置好拓撲結構和相關約束。
2. 將BGA引腳突圍,將ADDR/CMD/CNTRL引腳布置在DQ/DQS/DM字節(jié)組的中間,由于所有這些分組操作,為了盡可能少的信號交叉,一些獨立的管腳也許會被交換到其它區(qū)域布線。
3. 由串擾仿真的結果可知,盡量減少短線(stubs)長度。通常,短線(stubs)是可以被削減的,但不是所有的管腳都做得到的。在BGA焊盤和存儲器焊盤之間也許只需要兩段的走線就可以實現(xiàn)了,但是此走線必須要很細,那么就提高了PCB的制作成本,而且,不是所有的走線都只需要兩段的,除非使用微小的過孔和盤中孔的技術。最終,考慮到信號完整性的容差和成本,可能選擇折中的方案。
4. 將Vref的去耦電容靠近Vref管腳擺放;Vtt的去耦電容擺放在最遠的一個SDRAM外端;VDD的去耦電容需要靠近器件擺放。小電容值的去耦電容需要更靠近器件擺放。正確的去耦設計中,并不是所有的去耦電容都是靠近器件擺放的。所有的去耦電容的管腳都需要扇出后走線,這樣可以減少阻抗,通常,兩端段的扇出走線會垂直于電容布線。
5. 當切換平面層時,盡量做到長度匹配和加入一些地過孔,這些事先應該在EDA工具里進行很好的仿真。通常,在時域分析來看,差分線里的兩根線的要做到延時匹配,保證其誤差在+/- 2ps,而其它的信號要做到+/- 10 ps。
9. DIMM
之前介紹的大部分規(guī)則都適合于在PCB上含有一個或更多的DIMM,唯一列外的是在DIMM里所要考慮到去耦因素同在DIMM組里有所區(qū)別。在DIMM組里,對于ADDR/CMD/CNTRL所采用的拓撲結構里,帶有少的短線菊花鏈拓撲結構和樹形拓撲結構是適用的。
10. 案例
上面所介紹的相關規(guī)則,在DDR2 PCB、DDR3 PCB和DDR3-DIMM PCB里,都已經(jīng)得到普遍的應用。在下面的案例中,我們采用MOSAID公司的控制器,它提供了對DDR2和DDR3的操作功能。在SI仿真方面,采用了 IBIS模型,其存儲器的模型來自MICRON Technolgy,Inc,對于DDR3 SDRAM的模型提供了1333 Mbps的速率。在這里,數(shù)據(jù)是操作是在1600 Mbps下的。對于不帶緩存(unbuffered)的DIMM(MT_DDR3_0542cc)EBD模型是來自Micron Technology,下面所有的波形都是采用通常的測試方法,且是在SDRAM die級進行計算和仿真的。圖2所示的6層板里,只在TOP和BOTTOM層進行了布線,存儲器由兩片的SDRAM以菊花鏈的方式所構成。而在DIMM的案例里,只有一個不帶緩存的DIMM被使用。圖9-11是對TOP/BOTTOM層布線的一個閃照圖和信號完整性仿真圖。
圖9: 只有在TOP和BOTTOM層走線的DDR3的仿真波形
(左邊的是ADDRESS和CLOCK網(wǎng)絡,右邊的是DATA和DQS網(wǎng)絡,其時鐘頻率在800 MHz,數(shù)據(jù)通信率為1600Mbps)
圖10: 只有在TOP和BOTTOM層走線的DDR2的仿真波形
(左邊的是ADDRESS和CLOCK網(wǎng)絡,右邊的是DATA和DQS網(wǎng)絡,其時鐘頻率在400 MHz,數(shù)據(jù)通信率為800Mbps)
圖11: 只有在TOP和BOTTOM層走線的DDR3-DIMM的仿真波形
(左邊的是ADDRESS和CLOCK網(wǎng)絡,右邊的是DATA和DQS網(wǎng)絡)
最好,圖12顯示了兩個經(jīng)過比較過的數(shù)據(jù)信號眼圖,一個是仿真的結果,而另一個是實際測量的。在上面的所有案例里,波形的完整性的完美程度都是令人興奮的。
圖12: 800 Mbps DDR2的數(shù)據(jù)信號仿真眼圖(紅) 和 實測眼圖 (藍)
11. 結論
本文,針對DDR2/DDR3的設計,SI和PI的各種相關因素都做了全面的介紹。對于在4層板里設計800 Mbps的DDR2和DDR3是可行的,但是對于DDR3-1600 Mbps是具有很大的挑戰(zhàn)性。