在低功耗设计领域,最有效的降低功耗的手段莫过于电源关断了。其原因在于不论多低的电压,多小的电流,多慢的速度抑或多小的leakage,都不如将电源完全关闭来的彻底。
尽管如此,在实际设计中,由于power gating设计方法会极大地增加design的复杂度,从设计到验证,从后端实现到signoff方法学都有很多不同于一般设计的特点。
低功耗设计逻辑构成:
今天主要从逻辑构成和后端实现的角度介绍一下power gating的特点和原理。一个典型的带有power gating的设计,应该包含以下的主要模块:
power gating controller:
控制芯片中关断模块的电源何时关闭并给特殊的cell如retention register输出必要的使能信号;
power switching fabric:
也称power switch, 实现电源关闭的逻辑单元,一般由后端实现阶段加入并按照一定规则摆放;
always-on module:
电源一直保持打开的模块;
isolation cells:
简称ISO,一般在关断模块->电源always-on模块方向的信号需要加入此类cell,具体作用将在后面解释;
retention DFFs:
特殊的register能够在主电源关断的情况下保持数据不丢失,只有当关断电源时仍然需要保留部分数据的时候才需要此类cell。
关断方式:
关断方式主要有两种:关闭VDD或者关闭VSS,二者的基本原理也很简单,如下图中所示,在实际应用方面以关闭VDD为主,小编接触过的也全部都是关闭VDD的类型;
Isolation cell:
当信号从一个模块传入另一个模块,如果输入端的电源关闭,则输出信号可能数显不可预测的数值,若此数据传递出去可能会导致功能出现问题,因此需要将电源关闭模块的输出信号和其他module隔离开来,这时候就需要用到isolution cell(ISO)。
Isolation cell的作用在于将某个信号点位固定到高位或者低电位,其原理也很简单,基本上等同于AND或者OR门。
而电源打开时,Isolation cell则表现的像一个Buffer,输出等于输入即可。同时,如果被关断的电路输入固定电压,也可能产生对地的电流,Isolation cell可对该部分电流进行保护。【一般来说Isolation Cell的输出部分有较大的电容负载,也就是说Isolation Cell的延时将会比较大,对时序有一定的影响,是需要注意的】
为了保证isolution cell能够在power down的时候仍然能够正常工作,一般来说isolution cell都会有一个primary power和一个secondary power,后者能够保证前者power down时器件仍然能够工作。
关于isolution cell的插入位置,我们需要决定是放在power gated模块(source 模块)内还是always-on模块(destination模块)内,由于某些信号从power gated模块出去后可能达到多个不同的其他模块,如果插在destination模块就可能在所有的destination都插入isolation,从而引起不惜要的资源浪费,因此一般推荐放在source模块中。
不管放在哪里,其power的链接都需要额外的注意,isolation放置的地方都需要gated power和always-on power同时存在并且物理和逻辑链接都正确,因此经常会把isolation cell指定一个固定的区域放置,可以选择在此区域中打上两种不同的power stripe和power rail来链接它们,或者选择让工具以自动routing的方式将secondary power链接起来,后者主要在非先进工艺中才可能出现。
电源环线power ring和电源条线 power stripe:fplan-电源规划_什么是power rail_卢卡喵的博客-CSDN博客
对于数字后端实现而言,这个Isolation cell需要在综合阶段编写upf,让工具自动插入。
Rentention Register:
如果在电源关闭的过程中某些数据仍然不希望丢失,就需要用到retention寄存器来保存数据,它与一般寄存器最大的不同也是拥有两个不同的电源分别power一个master和一个slave锁存器,当master需要断电而数据需要保存的时候,将SAVE或者RETAIN信号送入retention register,从而能将数据从master输入slave锁存器,而slave锁存器通常会链接到always-on电源上以保证其能够正常工作,下面是两种典型的retention寄存器的构造。
从上述结构上看,retention register必然会比一般的register在size上要大一些,一般来说至少要大20%以上,因此,使用retention register需要特别注意它带来的额外的面积和功耗,当需要断电保存的数据过多时,retention cell带来的功耗可能会使整体的low power效果打折。
上述power gating的实现和特殊cell的电源连接,实现和验证,都需要UPF(Unified Power Format)的支持,后面我们会讲解一下典型的low power design中UPF中需要定义哪些内容,敬请关注。
shift level选择:
低功耗实例——isolation cell及level shifter的选择_dc向电路里加level shift_时钟树上的小猴子的博客-CSDN博客
UPF:
当前低功耗设计都离不开UPF标准,那么什么是UPF?
UPF的全称是统一功耗格式(Unified Power Format),其主要是由Synopsys推出的专门用于描述电路电源功耗意图的一种语言标准,它是Tcl语言的扩展,并且现在被三大EDA厂商支持。
由于RTL和设计约束不足以描述功率行为。没有用于捕获电压变化、shutdown、isolation、retention等功能。
我们需要使用UPF保持整个流程的一致性,实现自动化,最小化设计失败的风险。
数字IC笔记-UPF:special cells_ic upf_卢卡喵的博客-CSDN博客
参考文献:
低功耗设计基础:Power Gating详解 - 知乎 (zhihu.com)
低功耗实例——isolation cell及level shifter的选择_dc向电路里加level shift_时钟树上的小猴子的博客-CSDN博客低功耗基础概念——isolation cell_时钟树上的小猴子的博客-CSDN博客