最近忙于一塊以CycloneIII為核心主控芯片的六層板設(shè)計(jì),開(kāi)發(fā)環(huán)境是Capture+Allegro+CAM350,從原理圖修改到PCB的布局、布線這整個(gè)過(guò)程中我遇到了相當(dāng)多的問(wèn)題,值得慶幸的是有一些問(wèn)題的解決倒是可以說(shuō)是一勞永逸,比較典型的就是DDR2的布局與布線。之前對(duì)DDR2的原理與板級(jí)布線非常的陌生,導(dǎo)致剛開(kāi)始布線時(shí)走了很多彎路,折騰了好幾天才解決。由于DDR2布線的嚴(yán)格要求,整個(gè)布線思路也是更新了若干次,不過(guò)現(xiàn)在看來(lái),今后若再布DDR的線會(huì)效率更高的。其實(shí)兩個(gè)星期之前DDR2的布線就完成了,只是一直沒(méi)有找到時(shí)間寫這篇文章,今天上午特意花點(diǎn)時(shí)間寫了這些文字、截了幾個(gè)圖,和網(wǎng)友分享一下。
布線結(jié)束后,我深刻的體會(huì)到,對(duì)于DDR2的布局、布線來(lái)說(shuō),最關(guān)鍵的就是要非常地熟悉DDR2中DQ、DM、DQS和FPGA芯片中DQ/DQS Pins的分布情況,為了更直白的說(shuō)明這個(gè)問(wèn)題,咱們來(lái)看圖說(shuō)話,
解析:考慮到DDR2走高速信號(hào)時(shí)的信號(hào)完整性質(zhì)量,首先要滿足最基本的布線要求(還有信號(hào)線的等長(zhǎng)):
?。?)DQ[0:7]、DM0、DQS0這10根信號(hào)線要在同一層;
?。?)DQ[8:15]、DM1、DQS1這10根信號(hào)線要在同一層;
(3)DQ[16:23]、DM2、DQS2這10根信號(hào)線要在同一層;
?。?)DQ[24:31]、DM3、DQS3這10根信號(hào)線要在同一層;
其中(1)和(3)可以在同一層(如S1)實(shí)現(xiàn)順利布線,而(0)和(2)可以在同一層(如S2)實(shí)現(xiàn)順利布線。
上面這個(gè)圖中我特意用筆把所有Pins的分布情況給大致分割了一下,這樣看起來(lái)會(huì)一目了然。布線時(shí)應(yīng)該把上面一個(gè)部分(即A、B、C、D)里面的DQ、DM、DQS總共10根信號(hào)線作為一個(gè)單元,對(duì)應(yīng)FPGA芯片里特定的一個(gè)PIN區(qū)域,下面E、F、G、H這個(gè)部分也是類似的。不過(guò)布線時(shí)還應(yīng)該注意的地方就是:FPGA里的那個(gè)所謂的“特定部分”中只有DQS這個(gè)Pin是固定不可被替代的,其他的9個(gè)Pins中DQ[n:n+7]和DM線是可以任意換序的,因?yàn)镈Q和DM信號(hào)線所對(duì)應(yīng)的Pins在FPGA芯片中是同一個(gè)電氣屬性的。這個(gè)相當(dāng)關(guān)鍵,不然的話,會(huì)給布線帶來(lái)比較大的麻煩。關(guān)于那個(gè)“特定的部分”,我截個(gè)圖如下所示,不同的顏色即為一個(gè)“獨(dú)立的特定的區(qū)域”,
我布線時(shí)主要用的是下方中間四個(gè)“獨(dú)立的特定的區(qū)域”——用于兩個(gè)DDR2的布線需要,實(shí)現(xiàn)32位并行數(shù)據(jù)流。
畫這個(gè)板子時(shí)我設(shè)置的是六層結(jié)構(gòu)(四個(gè)信號(hào)層+兩個(gè)參考層),布局、布線結(jié)束后的各信號(hào)層結(jié)果如下:
TOP LAYER:
LAYER S1:
LAYER S2:
BOTTOM LAYER:
如今這整個(gè)板子的設(shè)計(jì)過(guò)程已經(jīng)完全順利結(jié)束了!從開(kāi)始的布局、布線一直到現(xiàn)在光繪文件的成功生成,確實(shí)體會(huì)到經(jīng)驗(yàn)的重要性,因?yàn)槲抑皬膩?lái)沒(méi)有過(guò)六層板的設(shè)計(jì)經(jīng)驗(yàn),很多問(wèn)題都是第一次遇到,也是臨時(shí)自己思考或者和同事討論一起解決,整個(gè)過(guò)程算得上還是順利的。