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

深入浅出理解AXI协议

    • 一、写在前面
    • 二、深入浅出理解AXI协议
      • 2.1 全局信号
      • 2.2 写地址通路
      • 2.3 写数据通路
      • 2.4 写回复通路
      • 2.5 读地址通路
      • 2.6 读数据通路
      • 2.7 低功耗接口信号
      • 2.8 必选信号与可选信号区分
        • 2.8.1 主设备
          • 2.8.1.1 读操作相关信号表
          • 2.8.1.2 写操作相关信号表
        • 2.8.2 从设备
          • 2.8.2.1 读操作相关信号表
          • 2.8.2.2 写操作相关信号表
      • 2.9 总结
    • 三、其他数字IC基础协议解读
      • 3.1 UART协议
      • 3.2 SPI协议
      • 3.3 I2C协议
      • 3.4 AXI协议

一、写在前面

终于写到这篇文章了! 完整阅读前述文章的读者到了本篇,基本上可以当作一个复习小资料来看了,里面零零散散的信号95%都在前文中讨论过。本篇文章落地,再讨论一波AXI-lite,一个完整的AXI协议的相关内容就完整的展现在了读者的面前了,当然,AXI-lite支持的特性,AXI都支持,因此,二者之间的比较和联系也不甚困难。

AXI协议相较于UART,SPI,I2C来说,无论是内容还是难度都上了一个层级,放在一篇文章中进行解读未免篇幅过长,因此,有关AXI一些共性的、通用的问题,作者单独以前缀为【AXI】的标题进行小范围的串联,最终再汇总为深入浅出解读AXI协议,与从零开始的Verilog AXI协议设计,此为作者所思所考的推进顺序,单看【AXI】的每一篇,可能很多读者未免感到有些管中窥豹的疑惑,但若等作者更完此专栏再行观看,从头到尾进行阅读,应该就会有有茅塞顿开的收获与领悟。

二、深入浅出理解AXI协议

AXI协议有很多特性,比如说“高带宽”和“低延迟”,比如说向前兼容AHB与APB,比如说非三态实现数据传输等等等等,但是最核心最核心的内容无非是AXI协议的信号,和对于这些信号的理解,单独拿出一个信号来,我们先要明白的是,它是什么的输出又是什么的输入,“比如AWID是主设备产生的,通过总线互联连接到从设备“,其次,我们要清楚它所处哪个数据通路写地址通路”“写数据通路”“写回复通路”“读地址通路”“读数据通路是最核心的五个数据通路,此外,AXI协议还有全局信号和低功耗数据接口,再往后,针对于一个信号,他是AXI协议的必选项还是可选项?比如握手信号是AXI协议所必须要有的信号,是必选项,而低功耗接口的信号就是AXI协议的可选项;最后,我们要知道每一个信号的含义,这部分寻找AXI协议解读的前文就可以找到。每一个信号都通过上面的四个问题进行梳理,AXI协议的全貌就得到了一个充分的认识了。

2.1 全局信号

信号来源解释
ACLK时钟源
ARESETn复位源低电平复位

2.2 写地址通路

信号来源解释
AWID主设备见解读AXI协议乱序机制
AWADDR主设备见解读AXI协议中的burst突发传输机制
AWLEN主设备见解读AXI协议中的burst突发传输机制
AWSIZE主设备见解读AXI协议中的burst突发传输机制
AWBURST主设备见解读AXI协议中的burst突发传输机制
AWLOCK主设备见解读AXI协议原子化访问
AWCACHE主设备见解读AXI协议事务属性
AWPORT主设备
AWQOS主设备见解读AXI协议的额外信号
AWREGION主设备见解读AXI协议的额外信号
AWUSER主设备见解读AXI协议的额外信号
AWVALID主设备常规握手信号
AWREADY从设备常规握手信号

2.3 写数据通路

信号来源解释
WID主设备见解读AXI协议乱序机制
WDATA主设备见解读AXI协议中的burst突发传输机制
WSTRB主设备见解读AXI协议中的burst突发传输机制
WLAST主设备burst的最后一拍的信号
WUSER主设备见解读AXI协议的额外信号
WVALID主设备常规握手信号
WREADY从设备常规握手信号

2.4 写回复通路

信号来源解释
BID从设备见解读AXI协议乱序机制
BRESP从设备见解读AXI协议原子化访问
BUSER从设备见解读AXI协议的额外信号
BVALID从设备常规握手信号
BREADY主设备常规握手信号

2.5 读地址通路

信号来源解释
ARID主设备见解读AXI协议乱序机制
ARADDR主设备见解读AXI协议中的burst突发传输机制
ARLEN主设备见解读AXI协议中的burst突发传输机制
ARRSIZE主设备见解读AXI协议中的burst突发传输机制
ARBURST主设备见解读AXI协议中的burst突发传输机制
ARLOCK主设备见解读AXI协议原子化访问
ARCACHE主设备见解读AXI协议事务属性
ARPORT主设备
ARQOS主设备见解读AXI协议的额外信号
ARREGION主设备见解读AXI协议的额外信号
ARUSER主设备见解读AXI协议的额外信号
ARVALID主设备常规握手信号
ARREADY主设备常规握手信号

2.6 读数据通路

信号来源解释
RID从设备见解读AXI协议乱序机制
RDATA从设备见解读AXI协议中的burst突发传输机制
RRESP从设备见解读AXI协议原子化访问
RLAST从设备burst的最后一拍的信号
RUSER从设备见解读AXI协议的额外信号
RVALID从设备常规握手信号
RREADY主设备常规握手信号

2.7 低功耗接口信号

信号来源解释
CSYSERQ时钟控制器见解读AXI协议的低功耗设计
CSYSACK外围设备见解读AXI协议的低功耗设计
CACTIVE外围设备见解读AXI协议的低功耗设计

2.8 必选信号与可选信号区分

2.8.1 主设备

2.8.1.1 读操作相关信号表

2.8.1.2 写操作相关信号表

2.8.2 从设备

2.8.2.1 读操作相关信号表

2.8.2.2 写操作相关信号表

2.9 总结

笼统来讲:一个基本的AXI协议,需要有时钟信号,复位信号,握手信号,burst相关信号,AxID信号
Cache相关信号,原子化操作相关信号,Qos User等额外信号和低功耗相关信号是可选项
关于不同信号的默认值/复位值,上文2.8节的表格中也给出了要求值。至此,有关AXI协议的相关内容就告一段落了,AXI协议虽然快,但是面积也大,很多情况下,我们其实不需要AXI协议的全部特性,因此AMBA4中还规定了AXI-lite供人使用,参见深入浅出理解AXI-lite即可

三、其他数字IC基础协议解读

3.1 UART协议

  • 【数字IC】深入浅出理解UART
  • 【数字IC】从零开始的Verilog UART设计

3.2 SPI协议

  • 【数字IC】深入浅出理解SPI协议
  • 【数字IC】从零开始的Verilog SPI设计

3.3 I2C协议

  • 【数字IC】深入浅出理解I2C协议

3.4 AXI协议

  • 【AXI】解读AXI协议双向握手机制的原理
  • 【AXI】解读AXI协议中的burst突发传输机制
  • 【AXI】解读AXI协议事务属性(Transaction Attributes)
  • 【AXI】解读AXI协议乱序机制
  • 【AXI】解读AXI协议原子化访问
  • 【AXI】解读AXI协议的额外信号
  • 【AXI】解读AXI协议的低功耗设计
  • 【数字IC】深入浅出理解AXI协议