本文首先列出了DDR2布線中面臨的困難,接著系統的講述了DDR2電路板設計的具體方法,最后給出個人對本次電路設計的一些思考。本次設計中CPU的封裝為BGA844-SOC-Y,DDR2的封裝為FBGA84,DDR2的控制總線采用星形連接,使用的PCB軟件為AltiumDesigner10,參考設計教程為《Altium Designer DDR2設計教學視頻》[1]!
1. DDR2布線中面臨的困難
1.1 DDR與CPU之間的布局[1]
(1)DDR2:內存與CPU的邊緣間距建議5~8mm;
(2)DDR3:排阻自身長度為2mm,排阻與CPU邊緣間距建議3mm,排阻與內存邊緣間距建議3mm。
1.2 如何設置Width(信號線寬)和Clearance(安全間距)?
在封裝BGA844-SOC-Y中,焊盤的直徑為18.9mil,焊盤間距為39.37mil,兩個焊盤之間的間隔為20.47mil,要想從BGA中引出所有的信號線,必須合理的設置Width和Clearance等規則。
圖1 BGA844-SOC-Y焊盤間距
在《DDR布線規則與過程》[2]一文中,交代了線寬與線距的設置規則:
(1)DDR的供電線線寬建議8mil以上,信號線默認線寬為5mil;
(2)線與線間距建議采用2W原則為8mil,線與其它sub-class的間距為5mil;
(3)CPU與DDR的區域規則:走線線寬為5mil,允許最小間距為3.3mil;
在博通BCM53344開發板中,CPU采用1006-pin FCBGA封裝,DDR3采用FBGA封裝,在BGA的區域內,線間距設為3.098mil,如圖2所示,線寬設為3.902mil,如圖3所示。
圖2 線距規則
圖3 線寬規則
1.3 網絡分類與差分線的設置
在《DDR2信號分類及等長設計》[3]一文中,DDR2可以分為以下三類:
(1)差分時鐘信號:CLK_N,CLK_P;
(2)數據線DQ0~DQ15,數據掩碼信號DQM0,DQM1,數據選通信號DQS*_N,DQS*_P;
(3)地址線/控制線:除數據,時鐘外的其他信號,如A0~A12,WE,CS,BA0~2,CKE等;
可以設置為以下幾個class規則:
(1)DATA_L_BUS:Q0~DQ7,DQM0,DQS0_N,DQS0_P;
(2)DATA_H_BUS:Q8~DQ15,DQM1,DQS1_N,DQS1_P;
(3)ADDR_BUS:除數據線外的其他信號;
(4)CLK_DIFF: CLK_N,CLK_P;
1.4 如何確定小T點與大T點的位置?
如圖4所示,小T點對應于DDR2焊盤扇出后的過孔C與D,C與D點扇出的走線方式必須保持一致。大T點對應于地址/命令總線的分支點過孔B,在DDR做等長布線時,地址/命令總線Net-Class(網絡類)每條網絡滿足:
(1)AB+BC=AB+BD;
(2)每條網絡的總長度(AB+BC+BD)均相等。
為了降低DDR等長布線的難度,通常將大T點設在C與D的對稱軸上,假如大T點沒有落在C與D的中軸線上,該怎么辦?
在《用Altium Designer實現DDR2的等長布線》[4]和《Altium Designer 中 DDRII SDRAM 的等長布線》[5]中給出了解決辦法,文中使用了AD里面的From-To Editor 網絡編輯器,將同一個網絡在T點處劃分為3個部分,然后通過設置焊盤到焊盤之間的等長來實現DDR的等長布線,有興趣的讀者可以查看原文!
圖4 選取大T點
1.5 BGA自動扇出與手動優化
在使用AD10給BGA自動扇出時,需要注意一下幾點:
(1)在執行自動扇出前,BGA上的所有焊盤均不能連線,否則自動扇出無法完成!
(2)FBGA84封裝的DDR2在進行自動扇出時,扇出的效果非常差,必須使用手工扇出。
對CPU和DDR2進行自動扇出,可分別得到圖5和圖6所示所示結果。
圖5 CPU自動扇出
圖6 DDR2自動扇出效果
1.6 如何控制等長誤差
在《DDR2信號分類及等長設計》[3]一文中,等長誤差如下設置:
(1)所有信號線參考差分時鐘的長度作等長;
(2)DATA_L_BUS共11根走在同層,與差分時鐘的長度誤差25mil;
(3)DATA_H_BUS共11根走在同層,與差分時鐘的長度誤差25mil;
(4)ADDR_BUS:與差分時鐘的長度誤差200~300mil;
在視頻《Altium Designer DDR2設計教學視頻》中,作者給出了如下的等長誤差,記地址/控制網絡類(包括差分時鐘)的等長目標為L1,數據網絡類等長目標為L2,則:
(1)在地址/控制網絡類中,差分時鐘長度設為L1,其它等長誤差控制在L1±200mil之內;
(2)數據網絡類等長誤差控制在L2±25mil之內,同一組之間作等長即可;
(3)L1與L2滿足:0<L1-L2<1000mil!
2. DDR2等長布線
2.1 區域規則ROOM講解
如何放置ROOM?
執行Design→Rooms→Place Rectangular Room,給CPU和DDR2添加ROOM,添加后將ROOM名稱分別修改為“CPU_ROOM”、“DDR2_ROOM”,如圖7所示。
圖7 添加ROOM
2.2 區域規則設置
(1)如何設置規則?
執行Design→Rules...即可進入規則編輯菜單。
(2)如何定義ROOM內的規則?
進入規則編輯器后,首先點擊需要編輯的規則并右擊新建“new rule...”,接著先點擊新鍵的規則,然后在“Where The First Object Matches”一欄選擇“Advanced(Query)”,在“Full Query”一欄填入“withinroom('name_ROOM')”,最后Apply并單擊OK即可!
上面的name_ROOM為ROOM的名稱,輸入語法時請切換為英文輸入法,如果需要同時給多個ROOM定義規則,其語法為:withinroom('name_ROOM')&withinroom('name1_ROOM')&withinroom('name2_ROOM')
(3)如何給PCB定義規則?
為了引出BGA內部走線,規則中的Clearance和Width進行如下設置:
Clearance設置方案(優先級從下到上依次遞增):
Clearance_CPU : 4 mil withinroom('CPU_ROOM')
Clearance_DDR2 : 4.4 mil withinroom('DDR2_ROOM')
Clearance : 5 mil
Width(最小 / 推薦 / 最大)設置方案(優先級從下到上依次遞增):
Width_PWR : 12 / 12 / 120 mil
Width_CPU : 4 / 4 / 4 mil withinroom('CPU_ROOM')
Width_DDR2 : 4.4 / 4.4 / 4.4 mil withinroom('DDR2_ROOM')
Width : 5 / 5 / 5 mil
說明:Width_PWR為電源網絡的線寬規則!
2.3 過孔、網絡CLASS及差分線的設置
(1)如何給PCB定義Via(過孔)的規則?
Via(內徑 / 外徑)設置方案(優先級從下到上依次遞增):
RoutingVias_DDR2 : 8 / 16 mil withinroom('DDR2_ROOM')
RoutingVias : 10 / 22 mil
(2)如何設置網絡Class
DDR2的所有網絡,可以分為以下3類:
電源地信號,數據信號,時鐘、地址、控制類信號。
執行Design→ Classes...,調出類設置界面,按下方的規則對網絡進行分類:
POWER_CLASS:GND、VREF、VCC1V8、VTT。
DATA_CLASS:
Data0-7:DRAM0_D0~7、DRAM0_DM0、DRAM0_DQS0_N、DRAM0_DQS0_P;
Data8-15:DRAM0_D8~15、DRAM0_DM1、DRAM0_DQS1_N、DRAM0_DQS1_P;
Data16-23:DRAM0_D16~23、DRAM0_DM2、DRAM0_DQS2_N、DRAM0_DQS2_P;
Data24-31:DRAM0_D24~31、DRAM0_DM3、DRAM0_DQS3_N、DRAM0_DQS3_P;
ADD_CLASS:DRAM0_A0~13、DRAM0_BA0~2、DRAM0_CAS#、DRAM0_CLKE、DRAM0_CLK_N、DRAM0_CLK_P、DRAM0_CS#、DRAM0_ODT、DRAM0_RAS#、DRAM0_WE#
網絡歸類后效果如圖8所示。
圖8 網絡分類
(3)如何設置差分線?
在軟件左側欄中,選擇“Differential Pairs Editor”項目,將DDR2的時鐘和DQS信號歸為差分對,如圖1.10所示:
差分對DRAM0_DQS0:DRAM0_DQS0_N、DRAM0_DQS0_P;
差分對DRAM0_DQS1:DRAM0_DQS1_N、DRAM0_DQS1_P;
差分對DRAM0_DQS2:DRAM0_DQS2_N、DRAM0_DQS2_P;
差分對DRAM0_DQS3:DRAM0_DQS3_N、DRAM0_DQS3_P;
差分對DRAM0_CLK:DRAM0_CLK_N、DRAM0_CLK_P。
圖9 添加差分對
2.4 小T點設置
DDR2手動扇出效果圖如圖10所示,封裝中心處的過孔對應為小T點,兩個小T點的中點對應大T點所在的位置。
完成小T點的設置主要分為以下幾步:
1. 對左側的DDR2進行手動扇出;
2. 全選DDR2扇出的走線和過孔,對已選對象進行復制并以左上第一個焊盤作為參考點;
3. 將所選對象復制到右側DDR2上,十字光標對準左上第一個焊盤!
以上操作也可稱作走線與過孔的復用!
圖10 小T點設置
圖10 小T點設置
2.5 大T點設置
將圖10的小T點依次連接,并在兩個小T點的中心打上過孔(即大T點),完成后效果如圖11所示。
在連線時請注意以下細節:
1. 大T點的位置是允許一定的誤差的,不需要絕對的中心!
2. 繞線時需要優化電源過孔的布局;
3. 小T點(過孔)之間的水平與垂直間距需要保持在30mil以上!
4. 大T點與小T點放置完后,請進行上鎖設置,防止誤刪!
圖11 大T點設置
2.6 CPU自動扇出
執行Auto Route→Fanout→Component,點擊CPU封裝即可完成CPU的自動扇出,扇出效果如圖12所示。由于規則的設置,電源類管腳扇出線寬為12mil,信號管腳扇出線寬為4mil,下圖中打白色圓圈的管腳為無網絡的焊盤。
圖12 CPU扇出
2.7 數據互聯
數據類總線分為兩部分互連,一部分走頂層,另一部分走L3層!
如圖13所示,為數據網絡類DATA0-[D8-15]和DATA0-[D24-31]在頂層的連線效果圖。
圖13 頂層DDR數據線互連
如圖14所示,為數據網絡類DATA0-[D0-7]和DATA0-[D16-23]在L3層的連線效果圖。
圖14 L3層DDR數據線互連
2.8 地址線T點互連
地址與控制類總線分為兩部分互連,一部分走頂層如圖15所示,另一部分走底層如圖16所示。
圖15 頂層控制、地址類總線連接
圖16 底層控制、地址類總線連接
2.9 尋找等長目標
如圖16所示,為地址類網絡長度分布,根據網絡長度分布,選擇3000mil作為地址類網絡的等長目標,等長誤差控制在±200mil以內。
根據作者描述,地址類與數據類網絡長度差應小于1000mil,所以將數據類網絡等長目標控制在2000mil,數據類網絡之間的等長誤差控制在±25mil以內。
2.10 走等長線
1. 如何走等長線?
(1)普通信號線,按快捷鍵T+R,差分線按T+I,進入等長布線狀態;
(2)等長布線時,W鍵上方的1、2、3、4依次對應拐角弧度減小、拐角弧度增大、蛇形線間距減小、蛇形線間距增大等功能!
2 地址類等長
頂層:
圖17 頂層地址網絡等長
底層:
圖18 底層地址網絡等長
3. 數據類等長
頂層
圖19 頂層數據網絡等長
底層
圖20 L3層數據網絡等長
2.11 等長輸出
在Nets查看欄中,復制需要等長網絡的名稱和長度等屬性,粘貼到Excel中并加以整理,即完成了DDR2等長信息的輸出!
3. 個人思考
1、為何同一根信號線在不同區域(CPU_ROOM、DDR2_ROOM、其它)的線寬會不一樣?
(1)在其它區域(DDR與CPU的中間區域)走5mil的線,是通過阻抗匹配計算出來的結果;
(2)在CPU_ROOM內走4mil的線是為了使信號線從BGA內部扇出,那么信號線在其它區域為什么不用4mil的線呢,這里可能是考慮了成本的原因(線寬越小成本越高)。在不影響DDR2性能同時又要使信號線成功扇出的情況下,必須使信號線擁有多重線寬規則(個人猜測,沒有證實過)!
2、如何最大化利用好布線空間,同時減小信號線間的串擾?
如何最大化利用好布線空間:
地址總線的布線空間最緊張,需要優先布局,相鄰信號線走蛇形線的區域應錯開,走完所有的地址類信號線再走數據類信號線!
減小信號線間的串擾,可通過增加信號線之間的安全間距來實現,具體方法有:
(1)可以先改變全局的clearance規則(優先級設為最高),比如設為10mil,如果出現報錯提示可暫時忽略,走完等長線后再改回原有規則!
(2)在走線的側邊直接畫出一條無網絡的銅線,走完信號后再刪除該銅線!
(3)修改等長控制參數中的振幅。
3、相同模塊之間的復用
在第2.4小節中,將左側DDR2的扇出銅線和過孔進行復用,可以明顯縮短其它DDR2所需的扇出時間!
尾巴:本文是我首次接觸高速電路設計的一次嘗試,通過文章的形式記錄下學習的點滴。本次設計并不是一個完整的工程,在DDR2濾波電容
的放置與優化、DDR2信號完整性仿真、以及PCB阻抗匹配的計算等方面均未涉及,由于個人能力有限,文章難免有錯誤,希望大家能夠給出
寶貴的建議!
參考:
[1] 《Altium Designer DDR2設計教學視頻》
[2] DDR布線規則與過程,
[3] DDR2信號分類及等長設計,
[4] 用Altium Designer實現DDR2的等長布線,https://wenku.baidu.com/view/a1334bfcad51f01dc281f17e.html
[5] Altium Designer 中 DDRII SDRAM 的等長布線,https://wenku.baidu.com/view/424dd712ccbff121dc368324.html?re=view
編輯:hfy
-
cpu
+關注
關注
68文章
10826瀏覽量
211162 -
altium
+關注
關注
47文章
942瀏覽量
118036 -
DDR2
+關注
關注
1文章
99瀏覽量
41524 -
PCB設計
+關注
關注
394文章
4670瀏覽量
85295 -
華秋DFM
+關注
關注
20文章
3493瀏覽量
4378
發布評論請先 登錄
相關推薦
評論