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

【FPGA】AXI总线协议

待补充

AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:
1、 总线的地址/控制和数据通道是分离的;
2、 支持不对齐的数据传输;
3、支持突发传输, 突发传输过程中只需要首地址;
4、 具有分离的读/写数据通道;
5、 支持显著传输访问和乱序访问;
6、 更加容易进行时序收敛。
在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息, 这一组信号就组成了接口。

AXI4 协议支持以下三种类型的接口:
1、 AXI4: 高性能存储映射接口。

                   主要用于处理器访问存储器等需要指定地址的高速数据传输场景。
2、 AXI4-Lite:简化版的 AXI4 接口, 用于较少数据量的存储映射通信。

                  主要用于访问一些低速外设中的寄存器。
3、 AXI4-Stream: 用于高速数据流传输,非存储映射接口。 如果一个协议是存储映射的,那么主机所发出的会话( 无论读或写) 就会标明一个地址。 这个地址对应于系统存储空间中的一个地址, 表明是针对该存储空间的读写操作。

                 AXI-Stream 接口像 FIFO 一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、 PCIe、 DMA 接口等需要高速数据传输的场合

AXI4 接口由五个独立的通道构成:
1、 读地址 read address channel (ARxxx)
2、 读数据 write address channel(AWxxx)
3、 写地址 read data channel(Rxxx)
4、 写数据 write data channel(Wxxx)
5、 写响应 write response channel(Bxxx)
每一个transaction都有地址和控制信息在地址通道(address channel)中,用来描述被传输数据的性质

在一个读传输过程中, 主机首先在读地址通道给出读地址和控制信号, 然后从机由读数据通道返回读出的数据。 
另外我们需要注意的是,这是一次突发读操作,主机只给出一个地址,从该地址连续突发读出四个数据

用到了写地址、写数据和写响应三个通道。 主机在写地址通道给出写地址和控制信号,然后在写数据通道连续突发写四个数据。从机在接收数据之后,在写响应通道给出响应信号


AXI 总线中的5条独立的通道都包含了一组信息信号,还有一个 VALID 和一个 READY 信号握手机制。 VALID 信号由源端( source) 产生,表示当前地址或者数据线上的信息是有效的;而 READY 信号由目的端( destination)产生,表示已经准备好接收地址、数据以及控制信息。 读数据和写数据通道都包括一个LAST信号,用来指明一个事物传输的最后一个数据

ACLK 为时钟信号, 在 AXI 协议中,所有的输入信号都在是 ACLK 的上升沿采样,所有的输出信号必须在 ACLK 的上升沿之后才能改变。在 T1 之后, 源端将 VALID 拉高,表明 INFORMATION信号线上传输的是有效的地址、数据或者控制信息。目的端在 T2 之后将 READY 拉高, 表明它已经准备好接收数据,此时源端必须保持 INFORMATION 数据稳定不变, 直到 T3 时刻进行数据传输。需要注意的是,源端不允许等目的端的 READY 信号拉高之后, 才将 VALID 信号置为有效状态。 而且,一旦 VALID 拉高,源端必须保持其处于有效状态, 直至成功握手(在时钟上升沿检测到 VALID 和 READY 同时为有效状态)

AXI 协议的五个通道都有各自的 VALID/READY 握手信号对

  • 读和写事务都有他们自己的地址通道,这地址通道携带着传输事务所必须的地址和控制信息。
  • 读数据通道传送着从设备到主机的读数据和读响应信息,读数据总线宽度可以是8,16,32,64,128,256,512,1024位。读响应信息指明读事务的完成状态。
  • 写数据通路传送着主机向设备的写数据,读数据总线宽度可以是8,16,32,64,128,256,512,1024位。每八位数据都会有一个byte lane strobe ,用来指明数据总线上面的哪些byte有效。写响应通道提供了设备响应写事务的一种方式。完成信号每一次事务只会产生一个。
  • 主机和设备的接口和互联图如下:

  • 传输地址信息和数据都是在VALID和READY同时为高时有效。

突发式读的时序图如下:

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

  • 重叠突发式读时序图如下:

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

  • 突发式写时序图如下:

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

  • AXI协议支持乱序传输。它给每一个通过接口的事务一个IDtag。协议要求相同ID tag的事务必须有序完成,而不同ID tag可以乱序完成

011 AXI总线协议(一) - 沐林枫 - 博客园

AXI(Advanced eXtensible Interface)

  • 面向高性能、高带宽、低延迟的片内总线
  • 地址/控制和数据阶段是分离的
  • 支持地址不对齐的数据传输
  • 同时在基于突发(burst_basded transcation)的传输中,只需要首地址;同时分离的读写数据通道,总共有5个独立的通道
  • 支持显著传输(outstanding transcation)访问和乱序访问
  • 非常容易添加流水线级数以获得高频的时序

AXI的三类接口:

AXI4-Full:用于高性能内存映射需求

AXI4-Lite:用于简单地吞吐量内存映射通信(eg.进出控制寄存器和状态寄存器)

AXI4-Stream:用于高速传输数据

从Spartan-6和Virtex-6器件开始,Xilinx的IP开始采用AXI接口。后续的UltraScale架构、Zynq-7000系列全部使用AXI总线。
AXI总线在Xilinx产品中被广泛采用,主要是高效、灵活、便捷

AXI的特点:

高效:通过AXI接口进行标准化

灵活:AXI4适用于内存映射接口,仅一个地址阶段就允许高达256个数据传输周期的高吞吐量爆发

AXI4-Lite是一个轻量级的传输接口,逻辑占用很小,在设计和使用上都是一个简单的接口
AXI4-Stream完全取消了对地址阶段的要求,并允许无限的数据突发大小

便捷:使用AXI协议,不仅可以访问Vivado IP目录,还可以访问ARM合作伙伴的全球社区。许多IP提供商支持AXI协议

AXI的握手机制:

AXI基于valid-ready的握手机制:

发送方(主)通过置高valid信号表示地址/数据/控制信息已准备好,并保持在消息总线上

接收方(从)通过置高ready信号表示接收方已做好接受的准备。在ACLK上升沿,若valid、ready同时为高,则进行数据传输

【IC设计】草履虫都能看懂的AXI入门博客(大量图文来袭,手把手教学,波形仿真)_axi设计-CSDN博客

AXI总线基础教程:7步带你从零理解AXI协议 - CSDN文库

(79 封私信 / 81 条消息) AXI总线(一):先浅浅认识一下AXI总线 - 知乎

AXI 总线详解-CSDN博客

http://www.xdnf.cn/news/15338.html

相关文章:

  • 动态规划题解——单词拆分【LeetCode】
  • VScode链接服务器一直卡在下载vscode服务器,无法连接成功
  • 企业数字化资产管理安全、成本、协作困局难解?
  • MYSQL数据库----DCL语句
  • Linux进程状态实战指南:转换关系、监控命令与状态解析
  • 从代码学习深度强化学习 - DDPG PyTorch版
  • python赤道上空的大气环流剖面图(纬向-高度剖面)
  • 代理模式:控制对象访问
  • Spring AI 项目实战(十七):Spring Boot + AI + 通义千问星辰航空智能机票预订系统(附完整源码)
  • 无缝衔接直播流体验
  • 数据结构 单链表(1)
  • Acrobat 表单中的下拉菜单(附示例下载)
  • ESP-Timer入门(基于ESP-IDF-5.4)
  • 插入类排序的C语言实现
  • Java小白-设计模式
  • C#单例模式管理全局变量
  • OSPF与BGP的联动特性实验案例
  • OSPF与BGP的联动特性
  • Java设计模式之行为型模式(命令模式)
  • 单例模式:确保全局唯一实例
  • Vue文件上传实战指南
  • 【OpenGL 渲染器开发笔记】1 为什么要设计渲染器?
  • Dubbo-Admin 安装与使用指南:可视化管理 Dubbo 服务
  • 初识drag2框架,drag2注入的基本原理
  • 常用的docker命令备份
  • k8s:0/1 nodes are available: pod has unbound immediate PersistentVolumeClaims.
  • 论文Review 3DGSSLAM GauS-SLAM: Dense RGB-D SLAM with Gaussian Surfels
  • 使用python操作文件夹
  • Hashtable 与 HashMap 的区别笔记
  • [GWCTF 2019]我有一个数据库