全速测试

更新时间:2024-03-18 22:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

标题:全速测试(at speed test)

2009-05-17 13:55:50

全速测试(at speed test)

在工艺节点在130nm以下的时候,很多情形下的物理缺陷都是由于延时来引起的。因此在对这种类型的chip做dft的时候,需要建立一个新的故障模型,业内称之为延时故障模型(time delay model)。解决的方法就是全速测试,所谓的全速测试就是让芯片工作在自己高倍时钟频率上,这个频率往往是要高过ATE的时钟的。这样对扫描模型的建立就提出了新的要求。即至少要保证芯片的latch clock和capture clock为芯片内部的高倍时钟。synopsys对此种问题的解决方法就是OCC(on chip clocking)。

DFT Compiler支持

两种模式的带OCC的扫描链插入,一种是自身的设计已经带上OCC电路的,另一种是不带OCC电路的。

下面分别说说这两种插入的流程。 1.OCC的自动插入

?

使能occ的插入,使用的命令是

set_dft_configuration -clock_controller enable

?

定义时钟,包括参考时钟,ATE时钟,PLL产生的时钟。

参考时钟的定义:如果周期跟默认的测试周期相同,定义方法

set_dft_signal -view existing_dft -type MasterClock -port my_clock -timing {45 55} set_dft_signal -view exsiting_dft -type refclock -port my_clock -period 100 -timing {45 55}

如果周期不同,就只需要定义refclock,不需要定义MasterClock

set_dft_signal -view exsiting_dft -type refclock -port my_clock -period 10 -timing {4 6}

ATE时钟的定义:

set_dft_signal -view exsiting_dft -type ScanClock -port ate_clock -timing {45 55} set_dft_signal -view exsiting_dft -type Oscillator -port ate_clock PLL产生时钟的定义:

set_dft_signal -view existing_dft -type Oscillator -hookup_pin pll/clk1 set_dft_signal -view existing_dft -type Oscillator -hookup_pin pll/clk2

? 指定全局信号,包括pll_bypass,pll_reset,ScanEnble,TestMode

set_dft_signal -view spec -type pll_reset -port pll_rst set_dft_signal -view spec -type pll_bypass -port pll_bp set_dft_signal -view spec -type ScanEnable -port scan_en set_dft_signal -view spec -type TestMode -port test_en

?

clock controller的设置

set_dft_clock_controller -cell_name u1 -design_name occ_clock_mux -pllclocks [pll/clk1 pll/clk2] -ateclocks [ate_clock] -cycles_per_clock 2

?

scan_configuration的设置

2.OCC已经存在

这种情况下由于OCC已经插入,因此命令set_dft_clock_controller在这里已经没有意义了,这里需要让DFT知道occ输出时钟信号的属性,使用的方法还是set_dft_signal。另外需要指定clock chains,使用set_scan_path来指定,将其complete化。另外如果使用到adaptive scan,注意test mode在两种模式下都必须指定啊。

基于扫描的SOC全速测试及应用

随着现代超大规模集成电路的规模日趋增大,对集成电路测试的要求也在不断提高。对于工作在高速下的数字系统,不光要针对其逻辑结构进行测试,还要求其信号能在指定周期内达到稳定状态。这大大提高了测试要求,不仅要求对电路逻辑缺陷进行测试并且要求设计者能对时序缺陷进行测试。因此为了提高测试质量和满足时序测试的要求,必须在额定时钟速度下施加测试矢量并观察响应,即进行全速(at-speed)测试。

1 转换故障、路径延迟故障的模型以及测试矢量生成

进行全速测试,首先是要选择测试时针对的故障模型,最常用的全速测试模型有转换故障模型和路径延迟故障模型两种。

转换故障是指电路中的缺陷使单条连线上传播的信号变慢,信号变慢又分慢上升和慢下降两种。转换故障的测试矢量为测试矢量对。测试矢量对由以下两步产生:假设电路中某节点存在一个由低到高的转换故障,首先生成测试矢量V2,V2能将该连线的逻辑值置为1同时将连线上的逻辑值传递到扫描路径;接下来生成测试矢量V1,V1能将该连线的逻辑值置为0。随后在测试过程中第一步先施加V1初始化连线状态,第二步是施加V2,使得连线上产生一个由低到高的转变,第三步是捕获这个转变。转换故障的测试矢量主要是针对大的延迟量的局部点延迟缺陷。

路径延迟故障,即当电路路径中延迟缺陷引起的组合路径延迟积累到超过规定的时间,无法按时完成逻辑功能,故障就产生了。路径延迟故障的测试矢量同样为测试矢量对。假设电路中存在一个由高到低的路径延迟故障,测试矢量对(V1,V2)必须能够在该路径的输入端产生高到低的转变,同时能够敏化该路径使得输入端的转变传递到路径的输出端。根据是否考虑存在其他路径延迟故障,路径延迟故障的测试矢量可以分为强健和非强健两种。非强健测试矢量只有在没有其他路径延迟故障存在的情况下才能确保路径延迟故障;而强健测试矢量则能确保检测出路径延迟故障,与电路的延迟分布无关。显然,在测试矢量的路径敏化过程中,强健测试矢量对路径外信号的取值以及电路本身的结构要求更高,这增加了测试矢量生成的难度。值得注意的是,上述测试矢量V1和V2未必是单个测试矢量也可以是测试序列。

由于在电路中路径数有可能非常多,因此对所有路径进行测试是不可实现同时也是不必要的。因此,路径延迟故障的测试矢量生成只针对少量的关键路径进行,而关键路径可以通过静态时序分析得到。即使是这样,根据一些研究表明路径延迟测试的覆盖率一般还是比较低的。 2扫描测试介绍

扫描测试是一种利用ATPG进行测试矢量生成的结构测试方法,他将时序电路中的寄存器转化成如图1所示的扫描寄存器。

SI端为扫描端口,SE端为扫描和功能模式下的切换控制端,扫描时将所有的扫描单元首尾相连,前一单元的Q端直接连到下一单元的SI端,所有的扫描单元共用SE端,这样就可以将需要的数据逐位地直接移入寄存器,即可以控制和观察电路的内部状态使时序电路转化成组合电路,这样测试矢量生成只需针对剩下的组合逻辑进行。 3全速测试方式

全速测试就是基于以上逻辑结构建立起来的,如图2所示,测试向量从扫描寄存器中输入,组合电路以及扫描寄存器的输出就是测试结果。用于全速测试的转换故障以及路径延迟故障的测试矢量的测试方式大致

可以采用如下2种时序模式:扭曲负载延迟模式和宽边延迟模式。两者的区别从原理上讲在于V2的提供方式不一样,前者是通过施加一位数据移入扫描寄存器中获得的;后者则是从基本输入端结合V1经过组合逻辑所得的。两种方式的时序不同则表现在产生转变的时刻不同,时序如图3所示:图3(a)中施加V2到捕获的转变周期由最后一个移位周期的上升沿和捕获周期的上升沿组成;而图3(b)中的转变周期发生在扫描移位周期和捕获周期之间的一个新的测试时钟周期内,当然两种方式的SE信号也如图发生相应的改变。

扫描移位的时钟周期通常比正常工作时钟周期要大的多,主要考虑以下几点:

(1)如果整个测试都在正常工作时钟下进行,需要更高级的ATE;

(2)测试时芯片管脚的负载电容比正常工作下的负载电容要大得多,限制了测试速度;

(3)移位操作本不是在实际功能时应有的操作,所以没有必要工作在正常周期;测试速度越快测试峰值功耗越高,这可能会损坏芯片,造成良率的下降,所以不能在工作模式下进行移位操作。

(4)在测试模式下,对于I/O路径来说由于PAD和ATE管脚本身的电气特性,管脚负载太大,会出现输出端无法工作在高速的情况,这样就无法捕获有效的数据,因此要在全速测试时固定住输入端口,同时屏蔽掉输出端口。即不对I/O路径进行At-speed测试。

测试向量的融合 对于转换故障的测试矢量对(V1,V2)来说,实际上V2为该节点s-a一0故障的测试矢量。假设某一电路的跳变故障和单固定故障的故障覆盖率分别为FCt,FCs,从前面的分析可以看出FCt≤FCs。实际上,一般具有高固定故障覆盖率的电路通常转换故障的可测性也较高。通过转换故障的测试矢量对单固定故障进行故障模拟,就可以得到转换故障针对固定故障的覆盖率,这就意味着测试向量发生了重复。鉴于以上的分析结果,可以提出以下方法对测试矢量进行融合:单固定故障的测试矢量生成只需针对少量的转换故障模拟无法检测到的故障进行,总的测试矢量就是转换故障测试矢量加少量单固故障测试矢量,这就在满足全速测试的情况下大大减少了测试矢量的个数。

全速测试时钟 全速测试对时间的要求使得测试时钟的问题也变得复杂起来。有两种来源可提供全速测试时钟:外部ATE和片上时钟。传统上总是用ATE来提供时钟,如果对时钟的速度和精确要求很高,那么对ATE的要求就高,花费就大。而采用片上时钟的方法就要求芯片内包括锁相环PLL或是其他片上时钟产生电路来提供测试时钟信号。片上时钟比ATE提供的时钟有更多好处:首先测试时序更为准确,其次降低了对ATE的要求,在测试时花费小。图4为片上时钟提供的方案。由外部提供激励,然后对PLL进行编程,分频产生测试时所需要的测试时钟。 4 实验内容

此次实验的对象为东南大学ASIC工程中心自行研发的一款SoC芯片Garfield,该芯片是百万门级芯片,是16/32位RISC控制器,主要面向工业控制、多媒体应用及其他消费类电子。

在实验过程中因为实际需要不仅产生转换故障和路径延迟故障的测试矢量,同时也对STuck-at故障进行测试矢量的生成。本次实验因为实验条件所致因此测试时钟由外部时钟提供。以下为实验步骤:

先通过Synopsys公司的EDA工具DFT Compiler对RTL代码进行测试综合,完成可测性设计,随后生成

加入了扫描链的verilog门级网表和为下一步ATPG时使用的STIL文件(Standard Test Interface Lanuage)。

然后就是测试矢量的生成,Garfield芯片的ATPG通过Synopsys公司的EDA工具TetraMAX完成,基本流程如图5所示:

其中测试DRC包含了对电路设计的多个方面的分析。电路的基本信息以及扫描设置可以通过读取STIL文件获得。前面已经提到用于stuck-at故障测试矢量生成的STIL文件直接由DFT Compiler产生,用于转换和路径延迟故障测试矢量生成的时序需要对STIL文件做修改使得生成的测试矢量能够按照前面所给出的At-speed测试时序进行仿真,这次采用的测试方式是扭曲负载延迟模式。

转换故障列表从TetraMAX内部直接产生,路径延迟故障列表则要用STA工具PrimeTime对网表进行分析,然后生成关键路径得到。转换故障的测试矢量可以作为向量源用于stuck-at故障的模拟,故障模拟中无法检测到的故障则用作stuck-at故障测试矢量生成的故障列表。为了保证转换故障测试的有效性,在转换故障测试适量生成时,产生的转换只通过扫描链捕获而不会传递到基本输出端,并且,为了防止基本输入端的慢转换对转换故障测试的影响,在产生转变与数据捕获这段时间内基本输入端也不允许发生变化,完成测试矢量生成后,结果如表1所示。

从表1中可以看到,stuck-at故障的测试覆盖率达到了工程上的要求(大于95%)。利用转换故障的测试矢量对stuck-at故障进行故障模拟,测试覆盖率可以达到92.35%;对故障模拟中未能检测到的stuck-at故障,采用全时序的方式进行ATPG,这样,只需增加509个全时序测试矢量就可以完成stuck-at故障的测试矢量生成。由于路径延迟故障测试矢量对中的两个测试矢量具有很强的相关性,因而路径延迟故障的测试覆盖率较低;但路径延迟故障是针对使整个芯片变慢的\面缺陷\引起的,因而,一部分关键路径上的延迟故障可测仍能保证路径延迟测试的质量。 5结 语

随着深亚微米工艺的进步,与时序相关的缺陷在数字电路中越发表现的突出,而作为一项有效且低成本的时序测试方法,基于扫描的全速测试越来越受到人们的重视。因此,本文对于这种测试方法的原理进行详细的介绍,同时依照原理进行了正确的实验并得到了意料之中的结果。

参考文献:

[1]. RISC datasheet http://www.dzsc.com/datasheet/RISC_1189725.html. [2]. STA datasheet http://www.dzsc.com/datasheet/STA_2043195.html.

本文来源:https://www.bwwdw.com/article/5kv8.html

Top