ZYNQ AXI4(AXI-full)总线学习(一)三种AXI总线以及AXI-full总线端口总结

1.简述

    这儿遇到到ps端与pl端大量实时数据交互问题,实验了axi-lite总线,发现不行,实在太慢。接下来就只有axi-full总线了,但是这个好像比较复杂,所以先认真学习一下。

2.zynq的三种总线

  • AXI-full(AXI4) 用于高性能的内存映射需求,说白了就是可以读写ddr,类似dma。
  • AXI-lite (AXI4-Lite) 用于简单的低吞吐量内存映射通信(例如,与控制和状态寄存器之间的通信),一般用于低速少量的数据通信,比如传递参数。
  • AXI-stream (AXI4-stream)用于高速流数据,没有地址信号,速度更快,可以承担更大的数据量。

3.zynq ps端几种接口

      总共有9个接口:

  • 4个GP,其中,ps作为主设备2个,从设备2个。这个对应AXI-lite总线使用。这接口我用的挺多,传输速度也不快,用于ps与pl少慢数据通信。
  • 4个HP,ps都作为从设备,对应AXI-full总线。因为这个高速传输接口,ps太慢了,要顺着 pl走。
  • 1个ACP,全称acceleratorcoherency port (ACP),加速一致性接口。这个直接通往arm内部,不经过ddr,所以速度是最快的。

4.AXI-full通道介绍

  • 读地址通道
  • 写地址通道
  • 读数据通道
  • 写数据通道
  • 写响应通道

5.AXI-full接口

     如下图,bd工程的截图,可以看出AXI-full接口的信号很多,看得头皮发麻,但是不慌,下面我按通道分类。

扫描二维码关注公众号,回复: 12289649 查看本文章


1)写地址通道接口

信号名 方向 描述
M_AXIAWID 输出 接口写入地址
M_AXI_AWADDR 输出 接口写入地址
M_AXI_AWLEN 输出 突发长度。突发长度给出了突发中传输的确切数量
M_AXI_AWSIZE 输出 突发大小。此信号指示突发中每个传输的大小
M_AXI_AWBURST 输出 突发类型。突发类型和大小信息,确定如何计算突发内每次传输的地址。
M_AXI_AWLOCK 输出 锁定类型。提供有关传输的原子特性的附加信息。
M_AXI_AWCACHE 输出 内存类型。此信号指示事务如何在系统中进行。
M_AXI_AWPROT 输出 保护类型。此信号指示事务的权限和安全级别,以及事务是数据访问还是指令访问。
M_AXI_AWQOS 输出 服务质量,为每个写事务发送的QoS标识符。
M_AXI_AWUSER 输出 写入地址通道中的可选用户定义信号。
M_AXI_AWVALID 输出 有效地址该信号表明信道是信号有效写入地址和控制信息。
M_AXI_AWREADY 输入 写地址准备好了。此信号表示从机准备好接受地址和相关的控制信号

2)写数据通道

信号名 方向 描述
M_AXI_WDATA 输出 接口写入数据。
M_AXI_WSTRB 输出 写有效字节。此信号指示哪个字节通道保存有效数据。写入数据总线的每8位有一个写入选通位。
M_AXI_WLAST 输出 最后写。此信号表示写入突发中的最后一次传输。
M_AXI_WUSER 输出 写入数据通道中的可选用户定义信号。
M_AXI_WVALID 输出 写入有效。此信号表示有效的写入数据和频闪可用
M_AXI_WREADY 输入 写入准备。此信号表示从机可以接受写入数据。

3)写响应通道

信号名 方向 描述
M_AXI_BID 输入 主接口写入响应。
M_AXI_BRESP 输入 写回应。此信号表示写入事务的状态。
M_AXI_BUSER 输入 写入响应通道中的可选用户定义信号
M_AXI_BVALID 输入 写入响应有效。此信号表示通道正在发出有效的写入响应信号。
M_AXI_BREADY 输出 响应就绪。此信号表示主机可以接受写入响应。

4)读地址通道

信号名 方向 描述
M_AXI_ARID 输出  
M_AXI_ARADDR 输出 读地址。此信号表示读突发事务的初始地址。
M_AXI_ARLEN 输出 突发长度。突发长度给出了突发中传输的确切数量
M_AXI_ARSIZE 输出 突发大小。此信号指示突发中每个传输的大小
M_AXI_ARBURST 输出 突发类型。突发类型和大小信息,决定如何计算突发中每个传输的地址。
M_AXI_ARLOCK 输出 锁类型。提供有关传输的原子特性的附加信息。
M_AXI_ARCACHE 输出 内存类型。此信号指示事务如何在系统中进行。
M_AXI_ARPROT 输出 保护类型。此信号指示事务的权限和安全级别,以及事务是数据访问还是指令访问。
M_AXI_ARQOS 输出 服务质量,为每个读取事务发送的QoS标识符
M_AXI_ARUSER 输出 读取地址通道中的可选用户定义信号。
M_AXI_ARVALID 输出 写入地址有效。此信号表示通道正在发送有效的读取地址和控制信息
M_AXI_ARREADY 输入 已准备好读取地址。此信号表示从机已准备好接受地址和相关控制信号

5)读数据通道

信号名 方向 描述
M_AXI_RID 输入 读取ID标记。该信号是从机生成的信号的读取数据组的标识标签。
M_AXI_RDATA 输入 读取数据
M_AXI_RRESP 输入 读取响应。此信号表示读取传输的状态
M_AXI_RLAST 输入 最后一次读。此信号表示读突发中的最后一次传输
M_AXI_RUSER 输入 读取地址通道中的可选用户定义信号。
M_AXI_RVALID 输入 读取有效。此信号表示通道正在发送所需读取数据的信号。
M_AXI_RREADY 输出 阅读准备。此信号表示主机可以接受读取的数据和响应信息。

6)其他信号

信号名 方向 描述
M_AXI_ACLK 输入 全局时钟信号。
M_AXI_ARESETN 输入 全局复位信号。此信号处于低激活状态
INIT_AXI_TXN 输入 启动AXI传输
TXN_DONE 输出 传输完成时确定

  说明:这是按axi-full官方源码注释翻译的,有些可能不太准确,后面我有新的更加准确的描述再改。

欢迎关注我的公众号:芯王国,有更多的FPGA&数字IC的技术分享,还可以获取开源FPGA项目!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40377195/article/details/104574704