做主板已經兩年多了,做過龍芯2F內存條和板載內存顆粒的設計,做過凌動N450內存條和板載內存顆粒的設計。想寫點東西總結一下,發(fā)現網上已經有很多這類的文章了,現在再寫一點就當作是參考補充吧。以下內容主要是針對DDR2 667內存的設計。
信號分組:
DDR2的布線中習慣把信號分成若干組來進行設計,分成同組的信號具有相關或者相似的信號特性。
時鐘組:
差分時鐘信號,每一對信號都是同頻同相的。ckp0和ckn0為一對。
數據組:
對主板64位DDR2內存來說數據每8位(也就是一個byte)為一組可以分為八組,數據dq[0:7]、數據掩碼dqm0、數據選通差分信號dqsp0和dqsn0為一組,以此類推。同個數據組的信號應該在同一個信號層上走線,換層也應該一起換,為了方便在同一個信號層走線可以將數據位互換。比如dq2信號在走線的時候發(fā)現如果按照原理圖來走線會跟dq4交錯,這樣就不得不換層走線,我們通過互換數據位就可以使信號走同層,對內存來說每一位存進什么內容讀出也是什么內容,互換不會受影響,但是互換的條件必須是在同一組內8個bit之間。
地址/命令組:
MA[0:14]、BA0、BA1、BA2、RAS、CAS、WE
控制組:
時鐘使能CKE、片選CS、終端電阻選通ODT為一組,對內存條來說DIMM0用到了CKE0、CKE1、CS0、CS1、ODT0、ODT1。做板載內存設計的時候,可以只用CKE0、CS0、ODT0,控制4片16位的內存芯片。
PCB疊層:
對六層板來說一般的疊層都是top、GND、singnal2、singnal3、POWER、bottom,信號一般情況下以GND為參考平面比較好。走線的阻抗由走線寬度、走線的銅箔厚度、走線到參考平面的距離、參考平面的銅箔厚度和板介質材料決定,PCB設計的時候應該遵守CPU廠家阻抗設計要求來設置疊層。一般PCB設計軟件也能計算阻抗,找PCB生產廠家了解了板材介質厚度的資料后可以自行設計疊層、線寬。地址/命令信號、控制信號可以以1.8V內存工作電壓為參考平面。
長度控制:
對DDR2這種高頻的信號來說走線長度應該計算到CPU核心,這就引入了一個叫封裝長度的概念。硅晶元經過物理化學的方法刻蝕而成CPU核心,再將CPU核心封裝到一塊小的PCB基板上就成了我們常見的CPU。那塊小的PCB上管腳到CPU核心的走線長度被稱為封裝長度。
到同一行列(rank)內存的時鐘長度應該控制在正負5mil以內。
同一個數據組內所有走線長度控制在數據選通信號DQS的正負20mil范圍內為宜,不同數據組之間長度可以不同,但是應該控制在時鐘信號的正負500mil以內。
地址/命令組信號長度控制不是特別嚴格,INTEL凌動N450要求控制在時鐘信號負500mil到正1000mil以內。也就是說最長和最短的信號可以相差1500mil,但是布線的時候還是盡量把信號長度差縮小比較好。布線的時候這組信號長度完全相等也沒有問題,但是這樣占用的PCB空間也大,花費的時間也多。如果地址/命令信號長度超出時鐘信號幾千mil,那就需要在BIOS固件中好好調節(jié)了??刂圃贑PU要求的范圍內,需要做板載內存的時候只需要配置好內存SPD就可以了。
控制組信號長度控制要求和地址/命令組信號的要求類似,設計的時候應該按照CPU廠家的要求來做,INTEL凌動N450要求控制在時鐘信號0mil到正1000mil以內。
走線間距:
一般來說走線都應該按照3W原則來走線,也就是同一個平面上線與線的間距為3倍線的寬度。但是這個不是必須的,intel要求的就比較小。一般走線蜿蜒線的間距可以為16到20mil,對時鐘信號可以加大到30mil。不同組信號之間的距離應該適當拉大,可以為20mil以上,地址/命令組和控制組信號的間距可以比較小8mil以下都可以。BGA扇出的地方間距可以小,出線后應該以CPU設計要求來走線。
其它:
VREF走線可以用一根20mil的線,每接到一個器件應該加一個0.1uf的電容。
VTT走線應該在135mil以上,每四個電阻接一個0.1uf電容,兩端接10uf大電容。
點對多點的信號,如地址/命令信號、控制信號、時鐘信號應該按照“T”形走線,也就是芯片中間走上再分支,長度應該滿足CPU設計要求。附拓撲圖:
圖 CPU設計拓撲圖
【相關閱讀】
電子工程師必備:電源設計及電源測評指南
http://hiighwire.com/power-art/80022611
電源設計的魅力:LED設計思想結晶
http://hiighwire.com/opto-art/80022607
電子設計中你不得不注意的8大誤區(qū)
http://hiighwire.com/cp-art/80022605