• 注册
  • 查看作者
  • 数字后端实现IR Drop分析之Redhawk分析流程

    今天跟大家分享数字IC后端设计实现中IR drop的分析流程以及如何改善IR drop,实现一个robust的芯片。这个topic也是吾爱IC社区的粉丝们提出来的。

    1.IR drop的定义

    IR drop是指在集成电路中电源和地网络上电压下降和升高的一种现象。随着半导体工艺的不断演进,金属互连线的宽度越来越窄,导致电阻值不断变大(供电电压也越来越小),IR drop的效应越来越明显。因此,现在的芯片最后都把IR drop的分析做为芯片signoff的一个必要步骤。业界的signoff工具大部分采用的是Redhawk。

    2.IR Drop的种类

    IR drop主要分为两种。一种是静态的IR drop,另外一种则是动态的IR drop。

    静态IR drop现象产生的原因主要是电源网络的金属连线的分压,是由于金属连线的自身电阻分压造成的。电流经过内部电源连线的时候产生电源压降。所以静态IR drop主要跟电源网络的结构和连线细节有关。因此静态IR drop主要考虑电阻效应,分析电阻的影响即可。

    动态IR drop是电源在电路开关切换的时候电流波动引起的电压压降。这种现象产生在时钟的触发沿,时钟沿跳变不仅带来自身的大量晶体管开关,同时带来组合逻辑电路的跳变,往往在短时间内在整个芯片上产生很大的电流,这个瞬间的大电流引起了IR drop现象。同时开关的晶体管数量越多,越容易触发动态IR drop现象。

    3.静态IR Drop分析的流程

    IR Drop分析流程

    图1 静态IR Drop分析流程

    官方的建议是建立如图2所示的目录结构。其中def包括了不同instance和模块的逻辑和物理连接关系。通过ICC或者ICC2写出对应的def文件。

    redhawk数据准备

    图2 IR Drop分析目录结构

    lef是指Std cell,IP,Memory,io,bond pad,子模块的lef。除了子模块的lef外,其他fab厂都会提供对应的文件。子模块的lef可以由Milkyway来生成。这里需要注意的是tech lef必须写在lef list中的第一个。lib是指design中所用到的standard cell,memory,ip,io等子模块的lib文件,这些文件fab厂或者Vendor均有提供。

    ploc文件也称为PAD 文件,其中包含design中所有的供电点信息,比如power pad,center pad的instance名字,坐标位置,layer层次以及power net信息。spef文件为数字后端实现后抽取RC用来跑STA的spef文件。

    tech文件是指Apache的tech文件,这个文件一般可以通过ircx2tech来产生。

    具体命令如下:

    ircx2tech   -i rc_ircx.rc_cworst.ircx  -o   rc_ircx.rc_cworst.tech  -v  max -m  IRCX2tech.mapping

    Timing文件可以通过STA中的PT session来产生对应的Timing文件。具体产生步骤如下:

    restore_session  top.pt_session

    source  pt2timing.tcl

    getSTA *

    VCD(Value Change Dump)文件一般由数字前端工程师提供。VCD文件是IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件。它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息,我们可以用这个文件来再现仿真,也就能够显示波形。因为VCD是 Verilog HDL语言标准的一部分,因此所有的verilog的仿真器都要能够实现这个功能,也要允许用户在verilog代码中通过系统函数来dump VCD文件。我们可以通过Verilog HDL的系统函数$dumpfile 来生成波形,通过$dumpvars的参数来规定我们抽取仿真中某些特定模块和信号的数据。

    因为VCD记录了信号的完整变化信息,我们还可以通过VCD文件来估计设计的功耗,而这一点也是其他波形文件所不具备的。 PrimeTime PX (Prime Power,这个工具其实是功耗分析的Signoff工具)都可以通过输入网表文件,带功耗信息的库文件以及仿真后产生的VCD文件来实现功耗分析。

    由于静态IR Drop分析是基于power平均分布在每个instance上,因此我们在分析IR Drop前还需要给design中各个子模块指定一个预估的功耗值。这个功耗值的确定需要根据以往的项目经验或者实测功耗值,额外再添加点margin。这个功耗值如果设置不合理,分析出来的结果也是不具备参考价值的。另外,还需要设置合理的toggle rate值。

    参考脚本如下:

    # Setup anlysis mode

    setup analysis_mode static

    # Design Importing

    import gsr top.gsr

    setup design

    # Power calculation

    perform pwrcalc

    # Extract PG RC

    perform extraction -power -ground

    perform gridcheck

    #Perform anlysis

    perform analysis -static

    #perform emcheck -mode avg

    #run Redhawk explorer

    explore design

    # -constraint_file "cons.rpt"

    #save database

    export db static_ir.db

    4.动态IR Drop分析的流程

    动态IR drop分析流程

    图3 动态IR Drop分析流程

    Redhawk压降分析动态IR Drop分析的流程如图3所示。动态IR Drop分析主要有三种方法。第一种是Vectorless 分析方法,第二种是Base VCD的分析方法,第三种是VCD-driven的Vectorless 分析方法。比较常用的是前面两种方法。前期的数据准备与静态IR Drop分析类似。动态IR Drop分析需要读入APL文件,比如standard cell的cdev文件。

    在项目前期,由于数字后端实现的database没有ready,后仿可能也没有时间做,所以此时动态IR Drop的分析一般都是基于Vectorless。而项目后期都是需要基于某个场景下,比如max power,去产生对应的VCD,然后再去做基于VCD的动态IR drop分析。基于VCD动态IR drop的分析一般可以不指定各个子模块的功耗值,工具可以从VCD中获取对应的power值,如果没有对应的功耗值,则采用用户设置的值。

    参考脚本:

    # Setup anlysis mode

    setup analysis_mode  dynamic

    # Design Importing

    import gsr top.gsr

    setup design

    # Power calculation

    perform pwrcalc

    # Extract PG RC

    perform extraction -power -ground -c

    perform gridcheck

    #Perform anlysis

    perform analysis -dynamic

    #perform emcheck -mode avg

    #run Redhawk explorer

    explore design

    # -constraint_file "cons.rpt"

    #save database

    export db dynamic_ir.db

    5.IR Drop的影响

    性能下降

    电压降低后,gate的开关速度变慢,性能降低。因此,对于高性能的设计,必须将IR Drop控制在很小的范围内。

    芯片功能错误

    在极端的情况下功能也会受影响的。在深亚微米下,如果power network做的不够好,然后碰上了很不好的case,IR drop在某个局部区域特别大(特别是动态IR drop),从而导致STA阶段signoff的timing 与实际情况不一致(考虑OCV仍然无法cover design的要求),导致setup或者hold的违例。setup的违例,可以通过抬高电压来提升频率,但是代价是功耗上去了,而且如果动态IR drop不够robust,可能通过抬电压,setup能提升的空间也有限。而一旦出现hold违例,那芯片就无法正常工作。因此在先进工艺中,IR drop的影响特别大,需要引起各位的高度重视。

    6.改善IR drop的方法

    提高power mesh密度

    增加power switch cell 数量

    插足够多的decap cell(含decoupling capacitance)

    将同时翻转的寄存器摊开些摆放

     

    更多关于IR drop分析的细节,可以在作者微信公众号(id:ic-backend)回复"IR "获取Redhawk User guide

     

    好了,今天的码字就到这里了,原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱IC社区(52-ic.com)也正式上线了。吾爱IC社区(52-ic.com)是一个专业交流和分享数字IC设计与实现技术与经验的IC社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。

     

  • 0
  • 3
  • 0
  • 1.4k
  • 0
    好文章!666,学习了
  • 0
    setup time 违例不fix,可以降频跑。欢迎关注我的公众号ic-backend,里面有更多的干货分享。
  • 0
    setuptime 违例不是要降频吗
  • 单栏布局 侧栏位置: