ZYNQ的AXI协议(一)——简介

1.什么是AXI协议

  • AXI协议(Advanced eXtensible Interface, 即高级可扩展接口)是ARM 提出的AMBA(Advanced Microcontroller Bus Architecture,96年首次引入的一组微控制器总线,开放的片内互联总线标准,能在多主机设计中实现多个控制器核外设间的连接和管理)协议的一部分。
  • 通信协议就是指双方进行信息传递所遵循的规则和约定,在通信过程中, 主从之间会进行协调, 只有等接收方准备好之后,才能开始数据传输,这种机制我们称之为“ 握手”。AXI 协议就是描述了主设备和从设备之间的数据传输方式, 在该协议中, 主设备和从设备之间通过握手信号建立连接。

2.AXI协议特点及分类

  • AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:
    • 总线的地址/控制和数据通道是分离的;
    • 支持不对齐的数据传输;
    • 支持突发传输, 突发传输过程中只需要首地址;
    • 具有分离的读/写数据通道;
    • 支持显著传输访问和乱序访问;
    • 更加容易进行时序收敛。
  • 在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息, 这一组信号就组成了接口。 AXI4 协议支持以下三种类型的接口:
    1、 AXI4(AXI-FULL): 高性能存储映射接口【 Meamory Map,如果一个协议是存储映射的,那么主机所发出的会话( 无论读或写) 就会标明一个地址。 这个地址对应于系统存储空间中的一个地址, 表明是针对该存储空间的读写操作】。AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。 给出单一的地址就可以进行最大256次突发数据传输
    2、 AXI4-Lite:简化版的 AXI4 接口, 用于较少数据量的存储映射通信,只支持单次传输一个数据,不支持突发传输。AXI-Lite为外设提供控制信号、状态位等一些低速寄存器访问。占用资源少,使用简单。
    3、 AXI4-Stream(AXI-ST): 用于高速数据流传输,非存储映射接口。而AXI-Stream 接口则像 FIFO一样,数据传输时不需要地址,没用限制突发传输数据量,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、 PCIe、 DMA 接口等需要高速数据传输的场合。

3.为什么ZYNQ需要AXI

  • 在将不同工艺特征的处理器与 FPGA 融合在一个芯片上之后, 片内处理器与 FPGA 之间的互联通路就成了 ZYNQ 芯片设计的重中之重。如果 Cotex-A9 与FPGA 之间的数据交互成为瓶颈, 那么处理器与 FPGA 结合的性能优势就不能发挥出来。
  • ZYNQ PS 与 PL 交互所使用的接口:
    • EMIO。ZYNQ GPIO 接口信号被分成四组,分别是从 BANK0 到 BANK3。其中 BANK0 和 BANK1 中共计 54个信号通过 MIO 连接到 ZYNQ 器件的引脚上,这些引脚属于 PS 端; 而 BANK2 和 BANK3 中共计 64 个信号则通过 EMIO 连接到了 ZYNQ 器件的 PL 端。
      在这里插入图片描述

    • 在大多数情况下, PS 端经由 EMIO 引出的接口会直接连接到 PL 端的器件引脚上, 通过 IO 管脚约束来指定所连接 PL 引脚的位置。 通过这种方式, EMIO 可以为 PS 端实现额外的 64 个输入引脚或 64 个带有输出使能的输出引脚。 EMIO 还有一种使用方式,就是用于连接 PL 内实现的功能模块( IP 核) , 此时 PL 端的 IP 作为 PS 端的一个外部设备。
      在这里插入图片描述

    • AXI4接口

      • AXI GPIO IP 核为 AXI 接口提供了一个通用的输入/输出接口。 与 PS 端的 GPIO 不同, AXI GPIO 是一个软核( Soft IP),即 ZYNQ 芯片在出厂时并不存在这样的一个硬件电路, 而是由用户通过配置 PL 端的逻辑资源来实现的一个功能模块。 而 PS 端的 GPIO 是一个硬核( Hard IP) ,它是一个生产时在硅片中实现的功能电路。如下图,模块的左侧实现了一个 32 位的 AXI4-Lite 从接口, 用于主机访问 AXI GPIO 内部各通道的寄存器。 当右侧接口输入的信号发生变化时,模块还能向主机产生中断信号。不过只有在配置 IP核时选择“ 使能中断” , 才会启用模块的中断控制功能。
        在这里插入图片描述

      • 对于传输速度要求较高、数据量大、地址连续的场合,可以通过 AXI DMA 来完成。

      • 对于数据量较少、地址不连续、长度不规则的情况,此时 AXI DMA 便不再适用了。针对这种情况,可以通过 BRAM 来进行数据的交互。

参考:Xilinx UG1037
Vivado AXI Reference
[optional]
UG1037 (v4.0) July 15, 2017 [optional]
Vivado Design
Suite
AXI Reference Guide

猜你喜欢

转载自blog.csdn.net/qq_43445577/article/details/112804597