案例分享之DDR拓撲結構的選擇

2021-07-31 13:51:14 字數 1461 閱讀 5592

ddr的拓撲結構選擇也是乙個老生常談的話題了,從最初只能採用t拓撲到支援讀寫平衡的fly-by拓撲,設計似乎變得越來越簡單了。大家來看這樣一種情況,乙個驅動拖動兩片ddr顆粒,晶元支援讀寫平衡,您一般會選擇什麼拓撲結構呢?我想,這個應該和個人的設計習慣有關,或者選擇t拓撲,或者選擇fly-by,沒有標準答案。但是作者最近遇到的乙個專案,乙個主控拖動兩個ddr顆粒,採用fly-by結構,訊號質量就不穩定,小批量量產總有幾塊板子ddr不能正常工作,**發現ddr訊號質量並不是很理想,修改拓撲結構後,ddr執行變得穩定,具體什麼情況呢?

該主機板上有一塊fpga和一塊dsp,fpga驅動的ddr3沒有問題,但是dsp驅動的ddr不穩定,我們仔細進行了查板工作,該主機板上dsp與fpga都是採用fly-by拓撲結構,ddr顆粒也都支援讀寫平衡,如下圖1所示,從布線上來看,設計並無不妥。

圖1  fly-by 拓撲走線

fpga和dsp作為驅動時,**發現,兩者的波形還是存在較大差異的,如下圖所示:

圖2  dsp與fpga波形對比

由圖2可知,該主機板上fpga的驅動能力明顯好於dsp,dsp不僅驅動能力比較弱而且訊號的過衝還很嚴重,訊號的裕量非常的小。

怎樣去改善訊號質量呢?晶元的驅動能力是有限的,沒有太大調整空間,但既然選擇了這款晶元,也不能輕易的改變,只能從布線上作調整,希望可以提高訊號裕量,於是,作者想到了使用t拓撲結構,修改後的拓撲結構如下圖3所示:

圖3  t拓撲走線

經過**分析,將fly-by拓撲變成t拓撲之後,訊號質量明顯好了很多,如下圖所示,紅色波形代表的是採用fly-by拓撲時訊號的波形,綠色波形代表的是採用t拓撲時,**得到的波形。相比於採用fly-by拓撲,t拓撲得到的波形過衝更小。

圖4 t拓撲與fly-by拓撲走線對比

修改拓撲結構,實際打板,再次小批量量產,該主機板dsp驅動ddr不穩定的現象沒有了。

看來在顆粒數目比較小的情況下,t拓撲還是具有一定的優勢的,因為t拓撲是完全對稱的,在完全等臂分支的情況下,兩個接收端感受到的反射也是一樣的,可以相互抵消一部分,從而抑制訊號過衝。

總結:(1)ddr的拓撲結構選擇還要考慮晶元的驅動能力,同樣的拓撲結構,不同的晶元驅動得到不同的訊號質量,所以拓撲結構的設計也不是一勞永逸的,最好做一下**驗證,評估設計風險。

(2)顆粒比較少情況(少於4片),建議使用t拓撲;相對於fly-by,t拓撲會使訊號的過衝更小,訊號質量更穩定。

程式設計基礎之 選擇結構的程式設計

5 選擇結構的程式設計 if語句分為3終 單分支,多分支和巢狀。單分支if語句是實現選擇語句最簡單,最直觀的方法。它最簡單的形式就是判斷某個條件值是否為真,如果為真則執行一段 多分支if else語句的功能是計算表示式的值,若表示式的值為真,執行語句1,並跳過語句2,繼續執行if else語句的下一...

資料結構之選擇排序的java實現

選擇排序 每次迴圈都比較元素內容,記錄較小元素的下標,但是不進行交換 迴圈之後再判斷是否需要進行交換 與氣泡排序不同,氣泡排序每次比較,一旦滿足條件就進行元素內容交換 1.實現與測試 public class selectsort system.out.println arrays.tostring...

小白從零開始學習C之 程式的選擇結構

1.1選擇結構和條件判斷 c語言中,有兩種選擇語句,分別是 if語句和switch語句。1.2用if語句實現選擇結構 if語句的一般表示式為 if 表示式 語句1 else 語句2 if語句中的表示式可以是關係表示式 邏輯表示式 甚至是數值表示式。最直觀,最容易理解的是數值表示式。根據if語句的一般...