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

一、写在前面

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 信号列表

2.2.2 CACTIVE信号要求

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

2.2.3 HANDSHAKE信号要求

【AXI】解读AXI协议的低功耗设计-LMLPHP
正常工作状态下,CSYSREQ和CSYSACK都是高电平(默认态)
从T1到T2
slave进入低功耗状态 ,CSYSREQ信号拉低,使CSYSACK信号也拉低
从T3到T4
slave脱离低功耗状态 ,CSYSREQ信号拉高,使CSYSACK信号也拉高

2.3 时序状态分析

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

【AXI】解读AXI协议的低功耗设计-LMLPHP
钟控模块到slave的CSYSREQ拉低,slave给出响应,使CACTIVE拉低,钟控模块接收到信号,拉低CSYSACK,接收到CSYSACK的slvae停止CLK翻转信号的进入。

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

【AXI】解读AXI协议的低功耗设计-LMLPHP
钟控模块到slave的CSYSREQ拉低,slave未给出响应,CACTIVE一直还是高,钟控模块虽然接收到高信号,但是依旧遵循握手信号之间的关系拉低CSYSACK,到此,低功耗进入的请求被拒绝。再之后,CSYREQ会自动拉高,最终使CSYSACK也拉高,至此为完整的低功耗请求被拒绝的时序

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

【AXI】解读AXI协议的低功耗设计-LMLPHP
REQ的拉高,经过CACTIVE的反馈后,使CSYSACK也拉高,完成退出低功耗的操作,类似上文,不多赘述。

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

【AXI】解读AXI协议的低功耗设计-LMLPHP
CACTIVE主动拉高,时钟控制模块接收到信号,CSYSREQ拉高,再使CSYSACK拉高,完成退出。

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

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

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

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

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

3.1 UART协议

3.2 SPI协议

3.3 I2C协议

3.4 AXI协议

07-20 13:47