参考:https://blog.youkuaiyun.com/bleauchat/article/details/96891619
信号描述
表1 全局信号
信号名 | 来源 | 描述 |
---|---|---|
ACLK | system clock | 全局时钟信号 |
ARESTn | system reset | 全局复位信号,低有效 |
表2 写地址通道信号
信号名 | 来源 | 描述 |
---|---|---|
AWID | master | 写地址ID(用于区分该地址属于哪个写地址组) |
AWADDR | master | 写地址 |
AWLEN | master | 突发长度 |
AWSIZE | master | 突发尺寸(每次突发传输的最长byte数) |
AWBURST | master | 突发方式(FIXED,INCR,WRAP) |
AWCACHE | master | 存储类型(标记系统需要的传输类型) |
AWPROT | master | 保护模式 |
AWQOS | master | QoS标识符 |
AWREGION | master | region标识符(当slave有多种逻辑接口时标识使用的逻辑接口) |
AWUSER | master | 用户自定义信号 |
AWVALID | master | 写地址有效信号(有效时表示AWADDR上地址有效) |
AWREADY | master | 写从机就绪信号(有效时表示从机准备好接收地址) |
表3 写数据通道信号
信号名 | 来源 | 描述 |
---|---|---|
WDATA | master | 写数据 |
WSTRB | master | 数据段有效(标记写数据中哪几个8位字段有效) |
WLAST | master | last信号(有效时表示当前为突发传输最后一个数据) |
WUSER | master | 用户自定义信号 |
WVALID | master | 写有效信号(有效时表示WDATA上数据有效) |
WREADY | slave | 写ready信号(有效时表示从机准备好接收数据) |
表4 写响应通道信号
信号名 | 来源 | 描述 |
---|---|---|
BID | slave | 响应ID |
BRESP | slave | 写响应 |
BUSER | slave | 用户自定义信号 |
BVALID | slave | 写响应信号有效 |
BREADY | master | 写响应ready(主机准备好接受写响应信号) |
表5 读地址通道信号
信号名 | 来源 | 描述 |
---|---|---|
ARID | master | 读地址ID |
ARADDR | master | 读地址 |
ARLEN | master | 突发长度 |
ARSIZE | master | 突发尺寸(每次突发传输的byte数) |
ARBURST | master | 突发类型(FIXED,INCR,WRAP) |
ARCACHE | master | 存储类型 |
ARPROT | master | 保护类型 |
ARQOS | master | QoS标识符 |
ARREGION | master | 区域标识符 |
ARUSER | master | 用户自定义 |
ARVALID | master | 读地址有效(有效时表示ARADDR上地址有效) |
ARREADY | slave | 写有效信号(有效时表示从机准备好接收读地址) |
表6 读数据通道信号
信号名 | 来源 | 描述 |
---|---|---|
RID | slave | 读ID标签 |
RDATA | slave | 读数据 |
RRESP | slave | 读响应 |
RLAST | slave | 有效时表示为突发传输的最后一个 |
RUSER | slave | 用户自定义 |
RVALID | slave | 读数据有效信号 |
RREADY | master | 主机就绪信号(有效时表示) |
表7 低功耗接口信号
信号名 | 来源 | 描述 |
---|---|---|
CSYSREQ | Clock controller | 该信号有效时,系统退出低功耗模式 |
CSYSACK | Peripheral device | 退出低功耗模式应答信号 |
CACTIVE | Peripheral device | 外设申请时钟信号 |
读写传输
读操作顺序
写操作顺序
数据结构
突发长度(AxLEN)
突发长度为每次突发传输的传输次数,范围限制1~16(AXI4增量模式1~256)且不能跨越4kb的地址空间,每次突发传输不允许提前终止(可以通过关闭所有数据字段的方式使一段传输数据无效,但传输行为必须完成)。每次传输的突发长度为AxLEN[3:0] + 1(AXI增量模式AxLEN[7:0] + 1)
- ARLEN[7:0]:读地址通道的突发长度接口
- AWLEN[7:0]:写地址通道的突发长度接口
对于回卷模式突发传输,突发长度仅能是2,4,8或16。
突发尺寸(AxSIZE)
突发尺寸为每次传输的byte数量,与突发传输的地址预测相关性很强。每次的突发尺寸不能超过数据通道的宽度;若突发尺寸小于数据通道宽度,需要指定哪些位数是有效的。突发尺寸为2^AxSIZE[2:0]。
- ARSIZE[2:0]:读地址通道突发尺寸
- AWSIZE[2:0]:写地址通道突发尺寸
突发类型(AxBURST)
AXI支持三种突发类型:
- FIXED(AxBURST[1:0]=0b00):固定突发模式,每次突发传输的地址相同
- INCR(AxBURST[1:0]=0b01):增量突发模式,突发传输地址递增,递增量与突发尺寸相关
- WRAP(AxBURST[1:0]=0b10):回卷突发模式,突发传输地址可溢出性递增,突发长度仅支持2,4,8,16。地址空间被划分为长度【突发尺寸*突发长度】的块,传输地址不会超出起始地址所在的块,一旦递增超出,则回到该块的起始地址
存储类型(AxCACHE)
AXI4可支持不同的存储类型,AxCACHE[3:0]用于描述不同的存储类型,如下图所示
ARCACHE[3:0] | AWCACHE[3:0] | Memory type |
---|---|---|
0000 | 0000 | Device Non-bufferable |
0001 | 0001 | Device Bufferable |
0010 | 0010 | Normal Non-cacheable Non-bufferable |
0011 | 0011 | Normal Non-cacheable Bufferable |
1010 | 0110 | Write-through No-allocate |
1110 (0110) | 0110 | Write-through Read-allocate |
1010 | 1110 (1010) | Write-through Write-allocate |
1110 | 1110 | Write-through Read and Write-allocate |
1011 | 0111 | Write-back No-allocate |
1111 | (0111) 0111 | Write-back Read-allocate |
1011 | 1111 (1011) | Write-back Write-allocate |
1111 | 1111 | Write-back Read and Write-allocate |