当前位置:首页 > AMBA AXI总线学习笔记
需要注意的是任何传输的SIZE都不能超过数据总线的宽度。
4、 AXI协议定义了三种突发式读写的类型:固定式的突发读写、增值式突发读写、包装式突发读写。用信号ARBURST或AWBURST来选择突发式读写的类型。具体信息如下图:
(1)固定式突发读写是指地址是固定的,每一次传输的地址都不变。这样的突发式读写是重复的对一个相同的位置进行存取。例如FIFO。
(2)增值式突发读写是指每一次读写的地址都比上一次的地址增加一个固定的值。
(3)包装式突发读写跟增值式突发读写类似。包装式突发读写的地址是包数据
的低地址当到达一个包边界。 包装式突发读写有两个限制:
1起始地址必须以传输的size对齐。 ◇
2突发式读写的长度必须是2、4、8或者16。 ◇
5、关于一些地址的计算公式。 Start_Address 主机发送的起始地址
Number_Bytes 每一次数据传输所能传输的数据byte的最大数量 Data_Bus_Bytes 数据总线上面byte lanes的数量 Aligned_Address 对齐版本的起始地址
Burst_Length 一次突发式读写所传输的数据的个数
Address_N 每一次突发式读写所传输的地址数量,范围是2-16 Wrap_Boundary 包装式突发读写的最低地址 Lower_Byte_Lane 传输的最低地址的byte lane Upper_Byte_Lane 传输的最高地址的byte lane INT(x) 对x进行向下取整 下面是计算公式: Start_Address = ADDR Number_Bytes = 2SIZE Burst_Length = LEN + 1
Aligned_Address = (INT(Start_Address / Number_Bytes) ) x Number_Bytes Address_1 = Start_Address
Address_N = Aligned_Address + (N – 1) x Number_Bytes
Wrap_Boundary = (INT(Start_Address / (Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length)
如果有Address_N = Wrap_Boundary + (Number_Bytes x Burst_Length),则后面的公式成立Address_N = Wrap_Boundary。 第一次突发式读写:
Lower_Byte_Lane = Start_Address - (INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes
Upper_Byte_Lane = Aligned_Address + (Number_Bytes - 1) -
(INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes 除了第一次读写之后的读写:
Lower_Byte_Lane = Address_N – (INT(Address_N / Data_Bus_Bytes)) x Data_Bus_Bytes
Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1 DATA[(8 x Upper_Byte_Lane) + 7 : (8 x Lower_Byte_Lane)]。
第五章
本章描述了AXI协议支持的系统级的Cache和保护单元。 1、ARCACHE[3:0]和AWCACHE[3:0]的编码如下图:
在一些情况下,信号AWACAHE可以用来确定哪个部件来提供写响应。如果写事务被指定为bufferable ,那么他接受来自桥或者系统级的cache提供的写响
应。如果事务被指定为non-bufferable,那么写响应必须有最终目的源提供。 2、AWPROT或者ARPROT信号提供三种级别的存取保护: (1) 正常存取或者特权存取, ARPROT[0] 和 AWPROT[0]
(2) 安全性存取或者没有安全性存取, ARPROT[1] 和 AWPROT[1] (3) 指令存取或者数据存取 ARPROT[2] 和 AWPROT[2] 信号ARPROT[2:0] 和 信号AWPROT[2:0]的编码如下图:
第六章
本章描述了AXI协议工具的独占式存取和锁存取机制。
1、当对自动存取时能之后,可以通过信号ARLOCK[1:0]或信号AWLOCK[1:0]来配置独占式存取和锁存取。编码如下图:
共分享92篇相关文档