当前位置: 首页 > news >正文

AXI4 协议

一、AXI4简介

AXI4(Advanced eXtensible Interface 4)是ARM公司推出的高性能片上总线协议,属于AMBA(Advanced Microcontroller Bus Architecture)标准的一部分。它专为高带宽、低延迟的片上通信设计,广泛应用于处理器、DSP、FPGA等复杂系统中。AXI4包含三个变体:

  • AXI4:标准版本,支持高带宽内存映射通信。
  • AXI4-Lite:简化版,用于寄存器等简单设备的轻量级访问。
  • AXI4-Stream:无地址协议,适用于高速数据流传输(如视频、音频)。

二、写数据

一、写地址通道

一、不重要信号:

信号名信号源信号介绍
AWID
mastar

写地址ID。这个信号是写地址组的标识标签的信号

AWLOCKmastar提供有关传输的原子特性的其他信息。
AWCACHE
mastar总线存储类型
AWPROT
mastar保护类型。他的信号表明事务的特权和安全级别,以及该事务是数据访问还是指令访问。
AWQOS
mastar

服务质量,QoS为每个写事务发送的QoS标识符。仅在axis4中实现。

AWREGION
mastar

区域标识符。允许从机上的单个物理接口用于多个逻辑接口。仅在axis4中实现。

AWUSER
mastar

用户信号。可选写地址通道中的用户自定义信号。仅在axis4中支持

二、重要信号

信号名信号源信号介绍
AWADDR
mastar写地址.写地址给出了写突发事务中第一次传输的地址
AWLEN
mastar突发长度,突发长度给出了突发中传输的确切数量。此信息确定与该地址相关的数据传输的数量。这在AXI3和AXI4之间有所不同
AWSIZE
mastar突发大小。这个信号表示在突发中每次传输的大小
AWBURST
mastar突发类型。突发类型,加上大小信息(AWSIZE),详细说明了如何在突发中计算每个传输的地址。
AWVALID
mastar

写地址有效。该信号表明通道正在发送有效写入信号地址和控制信息

AWREADY
slaver写地址准备好。这个信号表明从机准备好接受一个地址和相关的控制信号:1 =从机准备好了0 =从机还没有准备好

二、写数据通道

一、不重要信号:

信号名信号源信号介绍
WID
mastar写ID标签。这个信号是写入数据传输的ID标签。仅在axis3中支持。
WUSER
mastar

用户信号。可选写数据通道中的用户自定义信号。仅在axis4中支持

二、重要信号:

信号名信号源信号介绍
WDATA
mastar写数据
WSTRB
mastar写选通(strobe)。这个信号指示内存中要更新的字节位置。写数据总线的每8位都有一个写选通。因此,WSTRB[n]对应于WDATA[(8 × n) + 7:(8 × n)],即每一位选通自己对应的Byte
WLAST
mastar写最后一个数据。这个信号指示写突发中的最后一次传输。
WVALID
mastar写有效。这个信号表示有效的写数据和选通可用:1 = 写数据和WSTRB可用 ; 0 =写数据和WSTRB不可用。
WREADY
slaver写准备好信号。这个信号表示从机可以接受写数据

写选通介绍:假如32数据我们只要写入低十六位,只要将WSTRB设置为0011即可。

verilog
// 只更新低16位数据
WDATA = 32'hAABBCCDD;
WSTRB = 4'b0011; // 只使能最低两个字节// 这将导致:
// - 字节0 (DATA[7:0]) = DD (被写入)
// - 字节1 (DATA[15:8]) = CC (被写入)
// - 字节2 (DATA[23:16]) = BB (被忽略)
// - 字节3 (DATA[31:24]) = AA (被忽略)

三、写响应通道信号

一、不重要信号

信号名信号源信号介绍
BID
slave写ID标签。这个信号是写入数据传输的ID标签。仅在axis3中支持。
BUSER
slave

用户信号。可选写数据通道中的用户自定义信号。仅在axis4中支持

二、重要信号

信号名信号源信号介绍
BRESP
slave写响应。这个信号指示写事务的状态。允许的响应有OKAY、EXOKAY、SLVERR和DECERR。
BVALID
slave写响应有效。这个信号表明一个有效的写响应是可用的:1 =写响应可用0 =写响应不可用
BREADY
mastar响应ready。这个信号表示主机可以接受响应信息。1 = master就绪0 = master未就绪

四、写通道介绍

写数据的三个通道是相互独立的。显示写事务如何使用写地址、写数据和写响应通道。

三、读数据

一、读地址通道

一、不重要信号

信号名信号源信号介绍
ARID
mastar读地址ID。该信号是信号读地址组的识别标签
ARLOCK
mastar提供有关传输的原子特性的其他信息。
ARCACHE
mastar存储类型。该信号指示事务如何在系统中进行
ARPROT
mastar

保护类型。该信号表示事务的特权和安全级别,以及该事务是数据访问还是指令访问

ARQOS
mastar

服务质量,QoS为每个读事务发送的QoS标识符。仅实现在axis4中

ARREGION
mastar

区域标识符。允许从机上的单个物理接口用于多个接口逻辑接口。仅在axis4中实现

ARUSER
mastar

用户信号。可选读地址通道中自定义信号。仅在axis4中支持

二、重要信号

信号名信号源信号介绍
ARADDR
mastar

读地址。读地址给出了读突发中第一次传输的地址事务

ARLEN
mastar

突发长度。这个信号表明在一个突发中传输的确切数量。这在AXI3和AXI4之间有所不同

ARSIZE
mastar突发大小。这个信号表示在突发中每次传输的大小。
ARBURST
mastar突发类型。突发类型和大小信息决定了如何计算突发内每个传输的地址
ARVALID
mastar读地址有效。该信号表明通道正在发送有效的读地址和控制信息
ARREADY
Slave
读地址准备好了。这个信号表明从机已经准备好接受一个地址以及相关的控制信号

二、读数据通道

一、不重要信号

信号名信号源信号介绍
RID
Slave
读取ID标签。该信号是从机产生的读数据组信号的识别标签
RRESP
Slave
读取响应。该信号表示读传输的状态。
RUSER
Slave
用户信号。可选读数据通道中的用户自定义信号。仅在axis4中支持。

二、重要信号

信号名信号源信号介绍
RDATA
Slave
读数据。
RLAST
Slave
读最后一次。这个信号表示读突发中的最后一次传输
RVALID
Slave
读有效信号。该信号表明通道正在发送所需的读取数据
RREADY
mastar都准备好信号。这个信号表示主机可以接受读取的数据和响应信息

三、读数据介绍

AXI4读事务使用读地址和读数据通道示意:

四、AXI4 LIte和AXI4接口对比图。

如下可见AXI4 lite接口相较于AXI4做了很多简化,基本上只保留重要信号。

特性AXI4-LiteAXI4 (Full)
设计目的简单控制寄存器访问高性能大数据量传输
突发传输不支持。每次传输只读/写一个数据支持。可传输大量连续数据(最多256 beat)。
数据宽度通常固定为 32bit 或 64bit支持更宽的数据总线(可到1024bit)
通道信号大幅简化功能完整
读写通道分离的读/写地址和数据通道分离的读/写地址和数据通道
事务属性极少(如:非安全、非特权、数据无关)丰富(如:内存类型、缓存、缓冲区策略)
使用场景访问IP核的控制状态寄存器(CSR)高带宽内存(DDR)、DMA高速外设通信
实现复杂度,逻辑资源占用少,逻辑资源占用多
握手信号必须有(xVALID/xREADY必须有(xVALID/xREADY

1. 突发传输 (Burst Transfer)

这是最根本的区别。

  • AXI4-Lite每次事务只能传输一个数据单元。例如,要写入4个32位的数据,主设备必须发起4次独立的写事务(每次包含地址 phase 和数据 phase)。这效率低下,但控制简单。

  • AXI4支持突发传输。主设备只需提供起始地址突发长度(Burst Length,例如4),就可以在一次事务中连续传输4个数据。从设备会自动递增地址。这极大地提高了数据传输效率,减少了总线开销。

2. 通道信号简化

AXI4-Lite 移除了AXI4中与高性能操作相关的所有复杂信号,例如:

  • AxLEN突发长度。AXI4-Lite 没有这个信号,因为长度固定为1。

  • AxSIZE突发大小。每次传输的大小必须与数据总线宽度一致(如32位总线就是4字节)。

  • AxBURST突发类型。固定为增量突发(Incr),但因为长度是1,所以地址也不会变。

  • WLAST最后一个写数据。因为每次写只有一个数据,所以这个信号不需要。

  • RLAST最后一个读数据。同理,不需要。

  • AxLOCKAxCACHEAxQOSAxPROT 等:事务属性。大部分被移除或固定为常量值。

3.如何选择?

选择使用哪种接口取决于IP核的功能和性能需求:

  • 使用 AXI4-Lite 当:

    • IP核只需要被配置(例如:设置使能位、中断掩码、控制寄存器)。

    • IP核只需要提供状态信息(例如:读取状态寄存器、中断状态位)。

    • 数据传输是偶尔的、零星的,对带宽要求极低。

    • 你想要最小化逻辑资源和功耗。

  • 使用 AXI4 当:

    • IP核需要持续不断地流式传输大量数据(例如:视频帧、音频数据、网络数据包)。

    • IP核作为DMA控制器,需要在内存和外设之间搬移大块数据。

    • IP核需要高带宽和低延迟来访问系统内存(DDR)。

    • 性能是首要考虑因素。

五、握手机制

1、基本握手机制

AXI4 使用简单的双向握手协议:

  • VALID 信号:由发送方驱动,表示数据/地址/控制信息已经准备好并有效

  • READY 信号:由接收方驱动,表示接收方已准备好接受数据

传输发生在时钟上升沿当 VALID 和 READY 同时为高时

2、AXI4 通道及其握手信号

通道方向VALID 信号READY 信号功能描述
写地址通道主→从AWVALIDAWREADY传输写地址和控制信息
写数据通道主→从WVALIDWREADY传输写数据和写选通
写响应通道从→主BVALIDBREADY返回写操作响应
读地址通道主→从ARVALIDARREADY传输读地址和控制信息
读数据通道从→主RVALIDRREADY返回读数据和响应

六、突发传输

由图可见在突发读时候,地址必须要在读地址有效和读地址准备信号同时有效时候才能有效。T2时刻上升沿时候可见。然后就是读数据通道。读数据通道下,读有效和读有效准备信号也是同时拉高才有效。然后在读数据通道根据我们读地址信号的数据进行突发传输。但是从机响应的准备信号拉高时和用户读有效拉高时候才传输。突发写同理不过多介绍。

http://www.dtcms.com/a/388745.html

相关文章:

  • 懒删除|并查集|容斥
  • 鲁大齐专业WordPress外贸独立站建设服务商
  • 【LeetCode 每日一题】3516. 找到最近的人
  • 团体程序设计天梯赛-练习集 L1-030 一帮一
  • delphi 最大String
  • 线程安全的C++对象:深入探讨与实现
  • 关于段访问机制
  • 如何判断nmos和pmos导通和截止
  • 密码攻击技术全景:模型、方法与攻防演进
  • Avalonia跟WPF的不同点
  • 下载 | Win11 25H2 准正式版更新!(ISO映像、2025年度版本、26200.6713、Windows 11)
  • 2025年生态环境大数据技术发展潜力大不大?
  • opencv静态编译win10
  • Linux进程控制与编程实战:从fork到mini-shell的完整指南
  • Python实现三角龙优化算法 (Triceratops Optimization Algorithm, TOA) 优化函数(附完整代码)
  • JS开发工具有哪些?常用JS开发工具推荐、JS调试工具对比与最佳实践分享
  • QNX系统入门总结
  • 网站服务相关问题
  • 系统设计(Python\JAVA)选题
  • 移动零_优选算法(C++)
  • 【字节跳动】LLM大模型算法面试题:llama 输入句子长度理论上可以无限长吗
  • 基于STM32单片机的超声波跟随婴儿车设计
  • 深入理解 Linux 系统调用
  • 工厂模式VS抽象工厂模式
  • Python面试题及详细答案150道(136-150) -- 网络编程及常见问题篇
  • type 对比 interface【前端TS】
  • qt使用camke时,采用vcpkg工具链设置VTK的qt模块QVTKOpenGLNativeWidget
  • 【Linux网络编程】传输层协议-----TCP协议
  • 英莱科技焊缝跟踪系统亮相德国埃森焊接展,激光视觉点亮世界舞台
  • 【提示工程】向AI发出高质量的指令(实战篇)