AXI SPEC学习笔记(3)

本系列内容来自ARM官方spec

1、基本读写事务
握手处理:
五个事务通道使用相同的VALID/READY握手处理。两路流控机制意味着Manager和Sub都可以控制它们之间的信息流速。数据源产生VALID信号表明地址、数据、控制信息是可用的。终点产生READY信号来表明它可用接收信息。传输仅在VALID和READY信号均为高电平时出现。

在Manager和Subordinate接口中,在输入和输出信号之间不能存在其他组合逻辑。

在这里插入图片描述
如上图,数据源在T1后提供信息同时拉高VALID信号,终点在T2后拉高READY。数据源必须保持信号不变直到T3(也就是采样到READY前数据不能变)。
数据源不允许存在等采样到READY再拉高VALID的逻辑。(防死锁)

在这里插入图片描述
终点在T1后就拉高了READY,这发生在地址、数据、或是控制信号有效前。拉高READY表示终点可接收信息。因此一旦数据源提供数据并拉高VALID(图中T2后),数据传输就发生(图中T3)。

终点允许等待VALID拉高后再拉高READY。
如果READY已拉高,允许VALID拉高前拉低READY。

在这里插入图片描述
如上图,数据源和终点同时表明它们可在T1后传输数据。在这种情况下,数据传输发生在两信号同时拉高的上升沿,即图中T2后。

通道信号要求:
通道握手信号:
每个通道都有自己的一对VALID/READY握手信号。
在这里插入图片描述
写地址通道:
Manager可以仅在它驱动有效的地址控制信息时拉高AWVALID信号。当AWVALID拉高时,必须保持拉高状态直到在上升沿采样到Sub拉高AWREADY。
AWREADY默认状态既可以是高电平也可以是低电平。Spec建议默认状态是高电平。因为如果默认低电平,那就强制传输至少需要2个时钟周期,一个用于拉高AWVALID,一个用于拉高AWREADY。当AWREADY是高电平,Sub必须能接收任何有效地址。

写数据通道:
在一个写burst中,Manager可以仅在它驱动有效数据拉高WVALID信号。
Manager在它的burst的最后一次传输必须拉高WLAST。
本Spec建议WDATA在非有效字节通道填零。

写响应通道:
Sub可以仅在它驱动一个有效写响应时拉高BVALID。当BVALID拉高后,必须保持拉高直到采样在上升沿采样到Manager拉高BREADY。
建议Manager默认拉高BREADY。

读地址通道:
Manager可以仅在驱动有效地址和控制信息时拉高ARVALID。当拉高后,ARVALID必须保持拉高直到在上升沿采样到Sub拉高ARREADY信号。

读数据通道:
Sub可以仅在它驱动有效读数据拉高RVALID。当RVALID拉高后,必须保持拉高直到在上升沿采样到来自Manager的RREADY的拉高信号。即使Sub只有一个数据源,也必须拉高RVALID信号来作为读数据请求的响应。
Manager使用RREADY来表示它可以接收数据。
Sub在它驱动burst最后一次读传输时必须拉高RLAST信号。
Spec建议RDATA在非有效字节通道填零。

2、通道之间的关系
AXI协议要求遵守以下关系:
(1)一次写事务中,写响应必须紧跟最后一次写传输。
(2)读数据必须紧跟读地址。
(3)通道握手必须遵守相关依赖关系。
协议中没有定义通道之间任何其他关系。
缺少的关系意味着,比如,写数据可以出现在写地址之前。这种情况出现在写地址通道可能比写数据通道包含更多的寄存器打拍阶段,导致延迟大。相似的,写地址可能和地址出现在相同周期。
当interconnect要求决定目的地的地址空间时,它必须重新对齐地址和写数据。这种重新对齐是为了确保写数据仅对写地址路由的Sub有效。

当Manager发出读请求后,它必须能提供该事务所需的所有写数据,而不依赖Manager的其他事务。
当Manager发出一个读请求后,它必须能接收事务的所有读数据。

通道握手信号之间的依赖:
为了阻止死锁情况,在握手信号之间有些必须遵守的依赖规则
(1)VALID信号不能依赖READY信号
(2)拉高READY可以等采样到VALID信号

在依赖图中:
单头箭头指向的信号可以在箭头起点信号拉高前或者拉高后拉高。
双头箭头指向的信号必须在箭头起点信号拉高后才能拉高。

在这里插入图片描述
在一次读事务中:
(1)Manager不可以等ARREADY拉高再拉高ARVALID;
(2)Sub可以等ARVALID拉高后再拉高ARREADY;
(3)Sub可以在ARVALID拉高前拉高ARREADY;
(4)Sub必须等待ARVALID和ARREADY拉高后才能拉高RVALID;
(5)Sub不可以等RREADY再拉高RVALID;
(6)Manager可以等RVALID拉高后再拉高RREADY;
(7)Manager可以在RVALID拉高前拉高RREADY。
在这里插入图片描述
写事务依赖如上图。

3、事务结构
(1)地址结构
AXI协议是基于burst的,Manager通过驱动控制信号和事务的地址第一个字节并传给Sub来开始每次burst。在burst过程中,Sub必须计算burst中的后面的地址。
一次burst必须不能跨越4KB地址边界。

Burst长度:
burst长度被两个参数定义:
ARLEN[7:0],为读传输
AWLEN[7:0],为写传输
AXI3支持1-16的burst长度
AXI4为INCR类型的burst扩展成1-256的burst长度。
Burst_Length = AxLEN[3:0]+1

对于回环burst,burst长度必须是2,4,8,16
一次burst必须不能4KB地址边界
burst的提前结束是不被支持的,没有任何组件可以提前结束burst,Manager可以通过拉低写选通信号来不让数据写入,但也要完成burst剩余的传输。在一次读burst中,Manager可以丢弃读数据,但必须一次burst所有传输。

Burst大小:
每次传输的最大字节数,被以下两个参数定义:
ARSIZE[2:0],为读传输
AWSIZE[2:0],为写传输
在这里插入图片描述
Burst类型:
(1)FIXED:在一次固定的burst传输中,每次传输的地址都一样。在burst的所有拍中有效字节通道均不变,但在这些有效的通道内,WSTRB每拍均可变化。这种burst类型用于对一个相同的位置重复读写操作,如加载或清空fifo。
(2)INCR:递增的,在一次递增burst中,每次传输的地址是前一次传输的地址的递增值。这个递增值由传输的字节大小决定。比如,一个4字节的数据传输地址是前一次传输的地址加4。这种burst类型用于读写普通memory。
(3)WRAP:一次回环burst类似于INCRburst,当地址超过限制时将会回到起始地址。但有以下限制:起始地址必须和每次传输的数据字节大小对齐;burst长度必须是2,4,8,16。
在这里插入图片描述
(2)读和写响应结构
AXI协议为读和写事务均提供了响应信号:
对于读事务:来自Sub的响应信息在读数据通道传输
对于写事务:响应信息在写响应通道传输
响应信号:
RRESP[1:0],为读传输响应
BRESP[1:0],为写传输响应
响应信号是:
OKAY:普通存取成功,表示一次普通存取已成功。也可以表明一次专用存取失败。
EXOKAY:专用存取okay,表明专用存取的读部分或者写部分已成功。
SLVERR:Sub错误。用于当存取命令成功送达Sub,但Sub希望返回一个错误状态。
DECERR:译码错误,一般由互连组件生成,来表明没有找到事务地址中的Sub。
在这里插入图片描述
对于写事务,只有一次为整个burst产生的响应,而不是为burst中每次数据传输均产生响应。
在一次读事务中,Sub可以为一次burst的不同传输产生不同的响应信号。比如,在一次16拍的读传输的burst中Sub可能返回15次OKAY,1次SLVERR。
协议规定了所需要传输的次数必须达到,即使有error出现。比如,如果一次8拍的读事务,Sub有一个错误状态,Sub必须实现8次数据传输,每次传输都响应一次错误信号。而不会因为一次error信号而取消剩余传输。

### 回答1: AXI(Advanced eXtensible Interface,高级可扩展接口)是一种由ARM(Advanced RISC Machine)公司开发的总线协议,用于实现高性能低功耗的系统互联。它是一种基于点对点通信的接口协议,用于连接处理器、内存和外设等硬件模块。 AXI规范定义了一套严格的通信协议,包括地址通道、读写数据通道和控制通道。通过这些通道的相互协作,实现了高效的数据传输和处理。在AXI规范中,地址通道负责发送访问目标模块的地址和一些控制信号,数据通道则负责传输数据。读取数据时,数据通道负责将读取的数据返回给请求方;写入数据时,数据通道负责将要写入的数据发送到目标模块。 AXI规范还定义了多种传输模式,如单个数据传输、突发传输和重传传输等。其中,突发传输是一种性能优化技术,可以在请求时连续传输多个数据。这种传输模式可以提高数据传输效率,减少总线占用时间。 除了基本的传输功能,AXI还支持很多高级特性,如错误处理、保护和优先级控制等。这些特性可以提升系统的可靠性和安全性,使系统可以更好地应对复杂的场景。 总之,AXI规范是一种高效可靠的总线协议,适用于各种应用场景。它提供了丰富的功能和灵活的配置选项,使得系统设计人员可以根据实际需求进行定制化的系统互联设计。 ### 回答2: AXI规范是一种用于设计和实现高性能总线接口的协议。AXI代表着可扩展互联接口(Advanced eXtensible Interface),是ARM公司开发的一种系统级总线标准。 AXI规范定义了一组传输协议和交互机制,用于连接处理器、内存、外设以及其他系统组件。它提供了高性能、低功耗、低成本的通信接口,并支持多个主机和从设备并行访问。AXI规范还包含了用于处理并发访问和流控制的机制,以确保数据的完整性和一致性。 在AXI规范中,总线分为主机(Master)和从属(Slave)两种类型。主机可以发起读写事务,而从属则响应主机的请求。AXI规范定义了数据传输的五个通信通道,分别是地址通道(Address Channel)、数据通道(Data Channel)、写通道(Write Channel)、读通道(Read Channel)和应答通道(Response Channel)。 在AXI规范中,总线采用基于通道的流式传输,允许多个事务同时在总线上传输。数据传输通过地址通道进行寻址,并通过数据通道进行读写操作。写通道用于向从属设备传输数据,而读通道用于从从属设备读取数据。应答通道用于从属设备向主机返回操作状态。 AXI规范还定义了一系列信号和协议,用于流控制、传输控制和错误处理。这些信号包括授权信号(Handshake Signals)、传输时序信号(Timing Signals)、错误检测信号(Error Detection Signals)等,以提高通信的可靠性和效率。 总之,AXI规范是一种用于高性能总线接口设计的协议,提供了强大的功能和丰富的控制机制,能够满足复杂系统中的数据传输需求,并支持多主机并行操作。 ### 回答3AXI(Advanced eXtensible Interface,高级可扩展接口)是一种用于片内总线连接的协议规范,广泛应用于现代的数字系统设计中。其提供了一种灵活的、可配置的和高性能的接口,用于连接处理器、存储器、外设和其他模块。 AXI规范定义了四种主要的信号通道:地址通道(Address Channel)、读数据通道(Read Data Channel)、写数据通道(Write Data Channel)和写响应通道(Write Response Channel)。这四个通道分别用于在系统中进行读、写和响应的交互。 AXI规范的核心思想是使用高度灵活的交互方式和流水线机制,来实现高性能和低延迟的数据传输。具体来说,每个通道都包含了一系列的事务,每个事务由多个阶段组成,并在不同的时钟周期中进行。 在AXI规范中,地址通道用于传输事务的地址信息,读数据通道用于传输读取到的数据,写数据通道用于传输写入的数据,写响应通道用于传输写入的响应信号。通过这四个通道的交互,AXI协议定义了一种高效的数据传输机制。 总之,AXI规范是一种用于片内总线连接的协议规范,提供了一种可配置和高性能的接口,用于连接处理器、存储器、外设和其他模块。通过定义四个主要的通道和灵活的交互方式,AXI规范实现了高性能和低延迟的数据传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值