教程目的
本教程基于ALINX Zynq US+ MPSoC開發板 Z7-P+萬兆以太網FMC子卡 FH1223,在Xilinx 2020.1/PetaLinux 2020.1開發環境下,完整演示如何在Linux系統中實現萬兆以太網(10GbE)接口,并對其進行速率測試與處理器負載測試。
開發環境
硬件環境
開發板:ALINX Z7-P
產品鏈接:https://www.alinx.com/detail/593
Z7-P 是基于AMD Zynq UltraScale+ MPSoC系統級開發平臺,支持 Xilinx Vitis-AI DPU 和 PCle3.0x8,集成 H.264/H.265 視頻編解碼器,可用于 4K 視頻圖像處理;配備一個 FMC HPC 接口,可自由擴展開發。
(ALINX基于Zynq UltraScale+ MPSoC開發板Z7-P)
FMC子卡:ALINX FH1223
產品鏈接:https://www.alinx.com/detail/315
4 路 SFP+ 光纖FMC 子卡FH1223 通過標準 FMC 接口與 Z7-P 相連,提供完整的 10GbE 硬件支持。
(ALINX 4路SFP+光纖FMC子卡 FH1223)
Z7-P + FH1223 的模塊化組合,能夠顯著簡化您的開發流程,縮短驗證周期,亦能提升產品復用性,降低開發成本。
軟件環境
vivado2020.1
petalinux2020.1
相關資料
https://pan.baidu.com/s/1NnG9ULlE4ojY3FtcrXeQiw提取碼: dt15
Vivado 工程
請參考我們提供的 Vivado 工程
整體框圖如圖所示

主要 IP 配置如下




注意時鐘連線以及對應數據流傳輸的關系,讀寫數據主要通過 dma 實現。
Petalinux工程
使用 vivado 工程導出的包含 bit 流的 xsa 文件,搭建基礎的 petalinux 工程。(該部分可參考 Z7-P 的《course_s3_ALINX_ZYNQ_MPSoC開發平臺Linux基礎教程》第一章 使用 Petalinux 定制 Linux 系統。)

修改petalinux工程project-spec/meta-user/recipes-bsp/device-tree/files路徑下的設備樹文件system-user.dtsi,指定SFP1和SFP2接口的mac地址,修改后內容如下

/include/"system-conf.dtsi"/ {};
&sdhci1 { disable-wp; no-1-8-v;};
&xxv_ethernet_0 { local-mac-address = [000a 3566668d]; xlnx,rxmem = ??0x2400???>;};
&xxv_ethernet_0_1 { local-mac-address = [000a 3566669d]; xlnx,rxmem = ??0x2400???>;};
輸入命令,進入 rootfs 配置界面
etalinux-config -c rootfs


使能Petalinux Package Groups --->packagegroup-petalinux-benchmarks --->[*] packagegroup-petalinux-benchmarks

使能Petalinux Package Groups --->packagegroup-petalinux-utils --->[*] packagegroup-petalinux-utils

保存配置并退出
編譯petalinux工程,生成BOOT.BIN文件
petalinux-build petalinux-package --boot --u-boot --fsbl --fpga --force


將生成的系統鏡像文件BOOT.BIN、boot.scr、image.ub拷貝到sd卡

速率測試
硬件環境:
主機(cpu: i5-14600k 主板: tuf b760m-plus wifi d4)
Intel E810-2SFP28 萬兆網卡

10G光纖模塊

軟件環境:
主機:windows10系統
開發板:petalinux2020.1系統
測速軟件:iperf3.7
硬件準備:
sd卡插入Z7_P,撥碼調整為sd啟動模式
FH1223接到Z7_P FMC接口上
10g光纖模塊連接FH1223的SFP1接口和主機萬兆網卡的光纖接口


軟件準備:
板卡上電啟動后,在其串口終端中輸入如下命令,配置SFP1對應的網口ip地址和mtu值,并關閉其余網口
ifconfig eth1 mtu 9000 ifconfig eth1 192.168.8.100 ifconfig eth1 up ifconfig eth0 down
輸入ifconfig命令查看當前網口配置

在windows主機中,點擊左下角“開始”菜單,進入設置界面,選擇“網絡和Internet”


選擇”Windows防火墻“,關閉所有的防火墻(此時可以選擇將主機其余網口的網線拔出,僅保留萬兆網卡連接的光纖模塊)


選擇“更改適配器選項”,然后雙擊選擇萬兆網卡接口對應的設備(此處為“以太網7”)


確認網卡速率協商到的是10Gbps,點擊“屬性”

點擊”配置“,選擇”高級“,開啟巨幀數據包,值為9014,然后點擊”確定“

點擊”屬性“,雙擊”Internet 協議版本 4(TCP/IPv4)“

設置網卡的ip地址,修改如下圖所示,修改完成后點擊”確定“

最后在適配器設備界面點擊”確定“,使所有配置生效

將iperf3的windows可執行程序拷貝到windows主機中(注意,路徑無中文)

在當前界面上方地址欄中輸入cmd 并回車,就能快速打開一個當前路徑的命令行終端


在該命令行終端中輸入如下命令,進行主機ping開發板測試
ping 192.168.8.100

在開發板的串口終端輸入如下命令,進行開發板ping主機測試,按ctrl+c停止
ping 192.168.8.130

UDP RX
為了便于查看處理器負載,在開發板的串口終端中輸入如下命令,將iperf3服務端線程綁定到指定的cpu核上(Z7_P ps端有4個cpu核,此處綁定到cpu核2),并指定端口號5301
taskset -c 2 iperf3 -s -p 5301 -i 60 &

在串口終端中輸入如下命令,每秒打印一次cpu所有核心的使用情況,共計打印60次
mpstat -P ALL 1 60

在windows主機,iperf3測試程序路徑下打開的命令行終端中,輸入如下命令,開始iperf3 udp傳輸60s測試
iperf3 -c 192.168.8.100 -u -T s1 -p 5301 -t 60 -i 60 -b 10G -l 8960

在udp傳輸測試過程中,板卡串口終端mpstat程序每秒打印的cpu核心負載情況,由此可知cpu核2基本保持滿負載運行

當60s傳輸測試完成后,主機命令行終端中會打印出測試結果,由下圖可知板卡萬兆網口 UDP RX 速率為4.37Gbits/sec

在板卡的串口終端中輸入如下命令,終止測試時設置的后臺iperf3服務端線程
killall iperf3

UDP TX
在主機的命令行終端中,輸入如下命令,設置4個后臺執行的iperf3服務端線程
start /B iperf3 -s -p 5301 start /B iperf3 -s -p 5302 start /B iperf3 -s -p 5303 start /B iperf3 -s -p 5304

在板卡串口終端中輸入如下命令,開啟4個iperf3客戶端線程,并將其綁定到cpu核0~3
taskset -c 0 iperf3 -c 192.168.8.130 -u -T s1 -p 5301 -t 60 -i 60 -b 10G -l 8960& taskset -c 1 iperf3 -c 192.168.8.130 -u -T s2 -p 5302 -t 60 -i 60 -b 10G -l 8960& taskset -c 2 iperf3 -c 192.168.8.130 -u -T s3 -p 5303 -t 60 -i 60 -b 10G -l 8960& taskset -c 3 iperf3 -c 192.168.8.130 -u -T s4 -p 5304 -t 60 -i 60 -b 10G -l 8960&

在串口終端中輸入命令,使用mpstat監測處理器負載
mpstat -P ALL 1 60
在udp傳輸測試過程中,板卡串口終端mpstat程序每秒打印的cpu核心負載情況如圖所示,處理器總負載為75%左右

當60s傳輸測試完成后,主機命令行終端中會打印出測試結果,此時主機作為服務端,也就是接收方,所以板卡的 UDP TX 速率合計為 6.94 Gbits/sec

在主機的命令行終端中輸入命令,終止測試時設置的后臺iperf3服務端線程
taskkill /im iperf3.exe /f

TCP RX
在開發板的串口終端中輸入命令,啟動iperf3服務端線程,并綁到cpu核2上
taskset -c 2 iperf3 -s -p 5301 -i 60 &

在串口終端中輸入命令,監測處理器負載
mpstat -P ALL 1 60
在主機的命令行終端輸入命令,啟動iperf3測試
start /B iperf3 -c 192.168.8.100 -T s1 -p 5301 -t 60 -i 60

在tcp傳輸測試過程中,板卡串口終端mpstat程序每秒打印的cpu核心負載情況如圖所示,雖然cpu核2的負載并未跑滿,但此時cpu核0因為軟中斷處理已經處于滿載狀態

當60s傳輸測試完成后,主機命令行終端中會打印出測試結果,如圖所示,板卡的 TCP RX 速率為2.63Gbits/sec

在開發板的串口終端中輸入如下命令,終止后臺的iperf3服務端線程
killall iperf3

TCP TX
在主機的命令行終端中,輸入如下命令,設置4個后臺執行的iperf3服務端線程
start /B iperf3 -s -p 5301 start /B iperf3 -s -p 5302 start /B iperf3 -s -p 5303 start /B iperf3 -s -p 5304

在板卡串口終端中輸入如下命令,開啟4個iperf3客戶端線程,并將其綁定到cpu核0~3
taskset -c 0 iperf3 -c 192.168.8.130 -T s1 -p 5301 -t 60 -i 60 -b 2560M & taskset -c 1 iperf3 -c 192.168.8.130 -T s2 -p 5302 -t 60 -i 60 -b 2560M & taskset -c 2 iperf3 -c 192.168.8.130 -T s3 -p 5303 -t 60 -i 60 -b 2560M & taskset -c 3 iperf3 -c 192.168.8.130 -T s4 -p 5304 -t 60 -i 60 -b 2560M &

在串口終端中輸入命令,使用mpstat監測處理器負載
mpstat -P ALL 1 60
在tcp傳輸測試過程中,板卡串口終端mpstat程序每秒打印的cpu核心負載情況如圖所示,處理器總負載約為41%

當60s傳輸測試完成后,主機命令行終端中會打印出測試結果,如圖所示,板卡的 TCP TX 速率合計約為3.83Gbits/sec

測試總結

審核編輯 黃宇
-
FPGA
+關注
關注
1662文章
22473瀏覽量
638300 -
以太網
+關注
關注
41文章
6106瀏覽量
181378 -
開發板
+關注
關注
26文章
6365瀏覽量
119940 -
MPSoC
+關注
關注
0文章
203瀏覽量
25218
發布評論請先 登錄
重磅新品亮相國際!ALINX 誠邀您蒞臨 Embedded World 2026
【ALINX 教程】FPGA Multiboot 功能實現——基于 ALINX Artix US+ AXAU25 開發板
FPGA 專業級開發平臺性價比之選,ALINX Artix US+ PCle AXAU25
L-com諾通推出7類10G級以太網線纜組件
fpga開發板 璞致Artix-7系列之PA-Starlite Artix7 A735T 75T 100T 200T開發板用戶手冊-學習板
fpga開發板 璞致 Kintex UltraScale Plus PZ-KU3P 與 PZ-KU5P核心板與開發板用戶手冊
ALINX 助力希臘 SpaceDot AcubeSAT 衛星項目,2026 將入太空
企業與工廠為什么都在上10G以太網?一文看懂!
一文讀懂——Air8000開發板的以太網供網多網融合技術!
【ALINX 教程】FPGA 10G 以太網實現——基于 Zynq US+ Z7-P 開發板+FH1223 子卡
評論