0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀的IC/FPGA开源项目(二)-NetFPGA

OpenFPGA 来源:OpenFPGA 2023-05-19 11:11 次阅读

为你的FPGA设计加加速,NIC、Router、Switch任意实现

副标题:优秀的IC/FPGA开源项目(二)-NetFPGA

《优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《优秀的 Verilog/FPGA开源项目》内容介绍更加详细,包括但不限于综合、上板测试等。两者相辅相成,互补互充~

这几年DPU的概念越来越火,有和CPUGPU并驾齐驱的势头,通俗的讲DPU分担的工作为虚拟化、网络、存储以及安全。

c8a8e5a6-f5ef-11ed-90ce-dac502259ad0.png

从上面的工作可以看出DPU的核心是:网络。所以我们今天讲一个未来的发展核心之一:用FPGA实现NIC(network interface controller,网络接口控制器),从该项目出发可以实现数据可控制化,进而实现DPU功能。

当然,本项目的基本就是一个NIC、router、switch等子项目的集合,可以看做目前ASIC-Intel 82580、BCM8724、BCM5396的功能的FPGA实现。

c8d72b00-f5ef-11ed-90ce-dac502259ad0.png

基于Intel 82580网卡

c917f1e4-f5ef-11ed-90ce-dac502259ad0.png

BCM8724特点

c93cee68-f5ef-11ed-90ce-dac502259ad0.png

BCM5396内部架构图

今天项目的核心项目地址如下:

https://github.com/NetFPGA

www.netfpga.org

这个项目已经发展了很多年了,从V5 FPGA到现在V7 FPGA,从官方板卡到各种自制板卡,应有尽有。

c945821c-f5ef-11ed-90ce-dac502259ad0.png

netfpga官方V7 板卡

核心的架构都可以在上面的板卡上实现。

整个项目包括如下几个平台的子项目:

c98a0216-f5ef-11ed-90ce-dac502259ad0.png

上面的项目是根据不同板卡实现的功能类似的项目。

接下来我们以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设备,正常会出现下面:

c9b38988-f5ef-11ed-90ce-dac502259ad0.png

注意ID:7028 0007,如果不是证明FPGA下载的文件有问题。

载入sume_riffa模块

modprobesume_riffa

查看有没有加载成功

lsmod

查看有没有识别到网卡:

ifconfig-a

c9d6b25a-f5ef-11ed-90ce-dac502259ad0.png

接下来就按照自己需求进行测试了。

最后总结一下这个架构:

sume_riffa的这个nic架构PCIe部分使用了基于Scatter-Gather DMA的riffa PCIe开源模块,其他IP基本都是xilinx官方IP,使用AXI-stream和AXI-lite的比较广泛的架构,值得学习。

c9e31d74-f5ef-11ed-90ce-dac502259ad0.png

总结

今天的项目简单优化后基本就可以应用到项目里了,开头说的可能比较“绕”,简单说就是如果你想用FPGA实现网络相关的功能(包括但不局限于NIC、Route、Swich、OSNT等),那么你就可以到这个项目里找一个相接近的子项目移植即可,这样这个项目的功能就清晰明了了。

最后说一下,项目整体移植非常非常简单,几天时间就能让你快速实现一个网络相关项目的功能验证,同时这个该项目的架构也是比较先进的,也是值得学习的。还想什么?动手干吧~

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面如果大家想要分享什么项目,可以在后台留言或者加微信留言,沟通转载事宜。今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21326

    浏览量

    593242
  • asic
    +关注

    关注

    34

    文章

    1158

    浏览量

    119266
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10446

    浏览量

    206575

原文标题:总结

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开源FPGA项目有哪些

    请问开源FPGA项目有哪些?
    发表于 12-26 12:09

    关于FPGA项目外包

    1.熟悉 NetFPGA开发(是NetFPGA哈)2.网络流量分类3.毕业设计 有意者联系QQ272254923
    发表于 12-13 15:48

    购买NetFPGA SUME板后,我可以获得Vivado许可吗?

    嗨,我发现Vivado webpack版本v2014.4不支持安装在NetFPGA SUME板上的eh Virtex-7 690 FPGA。我想知道购买NetFPGA SUME板的任何许可证捆绑
    发表于 12-18 10:36

    NetFPGA主要组成部分有什么?

      NetFPGA 能够很好地支持模块化设计,复杂的硬件设计可以通过各个子模 块的组合来完成.更重要的是,NetFPGA 是一个基于 Linux 的开放性平台,所 有对它感兴趣的人都可以利用平台
    发表于 10-24 09:00

    NetFPGA-SUME开发板测试时显示回送测试失败

    `各位的大神,我购买了410-301(NetFPGA-SUME Virtex-7 FPGA开发板),并与ES-T5-R的光模块配对。使用官方测试程序时(https://github.com
    发表于 03-18 10:51

    NetFPGA-10G是什么?它有什么功能?

    NetFPGA-10G是什么?它有什么功能?
    发表于 05-25 06:13

    为你的FPGA设计加加速,NIC、Router、Switch任意实现

    为你的FPGA设计加加速,NIC、Router、Switch任意实现 优秀IC/FPGA开源项目
    发表于 11-01 16:27

    优秀的 Verilog/FPGA开源项目介绍(一)

    优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信 今天开始会陆续介绍一些优秀开源
    的头像 发表于 10-11 15:31 8545次阅读
    <b class='flag-5'>优秀</b>的 Verilog/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>介绍(一)

    优秀的 Verilog/FPGA开源项目之 USB通信

    优秀的 Verilog/FPGA开源项目介绍(五)- USB通信 USB是我们生活中非常非常常见的接口,鼠标、键盘以及常见的U 盘等,可以说现在的USB设备已经渗透到生活中的方方面面,
    的头像 发表于 11-02 14:54 7998次阅读
    <b class='flag-5'>优秀</b>的 Verilog/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>之 USB通信

    Verilog/FPGA开源项目介绍

    优秀的 Verilog/FPGA开源项目介绍(七)- CAN0、CAN总线介绍《【科普】CAN总线介绍及FPGA实现方案简介》 1、CAN权
    的头像 发表于 11-17 11:19 2776次阅读

    TTL FPGA开源项目

    电子发烧友网站提供《TTL FPGA开源项目.zip》资料免费下载
    发表于 07-28 10:18 3次下载
    TTL <b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>

    优秀IC/FPGA开源项目:伪红外图像处理

    优秀IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《
    的头像 发表于 06-09 09:42 1447次阅读
    <b class='flag-5'>优秀</b>的<b class='flag-5'>IC</b>/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>:伪红外图像处理

    介绍一个使用FPGA做的开源示波器

    其实用FPGA做的示波器有很多,开源的相对较少,我们今天就简单介绍一个使用FPGA做的开源示波器:
    发表于 08-14 09:03 941次阅读

    使用FPGA做的开源示波器

    其实用FPGA做的示波器有很多,开源的相对较少,我们今天就简单介绍一个使用FPGA做的开源示波器。
    的头像 发表于 08-29 09:30 1001次阅读

    关于FPGA开源项目介绍

    Hello,大家好,之前给大家分享了大约一百多个关于FPGA开源项目,涉及PCIe、网络、RISC-V、视频编码等等,这次给大家带来的是不枯燥的娱乐项目,主要偏向老的游戏内核使用
    的头像 发表于 01-10 10:54 553次阅读
    关于<b class='flag-5'>FPGA</b>的<b class='flag-5'>开源</b><b class='flag-5'>项目</b>介绍