Xilinx ZYNQ Ultrascale+ 性能测试之 AXI DMA S2MM

续上一篇文章,
PS 使用官方的 dma-proxy-test.c,注释掉 tx 部分,只保留rx 部分
PL 自己模拟发数据

AXI DMA 设置如下
Memory Map Data Width: 32
Stream Data Width: 32
Max Burst Size: 128

AXIS CLK 为 250M,
一次发 32’h400 长度的数据,因为是位宽是 32bit,那么每次发送 4096Byte

在Linux 下,CPU占用大概 15%,速度160MByte/s 左右

#./dma-proxy-test 1000000 4096
DMA proxy test
speed: 162 MByte/s
DMA proxy test complete

注:如果测试官方的tx+rx的例子,在4096的包大小下,速度要低一点点,CPU要高一点点,毕竟他是tx+rx同时的

在每次传输之后如果加 usleep(1000); // 1ms
CPU占用大概 0.5%

#./dma-proxy-test 1000000 4096
DMA proxy test
speed: 3 MByte/s
DMA proxy test complete

如果不加 usleep,把
AXI DMA 的 CLK 改为1M
AXI Interconnect 的 CLK 改为 100M
传输速度会降低到 2MByte/s,但CPU会高到 5% 左右

这里有个要注意的,如果linux 这边不开始收数据,PL端是发不出去的
按上面的设置,发送4个时钟周期之后 AXIS_TREADY 就被拉低了
正好是 Burst_Size / Data_Width = 4

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值