0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用FPGA實(shí)現(xiàn)網(wǎng)絡(luò)相關(guān)的功能

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-09-05 09:10 ? 次閱讀

《優(yōu)秀的IC/FPGA開源項(xiàng)目》是新開的系列,旨在介紹單一項(xiàng)目,會(huì)比《優(yōu)秀的 Verilog/FPGA開源項(xiàng)目》內(nèi)容介紹更加詳細(xì),包括但不限于綜合、上板測(cè)試等。兩者相輔相成,互補(bǔ)互充~

這幾年DPU的概念越來越火,有和CPU、GPU并駕齊驅(qū)的勢(shì)頭,通俗的講DPU分擔(dān)的工作為虛擬化、網(wǎng)絡(luò)、存儲(chǔ)以及安全。

從上面的工作可以看出DPU的核心是:網(wǎng)絡(luò)。所以我們今天講一個(gè)未來的發(fā)展核心之一:用FPGA實(shí)現(xiàn)NIC(network interface controller,網(wǎng)絡(luò)接口控制器),從該項(xiàng)目出發(fā)可以實(shí)現(xiàn)數(shù)據(jù)可控制化,進(jìn)而實(shí)現(xiàn)DPU功能。

當(dāng)然,本項(xiàng)目的基本就是一個(gè)NIC、router、switch等子項(xiàng)目的集合,可以看做目前ASIC-Intel 82580、BCM8724、BCM5396的功能的FPGA實(shí)現(xiàn)。

基于Intel 82580網(wǎng)卡 25d8cc52-2cb3-11ed-ba43-dac502259ad0.png BCM8724特點(diǎn) 25eaf2c4-2cb3-11ed-ba43-dac502259ad0.png BCM5396內(nèi)部架構(gòu)圖

今天項(xiàng)目的核心項(xiàng)目地址如下:

https://github.com/NetFPGA

www.netfpga.org

這個(gè)項(xiàng)目已經(jīng)發(fā)展了很多年了,從V5 FPGA到現(xiàn)在V7 FPGA,從官方板卡到各種自制板卡,應(yīng)有盡有。

netfpga官方V7 板卡

核心的架構(gòu)都可以在上面的板卡上實(shí)現(xiàn)。

整個(gè)項(xiàng)目包括如下幾個(gè)平臺(tái)的子項(xiàng)目:

26329926-2cb3-11ed-ba43-dac502259ad0.png

上面的項(xiàng)目是根據(jù)不同板卡實(shí)現(xiàn)的功能類似的項(xiàng)目。

接下來我們以AMD Xilinx VC709位核心,簡(jiǎn)單說明一下怎么移植NetFPGA到我們的板卡上,本次實(shí)現(xiàn)的參考項(xiàng)目為NetFPGA-SUME(架構(gòu)類似)。

NetFPGA移植

開發(fā)環(huán)境:

win10+Ubuntu虛擬機(jī)

vivado 2016.4

第一步在下面鏈接下載源碼:

https://github.com/junganghu/NetFPGA-SUME-live

可以使用下面命令:

gitclonehttps://github.com/junganghu/NetFPGA-SUME-live

PS:是不是覺得奇怪,為啥不是官方源碼?這是因?yàn)楣俜綆?kù)是私有庫(kù),需要通過官網(wǎng)申請(qǐng),上面鏈接應(yīng)該源開發(fā)者上傳的,能使用。

第二步修改/NetFPGA-SUME-live/tools/settings.sh:

主要修改一些路徑,方便調(diào)用工具,主要修改SUME_FOLDER(庫(kù)的路徑)、XILINX_PATH(vivado的安裝路徑)、NF_PROJECT_NAME(測(cè)試的demo,可選nic,route,swich)

進(jìn)入$SUME_FOLDER(庫(kù)的路徑)執(zhí)行:

make

如果使用上面的版本vivado,應(yīng)該不會(huì)出什么問題,其他版本需要修改tcl里的IP版本(出錯(cuò)命令行會(huì)詳細(xì)提示問題,按照提示修改即可,但是IP間的差異會(huì)導(dǎo)致綜合失敗,建議先按照源vivado版本編譯,后續(xù)GUI界面再修改)。

上面步驟時(shí)間較久,根據(jù)電腦性能需要一個(gè)小時(shí)左右。

第三步進(jìn)入Reference_nic目錄再次執(zhí)行下面命令:

make

就會(huì)生成reference_nic.bit

PS:SDK部分官方提供了源碼,可以自己新建SDK工程,把源碼拷貝進(jìn)去也是可以的。

第四步固化文件到FPGA。

第五步就是將板卡插到測(cè)試主板上,在主板主控上加載驅(qū)動(dòng)。

第六步加載驅(qū)動(dòng)(驅(qū)動(dòng)源文件在DRIVER_FOLDER目錄下,執(zhí)行

makeall

makemakeinstall

修改驅(qū)動(dòng)文件權(quán)限。

接下來:

lcpsi-vxx|grepXilinx

查找系統(tǒng)有沒有找到PCIe設(shè)備,正常會(huì)出現(xiàn)下面:

265fece6-2cb3-11ed-ba43-dac502259ad0.png

注意ID:7028 0007,如果不是證明FPGA下載的文件有問題。

載入sume_riffa模塊

modprobesume_riffa

查看有沒有加載成功

lsmod

查看有沒有識(shí)別到網(wǎng)卡:

ifconfig-a
2681e88c-2cb3-11ed-ba43-dac502259ad0.png

接下來就按照自己需求進(jìn)行測(cè)試了。

最后總結(jié)一下這個(gè)架構(gòu):

sume_riffa的這個(gè)nic架構(gòu)PCIe部分使用了基于Scatter-Gather DMA的riffa PCIe開源模塊,其他IP基本都是xilinx官方IP,使用AXI-stream和AXI-lite的比較廣泛的架構(gòu),值得學(xué)習(xí)。

26c38ecc-2cb3-11ed-ba43-dac502259ad0.png

總結(jié)

今天的項(xiàng)目簡(jiǎn)單優(yōu)化后基本就可以應(yīng)用到項(xiàng)目里了,開頭說的可能比較“繞”,簡(jiǎn)單說就是如果你想用FPGA實(shí)現(xiàn)網(wǎng)絡(luò)相關(guān)的功能(包括但不局限于NIC、Route、Swich、OSNT等),那么你就可以到這個(gè)項(xiàng)目里找一個(gè)相接近的子項(xiàng)目移植即可,這樣這個(gè)項(xiàng)目的功能就清晰明了了。

最后說一下,項(xiàng)目整體移植非常非常簡(jiǎn)單,幾天時(shí)間就能讓你快速實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)相關(guān)項(xiàng)目的功能驗(yàn)證,同時(shí)這個(gè)該項(xiàng)目的架構(gòu)也是比較先進(jìn)的,也是值得學(xué)習(xí)的。還想什么?動(dòng)手干吧~

最后,還是感謝各個(gè)大佬開源的項(xiàng)目,讓我們受益匪淺。后面如果大家想要分享什么項(xiàng)目,可以在后臺(tái)留言或者加微信留言,溝通轉(zhuǎn)載事宜。今天就到這,我是爆肝的碎碎思,期待下期文章與你相見。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21786

    瀏覽量

    605067
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10899

    瀏覽量

    212610
  • 虛擬化
    +關(guān)注

    關(guān)注

    1

    文章

    376

    瀏覽量

    29828

原文標(biāo)題:為你的FPGA設(shè)計(jì)加加速,NIC、Router、Switch任意實(shí)現(xiàn)

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA 實(shí)現(xiàn)小波變換

    何用FPGA實(shí)現(xiàn)97整型小波變換,各位有相關(guān)的資料嗎?
    發(fā)表于 10-15 09:34

    FPGA實(shí)現(xiàn)網(wǎng)絡(luò)抓包怎么實(shí)現(xiàn)?

    各位高手,小弟想實(shí)現(xiàn)FPGA下的網(wǎng)絡(luò)數(shù)據(jù)包抓取,應(yīng)該怎么實(shí)現(xiàn)?功能與Sniffer相似!
    發(fā)表于 01-22 06:54

    lvds如何用fpga或是matlab實(shí)現(xiàn)

    求助lvds如何用fpga或是matlab實(shí)現(xiàn)
    發(fā)表于 01-15 15:18

    lvds如何用fpga或是matlab實(shí)現(xiàn)

    lvds如何用fpga或是matlab實(shí)現(xiàn)
    發(fā)表于 01-15 15:20

    何用FPGA實(shí)現(xiàn)FFT算法?

    請(qǐng)問一下如何用FPGA實(shí)現(xiàn)FFT算法?
    發(fā)表于 04-08 06:06

    何用PowerPC860實(shí)現(xiàn)FPGA配置?

    Xilinx FPGA的配置方式何用PowerPC860實(shí)現(xiàn)FPGA配置
    發(fā)表于 04-08 06:46

    何用FPGA實(shí)現(xiàn)DVB碼流分析功能的嵌入式設(shè)計(jì)方案?

    何用FPGA實(shí)現(xiàn)DVB碼流分析功能的嵌入式設(shè)計(jì)方案?
    發(fā)表于 04-28 06:19

    何用中檔FPGA實(shí)現(xiàn)多相濾波器?

    何用中檔FPGA實(shí)現(xiàn)多相濾波器?
    發(fā)表于 04-29 06:30

    何用FPGA實(shí)現(xiàn)數(shù)字電視條件接收系統(tǒng)?

    何用FPGA實(shí)現(xiàn)數(shù)字電視條件接收系統(tǒng)?
    發(fā)表于 04-29 06:57

    何用FPGA實(shí)現(xiàn)下行擾碼?

    下行擾碼的生成過程是怎樣的?如何用FPGA實(shí)現(xiàn)下行擾碼?
    發(fā)表于 04-30 07:24

    何用手機(jī)實(shí)現(xiàn)CAN網(wǎng)絡(luò)的監(jiān)控?

    何用手機(jī)實(shí)現(xiàn)CAN網(wǎng)絡(luò)的監(jiān)控?常見的汽車總線通信有哪幾種?
    發(fā)表于 05-18 06:11

    何用FPGA實(shí)現(xiàn)FIR濾波器

    何用FPGA實(shí)現(xiàn)FIR濾波器 你接到要求用FPGA實(shí)現(xiàn)FIR濾波器的任務(wù)時(shí),也許會(huì)想起在學(xué)校里所學(xué)的FIR基礎(chǔ)知識(shí),但是下一步該做什么
    發(fā)表于 03-30 12:25 ?4696次閱讀
    如<b class='flag-5'>何用</b>用<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>FIR濾波器

    何用FPGA實(shí)現(xiàn)嵌入式系統(tǒng)

    何用FPGA實(shí)現(xiàn)嵌入式系統(tǒng) 一、概述 ??? 在許多領(lǐng)域中廣泛應(yīng)用的嵌入式計(jì)算系統(tǒng)(簡(jiǎn)稱為嵌入式系統(tǒng)),是在更大的電子器
    發(fā)表于 04-02 23:48 ?7741次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>嵌入式系統(tǒng)

    基于FPGA技術(shù)的數(shù)字相關(guān)器的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA技術(shù)的數(shù)字相關(guān)器的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 12-16 22:23 ?14次下載

    何用OpenCL實(shí)現(xiàn)FPGA上的大型卷積網(wǎng)絡(luò)加速?

    Xilinx zynq系列FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)評(píng)估 本篇目錄 1. 內(nèi)存占用 1.1 FPGA程序中內(nèi)存的實(shí)現(xiàn)方式 1.2 Zynq的BRA
    的頭像 發(fā)表于 04-19 11:12 ?2613次閱讀
    如<b class='flag-5'>何用</b>OpenCL<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>FPGA</b>上的大型卷積<b class='flag-5'>網(wǎng)絡(luò)</b>加速?