从网络接口到 DMA,一套面向工程师的 FPGA 网络开发框架
在高性能网络、数据中心和智能网卡加速领域硬件与软件协同设计已成为提升网络处理效率的关键。Liberouter 提供的 Network Development KitNDK 就是这样一套专门用来快速开发 FPGA 加速网络应用的开源框架是连接高速网络接口、FPGA 逻辑与主机处理器的工程级利器。 什么是 Liberouter NDKNDK 全称 Network Development Kit是由 Liberouter 研究团队开发的一套框架用于在 FPGA 加速卡上快速实现高性能网络应用。它并不是一个简单的示例或库而是一个 可直接用来推进复杂网络硬件开发的平台。这个套件支持包括 10 GbE、100 GbE 和 400 GbE 在内的高速以太网标准同时提供了配套的 Linux 驱动、用户态库、示例程序等工具大幅降低了网络加速 FPGA 设计的门槛。 核心功能和特点基于标准以太网硬IP的网络模块支持10 GbE、100 GbE、400 GbE等速度。基于 PCIe Gen5 x16 或 2x PCIe Gen4 x16 接口的超高速 DMA 模块吞吐量达 400 Gbps。易于使用的内存接口可对卡进行单独的读取/写入操作。用于完整设计综合的自动化脚本。只需运行一条 make 命令即可创建整个 FPGA 比特流。Linux 内核驱动程序、DPDK 支持、用户空间库和配置工具。通过用户友好的 API 轻松创建自定义应用程序实现组件访问和 DMA 传输。用户应用程序NDK 专为创建具有深度流水线式高速数据包处理的新型网络应用而设计。应用核心是 FPGA 芯片上专用于用户应用的区域它可以利用 NDK 从网络接口捕获数据包并通过超高速 DMA 传输将数据发送到主机 CPU。网络模块NDK 的一部分负责网络数据包的接收和发送。网络模块通过数据流总线兼容 AXI4-Stream/Avalon-ST将接收到的数据包发送到应用核心。然后同一数据总线用于将数据传输到主机 CPU。整个 NDK 的可扩展性从数十 Gbps 到数百 Gbps 不等。它的设计目标是在每个时钟周期内发送和处理多个数据包。NDK 的标准数据总线经过优化可以同时传输大量数据包从而进一步提高吞吐量。上述数据总线包括 MFB 多帧总线和MVB多值总线。就吞吐量而言几乎唯一的限制是可用的 FPGA 资源。许多网络应用需要大型数据结构或缓冲区。因此NDK 提供了一个易于使用的接口用于与外部存储器通常是 DRAM通信。用户可以使用该接口快速开发连接跟踪表、流缓存或数据缓冲区。在FPGA中实现的用户应用程序可以通过对指定地址范围的读/写请求进行控制。这些请求通过与Intel Avalon-MM兼容的CSR总线从软件传输到应用程序核心。软件用户应用程序可以通过简单的软件API生成这些读/写请求。超高速DMA传输DMA Medusa IP提供与厂商无关的FPGA架构和开源Linux驱动程序用于采用逐包方式的高速DMA传输。该DMA设计吞吐量为400 Gbps并采用多通道架构以支持CPU内核间的数据分发。该架构具有高度灵活性支持各种高端FPGA系列和PCIe总线配置最高可达PCIe Gen5 x16。DMA IP可以利用更多PCI端点模块将吞吐量扩展到100、200和400 Gbps。已在 Intel Stratix 10 DX 开发套件上演示了 DMA 架构的 400 Gb 吞吐量。然而同样的 DMA 引擎也能为 Xilinx UltraScale 和 Intel Agilex 器件提供极高的吞吐量。NDK Linux 驱动程序允许单独控制所有 DMA 通道。它还提供了一个用户友好的 API可将应用程序内核直接连接到 DMA IP。此外还可以通过 DPDK 驱动程序处理 DMA 传输。示例设计作为 NDK 的一部分该项目提供了一个最小化参考应用程序的示例设计该设计可以轻松扩展为用户应用程序提供硬件加速。该示例设计基于 NDK 框架构建。由于架构设计精良最小化应用程序核心仅包含连接网络接口和 DMA 模块所需的连接线。此外最小化示例设计还包含一个用于向 DMA 通道分发数据的单元。https://cesnet.github.io/ndk-app-minimal/app-minimal.html实施、验证和运行示例设计可作为创建目标应用程序的灵感来源。可以轻松地使用加速引擎或其他独特功能扩展应用程序核心。提供NDK Minimal参考应用程序的文档其中包含应用程序接口的详细描述。可以专注于应用程序核心并利用 NDK 控制网络接口和 PCIe实现快速 DMA 传输。所有网络应用都需要进行精确的验证和测试。因此NDK 提供了一个 UVM 验证环境用于检查应用的功能是否正常。该验证环境包含一组适用于所有应用接口的总线功能模型 (BFM)。所有 BFM 和整个验证环境的详细描述请参见 NDK Minimal App 文档。成功验证应用核心后可以通过一条 make 命令生成新的 FPGA 比特流并在 FPGA 卡上运行该应用。支持的FPGA卡NDK 目前支持多种 FPGA 卡并且可以轻松扩展以支持任何其他带有网络接口和 PCIe 连接器的 FPGA 卡。NDK 中使用的绝大多数组件都已准备好支持各种高端 FPGA包括 Intel Agilex、Intel Stratix 10、Xilinx UltraScale 等。可用链接https://www.liberouter.org/ndk/https://github.com/CESNET/ndk-fpga 小结Liberouter 的 NDK 是一套工程级 FPGA 网络加速开发框架它把底层复杂的高速网络收发、DMA 传输、 FPGA bitstream 生成等通用功能都封装好开发者可以更专注于业务逻辑和加速算法本身。对从事 FPGA 网络加速、智能 NIC 设计或高性能系统工程的开发者来说NDK 提供了一条更快、更可靠、更可复用的硬件加速设计路线。

相关新闻

2026年再乱买房,就是给未来挖坑!这5类房千万别碰

2026年再乱买房,就是给未来挖坑!这5类房千万别碰

家人们,聊到买房这件事,我必须掏心窝子说句大实话:2026年的楼市,早就不是闭眼买都能赚的年代了。过去闭着眼冲、靠房子躺赢的时代彻底翻篇,现在买房买错,轻则资产缩水,重则背上几十年房贷砸手里…

2026/7/3 14:26:28 阅读更多 →
互联网大厂Java面试:从Spring Cloud到分布式事务的技术场景解析

互联网大厂Java面试:从Spring Cloud到分布式事务的技术场景解析

互联网大厂Java面试:从Spring Cloud到分布式事务的技术场景解析 场景设定 在某互联网大厂的面试室,严肃的面试官李云龙坐在桌前,而面试者谢宝庆则是以搞笑著称的“水货程序员”。此次面试的场景围绕电商场景展开,技术点涵盖Spring…

2026/7/3 14:26:33 阅读更多 →
深度解析:工业机器人工程师职位——以大连豪森瑞德设备制造有限公司为例

深度解析:工业机器人工程师职位——以大连豪森瑞德设备制造有限公司为例

大连豪森瑞德设备制造有限公司 工业机器人工程师 职位信息 岗位职责 1、负责自动化项目中,协作机器人的编程与调试 2、负责客户现场哦工业机器人的轨迹及节拍优化 3、负责机器人编程规范的制定 4、负责自动化项目的调试与现场交付 5、负责日常实验室测试平台的搭建、工艺测试及…

2026/7/3 4:50:12 阅读更多 →

最新新闻

告别Selenium弹窗噩梦:Playwright实现无头浏览器文件自动下载实战

告别Selenium弹窗噩梦:Playwright实现无头浏览器文件自动下载实战

1. 项目概述:为什么我们要告别Selenium?如果你做过Web自动化测试或者数据抓取,尤其是涉及到文件下载的场景,那你大概率经历过“弹窗噩梦”。浏览器原生的“另存为”对话框,就像一堵无法逾越的高墙,横亘在你…

2026/7/5 0:39:55 阅读更多 →
从光学到产品:护眼钢化膜的技术原理与实现路径深度解析(以悟赫德 scinique 技术为例)

从光学到产品:护眼钢化膜的技术原理与实现路径深度解析(以悟赫德 scinique 技术为例)

1. 引言:为什么我们需要 "护眼" 的手机膜?随着 OLED 屏幕在智能手机中的全面普及,以及用户日均用屏时长的不断增加(据统计,2026 年国内用户日均手机使用时长已超过 6.5 小时),视疲劳正…

2026/7/5 0:39:55 阅读更多 →
ASM330LHH与PIC18F25K80的工业级运动跟踪系统设计

ASM330LHH与PIC18F25K80的工业级运动跟踪系统设计

1. 从传感器到系统:ASM330LHH与PIC18F25K80的硬件搭档当我在工业自动化项目中第一次接触到ASM330LHH这颗6DoF惯性测量单元(IMU)时,立刻被它的性能参数所震撼。作为意法半导体MEMS传感器家族的重要成员,它在一个3x2.5x0.83mm的封装内集成了三轴…

2026/7/5 0:35:54 阅读更多 →
Python3与Java Hutool实现SM2国密算法跨语言加解密互通方案

Python3与Java Hutool实现SM2国密算法跨语言加解密互通方案

1. 项目概述与核心价值最近在做一个需要跨语言数据交换的项目,后端是Java,用到了Hutool这个“瑞士军刀”库来处理SM2国密算法的加解密,而另一个数据处理服务是用Python3写的。这就引出了一个很实际的问题:Java这边用Hutool加密的数…

2026/7/5 0:33:53 阅读更多 →
电商App签名逆向实战:从x-sign/x-miniwua看移动端安全防线

电商App签名逆向实战:从x-sign/x-miniwua看移动端安全防线

1. 项目概述:为什么我们要研究x-sign/x-miniwua? 如果你做过电商数据相关的爬虫或者自动化工具,那么“签名”这个词对你来说一定不陌生。它就像一道门禁,横亘在你和服务器数据之间。而某宝的 x-sign 和 x-miniwua &#xff0c…

2026/7/5 0:27:49 阅读更多 →
AI绘画提示词编写与优化全指南

AI绘画提示词编写与优化全指南

1. AI绘画提示词(Prompt)编写核心逻辑解析AI绘画的核心在于将自然语言描述转化为视觉元素,这个过程本质上是一种跨模态的信息转换。理解这个转换机制是编写优质Prompt的基础。现代AI绘画模型如Stable Diffusion、MidJourney都建立在扩散模型(Diffusion Model)架构上…

2026/7/5 0:25:48 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻