DDR布線通常是一款硬件產(chǎn)品設(shè)計(jì)中的一個(gè)重要的環(huán)節(jié),,也正是因?yàn)槠渲匾?,網(wǎng)絡(luò)上也有大把的人在探討DDR布線規(guī)則,,有很多同行故弄玄虛,,把DDR布線說(shuō)得很難,,我在這里要反其道而行之,講一講DDR布線最簡(jiǎn)規(guī)則與過(guò)程,。
如果不是特別說(shuō)明,,每個(gè)步驟中的方法同時(shí)適用于DDR1,DDR2和DDR3,。PCB設(shè)計(jì)軟件以Cadence Allgro 16.3為例,。
第一步,確定拓補(bǔ)結(jié)構(gòu)(僅在多片DDR芯片時(shí)有用)
首先要確定DDR的拓補(bǔ)結(jié)構(gòu),,一句話,,DDR1/2采用星形結(jié)構(gòu),DDR3采用菊花鏈結(jié)構(gòu),。
拓補(bǔ)結(jié)構(gòu)只影響地址線的走線方式,,不影響數(shù)據(jù)線。以下是示意圖,。
星形拓補(bǔ)就是地址線走到兩片DDR中間再向兩片DDR分別走線,,菊花鏈就是用地址線把兩片DDR“串起來(lái)”,就像羊肉串,,每個(gè)DDR都是羊肉串上的一塊肉,,哈哈,開(kāi)個(gè)玩笑,。
第二步,,元器件擺放
確定了DDR的拓補(bǔ)結(jié)構(gòu),就可以進(jìn)行元器件的擺放,,有以下幾個(gè)原則需要遵守:
原則一,,考慮拓補(bǔ)結(jié)構(gòu),仔細(xì)查看CPU地址線的位置,,使得地址線有利于相應(yīng)的拓補(bǔ)結(jié)構(gòu)
原則二,,地址線上的匹配電阻靠近CPU
原則三,數(shù)據(jù)線上的匹配電阻靠近DDR
原則四,,將DDR芯片擺放并旋轉(zhuǎn),,使得DDR數(shù)據(jù)線盡量短,也就是,,DDR芯片的數(shù)據(jù)引腳靠近CPU
原則五,,如果有VTT端接電阻,將其擺放在地址線可以走到的最遠(yuǎn)的位置。一般來(lái)說(shuō),,DDR2不需要VTT端接電阻,,只有少數(shù)CPU需要;DDR3都需要VTT端接電阻,。
原則六,,DDR芯片的去耦電容放在靠近DDR芯片相應(yīng)的引腳
以下是DDR2的元器件擺放示意圖(未包括去耦電容),可以很容易看出,,地址線可以走到兩顆芯片中間然后向兩邊分,,很容易實(shí)現(xiàn)星形拓補(bǔ),同時(shí),,數(shù)據(jù)線會(huì)很短,。
以下是帶有VTT端接電阻的DDR2元器件擺放示意圖,在這個(gè)例子中,,沒(méi)有串聯(lián)匹配電阻,,VTT端接電阻擺放在了地址線可以到達(dá)的最遠(yuǎn)距離。
以下是DDR3元器件擺放示意圖,,請(qǐng)注意,,這里使用的CPU支持雙通道DDR3,所以看到有四片(參考設(shè)計(jì)是8片)DDR3,,其實(shí)是每?jī)蓚€(gè)組成一個(gè)通道,,地址線沿著圖中綠色的走線傳遞,實(shí)現(xiàn)了菊花鏈拓補(bǔ),。地址線上的VTT端接電阻擺放在了地址線可以到達(dá)的最遠(yuǎn)的地方,。同樣地,數(shù)據(jù)線上的端接電阻也放置在了靠近DDR3芯片的位置,,數(shù)據(jù)線到達(dá)CPU的距離很短,。同時(shí),可以看到,,去耦電容放置在了很靠近DDR3相應(yīng)電源引腳的地方,。
第三步,設(shè)置串聯(lián)匹配電阻的仿真模型
擺放完元器件,,建議設(shè)置串聯(lián)匹配電阻的仿真模型,,這樣對(duì)于后續(xù)的布線規(guī)則的設(shè)置是有好處的。
Model Assignment,,如下圖,。àSI/EMI Simà點(diǎn)擊Analyze
然后會(huì)出來(lái)Model Assignment的界面,如下圖
然后點(diǎn)擊需要設(shè)置模型的器件,,通常就是串聯(lián)匹配電阻,,分配或創(chuàng)建合適的仿真的模型,,如果不知道如何創(chuàng)建,請(qǐng)?jiān)诨ヂ?lián)網(wǎng)上搜索或發(fā)郵件給無(wú)線時(shí)代(Beamsky),。
分配好仿真模型之后的網(wǎng)絡(luò),,使用Show Element命令,可以看到相關(guān)的XNET屬性,,如下圖,。
第四步,設(shè)置線寬與線距
1. DDR走線線寬與阻抗控制密切相關(guān),,經(jīng)??梢钥吹胶芏嗤凶鲎杩箍刂啤?duì)于純數(shù)字電路,,完全有條件針對(duì)高速線做單端阻抗控制;但對(duì)于混合電路,,包含高速數(shù)字電路與射頻電路,,射頻電路比數(shù)字電路要重要的多,必須對(duì)射頻信號(hào)做50歐姆阻抗控制,,同時(shí)射頻走線不可能太細(xì),,否則會(huì)引起較大的損耗,所以在混合電路中,,本人往往舍棄數(shù)字電路的阻抗控制,。到目前為止,本人設(shè)計(jì)的混合電路產(chǎn)品中,,最高規(guī)格的DDR是DDR2-800,,未作阻抗控制,工作一切正常,。
2. DDR的供電走線,,建議8mil以上,在Allegro可以針對(duì)一類(lèi)線進(jìn)行物理參數(shù)的同意設(shè)定,,我本人喜歡建立PWR-10MIL的約束條件,,并為所有電源網(wǎng)絡(luò)分配這一約束條件,如下圖,。
3. 線距部分主要考慮兩方面,,一是線-線間距,建議采用2W原則,,即線間距是2倍線寬,,3W很難滿足;二是線-Shape間距,,同樣建議采用2W原則,。對(duì)于線間距,,也可以在Allegro中建立一種約束條件,為所有DDR走線(XNET)分配這樣的約束條件,,如下圖,。
4. 還有一種可能需要的規(guī)則,就是區(qū)域規(guī)則,。Allegro中默認(rèn)的線寬線距都是5mil,,在CPU引腳比較密集的時(shí)候,這樣的規(guī)則是無(wú)法滿足的,,這就需要在CPU或DDR芯片周?chē)O(shè)定允許小間距,,小線寬的區(qū)域規(guī)則,如下圖,。
第五步,,走線
走線就需要注意的內(nèi)容比較多,這里只做少許說(shuō)明,。
· 所有走線盡量短
· 走線不能有銳角
· 盡量少打過(guò)孔
· 保證所有走線有完整的參考面,,地平面或這電源平面都可以,對(duì)于交變信號(hào),,地與電源平面是等電位的
· 盡量避免過(guò)孔將參考面打破,,不過(guò)這在實(shí)際中很難做到
· 走完地址線和數(shù)據(jù)后,務(wù)必將DDR芯片的電源腳,,接地腳,,去耦電容的電源腳,接地腳全部走完,,否則在后面繞等長(zhǎng)時(shí)會(huì)很麻煩的
下圖是完成的DDR走線,,但尚未繞等長(zhǎng)。
第六步,,設(shè)置等長(zhǎng)規(guī)則
對(duì)于數(shù)據(jù)線,,DDR1/2與DDR3的規(guī)則是一致的:每個(gè)BYTE與各自的DQS,DQM等長(zhǎng),,即DQ0:7與DQS0,,DQM。等長(zhǎng),,DQ8:15與DQS1,,DQM1等長(zhǎng),以此類(lèi)推,。
DDR2數(shù)據(jù)線等長(zhǎng)規(guī)則舉例
DDR3數(shù)據(jù)線等長(zhǎng)規(guī)則舉例
地址線方面的等長(zhǎng),,要特別注意,DDR1/2與DDR是很不一樣的,。
對(duì)于DDR1/2,,需要設(shè)定每條地址到達(dá)同一片DDR的距離保持等長(zhǎng),,如下圖。
對(duì)于DDR3,,地址線的等長(zhǎng)往往需要過(guò)孔來(lái)配合,,具體的規(guī)則均綁定在過(guò)孔上和VTT端接電阻上,如下圖,??梢钥吹剑珻PU的地址線到達(dá)過(guò)孔的距離等長(zhǎng),,過(guò)孔到達(dá)VTT端接電阻的距離也等長(zhǎng),。
補(bǔ)充一點(diǎn),很多時(shí)候,,地址線的等長(zhǎng)要求不嚴(yán)格,,這一點(diǎn)我還沒(méi)有嘗試過(guò)。在本人設(shè)計(jì)的這些產(chǎn)品中,,地址線,,數(shù)據(jù)線都做了25mil的Relative Propagation Delay的等長(zhǎng)規(guī)則設(shè)定。關(guān)于等長(zhǎng)規(guī)則設(shè)定的細(xì)節(jié)在這里不再贅述,,有興趣的話,可以發(fā)郵件給無(wú)線時(shí)代(Beamsky),。
第七步,,繞等長(zhǎng)
完成等長(zhǎng)規(guī)則的設(shè)定后,最后一步也是工作量最大的一步:繞等長(zhǎng),。
在這一步,,我認(rèn)為只有一點(diǎn)規(guī)則需要注意:盡量采用3倍線寬,45度角繞等長(zhǎng),,如下圖,。
繞等長(zhǎng)完成后,最好把DDR相關(guān)網(wǎng)絡(luò)鎖定,,以免誤動(dòng),。
到這里,DDR走線就已經(jīng)完成了,,在本人設(shè)計(jì)過(guò)的三,,四十種產(chǎn)品中,都是按照上面的規(guī)則與過(guò)程完成的,,DDR2最高規(guī)格是DDR2-800,,512MB,DDR3最高規(guī)格是DDR3-1600,,1GB,,都可以很穩(wěn)定的工作,,無(wú)論性能還是可靠性,都未曾出過(guò)問(wèn)題,。