【数字IC】深入浅出理解AXI-Lite协议

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

在这里插入图片描述

深入浅出理解AXI-lite协议

    • 一、写在前面
    • 二、深入浅出理解AXI-Lite协议
      • 2.1 AXI-lite信号表
        • 2.1.1 全局信号
        • 2.1.2 写数据通路
        • 2.1.3 写地址通路
        • 2.1.4 写回复通路
        • 2.1.5 读地址通路
        • 2.1.6 读数据通路
      • 2.2 AXI to AXI-lite的转换规则
      • 2.3 AXI协议的三种形态
      • 2.4 总结
    • 三、其他数字IC基础协议解读
      • 3.1 UART协议
      • 3.2 SPI协议
      • 3.3 I2C协议
      • 3.4 AXI协议

一、写在前面

本篇文章继承自深入浅出理解AXI协议,作为AXI协议的最后一篇出现,所谓的AXI-lite协议,通俗易懂的讲,就是AXI标准协议的缩减版,具体的缩减体现在诸如“burst长度为1”“取消AXI对于AxCache的支持”“AxLock仅支持normal访问”,因为其特性简单,功能有限,因此,我们一般使用AXI-lite协议来进行寄存器的配置(当然涉及到外设寄存器使用APB进行配置也可以)具体需要哪些信号,有什么保留,参考下文即可。

二、深入浅出理解AXI-Lite协议

2.1 AXI-lite信号表

2.1.1 全局信号

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

备注:和AXI协议一致,一个时钟信号,一个复位信号

2.1.2 写数据通路

信号 解释
WVALID 握手信号
WREADY 握手信号
WDATA 数据信号
WSTRB

备注:因为AXI-lite的burst长度为1,因此取消了last的信号,还削减了有关乱序的WID信号

2.1.3 写地址通路

信号 解释
AWVALID 握手信号
AWREADY 握手信号
AWADDR 地址信号
AWPORT 表明传输的特权等级和安全等级

备注:因为AXI-lite的burst长度为1,因此有关burst的size,length,type的相关信号都被取消掉了,除此以外,还削减了有关乱序的id信号,有关cache的信号和有关原子化访问的lock信号。

2.1.4 写回复通路

信号 解释
BVALID 握手信号
BREADY 握手信号
BRESP 反馈信号

备注:仅保留了写回复通路的一对握手信号,和写操作所必须的response信号

2.1.5 读地址通路

信号 解释
ARVALID 握手信号
ARREADY 握手信号
ARADDR 读地址
ARPORT 表明传输的特权等级和安全等级

备注:读操作与写操作一样,因为AXI-lite的burst长度为1,因此有关读burst的size,length,type的相关信号都被取消掉了,除此以外,还削减了有关乱序的id信号,有关cache的信号和有关原子化访问的lock信号。

2.1.6 读数据通路

信号 解释
RVALID 握手信号
RREADY 握手信号
RDATA 读数据
RRESP 反馈信号

备注:从AXI到AXI-lite,仅保留了数据通路,一对握手信号和一个读反馈,剩下一切无关的功能都被砍掉了。

2.2 AXI to AXI-lite的转换规则

与AHB to APB或者AXI to APB 相似,AXI to AXI-lite也需要特定的转换规则,概括如下

  1. AXI中burst长度大于1,需要拆分transaction至满足AXI-lite的burst长度
  2. 地址问题,AXI中的INCR和WRAP形式的burst,地址有一个自动计算,转换到AXI-lite以后的话,需要显式的提供INCR第一拍以后的地址信号,而且这个地址信号还需要进行对齐操作
  3. 虽然对于burst大于1的AXI信号来讲,要进行拆分,但是对多个burst等于1的读写操作,从AXI-lite提供给AXI协议的的Response信号,只有一个,而非每个burst=1的操作过后给出一个response到AXI。
  4. WSTRB信号直接通过即可,不需要处理
  5. AxLock信号被遗弃,AxCache被遗弃
  6. AxPROT信号直接通过即可,不需要处理
  7. WLAST被遗弃(从AXI to AXI-lite)
  8. RLAST不需要(从AXI-lite to AXI),可以考虑每个读transfer都置高
  9. 等等等等

2.3 AXI协议的三种形态

其实AXI协议除了AXI-standard和AXI-lite以外,还有ACE协议,但是ACE在工作中用到的不多,短期内本博客不会就ACE协议进行讨论了,感兴趣的读者可以自行翻阅相关协议手册,进行学习,他们浅显的区别如下所示。

协议名称 协议特点
AXI4 面向高性能映射通信需求,是面向地址映射的接口,允许最大突发长度256轮
AXI4-Lite 轻量级地址映射单次传输接口,占用较少逻辑资源(针对于FPGA),面积较小(针对于ASIC)
AXI4-Stream 面向高速流传输,没有地址项,允许无限制的数据突发传输规模

2.4 总结

有关AXI-lite协议的核心,体现在以下几点

  1. burst length的长度恒定1
  2. 数据的访问或读取操作需要使用数据总线的全部(换言之,数据总线32bits宽就要用32bit,数据总线64bits宽就要用64bit,也就意味之wdata/rdata的值被确定下来了)
  3. 所有的操作都是Non-modifiable和Non-bufferable的,这也就意味着AXI协议中的原子化访问和Cache相关的内容没有意义了
  4. 不支持排他性访问,这不仅影响AxLock,也同样影响response的值,因为EXOKAY是针对于exclusive access成功的结果

三、其他数字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协议
  • 【数字IC】深入浅出理解AXI-lite协议

你可能感兴趣的:(#,AXI协议,fpga开发,verilog,fpga,芯片,硬件架构)