目录
AXI是什么
AXI为ARM AMBA的一部分,是一种微控制总线。
2003年,AMBA3.0发布,其中包含第一版AXI;
2010年,AMBA4.0发布,其中包含第二版AXI,称为AXI4;
时至今日,AXI已经有了AXI5版本,可以在ARM官方网站下载到源文件,可自行下载:
ARM官网中各版本AMBA文件
AXI包括三种接口形式:
名称 | 特点 |
---|---|
AXI4 | 高性能的内存映射需求 |
AXI4-Lite | 简单的、低吞吐量的内存映射通信(例如,控制寄存器和状态寄存器) |
AXI4-Stream | 用于高速流数据 |
AXI是如何工作的
AXI是内存映射接口,在一个地址周期内,允许至多256个数据的传输,无论是AXI4还是AXI4-Lite接口,都有五个不同的通道。
数据可以同时在主机和从机之间的两个方向上移动,并且数据传输的大小可以变化。AXI4中的限制是最多256个数据传输的突发事务。AXI4-Lite只允许每个事务传输1个数据。主从机之间数据读取、写入的通道架构如下所示。
需要注意的事,上面虽是两张图,只是为了方便区分读、写操作对应的通道,实际上主、从机应该同时具有5个通道,主机发起读写请求,从机响应主机的读写请求。
AXI-Lite定义
AXI-Lite的关键特性
- 所有的传输突发长度均为1
- 所有的数据访问都使用数据总线的全宽度(只能是32-bitsZ或64-bits)
- 所有的访问都是不可修改的,不可缓冲的
- 不支持独占访问
AXI-Lite信号列表
前缀解析
AW:Address Write,写请求通道,对应图中写地址通道
W : Write,写数据通道
B: 写响应通道
AR: Address Read,读地址通道
R: Read,读数据通道
AXI-Lite信号时序
时钟和复位
握手机制
同前缀的 VALID/READY信号为一组握手信号,握手协议用来传输地址、控制信息、数据等内容。
这种双向的协议,能够保证主、从机都能够控制传输速率。源端产生VALID信号,指示现在的地址、控制信息、数据都是有效的;目的端产生READY信号,指示现在可以接收信息了,传输发生在二者均为HIGH的时候。
主、从机之间的接口,输出->输入接口之间,一定不能有组合逻辑路径
READY和VALID信号,谁先“伸出手”都无所谓,READY可以在先,VALID可以在先,也可以同时。
下图是同时伸手的时序样例:
写请求通道(AW)
控制信号如下两个。
主机只有在要产生有效请求时才能拉高AWVALID信号,一旦拉高,就得保持到从机拉高AWREADY后的时钟上升沿。
AWREADY的默认值是高是低都可以,推荐默认值为高。
当 AWREADY为高是,从机必须能够接收提供给他的所有有效请求。
不建议AWREADY 默认为LOW是因为,它强制传输至少需要两个周期,一个用于拉高AWVALID,另一个用于拉高AWREADY