写在前面:AMBA总线协议在SOC设计中的地位是不言而喻的,从本篇文章开始,将会依托于官方手册详解AXI4、AXI4-LITE、AHB、APB等目前最常见的AMBA总线协议,梳理一下其中常用的知识点。本篇为AXI4协议的开篇,更多解析将会在之后继续分享给大家。
AXI4协议是amba协议中比较新的一个协议,目前应用的也很广泛。例如在ZYNQ核的ARM与FPGA部分信息交互中就大量应用了AXI4总线协议,官方手册给出了以下几点的AXI协议特点:
- 地址/控制信号与数据处于不同阶段
- 支持非对齐数据传输
- 支持突发式传输,且仅需提供首地址
- 独立的读写通道,可提供低资源消耗DMA
- 支持发送多个待执行地址(outstanding address)
- 支持乱序数据包收发
- 允许插入寄存器以保证时序收敛
以上特点我们先按下暂且不表,在之后会通过仿真的方式逐步向大家展现上面的关键地方。AXI区别于其他总线的地方在于它的通道分离特性,AXI4协议具有五个独立的通道:读地址通道、读数据通道、写地址通道、写数据通道、写回应通道。通道分离带来了很多优点,比如地址通道与数据通道分离,使得AXI4总线当中的控制、地址信息与数据信息无固定的相位关系,支持在未收到回应时发送多个待执行操作的地址信息,这样的设置有利于流水线操作,提升传输效率与速度;当多个slave操作完成时间不一致时,完成顺序与Master的控制顺序可以不同,这就使得AXI总线具有了乱序数据包收发的特性,等等。
本篇文章主要说明解释AXI协议中的以下要点:
- 通道信号定义总览
- AXI4总线中的握手机制
通道信号定义总览
下面是AXI4中各通道的信号表,笔者将读与写操作中对应的信号放在了一行,大家可以观察一下信号的规律:
通道 | 信号 | 方向 | 描述 | 通道 | 信号 | 方向 | 描述 |
---|---|---|---|---|---|---|---|
Global | ACLK | 全局时钟 | |||||
Global | ARESETn | 全局复位,低有效 | |||||
WADDR | AWID | M2S | 写地址ID号 | RADDR | ARID | M2S | 读地址ID号 |
WADDR | AWADDR | M2S | 写地址 | RADDR | ARADDR | M2S | 读地址 |
WADDR | AWLEN | M2S |