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

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

3天内不再提示

AXI 总线交互分为 Master / Slave 两端

电子设计 来源:电子设计 作者:电子设计 2022-02-08 11:44 次阅读

0、绪论

在 AMBA 系列之 AXI 总线协议初探 中,了解到 AXI 总线交互分为 Master / Slave 两端,而且标准的 AXI 总线支持不同的位宽,既然是总线,那么必须要支持总线互联,多 Master,多 Slave的场景,在 AMBA AXI Specification 的 “AXI Architecture-》Interface and Interconnect ”章节 描述了 Interconnect 的含义;用于AXI总线互联,而且给出了一些基本的互联拓扑结构:

1、共享地址和数据总线

2、共享地址总线,多个数据总线

3、多个地址总线、多个数据总线

根据实际系统的需求,不同的交互速度和互联复杂程度来折中选择方案;

换句话来说,实际的工程中,一个(或者多个)实际的主设备有 AXI Master 控制器,一个(或者多个)从设备有 AXI Slave 控制器,他(们)之间通过 Interconnect 作为桥梁,制定一套互联的规矩(数据/地址总线等);我们可以把这个 AXI Interconnect 理解为一个独立的 IP Core 负责一些互联的事务;

Xilinx 定义了一套它的 AXI Interconnect IP,在 Xilinx 官方网站有对这个 IP 的介绍:

https://china.xilinx.com/products/intellectual-property/axi_interconnect.。.

Xilinx 的 AXI Interconnect IP Core 核心,由 Product Guide 095 (PG095)来描述:

https://www.xilinx.com/support/documentation/ip_documentation/axi_interc.。.

Xilinx 的 AXI Interconnect IP 和 Vivado Design Suite捆绑,产品描述:

包含在Vivado 和 ISE 设计套件中,不收取额外费用

AXI Interconnect IP 将一个或多个 AXI 存储器映射的主器件连接到一个或多个存储器映射的从器件。AXI 接口符合 ARM® 的 AMBA® AXI 第 4 版规范,包括 AXI4-Lite 控制寄存器接口子集。Interconnect IP 仅用于存储器映射传输;AXI4-Stream 传输不适用。AXI Interconnect IP 可作为嵌入式开发套件 (EDK) 中 Vivado® IP 目录中的处理器内核使用,或者作为 CORE Generator™ IP 目录中的独立内核使用。

AXI4-Stream 互联参考:《AXI4-Stream Infrastructure IP Suite LogiCORE IP Product Guide (PG085)》

Product Guide 095 (PG095)中具体描述了 AXI Interconnect 支持的功能:

AXI互联IP核允许任意AXI主设备和AXI从设备的连接,可以根据数据位宽、时钟域和 AXI Sub-protocol 进行转换。当外部主设备或从设备的接口特性不同于互联模块内部的crossbar switch的接口特色时,相应的基本模块(Infrastructure cores)就会被自动的引入来执行正确的转换;

支持的 Feature 如下:

AXI Crossbar:将一个或者多个相似的 AXI memory-mapped Master 设备连接到一个或者多个相似的AXI memory-mapped Slave 设备,也就是 Masters 和 Slaves 的互联;

AXI Data Width Converter:将一个AXI memory-mapped Master 连接到一个数据位宽不同的AXI memory-mapped Slave 设备;

AXI Clock Converter:将一个 AXI memory-mapped Master 连接到一个不同时钟域(Clock domain)的 AXI memory-mapped Slave设备;

AXI Protocol Converter:将 AXI4、AXI3 或者 AXI4-Lite 协议的 Master 连接到不同 AXI 协议的内存映射 Slave 设备;

AXI Data FIFO:在 AXI memory-mapped Master 和 Slave 之间增加一组 FIFO 的缓冲;

AXI Register Slice:在 AXI memory-mapped Master 和 Slave 之间增加一组流水线寄存器;

AXI MMU:为 AXI 提供地址段的 decoding and remapping 服务

下面简单介绍一下一些部分

1、AXI Crossbar

每一个被实例化的 AXI Interconnect (互联模块)都包含一个 AXI Crossbar,用于多个 MI(Master Interface) 和 SI(Slave Interface) 的连接;

Crossbar 的 SI 可以被配置为 1 ~ 16 个 SI Slots,最多接受来自 16 个 Master 的传输,同样,MI 可以被配置为 1 ~ 16 个 MI Slots,最多与 16 个 Slaves 进行通信

1.1、几种可以选择的 Crossbar 互联结构

1.1.1、Crossbar mode (Performance Optimized)

性能最优:

共享地址通道,独立的多数据通道架构 (SAMD:Shared-Address, Multiple-Data);

并行 crossbar 读和写通道,当发生多读写的时候,可以完全并行,互不干扰;

可以根据配置连接的映射来减少 crossbar 数据路径进而减少资源的使用;

共享的写地址仲裁器,加上一个共享的读地址仲裁器,通常仲裁器并不会影响吞吐;

只有 AXI Crossbar 被配置为 AXI-4 或者 AXI-3 的时候,Crossbar mode 才有效;

1.1.2、Shared Access mode (Area optimized)

面积最优:

共享的写入数据、共享读取数据和单独的共享地址路径;

一次传输仅支持一个事务;

使用资源最小;

更多的描述详见文章开头的 PG095

2、AXI Data Width Converter

Master 和 Slave 端 Interface 不同数据位宽的转换:

支持的 Slave Interface(SI) 数据位宽为:32, 64, 128, 256, 512 or 1,024 bits

支持的 Master Interface(MI) 数据位宽为:32, 64, 128, 256, 512 or 1,024 bits (must be different than SI data width)。

When upsizing, data is packed (merged) when permitted by address channel control signals (CACHE modifiable bit is asserted)。

When downsizing, burst transactions are split into multiple transactions if the maximum burst length would otherwise be exceeded

When upsizing, the IP core can optionally perform FIFO buffering and clock frequency conversion (synchronous or asynchronous) in a resource-efficient manner

3、AXI Clock Converter

Master 和 Slave 端 Interface 不同时钟域

支持同步时钟的比例转换,(N:1 and 1:N),转换的 N 是 2

支持异步时钟转换(比同步时钟消耗更多的资源,和 latency)

4、AXI Protocol Converter

4.1、AXI4 or AXI3 to AXI4-Lite protocol

AXI-4 或者 AXI-3 转到 AXI4-Lite 协议,burst 事务转为 AXI4-Lite 的 Single-Beat 传输

4.2、AXI4 to AXI3 protocol

当针对 AXI3 从器件时,可通过分解事务处理内容来转换大于 16 拍的 AXI4 突发量

5、AXI Data FIFO

读写通道独立可配置

基于 32-深度的 LUT-RAM

基于 512-深度的 BRAM

6、小结

简单的描述了 Xilinx AXI Interconnect IP 的部分内容,它的实现内部需要集成 Arbiter 或者 Router 来进行逻辑互联,官方的简要描述如下:

可选的互联架构

纵横机模式(性能最优化):共享地址多数据 (SAMD) 纵横机架构,具有面向写入和读取数据通道的并行路径

共享访问模式(面积最优化):共享的写入数据、共享读取数据和单独的共享地址路径。

AXI 兼容协议(AXI3、AXI4 和 AXI4-Lite)包括:

针对增量 (INCR) 突发量的长达 256 的突发长度

当针对 AXI3 从器件时,可通过分解事务处理内容来转换大于 16 拍的 AXI4 突发量

生成 REGION 输出,供有多个地址解码范围的从器件使用

在每条通道上传播 USER 信号(如果有); 独立的每通道 USER 信号宽度(可选)

传播服务质量 (QoS) 信号(如果有);不被 AXI Interconnect 内核使用(可选)

接口数据宽度:

AXI4: 32、 64、 128、 256、 512、 或 1024 位

AXI4-Lite: 32 位

32 位地址宽度

连接 1-16 个主器件和 1-16 个从器件

内置数据宽度转换、同步/异步时钟速率转换和 AXI4-Lite/AXI3 协议转换功能

可选的寄存器 slice 流水线和数据路径 FIFO 缓冲

可选的数据包 FIFO 功能

时延发出 AWVALID 信号,直到完整的突发量存储在写数据 FIFO 中为止

时延发出 ARVALID 信号,直到读数据 FIFO 有足够的空间存储整个突发量长度为止

在纵横机模式下支持多种出色的事务处理功能

循环依赖(死锁)的 “每 ID 单从器件” 避免法

固定优先权和轮询仲裁

支持整体针对每个已连接从器件的 “信任区” 安全功能

支持只读和只写主器件和从器件,减少资源使用。

审核编辑:何安

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

    关注

    1

    文章

    126

    浏览量

    16286
收藏 人收藏

    评论

    相关推荐

    ZYNQ的ARM和FPGA数据交互——AXI交互最重要的细节

    。 ③EMIO :由于MIO管脚有限,PS可以通过EMIO访问PL引脚。 ④GP :通用AXI接口,用来实现一般主从互联、数据交互,不用于高性能。 ⑤HP :是高性能/带宽的标准接
    发表于 11-03 10:51

    AXI的控制和数据通道分离

    AXI的控制和数据通道分离,可以带来很多好处。地址和控制信息相对数据的相位独立,可以先发地址,然后再是数据,这样自然而然的支持显著操作,也就是outstanding 操作。 Master访问
    的头像 发表于 10-31 16:53 490次阅读
    <b class='flag-5'>AXI</b>的控制和数据通道分离

    AXI传输数据的过程

    AXI4为例,有AXI full/lite/stream之分。 在Xilinx系列FPGA及其有关IP核中,经常见到AXI总线接口,AXI
    的头像 发表于 10-31 15:37 466次阅读
    <b class='flag-5'>AXI</b>传输数据的过程

    LogiCORE JTAG至AXI Master IP核简介

    LogiCORE JTAG至AXI Master IP核是一个可定制的核,可生成AXIAXI总线可用于处理和驱动系统中FPGA内部的AXI信号。AX
    的头像 发表于 10-16 10:12 479次阅读
    LogiCORE JTAG至<b class='flag-5'>AXI</b> <b class='flag-5'>Master</b> IP核简介

    AXI IIC总线接口介绍

    LogiCORE™IPAXI IIC总线接口连接到AMBA®AXI规范,提供低速、两线串行总线接口,可连接大量流行的设备。
    的头像 发表于 09-28 15:56 4543次阅读

    在Mini51上使用I2C设为Slave,如何判断Master送出的Slave Address为何?

    在Mini51上使用 I2C, 设为Slave , 若分别设置 I2CADRR0,I2CADRR1 为不同位址, 在 Slave, I2C_IRQHandler() 当中, 如何判
    发表于 08-31 10:15

    如何将DMA的master挂在系统存储总线slave

    有大佬可以解答一下吗?在挂载DMA的时候,DMA的slave可以挂在e_203外设的预留端口里面,按理来说DMA的master端口应该挂在的系统存储总线
    发表于 08-11 12:09

    AXI VIP当作master时如何使用

      AXI接口虽然经常使用,很多同学可能并不清楚Vivado里面也集成了AXI的Verification IP,可以当做AXImaster、pass through和
    的头像 发表于 07-27 09:19 683次阅读
    <b class='flag-5'>AXI</b> VIP当作<b class='flag-5'>master</b>时如何使用

    AXI VIP当作master时如何使用?

    AXI接口虽然经常使用,很多同学可能并不清楚Vivado里面也集成了AXI的Verification IP,可以当做AXImaster、pass through和
    的头像 发表于 07-27 09:16 942次阅读
    <b class='flag-5'>AXI</b> VIP当作<b class='flag-5'>master</b>时如何使用?

    AXI实战(二)-AXI-Lite的Slave实现介绍

    可以看到,在AXI到UART中,是通过寄存器和FIFO进行中介的。因为从AXI总线往里看,其控制的是就是地址上所映射的寄存器。
    的头像 发表于 06-27 10:12 2486次阅读
    <b class='flag-5'>AXI</b>实战(二)-<b class='flag-5'>AXI</b>-Lite的<b class='flag-5'>Slave</b>实现介绍

    Xilinx FPGA AXI4总线(二)用实例介绍5个读写通道

    AXI4协议是一个点对点的主从接口协议,数据可以同时在主机(Master)和从机(Slave)之间**双向** **传输** ,且数据传输大小可以不同。
    发表于 06-21 15:26 1722次阅读
    Xilinx FPGA <b class='flag-5'>AXI</b>4<b class='flag-5'>总线</b>(二)用实例介绍5个读写通道

    Xilinx FPGA AXI4总线(一)介绍【AXI4】【AXI4-Lite】【AXI-Stream】

    从 FPGA 应用角度看看 AMBA 总线中的 AXI4 总线
    发表于 06-21 15:21 1875次阅读
    Xilinx FPGA <b class='flag-5'>AXI</b>4<b class='flag-5'>总线</b>(一)介绍【<b class='flag-5'>AXI</b>4】【<b class='flag-5'>AXI</b>4-Lite】【<b class='flag-5'>AXI</b>-Stream】

    AXI总线工作流程

    在zynq开发过程中,AXI总线经常遇到,每次看到AXI总线相关的信号时都一头雾水,仔细研究一下,将信号分分类,发现其实也不难。
    的头像 发表于 05-25 11:22 617次阅读
    <b class='flag-5'>AXI</b><b class='flag-5'>总线</b>工作流程

    LPC8N04 I2C Master/Slave混合操作是否可行?

    Slave 切换到 Master,这样它也可以读取一些传感器,并将结果缓存在它的 EEPROM 中。 另一个更大的处理器会定期唤醒并读取 I2C 总线,从 LPC8N04 EEPROM 空间中获取
    发表于 05-19 07:12

    为什么我的slave设备总是收到“Master : 0”?

    项目描述: 1.CY8CKIT-059为主站,ESP8266 mini d1为从站。 2.Master每2秒通过SPI与Slave通信,每次值增加1. 问: 我不知道为什么我的slave设备总是收到“
    发表于 05-10 12:05