0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高级可扩展接口(AXI)简介

嵌入式星球 2020-09-29 11:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将讨论AMBA的第三次修订版,该修订版向世界介绍了高级可扩展接口(AXI)协议。
AXI协议最初是为高频系统而设计的,旨在满足各种组件的接口要求,同时允许灵活地互连这些组件。适用于高频,低延迟设计,AXI仍与先前的AMBA版本向后兼容AHB和APB。
了解AXI将使您深入了解SoC的工作原理,同时使您成为一名多才多艺且全面的设计师。

AXI架构

回想一下,AHB(高级高性能总线)是单通道总线,多个主机和从机用于交换信息。优先级仲裁器确定当前哪个主机使用该总线,而中央解码器执行从机选择。突发执行操作可能需要花费多个总线周期才能完成。每个突发传输都包括一个地址和控制阶段,随后是一个数据阶段。
AXI的设计理念相似,但使用多个专用通道进行读写。像它的前身一样,AXI是基于突发的,并且在交换数据之前使用类似的地址和控制阶段。AXI还包括许多新功能,包括乱序事务,未对齐的数据传输,高速缓存支持信号和低功耗接口。

AXI频道


AXI主站和从站之间有五个独立的通道。它们是:

  • 读取地址通道

  • 读取数据通道

  • 写地址通道

  • 写数据通道

  • 写响应通道

地址通道用于在执行主从之间的基本握手时发送地址和控制信息。数据通道是要交换信息的放置位置。
主机从从机读取数据并将数据写入从机。读取响应信息放置在读取数据通道上,而写入响应信息具有专用通道。这样,主机可以验证写事务已完成。
图1显示了通过五个AXI通道连接的AXI主从设备。


图1.AXI通道
每次数据交换都称为事务。事务包括地址和控制信息,发送的数据以及任何响应信息。实际数据以突发方式发送,其中包含多次传输。图1显示了由4个拍子或数据传输组成的读写突发。
我们将在本文后面详细讨论突发。

AXI信号


就像以前的AMBA版本中的AHB,ASB和APB信号一样,每个AXI通道都有许多与之相关的信号。有两个全局信号称为ACLK和ARESETn。它们分别是系统的全局时钟和复位信号。ARESETn的后缀“ n”表示此信号为低电平有效。
图2显示了与读取通道相对应的信号以及全局信号。


图2.读取地址,读取数据和全局信号
每个通道都有一个ID标签,用于无序交易。具有相同ID的任何事务都必须保留顺序,但是具有不同ID的事务可以按任何顺序完成。这样,即使较慢的事务首先发出,也可以在较慢的事务之前完成较快的事务。例如,如果一个主设备正在将数据写入多个从设备,则事务ID将允许更快的从设备更快完成。
总线宽度是特定于实现的,但是这些信号以32位总线宽度显示。从机使用RLAST信号向主机发送最后一个数据项正在传输的信号。
其他值得注意的信号包括突发大小,长度和类型。VALID和READY信号用于主机和从机之间的握手。这些将在本文后面讨论。
缓存,锁定和保护信号分别用于缓存,互斥访问(原子操作)和非法访问保护。


图3.写入地址,数据和响应信号
图3显示了写地址,数据和响应信号。这些信号反映了上面的读取信号,但被主机用来将数据发送到从机。WLAST向从站发出信号,表明正在发送最后一个数据项。专用的写响应信号使主机可以知道写事务已成功完成。
有关这些信号的更详细说明,请参阅AMBA 3.0版,尤其是AMBA AXI协议v1.0规范。

AXI交易


如前所述,AXI数据传输称为事务。事务可以采用读或写的形式,并包括地址/控制信息,数据和响应。数据以脉冲串的形式发送,其中包括多个称为节拍的数据项。为了同步数据的发送和接收,AXI主站和从站在事务开始时使用READY和VALID信号执行握手。

通道握手


每个AXI通道都包含一个有效信号和一个就绪信号。这些用于同步和控制传输速率。这里要记住的重要一点是,源或发送者使用VALID信号表示数据或控制信息可用。当目的地或接收者实际上能够使用该信息时,它会发出READY信号。因此,只有当VALID和READY信号都有效时,才可以进行传输。
图4显示了工作中的AXI握手。通知信息传输(用箭头表示)仅在VALID和READY都较高时发生,而不管哪个先断言。还要注意,AXI在所有传输中都使用时钟上升沿。


图4.AXI握手机制(改编自AXI规范v1.0)
AXI规范中的一个重要说明是,一个组件的VALID信号绝不能依赖于另一个组件的READY信号。READY可以等待VALID信号,但不是必须的。遵循这些规则消除了发生死锁的可能性。如果VALID依赖于READY,而READY则依赖于VALID,则很容易看到两个信号都不会置为有效,因为每个信号都在等待另一个信号。

AXI爆发


AXI中的数据交换采用突发形式。每个突发包括多个节拍或数据传输。在事务开始时发送的控制信息指示正在传输的突发的长度,大小和类型。
X代表R或W的AXLEN [3:0]表示突发中的拍数。宽度为4位,这意味着一个突发中最多可以进行16次传输。AXLEN = b0000表示每次连发有一个节拍。b0001,b0010和b0011的值分别代表两个拍子,三个拍子和四个拍子。这种模式一直持续到十六岁。组件必须完成AXLEN指定的所有节拍,无论是否使用数据。
AXSIZE [2:0]指定突发的每个拍中有多少个字节。AXSIZE中的每个位代表另一次幂2,“ 000”代表每个节拍1个字节,“ 111”代表每个节拍最多128个字节。这些节拍的大小不能超过母线宽度。
AXburst[1:0]确定将执行的突发类型。
AXI中有三种突发类型。他们是:

  • 固定爆发

  • 突发增加

  • 包装爆裂

在固定的脉冲串中,地址不会随着每个节拍而改变。一个典型的应用是FIFO队列/缓冲区。
增量突发代表更典型的传输类型,其中在每个拍子之后,传输地址都会递增。您可以将其视为与基址的偏移量。
最终的突发类型是包装突发。包装突发与增量突发类似,不同之处在于存在一个包装边界,其中地址一旦增加到该点,它就会缠绕到一个较低的地址。
图5显示了三种不同类型的AXI突发的简化视图。


图5.AXI突发类型

AXI互连


AXI互连允许多个主机和/或多个从机相互连接。AXI规范定义了主机和从机,主机和互连以及从机和互连之间的接口。
实际上,互连包含连接到AXI主设备的从设备接口和连接到AXI从设备的主设备接口。互连中发生的事情(即,不同的主机如何与不同的从机通信)取决于实现方式。互连可以允许共享的地址总线,共享的数据总线都共享或不共享。
在下一篇文章中,我们将研究AXI互连,它们如何工作以及如何在设计中使用它们。

结论


本文是对高级可扩展接口(AXI)协议的基本介绍。我们查看了AMBA第三版中指定的旧版AXI。如前所述,您可以参考AMBA AXI协议v1.0(约一百页),以更深入地了解AXI的第一个版本。随着新版本的AXI(例如AXI4,AXI4-Lite和AXI4-Stream),AXI在AMBA版本4中看到了一些重大变化。
将来的AMBA文章将讨论用于组件之间系统级缓存一致性的AXI4和ACE协议(AXI一致性扩展)。AXI已成为现代SoC设计中广泛使用的协议。在学习AXI时,更简单的总线协议(如Avalon和Wishbone)将变得更加容易。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AXI总线
    +关注

    关注

    0

    文章

    68

    浏览量

    14795
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用开源uart2axi4实现串口访问axi总线

    microblaze和jtag-to-axi(jtag2axi)虽然也提供了访问axi总线的能力,但是依赖于xilinx平台。而uart-to-axi(uart2
    的头像 发表于 12-02 10:05 2368次阅读
    利用开源uart2<b class='flag-5'>axi</b>4实现串口访问<b class='flag-5'>axi</b>总线

    使用AXI4接口IP核进行DDR读写测试

    本章的实验任务是在 PL 端自定义一个 AXI4 接口的 IP 核,通过 AXI_HP 接口对 PS 端 DDR3 进行读写测试,读写的内存大小是 4K 字节。
    的头像 发表于 11-24 09:19 4032次阅读
    使用<b class='flag-5'>AXI</b>4<b class='flag-5'>接口</b>IP核进行DDR读写测试

    Xilinx高性能NVMe Host控制器IP+PCIe 3.0软核控制器IP,纯逻辑实现,AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0

    ,具备独立的数据写入和读取AXI4接口,不但适用高性能、顺序访问的应用,也适用于随机访问的应用,同时结合外部存储器(比如DDR),使得Host端的数据访问管理更加灵活。NVMe是基于PCIe之上的协议
    发表于 11-14 22:40

    将e203 例化AXI总线接口

    将系统外设总线内部axi接口引出给gpio,注意vivado中gpio地址分配应保证移植 Debug: 通过Xil_Out32函数给gpio的地址写1或者0,注意这里地址是gpio地址也就是核中给
    发表于 10-29 06:08

    RESTful API设计原则: 构建易用、扩展的API接口

    响应是否缓存 分层系统(Layered System):支持中间件扩展 按需代码(Code-On-Demand):可选扩展功能 实际案例:GitHub API严格遵循这些约束,其统一接口
    的头像 发表于 10-24 10:45 819次阅读

    通过sysmem接口扩展内存空间

    :使用DDR200T上板载的DDR3对内存进行扩展 扩展方案结构图: 该方案中DDR3使用vivado提供的axi接口mig的IP核来进行控制,蜂鸟e203源代码中提供了icb2
    发表于 10-24 08:12

    E203分享之DDR扩展方案实施流程(上)

    接口,以便我们后面使用axi接口的DDR3。 (2)axi_interconnect模块 (3)mig模块 mig 的模块配置具体
    发表于 10-24 07:08

    AXI GPIO扩展e203 IO口简介

    AXI GPIO简介 AXI-GPIO是一种Xilinx公司开发的外设IP,可以连接到AXI总线上,并提供GPIO(General Purpose Input Output)功能。
    发表于 10-22 08:14

    基于DDR200T开发板的e203进行DDR3扩展

    bridge与e203相接,一种是DDR接口使用AXI协议,再通过icb2axi模块进行DDR扩展,第一种方法参照该链接e203lus。 本队尝试第一种方法无果后,选择使用第二种方法
    发表于 10-21 12:43

    RESTful API设计原则: 构建易用、扩展的API接口

    (Representational State Transfer)架构原则,构建易用、扩展的API接口,帮助开发者创建经得起时间考验的服务。 一、理解REST架构的核心约束 1.1 RESTful API的六大
    的头像 发表于 10-20 13:45 1692次阅读

    关于AXI Lite无法正常握手的问题

    关于AXI Lite的问题 为什么我写的AXI Lite在使用AXI Lite Slave IP的时候可以正常握手,但是在使用AXI Lite接口
    发表于 07-16 18:50

    RDMA简介8之AXI分析

    AXI4 总线是第四代 AXI 总线,其定义了三种总线接口,分别为:AXI4、AXI4-Lite 和 A
    的头像 发表于 06-24 23:22 851次阅读
    RDMA<b class='flag-5'>简介</b>8之<b class='flag-5'>AXI</b>分析

    RDMA简介9之AXI 总线协议分析2

    ​ 这里以功能完备的 AXI4 接口举例说明 AXI4 总线的相关特点。AXI4 总线采用读写通道分离且数据通道与控制通道分离的方式,这样的总线通道使其具有多主多从的连接特性和并行处理
    发表于 06-24 18:02

    RDMA简介8之AXI 总线协议分析1

    AXI 总线是一种高速片内互连总线,其定义于由 ARM 公司推出的 AMBA 协议中,主要用于高性能、高带宽、低延迟、易集成的片内互连需求。AXI4 总线是第四代 AXI 总线,其定义了三种总线
    发表于 06-24 18:00

    NVMe IP之AXI4总线分析

    广泛应用 。随着时间的推移,AXI4的影响不断扩大。目前,由Xilinx提供的大部分IP接口都支持AXI4总线,使得系统中不同模块之间的互连更加高效。这也让基于这些IP的开发变得更加快捷、方便和可靠
    发表于 06-02 23:05