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