AMBA AXI4协议 何宾 2012.02
本章内容 AMBA AXI4协议是由Xilinx公司和ARM公司制定的 用于SOC内IP互联的规范。 本章详细介绍了AXI4规范。主要内容包括AXI概 述、AXI4功能、AXI4-Lite功能和AXI4-Stream功能等。 其中AXI4功能、AXI4-Lite功能和AXI4-Stream功能 是本章的重点内容,也是构成AXI4协议的主要部分。
AXI概述 Xilinx 同 ARM 密切合作,共同为基于 FPGA 的高性 能系统和设计定义了 AXI4 规范。并且在其新一代可编 程门阵列芯片上采用了高级可扩展接口(Advanced eXtensible Interface, AXI)协议。 AXI总线是ARM高级微控制器总线结构(Advanced Microcontroller Bus Architecture, AMBA)的一部分。AXI 总线的第一个版本包含在AMBA3.0(2003年发布)中, AXI总线的第二个版本AXI4包含在AMBA4.0(2010年发 布)中。
AXI概述 最新一代的AMBA接口的目标是: (1)适合于高带宽和低延迟设计; (2)在不使用复杂的桥接方式下,允许更高频率的操作; (3)满足普遍情况下的元件接口要求; (4)适用于高初始访问延迟的存储器控制器; (5)为互联结构的实现提供了灵活性; (6)与已有的AHB和APB接口向下兼容。
AXI概述 AXI协议的关键特性表现在以下几个方面: (1)独立的地址/控制和数据阶段; (2)使用字节选通,支持非对齐的数据传输; (3)只有开始地址的猝发交易; (4)独立的读和写数据通道,可以使能低成本的直接存 储器访问DMA传输; (5)能发出多个未解决的地址; (6)完成无序交易; (7)容易添加寄存器切片,满足时序收敛要求;
AXI概述 -- AXI协议的优势 1.提供了更高的生产率,主要体现在以下几个方 面: 用户仅需了解单个系列的接口; (2)简化了不同领域 IP 的集成,并使自身或第三方合作伙 伴 IP 的开发工作更简单易行; (3)由于AXI4 IP 已为实现最高性能、最大吞吐量以及最低 时延进行了优化,从而使设计工作进一步获得简化;
AXI概述 2.提供了更大的灵活性,主要体现在以下几个 方面: (1)支持嵌入式、DSP 及逻辑版本用户; (2)调节互连机制,满足系统要求:性能、面积及功耗; (3)帮助设计者在目标市场中构建最具号召力的产品;
AXI概述 3.提供了广泛的 IP 可用性 (1)第三方 IP 和 EDA 厂商普遍采用开放式 AXI4 标 准,从而使该接口获得了更广泛的应用。 (2)基于 AXI4 的目标设计平台可加速嵌入式处理、 DSP以及连接功能设计开发。
AXI4功能 AXI4协议基于猝发式传输机制。在地址通道上, 每个交易有地址和控制信息,这些信息描述了需要传 输的数据性质。 在主设备和从设备之间所传输的数据分别使用到 从设备的写数据通道和到主设备的读数据通道。 在从主设备到从设备的写数据交易中,AXI有一个 额外的写响应通道,从设备通过该通道向主设备发出 信号表示完成写交易。
AXI4功能 所有的AXI4包含了5个不同的通道: (1)读地址通道(Read address channel, AR) ; (2)写地址通道(Write address channel, AW); (3)读数据通道(Read data channel, R); (4) 写数据通道(Write data channel, W); (5) 写响应通道(Write response channel, B);
AXI4功能 每个通道由一个信号集构成,并且使用双向的 VALID和READY握手信号机制。 信息源使用VALID信号,表示在通道上存在可用 信号,表示可以接收数据。 读数据通道和写数据通道也包含LAST信号,该信 号用来表示在一个交易发生时,最后一个传输的数据 项。
AXI4功能 图2.1给出了AXI4使用读地址和读数据通道的读 交易。图2.2给出了AXI4使用写地址和写数据通道的 写交易 读数据通道 主 接 口 地址和控制 读数据 从 读地址通道 读数据通道 图2.1 读通道结构
AXI4功能 写响应通道 主 接 口 地址和控制 写数据 从 写地址通道 写数据通道 图2.2 写通道结构 写响应
全局时钟信号。所有的信号在全局时钟的上升沿采样。 AXI4全局信号 信号 源 描述 ACLK 时钟源 全局时钟信号。所有的信号在全局时钟的上升沿采样。 ARESETn 复位源 全局复位信号。该信号低有效。
系统低功耗请求。这个信号来自系统时钟控制器使外设进入低功耗状态 低功耗接口信号 信号 源 描述 CSYSREQ 时钟控制器 系统低功耗请求。这个信号来自系统时钟控制器使外设进入低功耗状态 CSYSACK 外设 低功耗请求响应信号。这个信号来自系统低功耗请求外设的响应信号 CACTIVE 时钟活动。该信号表示外设是否要求它的时钟信号。1=要求外设时钟。
AXI4通道及信号 读和写交易有各自的地址通道。地址通道上给出交易 所要求的地址和控制信息。AXI4读和写地址通道包括下面 的机制: (1)可变长度的猝发操作,每次猝发操作包含1-256数据; (2)提供服务质量(QoS)信号 (3)支持多个区域接口; (4)猝发传输不能超过4k边界; (5)包裹、递增和非递增猝发; (6)使用互斥和锁的原子操作; (7)系统级缓存和缓冲控制; (8)安全和特权访问。
AXI4通道及信号 --读和写地址通道 (写地址) 信号名 源 描述 AWID[3:0] 主 写地址ID。这个信号用于写地址信号组的标记。 AWADDR[31:0] 写地址。写地址信号给出写猝发交易的第一个传输地址。相关的控制信号线用于确定猝 发中剩余传输的地址。 AWLEN[7:0] 猝发长度。给出猝发中准确的传输个数。该信息给出了和地址相关的数据传输数量。 AWSIZE[2:0] 猝发大小。这个信号确定猝发中每个传输的大小。字节通道选通用来说明需要更新的字 节通道。 AWBURST[1:0] 猝发类型。该信息与大小信息一起,表示在猝发过程中,地址如何用于每个传输。 AWLOCK 锁类型。这个信号提供了关于传输原子特性的额外信息(普通或互斥访问) AWCACHE[3:0] 缓存类型。这个信号表示可缓冲、可缓存、写通过、写回和分配交易属性。 AWPROT[2:0] 保护类型。这个信号表示交易的普通、特权、或安全保护级,以及交易是数据访问还是 指令访问。 AWVALID 写地址有效。这个信号表示写地址有效和控制信息是可用的。该信号一直保持有效,直 到响应信号AWREADY为高。 AWREADY 从 写地址准备。这个信号表示从设备准备接受地址和相关的控制信号。 AWQOS[3:0] 用于每个写交易的地址通道上的4位QoS标识符(可作为优先级标志) AWREGION[3:0] 用于每个写交易的地址通道上的域标识符。
AXI4通道及信号 --读和写地址通道 (读地址) 信号名 源 描述 ARID[3:0] 主 读地址ID。这个信号用于读地址信号组的标记。 ARADDR[31:0] 读地址。读地址信号给出读猝发交易的第一个传输地址。只提供猝发的开始地址和 给出控制信号,详细描述了在猝发的剩余传输中如何计算地址。 ARLEN[7:0] 猝发长度。给出猝发中准确的传输个数。该信息给出了和地址相关的数据传输数 量。 ARSIZE[2:0] 猝发大小。这个信号确定猝发中每个传输的大小。字节通道选通用来指示需要更新 的字节通道。 ARBURST[1:0] 猝发类型。该信息与大小信息一起,用于在猝发过程中,地址如何用于每个传输。 ARLOCK 锁类型。这个信号提供了关于传输原子特性的额外信息(普通或互斥访问) ARCACHE[3:0] 缓存类型。这个信号提供可缓存传输属性。 ARPROT[2:0] 保护类型。这个信号提供用于传输的保护单元信息。 ARVALID 读地址有效。这个信号表示读地址有效和控制信息是可用的。该信号一直保持有 效,直到响应信号ARREADY为高。 ARREADY 从 读地址准备。这个信号表示从设备准备接受地址和相关的控制信号。 ARQOS[3:0] 用于每个读交易的地址通道上的4位QoS标识符(可作为优先级标志) ARREGION[3:0] 用于每个读交易的地址通道上的域标识符。
AXI4通道及信号 --读数据通道 读数据通道传送所有来自从设备到主设备的读 数据及读相应信息。表2.5给出了读数据通道信号及 其信号定义。 读数据通道包括: (1) 数据总线宽度:8、16、32、64、128、256、 512和1024位宽度; (2) 读响应表示读交易完成的状态
AXI4通道及信号 --读数据通道 信号名 源 描述 RID[3:0] 从 读ID标记。这个信号是读数据信号组标记。由从设备产生RID,RID必须和 读交易中的ARID值匹配。 RDATA[31:0] 读数据。读数据总线可以是8,16,32,64,128,256,512或者1024位宽度。 RRESP[1:0] 读响应。这个信号表示读传输的状态。可允许的相应为OKAY,EXOKAY, SLVERR和DECERR. RLAST 读最后一个。表示读猝发中的最后一个传输。 RVALID 读有效。这个信号表示所要求的读数据是可用的,能完成读传输。 RREADY 主 读准备。这个信号表示主设备能接受读数据和响应信息。
AXI4通道及信号 --写数据通道 写数据通道传送所有从主设备到从设备的写数据。 表2.6给出了写数据通道信号及信号定义。写数据通道 包括: (1) 数据总线宽度:8、16、32、64、128、256、 512和1024位宽度; (2) 每8位有一个字节通道选通,用来表示数据总线 上的哪个字节是有效的;
AXI4通道及信号 --写数据通道 信号名 源 描述 WDATA[31:0] 主 写数据。写数据总线可以是8,16,32,64,128,256,512或者1024位宽度。 WSTRB[3:0] 写选通。用于表示更新存储器的字节通道。对于数据总线的每8位有一个写选通。 WLAST 写最后一个。表示写猝发中的最后一个传输。 WVALID 写有效。这个信号表示所要求的写有效的写数据和选通是可用的。 WREADY 从 写准备。这个信号表示从设备能接受写数据。
AXI4通道及信号 --写响应通道 写响应通道提供了一种方法,用于从设备响应写 交易。所有的写信号使用完成信号。每个响应用于一 次猝发的完成,而不是用于每个交易的数据。 读交易和写交易可以通过下面的交易例子进行说 明: 1)读猝发交易 2)重叠猝发交易 3)写猝发交易
AXI4通道及信号 --写响应通道 信号名 源 描述 BID[3:0] 从 响应ID. 写响应识别标记。BID值必须匹配写交易的AWID值。 BRESP[1:0] 写响应。这个信号表示写交易的状态。可允许的相应为OKAY,EXOKAY, SLVERR和DECERR. BVALID 写响应有效。这个信号表示所要求的有效写响应是可用的。 BREADY 主 响应准备。这个信号表示主设备可以接受响应信息。
AXI4通道及信号 --写响应通道 图2.3给出了读猝发交易过程中典型信号的交互 过程。 图2.3读猝发交易过程中典型信号的交互过程
AXI4通道及信号 --写响应通道 图2.4给出了写交易过程中典型信号的交互过程。 图2.4写猝发交易过程中典型信号的交互过程
AXI4交易通道的握手信号关系 为了避免死锁条件,必须考虑握手信号之间存在的 依赖关系。在任何交易中: (1) AXI互联中的VALID信号不依赖于交易中其它元件的 READY信号; (2) READY信号能等待VALID信号的确认;
AXI4交易通道的握手信号关系 --AXI4读交易的握手信号关系 图2.5给出了读交易中握手之间的依赖关系。 图2.5 读交易中的握手之间的依赖关系
AXI4交易通道的握手信号关系 --AXI4读交易的握手信号关系 在读交易中: (1) 在确认ARREADY信号前,从设备能等待确认ARVALID信 号; (2)在从设备通过确认RVALID信号开始返回数据前,必须等待 确认所有的ARVALID和ARREADY信号;
AXI4交易通道的握手信号关系 --AXI4写交易的握手信号关系 图2.6给出了写交易中握手之间的依赖关系。 图2.6 写交易中的握手之间的依赖关系
AXI4交易通道的握手信号关系 --AXI4写交易的握手信号关系 在写交易中: (1) 在确认AWVALID和WVALID信号前,主设备不需要等待从 设备确认AWREADY或者WREADY信号; (2) 在确认AWREADY前,从设备能等待AWVALID或WVALID 信号,或者全部这两个信号; (3) 在确认WREADY前,从设备能等待AWVALID或WVALID信 号,或者全部这两个信号; (4) 从设备在确认BVALID前,从设备必须等待确认所有的 AWVALID和AWREADY信号; (5) 在确认BVALID前,从设备不需要等待主设备确认BREADY 信号。 (6) 在确认BREADY前,主设备能等待BVALID信号;
AXI4猝发类型及地址计算 --AXI4猝发类型 (1) 固定猝发(Fixed burst); (2) 递增猝发(Incrementing burst); (3) 包裹猝发(Wrapping burst) 表2.8给出了ARBURST和AWBURST信号所选择的 猝发类型:
AXI4猝发类型及地址计算 --AXI4猝发类型 ARBURST[1:0] AWBURST[1:0] 猝发类型 描述 访问 00 固定(FIXED) 固定地址猝发 FIFO类型 01 递增(INCR) 递增地址猝发 通常的顺序存储器 10 包裹(WRAP) 递增地址猝发,但是在边界时,返回到低地址。 高速缓存行 11 保留 -
AXI4猝发类型及地址计算 --AXI4猝发类型 对于包裹式的猝发方式,有两个限制: (1) 开始地址必须对齐传输大小; (2) 猝发的长度必须是2,4,8或16。 (3) 大于16拍的猝发传输只支持INCR类型。WRAP和 FIXED类型只限于小于16拍的猝发传输。
AXI4猝发类型及地址计算 --AXI4猝发地址 为了说明猝发交易过程中地址的计算方法,首先给出 计算过程中,所需要使用的一些术语: (1) Start_Address: 主设备给出的开始地址; (2) Number_Bytes: 每次数据传输过程中最大的字节个数; (3) Data_Bus_Bytes: 数据总线上的字节通道的个数; (4) Aligned_Address: 开始地址的对齐版本; (5) Burst_Length: 在一个猝发中数据传输的总个数; (6) Address_N: 在一个猝发中传输N个的地址; (7) Wrap_Boundary: 在一个包裹猝发方式的低地址; (8) Lower_Byte_Lane: 一个传输最低寻址字节的字节通道; (9) Upper_Byte_Lane: 一个传输中最高寻址字节的字节通道; (10) INT(x): x取整操作;
AXI4猝发类型及地址计算 --AXI4猝发地址 给上面的术语进行如下的赋值操作: (1) Start_Address=ADDR; (2) Number_Bytes=2SIZE; (3) Burst_Length=LEN+1; (4)Aligned_Address=(INT(Start_Address/Number_Byte))x Number_Bytes;
AXI4猝发类型及地址计算 --AXI4猝发地址 在一个猝发中,第一个传输的地址表示为: Address_1=Start_Address; 在一个猝发中,传输N个数据后的地址表示为: Address_N=Aligned_Address+(N-1)x Number_Bytes; 对于WARP的猝发方式,其边界由下式确定为: Wrap_Boundary=(Int(Start_Address/(Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length); 如果Address_N=Wrap_Boundary+(Number_Bytes x Burst_Length). 则使用这个等式: Address_N=Wrap_Address 在边界后,使用这个等式: Address_N = Start_Address + ((N – 1) x Number_Bytes) – (Number_Bytes x Burst_Length);
AXI4猝发类型及地址计算 --AXI4猝发地址 使用下面的等式确定第一个传输中使用哪个字 节通道: Lower_Byte_Lane = Start_Address - (INT(Start_Address / Data_Bus_Bytes))x Data_Bus_Bytes Upper_Byte_Lane = Aligned_Address + (Number_Bytes – 1) -(INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes;
AXI4猝发类型及地址计算 --AXI4猝发地址 使用下面的等式确定在一个猝发中第一个传输 后用于所有传输中使用哪个字节通道: Lower_Byte_Lane = Address_N – (INT(Address_N / Data_Bus_Bytes)) x Data_Bus_Bytes; Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1; 传输数据的范围在: DATA[(8xUpper_Byte_Lane) + 7 : (8 x Lower_Byte_Lane)];
AWCACHE和ARCACHE属性 AWCACHE[3:2]和ARCACHE[3:2] 对于读交易,写分配位表示: (1) 由于一个写交易,位置能预先在高速缓存Cache中进行分 配; (2) 由于其它主设备的行为,位置能预先在高速缓存Cache中 进行分配; (3) 对于写交易,读分配位表示: (4) 由于一个读交易,位置能预先在高速缓存Cache中进行分 (5) 由于其它主设备的行为,位置能预先在高速缓存Cache中
AWCACHE和ARCACHE属性AWCACHE[1]和ARCACHE[1] AWCACHE[1]和ARCACHE[1]在AXI4中表示可修改 位。该位为1时,表示交易是可修改的,否则交易时不可 修改的。 1.不可修改的交易 不可修改交易不能分割成多个交易或者与其它交易合 并。交易不可修改时,下面的参数是不可修改的:传输地 址(AWADDR, ARADDR, AWREGION, ARREGION)、 猝发大小(AWSIZE, ARSIZE)、猝发长度(AWLEN, ARLEN)、猝发类型(AWBURST. ARBURST)、锁类 型(AWLOCK, ARLOCK)、保护类型(AWPROT, ARPROT)。
AWCACHE和ARCACHE属性AWCACHE[1]和ARCACHE[1] 不可修改交易中,交易ID和QoS值是可修改的。对 于猝发长度大于16的不可修改的交易,允许分割成多 个交易。每个产生的交易都满足上面的要求,但减少 猝发长度,所产生的猝发地址也相应的修改。
AWCACHE和ARCACHE属性AWCACHE[1]和ARCACHE[1] 2.可修改的交易 可修改的交易可以通过下面的方法进行操作: (1) 交易能分割成多个交易; (2) 多个交易能合并成一个交易; (3) 读交易能取出比要求多的数据; (4) 写交易能访问比要求更大的地址范围,使用写选通信号 来保证只更新合理的位置; (5) 可以修改每个产生交易的传输地址(AWADDR, ARADDR)、猝发大小(AWSIZE, ARSIZE)、猝发长度 (AWLEN, ARLEN)、猝发类型(AWBURST. ARBURST) 但是不能修改锁类型(AWLOCK, ARLOCK)、保护类型 (AWPROT,ARPROT)。可修改交易中,交易ID和QoS值是 可修改的。
AWCACHE和ARCACHE属性AWCACHE[0]和ARCACHE[0] 端设备发出或者由写的是最终目的地发出。
AXI互联结构模型 其互联结构模型包括: 下面对这几种互联结构模型进行介绍: 直通模式; 只转换模式; N-1互联模式; 1-N互联模式; N-M互联模式。 下面对这几种互联结构模型进行介绍:
AXI互联结构模型 --直通模式 如图2.7所示,当只有一个主设备和一个从设备和 AXI互联时,AXI互联不执行任何转换或流水线功能, 有延迟存在,同时不消耗逻辑资源。 主设备0 从设备0 图2.7 直通模式 互联
AXI互联结构模型 --只转换模式 如图2.8所示,当连接一个主设备和一个从设备时, AXI互联能执行不同的转换和流水线功能。这些功能主 要包括: 数据宽度转换; 时钟速率转化; AXI4-Lite从适应; AXI-3从适应; 流水线(例如一个寄存器Slice或者数据通道FIFO)。 在只转换模式下,AXI互联不包含仲裁、解码或布线 逻辑,但是可能产生延迟。
AXI互联结构模型 --只转换模式 主设备0 转换/流水 从设备0 图2.8转换模式 互联
AXI互联结构模型 --N-1互联模式 如图2.9所示,AXI互联的一个普通的退化配置模 式是,多个主设备访问一个从设备。 典型的情况是,一个存储器控制器,很显然需要仲 裁逻辑。这种情况下,AXI互联不需要地址译码逻辑 (除非需要确认地址的有效范围)。在这个配置中, 也执行数据宽度和时钟速率的转换。
AXI互联结构模型 --N-1互联模式 互联 主设备0 从设备0 图2.9 N-1互联模式 主设备1 仲 裁 器
AXI互联结构模型 --1-N互联模式 如图2.10所示,另一个AXI互联退化的结构是,一 个主设备,典型的处理器,访问多个存储器映射的从 写数据通道)。 互联 主设备0 从设备0 图2.10 1-N互联模式 从设备1 解码/布线
AXI互联结构模型 --N-M互联模式 AXI互联提供了一种共享地址多数据流(SAMD) 拓扑结构,这种结构中包含稀疏的数据交叉开关连 接,单线程写和读地址仲裁。如图2.11所示,给出了一 种共享写和读地址仲裁的N-M的AXI互联结构。
AXI互联结构模型 --N-M互联模式 互联 从设备0 主设备0 路由器 从设备1 主设备1 从设备2 主设备2 写交易仲裁器 读交易仲裁器 AW AR 主设备0 路由器 图2.11 共享写和读地址仲裁结构 主设备1 主设备2 互联 从设备0 从设备1 从设备2
用户信号 通常情况下,不推荐使用用户信号,因为在AXI4协 议中没有定义它们的功能,这样两个元件在不兼容行 为下使用相同的用户信号,可能导致互操作性问题。 下面给出每个AXI4通道的用户信号名字: AWUSER:写地址通道用户信号; ARUSER:读地址通道用户信号; WUSER:写数据通道用户信号; RUSER:读数据通道用户信号; BUSER:写响应通道用户信号;
用户信号 当实现用户信号时,并不要求所有通道支持用户 信号。此外,不希望在一个通用的主设备和从设备元 件接口支持用户信号。 推荐,包含支持用户信号的互联元件允许这些信 号在主设备和从设备之间进行传递。用户信号的宽度 在实现时定义,在每个通道的宽度可以不同。
AXI4-Lite功能 AXI4-Lite接口是AXI4接口的子集专用于和元件内的 口,这个接口是较小的,对设计和验证方面的要求更 少。AXI4-Lite接口的关键特性包含: 所有交易的猝发长度为1; 所有访问数据的大小和数据总线宽度相同; 支持数据总线宽度为32位或64位(要求64位原子访问); 所有的访问相当于AWCACHE和ARCACHE等于b0000(非缓冲和非缓存的); 不支持互斥性操作;
AXI4-Lite功能 全局 写地址通道 写数据通道 写响应通道 读地址通道 读数据通道 ACLK AWVAILD WVALID BVALID ARVALID RVALID ARESETn AWREADY WREADY BREADY ARREADY RREADY - AWADDR WDATA BRESP ARADDR RDATA AWPROT WSTRB ARPROT PRRESP
AXI4-Lite功能 支持多个未完成的交易,但是一个从设备的设计 允许通过合理的使用握手信号,对这种交易进行限制。 在AXI-Lite中不支持AXI IDs。这个定义规定了所 有的交易必须是顺序的,所有的交易必须使用一个单 独固定的ID值。 从设备可选择支持AXI ID信号,这样允许使用的从 设备是全AXI接口,而不需要对接口进行修改。
AXI4-Lite功能 AXI4-Lite支持写选通。这样允许实现多个不同大 小的寄存器,也允许实现可以使用字节和半字访问进 行写操作的存储器结构。所有的主接口和互联必须提 供正确的写选通信号。所有的从设备元件可以选择是 否使用写选通信号。对于提供类似存储器行为的从设 备元件必须充分的支持写选通。
AXI4-Lite功能 表2.10给出了AXI和AXI4-Lite的互通性。只有主设 种情况要求反映ID,使用和地址交易相关的AXI ID,然 后随读数据或者写响应返回相同的ID号,这是因为主设 备需要返回的ID来正确识别交易的响应。
AXI4-Lite功能 主设备 从设备 互通性 AXI 充分 AXI-Lite 要求反映AXI ID,可能要求转换
AXI4-Stream功能 AXI4-Stream协议作为一个标准的接口,这个接口 用于连接希望交换数据的元件。接口用于将产生数据 的一个主设备和接收数据的一个从设备连接。当很多 元件和从元件连接时,也能使用这个协议。协议支持 使用具有相同设置共享总线的多个数据流,允许建立 一个互联结构,这个结构能够执行扩展、压缩和路由 操作。 AXI-Stream接口支持很多不同的流类型。流协议在 传输和包之间定义了联系。表2.11给出了AXI-Stream接 口的信号定义。
AXI4-Stream功能 信号 源 描述 ACLK 时钟源 全局时钟信号。所有信号在ACLK信号上升沿采样 ARESETn 复位源 TVALID 主 TVALID表明主设备正在驱动一个有效的传输。当确认TVALID和TREADY信号后,发生一个传输。 TREADY 从 TREADY表明在当前周期能接收一个传输 TDATA[(8n-1):0] TDATA是基本的有效载荷,用来提供跨越接口的数据。数据为整数个字节 TSTRB[(n-1):0] TSTRB为字节修饰符,用来描述TDATA相关字节内容作为一个数字字节或者一个位置字节被处理。 TKEEP[(n-1):0] TKEEP是字节修饰符,用来表明TDATA相关字节的内容是否作为数据流的一部分被处理。 TKEEP字节修饰符未被确认的那些相关的字节是空字节,可以从数据流中去除。 TLAST TLAST表明了包的边界 TID[(i-1):0] TID是数据流的标识符,用来表明不同的数据流。 TDEST[(d-1):0] TDEST为数据流提供路由信息。 TUSER[(u-1):0] TUSER是用户定义的边带信息,这些信息能伴随数据流进行发送。
AXI4-Stream功能 TVALID和TREADY握手信号用来确定跨越接口数 据的时间。双向的流控制机制使得主设备和从设备能 控制跨越接口所发送的数据和控制信息的速度。对于 一个发生的传输,必须确认TVALID和TREADY信号。 一个主设备不允许在确认TVALID前,等待确认 TREADY。一旦确认TVALID,必须一直保持这个状 态,直到产生握手信号。 在确认相应的TREADY信号前,一个从设备允许等 待确认TVALID。 如果从设备确认了TREADY,在TVALID信号确认 前,允许不确认(释放)TREADY。
AXI4-Stream功能 1. TVALID在TREADY前的握手信号 图2.13给出了TVALID在TREADY前的握手信号。 从图中可以看出,主设备给出数据和控制信号,并且确 认TVALID信号为高。一旦主设备确认了VALID,来自主 设备的数据或者控制信息保持不变,这种状态一直保持 到从设备驱动TREADY信号为高,用来表示从设备可以 接收数据和控制信号。在这种情况下,一旦从设备确认 TREADY为高,则进行传输。箭头标记的地方表示传输 开始。
AXI4-Stream功能 图2.13 TVALID在TREADY前握手
AXI4-Stream功能 2. TREADY在TVALID前的握手信号 图2.14给出了TREADY在TVALID前的握手信号 图。图中可以看出,从设备在数据和控制信息有效 前,驱动TREADY信号为高。这表示,目的设备能在 一个ACLK周期内接收数据和控制信息。在这种情况 下,一旦主机确认TVALID信号为高,则开始传输。箭 头标记的地方表示传输开始。
AXI4-Stream功能 图2.14 TREADY在TVALID前握手
AXI4-Stream功能 3.TVALID和TREDAY握手 图2.15给出了TVALID和TREADY握手的图。在一 个ACLK周期内,主设备确认TVALID为高,从设备确 认TREADY为高。在箭头标记的地方产生传输。
AXI4-Stream功能 图2.15 TREADY和TVALID握手