AXI4_full协议详解

AXI4-full协议介绍

AXI4.0-full包含突发控制信号,所以可以进行突发传输,在只指定一次地址后,可以一次传输多达256个数据(数据的宽度取决于带宽)。主要用于往DDR或者OCM中写入大量数据时使用。

信号线详细描述

下面信号包含五个通道的所有信号。其中每个通道都有其自己的双向握手机制信号线xxVALIDxxREADY,这俩信号线的介绍,详见AXI总线介绍。

  1. 全局信号
    1. ACLK 全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变化。
    2. ARESETn 全局复位信号,低电平有效。在复位期间,所有的xxVALID信号必须复位为低电平。其他的信号可以是任意值。
  2. 写地址通道信号
    1. 主机(master)控制的信号
      1. AWID 交易标识符,乱序时使用。初学者就先默认为0吧。
      2. AWADDR 地址信号线,传输地址信息。
      3. AWLEN 指定突发写长度,Burst_Length = AxLEN[7:0] + 1。如要一次传输16个数据,那么AWLEN=15.注意事项如下
        1. 突发事件不能跨越4KB地址边界。即起始地址到结束地址(AWADDR + AWLEN * (WDATA位宽/4))都必须在0xxxxxx000-0xxxxxxFFF。也就是x代表的位必须一致。
        2. AWBURST类型为INCR时,支持1-256长度的传送。
        3. AWBURST类型为其他时,支持1-16长度的传送。
      4. AWSIZE 每次传输的字节,和WDATA宽度相关。如WDATA为32位。那么AWSIZE=log2(32/8)=2
      5. AWBURST 突发类型
        1. FIXED: 0 固定模式,Xilinx不建议使用此模式。
        2. INCR: 1 递增模式(Incrementing),递增值依赖于传送宽度。比如数据总线AWADDR为32位,那么next_AWADDR_value = current_AWADDR_value + 32/8;
        3. WRAP: 2
        4. Reserved: 3
      6. AWLOCK 总线锁信号,可提供操作的原子性。一般赋值为0。
      7. AWCACHE 内存类型。xilinx建议赋值为4'b0011
      8. AWPROT 访问权限信号线,xilinx建议赋值为3'b000.xilinx IP 一般忽略此信号。
      9. AWQOS 服务质量,xilinx使用其值0b0000.表示接口不参与任何QoS方案。AXI4协议没有指定QoS标识符的确切使用。该规范建议将AxQOS用作相关的写或读事务的优先级指示器。更高的值表示更高的优先级事务。
      10. AWUSER 用户自定义信号。ip交互中一般用不到。赋值为1.
      11. AWVALID
    2. 从机(slave)控制的信号
      1. AWREADY
      2. AWREGION 区域标志,能实现单一物理接口对应的多个逻辑接口。xilinx主机接口没有此信号线,从机有。初学者就默认为0吧。
  3. 写数据通道信号
    1. 主机(master)控制的信号
      1. WDATA 数据信号线,传输数据信息。
      2. WSTRB 数据总线有效字节控制。比如32位的总线,WSTRB等于4'b0010,那么代表WDATA[15:8]中的数据有效。其他无效。如果要求WDATA[31:0]32位全有效,那么WSTRB就应该等于4'b1111.
      3. WLAST 置高表示突发数据中的最后一个数据。
      4. WUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
      5. WVALID
    2. 从机(slave)控制的信号
      1. WREADY
  4. 写应答通道信号
    1. 主机(master)控制的信号
      1. BREADY
    2. 从机(slave)控制的信号
      1. BID 交易标识符
      2. BRESP
        1. OKEY 0 正常访问成功
        2. EXOKEY 1
        3. SLVERR 2 从机错误
        4. DECERR 3 解码错误,比如没有从机的地址。
      3. BUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
      4. BVALID
  5. 读地址通道信号
    1. 主机(master)控制的信号
      1. ARID 读地址通道信号的意义跟写地址通道的相似。
      2. ARADDR
      3. ARLEN
      4. ARSIZE
      5. ARBURST
      6. ARLOCK
      7. ARCACHE
      8. ARPROT
      9. ARQOS
      10. ARUSER
      11. ARVALID
    2. 从机(slave)控制的信号
      1. ARREADY
      2. ARREGION
  6. 读数据通道信号
    1. 从机(slave)控制的信号
      1. RREADY
    2. 从机(master)控制的信号
      1. RID 读数据通道信号的意义跟写数据通道的相似。
      2. RDATA
      3. RRESP
      4. RLAST
      5. RUSER
      6. RVALID

读写时序和握手时序

关于AXI4.0-full的读写时序和握手时序请参看AXI总线介绍。

AXI-lite主从交互仿真

  1. vivado创建AXI外设。
  2. 添加主从接口。
  3. 编写仿真tb文件。仿真相关的文件见附件axi-full.zip。

下图是AXI-full主从交互的时序图,主机先通过总线写数据,然后通过读总线将其写入的数据读了出来。图中画圆圈的地方是每个通道第一次握手的时序(后续的握手时序没有标记)。
AXI4_full协议详解_第1张图片AXI4_full协议详解_第2张图片

文档参考

  1. IHI0022G_amba_axi_protocol_spec.pdf
  2. IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf
  3. ug761_axi_reference_guide.pdf

关于技术交流

此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。二维码

你可能感兴趣的:(zynq)