AXI总线整理总结

article/2025/9/24 17:54:37

AXI总线

 

一、Definition

嵌入式系统是当今计算机工业发展的一个热点,随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和若干I/O接口等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统SoC(System on Chip)。由于功能完整,SoC逐渐成为嵌入式系统发展的主流[1]。

SoC片上总线尚处于发展阶段,不像微机总线那样成熟,目前还没有统一的标准,因此各大厂商和组织纷纷推出自己的标准,以便在未来的SoC片上总线标准中占有一席之地[2]。ARM公司就在1995年推出了自己的总线——AMBA(Advanced Microcontroller Bus Architecture)。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可重用性,非常适合于现代大规模集成电路设计自动化的要求。AMBA3.0中新增加了一种总线——AXI(Advanced eXtensible Interface)。它是一种面向高性能、高带宽、低延迟的片内总线,它的总线结构如Figure 1所示。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的SoC设计的需求。

Figure 1 AMBA总线结构示意图

AXI 能够使SoC 以更小的面积、更低的功耗,获得更加优异的性能。AXI 获得如此优异性能的一个主要原因,就是它的单向通道体系结构。单向通道体系结构使得片上的信息流只以单方向传输,减少了延时。除了降低延时,AXI总线还定义了在进出低功耗节电模式前后的握手协议。规定如何通知进入低功耗模式,何时关断时钟,何时开启时钟,如何退出低功耗模式。这使得所有IP在进行功耗控制的设计时,有据可依,容易集成在统一的系统中。AXI的特点如下:

  1. 单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。
  2. 支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
  3. 独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
  4. 增强的灵活性。AXI技术拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。

 

二、Principle

1、AXI总线事务级描述

AXI总线主要是指AXI的总线协议,它具有5个通道,分别是read address channel 、 write address channel 、 read data channel 、 write data channel、 write response channel,每一个通道都是单向的。地址通道携带控制消息用于描述被传输的数据属性,数据传输使用写通道来实现“主”到“从”的传输,“从”使用写响应通道来完成一次写传输;读通道用来实现数据从“从”到“主”的传输。具体的定义如Tabel 1所示。

Table 1 AXI总线五通道组成表

通道名称

通道功能

数据流向

read address

读地址通道

主机->从机

read data

读数据通道(包括数据通道和读响应通道)

从机->主机

write address

写地址通道

主机->从机

write data

写数据通道(包括数据通道和每8bit一个byte的写数据有效信号)

主机->从机

write response

写响应通道

从机->主机

通过这五个通道进行操作来实现AXI协议定义的基础事件,每一个事务都有地址和控制信息在地址通道中,用来描述被传输数据的性质。这5条独立的通道都包含一个信息信号和一个双路的VALD、READY握手机制。信息源通过VALID信号来指示通道中的数据和控制信息什么时候有效。目地源用READY信号来表示何时能够接收数据。读数据和写数据通道都包括一个LAST信号,用来指明一个事物传输的最后一个数据。读和写事务都有他们自己的地址通道,这地址通道携带着传输事务所必须的地址和信息。读数据通道传送着从设备到主机的读数据和读响应信息。读响应信息指明读事务的完成状态。写数据通路传送着主机向设备的写数据。每八个数据都会有一个byte lane ,用来指明数据总线上面的哪些byte有效。写响应通道提供了设备响应写事务的一种方式。这完成信号每一次突发式读写会产生一个。具体的读写事务如Figure 2和Figure 3所示。

Figure 2 读事务的结构图

Figure 3 写事务的结构图

2、AXI总线信号级描述

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

  1. 全局信号

信号

描述

ACLK

Clock source

全局时钟信号

ARESETn

Reset source

全局复位信号,低电平有效

  1. 写地址通道信号

    信号

描述

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 =  设备没准备好

  1. 写数据通道信号

信号

描述

WID[3:0]

主机

写ID tag,WID的值必须与AWID的值匹配

WDATA[31:0]

主机

写的数据。

WSTRB[3:0]

主机

写阀门。WSTRB[n]标示的区间为WDATA[(8*n)+7:(8*n)]

WLAST

主机

写的最后一个数据。

WVALID

主机

写有效

1 = 写数据和阀门有效

0 =  写数据和阀门无效

WREADY

设备

写就绪。指明设备已经准备好接受数据了

1 = 设备就绪

0 = 设备未就绪

  1. 写响应通道信号

信号

描述

BID[3:0]

设备

响应ID , 这个数值必须与AWID的数值匹配。

BRESP[1:0]

设备

写响应。这个信号指明写事务的状态。可能有的响应:OKAY、EXOKAY、SLVERR、DECERR。

BVALID

设备

写响应有效。

1 = 写响应有效

0 = 写响应无效

BREADY

主机

接受响应就绪。该信号表示主机已经能够接受响应信息。

1 = 主机就绪

0 = 主机未就绪

  1. 读地址通道信号

信号

描述

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 = 设备未就绪

  1. 读数据通道信号

信号

描述

RID[3:0]

设备

读ID tag。RID的数值必须与ARID的数值匹配。

RDATA[31:0]

设备

读数据。

RRESP[1:0]

设备

读响应。这个信号指明读传输的状态:OKAY、EXOKAY、SLVERR、DECERR。

RLAST

设备

读事务传送的最后一个数据。

RVALID

设备

读数据有效。

1 = 读数据有效。

0 = 读数据无效。

RREADY

主机

读数据就绪。

1 = 主机就绪

0 = 主机未就绪

  1. 低功耗接口信号

信号

描述

CSYSREQ

CLOCK controller

系统低功耗请求。此信号来自系统时钟控制器,使外围设备进入低功耗状态。

CSYSACK

外围设备

低功耗请求应答。

CACTIVE

外围设备

Clock active

1 = 外围设备时钟请求

0 = 外围设备时钟无请求

  1. 突发式读的时序图如下:

当地址出现在地址总线后,传输的数据将出现在读数据通道上。设备保持VALID为低直到读数据有效。为了表明一次突发式读写的完成,设备用RLAST信号来表示最后一个被传输的数据。

设备会在第一次突发式读完成后处理第二次突发式读数据。也就意味着,主机一开始传送了两个地址给设备。设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据。

  1. 突发式写时序图如下:

这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时,WLAST信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。

3、主机/设备之间的握手过程

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

在箭头处信息传输发生。

(2) READY先变高VALID后变高。时序图如下:

同样在箭头处信息传输发生。

(3) VALID和READY信号同时变高。时序图如下:

在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生。

2、通道之间的关系

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

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

   两种关系必须被保持:

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

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

3、通道握手信号之间的依赖性

   读事务握手依赖关系如图:

(1)设备可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。

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

写事务握手依赖关系如图:

 

(1)主机必须不能够等待设备先给出AWREADY或WREADY信号信号后再给出信号AWVALID或WVLAID。

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

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

4、AXI协议时钟控制接口

1)低功耗时钟控制接口包括下面两个信号:

(1) 来自外围设备的信号,用于指明什么时候时钟使能能或者禁能。

(2) 两个握手信号用于系统时钟控制器请求退出或者进入低功耗状态。

2)时钟控制接口的一个主要信号时CACTIVE,外围设备用这个信号来指明请求时钟使能。外围设备置CACTIVE有效去请求时钟,系统时钟控制器必须马上使能时钟。如果外围设备将CACTIVE置为无效,则系统时钟控制器将自己决定是否使能或者禁能外围设备时钟。

3)AXI协议提供双线 request/acknowledge 握手来支持请求:

(1)CSYSREQ  当外围设备请求进入低功耗状态时,系统时钟控制器将CSYSREQ置低,平时CSYSREQ都是置高的。

(2)CSYSACK  外围设备用CSYSACK信号作为进入低功耗状态和离开低功耗状态的应答信号。

下面是CSYSREQ和CSYSACK信号之间的时序图:

系统时钟控制器在T1时刻发出请求,外围设备在T2时刻给予应答,此时进入低功耗状态。在T3时刻,CSYSREQ变高,请求离开低功耗状态,在T4时刻得到应答,此时离开低功耗状态进入正常模式。

4)外围设备可以选择接受请求也可以选择不接受请求。主要通过信号CACTIVE来决定。

、既可以通过系统也可以通过外围设备来退出低功耗状态。只要置信号CACTIVE和CSYSREQ这两个信号中的一个为高就可以退出低功耗模式。

而系统可以通过置CSYSREQ为高来退出低功耗模式。

5)时钟控制框图如下:

三、Roadmap of development

       由于AXI是ARM公司的总线协议,所以他的产生和发展大部分都是ARM公司完成的。大部分论文都是将AXI应用到不同方向或者应用到特定场景而进行了一些修改。我整理了一些时间节点,具体如下图所示。

 

四、Example

       作为AMBA总线的一部分,AXI总线理所当然的应用到了ARM的产品上。然而除了ARM的产品,比如ARM A7等产品,赛灵思公司(Xilinx)推出的行业第一个可扩展处理平台Zynq系列中也有AXI总线。

    ZYNQ拥有ARM+FPGA这个神奇的架构,其中ARM和FPGA直接的通信就是通过AXI进行的。

https://images2015.cnblogs.com/blog/806931/201702/806931-20170227160633485-965173260.jpg

 

 


http://chatgpt.dhexx.cn/article/aHEvnGrE.shtml

相关文章

AXI 总线协议学习笔记(3)

引言 上篇文章主要介绍了 AMBA以及AXI协议的基本内容,本文接续前文,继续介绍AXI协议的 原子访问、传输行为和事务顺序等。 AXI 总线协议学习笔记(2)https://blog.csdn.net/qq_43045275/article/details/128824643 原子访问 原子…

AXI总线总结

目录 1 综述 2 AXI通道概述 2.1 综述 2.2 读地址与写地址通道 2.3 读数据通道 2.4 写数据通道 2.5 写响应通道 3 AXI互联结构 4 AXI中使用寄存器切片 5 AXI术语 5.1 AXI组件与拓扑 5.2 AXI传输与存储器类型 6 AXI信号描述 6.1 公共信号 6.2 写地址通道信号 6.3…

AXI总线

AXI总线 AXI总线简介 AXI总线是一种总线协议,是ARM公司提出的AMBA3.0协议(目前已AXI4已发布) 中的最重要的部分,是一种高性能、高带宽、低延时的片内总线。支持不对齐的数据传输和突发传输。在突发传输中只需要首地址,并且支持同时分离的读…

SoC设计与验证——总线篇——AXI总线

1. AXI总线特征 axi总线可以连接CPU的cache和其他外设,比如内存等。内存是从属设备,它接受信号,并驱动ready信号;主从设备都会驱动data信号,总线仲裁器只看request和grant信号,而忽略所有的其他信号。 详…

AXI总线简介

0.绪论 AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主…

calender控件应用

历控件是.net自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少。纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发。   新建一个用户控件,把cale…

CalendarPicker

CalendarPicker 项目地址:maxyou/CalendarPicker 简介:A calendar picker to select a day. Can preset a selected day. 更多:作者 提 Bug 标签: Calendar Picker Can preset a selected day. Can customize almost al…

vue-calender

​​ 实现功能 生成当月的日历&#xff0c;并且标记当天的日期在输入框中输入日期会跳转到对应的月份&#xff0c;并标记输入的日期中间两个按钮( < >)控制月份的更改&#xff0c;可以切换月份旁边两个按钮( << >>)控制月份的更改&#xff0c;可以切换年份…

Java Calender类的一些常用方法

Calendar 日期类介绍 Calendar c Calendar.getInstance();//创建实例 默认是当前时刻   c.get(Calendar.YEAR);   c.get(Calendar.MONTH);   c.get(Calendar.DATE);//获取年,月,日 当然时分秒也可以 注意这里的月份比较特殊 从0开始   c.get(Calendar.DAY_OF_WEE…

Java日期Canlender

java.util.Carlendar介绍: Calendar 类是一个抽象类&#xff0c;它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法&#xff0c;并为操作日历字段&#xff08;例如获得下星期的日期&#xff09;提供了一些方法。 Calendar 提供了一个…

再次和谐

好吧&#xff01;等我有心情自己做网站的&#xff0c;一定在国外架。 你看到下面的截图就知道和谐了。 我在搜OpenGL的函数说明时看到的。 这不是明显把人们往国外赶嘛&#xff01; "清空FTP"&#xff0c;还"永不再绑定原有域名"。 这个“非法信息”是什…

鹤城杯2021 Crypto Writes up

鹤城杯2021 Crypto Writes up 这比赛原题横行有点水&#xff0c;跟着大佬们拿了个34名。 #1 easy_crypto 附件&#xff1a; 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平…

社会主义核心价值观

又是一道图片题&#xff0c;那么我们按照流程先查看属性&#xff0c;在属性页面发现疑似URL密码的字符串&#xff0c;于是我们直接使用工具进行解密 解密得到社会主义核心价值观 &#xff1a;富强、民主、文明、和谐&#xff1b;自由、平等、公正、法治&#xff1b;爱国、敬业…

NSSCTF刷题wp——Crypto入门

NSSCCTF Crypto 探索 Crypto入门 [鹤城杯 2021]easy_crypto ID:453 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平等爱国和谐公正平等敬业公正敬业自由敬业平等自由法治和…

和谐

什么也不说了&#xff0c;看图。 现在是2009-02-11 14&#xff1a;26。 很好&#xff0c;很和谐。

使用 java-onnx 部署 PaddleOCR-v3 文本检测

文本检测&#xff1a; 文本检测(Text Detection)是计算机视觉领域的经典问题&#xff0c;该技术旨在寻求一种可靠方法作为文本识别技术的前端&#xff0c;是目标检测(Object Detection)领域的一个子问题。模型推理输出文本区域需要经过二值化之后使用 opencv 查找轮廓&#xf…

Domino M-Series 设置说明

1.标签机 M – Setup 设置方法 1.1设置IP网络访问 注: 要通过见多络的方式连接标签机时,需要设置连接的IP配置。 1.2导出标签机的硬件配置参数注: 向上的箭头,表示从硬件设备中导出硬件配置,并选择通过什么通讯方式从硬件中读取配置 1.3保存并加载硬件配置参数 注: …

红黑树做中文字符输入法

前言 输入一个字符&#xff0c;匹配中文字符的输入法&#xff0c; 例如输入a&#xff0c;输出&#xff1a;啊阿&#xff0c;然后再输入n&#xff0c;即变成an&#xff0c;输出&#xff1a;鞍氨安俺按暗岸胺案&#xff0c; 要求要有搜索的接口&#xff0c;应该如何设计呢&#…

使用字蛛font-spider压缩font.ttf文字(思源宋体)的步骤方法

在开发中常常会遇到使用字体的时候&#xff0c;但是字体一般体积都很大&#xff0c;网页加载起来会很慢&#xff0c;所以必须要讲字体文件进行压缩&#xff08;ttf字体压缩&#xff0c;抽取指定字符串&#xff0c;减少字体包大小&#xff09;。注意点&#xff1a;字蛛只能针对h…