IR Drop分析之Redhawk分析流程
http://bbs.eetop.cn/thread-870295-1-1.html
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分析的流程
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标准( 语言标准)中定义的一种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分析的流程
在项目前期,由于数字后端实现的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)
将同时翻转的寄存器摊开些摆放
少用 SLVT cell(在place 阶段禁用 SLVT,后续再打开;或者在 PR 阶段禁用,pt 修时序阶段再打开)