1.1 DDR4與DDR3 不同之處
相對于DDR3, DDR4首先在外表上就有一些變化,比如DDR4將內(nèi)存下部設(shè)計為中間稍微突出,邊緣變矮的形狀,在中央的高點和兩端的低點以平滑曲線過渡,這樣的設(shè)計可以保證金手指和內(nèi)存插槽有足夠的接觸面從而確保內(nèi)存穩(wěn)定,另外,DDR4內(nèi)存的金手指設(shè)計也有明顯變化,金手指中間的防呆缺口也比DDR3更加靠近中央。當(dāng)然,DDR4最重要的使命還是提高頻率和帶寬,總體來說,DDR4具有更高的性能,更好的穩(wěn)定性和更低的功耗,那么從SI的角度出發(fā),主要有下面幾點, 下面章節(jié)對主要的幾個不同點進(jìn)行說明。
1.2 POD 和SSTL的比較
POD作為DDR4新的驅(qū)動標(biāo)準(zhǔn),最大的區(qū)別在于接收端的終端電壓等于VDDQ,而DDR3所采用的SSTL接收端的終端電壓為VDDQ/2。這樣做可以降低寄生引腳電容和I/O終端功耗,并且即使在VDD電壓降低的情況下也能穩(wěn)定工作。其等效電路如圖1(DDR4), 圖2(DDR3)。
圖1 ?POD ((Pseudo Open Drain)
圖2 SSTL(Stub Series Terminated Logic)
可以看出,當(dāng)DRAM在低電平的狀態(tài)時,SSTL和POD都有電流流動
圖3 ?DDR4
圖4 ?DDR3
而當(dāng)DRAM為高電平的狀態(tài)時,SSTL繼續(xù)有電流流動,而POD由于兩端電壓相等,所以沒有電流流動。這也是DDR4更省電的原因
圖5 ?DDR4
圖6 DDR3
1.3 數(shù)據(jù)總線倒置 (DBI) ?
如上面描述,根據(jù)POD的特性,當(dāng)數(shù)據(jù)為高電平時,沒有電流流動,所以降低DDR4功耗的一個方法就是讓高電平盡可能多,這就是DBI技術(shù)的核心。舉例來說,如果在一組8-bit的信號中,有至少5-bit是低電平的話,那么對所有的信號進(jìn)行反轉(zhuǎn),就有至少5-bit信號是高電平了。DBI信號變?yōu)榈捅硎舅行盘栆呀?jīng)翻轉(zhuǎn)過(DBI信號為高表示原數(shù)據(jù)沒有翻轉(zhuǎn))。這種情況下,一組9根信號(8個DQ信號和1個DBI信號)中,至少有五個狀態(tài)為高,從而有效降低功耗。
圖7 DBI Example
1.4 ODT控制 ?
為了提升信號質(zhì)量, 從DDR2開始將DQ, DM, DQS/DQS#的Termination電阻內(nèi)置到Controller和DRAM中, 稱之為ODT (On Die Termination)。Clock和ADD/CMD/CTRL信號仍需要使用外接的Termination電阻。
圖8 On Die Termination
在DRAM中,On-Die Termination的等效電阻值通過Mode Register (MR)來設(shè)置,ODT的精度通過參考電阻RZQ來控制,DDR4的ODT支持240, 120, 80, 60, 48, 40, 34 歐姆。
和DDR3不同的是,DDR4的ODT有四種模式:Data termination disable, RTT_NOM,RTT_WR, 和 RTT_PARK。Controller可以通過讀寫命令以及ODT Pin來控制RTT狀態(tài),RTT_PARK是DDR4新加入的選項,它一般用在多Rank的DDR配置中,比如一個系統(tǒng)中有Rank0, Rank1以及Rank2, 當(dāng)控制器向Rank0寫數(shù)據(jù)時,Rank1和Rank2在同一時間內(nèi)可以為高阻抗(Hi-Z)或比較弱的終端(240,120,80,etc.), RTT_Park就提供了一種更加靈活的終端方式,讓Rank1和Rank2不用一直是高阻模式,從而可以讓DRAM工作在更高的頻率上。
一般來說,在Controller中可以通過BIOS調(diào)整寄存器來調(diào)節(jié)ODT的值,但是部分Controller廠商并不推薦這樣做,以Intel為例,Intel給出的MRC Code中已經(jīng)給出了最優(yōu)化的ODT的值,理論上用戶可以通過仿真等方法來得到其他ODT值并在BIOS中修改,但是由此帶來的所有問題將有設(shè)計廠商來承擔(dān)。下面表格是Intel提供的優(yōu)化方案。
表2 DQ Write ODT Table for 3DPC
表3 DQ Read ODT Table for 3DPC
1.5 參考電壓Vref ?
眾所周知,DDR信號一般通過比較輸入信號和另外一個參考信號(Vref)來決定信號為高或者低,然而在DDR4中,一個Vref卻不見了,先來看看下面兩種設(shè)計,可以看出來,在DDR4的設(shè)計中,VREFCA和DDR3相同,使用外置的分壓電阻或者電源控制芯片來產(chǎn)生,然而VREFDQ在設(shè)計中卻沒有了,改為由芯片內(nèi)部產(chǎn)生,這樣既節(jié)省了設(shè)計費用,也增加了Routing空間。
圖9 DDR3設(shè)計
圖10 DDR4設(shè)計
DRAM內(nèi)部VREFDQ通過寄存器(MR6)來調(diào)節(jié),主要參數(shù)有Voltage range, step size, VREF step time, VREF full step time,如下表所示。
表4 參考電壓
每次開機(jī)的時候,DRAM Controller都會通過一系列的校準(zhǔn)來調(diào)整DRMA端輸入數(shù)據(jù)信號的VREFDQ,優(yōu)化Timing和電壓的Margin,也就是說,VREFDQ 不僅僅取決于VDD, 而且和傳輸線特性,接收端芯片特性都會有關(guān)系,所以每次Power Up的時候,VREFDQ的值都可能會有差異。
因為Vref的不同,Vih/Vil都會有差異,可以通過調(diào)整ODT來看Vref的區(qū)別,用一個仿真的例子來說明。對于DDR3,調(diào)整ODT波形會上下同步浮動,而調(diào)整DDR4 OOT的時候,波形只有一邊移動。
圖11 仿真拓?fù)?/p>
圖12 DDR3仿真結(jié)果
圖13 DDR4仿真結(jié)果
1.6 DDR4 Layout Routing新方法 ?
在所有的Layout走線中,DDR無需質(zhì)疑是最復(fù)雜的,不僅要考慮阻抗匹配,還要考慮長度匹配,而且數(shù)量眾多的數(shù)據(jù)、地址線,不得不考慮串?dāng)_的影響。
DDR4數(shù)據(jù)速率提高以后,這些方面的影響變得更為嚴(yán)重,尤其是現(xiàn)在很多設(shè)計為了節(jié)省成本,PCB尺寸和層數(shù)都要求盡可能的變小,這樣對阻抗和串?dāng)_的要求就變的更有挑戰(zhàn)性,一般SI工程師和Layout工程師都會想各種辦法來滿足這些需求,很多時候也不得不妥協(xié)折衷,比如在做疊層設(shè)計的時候盡量讓線寬變小,在BGA Breakout區(qū)域采用更細(xì)的線,等等。但這些方法只能對設(shè)計做微小的調(diào)整,其實很難從根本上解決問題。最近Intel研究發(fā)現(xiàn)的一種新方法很有意思,可以在一定程度上很好的平衡阻抗(線寬)和串?dāng)_(線間距)。在此整理出來供大家參考。
先來看一個實際的Layout例子,兩根紅線之間的走線采用鋸齒形狀。沒錯,這就是Intel新研究出來的新方法,官方名稱為“Tabbed Routing”。
圖14 DDR4 Tabbed Routing
Tabbed Routing主要的方法是在空間比較緊張的區(qū)域(一般為BGA區(qū)域和DIMM插槽區(qū)域),減小線寬,而增加凸起的小塊(Tab),如下圖所示。
圖15 Tab routing方法
這種方法可以增加兩根線之間的互容特性而保持其電感特性幾乎不變,而增加的電容可以有效控制每一層的的阻抗,減小外層的遠(yuǎn)端串?dāng)_。仿真結(jié)果如下圖所示。
圖16 HFSS仿真結(jié)果
由仿真結(jié)果可以看出來,該方法對阻抗和遠(yuǎn)端串?dāng)_確實可以很好的平衡,當(dāng)然,對于Tab的尺寸,需要根據(jù)實際PCB做詳細(xì)的仿真設(shè)計,Intel也提供了一些Tool可以參考。有興趣的讀者,可以參閱更多資料
2DDR4 Simulation
2.1 Pre-Simulation with HyperLynx ?
如果Controller和DRAM都有IBIS模型,可以用HyperLynx對DDR4進(jìn)行很方便的Simulation, 仿真方法和其他DDR相同,通過Pre-Simulation, 可以對整個系統(tǒng)的拓?fù)湟约耙恍┘?xì)節(jié)進(jìn)行確定,比如Impedance(由Stackup以及線寬和線間距來確定),ODT值的選擇,T型結(jié)構(gòu)中Stub長度的控制,ADD/CMD/CTRL終端電阻的取值大小等等。
2.1.1 ADD/CMD/CTRL終端電阻取值
假設(shè)ADD電路如下,工作在2400MTs(Add/CMD為1.2Gbps),發(fā)送端為U16,采用Fly-By結(jié)構(gòu)到五組DRAM芯片,每組DRAM采用T結(jié)構(gòu)(實際Layout中,Top面一個DRAM芯片,Bottom面一個DRAM芯片),T型長度的Stub為77mil, 終端電阻為32歐姆,終端電壓為0.6V。
圖17 ADD仿真拓?fù)?/p>
由仿真結(jié)果可以看出來,T型結(jié)構(gòu)兩端因為完全對稱,所以波形幾乎一樣,為了方便觀察,只看其中一個波形,離Controller由近及遠(yuǎn),DRAM分別為U5, U4, U3, U2, U1, 其眼圖分別如下:
可以看出來,距離Controller越近的芯片,其波形越“亂”,但是上升沿卻很快,而距離終端電阻越近的芯片,其波形越好,但是上升沿卻變慢。那么如何才能得到最優(yōu)化的波形呢,下面通過掃描終端電阻的值看看是否會提高信號質(zhì)量,通過HyperLynx的Sweep功能,設(shè)置終端電阻阻值為27,33,39,45四個阻值。
圖18 Sweep設(shè)置 ?圖19 Sweep設(shè)置
U5(距離Controller最近)的眼圖如下,依次對應(yīng)終端電阻阻值為27,33,39,45歐姆:
U4的眼圖如下,依次對應(yīng)終端電阻阻值為27,33,39,45歐姆:
U3的眼圖如下,依次對應(yīng)終端電阻阻值為27,33,39,45歐姆:
U2的眼圖如下,依次對應(yīng)終端電阻阻值為27,33,39,45歐姆
U1的眼圖如下,依次對應(yīng)終端電阻阻值為27,33,39,45歐姆
從上面的波形可以看出來,對應(yīng)每一個DRAM的第三張波形都是最好的,也就是說對應(yīng)39歐姆的終端電阻可以得到最優(yōu)化的波形。
2.1.2 Data信號Stub的長度
一般DDR4的設(shè)計中,Data信號都采用Pin to Pin的設(shè)計方式,但在某些設(shè)計中,由于PCB空間限制或者控制器限制,也有需要采用一拖二的設(shè)計(T型結(jié)構(gòu)),在筆者所遇到的一個設(shè)計中,就遇到這種情況,綜合考慮下面兩種方案,如果采用T型拓?fù)浣Y(jié)構(gòu),如圖20所示,可以最大可能的節(jié)約PCB空間,但是如果DIMM0或者DIMM1只插一根的時候,另一邊會有較長的Stub出現(xiàn),對信號質(zhì)量會有影響。如果采用菊花鏈結(jié)構(gòu),如圖21所示,在只插DIMM0的情況下,同樣會有Stub影響。而且這種拓?fù)浣Y(jié)構(gòu)需要DIMM0和DIMM1之間的信號線之間滿足長度匹配,在DIMM0和DIMM1比較靠近的情況下,繞線會有一定難度。而如果增加DIMM0和DIMM1的距離,其Stub會變得更長,信號質(zhì)量沒有辦法得到控制。從信號完整性方面考慮,兩種方案均會存在Stub的影響,但是從Layout的角度來看,方案一有一定便利性,而且其Stub可以控制在500mil以內(nèi)。所以最終選擇方案一作為最終方案。當(dāng)然,這種設(shè)計是以犧牲信號Margin作為代價的,信號速率會收到一定影響,在筆者的項目中,在只插一根內(nèi)存的時候,信號速率最大只能跑到1866Mb/s.
圖20 DDR4 T型結(jié)構(gòu)
圖21 DDR4菊花鏈結(jié)構(gòu)
從仿真的角度出發(fā),這種仿真需要考慮的因素很多,控制器模型,PCB模型,Connector模型,以及最后的內(nèi)存條模型,而通常情況下,Connector模型和內(nèi)存條模型很難拿到,而且有時候就算拿到,也是不同類型的模型,整體Channel仿真需要更多時間和精力來完成。
如果時間有限,需要對設(shè)計做快速評估,用HyperLynx做快速仿真也是可以參考的,在下面的例子中,假設(shè)一個Conntorller需要驅(qū)動兩根DIMM或者兩顆內(nèi)存顆粒,系統(tǒng)工作在2400Mb/s, TL2和TL3的長度可以用來大概評估PCB Stub長度加上Connector長度加上內(nèi)存條長度。(此處只是用來做大概評估,如果時間條件運行,強(qiáng)烈建議拿到各個部分精確模型做比較準(zhǔn)確的仿真)。
從這個簡單的仿真可以看出來,Stub對于信號質(zhì)量的影響還是很明顯的,特別對于一根內(nèi)存槽懸空的狀態(tài)下,上面的例子中,Stub達(dá)到1000 mil的時候,在只插一根內(nèi)存的情況下,眼圖已經(jīng)非常糟糕,所以在實際設(shè)計中,需要在設(shè)計成本和信號速率之間進(jìn)行均衡,取舍。在筆者所做的設(shè)計中,因為PCB空間限制,最終選擇在單根內(nèi)存的時候只跑到1866Mb/s。
圖22 數(shù)據(jù)線仿真拓?fù)?/p>
在Stub長度為500mil的時候,兩根內(nèi)存都插和只插一根的眼圖如下:
在Stub長度為1000mil的時候,兩根內(nèi)存都插和只插一根的眼圖如下:
在用Intel的芯片作為DDR Controller做設(shè)計的時候,Intel所提供的SI Model可以提供一個比較完整的仿真,Intel所提供的Simulation Deck中,包含了DDR連接器,DIMM模型,如果能找到和實際項目匹配的模型,可以替換Deck中的模型,如果找不到模型,直接用Deck中所提供的模型也是非常有參考意義的。
2.2 Intel SISTAI仿真 ?
Intel所提供的Memory Bit Error Rate Executable (MBERE) tool集成在其Intel SISTAI(Signal Integrity Support Tools for Advanced Interfaces)網(wǎng)站系統(tǒng)上面,SISTAI可以進(jìn)行PCIE,SATA, USB,QPI等等高速信號的仿真,DDR4仿真模塊為MBER, 其基本思想是先基于Hspice產(chǎn)生一個Step Response, 然后把仿真結(jié)果.TR0文件放進(jìn)SISTAI系統(tǒng)進(jìn)行計算,產(chǎn)生Worse Case的眼圖,大致仿真流程如下:
2.2.1 DDR通道建模
Intel的仿真基于10根線模型,八根DQ線加上兩根DQS線,可以用Intel提供的Causal-W Element Tool來產(chǎn)生W Element models, 也可以用ADS,Hspice等工具對傳輸線建模,對于Post-Layout來說,可以使用PowerSI, Siwave等軟件提取DDR通道的S參數(shù)。注意這里的DQ和DQS的順序必須和Intel提供的順序相同,如圖23所示。
圖23 DDR數(shù)據(jù)線建模
2.2.2 Hspice仿真
Intel仿真模型還是比較詳細(xì),提供了各種模型以及各種不同情況下的Simulation Deck, 在實際仿真的時候,需要用實際設(shè)計的模型替換Deck中的參數(shù),以S參數(shù)為例,假設(shè)提取了整個DDR通道的S參數(shù),那么需要在pcakage的參數(shù)之后加入PCB通道模型,如下圖第二個紅框所示,之前的一些參數(shù),可以刪除或者加上*號來Block掉。
圖24 Intel仿真模型
圖25 Hspice編輯實例
Hspice仿真得到Step Response, 結(jié)果如下:
圖26 Hspice仿真結(jié)果
2.2.3 SISTAI仿真
得到Tr0文件后,需要把Tro放到SISTAI系統(tǒng)中進(jìn)行計算,操作流程如下:
圖27 SISTAI仿真方法
點擊Success可以得到仿真結(jié)果,比較遺憾的是,SISTAI只能看到眼寬,眼高等仿真數(shù)據(jù),并不提供眼圖的顯示。
圖28 SISTAI仿真結(jié)果
Intel的文件中也提供了Spec可以對仿真結(jié)果進(jìn)行對比判斷
表5 DQ Write Eye Target Minimums
表6 DQ Read Eye Target Minimums
3DDR4 RMT Margin測試Fail問題實例
3.1 設(shè)計情況 ?
該設(shè)計采用Intel Haswell-EP CPU作為DDR4 Controller, 采用3DPC(DIMM Per Channel)的設(shè)計,如下圖29所示。DDR4運行速率為1600Mb/s。
圖29 DDR4設(shè)計拓?fù)?/p>
3.2 問題描述
主板做好后,需要對DDR4信號進(jìn)行測試驗證,但是對于內(nèi)存條類的DDR4,測試點非常難找,測試結(jié)果也很不準(zhǔn)確,所有選擇只測試Memory Margin。在用Intel提供的Margin測試工具RMT進(jìn)行測試的時候,測試了各種不同廠商的內(nèi)存條,分別有Hynix 8G, Hynix 16G, Samsung 8G, Samsung 16G, Samsung 32G, Micron 8G, Micron 16G, 其中只有Micron 8G 結(jié)果顯示RxVLow, RxVhigh的值小于14(Spec為大于等于14),其他內(nèi)存條測試結(jié)果均滿足Spec要求。
表6 RMT測試結(jié)果
3.3 Memory Margin Test ?
上面說了RMT測試Fail,但是RMT測試是什么呢?下面對Memory的一般測試做大概介紹。眾所周知,實際PCB做好后,我們需要對其進(jìn)行測試以驗證信號完整性。通常是采用示波器測試對DDR信號線在讀寫時的信號質(zhì)量,但是這種測試存在很大的局限性,比如DDR信號到達(dá)每一個Component端的測點無法被點測到,測試點往往距離芯片pad還有一段距離,需要一些額外的測試設(shè)備,這樣勢必會影響準(zhǔn)確性,另外,DDR信號讀寫分離一直都比較難處理,即使使用儀器廠商提供的專業(yè)測試軟件,也往往看不到非常準(zhǔn)確的波形,還有測試點只位于芯片外部, Memory Controller內(nèi)部對信號Timing的調(diào)整無法被測到,所以在采用示波器測試波形之外, 還非常有必要進(jìn)行Memory Margin測試。
圖30 DDR4測試設(shè)備
圖31 DDR4測試眼圖
簡單的Memory Margin的測試方法是, 在Controller和DRAM都使用外部VREF供電的條件下, 調(diào)節(jié)VREF的電壓幅度, 同時運行Memory Stress Test軟件(如: Golden Memory, MSTRESS 等等), 直到出現(xiàn)測試Fail的VREF值同默認(rèn)VREF值間的差值, 記為VREF Margin。調(diào)節(jié)VREF并不會影響信號傳輸?shù)牟ㄐ? 因為VREF只是芯片接收端(Controller或DRAM)判斷輸入為0或1的判斷依據(jù)。然而在DDR4時代,Vrefdq已經(jīng)集成到芯片內(nèi)部,我們無法對其進(jìn)行調(diào)節(jié)。
這個時候一些專門的測試軟件就比較方便,比如Intel就提供了RMT和EVTS做為DDR Margin測試。
圖32 Margin測試原理
RMT(DDR Rank Margin Tool),其原理是修改設(shè)置, 讓BIOS在開機(jī)時自動運行Training程序, 同時通過Debug Port輸出Training的結(jié)果, 然后分析輸出的打印信息, 從而得到Memory Margin。所得到的結(jié)果不僅僅包含VREF Margin, 還包含Write/Read Timing Margin, ADD/CMD Timing Margin…而EVTS是對RMT的一個補(bǔ)充,可以進(jìn)行per-bit margin測試,如果Margin不佳,左右或上下不對稱的時候,可以用EVTS 2D Margin來了解成因是否為眼圖形狀所致。
3.4 問題分析 ?
3.4.1 Micron 8G 本體分析
因為其他內(nèi)存條RMT測試都是PASS的,唯有Micron 8G的測試是Fail,第一點想到的就是DIMM本身問題,聯(lián)系Micron FAE后,Micron懷疑是測試的內(nèi)存條生產(chǎn)日期太老,版本變更會影響測試結(jié)果,然而拿到最新的樣品后,測試結(jié)果仍然沒有任何改善。
同時,用這些樣品在Intel CRB(Custom reference board)上進(jìn)行測試,卻是可以PASS的。
由此可以判斷,Micron 8G本身并不是Margin Fail的唯一因素,只能試圖增加主板PCB Margin來改善RMT結(jié)果
3.4.2 通過Simulation來分析問題
從問題的描述來看,主板+大部分內(nèi)存條測試PASS, 有問題的內(nèi)存條+其他主板測試PASS, 看起來是遇到了最讓人頭疼的Worst Case+Worse Case的情況,這種情況下,單純的從設(shè)計本身來看,各項設(shè)計指標(biāo)都可以滿足相關(guān)文檔或者Design Guide,只能從細(xì)節(jié)入手,從一些細(xì)微的調(diào)整和優(yōu)化來提高彼此的Margin, 就這個Case來說,Micron 8G的Module已經(jīng)量產(chǎn),在沒有足夠的證據(jù)之前,沒有辦法要求廠商來做任何修改,而主板正在設(shè)計階段,看來只能想辦法來優(yōu)化提高主板Layout從而提高M(jìn)argin了。
然而對于DDR來說,如上面所描述,各項設(shè)計指標(biāo)都滿足相關(guān)設(shè)計規(guī)則,僅僅通過經(jīng)驗猜測,改版,測試的方式來做,無疑毫無效率性和針對性而言,而通過仿真的方法,來做各種各樣不同Case的仿真,找到對于提高M(jìn)argin比較明顯的改善點,然后修改Layout,就比較有針對性,也避免了多次改版所帶來時間和費用上的浪費。
回到設(shè)計本身,如本文3.1節(jié)所描述,本設(shè)計采用一個通道三根內(nèi)存的設(shè)計(一個Controller加三個DIMM),如圖33所示,仔細(xì)分析測試結(jié)果,Marign最差的均為DIMM2(距離CPU最近的一個),做一個簡單的理論分析,不管從CPU寫數(shù)據(jù)到DIMM2或者從DIMM2讀數(shù)據(jù)到CPU,無論DIMM1和DIMM0處于何種狀態(tài),L2和L3始終存在,對于DIMM2來說,相當(dāng)于有一段Stub存在,而Stub會引起信號反射,從而導(dǎo)致Margin減小,哇,找到Root cause了哎,原來問題這么簡單,快快改版做下一批PCB吧,可是,萬一下一批還是不行怎么辦?冷靜一下,還是先做仿真驗證一下吧。
圖33 PCB Layout
冷靜一下,再仔細(xì)分析,對比主板和Intel CRB的PCB設(shè)計,果然在這邊存在差異,CRB板子L2和L3長度大概為398 mil, 而我們的主板L2和L3長度大概為462 mil, 確實有差異,既然這邊的長度有差異,從前面我們的分析來看,仿真結(jié)果也肯定會有差異,我們來仿真看看,如前面所說,Intel SISTAI只能提供仿真數(shù)據(jù),而無法顯示波形,仿真結(jié)果整理如下圖。
表7 Write仿真結(jié)果
表8 Read 仿真結(jié)果
從仿真結(jié)果可以看出來兩點,第一,仿真數(shù)據(jù)最差的也是DIMM2,和實際測試結(jié)果吻合;第二,我們的主板仿真結(jié)果比Intel CRB的結(jié)果要差,和我們之前分析和猜測吻合。那么,縮小L2,L3的長度以后,仿真結(jié)果是不是會改善呢?由于PCB和Connector本身差異,我們的主板L2和L3最短只能縮小到410 mil左右,那么,PCB改善后的結(jié)果如何呢?仿真數(shù)據(jù)如下表。可以看出來,無論Write和Read, D2的結(jié)果都有了改善,可是為什么還是和Intel CRB差異很大呢?
表9 仿真結(jié)果對比
再來對比Layout,Trace走線已經(jīng)找不出差異,之前沒有關(guān)注過的疊層(Stackup)成為最大的差異點,CRB為8層板,而我們的主板為18層板,而且我們的主板DDR走線靠近TOP層,這么大的疊層差異直接導(dǎo)致了PTH Via孔所造成的Stub長度不同,同樣,DIMM插槽的針腳長度差異也會造成Stub影響,CRB采用的DIMM插槽針腳長度為2.4 mm, 我們主板DIMM插槽針腳長度為3.2 mm, 沒有找到相對應(yīng)的DIMM插槽模型,只能采用刪減或增加PCB疊層厚度來簡單模擬DIMM插槽針腳長度,減小主板DIMM插槽針腳長度(采用Stackup變更來簡單模擬) 到2.4 mm,仿真結(jié)果如下,已經(jīng)非常接近CRB的結(jié)果了。這個仿真雖然不是非常準(zhǔn)確,但是也是可以看出來Stub對信號質(zhì)量的影響。
表10 最終仿真結(jié)果對比
按照分析結(jié)果,縮短L2,L3的長度,改為陣腳比較短的DIMM插槽(因為設(shè)計已經(jīng)基本定型,只能進(jìn)行小的改動,沒有辦法把DDR走線移動到靠近Bottom層的Layer),重新改版后,之前測試Fail的Margin提高了2~3 Step, 終于可以PASS了。
至此,對于此Case的分析和仿真基本結(jié)束,DIMM to DIMM之間的長度以及DIMM插槽針腳長度(以及PTH VIA Stub)所造成的Stub對于提高信號Margin有一定的貢獻(xiàn),所以在針對3DPC(DIMM per Channel)的設(shè)計,在設(shè)計初期,就應(yīng)該盡可能減小DIMM TO DIMM的長度,對于板厚比較大的Case,盡可能把DDR走線靠近Bottom面,以減小Stub對信號質(zhì)量的影響。
4小結(jié)
DDR的設(shè)計,仿真,測試,一直以來都是大部分設(shè)計者比較關(guān)心的地方,也是讓大部分工程師比較頭疼的問題,首先從理論理解來說,DDR包含了很多技術(shù)難點,比如接口電路,比如Timing, Driver Strength, ODT等等概念都需要理解。其次從Layout角度來看,DDR不像串行總線一樣,只有幾對差分線,問題很容易定位,而DDR一旦出現(xiàn)問題,如果定位問題,成為眾多設(shè)計者感到棘手的問題,需要做大量的測試和實驗。最后,從仿真角度來說,DDR的仿真也比串行總線的仿真復(fù)雜很多,需要考慮PCB,連接器,內(nèi)存條,還要考慮各種參數(shù)的設(shè)置等等。
本文針對DDR設(shè)計中普遍存在的一些困惑,先是對DDR4的新技術(shù)和關(guān)鍵技術(shù)做了大概描述,然后介紹了DDR4目前的仿真方法,以及Intel對于DDR4的仿真Solution。最后通過一個Memory Margin的實際案例,介紹分析和解決問題的思路。
審核編輯:湯梓紅
評論
查看更多