AXI总线协议
AXI总线协议
(一)、概述
AXI (高性能扩展总线接口,Advanced eXtensible Interface)是ARM AMBA 单片机总线系列中的一个协议,是计划用于高性能、高主频的系统设计的。AXI 协议是被优化用于通过使用Xilinx 进行的相应的开发来做FPGA 实现,它被用作FPGA 设计的IP 核之间的一种通信方式。
关键特性
1、地址/控制阶段和数据阶段是分开的,即master(主机)和slave(从机)之间有专门的地址/控制通道,还有专门的数据通道。
2、有字节闸来实现对非对齐数据的传输。
3、只需发布起始地址就能做批量数据传输
4、数据的读写通道是分离的,可以用来实现低成本的DMA(直接存储访问,Direct Memory Access)。出了地址和数据通道是分离的之外,读写数据的通道还是分开的,由此可以看出AXI总线的高速性。
5、可以指定多个需要处理的地址。
6、通信会话可以乱序完成,主要是指的数据的乱序,乱序发送需要有主机的ID进行支撑。
7、为了实现时序收敛,可以方便的加入寄存器,即在用户logic和user interface处加入想要观察和处理的用户逻辑与端口。
(二)、AXI总线类型
自从2003年AXI1.0版本发布以后,目前的AXI版本是4.0,AXI接口类型有三种,即AXI4类型、AXI4-Lite类型,AXI4-Stream类型。
AXI4类型:最高性能的接口,适合存储器映射的通信,支持每个地址阶段256个数据传输周期的批量传输,存在于PS-PL之间。
AXI4_Lite类型:AXI4接口类型中轻量级版本,用于存储器映射的单次数据通信会话,简化了的接口占用较少的逻辑部分面积,不支持批量数据,只支持每次传输单个数据,存在于PS-PL之间。
AXI4-Stream类型:没有地址阶段,不是存储地址映射,仅仅存在与PL侧,可以实现无限制的数据批量大小,为流式数据传输定义单个专用通道,连接只能是从主机到从机。为了实现双向传输,两个外围设备都必须是主机/从机简称融类型。
(三)、AXI架构
AXI协议规定一个AXI主机可以用写数据通道通过AXI总线互联将数据传送给一个AXI从机(或者通过读取数据通道从从机传送到主机),写数据传输会话会有一个额外的响应通道,但是读取时并没有,这时考虑到数据的流向。在进行数据读取时,数据流向:Slave to Master,从机可以直接通过读数据通道向主机返回信息。在进行数据写入时,数据流向:Master to Slave,数据流向是单向的,需要有一个专门的响应通道。
无论是度还是写,地址和控制数据都是在数据的发送/接收之前:
特别注意AXI互联(AXI Interconnect):
(1)、主机AXI从处理器系统和处理器时钟各自流向从机输出S00_AXI和S00_AXLK。
(2)、AXI互联的输出都是主机通道,每个通道驱动对应的设备。
AXI-Lite代码分析
(一)、RTL视图
模块输入信号:
(1)、从机时钟
(2)、从机复位
(3)、从机地址读取有效
AXI4-Stream协议
一、协议介绍
1、AXI4_Stream:适用于高速数据流,去掉了地址项,允许无限制的数据突发传输。除了总线时钟和总线复位,其他的接口信号都是以字母T开头。
2、信号接口描述:
(1)、ACLK---------时钟源-----全局时钟信号,所有信号在主时钟信号的上升沿采样。
(2)、ARESETN------复位------低电平有效。
(3)、Tvalid-------主机数据有效信号,(区别AXI4、AXI4-Lite,AXI4_Stream去掉了地址项),由主机发出,高速从机发出的数据有效。源为master。
(4)、Tdata[31:0]--主机发出的数据,数据宽度可选,32/64/1278/256 bit。源位master。
(5)、Tkeep[3:0]---字节修饰符,用于表明Tdata相关字节的内容是否为有效数据,未被Tkeep位确认的字节为孔子杰,视为无关字节,可以从字节流中去除。源为master。
(6)、Tlast--------主机通知从机这时最后一个数据,即为数据包的边界。源为master。
(7)、Tid---------由主机发出,Identity标识符,在存在多个stream数据传输时起作用,用于识别不同的数据流。源为master。
(8)、Tready------从机发出的接收准备好信号。
二、通信机制
最重要的就是牢记只有 Tvalid & Tready == 1 时才能开始数据传输,Valid信号由数据传输源产生,Ready信号由目的源产生(来自米联客book,这句话总结的太经典了,因为在其他的AXI4总线进行数据读取时,主机也会产生Rready信号)。
因为AXI4-stream去掉了地址线(依靠Tid进行数据流识别),不涉及数据的读写通信,仅涉及简单的发送与接收,减少了传输延时。
AXI总线协议的更多相关文章
- zynq里面的AXI总线(2017-1-11)
在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议.其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requir ...
- AMBA总线协议AHB、APB、AXI对比分析【转】
转自:https://blog.csdn.net/ivy_reny/article/details/56274412 一.AMBA概述 AMBA (Advanced Microcontrolle ...
- zedboard如何从PL端控制DDR读写(二)——AXI总线
虽然Xilinx已经将和AXI时序有关的细节都封装起来,给出了官方IP和向导生成自定义IP,用户只需要关注自己的逻辑实现,但是还是有必要简单了解一下AXI的时序,毕竟咱是做硬件设计的. AXI(Ad ...
- AXI总线
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...
- AXI总线简介
AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式.在ZYNQ中继续使用,版本是A ...
- AXI总线介绍
原帖地址:https://wenku.baidu.com/view/7c424c17e3bd960590c69ec3d5bbfd0a7956d5b9.html 1.AXI简介 AXI(Advanc ...
- AXI总线(转)
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...
- AXI总线简介、ID分析、DMA、Vivado烧录、系统集成
转载:https://blog.csdn.net/CrazyUncle/article/details/89918030?depth_1-utm_source=distribute.pc_releva ...
- SPI总线协议及SPI时序图详解
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...
随机推荐
- 关于:基于http协议大文件断点续传上传至web服务器
关键部分 前端用file.slice()分块 前端用FileReader获取每一分块的md5值 后端用MultipartFile接受分块文件 后端用FileOutputStream拼装分块文件 话不多 ...
- 随机数:rand()
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数) 表头文件: #include<stdlib ...
- Android学习笔记之数据的Sdcard存储方法及操作sdcard的工具类
FileService.java也就是操作sdcard的工具类: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- 【转】Tarjan算法 资料合集
http://blog.csdn.net/fuyukai/article/details/51039788 Tarjan三大算法之双连通分量(割点,桥) Robert Endre Tarjan是一个美 ...
- 5.Python注释(多行注释和单行注释)用法详解
Python单行注释 Python 中使用井号(‘#’)作为单行注释的符号,语法格式为: # 注释内容 也就是说,从符号‘#’处开始,直到换行处结束,此部分内容都作为注释的内容,当程序执行时,这部分内 ...
- JAVA单例模式的实现伪代码
什么是单例?:其定义是单例对象的类只能允许一个实例存在 单例的实现基本原理:1.将该类的构造方法定义为私有访问,不对外暴露从而使其他类不能实例化该类对象,只能通过该类的静态方法得到该类的唯一实例 2. ...
- 关于kafka在windows上的安装、运行
一.安装kafka 下载地址:http://kafka.apache.org/downloads 要下载Binary downloads这个类型,不要下载源文件,这种方便使用.下载后,解压放在D ...
- Ubuntu18.04修改为阿里云
对源安装时,要先知道系统的版本,以免安装错的版本 使用命令:lsb_release -c 备份原先的配置文件 cd /etc/apt sudo cp sources.list sources.list ...
- heap和stack区别
转载自博客:https://www.cnblogs.com/perfy/archive/2012/09/06/2672946.html 1.heap是堆 ,stack是栈 2.stack的空间由操作系 ...
- md5值校验
使用哈希的md5给文件加指纹,如果文件被更改,指纹信息就会不匹配,从而确定文件的原值是否被改动. [root@b test]# md5sum a.txt > zhiwen.txt[root@b ...