AXI

ZYNQ中的AXI接口共有9个,主要用于PS与PL的互联,包含以下三个类型:
. AXI_ACP接口,是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。
. AXI_HP接口,是高性能/带宽的AXI3.0标准的接口,总共有四个,PL模块作为主设备连接。主要用于PL访问PS上的存储器(DDR和On-Chip RAM)
. AXI_GP接口,是通用的AXI接口,总共有四个,包括两个32位主设备接口和两个32位从设备接口。
AXI_第1张图片
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。
AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。
AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。

1.1 AXI协议特点

AMBA AXI协议支持支持高性能、高频率系统设计。
适合高带宽低延时设计
无需复杂的桥就能实现高频操作
能满足大部分器件的接口要求
适合高初始延时的存储控制器
提供互联架构的灵活性与独立性
向下兼容已有的AHB和APB接口
关键特点:
分离的地址/控制、数据相位
使用字节选通,支持非对齐的数据传输
基于burst传输,只需传输首地址
读、写数据通道分离,能提供低功耗DMA
支持多种寻址方式
支持乱序传输
易于添加寄存器级来进行时序收敛

zynq的三种总线
AXI-full(AXI4) 用于高性能的内存映射需求,说白了就是可以读写ddr,类似dma。
AXI-lite (AXI4-Lite) 用于简单的低吞吐量内存映射通信(例如,与控制和状态寄存器之间的通信),一般用于低速少量的数据通信,比如传递参数。
AXI-stream (AXI4-stream)用于高速流数据,没有地址信号,速度更快,可以承担更大的数据量。

. AXI4——For high-performance memory-mapped requirements.
. AXI4-Lite——For simple, low-throughput memory-mapped communication (for example, to and from control and status registers).
. AXI4-Stream——For high-speed streaming data

4个GP,其中,ps作为主设备2个,从设备2个。这个对应AXI-lite总线使用。这接口我用的挺多,传输速度也不快,用于ps与pl少慢数据通信。
4个HP,ps都作为从设备,对应AXI-full总线。因为这个高速传输接口,ps太慢了,要顺着 pl走。
1个ACP,全称acceleratorcoherency port (ACP),加速一致性接口。这个直接通往arm内部,不经过ddr,所以速度是最快的。

AXI4和AXI4-Lite接口包含5个不同的通道:
. Read Address Channel
. Write Address Channel
. Read Data Channel
. Write Data Channel
. Write Response Channel

AXI_第2张图片

写架构
AXI_第3张图片
AXI使用基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。

读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。
读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024 bit)和指示读传输完成的读响应信号。
写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,master无需等待slave对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16…1024 bit)和字节线(用于指示8 bit 数据信号的有效性)。
写响应通道:slave使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。
在这里插入图片描述

AXI_第4张图片
AXI_第5张图片
AXI_第6张图片
AXI_第7张图片

AXI_第8张图片
AXI_第9张图片

AXI_第10张图片

你可能感兴趣的:(FPGA基础)