AXI4-full协议介绍

AXI4.0-full包含突发控制信号,所以可以进行突发传输,在只指定一次地址后,可以一次传输多达256个数据(数据的宽度取决于带宽)。主要用于往DDR或者OCM中写入大量数据时使用。

信号线详细描述

下面信号包含五个通道的所有信号。其中每个通道都有其自己的双向握手机制信号线xxVALIDxxREADY,这俩信号线的介绍,详见AXI总线介绍。

  1. 全局信号

    1. ACLK 全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变化。
    2. ARESETn 全局复位信号,低电平有效。在复位期间,所有的xxVALID信号必须复位为低电平。其他的信号可以是任意值。
  2. 写地址通道信号
    1. 主机(master)控制的信号

      1. AWID 交易标识符,乱序时使用。初学者就先默认为0吧。
      2. AWADDR 地址信号线,传输地址信息。
      3. AWLEN 指定突发写长度,Burst_Length = AxLEN[7:0] + 1。如要一次传输16个数据,那么AWLEN=15.注意事项如下
        1. 突发事件不能跨越4KB地址边界。即起始地址到结束地址(AWADDR + AWLEN * (WDATA位宽/4))都必须在0xxxxxx000-0xxxxxxFFF。也就是x代表的位必须一致。
        2. AWBURST类型为INCR时,支持1-256长度的传送。
        3. AWBURST类型为其他时,支持1-16长度的传送。
      4. AWSIZE 每次传输的字节,和WDATA宽度相关。如WDATA为32位。那么AWSIZE=log2(32/8)=2
      5. AWBURST 突发类型
        1. FIXED: 0 固定模式,Xilinx不建议使用此模式。
        2. INCR: 1 递增模式(Incrementing),递增值依赖于传送宽度。比如数据总线AWADDR为32位,那么next_AWADDR_value = current_AWADDR_value + 32/8;
        3. WRAP: 2
        4. Reserved: 3
      6. AWLOCK 总线锁信号,可提供操作的原子性。一般赋值为0。
      7. AWCACHE 内存类型。xilinx建议赋值为4'b0011
      8. AWPROT 访问权限信号线,xilinx建议赋值为3'b000.xilinx IP 一般忽略此信号。
      9. AWQOS 服务质量,xilinx使用其值0b0000.表示接口不参与任何QoS方案。AXI4协议没有指定QoS标识符的确切使用。该规范建议将AxQOS用作相关的写或读事务的优先级指示器。更高的值表示更高的优先级事务。
      10. AWUSER 用户自定义信号。ip交互中一般用不到。赋值为1.
      11. AWVALID
    2. 从机(slave)控制的信号
      1. AWREADY
      2. AWREGION 区域标志,能实现单一物理接口对应的多个逻辑接口。xilinx主机接口没有此信号线,从机有。初学者就默认为0吧。
  3. 写数据通道信号
    1. 主机(master)控制的信号

      1. WDATA 数据信号线,传输数据信息。
      2. WSTRB 数据总线有效字节控制。比如32位的总线,WSTRB等于4'b0010,那么代表WDATA[15:8]中的数据有效。其他无效。如果要求WDATA[31:0]32位全有效,那么WSTRB就应该等于4'b1111.
      3. WLAST 置高表示突发数据中的最后一个数据。
      4. WUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
      5. WVALID
    2. 从机(slave)控制的信号
      1. WREADY
  4. 写应答通道信号
    1. 主机(master)控制的信号

      1. BREADY
    2. 从机(slave)控制的信号
      1. BID 交易标识符
      2. BRESP
        1. OKEY 0 正常访问成功
        2. EXOKEY 1
        3. SLVERR 2 从机错误
        4. DECERR 3 解码错误,比如没有从机的地址。
      3. BUSER AXI4协议留给用户自定义的,协议本身没有定义功能。Xilinx在ip核的使用上也没有实现。
      4. BVALID
  5. 读地址通道信号
    1. 主机(master)控制的信号

      1. ARID 读地址通道信号的意义跟写地址通道的相似。
      2. ARADDR
      3. ARLEN
      4. ARSIZE
      5. ARBURST
      6. ARLOCK
      7. ARCACHE
      8. ARPROT
      9. ARQOS
      10. ARUSER
      11. ARVALID
    2. 从机(slave)控制的信号
      1. ARREADY
      2. ARREGION
  6. 读数据通道信号
    1. 从机(slave)控制的信号

      1. RREADY
    2. 从机(master)控制的信号
      1. RID 读数据通道信号的意义跟写数据通道的相似。
      2. RDATA
      3. RRESP
      4. RLAST
      5. RUSER
      6. RVALID

读写时序和握手时序

关于AXI4.0-full的读写时序和握手时序请参看AXI总线介绍。

AXI-lite主从交互仿真

  1. vivado创建AXI外设。
  2. 添加主从接口。
  3. 编写仿真tb文件。仿真相关的文件见附件axi-full.zip。

下图是AXI-full主从交互的时序图,主机先通过总线写数据,然后通过读总线将其写入的数据读了出来。图中画圆圈的地方是每个通道第一次握手的时序(后续的握手时序没有标记)。

文档参考

  1. IHI0022G_amba_axi_protocol_spec.pdf
  2. IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf
  3. ug761_axi_reference_guide.pdf

关于技术交流

此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。

AXI4_full协议详解相关推荐

  1. HTTP协议详解(真的很经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  2. Http 协议详解笔记

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...

  3. Http协议 详解(转载)

    http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分 ...

  4. ARP协议详解之ARP动态与静态条目的生命周期

    ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q  每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...

  5. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  6. HTTP协议详解 转自小坦克

    HTTP协议详解 转自小坦克 -- 有些文章是引用别人的,为了方便我以后或不再备注;引用目的是因为直接网摘里面的地址经常被重置,找不到原来的文章 当今web程序的开发技术真是百家争鸣,ASP.NET, ...

  7. nbns协议_网络协议详解1 - NBNS

    NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...

  8. 转:SSL 握手协议详解

    SSL 握手协议详解 RSA作为身份认证,ECDHE来交换加密密钥,AES/DES等作为加密. 如果RSA来加解密,那么身份认证后,直接用认证后的RSA公钥解密.不需要再额外交换加密密钥了. 相关报文 ...

  9. 【HTTP协议】超详细的HTTP协议详解

    基本介绍 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/ ...

最新文章

  1. 「每周CV论文推荐」 初学深度学习活体与伪造人脸检测必读的文章
  2. 不重启iis的情况下切换iis的.net版本
  3. SCALA中类的继承
  4. chrome浏览器无法上网_低调使用,内置特殊功能的浏览器。。
  5. QUIC实战(三) letsencrypt证书申请和自动续期
  6. 使用JDK的密码流的加密怪癖(以及如何做)
  7. Hystrix中的批量(折叠)请求
  8. Struts2的工作原理及工作流程
  9. string最大容量_string初步使用
  10. 4-3:TCP协议之UDP协议
  11. linux sonar 安装教程,Linux下为Sonarqube安装中文插件
  12. vue页面中样式修改子组件的样式
  13. navicat win32注册机下载 | 绿色版
  14. 【JAVA复习系列】第一部分
  15. bada千字文应用程序简介
  16. tamami来解答国内防辐射服为什么越卖越火
  17. 关于windows微软账号登陆不进去的问题
  18. 九年级计算机课程教案,九年级信息技术 5.2.3《计算机网络》教案
  19. 大数据分析培训好就业吗
  20. qt制作软键盘(虚拟键盘)

热门文章

  1. 记录:mysql行合并列合并显示
  2. tplink 2.4g弱信号剔除_关于路由器的2.4G以及5G,你不知道的那些事
  3. python 分隔符截取字符串_python针对不定分隔符切割提取字符串的方法
  4. 2021年美容师(中级)实操考试视频及美容师(中级)作业模拟考试
  5. Rust Web入门(六):服务器端web应用
  6. 【Dopi Micropython 视觉AI应用开发教程】【实验5】MJPEG编码
  7. 真阳性假阳性假阴性分割可视化
  8. ClickHouse学习笔记(二):执行计划、建表优化、语法优化规则、查询优化、数据一致性
  9. Auto.js进行自动化熄灭屏幕操作(超简单版本)
  10. Java是什么?(零基础也能轻松看懂)