摘要:集成电路制造技术的进步带来了越来越小的工艺尺寸,与此同时也带来了更多的和速度相关的故障。这些故障可以是由于工艺的偏差、不纯净的材料以及各种灰尘导致的。对于目前越来越多的高速芯片而言,即使一个很小的延迟故障也会影响芯片的正常工作频率,通常的由测试机提供慢速时钟的测试方法无法覆盖由于高速而带来的故障,由于这些原因,at—speed测试对于高速大规模集成电路变得至关重要。
利用扫描技术进行at—speed测试已经证明是一种测试与timing相关故障的有效方法。事实上由于扫描测试具有和功能测试效果一样的原因,at—speed扫描测试已经代替at—speed功能测试,成为要求高测试质量和较低DPM的必需手段。本文将介绍st—speed测试的原理,以及一种支持at—speed测试的时钟产生电路——OCC(On—chip clock)电路。
1 引 言
当集成电路进人到深亚微米阶段,设计有更高的频率和集成度,但同时也引入了许多和timing相关的故障,一家的fabless设计公司已经发表的文章证实当他们的设计从0.18p,m迁移到0.131um时,与timing相关的故障增加了20倍。另一家厂商也宣布,他们发现15%的故障是和timing相关的。在0.130um工艺和以下,与timing相关的故障量的增长已经迫使许多公司将at—speed测试作为一种必需的测试手段。基于扫描技术的at—speed测试手段已经被证明是一种十分有效的测试方法。
测试机提供的时钟一般无法达到很高的频率,而使用一些可以提供高频时钟的测试机往往成本昂贵。
At—speed测试不再像stuck—at测试那样由测试机提供测试时钟,而是使用芯片内部的高速时钟,这样需要加入专门的电路来支持。许多公司在做支持at—speed测试的时钟产生控制模块的方法上各不相同。
下面描述at—speed的测试方法以及一种支持at—speed测试的时钟控制模块occ(on chip clock)电路的实现方法。
2 At—speed的测试方法
At—speed测试是面向电路内部引入延迟的故障,一般电路都工作在一定频率下,如果因为一个故障导致0→1或者1→0的翻转无法在一定的时间内完成,此芯片就失效了。与传统的基于stuck—at故障模型的静态测试方法比较,at—speed测试生成的测试向量分为两部分。部分是在一个组合逻辑的输入端发射(1aunch)一个0—1或1—0的翻转,第二个部分要捕获(capture)组合逻辑的输出端响应。如果在指定的时间周期内capture的响应正确,那么说明电路没有at—speed故障。
图1 At—speed测试原理
其波形图如图2:
图2 At—speed测试波形
所以at—speed测试的度建立在个launch时钟和第二个capture时钟的度上。虽然测试机可以提供这些时钟,但测试机提供时钟需要考虑以下2点:首先测试机可以提供的时钟频率是有限的,使用越高频的测试机意味着更高的测试成本。其次,目前的超大规模集成电路工作频率少则数百兆,多则高达几GHz。测试机往往很难提供如此高频的时钟。而很明显对于at—speed测试而言使用片内PLL来提供的launch和capture时钟是的方法。
图2中Clk信号在shift和launch、captuer阶段的切换、以及launch、capture2个功能脉冲的产生需要有专门的电路支持。这就是下面要介绍的OCC电路。
3 OCC电路
一般芯片内部都由CRG(Clock Reset Genera.tion)模块来提供系统工作所需的各种时钟,然后提供给各个模块使用。为了支持at—speed测试,需要在CRG和模块之间加人OCC电路。
OCC电路可以支持以下功能:
· 正常功能模式下输出系统时钟。
·stuck— at测试模式下输出测试机慢速时钟scan_clk。
·at_ speed测试模式下输出如图2的时钟。
OCC电路的模块结构示意图如图3所示。
图3 OCC的结构示意图
下面分别介绍各个模块的作用。
OCC_ SYNC对控制信号(通常为scan—enable)使用本地时钟进行同步处理,避免亚稳态。
OCC— DLY对控制信号进行延时,确保OCC在输出系统前,芯片处于稳定状态。一般OCC—DLY中使用计数器计算延时,计数器位宽由Dly—cfs[N:0]配置。此模块可以根据需要决定是否加入。
OCC— CTRL电路用来产生图2中的at—speed测试时钟。电路如图4所示。
在2 pulse generation中前2个寄存器用来对控制信号做同步,后面的2个寄存器和与门产生2个周期长度的控制信号。然后和clock gating中的PLL_CLK做一个gating,生成2个功能脉冲,个即hunch时钟,第二个为capture时钟。用scan_enable信号来实现图2中不同阶段的选择。
Occ_ en信号用来配置此OCC电路是否使能。
在多时钟域设计的at—speed测试中,如果多个时钟同时翻转,时钟域间的相互作用可能导致capture值的不确定性。尤其在不同频率的设计中,情况就越发复杂。业内很多方法试图解决跨时钟域的at—speed测试问题,但保险直接的办法是确保在同一个时刻有相互影响的时钟域中只有一个输出功能时钟。因而在多时钟域设计中可以通过加入Occ—en扫描链来控制哪个OCC电路使能。
图4 At_speed测试时钟的产生
At_speed测试模式下可以通过把扫描链的输入输出与功能引脚复用,在进行at—speed测试前通过 对扫描链的配置来决定哪一个时钟域翻转。
At—speed测试中常见的是只有2个功能脉冲的情况,事实上可以扩展为任意个脉冲,通过在OCC_ CTRL模块增加pulse—selection[N:0]信号来控制功能脉冲的个数,使此电路的通用性大大增加。如图5所示。
图5 多脉冲产生电路
OCC_ MUX用来选择输出哪个时钟。前面提到了OCC电路要支持一个正常工作模式和Stuck—at和at_speed2种测试模式。在正常工作模式(Test—mode=0)下要输出Func_clk。在at—speed模式下受scan_enable控制输出Scan-clk和launch、capture两个脉冲。此时只要把示意图中的testmode信号分解为at.._speedjestmode和stuck-at-testmode两种模式,用来选中所需的scan_clk和Atspeed clk即可。
4 结论
以上描述了基于扫描的at—speed测试的机理以及如何用一种OCC电路实现at—speed测试时钟产生,以及OCC各模块的构成。
一个设计如果要支持At—speed测试,在电路结构上需要加人像OCC这样的电路为基础。其测试向量的生成目前大多数商业EDA工具都可以支持。At—speed测试在0.13微米及以下正越来越普及,对提高测试覆盖率,降低DPM有重要的作用。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。