【AXI】解读AXI协议的低功耗设计

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

在这里插入图片描述

一、写在前面

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

二、解读AXI协议的低功耗设计接口

2.1 AXI低功耗设计导论

首先,我们需要强调的是,AXI的低功耗接口是一组可选项,即:存在与不存在本节讨论的端口,都不影响AXI协议的正常运转,其次,从high level去看,AXI slave可以分为正常工作状态低功耗工作状态,如何从正常态进入到低功耗态从低功耗态进入到正常态,就是我们在这节想要讨论的核心内容。最终,什么情况下,我们说slave进入低功耗状态了呢?类比低功耗设计中的门控时钟,当clk信号关闭时,即代表着AXI控制的slave进入了低功耗状态

2.2 AXI低功耗信号列表

笼统来讲,排除掉clk信号外,我们需要以下两种,合计三个信号,来满足AXI协议的低功耗需求

  • 第一种信号:指示从设备是否进入了低功耗状态的信号(或者说时钟信号是使能的还是未使能的),这个信号来自从设备。
  • 第二种信号:是两个握手信号来指示低功耗进入请求和应答,这个信号连接时钟控制系统从设备
2.2.1 信号列表
AXI4信号列表解释
CLK时钟信号
CSYSREQ握手信号中的请求信号
CSYSACK握手信号中的承认信号
CACTIVEclk使能或未使能指示信号
2.2.2 CACTIVE信号要求

CACTIVE是指示外设是否需要时钟的信号。方向由从设备时钟控制系统,当需要启用时,电平为高,意味着系统时钟控制器须启用时钟不需要时电平为低,以表明它不需要时钟。系统时钟控制器就需要禁用时钟了。通过CACTIVE这个信号,从设备可以自由自主的申请是否进入低功耗状态

2.2.3 HANDSHAKE信号要求

在这里插入图片描述
正常工作状态下,CSYSREQ和CSYSACK都是高电平(默认态)
从T1到T2
slave进入低功耗状态 ,CSYSREQ信号拉低,使CSYSACK信号也拉低
从T3到T4
slave脱离低功耗状态 ,CSYSREQ信号拉高,使CSYSACK信号也拉高

2.3 时序状态分析

2.3.1 低功耗请求被接受(时序正确)

在这里插入图片描述
钟控模块到slave的CSYSREQ拉低。slave给出响应,使CACTIVE拉低,再拉低CSYSACK,接收到CSYSACK后停止CLK翻转信号的进入。

2.3.2 低功耗请求被拒绝(时序错误)

在这里插入图片描述
钟控模块到slave的CSYSREQ拉低,slave未给出响应,CACTIVE一直还是高,不过遵循握手信号之间的关系拉低CSYSACK,到此,低功耗进入的请求被拒绝。再之后,CSYREQ会自动拉高,最终使CSYSACK也拉高,至此为完整的低功耗请求被拒绝的时序

2.3.3 “退出低功耗状态”(时钟控制模块控制)

在这里插入图片描述
REQ的拉高,经过CACTIVE的反馈后,使CSYSACK也拉高,完成退出低功耗的操作,类似上文,不多赘述。

2.3.4 “退出低功耗状态”(从设备控制)

在这里插入图片描述
CACTIVE主动拉高,时钟控制模块接收到信号,CSYSREQ拉高,从设备接收后再使CSYSACK拉高,完成退出。

2.3.5 总结:由正常状态进入低功耗状态

在这里插入图片描述

2.3.6 总结:从低功耗状态进入正常状态

在这里插入图片描述

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

3.1 UART协议

3.2 SPI协议

3.3 I2C协议

3.4 AXI协议

  • 19
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要将 AXI(Advanced eXtensible Interface)协议转换为 AXIS(AXI Stream)协议,你需要进行一些逻辑转换和接口配置。下面是一种可能的实现方式: 1. 首先,你需要了解 AXIAXIS 协议之间的差异。AXI 是一种基于地址的协议,用于处理存储器访问和外设交互,而 AXIS 是一种基于流的协议,用于高速数据传输。 2. 在实现转换逻辑之前,你需要确定 AXI 接口的类型(AXI4、AXI4-Lite 等)和 AXIS 接口的宽度(数据位宽、有效位宽等)。 3. 接下来,你可以编写一个转换模块,该模块将 AXI 接口转换为 AXIS 接口。这个模块应该包括一个 AXI 接口和一个 AXIS 接口,并且在内部进行数据的转换和调整。 4. 在转换模块中,你需要根据 AXI 协议的读写信号(如 ARVALID、AWVALID、RVALID、WVALID 等)以及数据和地址信号(如 ARADDR、AWADDR、RDATA、WDATA 等)来生成相应的 AXIS 协议信号(如 TVALID、TREADY、TDATA 等)。 5. 在转换模块中,你还需要处理流控制信号,如 AXIS 协议中的 TKEEP(保持信号)和 TLAST(最后一个信号),以及 AXI 协议中的 ARBURST、ARBURST、RRESP、WRESP 等。 6. 最后,你需要在设计中实例化转换模块,并将其与其他模块连接起来。确保接口信号的连接正确,并根据需要进行时钟域和数据宽度的适配。 需要注意的是,这只是一种基本的实现方式,具体的转换逻辑和接口配置可能因应用场景和具体要求而有所不同。在实际应用中,你可能还需要考虑时序约束、数据流控制、错误处理等方面的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张江打工人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值