AXI4-full协议介绍
AXI4.0-full
包含突发控制信号,所以可以进行突发传输,在只指定一次地址后,可以一次传输多达256个数据(数据的宽度取决于带宽)。主要用于往DDR或者OCM中写入大量数据时使用。
信号线详细描述
下面信号包含五个通道的所有信号。其中每个通道都有其自己的双向握手机制信号线xxVALID
和xxREADY
,这俩信号线的介绍,详见AXI总线介绍。
- 全局信号
- ACLK 全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变化。
- ARESETn 全局复位信号,低电平有效。在复位期间,所有的
xxVALID
信号必须复位为低电平。其他的信号可以是任意值。
- 写地址通道信号
- 主机(master)控制的信号
- AWID 交易标识符,乱序时使用。初学者就先默认为0吧。
- AWADDR 地址信号线,传输地址信息。
- AWLEN 指定突发写长度,Burst_Length = AxLEN[7:0] + 1。如要一次传输16个数据,那么
AWLEN=15
.注意事项如下- 突发事件不能跨越4KB地址边界。即起始地址到结束地址(AWADDR + AWLEN * (
WDATA
位宽/4))都必须在0xxxxxx000-0xxxxxxFFF。也就是x
代表的位必须一致。 AWBURST
类型为INCR
时,支持1-256长度的传送。AWBURST
类型为其他时,支持1-16长度的传送。
- 突发事件不能跨越4KB地址边界。即起始地址到结束地址(AWADDR + AWLEN * (
- AWSIZE 每次传输的字节,和
WDATA
宽度相关。如WDATA
为32位。那么AWSIZE=log2(32/8)=2
。 - AWBURST 突发类型
- FIXED: 0 固定模式,Xilinx不建议使用此模式。
- INCR: 1 递增模式(Incrementing),递增值依赖于传送宽度。比如数据总线
AWADDR
为32位,那么next_AWADDR_value = current_AWADDR_value + 32/8; - WRAP: 2
- Reserved: 3
- AWLOCK 总线锁信号,可提供操作的原子性。一般赋值为0。
- AWCACHE 内存类型。xilinx建议赋值为
4'b0011
。 - AWPROT 访问权限信号线,xilinx建议赋值为
3'b000
.xilinx IP 一般忽略此信号。 - AWQOS 服务质量,xilinx使用其值
0b0000
.表示接口不参与任何QoS方案。AXI4协议没有指定QoS标识符的确切使用。该规范建议将AxQOS用作相关的写或读事务的优先级指示器。更高的值表示更高的优先级事务。 - AWUSER 用户自定义信号。ip交互中一般用不到。赋值为1.
- AWVALID
- 从机(slave)控制的信号
- AWREADY
- AWREGION 区域标志,能实现单一物理接口对应的多个逻辑接口。xilinx主机接口没有此信号线,从机有。初学者就默认为0吧。
- 主机(master)控制的信号
- 写数据通道信号
- 主机(master)控制的信号
- WDATA 数据信号线,传输数据信息。
- WSTRB 数据总线有效字节控制。比如32位的总线,WSTRB等于
4'b0010
,那么代表WDATA[15:8]
中的数据有效。其他无效。如果要求WDATA[31:0]
32位全有效,那么WSTRB就应该等于4'b1111
. - WLAST 置高表示突发数据中的最后一个数据。
- WUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
- WVALID
- 从机(slave)控制的信号
- WREADY
- 主机(master)控制的信号
- 写应答通道信号
- 主机(master)控制的信号
- BREADY
- 从机(slave)控制的信号
- BID 交易标识符
- BRESP
- OKEY 0 正常访问成功
- EXOKEY 1
- SLVERR 2 从机错误
- DECERR 3 解码错误,比如没有从机的地址。
- BUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
- BVALID
- 主机(master)控制的信号
- 读地址通道信号
- 主机(master)控制的信号
- ARID 读地址通道信号的意义跟写地址通道的相似。
- ARADDR
- ARLEN
- ARSIZE
- ARBURST
- ARLOCK
- ARCACHE
- ARPROT
- ARQOS
- ARUSER
- ARVALID
- 从机(slave)控制的信号
- ARREADY
- ARREGION
- 主机(master)控制的信号
- 读数据通道信号
- 从机(slave)控制的信号
- RREADY
- 从机(master)控制的信号
- RID 读数据通道信号的意义跟写数据通道的相似。
- RDATA
- RRESP
- RLAST
- RUSER
- RVALID
- 从机(slave)控制的信号
读写时序和握手时序
关于AXI4.0-full
的读写时序和握手时序请参看AXI总线介绍。
AXI-lite主从交互仿真
- vivado创建AXI外设。
- 添加主从接口。
- 编写仿真tb文件。仿真相关的文件见附件axi-full.zip。
下图是AXI-full主从交互的时序图,主机先通过总线写数据,然后通过读总线将其写入的数据读了出来。图中画圆圈的地方是每个通道第一次握手的时序(后续的握手时序没有标记)。
文档参考
- IHI0022G_amba_axi_protocol_spec.pdf
- IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf
- ug761_axi_reference_guide.pdf
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。