Vivado AXI DataMover IP核


??作者简介:小瑞同学,主要学习FPGA、信号处理、通信等。
??个人主页:小瑞同学的博客主页
??个人信条:越努力,越幸运!
?日期:2024.1.21
??来源:自学经历
??文章内容概述:介绍了Vivado AXI DataMover IP核的参数配置和接口意义,根据手册阐述了命令接口和状态接口部分字段的含义,明确了这两个接口即明确了工作原理。


目录

  • 1. AXI DataMover IP核的配置
    • 1.1 Basic
    • 1.2 Advanced
    • 1.3 接口
  • 2.工作原理
    • 2.1 命令接口
    • 2.2 状态接口
  • 3.应用


参考文档:pg022

1. AXI DataMover IP核的配置

参考:P41~P44

1.1 Basic

在这里插入图片描述
Channel Type:

  • Full:允许将通道配置为所有可能的组合和高级功能
  • Basic:限制了一些特性并让通道仅用于32位或64位宽的数据

Width of BTT field:命令中BTT字段的宽度

Enable xCache and xUser:需要更改缓存和用户信号时使能

Enable S2MM Control Signals:使能后将暴露S2MM接口的所有控制和状态信号

Address Width:命令中SADDR字段的宽度

1.2 Advanced

在这里插入图片描述
Enable Asynchronous Clocks:使能命令、状态流接口和存储映射接口异步时钟

Allow Unaligned Transfers :使能DRE,允许内存映射数据通道上的数据重新排列到字节(8位)级别。如果启用了DRE,则数据写入/读出可以从任何Buffer Address偏移量开始,并且读取的数据是对齐的,以便读取的第一个字节是AXI4-Stream上输出的第一个有效字节。

Enable Indeterminate BTT Mode :当传输命令发送到DataMover S2MM命令输入时、输入S2MM流通道上接收的字节数未知时需使能,使能后存储和转发选项不可用。

Enable Store and Forward:使能后可确保在存储和转发FIFO中存在请求传输所需的所有数据之前,不会将传输发送到AXI4写地址通道。

1.3 接口

参考:P14~P18

在这里插入图片描述

接口 意义
S_AXIS_S2MM 输入的数据流接口
S_AXIS_S2MM_CMD 输入的S2MM命令接口
M_AXIS_S2MM_STS 输出的S2MM状态接口
M_AXI_S2MM 输出的存储器映射接口数据
m_axis_s2mm_cmdsts_awclk S2MM的命令和状态时钟
s2mm_err S2MM错误输出

2.工作原理

以向存储器中写数据模式为例,原理框图如下:

在这里插入图片描述

2.1 命令接口

使用IP核时,要先写命令再写数据,且写完命令后要等待足够长时间,再开始写数据。

在这里插入图片描述

??DataMover操作由AXI从流接口控制,该接口接收来自用户逻辑的传输命令。命令接口是一个AXI4-Stream接口,因此总位数应该是8的整数倍。例如,如果地址空间配置为33位,则命令中的地址部分应该填充为40位。这是为了确保符合axis4 - stream协议。AXI Datamover将在内部忽略填充位
??命令格式允许指定从1字节到8,388,607字节(7FFFFF十六进制字节)的单个数据传输。加载到命令接口中的命令通常被称为传输的父命令。DataMover自动将大型传输分解为符合AXI4协议要求的中间突发(子传输)。下表介绍了部分字段的含义,更多细节可参考P18~P20

字段 意义
xCACHE 出现在MM2S或S2MM的AXI_stream额外标识信号
xUSER 出现在MM2S或S2MM的AXI_stream额外标识信号
TAG 四位标识命令,该字段是用户分配给命令的任意值
SADDR 起始地址,应为8的整数倍,根据具体配置
EOF 帧结束命令,最后一帧到来时输出tlast信号
Type 设置AXI4访问类型,置1表示INCR模式,地址自加1,置0表示固定地址
BTT 要传输的总字节数,可以从1到8388607字节,不允许为0

2.2 状态接口

在这里插入图片描述

??DataMover传输操作的状态由AXI主流接口提供,该接口将传输状态转发给用户逻辑。除了在不确定模式下启用S2MM外,状态字的宽度固定为8位。
??状态接口数据的各位表示成功或失败的原因,当状态信号的值为80(十六进制)时,代表datamover数据搬运成功;如果实际传输的数据量和指令中描述的数据量大小不匹配,状态信号的值为10,表明数据量不对;如果指令中给出的地址和后续存储器地址不匹配,状态信号的值为20,表明找不到相应地址而出错。各字段具体含义,可参考P21~P23

3.应用

下图是手册中给出的S2MM Datamover的典型应用:

在这里插入图片描述


??如果觉得文章对你有所帮助的话,别忘了点个收藏哦~
??更多优质内容可浏览本人主页??,期待再次与你相遇!
????????????小瑞同学的博客主页????????????