AXI协议详解

AXI协议简介
Advanced eXtensible Interface(AXI)是为了满足高性能系统设计而定义的一套独立通道协议,首次是在2003年发布的AMBA3标准中出现,经历AMBA4,目前已经到达AMBA5版本。
AXI包括AXI与AXI-Lite两个版本。
AXI满足如下的特性:

– 适合于高带宽,低延迟的设计

  • 不需要通过复杂的桥转换就可以实现高频下的操作
  • 满足多种组件的接口要求
  • 适合于高初始化访问延迟的内存控制器
  • 支持灵活的实现互联结构
  • 可以向下兼容AHB,APB等接口

–关键特性如下:

  • 分离的地址/控制通道与数据通道
  • 支持非对齐传输,使用byte strobes指示
  • 支持burst传输,只需要发送起始地址即可
  • 分离的读写数据通道,可以实现低消耗的直接内存访问
  • 支持多种outstanding传输
  • 支持out-of-order乱序传输
  • 允许插入寄存器片以满足时序要求

AXI结构
AXI协议详解_第1张图片
AXI作为ARM标准的接口协议,主要应用在片内系统互联设计中。可实现不同IP之间通过标准的互联总线进行交互。片内各协议之间都可以实现方便的协议转换,完成系统内部的所有IP的通信。
AXI协议详解_第2张图片
AXI分为5个独立的传输通道,分别是AR,R,AW,W,B通道。
AR 为读地址通道,传输读操作的地址与对应控制信息;
R 为读数据通道,传输AR通道对应的读回数据同时也传输slave的响应信息;
AW 为写地址通道,传输写操作的地址与对应的控制信息;
W 为写地址通道,传输写数据相关信息;
B 为写响应通道,传输slave返回的写响应信息;
五个通道为独立的通道,可大大提供系统传输性能。需要注意读操作有2个通道,写操作有3个通道,读通道中没有单独的响应通道,读响应与读数据共用一个通道传输,都是slave一块返回没有必要分离。
AXI信号
全局信号:
AXI协议详解_第3张图片
写地址通道信号:
AXI协议详解_第4张图片
写数据通道信号:
AXI协议详解_第5张图片
写响应通道信号:
AXI协议详解_第6张图片
读地址通道:
AXI协议详解_第7张图片
读数据通道:
AXI协议详解_第8张图片
其他信号:
AXI协议详解_第9张图片
AXI握手机制
AXI协议详解_第10张图片
AXI通过VALID和READY握手的机制实现主从机之间的通讯。 Valid 表示发送的请求或者响应是否有效; Ready表示是否准备好接受请求或者响应; 当拉低valid或者ready时表示主机或者从机处于busy状态,延时传输状态。
每个通道都有对应的valid和ready信号:
AXI协议详解_第11张图片
AXI各通道依赖关系
下图中单箭头表示两个信号之间没有特定的依赖关系,但是设计的时候推荐使用这种前后关系;双箭头表示两个信号之间是有依赖关系的,必须要等前面的信号有效之后才能使能后面的信号。
AXI协议详解_第12张图片
对于读传输,ARVALID,ARREADY没有先后关系,但是RVALID信号需要等待前两个有效之后才能有效。这样也是符合传输顺序的,因为只有读地址等请求信号有效的时候,slave才能返回对应读数据,通过RVALID表示传输有效。RREADY不依赖与其他信号。
AXI协议详解_第13张图片
对于写传输中,写地址通道中的AWVALID,AWREADY和写数据通道中的WVALID,WREADY没有相互依赖的关系,完全是独立的。BVALID信号需要依赖于WVALID和WREADY信号,因为BVALID信号表示写操作的完成。BREADY信号可以不依赖于其他信号。
注意在AXI3中没有定义BVALID与AWVALID,AWREADY之间的关系,也就是他们之间是没有关系的,但是实际设计的时候,我们也会指定BVALID在他们之后有效,因为如果地址是无效的,对应的后面写数据与写响应都不应该有效。
AXI协议详解_第14张图片
在AXI4、AXI5中定义了BVALID需要在AWVALID,AWREADY,WVALID,WREADY之后有效。
另外需要注意WVALID中包含WLAST,因为BVALID需要在burst传输中最后一拍传输之后再进行响应。
设计注意点:对于协议中没有相互依赖关系的信号,在设计的过程中不要设计成有依赖关系的逻辑,这样很容出现master设计与slave都出现等待对方信号有效的情况,造成逻辑上的相互等待。
原文

你可能感兴趣的:(AMBA,其他)