Advertisement

axi ps读写pl_ZYNQ PS和PL接口技术

阅读量:

ZYNQ是首款将高性能ARM Cortex-A系列处理器与高性能FPGA集成在同一芯片中的创新产品。本产品旨在通过高效的高速通信机制实现ARM处理器与FPGA之间的数据交互,并充分发挥两种芯片的技术优势。因此,在芯片设计中重点解决高效片内互联技术的设计问题至关重要且是决定产品成功的关键因素之一。本节主要阐述PS端到PL端的数据传输连接方式及其相关技术原理。实际上,在具体实施过程中我们通常无需对数据传输连接处进行深入设计工作,在引入Intel FPGA IP核后系统会在综合布线阶段自动配置AXI接口以实现IP核与处理器的无缝对接,并在此基础上我们只需补充一些必要的功能模块即可完成功能搭建。不过这一部分概念知识掌握还是有必要的。

AXI 接口标准介绍

AXI是Xilinx从6系列FPGA引入的一种接口协议体系,在ZYNQ环境中沿用并发展为AXI4系列接口。当前系统中普遍采用的是AXI4.0协议体系,在此架构下众多内部设备均集成有AXI接口支持。实际上这一协议体系是ARM公司AMBA(AdvancedMicrocontrollerBusArchitecture)架构的一部分,在性能上具有高带宽、低延迟的特点,并被用于替代传统AHB与APB总线系统。该协议体系起源于ARM公司于2003年发布的AMBA3.0标准中提出的第一个版本(AXI3),随后于2010年发布的新版AMBA4.0标准中则首次引入了第二代版本(AXI4)。在具体应用中,AXI协议体系主要针对主设备与从设备之间的数据传输方式进行规范与描述:通过握手信号建立设备间的连接通道。当从设备处于准备接收数据的状态时会发送有效性的READY信号;而主设备在接收到有效数据后会激活并维持有效的VALID信号以表示数据的有效性;只有在READY与VALID两个信号均为有效状态时才能开始数据传输过程;在此过程中主设备会持续发送下一个待传输的数据;若主设备撤销VALID信号或者从设备撤销READY信号,则意味着传输操作应终止结束。该协议体系的具体实现细节可参考图1所示的通信流程示意图:其中T2时刻表示从设备已准备好接收数据状态;T3时刻为主设备发送出有效的VALID信号标志着数据传输正式开始运行

2c6881cd466fda0c642d49a62354a3fc.png

图 1AXI 握手时序图

在 ZYNQ 中,支持 AXI-Lite、AXI4 和 AXI-Stream 三种总线(如表1所示),这些接口提供了丰富的特性。 表 1 列出 AXI 接口分类

f6d14e234faaff8e25465575024f2bb9.png

AXI-Lite:

该方法呈现出轻量化的特性,并且架构简洁明了,在小批量数据环境下运行效率较高且易于操作。该系统不具备批处理功能,在每次读取或写入操作中仅能处理单个字符(32位),适用于对低速外围设备及设备状态进行访问与调控。

AXI4:

接口与AXI-Lite具有相似的功能特性,在新增的一个功能模块下能够实现对同一片地址区域的数据一次性读写操作,并且这种操作能够高效地完成大量数据的同步处理过程。其核心优势在于实现数据传输的集中高效

以上两种均采用了内存映射控制的方式。具体而言,在执行读写操作时仿佛在操作自己的内部RAM空间,并且这种机制使得程序设计相对直观易懂。值得注意的是,在使用该机制时虽然编程过程较为便捷但总体开发难度不高。然而其潜在的成本不容忽视即资源消耗较高具体包括:增加了必要的总线接口如输入总线输出总线数据输入总线数据输出总线以及响应总线等以支持相应的功能模块实现。

AXI-Stream:

这种设计采用了一种连续流接口机制,在无需使用地址线的情况下(类似于FIFO模式,在这种情况下始终进行读取或写入操作),能够实现数据传输需求

****AXI4 和 AXI4-Lite 接口包含 5 个不同的通道:

  • ReadAddressChannel

  • WriteAddressChannel

  • ReadDataChannel

  • WriteDataChannel

  • WriteResponseChannel

ad7d86967a8877e56a6871f801bef46d.png

图 2AXI 读数据通道

e24452fa16bef9c81eb2a7f7ba50127f.png

图 3AXI 写数据通道

ZYNQ 的 AXI 资源

在ZYNQ芯片内部通过硬件实现了Axi总线协议,并包含以下9个物理接口:具体包括Axigp0至Axigp3以及Axihp0至Axihp3的总线接口配置和AxiAcp接口。

AXI_ACP接口被定义为在ARM多核架构中的一种接口,在中文语境下其官方译名是加速器一致性端口(API),主要用于管理诸如不带缓存的AXI外围设备的DMA操作。该接口在其主设备端子的一侧(PS端子)连接着从主设备发送信号的Slave接口。

AXI_HP接口是一种高性能/高带宽的AXI3.0接口,并包含四个实例;每个PL模块都充当主设备进行连接;其主要功能是实现PL与PS存储器(包括DDR和On-ChipRAM)之间的数据传输

AXI_GP 类型的接口属于通用类的 AXI 接口体系中的一种重要组成部分。该接口系统总共包含四组功能模块,其中分为两组:一组为标准类型的 32 位主设备连接模块以及相应的从设备连接模块;另一组则为扩展类型的专用连接组件。

AXI接口分布图如下图 4 所示:

6145fb2d997df639a6bc47f4ae0328a2.png

图4AXI接口分布图

可以观察到,在7个AXI-GP中仅有2个为主机端口(MasterPort),其余5个口属于从机端口(SlavePort)。其中的主机端口具备发起读写操作的能力。ARM处理器能够通过两个AXI-GP主机端口主动访问PL逻辑——即将PL映射至特定地址空间进行读写操作。而其余从机端口仅作为被动接收方,在此场景下只能接受来自PL的读写指令并执行相应操作。

另外这9个AXI(genic)界面的性能各有不同。其中GP(Global)界面是一种基于32位的低性能设计,默认传输速率为600MB/s;相比之下,在提升型界面中HP(High Performance)与ACP(Advanced Cyclic Perceptron)则采用了64位的高性能架构,默认传输速率达到1200MB/s。What’s the rationale behind not designing high-performance interfaces as host interfaces?The answer lies in that high-performance interfaces don’t require ARMCPU to handle data transfers. Instead, their operation is facilitated by DMA (Direct Memory Access) controllers located within the PL (Periphery Component) module.

PL 端的 AXI 接口设计

位于PS端的ARM直接具备AXI接口的支持能力,在硬件层面上已经实现了相应的对接功能;而PL单元则需要通过逻辑电路来完成对AXI协议的具体实现工作。在Vivado开发环境中Xilinx已经提供了丰富的现成IP资源包括AXI-DMA、AXI-GPIO、AXI-Dataover以及AXI-Stream等模块均支持对相应接口进行配置与连接操作;用户在使用这些模块时只需要将相关IP项添加至Vivado的IP配置列表中即可完成所需功能的集成与调试过程。如图所示为Vivado环境下配置的各种DMAIP实例:

d57d0288b24778a58e8174ae3d27810b.png

图 5AXIDMAIP 核

下面为几个常用的 AXI 接口 IP 的功能介绍:

AXI-DMA :实现从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换

AXI-FIFO-MM2S :实现从 PS 内存到 PL 通用传输通道 AXI-GPAXI-Stream 的转换

AXI-Datamover 实现了将数据从PS内存传输至目标平台(PL)高速通道中的AXI-HPAx Stream转换过程。而这次转换过程完全由目标平台(PL)主导。源平台(PS)始终处于被动接收状态。

AXI-VDMA 专门负责从 PS 内存到 PL 高速传输高速通道 AXI-HPAXI-Stream 的转换过程,并非用于其他类型的三维数据

AXI-CDMA :这个是由 PL 完成的将数据从内存的一个位置搬移到另一个位置,无需 CPU 来插手。

在实际应用中,用户可能需要自行设计一个IP与Power Supply(PS)进行通信。这种情况下,可以通过向导工具自动生成相应的IP地址。一个自定义的IP核通常具备AXI-Lite、AXI4、AXI-Stream、Plus Bus (PLB)和Fast Streaming (FSL)等功能模块。需要注意的是,在ARM架构的一端通常不具备Plus Bus (PLB)和Fast Streaming (FSL)的支持功能。

现已成为AXI时序设计的核心资源的是官方IP以及由向导自动生成的自定义IP。对于大多数用户而言,在设计时无需深入掌握AXI时序细节。如果遇到复杂需求或性能瓶颈问题,则可参考相关文档或寻求技术支持。Xilinx已经将与AXI时序相关的各种细节进行了高度封装,在这种情况下用户的主要任务就是专注于自身逻辑的设计与实现。

AXI Interconnect

AXI 协议被严格定义为一种基于点对点通信的主从型接口协议;在多外围设备之间建立数据交互需求时,则通常涉及引入一个AXI互联矩阵模块;其主要功能是通过提供一种用于将一个或多个AXI主设备连接到一个或多个AXI从设备的方式实现信息传递(这种机制与网络交换机中的交换矩阵具有相似性)。

这个 AXIInterconnectIP 核最多支持 16 台主设备与 16 台从设备连接;若需增加更多接口,则可添加额外的 IP 核。

AXIInterconnect 基本连接模式有以下几种:

  • N-to-1Interconnect

  • 1-to-NInterconnect

  • N-to-MInterconnect(CrossbarMode)

  • N-to-MInterconnect(SharedAccessMode)

0ecf63f8433f9fbc1a374a2e611a9ca3.png

图 6 多对一的情况

6dcb0041eaabaa7726a01f33e5331f1e.png

图7 一对多的情况

15762cb071bb58497e9c79812a7502e3.png

图8 多对多读写地址通道

a34c31324eb4873f8a2521fbde89f2a6.png

图9 多对多读写数据通道

ZYNQ内部的AXI接口设备是通过互联矩阵的方法互联起来的,并且既确保了高效传输数据又保证了灵活连接。Xilinx在Vivado中集成了一个名为axi_interconnect的IP核,使用起来非常方便。

b475668ff800007e792ea155b1832166.png

图10 AXIInterconnectIP

END

往期精彩回顾(?猛戳可查看)

  • 校招笔试题合集

  • 数字IC设计经典笔试题之【FPGA基础】

  • 数字IC设计经典笔试题之【verilog篇】

  • 数字IC设计经典笔试题之【IC设计基础】

  • 硬件工程师面试题【1】

  • 硬件工程师笔试题【2】

  • 有了这份面经,麻麻再也不用担心我找不到工作了!

  • FPGA合集

  • 跨时钟域处理3大方法

  • FPGA信号截位策略

  • FPGA中的亚稳态

  • FPGA芯片结构

  • FPGA FIFO深度计算

  • FPGA奇数分频

  • 竞争冒险现象及消除方法

  • “ 一网打尽 ” 二进制、格雷码、独热码编码方式

  • DDR3 IP 核配置

  • DDR3 IP核仿真

  • 行业动态合集

  • 【思考】数字IC设计工程师的发展前景如何

  • 中国芯片设计企业与薪资榜单

  • 雷达信号处理合集

  • 雷达信号处理基础之【相参积累处理】

  • 雷达信号处理基础之【恒虚警处理】

  • 雷达信号处理基础之【单脉冲测角处理】

  • 雷达信号处理基础之【雷达LFM信号分析】

  • 闲聊

  • 【夜读】三十岁前,一定要坚持的几件事

  • 知识星球

04a72b7c5437be6b75ff7f4d37947655.png

$display**("点个在看吧!")**

3f64db9d345703655fb9e7a300ebf196.gif

全部评论 (0)

还没有任何评论哟~