《優秀的IC/FPGA開源項目》是新開的系列,旨在介紹單一項目,會比《優秀的 Verilog/FPGA開源項目》內容介紹更加詳細,包括但不限于綜合、上板測試等。兩者相輔相成,互補互充~
這幾年DPU的概念越來越火,有和CPU、GPU并駕齊驅的勢頭,通俗的講DPU分擔的工作為虛擬化、網絡、存儲以及安全。
從上面的工作可以看出DPU的核心是:網絡。所以我們今天講一個未來的發展核心之一:用FPGA實現NIC(network interface controller,網絡接口控制器),從該項目出發可以實現數據可控制化,進而實現DPU功能。
當然,本項目的基本就是一個NIC、router、switch等子項目的集合,可以看做目前ASIC-Intel 82580、BCM8724、BCM5396的功能的FPGA實現。
基于Intel 82580網卡 BCM8724特點 BCM5396內部架構圖
今天項目的核心項目地址如下:
https://github.com/NetFPGA
www.netfpga.org
這個項目已經發展了很多年了,從V5 FPGA到現在V7 FPGA,從官方板卡到各種自制板卡,應有盡有。
netfpga官方V7 板卡
核心的架構都可以在上面的板卡上實現。
整個項目包括如下幾個平臺的子項目:
上面的項目是根據不同板卡實現的功能類似的項目。
接下來我們以AMD Xilinx VC709位核心,簡單說明一下怎么移植NetFPGA到我們的板卡上,本次實現的參考項目為NetFPGA-SUME(架構類似)。
NetFPGA移植
開發環境:
win10+Ubuntu虛擬機
vivado 2016.4
第一步在下面鏈接下載源碼:
https://github.com/junganghu/NetFPGA-SUME-live
可以使用下面命令:
gitclonehttps://github.com/junganghu/NetFPGA-SUME-live
PS:是不是覺得奇怪,為啥不是官方源碼?這是因為官方庫是私有庫,需要通過官網申請,上面鏈接應該源開發者上傳的,能使用。
第二步修改/NetFPGA-SUME-live/tools/settings.sh:
主要修改一些路徑,方便調用工具,主要修改SUME_FOLDER(庫的路徑)、XILINX_PATH(vivado的安裝路徑)、NF_PROJECT_NAME(測試的demo,可選nic,route,swich)
進入$SUME_FOLDER(庫的路徑)執行:
make
如果使用上面的版本vivado,應該不會出什么問題,其他版本需要修改tcl里的IP版本(出錯命令行會詳細提示問題,按照提示修改即可,但是IP間的差異會導致綜合失敗,建議先按照源vivado版本編譯,后續GUI界面再修改)。
上面步驟時間較久,根據電腦性能需要一個小時左右。
第三步進入Reference_nic目錄再次執行下面命令:
make
就會生成reference_nic.bit
PS:SDK部分官方提供了源碼,可以自己新建SDK工程,把源碼拷貝進去也是可以的。
第四步固化文件到FPGA。
第五步就是將板卡插到測試主板上,在主板主控上加載驅動。
第六步加載驅動(驅動源文件在DRIVER_FOLDER目錄下,執行
makeall makemakeinstall
修改驅動文件權限。
接下來:
lcpsi-vxx|grepXilinx
查找系統有沒有找到PCIe設備,正常會出現下面:
注意ID:7028 0007,如果不是證明FPGA下載的文件有問題。
載入sume_riffa模塊
modprobesume_riffa
查看有沒有加載成功
lsmod
查看有沒有識別到網卡:
ifconfig-a
接下來就按照自己需求進行測試了。
最后總結一下這個架構:
sume_riffa的這個nic架構PCIe部分使用了基于Scatter-Gather DMA的riffa PCIe開源模塊,其他IP基本都是xilinx官方IP,使用AXI-stream和AXI-lite的比較廣泛的架構,值得學習。
總結
今天的項目簡單優化后基本就可以應用到項目里了,開頭說的可能比較“繞”,簡單說就是如果你想用FPGA實現網絡相關的功能(包括但不局限于NIC、Route、Swich、OSNT等),那么你就可以到這個項目里找一個相接近的子項目移植即可,這樣這個項目的功能就清晰明了了。
最后說一下,項目整體移植非常非常簡單,幾天時間就能讓你快速實現一個網絡相關項目的功能驗證,同時這個該項目的架構也是比較先進的,也是值得學習的。還想什么?動手干吧~
最后,還是感謝各個大佬開源的項目,讓我們受益匪淺。后面如果大家想要分享什么項目,可以在后臺留言或者加微信留言,溝通轉載事宜。今天就到這,我是爆肝的碎碎思,期待下期文章與你相見。
-
FPGA
+關注
關注
1626文章
21669瀏覽量
601871 -
cpu
+關注
關注
68文章
10826瀏覽量
211159 -
虛擬化
+關注
關注
1文章
366瀏覽量
29774
原文標題:為你的FPGA設計加加速,NIC、Router、Switch任意實現
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論