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分析的流程

图1 静态IR Drop分析流程

 

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

图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分析的流程

图3 动态IR Drop分析流程

在项目前期,由于数字后端实现的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)将同时翻转的寄存器摊开些摆放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值