一种提高电路测试故障覆盖率的方法

文档序号:6860598阅读:754来源:国知局
专利名称:一种提高电路测试故障覆盖率的方法
技术领域
本发明涉及数字集成电路设计中的可测性设计(DFTDesign For Test)领域,确切地说,涉及一种提高电路测试故障覆盖率的方法。
数字集成电路的测试,通常分成功能测试(FUNCTIONAL TESTING)和生产测试(MANUFACTURING TESTING)两种。功能测试是从电路的功能方面进行测试,用于保证芯片电路设计的正确性;而生产测试则是从电路的结构方面考虑,用于保证芯片制造的质量。本文讨论有关生产测试(MANUFACTURINGTESTING)的内容,如非特别说明,下文中的“测试”都指生产测试。生产测试通常都由芯片制造商来完成,IC(Integrated Circuit)设计工程师则需要进行可测性设计,为生产商提供测试芯片内部的电路,为外部设备能够测试到电路的内部节点提供途径,为自动测试设备ATE(Automatic TestEquipment)提供测试向量(测试向量包括输入激励和输出期望值两部分)。全扫描技术是目前应用最广、对芯片进行测试可以达到最高的故障覆盖率的可测性设计技术。它通过将复杂的时序设计分成完全独立的组合电路模块进而来简化测试向量的产生(即通过扫描链在串行输入阶段将D触发器的Q端置为确定信号,在测试时不再产生时钟信号,这样电路中的触发器就可以不必考虑,仅仅将D触发器的Q端作为组合电路的输入信号端口,D触发器的D端作为组合电路的输出信号端口,整个电路就可以看作组合电路)。
在集成电路设计中,有时候要使用上升沿和下降沿双沿触发的电路,即一部分触发器是上升沿触发,而其它触发器则是下降沿触发。本文中的触发器专指D触发器,本发明提到的电路中的触发器有一半是上升沿触发,另一半是下降沿触发,这样电路就可以在同样的时钟频率下获得两倍的工作速度,此时,若使用通常的测试方法,对双沿触发电路采用同一测试时钟来产生测试向量,则产生的测试向量不是很准确,故障覆盖率会降低近一半。例如在美国专利第6,106,568号中就提到了一种在集成电路设计中常用的全扫描测试方法,这种测试方法如果使用上升沿在前的测试时钟,则电路中的下降沿触发器就不可测;如果使用下降沿在前的测试时钟,则电路中的上升沿触发器就不可测。
针对对双沿触发电路使用通常的全扫描测试方法,故障覆盖率会降低近一半的问题,本发明提供一种对双沿触发电路应用全扫描技术的方法,以使双沿触发电路的测试达到百分之百的故障覆盖率。
本发明的目的可以通过以下技术方案来实现一种提高电路测试故障覆盖率的方法,其特征在于,所述方法包括下列步骤(1)插入扫描链时,将所有的上升沿触发器定义成一条扫描链,所有的下降沿触发器定义成另一条扫描链,且两条扫描链不可以混合;(2)使用EDA设计工具进行增量测试①首先使用上升沿在前的测试时钟并对该上升沿在前的测试时钟产生测试向量,其中测试时钟由自动测试设备ATE产生,且将该测试时钟作为芯片的时钟信号,②再使用下降沿在前的测试时钟并对该下降沿在前的测试时钟产生测试向量,其中测试时钟由自动测试设备ATE产生,且将该测试时钟作为芯片的时钟信号;(3)将经上述步骤产生的测试向量送入自动测试设备ATE。
通过第(1)、(2)步就可以对双沿触发电路产生故障覆盖率达到百分之百的测试向量。由于使用了两个独立的扫描链(可以完成串行移位功能的触发器链),扫描链的长度缩短一半,对每个测试时钟完成测试所耗时间只有全部使用一个扫描链时所需时间的一半,因此总的测试时间不会增加。即按照上述步骤并应用已有的EDA(Electronic Design Automatic)电子设计自动化设计工具提供的功能,可缩短单个扫描链的长度,同时在不增加测试时间的条件下,能够保证双沿触发电路的测试达到百分之百的故障覆盖率。
下面结合附图和实施例对本发明作进一步详细的描述。


图1是本发明所提供的测试方法的流程图。
为了便于理解,在描述具体的实施例之前,先对全扫描测试的五个基本步骤作一个简单的介绍。一般全扫描测试可以分成五个基本步骤串行输入(scan-in data)、并行测量(parallel measure)、并行捕获(parallelcapture)、首位串行输出(first scan out)、串行输出数据(scan-out data)。
在测试过程中涉及四类数字信号基本输入信号、基本输出信号、虚拟基本输入信号、虚拟基本输出信号。基本输入信号由ATE产生,输入芯片所有输入端口;基本输出信号由芯片产生,从芯片输出端口直接输出到ATE中;虚拟基本输入信号由ATE产生,逐位输入到芯片的扫描输入端口,在时钟信号和扫描使能信号的作用下,串行输入到扫描链(可以完成串行移位功能的触发器链)上触发器的Q端,在测试分析过程中,虚拟基本输入信号被视为芯片组合电路的一部分输入信号,相对于基本输入信号而言,这类信号不是直接从芯片输入端口输入的,因而被称之为虚拟基本输入信号;虚拟基本输出信号是由芯片产生,且虚拟基本输出信号输入到触发器的D端,虚拟基本输出信号被视为芯片组合电路的一部分输出信号,相对于基本输出信号而言,这类信号不是直接从芯片输出端口输出的,因而被称之为虚拟基本输出信号。
串行输入通过扫描使能信号控制触发器工作于串行移位状态,经过N个时钟(假设扫描链上有N个触发器),就从芯片扫描输入端口SI(scan input)串行打入了确定的数据——虚拟基本输入信号(virtual primary input),从而实现了将所有的触发器置于确定状态。
并行测量扫描使能无效,电路工作于正常状态。此时从电路的输入端口送进基本输入信号(primary input),并且不产生时钟脉冲,因而触发器输出不变(保持串行打入的数据——虚拟基本输入信号)。电路稳定后,触发器的D端信号为虚拟基本输出信号(virtual primary output),从电路的基本输出端口可以测到基本输出信号(primary output)。这一阶段实际上可以看作“组合电路”的工作过程“组合电路”的输入信号是基本输入信号(已知)和虚拟基本输入信号(串行输入期间打入的已知信号),输出信号是基本输出信号(测得)和虚拟基本输出信号(这一步产生的未知信号)。
并行捕获电路仍然工作在正常状态下。ATE此时产生一个时钟脉冲,将上一步产生的触发器的D端的虚拟基本输出信号捕获到触发器的Q端。
首位串行输出扫描使能信号有效,触发器工作于串行输出方式,但ATE不产生时钟脉冲。此时从芯片扫描输出端口SO(scan output)可以得到目前为止唯一未知的信号——虚拟基本输出信号的第一位(扫描链上最后一个触发器的输出)。
串行输出电路工作于串行输出方式,产生N个时钟后,从SO(scanoutput)端口就得到虚拟基本输出信号的全部数据,同时从SI(scan input)端口打入下一个测试激励向量(测试信号)。
在全扫描测试中,触发器的Q端为确定的虚拟基本输入端,D端为虚拟基本输出端(即虚拟基本输入信号输入触发器的Q端,虚拟基本输出信号从触发器的D端输出),触发器可以看作是被置于芯片之外,这时就只要考虑芯片组合电路(触发器的Q端、D端看作芯片组合电路的一部分)。测试过程就是向芯片虚拟基本输入端口和芯片输入端口送数据,从芯片虚拟基本输出端口和芯片输出端口取得数据和期望值作比较(其中基本输入信号输入芯片输入端口,基本输出信号从芯片输出端口直接输出到ATE中)。
保证电路的可测性,实际上就是要保证能够正确地送入以上两类输入信号(虚拟基本输入信号、基本输入信号),并且正确读出以上两类输出信号(虚拟基本输出信号、基本输出信号)。
以下以Synopsys公司的提供的EDA设计工具DC为例,对本发明作详细的描述。
(1)插入扫描链时,将所有的上升沿触发器定义成一条扫描链,所有的下降沿触发器定义成另一条扫描链,且两条扫描链不可以混合,使用命令set_scan_path path1{ff1,ff2}将所有上升沿触发器定义成一条扫描链,使用命令set_scan_path path2{ff3,ff4}将所有下降沿触发器定义成另一条扫描链;(2)使用设计工具DC进行增量测试①设置增量测试参数,使用命令multi_pass_test_generation=true②首先使用上升沿在前的测试时钟,使用命令create_test_clock -p 100 -w{40 60}CLK(命令中-p 100用于将测试时钟周期定义为100纳秒,-w{40 60}用于将测试时钟波形定义为上升沿在第40纳秒处,下降沿在第60纳秒处)③对这一上升沿在前的测试时钟产生测试向量,使用命令create_test_patterns -out pass1
④再使用下降沿在前的测试时钟,使用命令create_test_clock -p 100 -w{60 40}CLK⑤对这一下降沿在前的测试时钟产生测试向量。
使用命令create_test_patterns -out pass2通过以上的步骤,就可以对双沿触发电路产生故障覆盖率达到百分之百的测试向量,再将经上述步骤产生的测试向量送入自动测试设备ATE便可得到测试结果。由于使用了两个独立的扫描链,扫描链的长度缩短一半,对每个测试时钟完成测试所耗时间只有全部使用一个扫描链时所需时间的一半,因此总的测试时间不会增加。
下面从全扫描的五个步骤说明以上双沿触发电路的测试方案1.输入阶段,在该阶段实际起作用的只是扫描链,ATE将虚拟基本输入信号串行输入到芯片的扫描链;只要将上升沿、下降沿触发的触发器严格分成两个扫描链,就能确保正确串行移位输入数据(即虚拟基本输入信号)。
2.并行测量阶段,基本输入信号是直接从输入端口送入,肯定正确;电路稳定后,基本输出信号是从输出端口直接测到,也有保证。
3.并行捕获阶段,是要将第2步产生的触发器的输入端信号正确地捕获到。如果测试时钟的上升沿在前,则所有上升沿触发的触发器都能取得正确数据(此时下降沿触发的触发器会取错数据);如果测试时钟的下降沿在前,则所有下降沿触发的触发器都能取得正确数据(此时上升沿触发的触发器会取错数据)。在我们的测试中,第一次使用上升沿在前的测试时钟,第二次使用下降沿在前的时钟,就能保证所有的虚拟基本输出信号都能够被正确捕获。
4.首位串行输出阶段,数据直接从串行输出端口读出,不会出错。
5.串行输出阶段,也仅仅是扫描链在工作,因为采用了上升沿、下降沿分开的两个扫描链,能够确保数据正确。
由以上说明可知,这一方案能够保证对双沿触发电路的测试达到百分之百的故障覆盖率。
本发明还可以运用在多时钟电路(可以有上升沿和下降沿触发并存)的可测性设计中。
我们可以使用多个扫描链来保证串行输入输出数据的正确性,再使用不同的时钟对各个扫描链分别保证并行捕获数据的正确性,应用增量测试方法,最终得到理想的故障覆盖率。
权利要求
1.一种提高电路测试故障覆盖率的方法,其特征在于所述方法包括下列步骤(1)插入扫描链时,将所有的上升沿触发器定义成一条扫描链,所有的下降沿触发器定义成另一条扫描链;(2)使用EDA设计工具进行增量测试①首先使用上升沿在前的测试时钟并对该上升沿在前的测试时钟产生测试向量,②再使用下降沿在前的测试时钟并对该下降沿在前的测试时钟产生测试向量;(3)将上述步骤产生的测试向量送入自动测试设备ATE。
2.如权利要求1所述的测试方法,其特征在于所述步骤(1)中的两个扫描链不可以混合。
3.如权利要求1所述的测试方法,其特征在于步骤(2)的第①、②步中所用的测试时钟由自动测试设备ATE产生,且将测试时钟作为芯片的时钟信号。
4.如权利要求1所述的测试方法,其特征在于步骤(2)的第①、②步在实际工作中可以根据实际需要和要求变换顺序。
全文摘要
一种提高数字集成电路测试故障覆盖率的方法,所述方法是在插入扫描链时,将所有的上升沿触发器定义成一条扫描链,所有的下降沿触发器定义成另一条扫描链,且两条扫描链不可以混合,随后使用EDA设计工具进行增量测试得到正确的测试向量,然后将得到的测试向量送入自动测试设备ATE。本发明可以使对双沿触发电路的测试达到百分之百的故障覆盖率。
文档编号H01L21/66GK1381878SQ0111464
公开日2002年11月27日 申请日期2001年4月18日 优先权日2001年4月18日
发明者金松 申请人:深圳市中兴集成电路设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1