引言:基于K7+C665x為核心的電路板中用到了DDR3存儲芯片,現(xiàn)將FPGA外接DDR3時硬件設(shè)計中的一些心得做一個簡單的分享。
1. DDR3與K7-410T互聯(lián)設(shè)計
在數(shù)據(jù)速率帶寬約束方面,DDR3運行速度受限于其與K7-410T FPGA互聯(lián)的I/O Bank 管腳以及FPGA器件的速度等級。如下表所示,當(dāng)FPGA選定時,如需DDR3運行最大工作頻率時,需要將DDR3互聯(lián)至FPGA的HP I/O Bank上,同時也要將Vccaux_io的供電電壓調(diào)整為2.0V。
表1、FPGA I/O支持DDR3外設(shè)最大接口數(shù)據(jù)速率
DDR3本身可以互聯(lián)至普通的HR I/O Bank上,但是速度性能是下降的,通常在互聯(lián)時會將DDR3互聯(lián)至HP I/O Bank上,以保證器件性能發(fā)揮至最佳。
2. DDR3與K7-410T原理圖設(shè)計
在確定好將DDR3連接至HP Bank上后,在具體原理圖設(shè)計時,可以在Xilinx官網(wǎng)下載一份Pinout資料,如下圖所示(其他器件下載鏈接點擊:https://www.xilinx.com/support/package-pinout-files.html)。
圖1:FPGA Pintout下載
在下載的pinout.csv文件中,可以方便的查看IO所在的存儲器Byte組,Bank以及I/O類型等,如下圖所示。圖中存儲器Byte一個Bank內(nèi)按照T0、T1、T2、T3劃分,除了DQS,同一一個Tx組內(nèi)的DQ IO是可以互換的。
圖2:FPGA Pintout文件內(nèi)容
在繪制原理圖時,可以先按照Byte組來進(jìn)行IO放置,最終IO的放置,還要根據(jù)PCB工程師布線的便利性,在同一個Tx組內(nèi)進(jìn)行調(diào)整。有兩點需要注意的:1)DDR3管腳IO的分配強(qiáng)烈建議通過Vivado軟件例化DDR3 IP核驗證FPGA IO分配的正確性!2)如果DDR3所在的BANK上有其他外設(shè)IO,也要一起驗證IO,確保滿足IO bank電平兼容性。
DDR3的 CLK_P/CLK_N時鐘建議放置在FPGA芯片_SRCC或者_(dá)MRCC專用時鐘管腳上,以保證時鐘最佳性能。DDR3地址信號及控制信號放在DQ臨近的HP Bank上即可。本設(shè)計中,DDR3 DQ數(shù)據(jù)組放置在HP Bank32上,時鐘、地址及控制信號放置在HP Bank33上。如下圖所示。
圖3:FPGA DDR3 DQ數(shù)據(jù)組
圖4:FPGA DDR3 時鐘、地址及控制組
圖5:DDR3 原理圖設(shè)計
3. DDR3與K7-410T 互聯(lián)PCB版圖設(shè)計
關(guān)于DDR3的PCB設(shè)計,需要遵循一些設(shè)計規(guī)則,主要包括PCB層疊設(shè)計、DDR3布局(含阻容器件)、走線阻抗約束、等長處理等。
這個項目中設(shè)計采用:XC7K410T-FFG900,F(xiàn)PGA外掛兩片4Gbit,DDR3:MT41K256M16HA-107IT。PCB采用Fly-by布線,數(shù)據(jù)總位寬32bit,共用地址、控制、時鐘。FPGA及外設(shè)DDR3走線如下圖所示。
圖6:整體布線
圖7:數(shù)據(jù)組1
圖8:數(shù)據(jù)組2
圖9:地址/控制組1圖10:地址/控制組2
圖11:地址/控制組3
DDR3布線相對不復(fù)雜,有幾點要注意:
1)PCB布局要合理,濾波電容放置要合理,便于PCB走線;
2)PCB走線需要進(jìn)行阻抗控制;
3)PCB層疊可以自己設(shè)計或者讓PCB制版廠提供,根據(jù)自己的阻抗,線寬,BGA間距等要求;
4)VREF參考電壓走線要≥20mil;
5)DQ/DQS/DM信號組要有完整的參考電源層,控制線、地址線、時鐘線也應(yīng)一樣,避免跨參考分割帶來信號完整性問題。
對于DDR3 PCB詳細(xì)設(shè)計規(guī)則及軟件設(shè)計,在之前的博文中有描述,感興趣的可以點擊下面鏈接詳細(xì)了解。