对全速测试中时序例外路径的处理方法的改进

2011-09-12 03:22韩少锋管成程
电子测试 2011年11期
关键词:敏化电平时序

韩少锋,管成程

(1 羿发科技深圳有限公司北京分公司,北京 100080;2 青岛港湾职业技术学院 电气工程系,青岛 266404)

0 引言

ATPG (Automatic Test Pattern Generation )是指由EDA工具基于可扫描的测试结构自动生成测试向量的结构化测试方法。由于时钟速度的提高和工艺尺寸的减小会给芯片带来相关的缺陷,因此全速测试对于现代芯片设计必不可少。目前,高级的ATPG工具都支持基于扫描的全速测试技术,许多资料也都给出了生成全速测试向量的基本流程。本文则主要探讨在生成全速测试向量时,如何处理错误路径和多周期路径。因为如果这些时序例外没有被正确处理的话,可能会导致良好的芯片无法通过全速测试,进而造成良率的降低。

1 术语解释

在今天的电路设计流程中,STA主要用来确保电路里没有时序上的错误。其中,STA工程师会经常使用“错误路径”这个术语,它是指某一条路径虽然在芯片中客观存在,但是STA工具不去对它做时序上的检查,也就是说在芯片正常工作过程中,这条路径上不会有单周期时钟数据的传递。然而,在输入全速测试向量时,会把非功能性的状态值引入电路,从而使这些路径在基于扫描的全速测试中被敏化。

在运行时序分析之前,STA工程师会把所设计的电路装载到STA工具里,指定时钟和时序约束,然后加入时序例外信息。这些时序例外信息被用来覆盖默认的单周期时钟约束,可以被应用到任意时序路径上。常用的STA工具是来自Synopsys公司的PrimeTime,指定错误路径的命令是set_false_path,它有许多参数,比如-from, -to,-through等等,-from定义了错误路径的起点,可以是输入端口或寄存器时钟接脚;-through定义了路径的途径点,可以是单元、接脚或端口;路径的终点由-to定义,可以是寄存器的数据接脚或输出端口。自由组合这些参数就可以指定芯片中的任意一条路径。比如图1是实际电路中的一部分,可以用set_false_path做如下设定:

set_false_path –from CLK1 –to CLK2

set_false_path –from CLK1 –to U3/D

set_false_path –through G5/out

如果通过某一根接脚、某一个单元,或者某一个端口的全部路径都是错误路径,那么使用set_disable_timing命令比set_false_path命令效率更高。

通过指定错误路径,STA工具就不会对这些路径进行时序方面的评估,从而使电路在逻辑仿真和物理上的布局布线中满足时序收敛的要求。

图1 错误路径的逻辑电路图

多周期路径是指数据穿过一条路径的全部时间延迟大于一个时钟周期,在STA工具中指定多周期路径的方式和参数类似于指定错误路径,所用到的命令是set_multicycle_path。如图2所示,从U1到U5的延迟要大于一个时钟周期,所以可以使用下面的命令来表示:

set_multicycle_path –from U1 –to U5

图2 多周期路径的逻辑电路图

STA过程结束之后,可以使用write_sdc命令,把所有的时序例外信息都写成SDC(Synopsys Design Constraints)格式的文件,供其他工具使用。

2 处理时序例外的传统方法

在ATPG中处理时序例外路径的传统方法依赖于加入约束或者使用向量屏蔽功能。通常的做法是分析路径,加入合适的单元约束,比如给错误路径或者多周期路径的起点单元或者(和)终点单元强制赋予X值。

这种方法在某些情况下可以起作用,但是它也有一些缺点。首先,确定正确的单元位置是个手工过程,任务繁重。其次,这种方法过于保守,所以测试结果和产品质量会受到影响。当一个X约束被加到捕捉单元时,所有这条路径上的原本能够观察到的错误现在都变得不可观了。这个缺点还导致了第三个潜在的问题,当设计变大,测试向量的数量增加时,许多公司都会使用测试压缩技术。此时,过多的X约束值会影响测试压缩技术的使用,给测试结果带来非常严重的负面影响。

最后,对于那些复杂的时序例外路径,产生完整的约束和屏蔽值是非常困难的,也是容易出错的。这些都会导致测试向量在自动测试设备(ATE)上无法通过。

3 处理时序例外的新方法

为了克服传统方法的保守性和其他缺点,一种在全速测试向量生成过程中处理错误路径和多周期路径的新方法被提出来。这种方法不需要繁琐的手工过程去产生单元约束和向量屏蔽,而且所生成的全速测试向量也不会在ATE上不能通过。这种自动化的方法由下列几个步骤组成。

3.1 输入时序例外路径

ATPG工具读入包含有时序例外路径信息的SDC文件,在这个文件中,错误路径由set_false_path命令和set_disable_timing命令指定,多周期路径由set_multicycle_path命令定义。除此之外,ATPG工具还能自动处理如下的命令:set_case_analysis, creat_generated_clock,creat_clock 和 set_hierarchy_separator等。

如果没有SDC文件的话,还可以使用ATPG工具自带的命令来指定时序例外路径信息,它们是add false path和add multicycle path。

3.2 标记相关路径

在读入时序例外信息之后,这些路径会在电路中被标记出来,并且在生成全速向量的过程中被使用到。注意电路中的某个节点作为前面路径的终点的同时,也可以作为后面路径的起点。

3.3 检查路径敏化

检查一条时序例外路径的起点的初始逻辑值。如果在这个起点处发现有一个全速电平转换,那么这个起点的初值就被储存起来,同时加入一个X值(X代表未知的逻辑值)。通过事件驱动逻辑仿真,加入的X值就沿着完整的时序例外路径向前传播。在此仿真进行过程中,X值传播所经过的门电路的初始值都要被保存。在仿真结束的时候,检查时序例外路径的终点,把带有X值的终点的位置信息保存到一个叫做X屏蔽表的数据结构中。如果全部终点都有X值,那么这条时序例外路径叫做完全敏化;如果部分终点有X值,叫做部分敏化;如果所有终点都没有X值,叫做不敏化。敏化检查结束后,电路的原始状态就被储存起来。

3.4 确定未知状态

在生成每一个全速测试向量的过程中,都要考虑时序例外路径的影响。每一个给定的全速测试向量里都包含多个时间帧,由于时序例外路径的敏化造成的未知状态对于每个时间帧而言都需要被确定。如步骤3.3所述,对时序例外路径做敏化检查,对每个时间帧都生成X屏蔽表。在这个屏蔽表被生成之后,原始的电路状态就被保存下来。X值被加到屏蔽表里所列到的电路节点,通过逻辑仿真,这些未知的状态产生的结果就会被向前传播。

3.5 维持过去的电平转换结果

在一个给定的全速测试向量中,对每一个时间帧都要考虑在时序例外路径的输入端维持以往的电平转换结果。假设当前的时间帧是t,有一条错误路径P1,在它的输入端有一个全速的电平转换发生在小于t的时间帧里。那么即使当前(也就是在时间帧t)在P1的输入端没有全速电平转换发生,也要对这条路径做敏化检查。因为沿着这条错误路径的时间延迟是未知的。如果这条错误路径P1的敏化条件得到了满足,则受到影响的端点就会在当前的时间帧里被赋予未知的逻辑值,同时,通过传统的逻辑仿真,这些未知值向前传播。而清除以前的电平转换的影响可以通过如下慢速事件:1)扫描链的串行输入;2)扫描链的串行输出;3)其他慢速时钟事件。

对于传播延迟是d的多周期路径而言,假设当前的时间帧是t,则对于小于t,大于t-d的时间帧内发生的全速电平转换,都要考虑做敏化检查。对于敏化检查之后的多周期路径的处理方式与对错误路径的处理方式相同。

4 一个具体的例子

这种有效的处理错误路径和多周期路径的新方法被广泛应用到不同尺寸和类型的设计中,并取得了较好的结果。下面就是我们实际项目中的一个例子。

这个项目是AT6600D0芯片,它具有以下特点:1)支持AC扫描模式,支持电平转换延迟扫描向量测试;2)AC扫描时钟由内部PLL产生,通过JTAG接口配置成broadside形式的时钟波形;3)33个内部时钟域;4)最大时钟速度624MHz;5)总共有950K个门单元;6)一共有68条扫描链,共计468K扫描单元;7)目标错误有1.4M;8)定义了86条错误路径和多周期路径,利用通配符,可以覆盖的路径大概有10k条。

首先,运行全速ATPG一次,不加任何单元约束或者时序例外的定义。这个结果要保存成二进制形式的向量,以便做进一步的错误仿真(fault simulation)。本次向量集的测试覆盖率是85.43%,同时总共有18M的屏蔽值。但是需要注意的是这个覆盖率是无意义的,因为这些向量集没有考虑设计中的时序例外,所以无法将它们应用到ATE上去。

为了处理已知的错误路径和多周期路径,首先像第三节描述的那样,把必要的单元约束加上,然后做错误仿真,表1给出了这一流程的结果,可见,使用这种方法后测试覆盖率降低了8.6%,被屏蔽的单元增加了5倍。

接下来,重新做错误仿真的流程,从读入二进制向量集开始,这一次,使用ATPG工具的读入SDC文件的功能来直接获取时序例外定义,因此可以使用带有时序例外的完整的路径信息。本次流程的结果也列在表1里。

比较两个流程的结果,很明显,使用SDC文件提供的时序例外大大改善了所生成向量的测试质量。与旧的纯粹加单元约束的方法相比最后的向量集减少了58M的屏蔽值,但是却增加了5.8%的覆盖率。

表1

5 结论

对于确保今天的纳米级设计的测试质量,基于扫描的全速ATPG测试向量已经变得非常重要。为了得到尽可能好的全速测试向量,需要加入电路中时序例外路径的影响。在设计的过程中,通常是用静态时序分析找到并且指定这些路径的。

过去,人们创建ATPG扫描向量时,受限于处理这些例外路径的不成熟的方法,比如在生成测试向量的时候加入单元约束来屏蔽掉例外路径的起点和终点。这种解决方法的处理方式过于保守,会导致很差的测试质量。

本文解释了在生成全速测试扫描向量时,处理时序例外路径的更好的方法,还提供了一个详细的业界设计的例子。通过将SDC文件应用到电路设计中,ATPG工具能够自动分析路径和向量,并且只屏蔽必需的捕捉位置。这种方法更容易使用,更准确,提供了更好的测试质量。这种使用SDC文件的新方法为芯片的设计和测试之间架起了一座沟通的桥梁。

[1]Synopsys.TetraMAX ATPG User Guide[M].Synopsys ,2010.

[2]Michael L.Bushnell, Vishwani D.Agrawal .Essentials of electronic testing for digital, memory and mixedsignal VLSI circuits[M].KLUWER ACADEMIC PUBLISHERS,2002.

[3]M.Beck, O.Barondeau, F.Poehl, X.Lin, R.Press.Measures to improve Delay Fault Testing on Low-Cost Testers – A case Study[J].Proc.IEEE VLSI Test Symposium, May 2005:223-228.

[4]胡晋.基于扫描的SoC全速测试及应用[J].现代电子技术,2007(08):192-194.

[5]马琪,焦鹏,周宇亮.基于扫描的VLSI全速测试方法[J].半导体技术,2007,32(12):1090-1093.

[6]蔡志匡,黄凯,黄丹丹,时龙兴.Garfield系列SoC芯片可测性设计与测试[J].微电子学,2009,39(05):591-596.

[7]于明.CPLD测试方法研究[J].电子测试,2010(01):38-43.

[8]王巍.高速芯片设计中的全速度(At-Speed)测试[J].集成电路应用,2002(01).

猜你喜欢
敏化电平时序
清明
冠心病穴位敏化现象与规律探讨
近5年敏化态与非敏化态关元穴临床主治规律的文献计量学分析
基于不同建设时序的地铁互联互通方案分析
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
NPC五电平Z源逆变器的设计研究
耦联剂辅助吸附法制备CuInS2量子点敏化太阳电池
5种天然染料敏化太阳电池的性能研究
基于三电平光伏并网逆变器控制系统的研究与实践