FPGA中AXI协议的理解及接口信号的中文描述

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

AXI协议

AXI简介

AXI4 所采用的是一种 READY VALID 握手通信机制,即主从模块进行数据通信前, 先根据操作对各所用到的数据、地址通道进行握手。主要操作包括传输发送者 A 等到传输接受者 B READY 信号后, A 将数据与 VALID 信号同时发送给 B,这是一种典型的握手机制。

AXI总线支持burst传输。Burst传输(翻译成突发传输或者连续传输),指在同一行中相邻的存储单元可以连续传输的方式,只需要提供起始地址和突发长度,就可以自动的对后面同样数量的存储单元进行读/写操作,而不需要连续提供地址

aq_axi_master,Xilinx的IP核的使用,fpga开发

图1 AXI4握手

AXI 总线分为五个通道:
· 读地址通道,包含 ARVALID, ARADDR, ARREADY 信号;
· 写地址通道,包含 AWVALID AWADDR, AWREADY 信号;
· 读数据通道,包含 RVALID, RDATA, RREADY, RRESP 信号;
· 写数据通道,包含 WVALID, WDATA, WSTRB(对应的字节有效位), WREADY 信号;
· 写应答通道,包含 BVALID, BRESP, BREADY 信号;
· 系统通道,包含: ACLK ARESETN 信号;

其中 ACLK axi 总线时钟, ARESETN axi 总线复位信号,低电平有效;读写数据与读写地址类信号宽度都为 32bit READY VALID 是对应的通道握手信号; WSTRB 信号为 1 bit 对应 WDATA 有效数据字节, WSTRB 宽度是 32bit/8=4bit BRESP RRESP 分别为写回应信号,读回应信号,宽度都为 2bit‘h0 代表成功,其他为错误。

aq_axi_master,Xilinx的IP核的使用,fpga开发 aq_axi_master,Xilinx的IP核的使用,fpga开发

AXI4读握手

AXI4写握手

github 上找到一个 AXI master 的代码,地址是https://github.com/aquaxis/IPCORE/tree/master/aq_axi_vdma。这个工程是一个自己写的VDMA,里面包含了大量可参考的代码。笔者这里主要使用了 aq_axi_master.v 这个代码用于AXI master 读写操作。

PL_WRITE_READ_PS_DDR

  1. 通过AXI4总线,需要编写pl端代码

AXI4的控制总线S00_AXI包含了写读数据的ADDR以及写读的数据DATA

aq_axi_master,Xilinx的IP核的使用,fpga开发

  1. 通过AXI4总线,主要是软件编写ps端代码

Zynq7000HP0主要完成与ddr的高速数据交互,GP0完成AXI_LITE寄存器等控制

aq_axi_master,Xilinx的IP核的使用,fpga开发

  1. ps将数据从emmc读取存入ddr,再通过dma将数据从ddr读取出来,通过M_AXIS_MM2S_0送出去

aq_axi_master,Xilinx的IP核的使用,fpga开发

AXI接口

信号

可选/必选

默认值

描述

Write Address

M_AXI_AWID

写地址识别ID

M_AXI_AWADDR[31:0]

必须

写入数据的内存地址

M_AXI_AWLEN[7:0]

Burst Length写入数据的Burst个数 传输量= AWLEN+1

M_AXI_AWSIZE[2:0]

Burst Size  2^n字节 一个Burst数据量的大小3’b011即使2^3=8Byte

M_AXI_AWBURST [1:0]

2’b01

Burst Type 每次传输之间地址如何变化 2’b00:fixed(FIXED固定) burst 2’b01:incrementing burst(INCR递增突发)  2’b10:warpping burst(WARP回环突发,地址长度是器件决定还是人为设定?未验证)

M_AXI_AWLOCK

2'b00

定义主机访问从机是否独占0normal access  1exclusive(独占) access 

M_AXI_AWCACHE[3:0]

2'b0011

表示不同的内存类型[0]:bufferable[1]:modifiable[2]:other allocate[3]:allocate

M_AXI_AWPROT[2:0]

必须

2'b000

Protect Fixed 2'b000 写事务的保护属性

M_AXI_AWQOS [3:0]

2'b0000

Quality of service

M_AXI_AWUSER

可变位宽,一般不建议使用

M_AXI_AWVALID

必须

Valid

M_AXI_AWREADY

必须

Ready文章来源地址https://www.toymoban.com/news/detail-790447.html

Write Data

M_AXI_WDATA[63:0]

必须

= 2^AWSIZE * 8

M_AXI_WSTRB[7:0]

=数据总线位宽 / 8,具体的WSTRB [n]为高对应于WDATA [(8n+7) : 8n]这一字节的数据有效(多少个字节时有效的)

M_AXI_WLAST

必须

最后一次数据传输WLAST1,表明此时刻的数据是最后一份数据

M_AXI_WUSER

M_AXI_WVALID

必须

valid

M_AXI_WREADY

必须

ready

Write Response

M_AXI_BID

写响应ID,与AWID保持一致

M_AXI_BRESP[1:0]

必须

写完成响应 00: OKAY正常访问成功 01: EXOKAY独占访问成功10: SLVERR丛机反映错11: DECERR指示互连模块无法成功解码从属访问。

最后数据全部传输完成后才通过写应答知道传输是否有错误

M_AXI_BUSER

M_AXI_BVALID

必须

Valid

M_AXI_BREADY

必须

Ready

Read Address

M_AXI_ARID

M_AXI_ARADDR[31:0]

必须

M_AXI_ARLEN[7:0]

几个Burst,实际传输数据量 = ARLEN + 1

M_AXI_ARSIZE[2:0]

Burst size 一个burst大小

M_AXI_ARBURST[1:0]

01

Burst Type

M_AXI_ARLOCK[1:0]

00

M_AXI_ARCACHE[3:0]

0011

M_AXI_ARPROT[2:0]

必须

000

M_AXI_ARQOS[3:0]

0000

Quality

M_AXI_ARUSER

M_AXI_ARVALID

必须

M_AXI_ARREADY

必须

Read Data

M_AXI_RID

写数据识别ID, ARID保持一致用来对应地址和数据

M_AXI_RDATA[63:0]

必须

M_AXI_RRESP[1:0]

读响应 同写响应

M_AXI_RLAST

必须

M_AXI_RUSER

M_AXI_RVALID

必须

Valid

M_AXI_RREADY

必须

Ready

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

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

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

相关文章

  • 【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)

    芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区 联合力荐 !近500篇 数字IC精品文章收录 ! 【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍 AXI协议 相较于

    2024年01月18日
    浏览(165)
  • AXI协议详解(7)-响应信号

    本章描述了 AXI 读写事务中的四个从响应。 它包含以下部分: 关于响应信令 响应类型 AXI 协议允许读取和写入事务的响应信号。 对于读取事务,来自Slave的响应信息与读取数据本身一起传递,但是对于写入,响应信息沿写入响应通道传送。 AXI 协议响应为: OKAY EXOKAY SLVERR D

    2024年02月16日
    浏览(61)
  • FPGA AXI4总线信号介绍篇

    AXI是一种总线协议,可以挂在多个master和slave:         (1)AXI4:主要面向高性能地址映射通信的需求;(突发数据)(地址映射模式)         (2)AXI4-Lite:是一个轻量级的,适用于吞吐量较小的地址映射通信总线;(无突发)(地址映射模式)         (3)AXI4-

    2024年04月11日
    浏览(60)
  • 【ARM AMBA AXI 入门 5 - AXI 协议中的 QoS信号及User信号介绍 】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 上一篇:ARM AMBA AXI 入门 4 - AXI 协议中的 Out-of-Order transfer and interleave 介绍 下一篇:ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号

    2024年02月16日
    浏览(42)
  • AMBA协议AXI-Stream(协议信号、设计实践)

      AXI-Stream(以下简称AXIS)是AMBA协议的AXI协议三个版本中(AXI4-FULL、AXI4-Lite、AXI4-Stream)最简单的一个协议;是AXI4中定义的面向数据流的协议,常用于对数据流的处理,如: 摄像头 高速AD Xilinx的AXI-DMA模块   在进行SOC设计中需要高速数据传输处理的场合,常常使用AXIS协

    2024年02月06日
    浏览(77)
  • 深入浅出AXI协议(2)——通道及信号

            在之前的文章中,我们主要介绍了什么是AXI协议,AXI协议的特点与优点,然后对于AXI协议非常重要的五通道结构进行了介绍,了解了5个通道各自的作用。本文我们继续AXI协议的学习,我们将讨论5个通道的具体内容和相对应的信号。这一部分的内容现在对于大家来说

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

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

    2024年02月04日
    浏览(190)
  • 【ARM AMBA AXI 入门 8 - AXI 协议中 RID/ARID/AWID/WID 信号】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 上篇文章:ARM AMBA AXI 入门 7 - AXI 协议中的独占访问 使用背景介绍 下篇文章:ARM AMBA AXI 入门 9 - AXI 总线 AxPROT 与安全之间的关系

    2024年02月15日
    浏览(66)
  • AXI4协议学习:架构、信号定义、工作时序和握手机制

    UG1037 不是 高级微控制器总线结构(advanced micro controller bus architecture,AMBA)ARM AXI4规范 的替代品,而是说明: 可用于创建基于AXI的IP的Xilinx工具。 被Xilinx采用的AXI功能。 将现有设计改为AXI接口的向导文件。 XIlinx 从Spartan-6和Virtex-6开始使用 高级可扩展接口(Advanced eXtensible In

    2024年02月16日
    浏览(35)
  • FPGA开发(4)——AXI_LITE总线协议

    对于axi总线的学习我主要是参考了赛灵思的ug1037文档以及arm的INI0022D手册,对其中的内容做了总结。 AXI是amba总线的一种,包含三种,axi full、axi lite和axi stream。 AXI工作:axi接口包含了五组通道,分别是读地址、写地址、读数据、写数据以及写响应。数据可以在主机和从机中双

    2024年01月16日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包