原文地址:http://yaoq08.spaces.live.com/blog/cns!F504AD3E4821141E!465.entry
介紹
NetFPGA是一款低功耗的開發平台,作為網路硬體教學和路由設計的設計工具。NetFPGA可以很方便的使得研究人員或者高校的學生搭建一個高速、硬體加速的網路系統。興起於北美,最初只是斯坦福大學課堂教學使用的Project。NetFPGA把FPGA的可配置的特性帶入了網路通訊領域,可以為更多的研究人員研究下一代網路提供了一個開放的平台。愈來愈多的人開始關注到NetFPGA的特性,並有很多人蔘與了基於NetFPGA的開源項目。
NetFPGA的參數
NetFPGA平台(1)包含了一個Xilinx Virtex-2 Pro 50 的FPGA,運行在125MHz的時鐘頻率下,用於使用者自訂邏輯的設計;還包含了Xilinx Spartan-II FPGA,運行PCI介面控制器的控制邏輯,用於與主處理器的通訊。兩個2.25MB的外部SDRAM以及擴充的64MB的DDR SDRAM作出資料存放區介質。平台還提供了四個千兆乙太網路介面,以配合在FPGA中的四個千兆乙太網路控制器軟核。NetFPGA還包含了兩個SATA連接器,使得在一個系統中多個NetFPGA板直接交換資料,而不需通過PCI匯流排。
圖1 . NetFPGA的硬體組成
板上的主要資源:
- 用於邏輯設計的Xilinx Virtex-2 Pro FPGA
- 用於PCI主介面的Xilinx Spartan
- 2*2.25MB ZBT SRAM
- 64MB DDR2 DRAM
- 物理層上的4個千兆乙太網路口
開發環境
NetFPGA的系統架構(2所示)。在研究開發的過程中主要包括硬體層的設計(FPGA的邏輯層的設計)以及軟體層的開發(對應硬體層的驅動開發以及應用程式的開發)。
硬體
購置的主機(配置越高越好),注意主板需留一個PCI-E給網卡使用,所以選主板的時候最好選擇整合顯卡。
圖2. NetFPGA的系統架構
軟體
作業系統推薦的是CentOS 4.4,CentOS 4.5 CentOS 5.1;使用者需要對Xilinx的FPGA進行配置,所以需要安裝ISE9.1i軟體;還有相關FPGA的工具,如ModelSim(FPGA邏輯模擬),ChipScope(片上邏輯分析)等。還需要安裝NetFPGA Base package,在安裝之前還需要Java和RPMforge yum工具包的支援。需要注意安裝的每個軟體的版本問題,因為彼此存在很大的依賴。
開源項目
在http://www.netfpga.org/上可以找到一些開源項目,羅列如下:
1. NetFlow Probe
2. Hardware Accelerated Linux Router
3. NetFPGA Ethernet Switch
4. Quad-Port Gigabit NIC
5. NetFPGA OpenFlow Switch
在國內也有多個團隊在開發使用NetFPGA,在http://www.openhw.org/上可以找到的開源項目,如:
1. 基於NetFPGA的可重構科學計算平台(寧夏大學)
2. 基於NetFPGA的網路流量採集器(濟南大學)
3. 基於NetFPGA的網路處理器設計與實現(山東大學)
4. 基於NetFPGA的包過濾防火牆的設計與實現(哈爾濱工程大學)
從各種開源項目中可以看到NetFPGA的實際應用,相信能促進下一代網路的發展。
註:最近本人在學習和應用FPGA,無意中在網上發現NetFPGA的一些資料,雖然這種技術才剛剛起步,關於NetFPGA的項目很多都是開源的,適合高校的學生、老師、研究人員開發研究,相信在不久的將來肯定會帶來更過的驚喜。在中國NetFPGA也已經引起了很多高校、公司的興趣,如北京交通大學、華為,但尚屬起步階段,所以對NetFPGA做一些簡單的介紹。詳細的開發指南請見參考文獻1。
參考資料
1. NetFPGA開源官方網站http://netfpga.org/static/guide.html#Install_Software
2. NetFPGA開發初探,http://www.eefocus.com/myspace/blog/show_155829.html
3. 開放源碼硬體社區 http://www.openhw.org/activity/opproject/