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

    文章

    143

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    利用蜂鸟E203搭建SoC【1】——AXI总线的配置与板级验证

    融合进BD设计流程,第一步需要对其总线进行配置以便于后续的SoC搭建。 蜂鸟e203内部使用的是icb总线,这种总线协议与AXI类似,都采用了握手信号进行传输,相对易于转换;此外,
    发表于 10-30 07:35

    关于ICB总线的应用

    ICB总线总的可以分为命令通道和响应通道,主机通过ICB总线向从机发送命令,从机通过ICB总线响应主机,如下图所示 如下是往ICB总线
    发表于 10-29 07:44

    将e203 例化AXI总线接口

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

    使用BLE(CYW20829)作为SPI slave和MCU(TC387)作为SPI master,调试SPI通信时遇到的问题求解

    我们这边使用BLE(CYW20829)作为SPI slave和MCU(TC387)作为SPI master,调试SPI通信时,遇到个问题: 1. 1.slave接收来自
    发表于 07-01 08:28

    RDMA简介8之AXI分析

    AXI4 总线是第四代 AXI 总线,其定义了三种总线接口,分别为:AXI4、
    的头像 发表于 06-24 23:22 457次阅读
    RDMA简介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
    发表于 06-24 18:00

    NVMe IP之AXI4总线分析

    时,需要通过AXI互联IP(AXI Interconnect)来实现多对多的拓扑结构 ,如图3所示。Interconnect拥有多个 Master/Slave接口,并在内部基于轮询或者
    发表于 06-02 23:05

    NVMe简介之AXI总线

    NVMe需要用AXI总线进行高速传输。而AXI总线是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)协议中的重要组成部分,
    的头像 发表于 05-21 09:29 586次阅读
    NVMe简介之<b class='flag-5'>AXI</b><b class='flag-5'>总线</b>

    NVMe协议简介之AXI总线

    与写通道分离,从而具有并行处理的能力,大幅提高了总线传输带宽和传输效率。AXI4总线分为写通道和读通道。写通道由写地址通道、写数据通道、写响应通道组成。写地址通道数据流从主机指向从机
    发表于 05-17 10:27

    AXI接口FIFO简介

    AXI接口FIFO是从Native接口FIFO派生而来的。AXI内存映射接口提供了三种样式:AXI4、AXI3和AXI4-Lite。除了Na
    的头像 发表于 03-17 10:31 1779次阅读
    <b class='flag-5'>AXI</b>接口FIFO简介

    DLP3310模组里面为什么用了MasterSlave个3437片子驱动DMD?作用分别是什么?

    DLP3310模组里面为什么用了MasterSlave个3437片子驱动DMD?作用分别是什么? 如果用此套件做二次开发,是否涉及到fpga的程序开发? 红绿蓝LED的打开和关断是同步什么信号来切换,还是说一直在打开状
    发表于 02-19 07:00

    ZYNQ基础---AXI DMA使用

    通道,从ddr读出数据通道和向ddr写入数据通道。其IP结构的边分别对应着用于访问内存的AXI总线和用于用户简
    的头像 发表于 01-06 11:13 3586次阅读
    ZYNQ基础---<b class='flag-5'>AXI</b> DMA使用

    RISC-V芯片中使用的各种常用总线释义

    Master)和多个从设备(Slave)组成,通过四根线(SDI、SDO、SCK、CS)实现数据传输和控制。 特点 :简单易用、占用管脚少、适用于多种外设连接。 综上所述,RISC-V芯片中使用的各种常用总线
    发表于 12-28 17:53