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