基于zynq的千兆网udp项目_米联客 ZYNQ/SOC 精品教程 S05-CH05 PS 千兆 UDP 加速

软件版本:VIVADO2017.4

操作系统:WIN10 64bit

硬件平台:适用米联客 ZYNQ系列开发板

米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!!

5.1 概述

在米联的教程中已经陆续介绍了 4 种在 ZYNQ 平台进行网络通信开发的方案。本教程将基于 MZ7035 开发板介绍第 5 种应用方案。本方案的思路为:在PL 端通过米联的 UDP IP 协议栈为PS 端实现网络协议加速,与传统通过 PS 端进行网络通信的方法相比,本方案完全卸载了 PS 对于 UDP、IP、ARP 等网络协议的软件开销,从而实现UDP 通信的加速。

需要说明的是,此处所说的“加速”并不是指提高网络传输速率,而是指卸载了PS 对于网络协议的软件开销, 使其可以获得更高的 CPU 利用率。同时,这种方案也便于实现单个 CPU 同时实现多路网络通信,进一步扩展了 PS 的 UDP 传输带宽总量。

本教程基于《UDP 千兆光通信》一章中的udp_ip_1g_sfp_4ch 例程进行进一步开发,实现了 4路PS 的千兆 UDP吗,加速(MZ7035为2路sfp+接口,对应udp_ip_1g_sfp_2ch)。

加速。

5.2 基本原理

本例程中,设计了一个自定义 IP 核 udp_ip_stack_controller,该 IP 核主要用于对 UDP IP 协议栈进行参数配置和管理。PS 则可通过AXI-Lite 总线利用 udp_ip_stack_controller 对UDP IP 协议栈进行控制。

同时,PS 通过 AXI Direct Memory Access IP 核与PL 端的UDP IP 协议栈通过AXI-Stream 接口进行数据双向传输,从而实现PS 通过 PL 部分的 UDP IP 协议栈进行 UDP 网络数据收发。单路 UDP 加速的实现原理如下图所示。

实现 4 路 UDP 加速只需要复制单路的框架即可。

5.3 PL 逻辑设计

本例程中仍然需要使用 AXI-Stream DATA FIFO、AXI4-Stream Data Width Converter、Tri Mode Ethernet MAC 以

及 1G/2.5G Ethernet PCS/PMA or SGMII 这几个 IP 核,这些 IP 核的使用在《UDP 千兆光通信》一章中已经进行了详细描述。由于本例程基于《UDP 千兆光通信》而设计,因此 IP 的用法与之完全一致,此处不作赘述。

5.3.1PS 设置

将 FCLK0 作为 HP0 口的同步时钟,这样单个 HP 口的带宽可以达到 125M×64bit=8Gb/s ,可以同时满足 4 路千兆以太网的全双工满额带宽要求。

使能PL 到PS 的中断接口,如下图所示。PS 一共需要连接 12 个中断,分别为:4 个 AXI Direct Memory Access

各产生接收和发送 2 个中断,4 个UDP IP 协议栈各产生 1 个 dst_ip_unreachable 信号作为中断。

5.3.2AXI Direct Memory Access

AXI Direct Memory Access 用于在PS 的DDR 和UDP IP 协议栈之间进行高速数据传输。AXI Direct Memory Access 的设置如下图所示。由于网络中单个 IP 包最大为 1500 字节,所以单个 UDP 包可以携带的数据量为

1500-20-8=1472 字节,所以 Buffer

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值