AXI介绍:
什么是AXI?
AXI(高级可扩展接口):是ARM AMBA的一部分。
AMBA(高级微控制器总线架构):是1996年首次引入的一组微控制器总线;开放的片内互联的总线标准,能在多主机涉及中实现多个控制器和外围设备之间的连接和管理。
AXI接口的三种类型:
- AXI4(AXI-Full):用于高性能的存储器映射需求;
注:存储器映射:主机在对从机进行读写操作时,指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作。一般用于大量数据的传输。
- AXI4-Lite:简化版的AXI4接口,用于低吞吐率存储器映射的通信,一般用于寄存器的配置、读写等。
- AXI4-Stream(ST):用于高速的流数据通信。一般用于视频流信息的传输。
三者的区别:AXI4和AXI4-Lite都属于存储器映射的接口,在对这两个接口进行通信的时候,主机需要指定读写的地址;而AXI-Stream时流数据,不需要指定读写的地址。AXI4的功能最为丰富,并且占用的资源的也是最多的;AXI4-Lite相当于全面简化的AXI4接口;AXI-Stream不是存储器映射的接口,用于数据的传输。
AXI的优点:
- 生产力
- 灵活性
- AXI4(支持突发256个数据)属于存储器映射
- AXI4-Lite(单次只能传输1个数据)属于存储器映射;
- AXI-Stream不属于存储器映射,它的突发长度不受限制。
- 可获得性
AXI的工作方式:
AXI4和AXI-Lite包含5个独立的通道
- 读地址通道
- 写地址通道
- 读数据通道
- 写数据通道
- 写响应通道
AXI4:由于读写地址通道是分离的,所以支持双向同时传输;突发长度最大为256;
AXI4-Lite:和AXI4比较类似,但是不支持突发传输;
AXI4-Stream:只有一个单一的数据通道,和AXI4的写数据比较类似,其突发长度不受限制。
AXI InterConnect和AXI SmartConnect:
这两个IP核都是用于连接单/多个存储器映射的AXI Master和单/多个存储器映射的AXI Slave,可以用于连接AXI4和AXI-Lite,但是不能连接AXI-Stream,因为它不是存储器映射的接口。
连接形式可以是:
- 一对一
- 多对一
- 一对多
- 多对多
在多对一的时候就需要在互联模块中仲裁,决定哪个主机数据传入从机;
在一对多的时候就需要在互联模块中路由,决定主机的数据传入哪个从机;
AXI的通道定义:
每一个独立的通道都包含一组信息信号、VALID信号和READY信号,用于提供双向的握手机制。
信息源端使用VALID信号表示当前通道地址、数据和控制信号什么时候有效;
目的端使用READY信号表示什么时候可以接收信息;
读数据通道和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据。
读数据通道和写数据通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息;
读数据通道有从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读传输是否操作完成;
写数据通道由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据的哪个字节有效;
写响应通道由从机发送给主机,包含了写响应信号,用于表示当前写操作是否完成。