参考链接https://blog.youkuaiyun.com/choose123/article/details/80055113
https://blog.youkuaiyun.com/lkiller_hust/article/details/51344819
1、协议简介
zynq内部有三种AXI总线:
(1)AXI4: 主要面向高性能地址映射的需求,
(2)AXI4-LITE: 简单地吞吐映射通信总线,轻量级的地址映射单次传输接口,占用很少的逻辑单元
(3)AXI4-Stream: 面向高速流的数据传输,去掉了地址项,允许无限制的数据突发传输。
AXI4及AXI4-LITE总线具有相同的组成,分为五个通道,分别为:
- 读地址通道,包含ARVALID, ARADDR, ARREADY信号;
- 写地址通道,包含AWVALID,AWADDR, AWREADY信号;
- 读数据通道,包含RVALID, RDATA, RREADY, RRESP信号;
- 写数据通道,包含WVALID, WDATA,WSTRB, WREADY信号;
- 写应答通道,包含BVALID, BRESP, BREADY信号;
- 系统通道,包含:ACLK,ARESETN信号;
ACLK 为AXI的总线时钟,
ARESETN 是AXI总线的复位信号,低电平有效,
读写数据及读写地址的信号宽度都为32bit;
READY和VALID是对应的通道握手信号,
WSTRB为1的bit对应WDATA有效数据字节,WSTRB宽度为32bit/8=4bit;
BRESP与RRESP分别为写回应信号,读回应信号,宽度为2bit, 0代表成功,其它为错误。
AXI协议将各个通道分开,各个通道都有自己的握手协议,且互不干扰
valid和ready信号同时为高的时候,数据有效,时序如下:
突发方式读写AXI-FULL
(1)读
当地址出现在地址总线后,传输的数据将出现在读数据通道上。设备保持VALID 为低直到读数据有效。为了表明一次突发式读写的完成,设备用 RLAST 信号来表示该burst最后一个被传输的数据。
(2)写
这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送该burst最后一个数据时,WLAST 信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。
AXI-STREAM总线的组成有:
- ACLK:总线时钟
- ARESETN:总线复位,低电平有效
- TREADY信号:从机告诉主机做好传输准备
- TVALID:主告诉从数据传输有效
- TDATA:数据,可选宽度32,64,128,256bit
- TUSRE:用户自定义信号,宽度128bit
时序如下:
2、 接口
ZYNQ PS中共有三种AXI接口:
(1)AXI-GP接口,4个,通用AXI接口,2个32bit主设备接口,2个bit从设备接口,该接口可访问PS的片内外设。
(2)AXI-HP接口,4个,高性能带宽标准接口,PL模块作为主设备连接,主要作为PL访问PS上的存储器,即DDR和OCM(on chip memory)
(3)AXI-ACP接口,1个,arm多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。
三种接口在PS中的位置如下图所示: