CN114398848A - 一种测试向量生成方法、装置及存储介质 - Google Patents

一种测试向量生成方法、装置及存储介质 Download PDF

Info

Publication number
CN114398848A
CN114398848A CN202210167471.6A CN202210167471A CN114398848A CN 114398848 A CN114398848 A CN 114398848A CN 202210167471 A CN202210167471 A CN 202210167471A CN 114398848 A CN114398848 A CN 114398848A
Authority
CN
China
Prior art keywords
test
signal value
pin
netlist
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210167471.6A
Other languages
English (en)
Other versions
CN114398848B (zh
Inventor
钱静洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiuyi Semiconductor Technology Co ltd
Original Assignee
Wuxi Jiuyi Semiconductor Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Jiuyi Semiconductor Technology Co ltd filed Critical Wuxi Jiuyi Semiconductor Technology Co ltd
Priority to CN202210167471.6A priority Critical patent/CN114398848B/zh
Publication of CN114398848A publication Critical patent/CN114398848A/zh
Application granted granted Critical
Publication of CN114398848B publication Critical patent/CN114398848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/323Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/333Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本申请公开了一种测试向量生成方法、装置及存储介质,涉及芯片领域,方法包括:获取测试芯片的测试网表,测试网表中包含测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚;根据测试网表确定测试芯片的目标测试类型和测试管脚的信号值,信号值用于对测试芯片的测试节点进行故障检测;基于测试管脚和测试值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。本发明通过标定测试网表中测试节点的方式来生成测试节点的测试向量,相比于根据测试管脚的数量来检测测试芯片,可以实现对测试向量的去冗余,且可以减少检测次数,提高芯片检测的测试效率。

Description

一种测试向量生成方法、装置及存储介质
技术领域
申请实施例涉及芯片领域,特别涉及本一种测试向量生成方法、装置及存储介质。
背景技术
测试向量就是用来测试芯片内部扫描链的一种激励信号。在芯片设计阶段,为了确保芯片的功能性测试,会在芯片内部植入一些特殊结构的逻辑电路,以便在设计完成后进行电路测试。例如扫描链(Scan Chain)等,工程师可以根据通过测试机输入的测试向量和输出结果来判断芯片的性能和故障,防止损坏的芯片流入下一个阶段而造成更大的损失。
相关技术中,为了达到有效的测试覆盖率,通常会根据测试芯片的输入管脚数量生成测试量。例如测试芯片有10个输入管脚,最简单且快捷的方法就是对这10个管脚依次输入0,1这两个值,然后得到对应的输出值,相应会产生2^10次方条测试向量来满足测试芯片的故障覆盖率。随着芯片工艺日趋变小,芯片中用于实现功能逻辑的门电路的数目成几何级的增长,测试机的检测时间会变长,检测效率低下,且投入成本也会相应增多。
发明内容
本申请提供了一种测试向量生成方法、装置及存储介质,解决现有对测试芯片的测试向量过多而降低检测效率的问题。
一方面,提供一种测试向量生成方法,所述方法包括:
获取测试芯片的测试网表,所述测试网表中包含所述测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚,所述测试节点为逻辑电路中相邻两个逻辑门电路的连接点;
根据所述测试网表确定所述测试芯片的目标测试类型和测试管脚的信号值,信号值用于对所述测试芯片的所述测试节点进行故障检测;
基于测试管脚和信号值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。
另一方面,提供了一种测试向量生成装置,所述装置包括:
获取模块,用于获取测试芯片的测试网表,所述测试网表中包含所述测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚,所述测试节点为逻辑电路中相邻两个逻辑门电路的连接点;
确定模块,用于根据所述测试网表确定所述测试芯片的目标测试类型和测试管脚的信号值,信号值用于对所述测试芯片的所述测试节点进行故障检测;
生成模块,用于基于测试管脚和信号值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述测试向量生成方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述任一方面所述的测试向量生成方法。
本申请提供的技术方案带来的有益效果至少包括:将传统以芯片管脚为单位生成测试向量,替换为以扫描链中的测试节点为检测目标进行测试,从而生成以检测节点为单位的测试向量,不仅可以涵盖扫描链所有的扫描测试,相比于根据输入管脚数量机械生成测试向量的方式,可以大幅度减少生成数量,且排除了数据冗余,在后续检测过程中可以缩短检测时间,大幅提高检测效率。
附图说明
图1是本申请实施例提供的测试向量生成方法的流程图;
图2是本申请另一实施例提供的测试向量生成方法的流程图;
图3是本申请实施例提供的扫描链的简化示意图;
图4是本申请另一实施例提供的测试向量生成方法的流程图;
图5是本申请实施例提供的测试向量生成方法的算法流程图;
图6示出了本申请一个实施例提供的测试向量生成装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
可测试性设计(DFT,Design for Test)是一种集成电路领域的设计技术,它将一些特殊结构在设计阶段植入电路,以便在设计完成后进行电路测试。可测试性设计中的扫描链技术可以在短时间内检查芯片内部时序电路是否正常,是目前芯片测试领域的主流技术。
实践中,芯片设计者会为芯片制定特殊的用于测试功能完备性的测试向量。这种测试向量仅能测试此种芯片的功能是否完好,其实质是对芯片中用于功能相关的电路进行了测试,但对于芯片中其他部分的电路没有办法实现百分百的覆盖。如果要求芯片设计者编写出所有的测试向量,既费时,又不能保证可以测试芯片中所有的数字逻辑。例如对于一个拥有1647个输入管脚的测试芯片,如果不采用相应的测试能够生成决策,对每一个输入管脚输入0,1,则共计需要2^1647个向量才能满足对故障的全面检测。由于此芯片中还有46000个scan cell,相当于46000个等价的输入管脚,最终的向量数过于庞大。
但是在实际的操作过程中,在真实的2^47647个测试向量中,并不是每一条向量都能测试到扫描链的所有故障点,且有一些测试向量可以测试到相同的故障,即这些测试向量存在大量的数据冗余,对于冗余的测试向量是可以进行合并的,以减少检测的数据量。
本申请实施例提供的方法不以芯片管脚为单位生成测试向量,而是以扫描链中的测试节点为检测目标进行测试,从而生成以检测节点为单位的测试向量,不仅可以涵盖扫描链所有的扫描测试,相比于根据输入管脚数量机械生成测试向量的方式,可以大幅度减少生成数量,且排除了数据冗余,在后续检测过程中可以缩短检测时间,大幅提高检测效率。
如图1所示,为本申请实施例提供的测试向量生成方法的流程图,包括如下步骤:
步骤101,获取测试芯片的测试网表,测试网表中包含测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚,测试节点为逻辑电路中相邻两个逻辑门电路的连接点。
测试网表是针对特定的测试芯片建立的数据库网络,其中包括了测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚。扫描链的逻辑电路中包含大量逻辑门电路,如与门、或门、非门、与非门、同或门、异或门以及其他的触发器结构等。测试节点为逻辑电路中相邻两个逻辑门电路的连接点。对于测试芯片来说,包含有大量的扫描链,每条扫描链中都通过逻辑门电路组成,而测试网表则将逻辑电路结构转换为表格数据进行存储,便于计算机读取和判断等。
步骤102,根据测试网表确定测试芯片中测试节点的目标测试类型和测试管脚的信号值,信号值用于对测试芯片的测试节点进行故障检测。
对于扫描链的检测包含多种测试类型,不同测试类性下检测同一故障点的测试向量并不相同。因此在生成测试向量前需要确定目标测试类型,在选中测试节点后和对该测试节点的目标检测类型后,进一步再确定出测试管脚的信号值,每个测试节点都需要多个测试管脚设定相应的信号值,多个测试管脚的信号值组合后形成该测试节点的待测试向量。其中,测试管脚输入的信号值用于对测试芯片的测试节点进行故障检测。
步骤103,基于测试管脚和测试值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。
在确定出各个测试管脚的信号值后,对生成的待测试向量进行逻辑仿真,逻辑仿真基于测试网表中的真值表进行判断,目的为确认该待测试向量是否能够在选中的测试节点处产生与之对应的目标值,当仿真输出值满足真值表要求时,则根据确定的信号值生成测试管脚的目标向量。需要说明的是,真值表中包含各种目标检测类型和相应测试节点是输出值,在判断满足条件的情况确定各个测试管脚输入信号值的有效性,从而生成测试向量,进一步地,由于芯片通常具有海量的测试向量,其中必然存在较多的测试节点具有相同的测试向量,在批量检测过程中,可以根据该测试向量同时检测多个测试节点,以此减少检测的次数。
通过遍历测试网表中所有的检测节点,对每个检测节点执行上述过程,生成以检测节点为单位的测试向量,从而达到对扫描链的全面检测。在实际操作过程中,通过此方式生成的测试向量的数量小于以测试管脚逐个检测的数量,且在后续大批量检测过程中,继续根据确定的测试向量检测每个芯片的扫描链,可以有效减少测试时间,提高检测效率。
图2是本申请另一实施例提供的测试向量生成方法的流程图,包括如下步骤:
步骤201,获取测试芯片的测试网表,测试网表中包含测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚。
步骤202,确定测试芯片的目标测试类型,并从测试网表中选择第一测试节点。
上述说到,扫描链检测包括多种测试类型,如stuckat-0类型和stuckat-1类型,两种不同类型分别表示对扫描链的两种检测方式,测试芯片的不同功能。具体的目标测试类型可根据实际需要人为选择,选定目标测试类型后,再从测试网表中选择第一测试节点,第一测试节点是测试网表中标记的用于检测逻辑电路的第一个检测节点。测试网表中包含所有的检测节点,可以按照标定的逻辑顺序依次选择检测节点进行逻辑仿真生成测试向量。
步骤203,根据目标测试类型确定第一检测节点对应的第一期望信号值。
目标检测类型具体可分为第一检测类型和第二检测类型,第一检测类型为stuckat-0类型,第二检测类型为stuckat-1类型。当选中第一检测类型后,第一检测节点的第一期望信号值设置为高电平(信号值为1),当选中第二检测类型后,第一检测节点的第一期望信号值设置为低电平(信号值为0)。期望信号值是在相应的目标检测类型下,选中的检测节点经过测试管脚的激励后形成的信号值能够符合检测要求。
如图3为扫描链的简化示意图,其中包括多个逻辑门电路和输入测试管脚以及检测输出,检测节点用N表示,例如N2表示U3(或门)和U5(与门)之间的检测节点。在选定N2作为第一检测节点和第一检测类型后,测试管脚A、B、C和D输入的信号值应在此处激励出高电平信号。
步骤204,根据第一期望信号值和目标测试类型确定第一测试管脚的第一信号值,第一测试管脚是用于确定和激发故障的初始管脚。
在确定目标测试类型和第一期望信号值后,则需要确定出第一测试管脚的第一信号值,第一测试管脚是用于确定和激发故障而选定的初始管脚。其中,初始管脚的选定也可以根据测试网表中标定的管脚顺序依次选定。同样以图3为例,假设选定第二检测类型和N2点后,为了确保在N2处产生低电平V(N2)=0,且该信号需要被传递到P处被检测,因而需要在net N3这里的值设为1,进而需要将测试管脚D设为1,才能确保产生正确的输出。这里的初始选择的测试管脚D即为第一测试管脚,在一种可能的实施方式中,第一测试管脚的选取可以根据检测节点位置和测试管脚之间的距离确定。在设计测试网表的时候,根据检测节点到各个测试管脚之间需要经历的门级电路的数量决定,按照从多至少的顺序排列。
步骤205,根据第一检测节点和测试网表的网表结构确定第二测试管脚,并将第二测试管脚的第二信号值设置为与第一期望信号值相同。
由于本方法中设置信号值的方式采用决策树算法进行设定,因而在初始阶段需要根据目标设定类型选定设定值,作为初始决策,在往后的循环过程中,根据初始决策的决策结果进行后续决策。所以将第二测试管脚的测试值设定为与第一期望信号值相同,也就是当V(N2)=0时,测试管脚C设定为0,然后判断能否产生正确的激励信号。由于N2的期望信号值需要被传递到P处,且N2这里需要被设值0,而U3又是一个OR门,所以N1需要被设为0,进而导致管脚C需要被设为1,也就是测试管脚C设定为0无法产生正确的激励信号,则进行一次调整,即设置为1。此步骤为测试的初始阶段,为后续的决策算法提供决策依据。随后再依次设定管脚B和管脚A,完成一次设定。该设定会产生历史决策表,便于后续决策。后续过程的决策则需要按照决策树算法进行确定。
步骤206,选定测试管脚并获取对应历史决策表,通过决策树算法确定测试管脚的信号值,记录测试管脚的决策情况。
在经过步骤205之后的过程中,当计算机设备选择检测节点之后,会获取历史决策表中记录的决策,根据决策树算法确定测试管脚的信号值。如图4所示,步骤206还包括如下步骤:
步骤206A,获取当前选定的测试管脚的历史决策表,确定在目标测试类型下,测试管脚分别以低电平信号值和高电平信号值作为输入激励时,通过逻辑仿真的次数。
历史决策表包括对应测试管脚在历史决策中各种信号值和决策结果的次数。其中,包括该检测节点设置高/低电平后产生期望信号值的次数以及未产生期望信号值的次数。产生期望信号值的次数记为成功次数,未产生期望信号值的次数记为失败次数。例如(A,0,11,2)表示测试管脚A在历史决策过程中,设置0(低电平)成功的次数为11次,失败的次数为2次。对于每个测试管脚都建立历史决策情况,历史决策情况可以作为后续决策的依据,在对其他测试节点进行决策过程中,根据该测试管脚的决策情况选择信号值。本方案设置的决策树算法,在目标测试类型的情况下,首先获取测试管脚分别以低电平信号值和高电平信号值作为输入激励时,逻辑仿真成功的次数。
步骤206B,将通过逻辑仿真次数高的电平信号值作为目标设定值,并将当前选定的测试管脚的信号值设置为目标设定值。
鉴于扫描链的电路结构和逻辑门电路的结构特性,对于选定的测试节点,当该测试节点设置低电平成功的次数高于高电平成功次数,则将低电平设置为该测试管脚的目标设定值。反之则将高电平设置为目标设定值。如(A,0,11,2)表示设置低电平成功次数为11次,失败2次,则此次决策将测试管脚D设定为低电平。
步骤206C,将本次决策情况更新至历史决策表中。
在做出决策后,将本次对该测试节点的信号值记录至历史决策表中,以便后续的决策。
步骤207,通过真值表对已确定信号值的测试管脚进行逻辑仿真并通过测试网表判断是否存在逻辑冲突。
在确定测试管脚的信号值后,进一步对其进行逻辑仿真,逻辑仿真的目的为判断是否能够在测试节点处激励出与期望信号值相同的信号,且该信号值能否传递到扫描链的输出位置被检测。其可以通过真值表进行逻辑仿真,真值表中记录有逻辑门电路的判断逻辑,并根据输入的电平信号判断门级输出。例如,与门的运算逻辑只有在两个高电平输入时,才能输出高电平,其余的输入方式只能输出低电平。计算机设备根据真值表的运算规则和决策的信号值进行逻辑仿真,判断是否存在逻辑冲突。逻辑冲突用于验证扫描链中测试节点经过测试管脚设置的信号值激励后的信号值与期望信号值是否相同,以及该期望信号值能否传递到扫描链的输出。
步骤208,响应于逻辑仿真存在逻辑冲突,跳过选中测试管脚,继续根据测试网表选择下一测试节点,并再次根据决策树算法设置对应信号值进行逻辑仿真。
如逻辑仿真的结果为低电平,而期望电平为高电平,则说明存在逻辑冲突,此次做出的决策无法产生正确激励,应再次更换电平信号,并再次进行逻辑仿真。例如,决策结果设置的测试管脚为1,且存在逻辑冲突,应重新将该测试管脚设置为0,并再次进行逻辑仿真。若仍存在逻辑冲突,则将此点确定为不可观测的检测节点。因继续根据测试网表选择下一测试管脚,并按照决策树算法设置对应信号值进行逻辑仿真。
步骤209,响应于逻辑仿真不存在逻辑冲突,将本次选中的测试管脚以及设置的信号值进行保存,用于生成待测试向量。
如逻辑仿真的结果和期望电平信号值相同,则说明该测试管脚设置的信号值满足逻辑仿真,即不存在逻辑冲突,对应将本次选择的测试管脚和信号值进行保存,生成待测试向量,待测试向量需要进一步模拟故障检测才能确保符合检测需求。
步骤210,根据选择的测试节点、测试网表、已确定测试管脚和信号值进行模拟故障检测,并根据检测输出值确定测试管脚的测试向量。
模拟故障检测是对遍历所有测试管脚后生成的待测试向量进行模拟检测的过程。该过程需要测试节点、测试网表、已确定测试管脚和信号值共同决定。
如图4所示,该过程包括如下步骤:
步骤210A,根据已确定测试管脚和信号值生成待测试向量,并作为扫描链的输入激励。
当针对测试节点涉及到的测试管脚全部确定信号值后(存在逻辑冲突的测试管脚不设置信号值),将对应测试管脚设置相应的信号值生成待测试向量,作为扫描链的输入激励。例如,经过遍历测试管脚后确定的待测试向量为(0,1,1,0),表示测试管脚A、B、C、D输入的激励信号依次为低电平、高电平、高电平和低电平。
步骤210B,分别将测试芯片设置为有故障和无故障状态,并检测两种状态下输入待测试向量的输出激励。
针对特定的测试芯片,在进行故障检测时,分别将测试芯片设置为有故障和无故障状态,两种检测状态的设置是为了验证两种情况下该待测试向量的输出激励是否满足检测要求。需要说明的是,该过程同样为模拟检测过程,通过特定的手段模拟出故障问题,然后基于模拟故障情况下的输出进行判断。该输出对应为扫描链的结果输出。如图3中的管脚P表示输出管脚,通过检测管脚P的电平信号获取两种状态下的输出激励。例如,将故障模拟输出用dP表示,dP(A,B,C,D)表示测试芯片不存在故障,dP’(A,B,C,D)表示测试芯片存在故障,dP(A,B,C,D)=0表示在无故障状态下的输出管脚的输出激励为低电平,dP(A,B,C,D)=1表示在无故障状态下的输出管脚的输出激励为高电平;同理,dP’(A,B,C,D)=0表示在有故障状态下输出管脚的输出激励为低电平,对应的dP’(A,B,C,D)=1表示在有故障状态下的输出管脚的输出激励为高电平。
步骤210C,响应于扫描链在有故障和无故障状态下输出激励的异或结果为1,则确定待测试向量满足扫描链检测条件,生成检测节点的测试向量。
对于任意选定测试节点和目标检测类型的待测试向量,需要满足如下公式:dP(A,B,C,D)⊕dP’(A,B,C,D)=1,即表示该待测试向量在有故障和无故障状态下输出激励的异或结果为1。也就是该待测试向量满足扫描链检测条件,可以生成该检测节点的测试向量。但当两种状态下异或的结果为0,则说明两种该状态下的输出激励值相同,也就是该待测试向量无法对存在故障和不存在故障进行区分,标定的该测试节点不可测。
进一步地,生成该点的测试向量后,继续遍历和选中其他的检测节点,并按照上述步骤进行操作,生成关于所有测试节点的测试向量(除不可测节点),由于测试向量较多,其中必然存在大量重复的测试向量,也即存在至少两个测试节点的测试向量完全相同,也就是测试向量存在冗余,是可以合并处理的,当测试管脚按照合并处理的测试向量进行输入时,可以表示完成对多个测试节点的检测。
此方案对一个拥有1647个输入管脚的测试芯片进行对比,如不采用决策树算法,对每一个输入管脚输入0,1,一共需要2^1647个向量实现对故障的全面检测。但采用本方案生成测试向量后,最终只需要977条向量就可以覆盖95.09%的故障检测。对于大批量检测芯片时,可以大幅度减少检测时间,提高检测效率。
综上所述,本申请实施例通过将芯片的扫描链转化为测试网表进行存储,并以测试节点为单位,结合决策树算法来生成各个测试管脚的信号值,决策时根据测试管脚的历史决策表为依据来选择信号值,并通过逻辑仿真来生成待测试向量,并通过故障仿真来验证待测试向量的正确性;此外,本方案通过遍历,将相同测试向量的检测点进行合并处理,进一步压缩的测试向量的数量,实现了去冗余化,有效减少了扫描链的测试向量的数量,缩短检测时间,提高测试效率。
图5是本申请实施例提供的测试向量生成方法的算法流程图。该方法包括如下步骤:
步骤501,遍历测试网表。
步骤502,选取第i检测节点以及目标测试类型。
当计算机设备按照测试网表中标定的检测节点的顺序选取到第i检测节点时,确定第i检测节点的目标检测类型。目标检测类型包括第一检测类型(stuckat-0类型)和第二检测类型(stuckat-1类型)。
步骤503,设置第i检测节点的第i期望信号。
第i检测节点的第i期望信号根据选择的目标检测类型决定,当选择stuckat-0类型时,第i期望信号为1;当选择stuckat-1类型时,第i期望信号为0。
步骤504,根据决策树算法决策第j测试管脚的电平信号值。
每轮选取检测节点后,都需要对所有的测试管脚重新进行决策判断。在决策过程中,对于决策的第j测试管脚,需要从历史决策表中获取到该测试管脚在历史过程中的决策情况,即每种电平信号逻辑仿真成功和失败的次数,选择成功次数较多的电平信号作为目标设定值。其中j是大于0的正整数,例如芯片包含m个测试管脚,则j取值为包括1到m之间的所有正整数。
步骤505,判断逻辑仿真判断是否存在逻辑冲突。
逻辑判断时,可以根据真值表或者其他算法,如事件驱动算法进行计算,判断是否存在逻辑冲突。判断是否存在逻辑冲突的过程就是验证第j测试管脚根据第j决策的信号值作为激励输入时,能否在第i检测点激励出第i期望信号,且该第i期望信号能够传递到输出管脚并被检测到。当判断结果不存在逻辑冲突时,执行步骤506,当判断结果存在逻辑冲突时,跳转到步骤507继续执行。
步骤506,记录第j测试管脚和电平信号值,更新历史决策表。
当判断结果不存在逻辑冲突时,记录并保存本次(第j次)决策中第j测试管脚和电平信号值,同时更新历史决策表。当计算机根据历史决策表做出第j决策后,对应将本次决策情况更新到历史决策表中,如第j-1次决策测试管脚D的决策情况为(D,1,67,11),表示测试管脚在目标测试类型下设置高电平成功次数为67次,失败次数为11次,而本次(第j次)决策结果为设置高电平,也就是更新为(D,1,68,11)。
步骤507,改变电平信号值。
当判断结果存在逻辑冲突时,表明根据决策树算法决策的结果有误,应重新改变第j测试管脚的电平信号值,如原先设置为1(高电平),则应该修改为0(低电平)。
步骤508,判断逻辑仿真判断是否存在逻辑冲突。
改变电平信号值后再次判断是否存在逻辑冲突。若不存在逻辑冲突则跳转至步骤506继续执行,若仍存在逻辑冲突,则跳转至步骤508执行。
步骤509,舍弃第j测试管脚。
当两次选择的电平信号值都存在逻辑冲突,表明该检测节点属于不可测节点,无法通过测试向量定位故障位置。跳转至步骤513执行。
跳过本次测试管脚,继续根据测试网表选择下一测试管脚(第j+1测试管脚)继续进行决策,跳转至步骤504继续执行,同时将历史决策表更新,如(D,1,67,11)更新为(D,1,67,12)。
步骤510,判断是否遍历所有测试管脚。
判断是否完成对所有测试管脚的决策,当未完成所有测试管脚的决策时,继续跳转至步骤504继续选择下一测试管脚(第j+1测试管脚)继续执行决策;当完成所有测试管脚的决策时,生成待测试向量,并跳转至步骤510执行。
步骤511,判断故障检测结果为1。
故障检测即为设置有故障和无故障两种状态下,分别检测扫描链的输出激励,当两个输出激励信号的异或运算结果为1,则说明待测试向量满足扫描链检测条件,可以生成第j测试管脚的测试向量,跳转至步骤512执行。若检测结果不为1,则说明该待测试向量满足扫描链检测条件。跳转至步骤513执行。
步骤512,保存第j测试管脚和电平信号值,生成测试向量。
步骤513,判断是否遍历所有测试节点。
当检测已遍历所有的测试节点后,则退出程序,完成测试向量的生成工作,继续对相同测试向量的检测节点进行合并,以便后续减少对芯片的检测次数。示意性的,合并完成后获得k个互不相同的测试向量,且不同的测试向量分别对应扫描链中一个或多个测试节点。
示意性的,假设测试节点U3的测试向量为(U3,1,1,0,1,0,1),测试节点U9的测试向量为(U9,1,1,0,1,0,1),说明两个测试节点的测试向量是相同的,在进行测试时,仅需要进行以此检测即可确定U3和U9,因而可以对其进行合并处理为(U3U9,1,1,0,1,0,1),表示合并后的目标测试向量。通过记录并保存该测试节点和测试向量,在后续检测过程中,直接根据去冗余后的测试向量进行检测,而无需根据测试管脚的数量穷举所有可能的电平信号。其中,k是小于n的正整数。当判断未遍历完所有测试节点的时,继续跳转至步骤502执行,直至所有检测节点全部遍历并生成测试向量。在实际芯片内部,海量的测试节点会存在大量相同测试向量,通过对其去冗余化后,相比于按照测试管脚生成测试向量的方式,其数量可以压缩为原来的0.1%-2%,上述实施例中提到的2^47647个测试向量中,最终经过压缩后仅需977条向量就可以覆盖95.09%的故障,其检测效率可大幅度提高。
图6示出了本申请一个实施例提供的测试向量生成装置的结构框图。该装置包括:
获取模块601,用于获取测试芯片的测试网表,所述测试网表中包含所述测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚,所述测试节点为逻辑电路中相邻两个逻辑门电路的连接点;
确定模块602,用于根据所述测试网表确定所述测试芯片的目标测试类型和测试管脚的信号值,信号值用于对所述测试芯片的所述测试节点进行故障检测;
生成模块603,用于基于测试管脚和信号值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。
本申请实施例中,还提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现上述各个方法实施例提供的测试向量生成方法。
以上对本发明的较佳实施例进行了描述;需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容;因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (10)

1.一种测试向量生成方法,其特征在于,所述方法包括:
获取测试芯片的测试网表,所述测试网表中包含所述测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚,所述测试节点为逻辑电路中相邻两个逻辑门电路的连接点;
根据所述测试网表确定所述测试芯片中测试节点的目标测试类型和测试管脚的信号值,信号值用于对所述测试芯片的所述测试节点进行故障检测;
基于测试管脚和信号值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述测试网表确定所述测试芯片的目标测试类型和测试管脚的测试值,包括:
确定所述测试芯片的所述目标测试类型,并从所述测试网表中选择第一测试节点,所述第一测试节点为所述测试网表中标记的用于检测逻辑电路的检测节点;
根据所述目标测试类型确定所述第一检测节点对应的第一期望信号值;其中,所述第一期望信号值为判断所述扫描链的结构及功能而标定的信号值;
根据所述第一期望信号值和所述目标测试类型确定第一测试管脚的第一信号值,所述第一测试管脚是用于确定和激发故障的初始管脚。
3.根据权利要求2所述的方法,其特征在于,所述确定第一测试管脚的第一信号值后,所述方法还包括:
根据所述第一检测节点和所述测试网表的网表结构确定第二测试管脚,并将所述第二测试管脚的第二信号值设置为与所述第一期望信号值相同。
4.根据权利要求3所述的方法,其特征在于,所述基于测试管脚和测试值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,包括:
选定测试管脚并获取对应历史决策表,通过决策树算法确定测试管脚的信号值,记录测试管脚的决策情况;所述历史决策表包括对应测试管脚在历史决策中各种信号值和决策结果的次数;
通过真值表对已确定信号值的测试管脚进行逻辑仿真,并通过所述测试网表判断是否存在逻辑冲突;所述逻辑冲突用于验证扫描链中测试节点经过测试管脚设置的信号值激励后的信号值与期望信号值是否相同,以及该期望信号值能否传递到所述扫描链的输出;
响应于逻辑仿真存在逻辑冲突,跳过选中测试管脚,继续根据所述测试网表选择下一检测节点,并再次根据决策树算法设置对应信号值进行逻辑仿真;
响应于逻辑仿真不存在逻辑冲突,将本次选中的测试管脚以及设置的信号值进行保存;
根据选择的测试节点、所述测试网表、已确定测试管脚和信号值进行模拟故障检测,并根据检测输出值确定测试管脚的所述测试向量。
5.根据权利要求1至4任一所述的方法,其特征在于,所述扫描链的目标测试类型至少包括第一检测类型和第二检测类型,所述第一检测类型为stuckat-0类型,所述第二检测类型为stuckat-1类型,不同测试类型分别用于表述测试芯片的不同功能;
作用于测试管脚的信号值分为高电平信号值和低电平信号值,高电平信号值设为1,低电平信号值设为0,所述第一测试类型对应的第一期望信号为高电平信号,所述第二测试类型对应的第一期望信号为低电平信号。
6.根据权利要求5所述的方法,其特征在于,所述根据选择的测试节点、所述测试网表、已确定测试管脚和信号值进行模拟故障检测,并根据检测输出值确定测试管脚的所述测试向量,包括:
根据所述已确定测试管脚和信号值生成待测试向量,并作为所述扫描链的输入激励;其中,存在逻辑冲突的测试管脚的信号值为任意值;
分别将所述测试芯片设置为有故障和无故障状态,并检测两种状态下输入所述待测试向量的输出激励;
响应于所述扫描链在有故障和无故障状态下输出激励的异或结果为1,则确定所述待测试向量满足扫描链检测条件,生成所述检测节点的所述测试向量。
7.根据权利要求6所述的方法,其特征在于,所述通过决策树算法确定测试管脚的信号值,记录测试管脚的决策情况,包括:
获取当前选定的测试管脚的所述历史决策表,确定在所述目标测试类型下,所述测试管脚分别以低电平信号值和高电平信号值作为输入激励时,通过逻辑仿真的次数;
将通过逻辑仿真次数高的电平信号值作为目标设定值,并将当前选定的所述测试管脚的信号值设置为所述目标设定值;
将本次决策情况更新至所述历史决策表中。
8.根据权利要求4所述的方法,其特征在于,所述根据检测输出值确定测试管脚的测试向量后,所述方法还包括:
遍历所述测试网表,将所述测试网表中第二测试节点至第n测试节点的分别进行故障检测,并在满足扫描链检测条件的情况下生成所述测试向量;其中,n为正整数;
将具有相同电平信号值的测试向量和对应的测试节点进行合并处理,获得k个电平信号值互不相同的所述目标测试向量,并将所述目标测试向量进行保存;其中,k是小于n的正整数。
9.一种测试向量生成装置,其特征在于,所述装置包括:
获取模块,用于获取测试芯片的测试网表,所述测试网表中包含所述测试芯片的扫描链中所有逻辑电路的测试节点及对应的测试管脚,所述测试节点为逻辑电路中相邻两个逻辑门电路的连接点;
确定模块,用于根据所述测试网表确定所述测试芯片的目标测试类型和测试管脚的信号值,信号值用于对所述测试芯片的所述测试节点进行故障检测;
生成模块,用于基于测试管脚和信号值进行逻辑仿真,根据仿真输出值生成测试管脚的测试向量,并对具有相同测试向量的所述测试节点进行合并,获得合并后的目标测试向量。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的测试向量生成方法。
CN202210167471.6A 2022-02-23 2022-02-23 一种测试向量生成方法、装置及存储介质 Active CN114398848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210167471.6A CN114398848B (zh) 2022-02-23 2022-02-23 一种测试向量生成方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210167471.6A CN114398848B (zh) 2022-02-23 2022-02-23 一种测试向量生成方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN114398848A true CN114398848A (zh) 2022-04-26
CN114398848B CN114398848B (zh) 2024-06-18

Family

ID=81234595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210167471.6A Active CN114398848B (zh) 2022-02-23 2022-02-23 一种测试向量生成方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114398848B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115684895A (zh) * 2022-12-29 2023-02-03 摩尔线程智能科技(北京)有限责任公司 芯片可测性设计测试方法、测试平台及其生成方法及装置
CN116106729A (zh) * 2023-02-10 2023-05-12 无锡玖熠半导体科技有限公司 基于代价损失因子的扫描链及组合逻辑故障诊断方法
WO2024027471A1 (zh) * 2022-08-04 2024-02-08 华为技术有限公司 测试单元的方法和相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101413990A (zh) * 2008-12-03 2009-04-22 北京大学 一种现场可编程门阵列的测试方法及系统
US20090210761A1 (en) * 2008-02-15 2009-08-20 Forlenza Donato O AC Scan Diagnostic Method and Apparatus Utilizing Functional Architecture Verification Patterns
US9311444B1 (en) * 2014-07-10 2016-04-12 Sandia Corporation Integrated circuit test-port architecture and method and apparatus of test-port generation
US20180285483A1 (en) * 2017-04-04 2018-10-04 Secure-Ic Sas Device and method for detecting points of failures
CN112417798A (zh) * 2020-11-27 2021-02-26 成都海光微电子技术有限公司 一种时序测试方法、装置、电子设备及存储介质
CN112668264A (zh) * 2020-12-30 2021-04-16 西安紫光国芯半导体有限公司 3d芯片的电源网络验证方法及相关设备
CN113435152A (zh) * 2021-07-06 2021-09-24 无锡玖熠半导体科技有限公司 基于扫描链结构的测试向量自动生成方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210761A1 (en) * 2008-02-15 2009-08-20 Forlenza Donato O AC Scan Diagnostic Method and Apparatus Utilizing Functional Architecture Verification Patterns
CN101413990A (zh) * 2008-12-03 2009-04-22 北京大学 一种现场可编程门阵列的测试方法及系统
US9311444B1 (en) * 2014-07-10 2016-04-12 Sandia Corporation Integrated circuit test-port architecture and method and apparatus of test-port generation
US20180285483A1 (en) * 2017-04-04 2018-10-04 Secure-Ic Sas Device and method for detecting points of failures
CN112417798A (zh) * 2020-11-27 2021-02-26 成都海光微电子技术有限公司 一种时序测试方法、装置、电子设备及存储介质
CN112668264A (zh) * 2020-12-30 2021-04-16 西安紫光国芯半导体有限公司 3d芯片的电源网络验证方法及相关设备
CN113435152A (zh) * 2021-07-06 2021-09-24 无锡玖熠半导体科技有限公司 基于扫描链结构的测试向量自动生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
代鸣扬,等: "基于SerDes系统芯片边界扫描测试设计与电路实现", 《南京邮电大学学报》, 28 February 2018 (2018-02-28), pages 91 - 97 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024027471A1 (zh) * 2022-08-04 2024-02-08 华为技术有限公司 测试单元的方法和相关装置
CN115684895A (zh) * 2022-12-29 2023-02-03 摩尔线程智能科技(北京)有限责任公司 芯片可测性设计测试方法、测试平台及其生成方法及装置
CN116106729A (zh) * 2023-02-10 2023-05-12 无锡玖熠半导体科技有限公司 基于代价损失因子的扫描链及组合逻辑故障诊断方法
CN116106729B (zh) * 2023-02-10 2024-06-07 无锡玖熠半导体科技有限公司 基于代价损失因子的扫描链及组合逻辑故障诊断方法

Also Published As

Publication number Publication date
CN114398848B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
CN114398848B (zh) 一种测试向量生成方法、装置及存储介质
US5640403A (en) Fault diagnosis method for a sequential circuit
US5517637A (en) Method for testing a test architecture within a circuit
US7039845B2 (en) Method and apparatus for deriving a bounded set of path delay test patterns covering all transition faults
US10509072B2 (en) Test application time reduction using capture-per-cycle test points
US7337379B2 (en) Apparatus and method for diagnosing integrated circuit
US8332715B2 (en) Test pattern generating method, device, and program
US7228262B2 (en) Semiconductor integrated circuit verification system
US7096397B2 (en) Dft technique for avoiding contention/conflict in logic built-in self-test
CN117852476B (zh) 基于不完备算法进行仿真的方法和装置
US20040204895A1 (en) Method for determining the impact on test coverage of scan chain parallelization by analysis of a test set for independently accessible flip-flops
US6721914B2 (en) Diagnosis of combinational logic circuit failures
Huang Dynamic learning based scan chain diagnosis
US5566187A (en) Method for identifying untestable faults in logic circuits
CN101315412A (zh) 一种扫描链故障诊断方法及系统
US10963612B2 (en) Scan cell architecture for improving test coverage and reducing test application time
US6532571B1 (en) Method to improve a testability analysis of a hierarchical design
US6681357B2 (en) MISR simulation tool for memory BIST application
KR100901522B1 (ko) 심볼릭 시뮬레이션을 이용한 스캔 체인 고장 진단 방법 및장치
US7024327B1 (en) Techniques for automatically generating tests for programmable circuits
US6876934B2 (en) Method for determining fault coverage from RTL description
US11092645B2 (en) Chain testing and diagnosis using two-dimensional scan architecture
Lin et al. On achieving maximal chain diagnosis resolution through test pattern selection
Seshadri et al. Dominance based analysis for large volume production fail diagnosis
Thilak et al. Fault coverage analysis using fault model and functional testing for DPM reduction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant