作者:一博科技高速先生 姜杰 layout組有個雷工,大家叫他老雷,盡管畫板多年閱板無數,但還是被SI同事給出的DDR4信號優(yōu)化建議整懵圈了;SI組也有個雷工,大家叫他小雷,盡管初出茅廬時默默無聞,但是在他優(yōu)化的這版一驅九DDR4穩(wěn)定運行在3200Mbps后,他將被尊稱為豹哥。 一驅九DDR4設計一直是行業(yè)公認的難點,尤其是板載顆粒的方案,當然,具體難度也因板而異。不幸的是,兩位雷工這次遇到的是個硬骨頭,不光是板載顆粒設計,還是個改板,之所以改板,原因很簡單,之前的板子DDR4數據信號沒有達到3200Mbps的預期速率。 客戶反饋前一版本已經可以跑到2933Mbps, 改板的需求也很簡單,就是能穩(wěn)定運行到3200Mbps,畢竟,上一版離目標速率也就差那么一點點。6 ?! T+ C& D& J" w" i& n
8 v |( ?. [; I0 c與客戶的樂觀不同,小雷覺得事情可能不像預期的那么容易?梢耘袛嗟氖牵弦话媸窃A坎蛔銓е碌膍arginal fail,問題是,從2933Mbps到3200Mbps,這點看似不起眼的裕量去哪找? 熟悉高速先生文章的朋友一定還記得,一驅多DDRX,難點往往不在速率較高的數據信號,而在于速率只有數據信號一半的地址控制類信號,原因這里再解釋哈:數據信號一般都是點到點的拓撲,而且大多有片上端接(ODT),走線拓撲簡單,又有端接,信號想跑不起來都難;地址控制類信號的處境就難多了,難就難在一驅多的走線拓撲對信號的影響太大,即便速率相比數據信號減半。
& F% P$ _. E: e' D6 I* |- q" d- v* Y! W! o! x- Z* E
/ b9 R7 G& ?0 W* R7 M: N6 i W9 {小雷也深知這一點,所以上一版數據信號跑不到3200Mbps,大概率是因為DDR4的地址控制類信號達不到1600Mbps,于是查板從此類信號入手,上一版的走線拓撲為Clamshell,看不懂單詞沒關系,畫出來你就秒懂了:3 Y1 b1 c- @6 ^1 X
: G0 i( F" D7 }4 j) ]" m
4 d: B9 c; F: \8 l對于空間受限的單板而言,一驅九DDR4選擇這個拓撲也算合理。Clamshell拓撲可以認為是Flyby拓撲和T拓撲的組合,所以既有Flyby拓撲的特點,也就是近端顆粒的信號質量特別差;也有T拓撲的特點,近端的DRAM1和DRAM2一樣差。小雷的仿真結果也驗證了這一點,上一版近端顆粒的眼圖(地址信號速率1600Mbps)確實在Pass和Fail的邊緣瘋狂試探,無怪乎壓力測試速率總是差那么一點點。
% P* }- O% Y+ `6 @ q) F: p
1 p- K, I, z# w0 V
w) _" j' R) A令人沮喪的是,無論小雷如何調整Clamshell拓撲參數,近端顆粒的信號質量始終不見改善,看來前一版的設計也是下過功夫的。關鍵時刻,客戶提供了另外一個信息:同樣的主控芯片,在板載顆粒方案之前,有過DIMM條成功的案例,當時的DIMM條上的DDR顆粒采用Flyby拓撲,設計如下:' s: ]3 R# j+ V+ z; _3 {. \6 l7 P
6 v/ F- H j" B- l" h
# d/ w0 r, ]) r1 k苦無良方的小雷決定照葫蘆畫瓢,讓老雷把板載顆粒也改為Flyby拓撲試試,不過,由于單板空間不像DIMM條充足,板載DDR芯片需要雙面布局,調整后的地址信號拓撲如下:0 V2 U) |- d2 d9 l7 r- O9 u
: ~- |6 e& `1 _* i) b
6 J2 E. f5 K# V' W7 G老雷不愧設計老炮兒,三下五除二把板子改了出來,除了因空間受限與DIMM條的布局無法做到一樣,DDR信號的各段走線長度、阻抗控制都與DIMM條保持一致,還很貼心了調整了信號走線層,讓過孔stub盡量短。 小雷查板之后相當滿意,老雷得到認可后也很得意,甚至自信滿滿的與客戶確定了投板日期,萬事俱備,只欠仿真驗證了。# I- G: X0 ?2 [. y8 T
, y7 a9 P& l5 P, Y調整為Flyby拓撲的板載顆粒方案仿真結果居然又翻車了,近端顆粒信號質量略有改善,但是仍沒達到預期效果:
) w* ? j/ a+ ~5 @( ~# o8 `6 i9 R4 F1 K0 L2 N' F8 |( b; P; u
+ U1 k9 J3 C- `; j, M7 l' p! B
小雷迷茫了,目前的仿真結果顯然無法支持數據信號穩(wěn)定運行到3200Mbps。拓撲、走線、阻抗都控制的和DIMM一毛一樣,為啥結果還差著一截? & N6 f6 L" J6 |' A, `3 V1 n! }3 K
0 f3 A- W5 j! L# v% W+ v: y
' {/ \( I$ R; k- Z8 G7 U0 A& x! S, w) F一定是漏了什么?小雷對著DIMM條和板載設計的Flyby一點點的排查,功夫不負有心人,經過一整天的對比驗證,終于發(fā)現(xiàn)了關鍵影響因素。最后給出的優(yōu)化方案讓老雷驚掉了下巴:調整主控芯片與近端顆粒之間走線的層面,控制過孔stub越長越好。
$ f7 M' p" M/ T) H; H2 E" g! _" ^' y7 ^# n) |" j1 G/ N
' _/ j6 a0 h: l/ i) _: j“都知道SI同事的套路深,沒想到這么深。眾所周知過孔stub越短越好,小雷為何這次卻不走尋常路,偏偏要加長?!”老雷將信將疑,還是耐著性子按照小雷的要求調整走線層,過孔stub由調整前的35mil增加到94mil。不曾想,仿真結果再次顛覆了老雷的認知,近端顆粒的信號質量竟然鬼使神差的好了起來:7 N/ S% E' l9 V3 b
& A# H ]# \5 G& }5 L G! x& ?# s. ?& k& q& h! ?+ [2 S
老雷心中疑云密布: “為什么會這樣?難道以前的經驗有錯?”' L- U" ^& M$ {8 j% |) R
小雷仿佛看透了老雷的想法,于是解釋起來:“其實,一開始自己也是百思不得其解,后來從stub的特點切入,才慢慢有了眉目:過孔stub本質是一種能量泄放的通道,越是高頻的能量受到的影響越大,因此,高速串行信號需要控制過孔stub盡量短,以避免能量損耗。但是,本項目的特殊之處在于主控芯片的驅動較強,加上一驅多拓撲的反射更容易在近端顆粒處積累,所以近端顆粒的信號質量就成了通道的瓶頸,增加近端顆粒的過孔stub長度能夠很好的衰減高頻分量,使主芯片輸出的強度減弱,上升沿變緩,最終達到減少反射的目的,相應的,信號質量也得到了改善。不過,這也是一家之言,要深入理解這個現(xiàn)象還有待進一步的研究。” “這是不是說所有DDRX的Flyby信號拓撲都要控制近端顆粒過孔stub盡量長呢?”老雷繼續(xù)問道。 小雷沉吟半晌:“不是,增加過孔stub這種非常規(guī)操作需要慎用,這個項目這么做也是因為有仿真的驗證。如果主控芯片的驅動本身比較弱,這時再增加過孔stub可能就適得其反了! 老雷秒懂了:“所以,It depends!實在拿不準的還是要仿真!! F, O- q5 R7 _) F" {$ D# V8 J8 x
兩人會心一笑,順利投板。兩個月以后,客戶反饋了改板調試成功的消息,給這個項目畫上了圓滿的句號。
/ I# i; P, X8 s: Q問題來了( R, s0 g; x/ T" d X
大家接觸過的DDRX最多拖了幾個顆粒呢?地址信號采用什么拓撲?歡迎分享
6 y P, [+ j- c5 i* T |