一、什么是AXI?
AXI(高级可扩展接口),是ARM,AMBA的一部分
AMBA:高级微控制器总线架构:
是1996年首次引入的一组微控制器总线:开放的片内互联的总线标准,能在多主机设计中实现多个控制器和外围设备之间的连接和管理。
AXI三种类型:
AXI4(AXI4-Full):用于高性能的存储器映射需求:
(存储器映射:主机对从机进行读写时,指定一个对应系统的存储器空间地址)
AXI4-Lite:简化版的AXI4,用于低吞吐率的存储器映射的通信 AXI-GPIO AXI-TIMER
AXI4-Stream(ST):用于高速的数据流通信,不需要地址映射
二、AXI优势
生产力
灵活性 :AXI4(支持256突发)和AXI-Lite(1个数据)都属于存储器映射,AXI-ST不属于存储器映射,突发长度不受限
可获得性
三、AXI的工作方式
AXI4和AXI-Lite包含五个独立通道:
读地址通道
读数据通道
写地址通道
写数据通道
写响应通道
AXI4:读写通道分离,支持读写同时进行,突发最大256
AXI4-lITE:和AXI4类似,不支持突发传输
AXI4-ST:只有一个单一通道,单向,与AXI4写通道类似,传输长度不受限制
四、AXI的通道定义
每一个独立的通道都包含一组信息信号:VALID和READY,用于提供双向的握手机制
信息的源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效;目的端使用READY信号表示什么时候可以接受信息
读:
读数据和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据
读地址通道和写地址通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息
读数据通道由从机发送给主机,包含了读数据和读响应的信息。读响应的信息用于表示读传输是否完成。
写:
写数据通道由主机发送给从机,包含写数据,通过WSTRB信号表示当前数据的那个字节有效
写响应通道由从机发送给主机,包含了写响应信号,表示当前写操作是否完成
五、接口信号描述
5.1写地址通道:
AWID:指定某些特殊传输的任务的顺序
AWLOCK:区分正常传输和独有传输
AWCACHE:总线中的存储类型
AWPROT:保护类型
AWQOS:服务质量
AWREGION:区域ID
AWUSER:用户定义信号,自定义信号
AWADDR:写地址,突发传输首地址
AWLEN:突发长度,INCR模式下,=AWLEN+1
AWSIZE:位宽,0=1byte,2=2bytes,3=4bytes
AWBURST:突发类型,FIXED:固定地址,所有数据写进一个地址; INCR:自增,地址累加; WRAP:回环,地址达到上限后回环累加
AWVALID:主发从收
AWREADY:从发主收,建议一直为高
5.2写数据通道:
WID:写数据ID
WUSER:用户定义信号,自定义信号
WDATA:写数据
WSTRB:频闪信号(byte mask)
WLAST:表示最后一个数据
WVALID:主发从收
WREADY:从发主收,建议一直为高
5.3写响应通道:
BID:响应ID
BUSER:用户定义信号,自定义信号
BRESP:写响应,从发主收,表示传输状态:OKEY:正常ok EXOKEY:独占式OK SLVERR:从机错误 DECERR:解码错误
BVALID:从发主收
BREADY:主发从收
5.4读地址通道
ARID:指定某些特殊传输的任务的顺序
ARLOCK:区分正常传输和独有传输
ARCACHE:总线中的存储类型
ARPROT:保护类型
ARQOS:服务质量
ARREGION:区域ID
ARUSER:用户定义信号,自定义信号
ARADDR:读地址,突发传输首地址
ARLEN:突发长度,INCR模式下,=AWLEN+1
ARSIZE:位宽,0=1byte,2=2bytes,3=4bytes
ARBURST:突发类型,FIXED:固定地址,所有数据写进一个地址; INCR:自增,地址累加; WRAP:回环,地址达到上限后回环累加
ARVALID:主发从收
ARREADY:从发主收,建议一直为高
5.5读数据通道
RID:读数据ID
RUSER:用户定义信号,自定义信号
RDATA:读数据
RRESP:读响应,四种状态
RLAST:表示最后一个数据
RVALID:从发主收
RREADY:主发从收
六、接口具体描述
复位期间:
master:确保ARVALID、AWVALID和WVALID为低
slaver:确保RVALID和BVALID为低
握手机制:
主机与从机都可以控制传输速率,只有当VALID和READY都为高时,传输才会发生。
READY可以提前拉高,建议提前拉高,提高传输效率
结束标志:
WALAT和RLAST在最后一拍拉高
通道关系:
写响应在最后一个写数据传输后面
读数据在读地址后面
七、AXI-Lite
限制:
突发长度=1
数据位宽32或者64
访问不能修改与缓存
不支持独占式访问(lock)
接口:
少了很多,32或64位宽