由表l数据可见,部分扫描对待测电路测试覆盖率影响非常小(<3.5%),且对电路进行部分扫描设计后,扫描寄存器数目大大减少,所以在扫描移位周期需要同时触发寄存器的数目也大大减少,由此引起待测电路内部节点的翻转数目也大大减少,可达到降低BIST的平均功耗和峰值功耗的目的。
3.2 基于时钟的test—per-clock方式
3.2.1 基本结构
一个test-per-clock内建自测试基本结构如图3所示。每一个测试时钟L2SR生成一个测试矢量。多输人特征寄存器(Multiple-一Input Signature Register,简称MISR)压缩一个响应矢量。
3.2.2 原理
在扫描测试中,主要功耗包括逻辑功耗、扫描功耗和时钟功耗。前面给出的方法主要集中在降低逻辑功耗或扫描功耗,但没有降低时钟功耗。基于时钟的低功耗test—per—clock方式可以同时降低这3种功耗。该方法采用低功耗的test—per-一clock BIST结构。对LFSR进行修改后,用作TPG以生成低功耗的测试矢量。使用这种经过修改的时钟方案会降低被测电路、TPG和馈给TPG的时钟树的跳变密度。通过降低被测电路、TPG和时钟树的状态转换活动率来降低BIST期间的功耗。
由于来源于标准扫描结构的测试模式可直接用于低功耗扫描结构,这种方法与采用传统扫描结构所达到的故障覆盖率和IC测试时间基本一致。与传统扫描结构相比,面积开销很小,在电路性能方面也没有损失。
3.2.3 低功耗测试矢量生成
对于test—per—clock结构来说,减少测试功耗主要通过优化测试矢量来实现,而测试矢量生成技术是指产生确定性测试矢量的技术。
测试矢量生成方式在生成测试模式时,除了要达到传统的ATPG目的,还需考虑降低测试期间的功耗。基于ATPG的方法又分为2种:①集成的ATPG优化方法,该方法的测试模式在测试生成期间进行低功耗优化;②ATPG之后的优化方法,该方法的测试模式首先由传统的ATPG生成,然后再进行功耗优化。
(1)与模拟退火算法相结合测试矢量生成的步骤是:首先根据模拟退火算法将测试模式分组成若干个有效测试矢量组与无效测试矢量组两部分;然后根据算法原理,生成控制LFSR运行的控制码;在这些控制码的作用下,LFSR就跳过大量的无效测试矢量,生成由有效测试矢量构成的精简的测试矢量序列。其基本流程如图4所示。
(2)与进化算法相结合依据测试矢量生成技术原理,采用基于遗传算法的测试模式生成器,用于计算冗余的测试模式。在冗余测试模式中,一个故障由几个不同的序列覆盖。然后使用一个优化算法,从前面已计算过的测试序列组合中选择一个最佳子集,使其峰值功率最小,而不影响故障覆盖率。参考文献采用ISCAS’85Bench—mark中的组合电路作为实验电路,在保持故障覆盖率不变的情况下,对待测电路的测试功耗a与使用模拟退火算法的BIST结构的测试功耗b相比较,得到的结果如表2所示。
由表2可知,满足相同故障覆盖率时,采用模拟退火算法分组测试矢量后,WSA大幅降低,总的WSA改善率在73.44%~94.96%之间。由于减少测试矢量,测试时间也大为缩短。
4 结语
采用线性反馈移位寄存器生成测试矢量的BIST结构可分为test—per—scan和test—per—clock两大类,相应的实现低功耗BIST测试方法也分别针对test一per—scan和test—per一clock结构。对tesl—per-scan结构模式,减少测试功耗主要通过优化扫描链来实现;对于test—per-clock结构模式,减少测试功耗主要通过优化测试矢量来实现。test—per—scan技术引起的面积开销较小,测试结构简单,易于扩展;而test—per—clock在一个周期内可实现矢量的生成和响应压缩,能够完成快速的测试。当然,随着测试功耗研究的深入,将会有更好的方法使功耗、故障覆盖率、系统性能等问题达到最优。