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接口的信号很多,看得头皮发麻,但是不慌,下面我按通道分类。


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项目!

在这里插入图片描述

 

 


版权声明:本文为weixin_40377195原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。