引言
随着现代半导体技术的发展,将整个系统集成在一个芯片上成为可能,即通常所说的片上系统集成SoC(System-on-chip)。由于SoC的结构特点,DFT成为SoC设计中的一项关键技术。由于任何一种测试方法的基本原理都是敏化和传递故障,因此不可避免地使电路内部节点的翻转情况变得更加密集,同时逻辑设计所采用的低功耗设计在测试模式下通常无法起作用,从而在测试模式下必然会产生出比正常工作状态大得多的功率消耗。测试功耗问题将会极大影响产品成品率。因此降低测试功耗是所有测试方法在处理高性能电路系统时必须考虑的问题。
功耗分析
功耗问题是目前 CMOS数字集成电路设计中至关重要的因素。CMOS 数字电路的功耗一般可以表示为:
p=Pd+Psc+PI (1)
Pd为动态功耗,它表示当电路中的节点电压发生0→1 或者 1→0 跳变时,节点电容进行充放电时所消耗的能量。
动态功耗可以表示为:
其中Vdd为电源电压;Ci为节点i的负载电容;ai为节点i 在单个工作时钟周期内发生翻转的次数;n为电路中节点的数目。
Psc为瞬态功耗,是节点跳变时,驱动管与负载管瞬间同时导通而产生的功耗。PI为漏电流造成的静态功耗。
在CMOS 数字电路中,动态功耗是最主要的功耗。典型系统中动态功耗将占到总功耗的 90%~95%。因此在以下的分析中将忽略静态功耗和瞬态功耗。
降低功耗的方法和途径
由公式 (2) 可以看到,系统功耗主要取决于系统电源电压、负载电容及节点电平的翻转概率。因此低功耗设计主要从以上三个方面着手。值得注意的是,低功耗设计是一个整体,单单考虑一方面是不够的。
改变电源电压
功耗与电源电压的平方成正比,因此降低电源电压是降低功耗的有力措施。不需要改变电路的结构降低电源电压就可以取得减少功率的显著效果,而且降低电压是针对整个芯片,而不是针对某个单元,因此降低电源电压比减少负载电容和降低节点的翻转概率更易见效,但降低电压并不是无限制的,降低电压必须考虑电路的速度。
电压降低时,延时增加,导致电路性能下降,由于CMOS器件电流 Idd∝(Vdd Vt )2,可得电路延时:
公式(略)其中Vt为阈值电压。
当Vdd>>Vt时降低电压导致延时呈线性增加,此时可以用改变电路结构等措施来弥补低电压带来的延时的增加,但当电压进一步降低到接近阈值电压时,漏电流急剧增加。为了避免这种情况发生,电压最多只能降低到2Vt左右。
改变负载电容
动态功耗与负载电容成正比。因此减少负载电容成为降低动态功耗的另一种途径。在CMOS 数字电路中电容主要由两部分组成,一部分是器件栅极电容和节点电容,它们和器件工艺有关。另一部分是连线电容。值得注意的是,随着工艺的发展,布线电容已经超过器件电容。为了减少电容,在工艺方面可以选择小的器件,物理设计时减少连线长度。
改变节点电平的翻转概率
基于扫描的可测性技术原理
所谓基于扫描的可测性技术,其核心是在电路中使用扫描寄存器(SR)来提高电路的可观测性和可控性。扫描寄存器是一种同时具有移位和并行载入功能的寄存器。寄存器的存储单元可用作观测点或控制点。在控制信号和时钟信号的作用下,扫描寄存器可以实行扫入(scan-in)和扫出(scan-out)操作。测试过程包括测试矢量的串行扫入、计算、采样和测试结果的串行扫出。而在一般工作模式下,扫描寄存器的移位功能将被禁止,系统恢复正常的工作方式。
测试功耗分析
对于全扫描结构,在测试模式下,由扫描寄存器组成的移位寄存器链需要进行串行的扫入和扫出操作。移位所采用的测试矢量可以看作是一组接近随机数的二进制序列。对于一个存在
N 个寄存器的系统,其测试功耗可通过公式 (4)进行估算。
公式(略)
Pclk为时钟树的功耗,由时钟频率以及时钟树的构成决定;PSR为扫描链的功耗,其中aij为第i 个扫描寄存器在第 j 个时钟周期的翻转概率,PSRi为单个扫描寄存器单次翻转的功耗,由时钟频率和库的参数具体决定,因此可以看出,aij将最终决定扫描寄存器链的功耗,进而决定扫描链的功耗;PC为组合电路功耗,其中PCj为第
j 个时钟周期组合电路的功耗,此部分功耗与组合电路结构、扫描链的配置、组合电路输入端信号、扫描寄存器的翻转情况以及时钟频率有关。整个测试过程中的第
N 个时钟周期为电路运算周期,由于这部分功耗相对整个测试功耗所占比重较小,并且仅与实际电路结构有关,因此没有包含在公式 (4)的计算中。
从公式 (4)可以看出,在测试频率不改变的情况下,扫描寄存器翻转概率就成为影响测试功率的决定性参数。假设测试矢量单位长度内存跳变(0→1或1→0)的概率为Cin,计算结果单位长度内存跳变的概率为Cout。同时定义扫描寄存器的位通过率RBP为完成一个测试矢量的扫入或扫出的操作过程中,通过某寄存器的数据位数。则可以得到:
公式(略)
当所有寄存器单次翻转的功率相同时,由公式(5)可得:
公式(略)
对于测试矢量这种类随机数序列,其中的平均跳变概率接近常数,因此位通过率将直接反映测试系统的功耗,包括寄存器功耗和组合电路功耗。
低测试功耗的扫描结构
扫描结构的基本原理是通过最少的输入端口将所希望的值写入相应的寄存器内,或者通过最少的输出端口将所有寄存器内的值读出。
对于目前通用的扫描结构,扫入一条测试矢量时,测试矢量的每一位都会通过扫描链的链头(扫描链的第一个寄存器),即链头的位通过率为N,其后的寄存器的位通过率依次递减,总的位通过率
公式(略)
其结果是寄存器多了很多冗余翻转,导致测试的功率成倍增加。针对这种情况,在以上分析基础上,提出一种综合考虑各种可测性因素的位通过率优化结构——扫描阵列。该结构通过合理的结构调整,有效地降低了系统总体的位通过率,并可以降低内部扫描链的工作频率,从而实现了对测试功耗的全面优化。
图1 扫描阵列结构框架示意图(略)
扫描阵列结构框架示意图如图1所示。图中矩形方框为扫描寄存器,正方形框为锁存器。虚线框中是一个L H的二维扫描寄存器矩阵(本图为扫描阵列结构的简化图,扫描寄存器的端口未标出)。这个结构的特点在于把在原始电路中采用一维扫描链需要组成长度为
N 的扫描链改善为采用了 L H 的二维矩阵来构造扫描阵列的 H 个分支扫描链,其中 L H=N,且 H<<L。当
N不是 H 的整倍数时,选择 L=[N/H]+1,以便构造 H 条等长的扫描链。虚线框以外的扫描链为主干扫描链,虚线框内扫描链称为分支扫描链,它们的结构实际上与
H 条并行扫描链完全相同。
扫描阵列结构在执行扫入操作时,首先在CLK控制下将H位测试矢量串行扫入主干扫描链。完成后,在CLKH控制下将此H位测试矢量并行扫入分支扫描链,同时主干扫描链开始扫入接下来的H位测试矢量,直至完成N位测试矢量的扫入。CLK与CLKH的时序关系如图2所示。
图2 CLK与CLKH的时序关系(略)
对于扫描阵列结构,通过分析,我们可得此结构所有的寄存器的位通过率为:
公式(略)
根据前面的分析可知,在测试矢量确定的情况下,位通过率将决定系统的测试功耗。对比公式(7)与公式(8),当H<<L时,RBP1
仅相当于RBP1的1/H2。通过以上分析可知,运用扫描阵列结构,可以极大地降低测试功率。
|