AMBA协议之AXI4.0介绍

目录

前言

一、握手时序

二、信号描述

二、AXI协议基于burst(突发连续)传输

burst相关信号

总结



前言

AXI4 是第四代AMBA协议重要的一部分,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进行以数据为主导的大量数据的传输应用。

  • 适合高带宽低延时设计,无需复杂的桥就实现高频操作,向下兼容已有的AHB和APB接口。
  • 分离地址/控制、数据相位
  • 分离的读写数据通道,提供低功耗DMA
  • 使用字节线支持非对齐的数据传输
  • 使用基于burst的传输,只需传输首地址
  • 支持多种传输方式,支持乱序传输
  • 允许容易的添加寄存器来进行时序收敛

AXI架构分为5个独立的传输通道,读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。数据总线可为(8/16/32/64/128/256/512/1024bit),最大为单次传输一个字节的数据。


一、握手时序

握手过程

5个传输通道均使用VALID/READY信号对传输过程的地址、数据、控制信号进行握手。使用双向握手机制,传输仅仅发生在VALID、READY同时有效的时候。下图是几种握手机制:

VALID before READY

 

READY before VALID

 VALID with READY

通道顺序

AXI协议要求通道间满足如下关系:

-写响应必须跟随最后一次burst的的写传输

-读数据必须跟随数据对应的地址

-通道握手信号需要确认一些依赖关系

通道握手信号的依赖关系

为防止死锁,通道握手信号需要遵循一定的依赖关系。

1、VALID信号不能依赖READY信号

2、AXI接口可以等到检测到VALID才断言对应的READY,也可以检测到VALID之前就断言READY。

 具体依赖关系见AMBA协议介绍(3)——AXI协议

二、信号描述

  • 全局信号

信号名

描述

ACLK  

时钟源  

全局时钟信号

ARESETn  

复位源

全局复位信号,低有效

  •  写地址通道信号

信号名    

源    

描述      

AWID

主机

写地址ID,用来标志一组写信号

AWADDR

主机

写地址,给出一次写突发传输的写地址

AWLEN

主机

突发长度,给出突发传输的次数

AWSIZE

主机

突发大小,给出每次突发传输的字节数

AWBURST

主机

突发类型

AWLOCK

主机

总线锁信号,可提供操作的原子性

AWCACHE

主机

内存类型,表明一次传输是怎样通过系统的

AWPROT

主机

保护类型,表明一次传输的特权级及安全等级

AWQOS

主机

质量服务QoS

AWREGION

主机

区域标志,能实现单一物理接口对应的多个逻辑接口

AWUSER

主机

用户自定义信号

AWVALID

主机

有效信号,表明此通道的地址控制信号有效

AWREADY

从机

表明“从”可以接收地址和对应的控制信号

  • 写数据通道信号

信号名    

源    

描述      

WID

主机

一次写传输的ID tag

WDATA

主机

写数据

WSTRB

主机

写数据有效的字节线,用来表明哪8bits数据是有效的

WLAST

主机

表明此次传输是最后一个突发传输

WUSER

主机

用户自定义信号

WVALID

主机

写有效,表明此次写有效

WREADY

从机

表明从机可以接收写数据

  • 写响应通道信号

信号名    

源    

描述      

BID

从机

写响应ID tag

BRESP

从机

写响应,表明写传输的状态

BUSER

从机

用户自定义

BVALID

从机

写响应有效

BREADY

主机

表明主机能够接收写响应

  •  读地址通道信号

信号名    

源    

描述      

ARID

主机

读地址ID,用来标志一组写信号

ARADDR

主机

读地址,给出一次写突发传输的读地址

ARLEN

主机

突发长度,给出突发传输的次数

ARSIZE

主机

突发大小,给出每次突发传输的字节数

ARBURST

主机

突发类型

ARLOCK

主机

总线锁信号,可提供操作的原子性

ARCACHE

主机

内存类型,表明一次传输是怎样通过系统的

ARPROT

主机

保护类型,表明一次传输的特权级及安全等级

ARQOS

主机

质量服务QoS

ARREGION

主机

区域标志,能实现单一物理接口对应的多个逻辑接口

ARUSER

主机

用户自定义信号

ARVALID

主机

有效信号,表明此通道的地址控制信号有效

ARREADY

从机

表明“从”可以接收地址和对应的控制信号

  • 读数据通道信号

信号名    

源    

描述      

RID

从机

读ID tag

RDATA

从机

读数据

RRESP

从机

读响应,表明读传输的状态

RLAST

从机

表明读突发的最后一次传输

RUSER

从机

用户自定义

RVALID

从机

表明此通道信号有效

RREADY

主机

表明主机能够接收读数据和响应信息

  • 低功耗接口信号

信号名    

源    

描述    

CSYSREQ

时钟控制器

系统退出低功耗请求,此信号从“时钟控制器”到“外设”

CSYSACK

外设

退出低功耗状态确认

CACTIVE

外设

外设请求时钟有效

每个数据通道有独立的xVALID/xREADY握手信号对。

   VALID与READY信号作为一对握手信号,为防止死锁,进行读操作时,必须等读地址通道握手完成,读数据通道才可进行下一步操作。进行写操作时,写地址通道与写数据通道互相独立,但同样必须等最后一组数据写完成写响应通道握手完成。

二、AXI协议基于burst(突发连续)传输

burst相关信号

AXI协议是基于burst的,主机只给出突发传输的第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨4KB边界(防止突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。

  • 突发长度 ARLEN[7:0]决定读传输的突发长度,AWLEN[7:0]决定写传输的突发长度。AXI3只支持1~16次的突发传输(Burst_length=AxLEN[3:0]+1),AXI4扩展突发长度支持INCR突发类型为1~256次传输,对于其他的传输类型依然保持1~16次突发传输(Burst_Length=AxLEN[7:0]+1)。
  • 传输规则    wraping burst ,burst长度必须是2,4,8,16, burst不能跨4KB边界,不支持提前终止burst传输
  • 突发大小   ARSIZE[2:0],读突发传输;AWSIZE[2:0],写突发传输。
  • AxSIZE[2:0]    bytes in transfer

    ‘b000      1

    ‘b001      2

    ‘b010      4

    ‘b011      8

    ‘b100      16

    ‘b101      32

    ‘b110      64

    ‘b111      128

  • 突发类型

    FIXED:突发传输过程中地址固定,用于FIFO访问

    INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。

    WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)。

    AxBURST[1:0]    burst type

    ‘b00          FIXED

    ‘b01          INCR

    ‘b10          WRAP

    ‘b11          Reserved

    Start_Address=AxADDR

    Number_Bytes=2^AxSIZE

    Burst_Length=AxLEN+1

    Aligned_Addr=(INT(Start_Address/Number_Bytes))xNumber_Bytes。//INT表示向下取整。

    对于INCR突发和WRAP突发但没有到达回环边界,地址由下述方程决定:

    Address_N=Aligned_Address+(N-1)xNumber_Bytes

    WRAP突发,突发边界:

    Wrap_Boundary=(INT(Start_Address/(Number_Bytes x Burst_Length)))x(Number_Bytes x Burst_Length)

  • 读写响应结构

    读传输的响应信息是附加在读数据通道上的,写传输的响应在写响应通道。

    RRESP[1:0],读传输

    BRESP[1:0],写传输

    OKAY(‘b00):正常访问成功

    EXOKAY(‘b01):Exclusive 访问成功

    SLVERR(‘b10):从机错误。表明访问已经成功到了从机,但从机希望返回一个错误的情况给主机。

    DECERR(‘b11):译码错误。一般由互联组件给出,表明没有对应的从机地址。


总结

  1. AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
  2. AXI 特点: 单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。 支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。 独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。
  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值