AXI4-lite协议介绍
AXI4-lite
是AXI4-full
的简化版。用于简单、低吞吐量的内存映射通信。主要用于内核和外设寄存器之间的通信。功能类似STM32中外设与CPU之间的通信时使用的协议,比如当访问串口的数据寄存器时,只访问四个字节的数据,所以使用AXI4-lite
就特别合适。再比如,在PL
写一个用于PS
端操作的外设时,其外设寄存器一般通过AXI4-lite
总线和PS
交互。
AXI4-lite
总线协议的特性如下:
- 数据总线只能是32位或者64位。
- 每次传输只能传输一个数据。
- 所有访问都是不可修改(Non-modifiable),不可缓冲(Non-bufferable)。
- Exclusive 访问不支持。
信号线详细描述
AXI4-lite
总线协议总共包括21条信号线。每个通道都有其自己的双向握手机制信号线xxVALID
和xxREADY
,关于双向握手机制,见AXI总线介绍。下面是信号线的详细描述。
- 全局信号
- ACLK 全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变化。
- ARESETn 全局复位信号,低电平有效。在复位期间,所有的
xxVALID
信号必须复位为低电平。其他的信号可以是任意值。
- 写地址通道信号
- 主机(master)控制的信号
- AWVALID
- AWADDR 地址信号线,传输地址信息。
- AWPROT 访问权限信号线,xilinx建议赋值为
3'b000
.xilinx IP 一般忽略此信号。
- 从机(slave)控制的信号
- AWREADY
- 主机(master)控制的信号
- 写数据通道信号
- 主机(master)控制的信号
- WVALID
- WDATA 数据信号线,传输数据信息。
- WSTRB 数据总线有效字节控制。比如32位的总线,WSTRB等于
4'b0010
,那么代表WDATA[15:8]
中的数据有效。其他无效。如果要求WDATA[31:0]
32位全有效,那么WSTRB就应该等于4'b1111
.
- 从机(slave)控制的信号
- WREADY
- 主机(master)控制的信号
- 写应答通道信号
- 主机(master)控制的信号
- BREADY
- 从机(slave)控制的信号
- BVALID
- BRESP 应答类型。
AXI4-lite
不支持EXOKAY
类型的响应。- OKEY 0 正常访问成功
- SLVERR 2 从机错误
- DECERR 3 解码错误,比如没有从机的地址。
- 主机(master)控制的信号
- 读地址通道信号
- 主机(master)控制的信号
- ARVALID
- ARADDR 地址信号线,传输地址信息。
- ARPROT 访问权限信号线,xilinx建议赋值为
3'b000
.xilinx IP 一般忽略此信号。
- 从机(slave)控制的信号
- ARREADY
- 主机(master)控制的信号
- 读数据通道信号
- 从机(slave)控制的信号
- RREADY
- 从机(master)控制的信号
- RVALID
- RDATA 数据信号线,传输数据信息。
- RRESP 同写应答信号
BRESP
。
- 从机(slave)控制的信号
读写时序和握手时序
关于AXI4.0-lite
的读写时序和握手时序请参看AXI总线介绍。
AXI-lite主从交互仿真
- vivado创建AXI外设。
- 添加主从接口。
- 编写仿真tb文件。仿真相关的文件见附件axi-lite.zip。
下图是AXI-lite主从交互的时序图,主机先通过总线写数据,然后通过读总线将其写入的数据读了出来。图中画圆圈的地方是每个通道第一次握手的时序(后续的握手时序没有标记)。
文档参考
- IHI0022G_amba_axi_protocol_spec.pdf
- IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf
- ug761_axi_reference_guide.pdf
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。