基于Xilinx Alveo FPGA 100Gbps网卡(NIC)
1、准备工作
2、FPGA项目
3、ONIC驱动
4、DPDK驱动
文章目录
前言
数据处理和AI处理带来数据传输越来越大,传统的10Gbps万兆网络已不再满足需求(对于10G UDP和TCP FPGA有开源项目另行介绍,不需要使用MAC IP,只需要使用GT的PHY即可,这个回头另行介绍),而50G、100G甚至200G网络传输变得迫切。本文针对Xilinx Alveo FPGA 如何实现100G NIC设备进行详细介绍,本项目是基于官方OpenNIC项目。
一、OpenNIC是什么?
Xilinx OpenNIC 为开源项目,是基于FPGA实现网络接口控制器(NIC:Network Inteface Control),该项目包括底层FPGA实现,Linux Driver Onic和DPDK驱动,非常适合快速搭建100G NIC。
项目网址下载点这里,架构框图如下:
----- -----------------------------------------------
| | | System Configuration |
| | -----------------------------------------------
| | | | | | | AXI-lite 125MHz
| | V V V V V
| | ------- ------- ------- ------- -------
| | | | | | | | | | | |
| P | | Q |==>| Box |==>| A |==>| Box |==>| C |
| C | | D | | @ | | D | | @ | | M |
| I | | M | | 250 | | A | | 322 | | A |
| E | | A |<==| MHz |<==| P |<==| MHz |<==| C |
| | | | | | | | | | | | | | | |
----- ------- | ------- | ------- | ------- | -------
| | | |
----------- -----------
AXI4-stream 250MHz AXI4-stream 322MHz
从上图可看出,OpenNIC可以支持4个PF(Physical Function),并可支持2个100Gbps的以太网端口,有2个用户BOX便于用户端开发,如加密算法,数据处理等,分别工作在250Mhz和322Mhz,采用AXI-Steam总线协议,实际收敛需要看电路和器件,有些器件很难做到频率收敛。另外提供125Mhz AXI-lite总线支持进行控制。
目前官方可支持的器件如下:
-Xilinx Alveo U50
-Xilinx Alveo U55N
-Xilinx Alveo U55C
-Xilinx Alveo U200
-Xilinx Alveo U250
-Xilinx Alveo U280
-Xilinx Alveo U45N
其它器件需要自己移植,移植难度也不大,需要关注GT Phy相关区别。
二、搭建开发环境
1.Ubuntu安装
推荐使用Ubuntu22.04系统,安装完成后进行系统和必要组件更新。当然最新的Ubuntu24.04也是推荐的,该版本在一些驱动的支持上会更好。
Ubuntu下载地址
> sudo apt update
> sudo apt install build-essential
> sudo apt install git
> sudo apt install snap
> sudo snap install cmake --classic
> sudo apt install gcc-12
2.Vitis安装
AMD Xilinx Vitis 软件平台开发环境请在这里下载。
注意安装前请检查是否已下载libtinfo5库,否则会卡在安装界面不动。
# FIX: Vitis Install hangs on Ubuntu
# https://support.xilinx.com/s/article/76616?language=en_US
sudo apt-get install libtinfo5
现在开始安装,并将vivado导入到bashrc中方便调用。
# vitis install
sudo ./xsetup
# add vivado to bash
gedit ~/.bashrc
# add follow cmd to the tail
source /tools/Xilinx/Vivado/2023.2/settings64.sh
# source bash
source ~/.bashrc
可以通过控制台运行vivado查看是否安装成功,成功后运行结果如下
3.CAMC IP License申请
创建项目前需要首先要获取UltraScale+ Integrated 100G Ethernet CMAC license👇没有账号需要首先注册账号。
在这里登录账号申请License。
1、click "Search Now" in the "Evaluation and No Charge Cores" box on
the right side of the page.
2、Enter "100G" in the search "Search".
3、Select "UltraScale+ Integrated 100G Ethernet No Charge License" and click "Add".
4、click "Generate Node-Locked License".
5、Host ID must be the same as vivado network interface card ID.
(in vivado) vivado License Manager -> view host information -> network interface card (NIC) ID
本章总结&未完待续
至此准备工作基本完成,磨刀不误砍工,环境的准备完备才能在后续开发中快速推进,否则会遇到一些问题耽误时间。
准备好环境后接下来进行FPGA项目搭建。