LVL (Level shift cell) power gating /power switch / Isolation

转自吾爱社区http://www.52-ic.com/?p=244

吾爱IC社区近期发布了基于28nm工艺的ARM Cortex-A53 CPU的数字后端实现教程。看到粉丝们反馈的好评,特别欣慰。小编会一如既然继续码字,继续分享更多数字后端设计实现方面的技术干货。今天为大家带来低功耗技术中的一些经验分享。

Power gating 概述

Power gating是深亚微米技术中的低功耗技术之一。它是通过关闭设计中部分电路(不需要工作时)来实现的,以减少设计中的静态(泄漏)功率。要实现这个功能Power switch可以完全胜任。它的原理是将VDD或GND与特定设计层次结构的标准单元分开。下图为一个典型power gating系统。

数字后端设计实现中这些低功耗设计经验,你真的懂了吗?

通常有两种类型的Power switch cell,分别为Footer和Header两种类型。Footer结构类型是通过VSS的开关来实现标准单元的开与关,而Header结构类型则是通过VDD的开关来实现标准单元的开与关。在实际应用中,因为其leakage低和实现的便利性,往往都是选用Header类型的Power switch cell。

数字后端设计实现中这些低功耗设计经验,你真的懂了吗?

Power switch 结构

Power Switch的结构有fine grain power gating和coarse grain power gating两种类型。

fine grain power gating是指将每个switch都放在cell内部。这样使得面积增大1x-3x。优点是IR drop可以更小。

数字后端设计实现中这些低功耗设计经验,你真的懂了吗?

而coarse grain power gating则是在design中加入一些power switch cell来控制std cell的开和关。这种做法的优点是面积适中,缺点是power switch cell本身的压降会偏大。

因此,在实际项目应用中,大部分都是采用coarse grain power gating方式。

Placement要求

这些Power switch cell必须在floorplan 阶段添加进来,而且必须将其global 和local power ground pin 连接到power mesh 上。Header类型的power switch,一般有一个Global VDD(VDD),一个Local VDD(VDD_GATED),SLEEP信号和ACK信号。

数字后端设计实现中这些低功耗设计经验,你真的懂了吗?

在实际应用中,我们会在模块中规划一个Power Switch Network。这个power switch network由外面的Power Control模块来控制power gating模块的开启与关断。整个power switch network是由一堆的MTCMOS级联而成的。

Power switch cell之间必须确保都是经过always on的domain。同时需要确保Power switch cell transition没问题,保证可以正常开启和关断。如果在后期发现MTCMOS之间存在transition违例,则需要插入always on buffer来解决transition问题(这种情况应该尽量避免)。

数字后端设计实现中这些低功耗设计经验,你真的懂了吗?

Power switch cell 数量

每个模块中应该加多少个MTCMOS,是非常有讲究的。加的太多会导致面积过大,routing resource也会相应减少,影响绕线和时序。加的太少又会影响IR Drop过大。

IR Drop分析之Redhawk分析流程

所以,我们需要事先估算下模块中理论上需要加多少数量,然后再加一定的margin,就可以得出我们最终需要添加的MTCMOS数量(最终要以Redhawk分析结果为准)。这个方法是吾爱IC社区小编一直在用的方法,实践表明IR Drop结果符合预期。

计算方法:

1.根据预估功耗和供电电压,计算出模块理论上所需要的总电流

2.再根据MTCMOS的电阻和其本身所能允许的最大压降值,算出理论上所需MTCMOS的数量

3.将所需要MTCMOS数量乘以1.3(预留margin),得出最终需要添加的MTCMOS数量

Low power cell

Isolation cell

在SOC系统中,当一个信号从一个power domain穿过AON Block,需要用到isolation cell,如下图所示。当信号从PD2穿到AON block时,防止PD2 shut off后将不稳定的状态传到AON Block,需要将PD2所有output端加isolation cell,且ISO cell必须添加在always on domain。这个isolation cell其实等效于一个buffer。与buffer不同的地方在于,这个ISO cell还有一个clamp 使能信号,可以将PD2不稳定或者X态,clamp成一个固定值。根据不同的设计需求,可以将其clamp为0或者1。

对于数字后端实现而已,这个Isolation cell需要在综合阶段编写upf,让工具自动插入。在布局布线阶段,需要将ISO cell的input  pin设置dont_touch,防止在PD2 输出信号和ISO cell之间插buffer。

Level shift cell

当信号从低压Domain传输到高压Domain时,PMOS管栅极处的较低电压可能会导致栅极不完全关断,从而导致异常的泄漏电流。因此,当信号在跨电压域传输时,需要加Level shift cell。比如当信号从AON block传输到PD1时,需要加Level shift。当信号从PD1传输到PD2时,由于PD1是power gating模块,所以需要在PD1和PD2之间加带Isolation 功能的Level shift cell(ELS)。

数字后端设计实现中这些低功耗设计经验,你真的懂了吗?

对于数字后端实现而言,我们主要关注的是Level shift cell的power连接和placement的要求。Level shifter是两条row高度的cell,其中含有VDD,VSS和VDDL(VDDH)。VDDL和VDDH是secondary power pin。在画power时,需要将其画成一个额外的power rail,确保每个Level shift cell secondary power pin的正常供电。

Level shift cell的placement主要考虑cell的transition。所以建议用magnet_placement来实现。同样还需要注意各种电压域跨越时,level shift cell 的input 和output需要设置dont_touch,防止工具插buffer。

如果你对isolation cell和level shift cell的placement和power连接还有疑问,欢迎前往小编知识星球提问,手把手教会。

小编知识星球简介:

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab的编写
  • 基于ARM CPU的后端实现流程(已经发布
  • 利用ICC中CCD(Concurrent Clock Data)实现高性能模块的设计实现(已经发布
  • 其他内容待定

在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在24小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有二十三星球成员,感谢这二十三位童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。(星球的门槛将会越来越高,有需求的朋友趁早上车)

猜你喜欢

转载自blog.csdn.net/cy413026/article/details/86613768