AXI学习日记1

1.文档资料

ARM官网搜索IHI0022E   本文档是对此文档的大概阅读和理解,内容有些长,如有错误请指出.

2. AXI协议特点

  • 适用于高带宽和低延迟的设计;
  • 可以在不使用复杂桥接器的情况下提供高频操作;
  • 满足广泛组件的接口要求;
  • 适合初始访问延迟较高的内存控制器;
  • 在互连架构的实现中提供了灵活性;
  • 向后兼容现有的AHB(Advanced High-performance Bus)和APB(Advanced Peripheral Bus)接口。

2.1 AXI协议的关键特性

  • 分离的地址/控制相和数据相;
  • 支持未对齐的数据传输,使用字节选通信号;
  • 使用基于突发的事务处理方式,只发出起始地址;(在突发传输模式下,只需要初始化一次传输请求就可以连续传输多个数据块,而不需要为每个数据块单独发起一次传输请求。这种方法可以显著提高数据传输效率,减少总线或接口的占用时间,从而提升整个系统的性能。)
  • 分离的读写数据通道,可以提供低成本的直接内存访问(DMA);
  • 支持发出多个未决地址;
  • 支持乱序事务完成;
  • 允许轻松添加寄存器级以实现时序闭合。

3. AXI协议架构

AXI协议是基于突发的,并定义了如下独立的5个事务通道:

  • 读地址(Read Address)
  • 读数据(Read Data)
  • 写地址(Write Address)
  • 写数据(Write Data)
  • 写响应(Write Response)

地址通道携带描述待传输数据特性的控制信息。数据通过以下两种方式之一在主设备(Master)和从设备(Slave)之间传输:

  • 一个写数据通道用于从主设备到从设备的数据传输。在一个写事务中,从设备使用写响应通道向主设备指示传输已完成。
  • 一个读数据通道用于从从设备到主设备的数据传输。

AXI协议的特点包括:

  • 允许地址信息先于实际的数据传输发出;
  • 支持多个未完成(outstanding)事务;
  • 支持事务的乱序完成。

3.1  信号描述

3.1.1 总信号

3.1.1.1 ACLK

每个 AXI 组件使用单一的时钟信号 ACLK。所有输入信号都在 ACLK 的上升沿采样。所有输出信号的变化必须发生在 ACLK 上升沿之后。在主接口和从接口上,输入信号和输出信号之间不能有组合逻辑路径。

ACLK 的作用

  1. 同步通信:AXI协议是基于同步时序模型的,这意味着所有的读写操作都必须在一个共同的时钟信号下进行。ACLK 就是这个同步信号,它确保了所有AXI事务在时间上的对齐。

  2. 采样数据:AXI协议中的数据和控制信号都需要在ACLK 的上升沿被采样。这保证了无论何时在AXI总线上发生数据交换,接收方都可以正确地捕获这些数据。

  3. 定时关系ACLK 还决定了AXI总线上各种信号的有效期。例如,在一个读操作中,地址和控制信号(如ARVALID 和 ARREADY)需要在ACLK 的有效周期内保持稳定,直到数据准备好被传输。

3.1.1.2 ARESETn

AXI 协议使用单一的低电平有效的复位信号 ARESETn(n表示低电平有效).复位信号可以异步断言,但撤销复位必须与 ACLK 的上升沿同步。
在复位期间,适用以下接口要求:

  • 主接口必须将 ARVALID、AWVALID 和 WVALID 驱动为低电平

  • 从接口必须将 RVALID 和 BVALID 驱动为低电平

  • 所有其他信号可以驱动为任意值

主设备允许开始将 ARVALID、AWVALID 或 WVALID 驱动为高电平的最早时间点是在 ARESETn 变为高电平后的 ACLK 上升沿。

ARESETn 的作用

  1. 初始化AXI接口:当系统上电或者软件触发复位时,ARESETn 会变为低电平,这会导致所有AXI接口进入复位状态。在这种状态下,AXI接口的所有输出信号(如AWVALID、WVALID、BREADY、ARVALID、RREADY等)都将被置为无效状态(即逻辑0)。同时,所有输入信号(如AWREADY、WREADY、BVALID、ARREADY、RVALID等)都被忽略。

  2. 确保一致性:通过复位机制,可以确保AXI接口的状态是一致的,这对于维护系统的可靠性和可预测性非常重要。特别是在系统出现故障或者需要重新配置的情况下,复位可以作为一种恢复手段。

  3. 电源管理:在某些情况下,ARESETn 也可以作为电源管理的一部分,当不需要AXI接口活动时,可以通过将其置于复位状态来降低功耗。

3.1.2 写地址信号

3.1.2.1  AWID       写地址ID

AXI协议包含了AXI ID交易标识符。主设备可以使用这些标识符来识别必须按顺序返回的独立交易。 具有特定AXI ID值的所有交易必须保持有序但是对于不同ID值的交易之间没有顺序限制。这意味着单个物理端口可以通过充当多个逻辑端口来支持乱序交易,每个逻辑端口都按顺序处理其交易。 通过使用AXI ID,主设备可以在不等待早期交易完成的情况下发出新的交易。这可以提高系统性能,因为它能够使交易并行处理。
没有强制要求从设备或主设备使用AXI交易标识符。主设备和从设备可以一次处理一个交易,这意味着交易按照它们发出的顺序进行处理。 从设备需要在其适当的BID或RID响应中反映出从主设备接收到的AXI ID。

AWID 的定义

  • AWID: 这是一个宽度可配置的信号,其宽度由用户在设计时确定。AWID 信号的宽度决定了能够支持的写事务的最大数量。例如,如果AWID 宽度为4比特,则最多可以支持16个不同的写事务标识。

AWID 的作用

  1. 事务跟踪:在AXI协议中AWID 用于在写地址阶段唯一标识一个写事务。这个ID将伴随整个写事务,包括写数据阶段以及写响应阶段。通过使用AWID,AXI从设备可以跟踪特定写事务的状态,并在完成写操作后发送带有相同ID的响应给主设备。

  2. 流量控制AWID 也帮助实现了更复杂的流量控制机制。例如,如果一个主设备正在进行多个并发的写操作,那么它可以使用不同的AWID 来区分这些操作。从设备可以根据接收到的AWID 来决定何时以及以何种顺序处理这些写请求。

  3. 错误检测:在某些情况下,AWID 可以用来检测错误。如果从设备在某个写响应中返回了一个主设备未曾发出过的ID,这可能表明存在某种错误情况。

AWID 在AXI总线上的应用

在AXI写事务中,AWID 被包含在AWBURST 内,作为写地址包的一部分。当主设备发起写操作时,它会将一个唯一的AWID 发送到从设备。从设备接收到这个ID之后,就会知道这是哪一个写事务,并在完成相应的写操作后,通过BID返回相同的ID给主设备,以确认该写事务已完成。

3.1.2.2  AWADDR      写地址

AWADDR 的定义

  • AWADDR: 这是一个地址信号,它的位宽取决于系统的地址空间大小。通常,在一个32位地址空间的系统中,AWADDR 的宽度为32比特;而在64位地址空间中,宽度则为64比特。AWADDR 用于指示数据将要写入的位置。

AWADDR 的功能

  1. 写地址指定:当主设备想要执行写操作时,它首先会在地址写通道上发送一个写地址包(AW 包),其中包含了AWADDR 信号。这个信号告诉从设备数据将会被写入哪个物理地址。这对于从设备来说是非常重要的信息,因为它需要准备接收随后到来的数据并将它们存放到正确的内存位置。

  2. 支持突发传输:AXI协议支持突发传输模式,这意味着单个写地址包可以触发连续多个数据包的传输。在这种情况下,AWADDR 指示的是突发序列的第一个地址。从设备根据AWADDR 和其他控制信号(如AWLEN)来确定整个突发序列的范围。

  3. 对齐要求:为了提高效率,AWADDR 所指定的地址通常需要满足一定的对齐要求。例如,对于64字节的突发传输,地址通常需要是对64字节的整数倍。这种对齐有助于优化内存访问性能。

AWADDR 在AXI总线上的应用

在典型的AXI写操作中,主设备首先在AW 通道上发送一个写地址包,其中包括了AWADDRAWID(写事务ID)、AWLEN(突发长度)、AWSIZE(突发数据大小)、AWBURST(突发类型)等信号。从设备接收这个包后,会准备好接收即将到来的数据。主设备接着在W 通道上发送数据包,最后通过B 通道接收写响应。

3.1.2.3  AWLEN      突发长度

突发长度由以下信号指定:

• 对于读取传输,由 ARLEN[7:0] 指定

• 对于写入传输,由 AWLEN[7:0] 指定

AXI 对使用突发有以下规则:

• 对于循环突发,突发长度必须为 2、4、8 或 16

• 一个突发不得跨越 4KB 的地址边界 • 不支持突发的提前终止。 任何组件都不能提前终止突发。但是,为了减少写入突发中的数据传输次数,主设备可以通过取消写入选通信号来停止进一步的写入。在这种情况下,主设备必须完成突发中剩余的传输。在一个读取突发中,主设备可以丢弃读取的数据,但它必须完成突发中的所有传输。 注意 丢弃不必要的读取数据会导致在访问如 FIFO 这样的读敏感设备时丢失数据。在访问此类设备时,主设备必须使用与所需数据传输大小完全匹配的突发长度。

AWLEN 的定义

AWLEN 是一个log2(N)位宽的信号,其中N是突发传输的最大长度。例如,如果AXI接口支持最多256个数据拍 (beat) 的突发,则AWLEN 将是一个8位宽的信号(因为2^8 = 256)。每个数值代表了突发传输中包含的数据拍数量减一。例如,如果AWLEN 被设置为0,则表示此次突发传输只有一个数据拍;如果设置为2,则意味着将会有三个数据拍(2 + 1 = 3)的突发传输。

AWLEN 的功能

  1. 突发长度编码AWLEN 值编码了突发传输的长度,即数据拍的数量。数据拍是指一个突发传输中每次传输的数据单位,其大小由AWSIZE 信号决定。例如,如果数据宽度为32位,则每个数据拍就是一个32位的数据值。

  2. 提高效率:通过使用AWLEN 来指定突发长度,AXI协议能够减少对于每个单独数据拍都需要重新设置地址的需求,这大大提高了数据传输的效率。例如,在连续读取大量数据时,只需要一次地址设置就可以完成整个突发传输。

  3. 支持多种突发类型AWLEN 结合其他控制信号(如AWBURST)共同决定了突发传输的具体模式。AXI协议支持固定、递增和非连续等多种类型的突发传输,AWLEN 确定了这些模式下的数据拍数量。

AWLEN 在AXI总线上的应用

在一个典型的AXI写操作过程中,主设备(如CPU或DMA引擎)首先在AW 通道上发送包含AWLEN 信息在内的写地址包,从设备(如内存或外围设备)接收到该包后开始准备接收数据。随后,主设备在W 通道上按照AWLEN 指定的次数发送数据包。在所有数据包都已成功传输之后,从设备会在B 通道上发送确认信息给主设备。

使用AWLEN 时的注意事项

  • 最大长度限制:虽然理论上AWLEN 可以支持非常长的突发长度,但在实际应用中,通常会受到硬件能力以及系统设计约束的影响。因此,在使用时需要注意不要超过系统支持的最大突发长度。

  • 对齐要求:为了保证数据正确性,AWADDR 指定的起始地址通常需要满足一定的对齐要求。例如,在使用递增模式进行突发传输时,起始地址应该能够使得所有后续数据拍都能够正确对齐。

  • 一致性检查:在某些情况下,可能需要进行一致性检查以确保AWLEN 指定的突发长度不会与其他正在进行的事务发生冲突。

3.1.2.4  AWSIZE      突发大小

如果AXI总线比突发传输的大小宽,则AXI接口必须根据传输地址确定每次传输使用数据总线的哪些字节通道。详见第 A3-52 页的数据读写结构。 任何传输的大小都不能超过交易中任一方的数据总线宽度。在一个突发中的每次数据传输或节拍中要传输的最大字节数由以下位指定:

• ARSIZE[2:0],用于读取传输

• AWSIZE[2:0],用于写入传输。 

当进行写操作时,发送者会设置AWSIZE值来告知接收者预期的数据大小,从而使得接收端能够准备好正确的缓冲区来存储即将到达的数据。这种机制有助于提高系统的灵活性和效率。

在AXI总线架构中,写操作通常分为两步:首先,主设备通过写地址通道(AW channel)向从设备发送写地址和AWSIZE等控制信息;然后,主设备通过写数据通道(W channel)向从设备发送实际的数据。主设备随后在写数据通道上发送数据。每次传输的数据量可以是AWSIZE指定的大小,也可以是小于该大小的整数倍。例如,如果AWSIZE设置为3(即8字节),则主设备可以发送8字节的数据,也可以发送4字节或2字节的数据,但不能发送非整数倍的数据量。

3.1.2.5  AWBURST      突发类型

突发类型 AXI协议定义了三种突发类型:

FIXED (固定突发):00

• 每次传输的地址都是相同的。

• 突发中所有节拍的有效字节通道是恒定的。然而,在这些字节通道内,每个节拍上被断言的actual bytes(实际字节)可能有所不同。 这种突发类型用于重复访问同一位置,例如在加载或清空FIFO时。

NCR (增量型):        01

在一个增量型突发中,每次传输的地址是前一次传输地址的一个增量。增量值取决于传输的大小。例如,在一个传输大小为四个字节的突发中,每次传输的地址是前一个地址加上四。 这种突发类型用于正常顺序内存的访问。

WRAP (循环突发)

类似于增量突发,不同之处在于,如果达到较高的地址限制,则地址会循环回到较低的地址。 循环突发有以下限制:

• 起始地址必须与每次传输的大小对齐

• 突发的长度必须是2、4、8或16次传输。

循环突发的行为如下:10

• 突发使用的最低地址与要传输的总数据大小对齐,即,((突发中每次传输的大小) × (突发中的传输次数))。此地址定义为循环边界。

• 每次传输后,地址按与INCR突发相同的方式递增。但是,如果这个递增后的地址是((循环边界) + (要传输的总数据大小)),则地址会循环到循环边界。

• 突发中的第一次传输可以使用高于循环边界的地址,前提是符合应用于循环突发的限制。这意味着对于任何首次地址高于循环边界的WRAP突发,地址都会循环。

3.1.2.6  AWLOCK     锁定类型

AXI4 不支持锁定事务。然而,AXI3 实现必须支持锁定事务。没啥用,不看了.

3.1.2.7  AWCACHE    内存类型

定义

AWCACHE是一个3位宽的信号,用于指定写操作时的缓存行为。它定义了主设备希望从设备如何管理和维护缓存一致性。AWCACHE的不同值对应不同的缓存策略,具体包括:

  • NORMAL_NONCOHERENT (001b): 无缓存一致性要求的普通缓存

在这种模式下,数据可以被缓存,但是没有缓存一致性要求。这意味着如果其他设备也访问相同的地址空间,它们之间不需要保持数据的一致性。

  • NORMAL_COHERENT (010b): 具有缓存一致性的普通缓存

与前一种模式类似,数据同样可以被缓存,但是在多个缓存之间需要保持一致性。如果多个设备访问相同的地址空间,那么它们之间的数据必须是一致的。

  • NORMAL_RESERVE (011b): 保留模式下的普通缓存

这种模式通常用于特殊用途,如锁定某些内存区域以防止其他设备访问。

  • WRITEBACK_NONCOHERENT (100b): 无缓存一致性要求的写回缓存

在这种模式下,数据被缓存,并且在写操作完成之前不会立即写回主存储器。只有当缓存数据被替换或者显式地执行写回操作时,数据才会被写回主存。同样,没有缓存一致性要求。

  • WRITEBACK_COHERENT (101b): 具有缓存一致性的写回缓存

与前一种模式类似,但具有缓存一致性要求。

  • WRITEBACK_RESERVE (110b): 保留模式下的写回缓存

类似于NORMAL_RESERVE,但是用于写回缓存。

  • UNCACHEABLE (111b): 不可缓存

在这种模式下,数据不允许被缓存。所有对数据的访问都会直接写入或读取主存,而不经过任何缓存层次。

功能

AWCACHE信号的主要功能是确定从设备在处理数据时的缓存行为。不同的缓存策略适用于不同的应用场景,使得AXI总线能够更好地满足不同应用的需求。

在总线上的应用

在AXI总线架构中,AWCACHE信号在写操作过程中有着重要的作用。当主设备准备进行写操作时,它会通过写地址通道(AW channel)发送写地址(AWADDR)和其他控制信号(包括AWCACHE)。AWCACHE信号告诉从设备如何处理即将到来的数据。例如:

  • 如果AWCACHE设置为NORMAL_COHERENT,则从设备应该将数据放入其缓存中,并确保与其他缓存的一致性。

  • 如果AWCACHE设置为UNCACHEABLE,则从设备不应该缓存这些数据,而应该立即将数据写入主存。

3.1.2.8  AWCPROT   保护类型

AXI 提供了访问权限信号,可以用来防止非法交易   基本用不到

AxPROT 值 功能

[0] 0 无特权访问 1 有特权访问

一个 AXI 主设备可能支持多个操作特权级别,并将这种特权概念延伸到内存访问上。AxPROT[0] 用于标识访问是无特权的还是有特权的。 注意某些处理器支持多个特权级别,请参阅所选处理器的文档来确定与 AXI 特权级别的映射关系。AXI 能提供的唯一区分是有特权访问和无特权访问。

[1] 0 安全访问 1 非安全访问

一个 AXI 主设备可能支持安全和非安全的操作状态,并将这种安全性概念延伸到内存访问上。AxPROT[1] 用于标识访问是安全的还是非安全的。 注意
这一位被定义为当其被置位时,交易被识别为非安全的。这与 ARM 安全扩展实现中的其他信号一致。

[2] 0 数据访问 1 指令访问

这一位表明交易是指令访问还是数据访问。 AXI 协议将此指示定义为提示。在所有情况下它可能并不准确,例如,在交易包含指令和数据项混合的情况下。本规范建议主设备将 AxPROT[2] 设置为低电平,以表明数据访问,除非访问明确地是指令访问。

3.1.2.9  AWQOS   服务质量

AWQOS 一个 4 位的服务质量标识符,针对每次写入交易在写入地址通道上发送。 ARQOS 一个 4 位的服务质量标识符,针对每次读取交易在读取地址通道上发送。 在此规范中,AxQOS 表示 AWQOS 或 ARQOS。 该协议没有规定服务质量标识符的确切用途。

此规范建议 AxQOS 作为与写入或读取交易相关的优先级指示器使用。更高的值表示更高的优先级交易。

3.1.2.10  AWREGION  区域标识符

在AXI (Advanced eXtensible Interface) 协议中,AWREGION 信号是写地址通道(AW channel)的一部分,用于标识数据传输的目标地址属于哪个地址区域(region)。这个信号允许主设备在发起访问请求时指定地址区域,从而帮助从设备识别出请求的具体目标位置。这样做的好处是可以支持更复杂的存储器映射和管理策略。

具体来说,AWREGION 通常是一个二进制编码信号,它的宽度决定了可以定义多少个不同的地址区域。例如,如果AWREGION 是 2 位宽,则它可以定义 4 个不同的地址区域;如果是 3 位宽,则可以定义 8 个不同的地址区域,以此类推。

每个地址区域可以有其独特的属性,比如不同的缓存策略、不同的访问权限、不同的总线宽度或其他特定于系统的配置。这使得 AXI 接口能够灵活地支持多种类型的存储器和外设,同时也可以实现更加精细的资源管理。

下面是一些常见的 AWREGION 使用场景示例:

  1. 不同的缓存策略

    • 某些地址区域可能需要高速缓存,而其他区域则不需要。

    • 例如,代码段可能需要指令缓存,而数据段可能需要数据缓存。

  2. 不同的访问权限

    • 某些地址区域可能只允许读取操作,不允许写入。

    • 安全相关的代码或数据可能需要更高的访问控制级别。

  3. 不同的物理地址映射

    • 不同的地址区域可能映射到不同的物理存储器块或外设。

    • 这有助于区分内部存储器、外部存储器和外设之间的访问。

  4. 不同的总线宽度

    • 不同的地址区域可能支持不同的数据传输宽度,从而优化带宽利用率。

3.1.2.11  AWUSER 用户自定义

可选地,AXI4 接口信号集可以在每个 AXI4 通道中包含一组用户自定义信号,称为用户信号。 通常,本规范建议不要使用用户信号,因为 AXI 协议未定义这些信号的功能,如果两个组件以不兼容的方式使用相同的用户信号,这可能会导致互操作性问题。 

为每个 AXI4 通道定义的用户信号名称为:

AWUSER 写地址通道用户信号。

ARUSER 读地址通道用户信号。

WUSER 写数据通道用户信号。

RUSER 读数据通道用户信号。

BUSER 写响应通道用户信号。

3.1.2.12  AWVALID 写地址有效
3.1.2.13 AWREADY 写地址准备就绪

在AXI 协议中,VALID 信号是用于握手协议的关键部分,它用来指示数据传输的有效性。AXI协议中有多个握手信号,分别对应不同的数据传输阶段。VALID 信号通常与READY信号配合使用,来保证数据的正确传输。这种机制称为“ready-valid”握手协议。

对于AXI协议而言,握手信号分为以下几个主要类型:

  1. 写地址通道 (AW Channel):

    • AWVALID: 表示写地址和写命令信息的有效性。当写地址和写命令准备好发送时,AWVALID 被置为高电平。

    • AWREADY: 表示从设备是否准备好接收写地址和写命令信息。当从设备准备好接收时,AWREADY 袪为高电平。

  2. 写数据通道 (W Channel):

    • WVALID: 表示写数据和写数据字节使能的有效性。当写数据准备好发送时,WVALID 被置为高电平。

    • WREADY: 表示从设备是否准备好接收写数据。当从设备准备好接收时,WREADY 被置为高电平。

  3. 写响应通道 (B Channel):

    • BVALID: 表示写响应的有效性。当写响应准备好发送时,BVALID 被置为高电平。

    • BREADY: 表示主设备是否准备好接收写响应信息。当主设备准备好接收时,BREADY 被置为高电平。

  4. 读地址通道 (AR Channel):

    • ARVALID: 表示读地址和读命令信息的有效性。当读地址和读命令准备好发送时,ARVALID 被置为高电平。

    • ARREADY: 表示从设备是否准备好接收读地址和读命令信息。当从设备准备好接收时,ARREADY 被置为高电平。

  5. 读数据通道 (R Channel):

    • RVALID: 表示读数据的有效性。当读数据准备好发送时,RVALID 被置为高电平。

    • RREADY: 表示主设备是否准备好接收读数据。当主设备准备好接收时,RREADY 被置为高电平。

通过VALIDREADY 信号之间的配合,可以确保数据在双方都准备好的情况下进行传输,避免了由于一方未准备好而导致的数据丢失或者错误。这种机制提高了系统的可靠性和效率,尤其是在高性能计算环境中,可以有效地减少延迟和提高吞吐量。

写地址通道

主设备只有在驱动有效的地址和控制信息时才能断言 AWVALID 信号。

当断言 AWVALID 时,必须保持该信号直到从设备断言 AWREADY 后的上升时钟边沿。 AWREADY 的默认状态可以是高电平或低电平。本规范建议默认状态为高电平当 AWREADY 为高电平时,从设备必须能够接受呈现给它的任何有效地址

注意本规范不建议默认的 AWREADY 状态为低电平,因为这会迫使传输至少需要两个周期,一个周期用于断言 AWVALID,另一个周期用于断言 AWREADY。

写数据通道
在一个写突发期间,主设备只有在驱动有效写数据时才能断言 WVALID 信号。

一旦断言了 WVALID,它必须保持该信号直到从属设备断言 WREADY 后的上升时钟边沿。 WREADY 的默认状态可以是高电平,但前提是该从属设备总能在单个周期内接受写数据。 主设备必须在其驱动突发中的最后一个写传输时断言 WLAST 信号。

写响应通道
从属设备只有在驱动有效的写响应时才能断言 BVALID 信号。

一旦断言了 BVALID,它必须保持该信号直到主设备断言 BREADY 后的上升时钟边沿。 BREADY 的默认状态可以是高电平,但前提是主设备总能在单个周期内接受写响应。

读地址通道
主设备只有在驱动有效的地址和控制信息时才能断言 ARVALID 信号。

一旦断言了 ARVALID,它必须保持该信号直到从属设备断言 ARREADY 信号后的上升时钟边沿。 ARREADY 的默认状态可以是高电平或低电平。本规范建议默认状态为高电平。如果 ARREADY 为高电平,则从属设备必须能够接受呈现给它的任何有效地址。

本规范不建议 ARREADY 的默认值为低电平,因为这会迫使传输至少需要两个周期,一个周期用于断言 ARVALID,另一个周期用于断言 ARREADY。

读数据通道
从属设备只有在驱动有效读数据时才能断言 RVALID 信号。

一旦断言了 RVALID,它必须保持该信号直到主设备断言 RREADY 后的上升时钟边沿。即使从属设备只有一个读数据源,它也必须仅在响应数据请求时才断言 RVALID 信号

主接口使用RREADY 信号来指示它接受数据。RREADY 的默认状态可以是高电平,但前提是主设备在开始读取事务时能够立即接受读数据。 从属设备必须在其驱动突发中的最后一个读传输时断言 RLAST 信号。

3.1.3 写数据信号

写数据传输的过程如下

  1. 主设备将要写入的数据放置在WDATA 上,并通过WSTRB 指定哪些字节有效。
  2. 同时,主设备将WVALID 置为高电平,表示数据有效。
  3. 如果这是本次写操作的最后一笔数据,那么WLAST 也会被置为高电平。
  4. 从设备检测到WVALID 为高电平时,如果它准备好接收数据,就会将WREADY 置为高电平。
  5. 一旦WREADY 变为高电平,表示数据已经被从设备接收,主设备就可以继续发送下一个数据包或结束写操作。
  6. 重复上述步骤,直到所有数据都被成功传输。

3.1.3.1 WID  写入ID标签

见 3.1.2.1

3.1.3.2 WDATA  写入数据

这是实际的数据总线,在写操作期间携带数据位。其宽度通常是32位或64位,具体取决于AXI配置。

3.1.3.3 WATRB 写入选通信号
  • 作用WSTRB是一个位向量信号,每个位对应于WDATA(写数据)总线上的一组字节或半字节。例如,在一个32位宽的AXI接口上,WSTRB通常是一个4位的向量,每个位对应着WDATA总线上的一个字节。如果AXI接口是64位宽的,那么WSTRB则为8位,对应于8个字节。

  • 值的意义

    • WSTRB的某一位为1时,意味着对应的字节或半字节有效,将会被写入目标地址。

    • WSTRB的某一位为0时,则表明对应的字节或半字节无效,不会被写入目标地址。这意味着该位置的数据将保持不变。

  • 使用场景WSTRB信号主要用于两种情况:

    1. 部分写入:在不需要更新整个数据宽度的情况下,只修改一部分数据。

    2. 错误恢复:在某些情况下,比如写操作失败后,可以通过设置WSTRB来重写失败的部分,而不是重新写入整个数据块。

  • 示例:假设我们有一个32位宽的AXI接口,我们需要在一个写操作中只更新第2个字节的数据,那么WSTRB的值将是0010b(二进制表示)。这意味着只有WDATA总线上的第2个字节会被写入,其余字节保持原样。

  • 握手机制WSTRB信号通常与WVALIDWREADY信号一起工作,来确保写数据能够在正确的时间被正确地接收。当WVALID为高时,表示写数据和WSTRB都有效;当WREADY为高时,表示从设备准备好接收数据。

3.1.3.4 WALAST  写入最后一个

该信号用于标记一批连续写数据传输中的最后一个数据包。当WLAST 设置为1时,表示当前数据包是这批连续写操作中的最后一个。

3.1.3.4 WAUSER 写用户数据

见3.1.2.11

3.1.3.4 WVALID   写数据有效
3.1.3.4 WREADY 写数据准备就绪

见3.1.2.12

3.1.4 写响应信号

BIDSlave 响应 ID 标签。此信号为写入响应的 ID 标签。详见第 A5-79 页的事务 ID。
BRESPSlave 写入响应。此信号指示写入事务的状态。详见第 A3-57 页的读写响应结构。
BUSERSlave 用户信号。写入响应通道中的可选用户自定义信号。仅在 AXI4 中支持。详见第 A8-104 页的用户自定义信号。
BVALIDSlave 写入响应有效。此信号指示通道正在发出有效的写入响应。详见第 A3-40 页的通道握手信号。
BREADYMaster 响应就绪。此信号指示主控端可以接受写入响应。详见第 A3-40 页的通道握手信号。
3.1.4.1  BID

见 3.1.2.1

3.1.4.2  BRESP

AXI协议为读写事务提供了响应信号:

• 对于读取事务,从从设备发出的响应信息在读取数据通道上进行信号传输

• 对于写入事务,响应信息在写入响应通道上进行信号传输。

响应由以下信号表示:

• RRESP[1:0],用于读取传输

• BRESP[1:0],用于写入传输。

响应包括:

OKAY 正常访问成功。表明正常访问已成功。也可能表明独占访问失败。参见OKAY,正常访问成功。

EXOKAY 独占访问成功。表明独占访问中的读取或写入部分已成功。参见EXOKAY,独占访问成功,在页A3-58。

SLVERR 从设备错误。当访问已成功到达从设备,但从设备希望向发起主设备返回错误状态时使用。参见SLVERR,从设备错误,在页A3-58。

DECERR 解码错误。通常由互连组件生成,以指示事务地址处没有从设备。参见DECERR,解码错误,在页A3-58。

对于一个写入事务,整个突发过程中仅信号传输一个响应,而不是针对突发内的每个数据传输都进行信号传输。 在一个读取事务中,从设备可以在突发的不同传输中信号传输不同的响应。例如,在16个读取传输的突发中,从设备可能会对其中15个传输返回一个OKAY响应,而对另一个传输返回一个SLVERR响应。 协议规定,即使报告了错误,也必须完成所需数量的数据传输。例如,如果请求从一个从设备读取8个传输,但该从设备处于错误状态,则从设备仍必须执行8个数据传输,每次传输都带有错误响应。如果从设备给出单个错误响应,并不会取消剩余的突发传输

3.1.4.3  BUSER

见3.1.2.11

3.1.4.4  BVALID
3.1.4.5  BREADY

见3.1.2.12

3.1.5 读地址信号

与写地址信号类似,不在赘述.

ARID主机读取地址ID。此信号是读取地址组的标识符。详见第A5-79页的“事务ID”。
ARADDR主机读取地址。读取地址指定了读取突发事务中的第一个传输的地址。详见第A3-46页的“地址结构”。
ARLEN主机突发长度。此信号指示突发中的确切传输次数。AXI3和AXI4之间有所不同。详见第A3-46页的“突发长度”。
ARSIZE主机突发大小。此信号指示突发中每次传输的大小。详见第A3-47页的“突发大小”。
ARBURST主机突发类型。突发类型和大小信息确定了如何计算突发中每次传输的地址。详见第A3-47页的“突发类型”。
ARLOCK主机锁定类型。此信号提供了关于传输原子特性的附加信息。AXI3和AXI4之间有所不同。详见第A7-99页的“锁定访问”。
ARCACHE主机内存类型。此信号指示事务如何通过系统进行。详见第A4-67页的“内存类型”。
ARPROT主机保护类型。此信号指示事务的权限和安全级别,以及事务是否为数据访问或指令访问。详见第A4-73页的“访问权限”。
ARQOS主机服务质量,QoS。每个读取事务发送的QoS标识符。仅在AXI4中实现。详见第A8-102页的“QoS信令”。
ARREGION主机区域标识符。允许从设备上的单个物理接口用于多个逻辑接口。仅在AXI4中实现。详见第A8-103页的“多区域信令”。
ARUSER主机用户信号。读取地址通道中的可选用户定义信号。仅在AXI4中支持。详见第A8-104页的“用户定义信令”。
ARVALID主机读取地址有效。此信号指示该通道正在发出有效的读取地址和控制信息。详见第A3-40页的“通道握手信号”。
ARREADY从设备读取地址就绪。此信号指示从设备准备好接收地址及其相关的控制信号。详见第A3-40页的“通道握手信号”。

3.1.6 读数据信号

不在赘述

RID从设备读取ID标签。此信号是从设备生成的读取数据组的标识符。详见第A5-79页的“事务ID”。
RDATA从设备读取数据。
RRESP从设备读取响应。此信号指示读取传输的状态。详见第A3-57页的“读取和写入响应结构”。
RLAST从设备读取最后一个。此信号指示读取突发中的最后一个传输。详见第A3-41页的“读取数据通道”。
RUSER从设备用户信号。读取数据通道中的可选用户定义信号。仅在AXI4中支持。详见第A8-104页的“用户定义信令”。
RVALID从设备读取有效。此信号指示该通道正在发出所需的读取数据。详见第A3-40页的“通道握手信号”。
RREADY主机读取准备就绪。此信号指示主机可以接受读取数据和响应信息。详见第A3-40页的“通道握手信号”。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值