【小梅哥FPGA進階學習之旅】基於Altera FPGA 的DDR2+千兆以太網電路設計


DDR2電路設計

在高速大數據的應用中,高速大容量緩存是必不可少的硬件。當前在FPGA系統中使用較為廣泛的高速大容量存儲器有經典速度較低的單數據速率的SDRAM存儲器,以及速度較高的雙速率DDR、DDR2、DDR3型SDRAM存儲器,DDR系列的存儲器都需要FPGA芯片有對應的硬件電路結構支持。對於Altera Cyclone IV系列的FPGA,其最高支持到DDR2存儲器(不支持DDR3存儲器,到了Cyclone V系列的FPGA才支持DDR3存儲器)。芯航線AC6102開發板作為一個高速應用型開發板,為了保證系統的存儲帶寬和容量,電路上設計了一組32位的DDR2存儲器,接口時鍾速率可達200MHz,等效數據速率為400MHz,整體系統帶寬為32bit*400M = 12.8Gb/s。

DDR2與FPGA連接方式

每片DDR2存儲器的容量為1Gb,兩片DDR2芯片組合,得到總容量為2Gb。單DDR2存儲器為16bit,兩片存儲器共用控制線和地址線,數據線並列,即組成了32位的2Gb存儲模組。

圖片1

圖片2

如下圖所示:

  • 兩片DDR2的CS、WE、CAS、RAS、CLK、CKE、ODT、Addr、BankAddr連接在一起
  • DDR2_1的16位數據線DQ[15:0]作為32位DDR2存儲電路的低16位數據線連接到FPGA,即DDR2_DQ[15:0]
  • DDR2_2的16位數據線DQ[15:0]作為32位DDR2存儲電路的高16位數據線連接到FPGA,即DDR2_DQ[31:16]
  • DDR2_1的2位DQS和DM分別連接到FPGA上,作為32位DDR2存儲電路的DQS[1:0]和DM[1:0]
  • DDR2_2的2位DQS和DM分別連接到FPGA上,作為32位DDR2存儲電路的DQS[3:2]和DM[3:2]

圖片3

DDR2供電設計

DDR2電路使用1.8V供電,為了保證DDR2能夠有充足的能量運行,使用了本板供電芯片TPS650243的一路DCDC輸出作為DDR2的1.8V供電,

圖片4

另外,DDR2的參考電源是否穩定也直接決定了DDR2工作的穩定性,DDR2的參考電源電壓為工作電壓的一半,即0.9V。在一般低成本的設計方案中,可以使用兩個1%精度相同阻值的電阻分壓得到該電壓。AC6102上為了保證DDR2的工作絕對可靠,選擇了使用專用的DDR系列存儲器供電芯片LP2996M,該電源能夠得到精准且穩定的DDRx芯片工作電壓的一半的輸出作為DDR2參考源(VREF),且能夠提供DDRx系列的終端穩壓供電(VTT),VTT是在DDR2需要並聯終端電阻的時候,為終端電阻供電提供電源,只有在多於2片DDR2芯片並聯使用的時候才考慮需要並聯終端電阻,本設計僅使用2片DDR2芯片,因此實際實際不需要用到該芯片的VTT輸出。

圖片5

FPGA接DDR2時引腳分配策略

DDR2作為高速大容量存儲器,其接口時鍾速率高達200M,且為DDR模式,實際接口數據速率為400M。如此高的接口速率下,FPGA的管腳分配也有相當的講究,根據Altera Cyclone IV系列器件手冊的相關說明,當IO口配置在單端模式時,速度等級為C8的器件,上下兩個BANK最高能支持167兆的IO速率,而左右兩個BANK最高只能支持到133.3M,所以,對於DDR2,需要將引腳分布在BANK3+4或者BANK7+8。當然,如果使用C6的器件,BANK3、4、7、8(即上下bank)的速度可以達到200M、而BANK1、2、5、6(即左右Bank)只能達到166.7M。

即DDR2的引腳分配需要滿足以下條件:

  • 希望速度高,盡量分配在BANK3+BANK4或者BANK7+BANK8
  • 數據總線按照8位或16位分組,對於256腳的這種器件,由於每個BANK的引腳數量有限,因此建議低8位和高8位分別分配在同一個Bank中,同時,對應的DQS和DM也應該和DQ數據分組對應分配在相應的BANK中。對於484腳或者引腳更多的器件,則每16位數據線及對應的DQS和DM分配在同一個BANK中
  • DDR2的IO電平為1.8V,所以FPGA上接DDR2的BANK,其IO供電電壓應為1.8V
  • 上述提到,DDR2的IO電平味兒1.8V,因此FPGA對應Bank的IO供電電壓頁應該為1.8V,AC6102上,DDR2與FPGA的BANK3和BANK4連接,因此將FPGA芯片的對應IO BANK供電設置為1.8V,如下圖所示:

圖片6

通過本節介紹,我們了解了FPGA 連接DDR2芯片的電路原理和注意事項,大家可以根據自己的需求,結合我們提供的原理圖,設計自己的軟硬件系統。如有特殊需求,可聯系我們以獲取幫助。

千兆以太網電路設計

以太網接口作為一種互聯型接口,當下應用非常的廣泛。從家用寬帶,到服務器數據交換,再到工業控制,各個地方都能看到以太網的身影。FPGA系統使用以太網,則主要用於高速遠距離的數據傳輸,如LED大屏顯示、監控系統等。以太網數據鏈路,也由早期的電話線傳輸,到后來的專用雙絞線,發展到光纖,高頻無線電,以及現在比較新穎的LIFI。

以太網與FPGA連接

AC6102開發板上,提供了一個千兆以太網接口,該接口由千兆以太網PHY和網絡變壓器接口組成。當需要發送以太網數據時,FPGA把數據發送給PHY芯片,PHY芯片將數據編碼后,通過網絡變壓器將數據加載到網線上。數據經由網絡傳遞到接收方。遠端發送過來的數據,經由網線傳遞給網絡變壓器,網絡變壓器的輸出連接到PHY芯片上,PHY芯片對信號進行解碼后,得到實際的數據,然后將數據傳遞給FPGA芯片。FPGA實現千兆以太網數據傳輸的功能框圖如下所示:

圖片7

圖片8

模式配置

RTL8211是一款支持GMII、RGMII、MII接口的以太網物理層收發器,能夠工作在100M Base或1000M Base模式。接口可設置為GMII、RGMII、MII接口。並提供了若干引腳用於配置工作模式。

圖片9

AC6102默認使用GMII接口,實現該配置的方法是將對應的配置引腳E_COL(對,就是這個引腳,芯片在上電時會檢測該引腳的狀態,並根據該引腳的狀態確定工作模式,正常工作時又是正常的COL功能)通過10K的電阻接到GND。

以太網物理層芯片都有一個器件地址,該地址可通過外部引腳設置,上圖中,R20、R21、R24通過連接到VCC或者GND,決定了芯片的器件地址為001b。當然,這些狀態也僅在芯片上電時刻被讀取,當芯片正常工作后,這些引腳就又恢復了普通功能。

與FPGA引腳連接
AC6102上以太網電路所有與FPGA相連的信號都被分配在了FPGA的BANK8,以獲得更加理想的時序約束效果。以下為RTL8201芯片與FPGA之間的連接關系。

圖片10


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM