FPGA — AXI接口协议介绍

这篇具有很好参考价值的文章主要介绍了FPGA — AXI接口协议介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料

基于Vivado的AXI参考指南UG1037
ARM文档:AMBA AXI协议规范(IHI0022D)
可去官网下载英文文档查看,也可下载资源:https://download.csdn.net/download/unique_ZRF/87008791

一、AXI接口简介

1.1 什么是AXI

AXI(高级可扩展接口) 是ARM AMBA的一部分
AMBA(Advanced Microcontorller Bus Architecture)高级微控制器总线架构;是1996年首次引入的一组微控制器总线;开放的片内互联的总线标准,能在多主机设计中实现多个控制器和外围设备之间的连接和管理。

1.2 AXI接口的三种类型

三种类型都是基于握手的机制

1.2.1 AXI4(AXI4-FULL)

用于高性能的存储器映射需求;
可传输大量数据到内存中,或从内存中读出数据。

存储器映射:指主机在对从机进行读写操作时,指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作;

1.2.2 AXI4-Lite

简化版的AXI4接口;
用于低吞吐率存储器映射的通信。

1.2.3 AXI4-Stream(ST)

用于高速的流数据通信:不需要指定地址;单一通道的单向数据流的通信;一般可用于传输视频数据;

1.3 AXI的优点

生产力:
标准AXI接口,只需要学习单一的协议即可。

灵活性:
AXI4:进行读写操作只需一个单一地址就可以进行突发传输,最大支持256个数据
AXI4-Lite:轻量级,不支持突发传输,支持单次传输一个数据
AXI4-Stream:移除了关于地址的需求,没有限制单次突发传输的长度。

可获得性

1.4 AXI的工作

AXI规范描述了单个AXI主机和AXI从机之间的接口,表示相互交换信息的IP核。

1.4.1 AXI4和AXI4-Lite包含5个独立的通道

读地址通道
读数据通道
写地址通道
写数据通道
写响应通道

1.4.2 举例

带AXI主从接口的IP核如下图所示:
axi接口协议,FPGA,fpga开发
从机接口展开如下图所示:
axi接口协议,FPGA,fpga开发

AXI4操作

读和写地址通道是分离的,所以支持双向同时传输;对于AXI4,只需知道一个地址,就可以突发传输256个字节的数据。

AXI4读操作示意图

axi接口协议,FPGA,fpga开发

AXI4写操作示意图

主机设备通过写地址通道发送写地址和控制命令–>主机设备通过写数据传输数据–>从机设备通过写相应通道发送应答
axi接口协议,FPGA,fpga开发

AXI4-Lite操作

与AXI4相似,区别是,AXI4-Lite只支持单次数据的传输,不支持突发传输.

AXI4-Stream

定义了一个单一通道传输流数据,Stream通道模型与AXI4的写数据通道相似,不同的是Stream的突发传输的数据大小是不受限制的

1.4.3 基础架构的IP核

用来搭建系统的构建块

详细内容可参考xilinx的手册UG1037

例如:
AXI寄存器片
AXI FIFOs
AXI 互联IP和AXI Spart互联IP
AXI Direct Memory Access(DMA): 实现Stream数据流到存储器映射的数据流的转换
AXI ItertConnectAXI SmartConnect:这两个IP核都用于连接单/多个存储器映射的AXI Master和单/多个存储器映射的AXI Slave

二、AXI接口详细介绍

2.1 AXI的通道定义

每一个独立的通道都包含一组信息信号、VALID信号和READY信号,用于提供双向的握手机制;
信息源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效;
目的端使用READY信号表示什么时候可以接收信息;
读数据通道和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据。

2.1.1 读和写数据通道

读数据通道和写数据通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息。

读数据通道由从机发送给主机,包含了读数据和读响应的信息,读相应的信号用于表示读传输是否操作完成;

写数据通道由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据的哪个字节有效

写响应通道由从机发送给主机,包含了写响应信号,用于表示当前写操作是否完成。

2.2 信号描述(AXI4-Full)

详细内容可查看文档:IHI0022D_amba_axi_protocol_spec.pdf

2.2.1 全局信号

ACLK:所有信号在全局时钟上升沿采样
ARESETn:低电平有效的复位

2.2.2 写地址通道(AXI4-Full)

接口图片如下所示:
axi接口协议,FPGA,fpga开发
写地址通道定义的信号如下图所示:
axi接口协议,FPGA,fpga开发
(1)AWID:主机发送到从机,表示写地址的ID,指定某些特殊传输任务的顺序

(2)AWADDR:写地址;由主机发送;给出突发传输的起始地址

(3)AWLEN突发长度,给出突发传输时的数据量。
突发长度:自增的突发模式(INCR)下:Burst_Length=AxLEN[7:0]+1
若给出的突发长度为15,则实际突发长度要加1为16

(4) AWSIZE:突发传输的大小
突发传输模式下,单次传输的数据量
axi接口协议,FPGA,fpga开发
AWLINE和AWSIZE举例:
axi接口协议,FPGA,fpga开发

(5)AWBURST:突发类型,从机根据突发类型和大小,计算后面的数据传输到哪个地址
固定突发类型(FIXED):突发传输的所有数据写到同一个地址中
自增突发类型(INCR):在突发传输的时候,地址是进行累加的
举例:增加的值取决于传输的数据大小,比如在一次4个字节的突发传输中,地址也是每次累加4
回环突发(WRAP):与自增突发模式类似,区别是:地址累加到达上限之后,回到较低的地址再进行累加

(6)AWLOCK:0的时候表示正常传输,1的时候表示独有传输

(7)AWCACHE:存储器类型
例如:值为0010表示不缓存
axi接口协议,FPGA,fpga开发

(8)AWPROT:保护类型
该信号指示传输的特权和安全级别,以及传输是数据访问还是指令访问。
axi接口协议,FPGA,fpga开发

(9)AWQOS:服务质量

(10)AWREGION:区域ID

(11)AWUSER:用户可定义的信号

(12)AWVALID:写地址有效;表示当前通道的写地址和控制地址是否有效;(源)发出方为主机(Master)

(13)AWREADY:当前从机是否准备好接收主机的地址和控制信息;(源)发出方是从机(Slave)

(14)AWVALID和AWREADY握手机制:
AWVALID和AWREADY两个信号同时拉高,即同时有效的时候,主机才能正式将数据写到从机

2.2.3 写数据通道

接口图如下所示:
axi接口协议,FPGA,fpga开发
axi接口协议,FPGA,fpga开发
(1)WID:写数据的ID

(2)WDATA:写数据;其所携带的信息即为要写入的数据

(3)WSTRB:屏闪信号,指示当前的WDATA哪一个字节有效(即可以屏蔽不需要写入的数据)

(4)WLAST:表示每次突发传输最后一个数据的时候,拉高一下WLAST信号

(5)WUSER:用户自定义的信号

(6)WVALID:握手机制,作用于写地址通道相同

(7)WREADY:握手机制,作用于写地址通道相同

2.2.4 写响应通道信号

axi接口协议,FPGA,fpga开发
(1)BID:写响应ID

(2)BRESP写传输的状态(从机发送给主机)
axi接口协议,FPGA,fpga开发
axi接口协议,FPGA,fpga开发
OKAY:正常访问成功
EXOKAY:独占式存取OK
SLVERR:从机错误,从机已经接收到数据,但出现错误
DECERR:解码错误,互联模块无法成功译码从机

(3)BUER:用户自定义

(4)BVALID:握手机制,从机发送给主机

(5)BREADY: 握手机制,主机发送给从机

2.2.5 读地址通道

功能与写地址类似
axi接口协议,FPGA,fpga开发
ARID、ARADDR、ARLEN、ARSIZE、ARBURST、ARLOCK、ARCACHE、ARPROT、ARQOS、ARREGION、ARUSER、ARVALID、ARREADY

2.2.6 读数据通道

axi接口协议,FPGA,fpga开发
RID
RDATA: 读数据
RRESP:读响应
RLAST:突发传输读最后一个数据时,拉高
RUSER: 用户自定义
RVALID: 握手机制,从机发给主机
RREADY: 握手机制,主机发给从机

2.3 单一接口介绍

2.3.1 时钟和复位

时钟(ACLK)
每个AXI使用单一时钟信号ACLK。所有输入的信号在ACLK的上升沿采样,所有的输出的改变必须发生在ACLK上升沿之后。

复位(Reset)
(1) 低电平触发
(2)复位的时候,主机接口要驱动信号ARVALID、AWVALID和WVALID 为低电平
(3)复位的时候,从机接口要驱动信号RVALID和BVALID 为低电平
(4)其他信号可以为任意值

2.3.2 基本读写处理

握手机制:

(1)所有这5个通道都通过相同的VALID/READY握手过程来传输地址、数据和控制信息。这种双向握手的机制意味着主机和从机之间在传输数据时,都可以控制传输的速率。
(2)只有当VALID和READY信号同时为高电平的时候,传输才会发生。

通道握手信号:
每个通道都有自己的握手信号对
axi接口协议,FPGA,fpga开发
举例:写地址通道
(1)主机在地址和控制信号都有效的时候拉高AWVALID信号,当AWVALID信号拉高之后,要保持高电平不变,直到在时钟上升沿之后从机拉高AWREADY,此时AWVALID才可以改变。
(2)当主机在突发写传输最后一个数据的时候,WLAST信号要拉高

各个通道之间的关系

写响应必须跟在最后一次写数据传输的后面(它是其中的一部分)
读数据必须跟在读地址的后面

握手信号之间的相关性

单箭头指向的信号可以提前或滞后于箭头的开始进行拉高
双箭头指向的信号必须滞后于箭头的开始进行拉高

如下为读操作握手示意图,RVALID和RREADY信号必须滞后于ARVALID和ARREADY进行拉高;而ARVALID和ARREADY之间不用管先后拉高顺序;RVALID和RREADY之间也不用管先后拉高顺序
axi接口协议,FPGA,fpga开发
写操作握手示意图:
axi接口协议,FPGA,fpga开发
写响应握手示意图:
axi接口协议,FPGA,fpga开发

2.4 AXI4-Lite介绍

AXI4-Lite适用于当不需要AXI4完整功能的时候,比如一些简单的控制寄存器的读写(AXI GPIO、AXI 定时器、AXI UART)

2.4.1 AXI4-Lite定义

AXI4-Lite操作的关键功能
(1) 所有传输的突发长度为1
(2) 支持的数据总线位宽为32位或64位
(3)所有的访问不能修改且没有缓存
(4)不支持独占式访问

接口数量比AXI4少,但是接口含义是相同的
axi接口协议,FPGA,fpga开发

2.5 AXI突发传输时序图

2.5.1 AXI突发读

AXI突发读的时序图如下所示:
axi接口协议,FPGA,fpga开发

2.5.2 AXI突发写

AXI突发写的时序图如下所示:
axi接口协议,FPGA,fpga开发文章来源地址https://www.toymoban.com/news/detail-708907.html

到了这里,关于FPGA — AXI接口协议介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FPGA】 xilinx vivado中AXI4通信协议详解

    AXI是ARM 1996年提出的微控制器总线家族AMBA中的一部分。AXI的第一个版本出现在AMBA3.0,发布于2003年。当前的最新的版本发布于2010年。AXI 4总线和别的总线一样,都用来传输bits信息 (包含了数据或者地址) 。AXI4总线有三种类型,分别是AXI4、AXI4-Lite、AXI4-Stream AXI4:主要面向高性能

    2024年04月28日
    浏览(32)
  • FPGA-基于AXI4接口的DDR3读写顶层模块

    AXI4(Advancede Xtensible Interface 4)是一种高性能、高带宽的总线接口协议,用于在系统级芯片设计中连接不同的IP核(Intellectual Property)或模块。它是由ARM公司开发的,被广泛应用于各种SoC(System-on-Chip)设计中。 AXI4接口协议定义了一组规范,用于描述数据传输、地址传输、控

    2024年04月15日
    浏览(42)
  • 紫光FPGA DDR3 IP使用和注意事项(axi4协议)

    紫光DDR3 IP使用 对于紫光ddr3 IP核的使用需要注意事情。 阅读ddr ip手册: 1、注意:对于写地址通道,axi_awvalid要一直拉高,axi_awready才会拉高。使用的芯片型号时PG2L100H-6FBG676,不同的型号IP核接口和axi的握手协议也不一样(一定要注意),这点要注意,这也给我挖了一个很大的

    2024年04月12日
    浏览(39)
  • FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

    笔记记录,AMBA协议、APB协议、AHB规范、AXI4协议规范概述,只是概述描述,具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 AMBA(Advanced Microcontroller Bus Architecture)是一种由ARM公司提出的处理器总线架构,它定义了处理器、内存和外设之间的通信标准 。

    2024年02月04日
    浏览(27)
  • FPGA----UltraScale+系列的PS侧与PL侧通过AXI-HP交互(全网唯一最详)附带AXI4协议校验IP使用方法

    1、之前写过一篇关于ZYNQ系列通用的PS侧与PL侧通过AXI-HP通道的文档,下面是链接。 FPGA----ZCU106基于axi-hp通道的pl与ps数据交互(全网唯一最详)_zcu106调试_发光的沙子的博客-CSDN博客 大家好,今天给大家带来的内容是,基于AXI4协议的采用AXI-HP通道完成PL侧数据发送至PS侧(PS侧数

    2024年02月13日
    浏览(35)
  • 【正点原子FPGA连载】第二十章AXI4接口之DDR读写实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html Xilinx从Spartan-6和Virtex-6系列开始使用AXI协议来连接IP核。在ZYNQ MPSOC器件中,Xilinx在IP核中继续使用AXI协议。本章

    2024年02月02日
    浏览(37)
  • 【FPGA】AXI学习

    1.什么是AXI?        AXI是ARM AMBA的一部分,AMBA是1996年首次推出的微控制器总线系列。AXI的第一个版本首次包含在2003年发布的AMBA 3.0中。发布与2010的AMBA4.0包含了AXI的第二个主要版本,AXI4。        这儿有3种AXI4接口: AXI:用于高性能存储映射需求。 AXI4-Lite:用于简单,低

    2024年02月20日
    浏览(26)
  • FPGA——AXI4总线详解

    目录 AXI4总线 1、什么是AXI 2、AXI4协议的优势 AXI4的工作模式 AXI4读操作: AXI4写操作 AXI4和AXI4-Lite、AXI4-Stream接口信号 握手信号 AXI相关术语     AXI(Advanced eXtensible Interface高级可扩展总线)是一种总线协议     AXI4包含3种类型的接口: 1)AXI4:主要面向高性能地址映射通信的

    2024年02月02日
    浏览(42)
  • AMBA协议AXI-Lite(AXI-Lite介绍)

    AXI_Lite顾名思义即简化版的AXI协议,是对完整的AXI协议裁剪后的AXI协议; 特点: 突发长度永远是1,即只能单次读写,无法连续读写,常用于配置寄存器; 由于删减了逻辑,其资源也消耗较少; 地址映射,相较于AXI-Stream,AXI-Lite的每个数据读写都需要对应的地址; AXI_Lite的系

    2024年02月13日
    浏览(43)
  • 【ARM AMBA AXI 入门 13 -- AXI 协议中 RRESP 信号详细介绍】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 在 AXI (Advanced eXtensible Interface) 协议中, RRESP 信号用来表示读取事务的响应状态,它由从设备(Slave)发往主设备(Master)来通知读取操作的完成情况。 RRESP 信号是一个 2 位的编码字段,用于指示读取操作是否成功完成,或者在操作过

    2024年02月04日
    浏览(101)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包