zoukankan      html  css  js  c++  java
  • power-plan如何定

    Power-Plan或者说PG如何打,这是一个仁者见仁智者见智的问题,没有一个标准的答案,因为有各种各样的影响因素。本文将列举一些可能的影响因素:

    1.和design  相关

    1) Utilization 低的打的越多越好,高的需要打低一点,考虑DRC 和Congestion。

    2)同样的Utilization,同样的PG 结构,模块功能不一样,congestion 也不一样.特殊模块得特殊考虑

    3)不同芯片 电脑/手机芯片对功耗的要求也不一样

    2.sign off 标准

    1)动态IR Drop/静态IR Drop

    2)sign-off的时候需要根据某个工作场景的activity 文件,进行功耗跟IR分析,常用的activity文件格式有:VCD (Value Change Dump file) , FSDB, SAIF(Switching Activity Interchange Format)。即使同一个design,不同工作场景的activity文件产生的IR-Drop也大不一样。

    3.先入经验

    • 一般PG结构的选择是基于先前的项目经验。但随着工艺不断进步,之前的经验并不一定是最优化的也不一定适用于当前工艺。

    • 40nm工艺以上一般只用M1做rail,但是在先进工艺下,M1的电阻率比较高,由M1造成的IR-drop比较大,而且占主要的因素。所以可能就需要M2也作为rail,所以先入经验要随着工艺的改进做调整

    4.工艺和金属层数

    • 不同的工艺,pitch和width大不一样,采用LVT或者HVT等造成的功耗也大不一样,不能直接像工艺尺寸一样简单的shrink。

    • 即使同一种工艺,也可以选择不同数目的金属层。少一层金属就省一层mask,就省一笔钱。比如40nm工艺,如果选用8层金属,流片一次可能需要100W,如果选用7层,流片一次则需要95W。单看可能差别不是很大,但是如果量很大很大,节省的成倍就十分可观了。

    • 选择不同的金属层,PG结构自然不同。

    5.

    对PG进行微调

    PG怎么打,这是每个公司的机密,作者也不能讲很多,一般是先初略的打一版看,然后在signoff工具中看看结果,再基于该结果和congestion的情况再进行调节。下面讲讲对给定的PG结构,在保证同样的IR-drop的情况下,如何通过微调,来省出更多的绕线资源,减小congestion或者基于同样congestion的情况下,可以额外的增强PG结构,降低IR-drop。

    微调的原理是什么?

    在新工艺下signal-routing都是在track上走线的,不会发生在半track上走线的情况。例如下面画了4个track,2条走线。在老的工艺下,完全没问题,想咋走咋走,只要满足min-spacing就好了。但是在新的工艺下,就得规规矩矩的,每条走线都必须在track上(这里只是说signal-routing必须在track)。

    必须在Track上有几个方面的原因吧:

    • spacing是一个离散的值。在老的工艺下,无限长且平行的两条走线,只要spacing是大于某个值的就没问题,可以是任意的浮点数。但是在新的工艺下,大于某个值不准确,spacing是一个离散的值。例如spacing的表格是0.1,0.2,0.3,如果spacing小于0.3,那么只能选0.1和0.2两个值,如果spacing大于0.3,则可以是任意浮点数。

    • width也同理,也是一个离散的值。

    • 很多DRC规则都是基于这种离散的值的,不仅仅是这种简单的spacing/width,所以p不仅仅是违反了这一条,后面还有更多的DRC等着你。

    • 新的工艺都采用了double-pattern,走线不在Track上,后面在分不同mask的时候会有问题。

    上面说到走线必须都在track上,更准确的说法是为了减少各种可能的DRC,工具走signal-routing的时候都在track上,因为PR工具看不到所有sign-off的DRC-rule,所以不能也不敢乱走。我们自己打PG的时候还是可以随便打,只要没有DRC违规就可以了。

    这些因素虽然不会影响IR-drop,但是却可以通过调节这些因素,能够减小congestion或者基于同样congestion的情况下,可以额外的增强PG结构。

    下面就举一个例子,例子中的数据都是作者随便取的,不具有代表性。

     1)假设原始的PG如下图所示,中间宽的是PG,两边的是信号走线。

    我们来分析分析这个图:

    • PG在Track上,没问题

    • 取的宽度占用了3个track,没问题

    但是,由于各种DRC,额外的2个Track其实也不能用,其实PG占用了5个track。浪费

    1)

    我们就来进行一下优化:既然要占5个Track,干脆PG再宽点不更好吗?

    而且PG可以不需要非得在track上,可以在track中间。例如下图所示,不仅加宽了PG,而且居然还能省一个Track!

    2)如下图所示,干脆就不要用uniform-track,直接创建non-uniform-track。仍然是用同样的PG宽度,但是却省下了不少的绕线资源。

  • 相关阅读:
    程序员的7中武器
    需要强化的知识
    微软中国联合小i推出MSN群Beta 不需任何插件
    XML Notepad 2006 v2.0
    Sandcastle August 2006 Community Technology Preview
    [推荐] TechNet 广播 SQL Server 2000完结篇
    《太空帝国 4》(Space Empires IV)以及 xxMod 英文版 中文版 TDM Mod 英文版 中文版
    IronPython 1.0 RC2 更新 1.0.60816
    Microsoft .NET Framework 3.0 RC1
    《Oracle Developer Suite 10g》(Oracle Developer Suite 10g)V10.1.2.0.2
  • 原文地址:https://www.cnblogs.com/lelin/p/11407379.html
Copyright © 2011-2022 走看看