通信协议(AXI)

一、AXI简介

SoC片上总线尚处于发展阶段,不像微机总线那样成熟,目前还没有统一的标准,因此各大厂商和组织纷纷推出自己的标准,以便在未来的SoC片上总线标准中占有一席之地。ARM公司就在1995年推出了自己的总线——AMBA(Advanced Microcontroller Bus Architecture,高级微处理器总线架构)。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可重用性,非常适合于现代大规模集成电路设计自动化的要求。

AMBA3.0中新增加了一种总线——AXI(Advanced eXtensible Interface,高级扩展接口)。它是一种面向高性能、高带宽、低延迟的片内总线,它的总线结构如Figure 1所示。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的SoC设计的需求。

AXI三种类型
AXI4(AXI4-full):用于高性能的存储器映射需求;(存储器映射:主机在对从机进行读写操作时,指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作)。
AXI4-Lite:简化版的AXI4接口,用于低吞吐率存储器映射的通信。
AXI4-Stream(ST):用于高速的流数据通信。

AXI的优点:
生产力高,
灵活性:AXI4(支持突发256)和AXI4-Lite(1个数据)都属于存储器映射
AXI4-ST不属于存储器映射,他的突发长度不受限制
可获得性:

二、AXI的工作方式

AXI4和AXI4-Lite包含5个独立的通道
读地址通道
读数据通道
写地址通道
写数据通道
写响应通道

AXI4:由于读写地址通道是分离的,所以支持双向同时传输;突发长度最大256
AXI4-Lite:和AXI4比较类似,但是不支持突发传输
AXI4-Stream:只有一个单一数据通道,和AXI4的写数据通道比较类似;突发长度不受限制。

通信协议(AXI)_第1张图片
读事务图
通信协议(AXI)_第2张图片
写事务图

AXI InterConnect 和 AXI SmartConnect
这两个ip核都用于 连接单/多个存储器映射的AXI Master和单/多个存储器映射的AXI Slave

三、AXI的通道定义

每一个独立的通道都包含一组信息信号VALID信号READY信号,用于提供双向的握手机制。
信息源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效,目的端使用READY信号表示什么时候可以接收信息,读数据通道和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据。
读数据通道和写数据通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息
读数据通道由从机发送给主机,包含了读数据和读相应的信息,读响应的信号用于表示读传输是否操作完成。
写数据通道是由主机发给从机,包含了写数据,然后通过WSTRB信号表示当前数据的哪个字节有效。
写响应通道由从机发送给主机,包含了写响应信号,用于表示当前写操作是否完成。

四、AXI总线信号级描述

AXI总线和其他总线一样,具有很多的信号,其中包括全局信号、写地址通道信号、写数据通道信号、写响应通道信号、读地址通道信号、读数据通道信号、低功耗接口信号。本章的所有表都是以32位的数据总线、4位的写数据闸门、4位的ID段。
1.全局信号

信号 描述
ACLK Clock source 全局时钟信号
ARESETn Reset source 全局复位信号,低电平有效

2.写地址通道信号

信号 描述
AWID[3:0] 主机 写地址ID,这个信号是写地址信号组的ID tag,指定某些特殊传输任务的顺序
AWADDR[31:0] 主机 写地址。
AWLEN[3:0] 主机 突发式写的长度。此长度决定突发式写所传输的数据的个数。
AWSIZE[2:0] 主机 突发式写的大小。
AWBURST[1:0] 主机 突发式写的类型。
AWLOCK[1:0] 主机 锁类型。
AWCACHE[3:0] 主机 Cache类型。这信号指明事务的bufferable、cacheable、write-through、write-back、allocate attributes信息。
AWPROT[2:0] 主机 保护类型。
AWVALID 主机 写地址有效。1 = 地址和控制信息有效。0 = 地址和控制信息无效 ,这个信号会一直保持,直到AWREADY变为高。
AWREADY 设备 写地址准备好。这个信号用来指明设备已经准备好接受地址和控制信息了。1 = 设备准备好,0 = 设备没准备好

3.写数据通道信号

信号 描述
WID[3:0] 主机 写ID tag,WID的值必须与AWID的值匹配
WDATA[31:0] 主机 写的数据。
WSTRB[3:0] 主机 写阀门。WSTRB[n]标示的区间为WDATA[(8n)+7:(8n)]
WLAST 主机 写的最后一个数据。
**WVALID **主机 写有效,1 = 写数据和阀门有效,0 = 写数据和阀门无效
WREADY 设备 写就绪。指明设备已经准备好接受数据了,1 = 设备就绪吗,0 = 设备未就绪

4.写响应通道信号

信号 描述
BID[3:0] 设备 响应ID , 这个数值必须与AWID的数值匹配。
BRESP[1:0] 设备 写响应。这个信号指明写事务的状态。可能有的响应:OKAY、EXOKAY、SLVERR、DECERR。
BVALID 设备 写响应有效。1 = 写响应有效。0 = 写响应无效
BREADY 主机 接受响应就绪。该信号表示主机已经能够接受响应信息。1 = 主机就绪。0 = 主机未就绪

5.读地址通道信号

信号 描述
ARID[3:0] 主机 读地址ID。
ARADDR[31:0] 主机 读地址。
ARLEN[3:0] 主机 突发式读长度。
ARSIZE[2:0] 主机 突发式读大小。
ARBURST[1:0] 主机 突发式读类型。
ARLOCK[1:0] 主机 锁类型。
ARCACHE[3:0] 主机 Cache类型。
ARPROT[2:0] 主机 保护类型。
ARVALID 主机 读地址有效。信号一直保持,直到ARREADY为高。1 = 地址和控制信息有效。0 = 地址和控制信息无效
ARREADY 设备 读地址就绪。指明设备已经准备好接受数据了。1 = 设备就绪.0 = 设备未就绪

6.读数据通道信号

信号 描述
RID[3:0] 设备 读ID tag。RID的数值必须与ARID的数值匹配。
RDATA[31:0] 设备 读数据。
RRESP[1:0] 设备 读响应。这个信号指明读传输的状态:OKAY、EXOKAY、SLVERR。DECERR。
RLAST 设备 读事务传送的最后一个数据
RVALID 设备 读数据有效。1 = 读数据有效。0 = 读数据无效。
RREADY 主机 读数据就绪。1 = 主机就绪。0 = 主机未就绪

突发式的时序图如下:
当地址出现在地址总线后,传输的数据将出现在读数据通道上。设备保持VALID为低直到读数据有效。为了表明一次突发式读写的完成,设备用RLAST信号来表示最后一个被传输的数据。
通信协议(AXI)_第3张图片
设备会在第一次突发式读完成后处理第二次突发式读数据。也就意味着,主机一开始传送了两个地址给设备。设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据。
通信协议(AXI)_第4张图片
突发式时序图如下:
这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时,WLAST信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。
通信协议(AXI)_第5张图片

五、握手机制

所有的五个通道都是通过相同的VALID/READY握手处理来传输地址、数据和控制信息。双向握手的机制意味着主机和从机之间传输数据时,都可以控制传输的速率,只有当VALID和READY同时为高电平时,传输才会发生。

全部5个通道使用相同的VALID/READY握手机制传输数据及控制信息。传输源产生VLAID信号来指明何时数据或控制信息有效。而目地源产生READY信号来指明已经准备好接受数据或控制信息。传输发生在VALID和READY信号同时为高的时候。VALID和READY信号的出现有三种关系。

通信协议(AXI)_第6张图片
在箭头处信息传输发生。
(2) READY先变高VALID后变高。时序图如下:
通信协议(AXI)_第7张图片
同样在箭头处信息传输发生。
(3) VALID和READY信号同时变高。时序图如下
通信协议(AXI)_第8张图片
在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生。
2、通道之间的关系

地址、读、写和写响应通道之间的关系是灵活的。

例如,写数据可以出现在接口上早于与其相关联的写地址。也有可能写数据与写地址在一个周期中出现。

两种关系必须被保持:

(1)读数据必须总是跟在与其数据相关联的地址之后。

(2)写响应必须总是跟在与其相关联的写事务的最后出现。

3、通道握手信号之间的依赖性
读事务握手依赖关系如图:
通信协议(AXI)_第9张图片
其中单箭头不表示先后依赖关系,双箭头才表示依赖关系
(1)设备可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。

(2)但是设备必须等待ARVALID和ARREADY信号都有效才能给出RVALID信号,开始数据传输。

写事务握手依赖关系如图:
通信协议(AXI)_第10张图片
(1)主机必须不能够等待设备先给出AWREADY或WREADY信号信号后再给出信号AWVALID或WVLAID。

(2)设备可以等待信号AWVALID或WVALID信号有效或者两个都有效之后再给出AWREADY信号。

(3)设备可以等待AWVALID或WVALID信号有效或者两个信号都有效之后再给出WREADY信号。

六、AXI4-Lite

适用于当不需要AXI4完整功能的时候,一些简单的控制寄存器的读写

你可能感兴趣的:(数字ic,fpga)