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

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

在这里插入图片描述

一、写在前面

本篇文章继承自深入浅出理解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协议

3.2 SPI协议

3.3 I2C协议

3.4 AXI协议

  • 6
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: axi-stream和axi-lite是两种不同的传输协议,它们在数据传输的方式和控制信号上有所不同。在将axi-stream转换为axi-lite时,需要进行一些改变和调整。 首先,axi-stream是一种流式传输协议,它主要用于高速数据传输,没有固定的地址和控制信号。而axi-lite是一种基于地址和控制信号的传输协议,适用于低速数据传输和对外部设备的读写控制。 要将axi-stream转换为axi-lite,需要定义一个寄存器(或寄存器组),用于接收从axi-stream传输过来的数据。通过定义该寄存器的地址和控制信号,可以对其进行读写操作,并将数据传输到外部设备。 其次,需要根据具体的应用场景,对数据的格式和处理进行调整。axi-stream一般通过数据流的方式传输,而axi-lite传输的数据需要按照特定的格式进行打包和解包。因此,在进行转换时,需要对数据进行格式转换和处理,以满足axi-lite的传输要求。 最后,需要修改相应的控制逻辑和状态机来适应axi-lite的读写操作。axi-stream主要通过数据流传输,而axi-lite需要定义读写控制信号和状态机来实现读写操作。因此,在进行转换时,需要对控制逻辑和状态机进行修改,以实现axi-lite的读写功能。 总结起来,将axi-stream转换为axi-lite需要进行以下几个步骤:定义一个寄存器用于接收数据、调整数据的格式和处理、修改控制逻辑和状态机来适应axi-lite的读写操作。通过这些步骤,我们可以完成axi-stream到axi-lite的转换。 ### 回答2: 要将Axi-Stream转换为Axi-Lite,需要进行一系列的处理和转换。 首先,需要了解Axi-Stream和Axi-Lite之间的区别。Axi-Stream是一种高速数据传输协议,用于在数据流传输应用中实现高速数据传输。相比之下,Axi-Lite则是一种更简化、精简的协议,适用于低速、延迟敏感的访问要求。 要将Axi-Stream转换为Axi-Lite,需要将数据流转变为离散的数据包。可以通过添加一些额外的逻辑和寄存器来实现数据的提取和转换。 首先,需要添加一个接收缓冲区,用于接收Axi-Stream传输的数据。可以使用一个FIFO(First-In, First-Out)缓冲区来实现。将Axi-Stream输入端口连接到该缓冲区,并配置缓冲区的大小以适应数据传输的需求。 然后,可以使用状态机和控制逻辑从接收缓冲区中提取数据。根据Axi-Lite协议的要求,需要提取合适的数据字段,并将其放入适当的寄存器中。可以使用状态机来控制数据的提取和转换过程。 最后,在提取和转换数据后,可以使用Axi-Lite的地址端口和数据端口,将数据传输到Axi-Lite总线上。根据Axi-Lite协议的要求,需要设置地址、数据和控制信号,以完成对寄存器的读写操作。 总体而言,将Axi-Stream转换为Axi-Lite需要添加接收缓冲区、状态机和控制逻辑,并通过Axi-Lite协议完成数据的提取和转换。这样可以实现从高速数据传输到低速数据访问的转换。 ### 回答3: Axi-stream和Axi-lite是两种不同的通信协议,将Axi-stream转换为Axi-lite可以通过添加适当的逻辑和转换器来实现。下面是一种将Axi-stream转换为Axi-lite的方法: 1. 首先,需要添加一个转换器模块,该模块将负责将Axi-stream信号转换为Axi-lite信号。该转换器模块可以使用FIFO(First-In-First-Out)缓冲区来处理数据流,并将其转换为连续的数据列。 2. 转换器模块接收来自Axi-stream的有效数据包,并根据Axi-lite协议的要求生成对应的Axi-lite数据包。转换过程包括将Axi-stream的数据包拆分为Axi-lite的数据包,并提取有效数据和其他控制信息。 3. 转换器模块还需要处理Axi-stream信号的流速。由于Axi-stream的数据是连续流动的,而Axi-lite的数据包需要在时钟边沿进行传输,因此需要添加适当的时序逻辑来处理数据流速的差异。 4. 转换器模块还应该能够处理Axi-lite协议中的写入和读取操作。写入操作将由Axi-stream转换成Axi-lite写入操作,读取操作将由Axi-stream转换成Axi-lite读取操作。 5. 最后,通过适当的连接操作将转换器模块与Axi-lite总线连接起来,以实现从Axi-stream到Axi-lite的转换。 总结来说,将Axi-stream转换为Axi-lite需要添加一个转换器模块,该模块负责处理Axi-stream数据流的数据包和流速,并将其转换为符合Axi-lite协议的信号。这样可以实现从Axi-stream到Axi-lite的数据通信转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张江打工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值