AXI协议学习笔记~~

AXI总线简介​ AXI属于AMBA(The ARM Advanced Microcontroller Bus Architecture)家族的一员,AXI协议在AMBA3.0版本中开始出现,并在后续的AMBA4.0,AMBA5.0中持续更新,对应为 AXI3,AXI4,AXI5。​ 下面是AMBA家族发展简介图。...
摘要由CSDN通过智能技术生成

AXI总线简介

​  AXI属于AMBA(The ARM Advanced Microcontroller Bus Architecture)家族的一员,AXI协议在AMBA3.0版本中开始出现,并在后续的AMBA4.0,AMBA5.0中持续更新,对应为 AXI3,AXI4,AXI5。

​   下面是AMBA家族发展简介图。
在这里插入图片描述

​   AXI,全名Advanced eXtensible Interface。AXI有以下优势,

  • ​   适合高带宽,低延迟应用,尤其为目前的高速存储外设设计,如DDR4

  • ​   可灵活扩展总线位宽以及拓扑连接

  • ​   标准化,通用总线,Xilinx在几乎所有自家的IP中支持甚至只支持AXI

​   axi的协议文档中提出它有如下特点:

  • ​   适用于高带宽和低延时的设计
  • ​   提供不带复杂桥的高频率操作
  • ​   满足多种组件的接口要求
  • ​   适用于具有高初始访问延迟的内存控制器
  • ​   提供了实现互连架构的灵活性
  • ​   向后兼容现有的AHB和APB接口。

​   axi协议的关键特点:

  • ​   单独的地址/控制 和 数据阶段

  • ​   使用字节控制来支持非对齐的数据传输

  • ​   使用只发出起始地址的突发burst传输

  • ​   单独的读写数据通道,可以提供低成本的直接内存访问(DMA,Direct Memory Access)

  • ​   支持发送多个outstanding addresses

  • ​   支持无序传输

  • ​ 允许方便地添加寄存器阶段,以提供定时关闭。
    ​   这里,先介绍两个概念。
    ​   outstanding —— 可以连续执行某个操作,而不用等待前面的操作完成的 执行次数,有点绕。举个例子,master 执行读操作的行为是:发送读地址 -> 等待数据返回 -> 发送读地址 -> 等待数据返回 -> …,这种outstanding就为1,它必须等待上一次的操作完成后,才可以执行下一次操作;如果outstanding能力为N>1的话,则读操作时,可以连续发N个读地址命令,在这期间如果读数据没有返回,则需要等待读数据返回,如果有读数据返回,则返回了几个,那么仍然可以接着发几个。也就是说,“在路上” 的读命令(或者读数据)最多可以是N。对于写操作,可以连续发出N组写地址(写数据)命令,这期间如果写响应没有返回,则必须等待写响应返回才能接着发写地址(写数据)命令,如果有写响应返回,则返回了几个,那么仍然可以接着发几组。也就是说,“在路上” 的写响应最多可以是N。(参考链接:https://aijishu.com/a/1060000000210706)
    ​   burst —— burst传输就是通过发送一次地址,来读写多个地址的数据,这样可以提高传输效率。burst传输需要指定burst len和burst size,burst len表示一次操作会执行的次数,burst size表示每次执行处理数据的宽度,如果是地址递增模式的话,递增的步长一般是burst size的大小。
    ​   burst传输有应用限制,不是所有传输类型都适合burst传输,一般busrt传输应用在下面三种场景:

  •   Flash应用类型
        只发送一次地址,之后地址自动累加,直到所有数据发送完成。

  •   Cache应用类型
        只发送一次地址,之后地址自动累加,累加到一定值后地址又自动回到初始地址。数据传输在一段地址范围内,循环传输。

  •   FIFO应用类型
        只发送一次地址,之后地址不变,所有数据都是传送到此地址。
    (参考链接:https://blog.csdn.net/phenixyf/article/details/106387066)

AXI拓扑结构

  AXI使用主从机制,由主机master发起请求,从机slave对请求进行响应。

  AXI支持一对一的连接,(参考链接:https://aijishu.com/a/1060000000108507)
在这里插入图片描述
​   也可以通过连接器IP支持一对多,多对一以及N对N连接,连接器相当于一个多路开关,通过轮询或者基于优先级的策略进行开关切换。
在这里插入图片描述

AXI接口

​   AXI定义了5个独立的通道:

  • ​   read address - 读地址通道,传输读操作的地址和控制信息

  • ​   read data - 读数据通道,传输slave发到master的读数据

  • ​   write address - 写地址通道,传输写操作的地址和控制信息

  • ​   write data - 写数据通道,传输master发到slave的写数据

  • ​   write response - 写响应通道,传输slave发回master的写响应
    在这里插入图片描述
    在这里插入图片描述

AXI握手机制

​   在具体讲每个信号之前,先讲一下AXI的握手机制,上面提出的5个channel中都有用到 VALID / READY 握手机制。

​   VALID / READY 握手机制是一种双向流控制机制,发送方和接收方都可以控制信息传输的速率。发送方拉高VALID表示地址、数据和控制信号已经准备好,接收方拉高READY表示已准备好接收数据,只有当VALID和READY都拉高的时候,传输

  • 8
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值