DFT中的低功耗设计策略讨论

1、考虑低功耗的原因:

降低功耗最直接的目的就是延长由电池供电的电子产品的使用时间另外低功耗的芯片可以大幅提高设备的可靠性,以及降低封装、散热系统的成本。

2、Test Mode下芯片的动态功耗往往比Function Mode时高出几倍,原因在于:

(1) 测试功耗与逻辑翻转率相关,与正常模式相比,测试模式CUT 中并行运行的模块数更多,全部节点跳变数为正常模式下的数倍,如果功耗太大,最极端的情况可能将芯片烧坏

(2) 为提高测试质量并减少测试时间,SoC 测试中高速测试 (At-speed Test) 与并行测试的方式使得芯片测试功耗激增;

(3) 片上集成的DFT逻辑在正常工作时处于off状态,而测试时持续工作,动态功耗相对增高;

(4) 扫描测试中,在shift和capture时,会导致设计发生一些不必要的翻转

(5) 同时还可以降低IR drop。若IR drop太大,则会导致芯片测试驱动能力不足,以至逻辑计算出错,很容易发生漏检和误检,导致芯片良率和成品率降低90。

IR_drop的概念:

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

IR Drop的种类

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

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

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

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

IR Drop的影响

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

改善IR drop的方法

提高power mesh密度增加power switch cell 数量插足够多的decap cell(含decoupling capacitance);同时翻转的寄存器摊开些摆放

DFT中的低功耗技术要包括以下三类:基于向量的低功耗测试技术、基于 DFT设计的低功耗测试技术和低功耗测试调度技术。目前实际大型设计项目中常采用前两个方案。

1 基于向量的低功耗测试技术

测试向量翻转会导致 设计内部节点发生状态变换,是测试功耗的主要来源,从测试向量着手的低功耗测试方法包括低功耗ATPG、测试向量X填充、测试向量重排序reorder和测试输入控制,即测试点插入等。

低功耗ATPG:在edt内部做Low_power结构,并且使能low_power_shift_enable信号拉高。在出pat的时候打开set_power_conreol选项,同时report_power_metric功耗结果。可以选择try_run尝试单独打开shift或者capture或者同时打开两者。通过观察atpg的结果:pats 量变化;功耗变化;覆盖率变化。不同设计采取的option不一样。

Test pattern的关心位(care bit)只占总cycle的5%-10%,而其中未指定的bit则会随机生成0/1来进行填充,若全填充0或全填充1,那么整条scan chain不会0101地 toggle,功耗因此降低。我们的pattern可能是0101序列,可以通过调整序列的方式改变为0110同样达到测试的目的同时使toggle rate降低。

基于测试向量的低功耗测试技术比较容易实现,一般不需要在CUT上添加额外的逻辑,对测试过程和待测CUT性能影响较小,对动态测试功耗优化程度比较高。但这类技术仅在测试向量层面优化测试功耗,难以控制静态测试功耗,同时由于没有充分考虑电路特性,优化空间相对有限,在降低测试功耗上难以起决定性作用,因此常作为其它低功耗技术的补充。

2 基于DFT电路设计低功耗测试技术

基于DFT的低功耗测试技术主要通过添加或修改DFT逻辑以实现降低扫描链或电路节点的翻转,进而降低测试功耗,包括扫描跳变阻塞(Toggle Suppression)、scan_icg_en_control_ip、scan_rst_contron_ip、时钟树优化、扫描链重构、电路划分和低功耗BIST等。

在shift期间利用AND门(或OR门)阻止SDFF的值传播到组合逻辑时发生的翻转,从而降低测试功耗:

一定程度上增加了DFT Logic开销和测试成本,可能还会延长测试时间并对性能产生一定影响,但从电路层次对DFT进行低功耗设计,测试功耗优化效率非常高,实际应用较为广泛。

3 低功耗测试调度技术

并行测试可以减少SoC测试时间,但随着芯片集成度的增长,SoC芯片内嵌IP数目持续增多,各IP核并行测试所带来的高功耗和高温问题不可忽视,同时测试访问端口与总线等资源的限制亦不足以支撑所有IP核并行测试,因此需要从全芯片层次考虑SoC系统的测试调度问题。一般采用分不同scan_mdoe分组测试,以及考虑位置、设计联系等因素,规划出WGL。

MBIST中的分步测试法,如图3所示,在Memory group时我们将memory进行分组,在同一组中再进行分步测试,如进行step1 test时我们可以关闭其它部分的clock(通过mbist_clk_gate接管)来降低动态功耗,甚至可以关闭其它部分的电源进一步降低静态功耗和动态功耗。

对于scan_test:由于Transition Fault时的capture时钟频率高,导致功耗急剧升高,将引起MOS管电性参数漂移,使得SCAN测试失败。

多时钟域设计,一般采用单时钟域串琏,每个时钟域各自插入异步的OCC。可以通过occ_kill_clk_en -with_tdr来控制其他时钟域关断,减小power。

也可以采用分步法可有效降低SCAN Transition Tset时的capture功耗,并且由于传统方法对不同时钟域之间的交互连接处测试点覆盖不全,分步法还可以增加测试覆盖率,但缺点是测试向量会增多,测试时间也会变长,导致测试成本增加。其原理就是:采用不同的mode,对PLL配置。

在shift过程中,我们可以通过在ATE_CLK的path上加不同数量的buffer cell这种方式,将scan chains分成多个组,使得不同的scan chain在不同的上升沿toggle,这样就可以降低功耗了。

扫描测试时capture通常是同一个clock domain的capture clock同时翻转,和shift相比,capture采用高速时钟,会在极短时间内产生较大功耗。为解决这一问题,我们可以通过采用空cycle的形式,将同时capture的扫描链分开进行capture,即错位置。这样就可以降低瞬时功耗。

后续再补充详细实现方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值