LPMM阅读笔记——第五章 电源门控设计part1

 第五章 电源门控设计part1

由于第五章内容太多,且这一个章节将的内容都是全书的重点,所以我将其拆分成几个部分来写,这是第一部分。

5 电源门控设计

这一章把电源门控的每一个组成部分从前端、RTL的视角进行了介绍,并对验证和测试这两个方面做了补充说明。

图 1 所示的带有电源门控的SoC结构图中展示了电源门控设计中需要用到的关键组件。

 

图 1带电源门控的SoC结构图

电源门控设计的关键问题包括开关网络和电源门控控制器的设计,另外,还需要确定插入保持寄存器和隔离单元的时间和位置。

5.1 开关结构设计

电源门控网络中用到的开关结构有头开关(Header-Switch)和脚开关(Footer-Switch)两种类型,其结构分别如图 2所示:

图 2基本的开关结构

从功能的角度来看,有以下几个方面的理由支持使用Header-Switch结构的cell组成电源门控网络:

• 如果使用的是片外电源门控,由于板级通常是共地的,所以只能使用Header-Switch对VDD进行控制;若片外和片内门控都有使用,也建议使用Header-Switch对VDD进行控制,因为这样做可以使内部门控和外部门控的行为表现一致,从而简化功能验证、时序分析和功耗分析。

• 对于使用多电压域技术的SoC系统而言,其内部不同电压域间的Level shiffer通常是共地的,不宜对VSS进行门控。

• 使用Header-Switch时,门控关闭意味着内部的信号节点都被接地,这种情况有利于系统设计工程师进行问题分析。

基于上述理由,本章重点介绍基于Header-Switch的电源门控技术,支持使用Footer-Switch切换VSS是基于开关的电气特性来分析的,这部分内容会在后面的第14章介绍。

书中对于电源门控设计给出如下建议:

  • 仅对VDD或者VSS使用门控,而不是两者同时使用,以尽量减小开关网络上的压降。

  • 在设计阶段尽早的确定使用Header-Switch还是Footer-Switch的开关类型。

  • 如果芯片中也有采用外部电源门控设计,则使用Header-Switch最合适。

  • 若芯片中有使用多电压域技术,则使用Header-Switch更合适。

  • 不要将Footer-Switch、外部电源门控以及多电压域设计混用,因为这样会使得功能、时序、功耗分析变得复杂。

5.1.1 电源门控的控制

电源门控的控制中一个关键的问题是避免开关接通时产生浪涌电流,因为过大的浪涌电流可能导致芯片内电源上产生尖峰电压,尖峰电压可能会对始终上电模块中的寄存器或门控电源模块中的保持寄存器造成损坏。

避免浪涌电流的方法在第14章中会有介绍,一种具有代表性的方法是将控制信号以菊花链的方式接到电源门控网络的各个开关上(一个电源门控网络通常由成百上千个开关),电源门控控制器的控制信号接到门控网络的第一个开关上,第一个开关的控制信号加上适当的buf(主要用以增加延迟)后接到下一个开关的控制端,以此类推。

另一种比较积极的方法是使控制器输出多个控制信号,分先后打开不同的开关组,但这样会增加电源门控控制器的复杂度。

无论采用何种做法,都会导致电源网络从上电到上电完成需要一段较长的时间,出于这个原因,电源门控网络需要输出一个反馈信号给到电源门控控制器,用以确认上电完成。

注意:电源门控网络的控制信号上在插入buf以增加延迟时,必须插入始终上电的buf,而不是电源门控后的buf。

5.1.2 电源门控控制的建议

  • 电源控制器需要针对所使用的电源门控技术中采用的开关类型进行设计,确保控制器和开关匹配。

  • 应该为电源门控控制端口增加断言,以匹配所选的开关类型,便于在RTL阶段进行功能验证。

  • 在测试模式下,必须使电源门控控制信号可控。

  • 避免外部门控和内部门控同时使用。

5.2 信号隔离

前面有提到过,带电源门控的模块在掉电过程中,其输出为一个中间电平,可能导致其他模块出现直通电流,造成功能错误,所以需要在电源门控模块的输出上增加一个隔离单元,在门控单元被下电时,将输出钳位到正常的电平,避免引起功能异常。

5.2.1 信号隔离原理

有将信号钳位到0、1和最近的值的3种基本类型的隔离单元。大多数情况下,将信号钳位到无效状态就足够了,即当信号为高电平时,将信号钳位到0,与门可实现该逻辑;当信号为低电平有效时,将值钳位为1,或门可实现该逻辑;这两种基本的门式隔离单元结构如图 3所示;

图 3 基本隔离单元

上述隔离单元在实现信号隔离的同时给信号带来了延迟,对于某些关键路径(如cache)而言,增加这些延迟可能是不可接受的。另一种不增加延迟的隔离技术是使用上拉或者下拉晶体管的方式实现,这种方法的原理如图 4所示:

图 4 使用上拉和下拉晶体管的隔离单元

对于被门控模块输出信号而言,使用上拉和下拉晶体管的隔离单元会有多驱的问题,考虑这样一种场景,被门控模块下电后重新上电时,由于上电操作先于隔离使能的撤销时间,所以在上电时会存在竞争问题,反过来,在下电的时候隔离使能操作先于下电操作,所以下电过程中也存在竞争问题;除了上述问题外,多驱还会对可测性带来影响,因此,尽管上拉和下拉晶体管的隔离单元在时序和面积成本上很低,但仍然不建议使用该方法;相反,在工程中,建议使用与/或门形式的隔离单元。

5.2.2 隔离位置的选择

从逻辑上讲,将隔离单元放在被门控模块的内部或输出信号的目的端是一样的,但有下面这些重要的因素会影响到该选择:

• 如果门控模块的输出信号会给到多个模块使用且将隔离单元放在接收端,则每个输出可能需要多个隔离单元,所以,当门控模块的输出信号会给到多个模块使用时,将隔离单元放在被门控模块内会更节省面积。

• 隔离单元放在电源被门控模块的内部会使各种分析和检查变得简单,否则我们需要检查每一个输出信号,确保每个输出信号上都有隔离单元,若电源被门控的模块需要复用,则相应的检查和分析还要在来一次,将隔离单元放在被门控模块内部则只需做一次这样的工作。

• 将隔离单元放在被门控模块的内部,会对布局和布线有一些约束,由于隔离单元需要始终供电,所以电源被门控模块内部的电源布线会变得复杂,不过现在的EDA工具已经可以帮助解决这些问题了。

书中建议在做可重用的IP设计时,将隔离单元放在IP中封装起来,使SoC的集成不受隔离单元的影响。

5.2.3  钳位值的选择

在考虑电源门控模块的接口隔离时,有两个目标,一是最大限度的减小漏电流,另一个是避免不必要/不正确的行为,对于信号隔离为0/1有如下方面的考虑可供参考:

• 考虑这样一种情况,当电源门控模块断电时,始终上电模块接到值为钳位后的信号,若该信号为高电平有效(例如axi的awvaild),且该信号被钳位为高电平,则axi_slave可能会将这个钳位值解析为一个命令,导致错误的操作;所以为了避免上述问题,应该将信号钳位到无效状态的电平。

• 复位是一个例外,因为复位通常是低电平有效,但实际上,在模块下电时,我们应该是希望其复位信号为有效状态,所以复位信号通常钳位为有效状态0。

• 相邻模块都可以下电时,输出信号钳位为0更合适,因为当我们把输出信号钳位为1时可能出现该信号到达的目标模块也被下电,这样的情况下,该信号在目标模块内可能产生多余的直通电流,增加不必要的漏电流。

综上所述,为简化设计,建议使用Header-Switch类型的电源门控网络,使用高电平有效的信号和低电平有效的复位,将所有输出信号钳位为0,该设计的简化原理图如图 5所示。

图 5 简化后的电源门控设计

5.2.4 信号隔离的建议

  • 对电源门控模块的输出进行隔离。

  • 使用与/或门形式的隔离单元。

  • 确保隔离控制信号在测试期间被钳位到0/1时可以检测到隔离是否生效。

  • 确保隔离单元始终处于上电状态。

  • 避免出现在电源门控模块中产生时钟并输出到外部模块中使用的设计,因为时钟上的隔离会使时钟树综合和时序收敛变得复杂。

============正文结束===========

扫描下面的二维码,阅读其他章节。

猜你喜欢

转载自www.cnblogs.com/ChipView/p/10054216.html
今日推荐