AXI协议学习笔记(汇总篇)

最近又看了一遍AXI协议,下面是AXI4_Full的内容,至于AXI_Lite和AXI_Stream的内容,请参看官方文档。

由于工作内容只涉及到这些,因此完整的协议剩余部分就不再更新了


AXI学习笔记:

一、UG1037(概述)

AXI(高级可扩展接口),是arm AMBA(高级微控制器总线架构)的一部分。1996年首次引入。

经过不断地更新、升级,目前所使用的接口是AXI4接口。

AXI4有三种接口类型:

  1. AXI4(AXI4_Full):高性能存储器映射需求(功能比较全,占用资源最多)

主机对从机进行读操作or写操作时,需要指定一个目标地址,从而对其进行数据的读取or存储。(处理大量数据)

  1. AXI4_Lite:简单的、低吞吐率的存储器映射通信(简化的AXI4_Full)

(对寄存器进行读写操作)低速通信

  1. AXI4_Stream(ST):高速的流数据通信(可用于视频数据传输)

·AXI4_Full和AXI4_Lite都属于存储器映射,在利用这两个接口进行通信时,主机需要指定需要读写的地址。

而AXI4_Stream不用,因为它不属于存储器映射。

AXI优势:

·Xilinx的很多IP核都带有AXI接口,因此掌握了AXI协议,很多IP核的使用都会变得简单。

·允许高吞吐率突发,最大支持256个数据传输(AXI4_Full),并且只需要给定一个单一的地址

  (即:在利用AXI4接口进行读写操作时,只需要指定一个单一地址)

·AXI4_Lite,只支持单次传输一个数据,不支持突发传输

·AXI4_Stream:不需要指定地址,单次突发传输个数不受限制

AXI的工作方式:

描述了单个主机和从机之间的接口,用于主从机之间交互信息的IP核。多个存储器映射的AXI主从机可以通过AXI基础结构IP核(AXI Interconnect IP and AXI SmartConect IP)进行连接。

AXI4和AXI4_Lite都包含5个不同的通道。

//主机对从机的读操作

·AR(读地址)

·R(读数据)

//主机对从机的写操作

·AW(写地址)

·W(写数据)

·B(写响应)

这5个通道的意思就是:把AXI4里的端口信号分成了5组而已。

该IP核带AXI的主接口M_AXI,和从接口S_AXI。

其实这就是一个AXI SmartConnect IP核,通过M_AXI连接master,通过S_AXI连slave,从而实现master和slave的互连。

aclk和arestn分别是全局时钟和复位信号。

S_AXI是一个接口,它里面的端口信号被隐藏了,如果把该接口展开,就可以看到里面详细的端口定义。

将M_slave展开,它里面的端口信号和S一样的。只不过S展开以字母s开头,M展开以m开头。

前文所说的5个通道,其实就对应①②③④⑤所对应的5组信号。

上图展示了AXI4的读操作:

(这只是一个简化框图,它并没有把里面每一个端口的时序作详细讲解)

可以看出

·读地址通道携带了地址和控制信息,这个控制信息包括了突发长度,而读数据通道返回读到的数据。

·地址和控制信息只包含一个地址,却返回了很多个数据,这是根据突发长度的大小来返回不同个数的数据。

写操作示意图:

·由于读写的地址和数据通道相互独立,因此支持双向同时传输

·AXI4:只需指定一个地址,最大可支持256个数据传输(即突发传输)

  AXI4_Lite:和AXI4比较类似,但不支持突发传输。

  AXI4_Stream:对于一些不存在地址,只关心数据流的场景时使用。单一通道、单向数据流通信

基础架构的IP核:

·AXI Register slices(寄存器片)(for pipelining)

·AXI FIFOs(for buffering/clock conversion)

·AXI Interconnect IP and AXI SmartConect IP (for connecting memory-mapped IP together)

  都用于连接一个or多个存储器映射的主设备到一个or多个存储器映射的从设备

(AXI_Full和AXI_Lite接口)

·AXI DMA,可实现存储器映射的数据流到Stream数据流的转换(for memory-mapped to stream conversion)(move streams in and out of memory)

·AXI Performance Monitors and Protocol

·AXI Verification IP

使用vivado AXI IP核搭建RTL工程

创建和封装带AXI接口的IP核(封装完成后,软件会生成模板代码)

AXI Interconnect IP使用模型

·Conversion Only(1对1)

·N对1

·1对N

·N对M

当一个master与一个slave互连时,AXI Interconnect IP可以实现各种conversion和pipelining functions:

·Data width conversion(数据位宽转换)

·Clock rate conversion(时钟速率转换)

·AXI4_Lite从机自适应

·AXI3从机自适应

·Pipelining,such as a register slice or data channel FifO

  • IHI0022D(端口和时序)

通道定义:

·AXI4_Full、AXI4_Lite都有5个通道,每个独立通道都包含一组信息信号和VALID-READY信号,用于提供双向的握手机制。

·information source使用VALID表示当前通道的地址、数据or控制信息有效;

destination使用READY表示它可以接收信息了

information source和destination并不是指master和slave,而是指VALID、READY的发起端、接收端

·读写数据通道:都包含LAST信号,表示当前传输的最后一个数据。由information source拉高

  读数据通道:包含来自于从机的data(数据位宽可以是8、16、32、64、128、256、512 or 1024bits wide)和read response information(表示读传输完成)

  区别:写响应通道不包含写响应,写响应是一个独立的通道

  写数据通道:包含主机给从机的写数据(数据位宽可以是8、16、32、64、128、256、512 or 1024bits wide)

并通过频闪信号WSTRB(a byte lane strobe signal)用于表示当前数据的哪一个字节有效

比如:32bits的数据,有4个byte,所以WSTRB共有4位,分为表示这4个字节是否有效

·读写地址通道:携带所需的地址(指起始地址,其余地址由从机计算)和控制信息

·写响应通道:从机反馈给主机的,用于表示当前写操作完成

信号描述:(以AXI4_Full来说)

  1. 全局信号(不属于某个通道)

 ·ACLK:所有信号都在时钟上升沿进行采样

 ·ARESET:低电平有效

 2.写地址通道信号

source表示由哪一端控制发出

 

 3.写数据通道信号

WATRB可用于屏蔽不需要写入的数据 

 4.写响应通道

 5.读地址通道

 6.读数据通道

包含了BRESP信号

接口:

·复位期间:

·master接口必须驱动ARVALID、AWVALID、WVALID为低

·slave必须驱动RVALID、BVALID为低

其余信号可以为任意值

复位之后可以拉高VALID信号

双向握手机制表明主机和从机都可以控制传输速率,当VALID和READY同时为高时,传输才可以发生

写响应要跟在写传输的最后一个数据后

读数据必须跟在读地址后面

单箭头:所指向的信号可以提前/滞后源头拉高或拉低

双箭头:必须滞后

BVALID必须在WVALID和WREADY、WLAST都拉高之后才能拉高

RVALID要在ARVALID、ARREADY之后拉高

AXI4_Lite:P121

下面是几个我认为写的特别好的博客,把网址贴出来,大家感兴趣可以看看:

AXI总线,关于“贩毒交易”“火车”“马匪”的故事<一> - 简书
AXI总线,关于“贩毒交易”“火车”“马匪”的故事<二> - 简书

AXI总线,关于“贩毒交易”“火车”“马匪”的故事<三> - 简书

这个博主1到10都写的蛮好,可以看看。这里只贴其中一篇的地址

AXI总线学习-------从零开始详细学-------------连载(10)读写响应_gegeBaby的博客-CSDN博客
SOC中AXI总线是如何连接的 - 知乎

 

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
AMBA协议是指Advanced Microcontroller Bus Architecture(高级微控制器总线结构)协议,其中包括多个不同的总线协议,用于在现代SoC(系统级芯片)设计中实现高效的内部通信。其中,AMBA的第四代是AXI(Advanced eXtensible Interface)协议AXI协议是AMBA协议中的一种,被广泛应用于现代SoC设计中。它提供了一种高性能,灵活且可扩展的总线接口,用于在处理器、外设设备和内存之间进行高效的数据传输。AXI协议具有多个特性,包括支持高带宽、流水线设计、分层模型和端到端数据保护等。 AXI协议的主要特点包括: 1. 高带宽:AXI协议支持高频率的数据传输,能够满足现代SoC设计对于大量数据的处理需求。 2. 流水线设计:AXI协议使用流水线技术,可以同时进行多个传输操作,提高了总线的效率和吞吐量。 3. 分层模型:AXI协议采用分层的结构,可以灵活地连接多个从属设备,并支持多个处理器之间的共享内存访问。 4. 端到端数据保护:AXI协议引入了一些机制,如校验和和错误检测,以确保数据在传输过程中的完整性和可靠性。 总的来说,AMBA协议中的AXI协议是一种用于现代SoC设计的高性能、灵活和可扩展的总线接口协议,通过提供高带宽、流水线设计和端到端数据保护等特性,满足了现代SoC设计对于高效数据传输的需求。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [AMBA协议- AXI协议指南(1)](https://blog.csdn.net/ygyglg/article/details/129937804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学数理化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值