AMBA-AXI协议详解

AXI协议详解(1)-协议简介
https://zhuanlan.zhihu.com/p/574017386
AXI协议详解(2)-信号描述
https://zhuanlan.zhihu.com/p/576906832
AXI协议详解(3)-通道握手
https://zhuanlan.zhihu.com/p/577287559

AXI协议详解0:介绍与资料梳理
https://zhuanlan.zhihu.com/p/469042371

AMBA学习
https://www.zhihu.com/column/c_1663245806869291008

接口介绍

AXI中的传输类型

重要信号

1. AxLEN 突发传输长度

AxLEN表示突发长度,即读写事务中数据传输的确切数量,此信息确定与该地址相关的数据传输的数量。
突发长度的计算公式是:突发长度=AxLEN+1。

AXI3和AXI4/5的突发长度最大值略有不同,如下所示:

  • AXI3:所有突发类型都支持1~16的突发长度。
  • AXI4/5:INCR突发类型支持1256的突发长度,其他类型还是只支持116的突发长度。

AXI有以下规则来管理突发的使用:

  • 对于WRAP类型突发,突发长度必须为2、4、8或16。
  • 突发不能跨越4KB地址边界。(page大小为4K,4KB 边界即addr[11:0]=0的地址)
  • 不支持提前终止突发。
    • 注意:没有任何组件可以提前终止突发,然而为了减少写突发中的数据传输数量,Master可以通过取消所有WSTRB来禁用进一步的写。这种情况下Master必须在突发中完成剩余的传输(但是写的数据无效)。在读突发中,Master可以丢弃读取的数据,但它也必须完成突发中的所有传输。
    • 注意:丢弃不需要的读数据可能导致访问读敏感设备(如FIFO)时丢失数据。当访问这样的设备时,Master必须使用与所需数据传输的大小完全匹配的突发长度。

在AXI4/5中,具有INCR突发类型和长度大于16的事务可以转换为多个较小的突发,即使事务属性表明该事务是不可修改的。(请参阅关于CACHE内存属性的更改。)这种情况下,生成的突发必须保留与原始交易相同的事务特征,但是注意这些事务的突发长度被减少了,突发地址也被适当地调整了。

注意:为了实现AXI3兼容性或者保证QoS性能,需要能够将较长的突发分解为多个较短的突发。

2. AxSIZE 突发传输宽度

指的是一个 data transfer(周期) 里面有多少 bytes. ARSIZE[2:0]AWSIZE[2:0] 就是用于设置这个属性的。
AxSIZE表示的数据宽度不能超过数据总线宽度。

AxBURST

突发传输类型
(1)FIXED

该地址在每次传输中都是相同的。
有效的字节通道对于突发中的所有节拍(beat)都是恒定的。然而在这些字节通道中,对于突发中的每个节拍,断言了WSTRB的实际字节可能是不同的。
这种突发类型用于重复访问同一位置,例如在加载或清空FIFO时。

(2)INCR

突发中每次传输的地址都是前一次传输地址的增量。
增量值取决于传输的大小。例如在一个大小为4Byte的突发中,每个传输的地址是前一个地址加4。
这种突发类型用于访问普通顺序内存。

(3)WRAP

WRAP突发类似于INCR突发,不同之处在于如果达到了地址上限,地址就会回卷到较小的地址。以下限制适用于WRAP突发:

起始地址必须与每次传输的大小一致。
突发的长度必须为2、4、8或16次传输。
这种突发类型用于缓存线路访问。

一些事项

概念 Transaction、Burst、Beat(Transfer)

Transaction是包含整个burst的传输,包括address/data/response。Transfer值的是单个信息的传输,比如一个address或一个data。
一次传输即握手成功就叫做一次transfer,有些场景也会叫做一次beat。而Transaction指的是传输一组数据所发生的所有的交互。用官方的话来说如下:

A transfer is a single exchange of information, with one VALID and READY handshake.
A transaction is an entire burst of transfers, containing an address transfer, one or more data transfers, and, for write sequences, a response transfer.

4k边界

Burst不得跨4KB边界,防止跨越Slave边界

这是为了避免一个burst访问两个slave。它还限制了slave需要支持的地址递增的数量。

Outstanding传输

表示正在进行中的传输,master在当前transaction任务完成之前,就可以开始进行下一个transaction,因此系统中可能存在多个outstanding的transaction。即一个transaction已经发出,但还没有得到response。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值