CN108134717B - 基于有界模型检验的片上网络固定型故障在线测试方法 - Google Patents
基于有界模型检验的片上网络固定型故障在线测试方法 Download PDFInfo
- Publication number
- CN108134717B CN108134717B CN201810072146.5A CN201810072146A CN108134717B CN 108134717 B CN108134717 B CN 108134717B CN 201810072146 A CN201810072146 A CN 201810072146A CN 108134717 B CN108134717 B CN 108134717B
- Authority
- CN
- China
- Prior art keywords
- test
- chip
- network
- attribute
- data packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于有界模型检验的片上网络固定型故障在线测试方法,包括以下步骤:1)在片上网络扩展有限状态机上,采用有界模型检验产生引导序列;2)若待测属性属于使能函数属性,则直接提取引导序列中的输入序列作为测试数据包,否则,采用受约束的测试向量自动生成算法产生测试向量,并将所述测试向量转化为测试数据包,基于所述测试数据包进行固定型故障的指令级自测试;3)基于片上网络的测试协议观测测试响应。与现有技术相比,本发明在***的功能模式下针对固定型故障达到了高故障覆盖率,显著地超越了现有的功能测试方法,且本发明达到了非常接近采用全扫描链结构测试达到的故障覆盖率,但不需要任何额外的硬件开销。
Description
技术领域
本发明涉及片上网络的在线自测试技术,尤其是涉及一种基于有界模型检验的片上网络固定型故障在线测试方法。
背景技术
由于具备良好空间扩展以及并行通信能力,片上网络成为了一种理想的片上通信机制,并且开始应用于众核***中。根据美国橡树国家实验室的报告,由于采用了片上网络架构的核心处理器SW26010,太湖之光超级计算机达到125.4pflop/s的运行速度,成为了世界上最快的计算机。这种核心处理器一共集成了260个处理核,这种结构极大地减少了通信延迟,同时降低了整机的功耗。然而,如此众多的处理核集成到一块芯片,如何确保这种***的无错运行面临着严峻的挑战。
片上网络本身具备了理想的容错性能,因为它为数据传输提供了多种可选的通路。因此,即使基于片上网络的众核***存在某些缺陷,这种***仍然可以用于任务模式。在细致的在线测试和诊断之后,这种***可以隔离故障通路进行重新配置。同时,整个***可以通过应用和数据的重映射,适当降级继续运行。达成这些容错能力,片上网络需要良好的在线测试技术。然而现有技术难以在功能模式下有效测试片上网络,尤其是片上网络中的时序控制部件。
指令级自测试程序(SBST)是一种非常理想的在线测试技术。它通过运行正常的功能程序测试嵌入式***,能够达到非常高的故障覆盖率,接近采用全扫描链测试所达到的故障覆盖率。SBST也可以通过在片上网络中传递数据包,测试片上网络。具体而言,当SBST程序需要在其它节点上读入或者写回数据时,片上网络就会在自身的网络中将数据包从源节点传输到目的节点,这些被传递的数据包就可以用于测试片上网络的功能和结构故障。同时,SBST程序也能通过空指令或中断在数据包直接***停顿,这些停顿能够激活片上网络的内部控制逻辑。如图1所示,首先片上网络中的控制器(PE)下载SBST测试程序。然后,SBST程序运行三条“LD”读入指令载入测试数据,并且用三条“ST”写回指令将这些数据写到另一个节点。这些测试数据从源节点传输到目的节点,就形成测试数据包,可以检测片上网络中故障。同时,SBST程序采用了空指令在数据包之间***了停顿,这样就可以测试缓存器中的握手逻辑。因此,SBST方法能够在线测试片上网络,而不引入任何侵入式硬件开销。
在片上网络中,在线测试时序控制逻辑仍然是一项严峻的挑战。虽然这种控制逻辑仅占片上网络的很小一部分,但是它严重地制约了片上网络的容错性能。例如,控制逻辑中的故障能轻易地导致整个***的崩溃。但是,现存的方法难以有效和有效率地测试这种模块。第一,时序控制逻辑通常有较大的时序深度,因此采用随机向量的模拟方法难以完全激活内部的故障。第二,时序控制逻辑也包含一定数量的数据寄存器,因此单纯的形式化方法将出现状态空间***的问题。第三,由于片上网络仅有少量端口对外界输出数据,因此故障的响应难以观测。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于有界模型检验的片上网络固定型故障在线测试方法。
本发明的目的可以通过以下技术方案来实现:
一种基于有界模型检验的片上网络固定型故障在线测试方法,包括以下步骤:
1)在片上网络扩展有限状态机上,采用有界模型检验产生引导序列;
2)若待测属性属于使能函数属性,则直接提取引导序列中的输入序列作为测试数据包,若待测属性属于更新函数属性,则采用受约束的测试向量自动生成算法产生测试向量,并将所述测试向量转化为测试数据包,基于所述测试数据包进行固定型故障的指令级自测试;
3)基于片上网络的测试协议观测测试响应。
进一步地,所述片上网络扩展有限状态机采用以下步骤获得:
1.1)在片上网络的现有状态机中,添加与故障相关的内部导线集合,将片上网络的寄存器传输级描述文件转化成扩展有限状态机;
1.2)提取扩展有限状态机中使能函数属性集合和更新函数属性集合;
1.3)删除不影响使能函数的变量,精简扩展有限状态机,获得最终的片上网络扩展有限状态机。
进一步地,所述使能函数属性包括四个条件:
当前状态等于被测跳变的当前状态;使能函数的结果为真;使能函数中的变量是可观测的;变量的值等于给定的赋值。
进一步地,所述更新函数属性包括三个条件:
当前状态等于被测跳变的当前状态;相关使能函数的取值为真;更新函数中的变量是可观测的。
进一步地,所述引导序列对应一个待测属性产生,具体地:
针对某个待测属性,若采用有界模型检验在时间片约束内产生激活所述待测属性的违例,则从该违例中提取引导序列,若否,则判定所述待测属性为不可测功能。
进一步地,所述采用受约束的测试向量自动生成算法产生测试向量具体为:
2.1)展开被测试电路的门级描述,即移除被测试电路中所有的内部寄存器,将寄存器的输入端作为展开电路的伪输出,将寄存器的输出端作为展开电路的伪输入;
2.2)将引导序列作为约束,施加到展开后的被测试电路上,假使待测属性p在k时间片成立,将引导序列中与使能函数相关的输入信号和内部变量在时间片k中的取值,赋值到展开电路对应的输入或者伪输入上;
2.3)在展开后的被测试电路未赋值的输入和伪输入上,运行测试向量自动生成算法,产生测试固定型故障的测试向量;
2.4)将测试向量中未用于使能函数的变量和输入信号的值,赋值到引导序列中,产生新的引导序列,最后将新引导序列的输入信号序列作为测试数据包。
进一步地,所述步骤3)中,片上网络的测试协议具体为:
发送端在第一个和最后一个数据包中分别对应存储数据包数目和奇偶校验信息,接受端根据所述数据包数目和奇偶校验信息检测数据错误,并将检测结果发送到指定的输出端口;
发送端在第一个数据包中同时存储目的地址,接受端根据所述目的地址检测路由错误,并将检测结果发送到指定的输出端口;
在所有数据包发送完毕后,发送端发送一个汇总有所有数据包的包数目、奇偶校验信息和地址信息的汇总数据包到指定的输出端口,输出端口通过比较发送端发送的汇总数据包与接受端发出的响应数据包,检测路由器崩溃错误。
与现有技术相比,本发明具有以下有益效果:
1、本发明采用有界模型并在线测试片上网络中固定型故障,为基于片上网络架构的众核***提供了关键的在线检测功能,支撑了众核***的可靠运行。
2、本发明精简了扩展有限状态机,删除其中不影响使能函数的变量,有效缓解状态***问题。
3、本发明能够有效地测试具备大时序深度的时序电路,并且达到高的故障覆盖率。
4、本发明采用受约束的测试向量自动生成算法,逐个在被引导序列触发的功能中,测试固定型故障,能够产生有效和精简的测试向量。
5、本发明设计的片上网络的测试协议,能够在不引入任何侵入式硬件的条件下,能够保证观测到所有的测试响应。
6、实验结果证实本发明在***的功能模式下针对固定型故障达到了高故障覆盖率,显著地超越了现有的功能测试方法。
7、本发明达到了非常接近采用全扫描链结构测试达到的故障覆盖率,但是本发明不需要任何额外的硬件开销。
附图说明
图1为采用指令级自测试方法测试片上网络的示意图;
图2为本发明的流程图;
图3为采用有界模型检验指令级自测试方法的流程图;
图4为受约束ATPG的测试向量生成过程示意图;
图5为受约束的测试自动生成算法测试时序电路示意图;
图6为本发明测试协议的示意图;
图7为测试实例中缓存器的状态机示意图;
图8为并行测试片上网络缓存器的指令级自测试程序;
图9为测试实例中测试片上网络中的仲裁器;
图10为测试实例中仲裁器的状态机示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图2所示,本发明提供一种基于有界模型检验的片上网络固定型故障在线测试方法,包括以下步骤:
1)在片上网络扩展有限状态机上,采用有界模型检验产生引导序列:
1.1)在片上网络的现有状态机中,添加与故障相关的内部导线集合,将片上网络的寄存器传输级描述文件转化成扩展有限状态机;
1.2)提取扩展有限状态机中使能函数属性集合和更新函数属性集合;
1.3)删除不影响使能函数的变量,精简扩展有限状态机,获得最终的片上网络扩展有限状态机;
1.4)引导序列对应一个待测属性产生,具体地:针对某个待测属性,若采用有界模型检验在时间片约束内产生激活所述待测属性的违例,则从该违例中提取引导序列,若否,则判定所述待测属性为不可测功能。
2)若待测属性属于使能函数属性,则直接提取引导序列中的输入序列作为测试数据包,若待测属性属于更新函数属性,则采用受约束的测试向量自动生成算法产生测试向量,并将所述测试向量转化为测试数据包,基于所述测试数据包进行固定型故障的指令级自测试,所述采用受约束的测试向量自动生成算法产生测试向量具体为:
2.1)展开被测试电路的门级描述,即移除被测试电路中所有的内部寄存器,将寄存器的输入端作为展开电路的伪输出,将寄存器的输出端作为展开电路的伪输入;
2.2)将引导序列作为约束,施加到展开后的被测试电路上,假使待测属性p在k时间片成立,将引导序列中与使能函数相关的输入信号和内部变量在时间片k中的取值,赋值到展开电路对应的输入或者伪输入上;
2.3)在展开后的被测试电路未赋值的输入和伪输入上,运行测试向量自动生成算法,产生测试固定型故障的测试向量;
2.4)将测试向量中未用于使能函数的变量和输入信号的值,赋值到引导序列中,产生新的引导序列,最后将新引导序列的输入信号序列作为测试数据包。
3)基于片上网络的测试协议观测测试响应,具体为:
发送端在第一个和最后一个数据包中分别对应存储数据包数目和奇偶校验信息,接受端根据所述数据包数目和奇偶校验信息检测数据错误,并将检测结果发送到指定的输出端口;
发送端在第一个数据包中同时存储目的地址,接受端根据所述目的地址检测路由错误,并将检测结果发送到指定的输出端口;
在所有数据包发送完毕后,发送端发送一个汇总有所有数据包的包数目、奇偶校验信息和地址信息的汇总数据包到指定的输出端口,输出端口通过比较发送端发送的汇总数据包与接受端发出的响应数据包,检测路由器崩溃错误。
上述三个错误的检测中,数据错误和路由错误是同时进行的,路由器崩溃错误是在所有数据包完成后进行的。
上述方法为采用有界模型并在线测试片上网络中固定型故障的指令级自测试方法,它为基于片上网络架构的众核***提供了关键的在线检测功能,支撑了众核***的可靠运行。该方法主要包含三个主要的步骤:第一,采用扩展有限状态机模型化片上网络,然后在该状态机上运行有界模型检验,最后抽取触发片上网络特定功能的引导序列;第二,采用受约束的测试向量自动生成算法,逐个在被引导序列触发的功能中,测试固定型故障(Stuck-at Faults,SAF);第三,设计了一种片上网络的测试协议,用于观察测试响应。
一、相关背景与定义
1.片上网络的建模
近年,有界模型检验(bounded model checking,BMC)成为了一种理想的自动验证技术,它能够对时序逻辑生成测试向量。因此,本发明专利设计了采用有界模型检验的指令级自测试技术,用于在线测试片上网络。首先,这项发明专利在片上网络的扩展有限状态机上,采用有界模型检验,产生激活片上网络内部功能的引导序列;然后,它采用受约束的测试生成算法,针对被引导序列激活内部功能中涉及的可测故障,产生测试向量;最后,它开发了一种片上网络的测试协议,确保激活的故障能够在指定端口观测。
本发明采用有界模型检验的指令级自测试方法能够在线检测时序控制逻辑中的难测故障。首先,本发明采用扩展的有限状态机(Extended finite state machine,EFSM)用以模型化时序控制模块。这种状态机是在有限状态机上添加了变量和断言,它能够从RTL描述中直接抽取。
表1为用于有界模型检验的各种符号和它们的定义。I、O分别表示输入和输出的符号集合,例如片上网络中的输入、输出数据包。S表示状态的集合,例如片上网络握手状态机中的状态。R表示变量的集合,例如片上网络中的数据寄存器。T表示跳变的集合。W表示内部导线的集合。上述集合中,各集合中成员的数量为|I|=n,|O|=m,|S|=j,|R|=k,|T|=a,|W|=q。ta表示给定的跳变,它是由一个使能函数ea和一个更新函数fa控制。F表示使能函数的集合。E表示更新函数的集合。PE表示用以测试与使能函数相关导线上结构故障的属性集合。PF表示用以测试与更新函数相关导线上结构故障的属性集合。本发明将扩展有限状态机定义成为一个八元组<I,O,S,R,T,E,F,W>。由于本测试方法针对寄存器和逻辑门间内部导线上的结构故障,故将导线集合W添加到了原始的状态机中。本发明假设如果一个时序电路的所有内部信号跳变都被激活,与任意跳变上使能函数或者更新函数相关的所有导线的信号都是可控制和可观测的,那么该时序电路在功能模式下已经有效地测试了。
表1
2.功能测试的属性集合
本发明定义了与使能函数相关的属性集合PE和与更新函数相关的属性集合PF。
属性集合PE通过以下方式获得:首先,设Iea、Rea和Wea分别表示输入集合、变量集合和导线集合对于给定使能函数ea的子集。设v(Rea)表示Rea集合中变量的一种可能的取值,通过激活Rea上变量所有可能取值,测试Wea上所有结构故障。这种方法是可行的,因为Rea中的变量控制着Wea中导线上的信号,而Rea通常仅包含少量的寄存器。对于每个使能函数,都需要一组属性对应Rea中的变量任意可能的取值。具体而言,每个属性包含四个条件:当前状态等于被测跳变的当前状态;使能函数的取值为真;Rea中的变量取值为一个给定的v(Rea);Rea的变量是可观测的。最后,收集针对每个使能函数的属性组,这些属性组就构成了使能函数的属性集合PE。
同理,设Rfa和Wfa表示变量集合和导线集合对于给定更新函数fa的子集。由于更新函数中的大量数据寄存器都被消去,以便较少模型的尺寸,因此测试更新函数的属性仅需要激活该函数。这个属性包含三个条件:当前状态等于被测跳变的当前状态;使能函数的取值为真;Rfa的变量是可观测的。最后,收集每个更新函数的属性,这些属性就构成了更新函数的属性集合PF。
定义:激活属性p的引导序列,表示为LS(p),是BMC产生的违例中从初始状态到属性p被激活的状态,所有输入信号和内部变量的值的序列。
引导序列对于测试时序电路中的结构故障非常有用。例如,当测试片上网络导线w的固定型故障(固定为0)时,我们需要令导线w的值等于1。因此,我们设导线w的值永远不等于1且能够在输出信号上观测到,这就是测试该故障的属性。BMC工具会验证这条属性是否为真。一旦证实属性不正确,即导线w的值可以等于1,那么BMC工具抽取到一个引导序列令导线w的值等于1,这个引导序列的输入信号序列就是测试该故障的测试序列。
二.相关算法
1.采用BMC技术的SBST的算法流程
图3展示了采用有界模型检验的指令级自测试方法的流程图,具体为:
S101,从设计中抽取EFSM,同时将属性集合PE和PF存入数据库。
S102,检查数据库中是否存在未被检测的属性。如果是,从数据库中取出一条属性,然后进入后续步骤;否则算法终止。
S103,减少模型的尺寸,删除其中不影响使能函数的变量,进而缓解状态***问题。
S104,采用有界模型检验工具测试该属性。判断是否产生引导序列,如果没有,那么这个属性在功能模式下是不可测试的,返回到S102;否则,进入S105。
S105,如果被测属性属于集合PE,那么引导序列中的输入信号序列就被直接作为测试序列;否则,进入S106。
S106,引导序列将被测电路带到给定更新函数发生的时间片,然后带约束的ATPG(Automatic Test Pattern Generation,测试向量自动生成技术)产生测试向量,测试被该更新函数激活的固定型故障。
S107,将测试向量转化成测试序列,进行属于集合PF的属性的测试,并且返回S102处理下一个属性。
2.采用受约束ATPG的测试向量生成
本发明采用受约束的ATPG产生测试向量,检测Wfa中导线的固定型故障。由于Wfa中导线上信号是在更新函数fa激活的时间片b更新,因此测试Wfa中导线的故障也需要在该时间片b进行。引导序列可以将原电路带到该时间片b,并且能够提供该时间片b上内部变量和输入信号的值。其核心思想是将与使能函数相关的内部变量和输入信号在该时间片b的值赋值给被测电路,这样保证被测电路处于更新函数fa激活。同时,测试未被赋值的内部变量。
图4中给出了完成本操作的具体步骤。首先,将综合后的时序电路展开成为组合电路,即移除所有的内部寄存器,然后将这些寄存器的输入信号作为展开电路伪输出(pseudo-primary outputs,PPOs),同时将寄存器的输出信号作为展开电路伪输入(pseudo-primary inputs,PPIs),如图5所示。然后,将引导序列在时间片b时于给定使能函数相关的内部变量和输入信号的值施加到展开电路对应的伪输入和输入信号上。同时,假使更新函数不更新某些变量,这些变量相关的故障也能在该更新函数发生时被检测到。因此,给这些变量的输出端施加了约束,让它们不能被观测。这时,展开后的组合电路与原电路在给定更新函数发生时所处的状态一样。接着,运行ATPG,通过对未赋值信号赋值来测试固定型故障。这样能够产生有效和精简的测试向量。最后,映射技术将会把测试向量转化成指令级自测试程序。
3.片上网络测试协议
由于片上网络通常并不会将测试响应传输到给定的端口,因此在片上网络中难以观测到测试响应。当出现故障发生时,片上网络可能出现三类错误,包括数据错误、路由错误和崩溃错误。数据错误意味着在数据接收端获得的数据包包含错误的数据或者某些数据包丢失。路由错误意味着数据包被传输出到错误的地址了。崩溃错误意味着路由器进入了错误的状态,除非重启,否则难以正常工作。没有适合的测试协议,这些错误是难以在输出端口直接观测的。
图6描述了一种测试协议,用于观测测试响应。在这种协议中,发送者在数据包的第一个和最后一个中保存了数据包的数目和它们的奇偶校验信息,因此接受者直接检测到数据错误,并将测试结果发送到指定的输出端口。类似,发送者在数据包的第一个中保存目的地址,因此接受者可以检测到路由错误,并将测试结果发送到指定的输出端口。最后,发送者将直接发送汇总数据包到指定的输出端口,如果输出端口发现发送者发送的汇总数据包与接受者发出的响应数据包不匹配,则路由器崩溃错误就被检测到了。这样,测试协议在不引入任何侵入式硬件的条件下,能够保证观测到所有的测试响应。
三.片上网络的测试实例
1.并行测试片上网络的缓存器
本方法能够有效地测试片上网络的缓存器。具体而言,先构建片上网络的缓存器的EFSM,然后提取用于测试片上网络内部功能的属性集合PE和PF。每个在PE中的属性会激活EFSM中的一个信号跳变ta,并且将一种可能的赋值v(Rea)施加到本跳变的使能函数中的变量上。如果BMC工具成功抽取了这条属性的引导序列LS(p),那么使能函数变量的值就等于这个赋值v(Rea),引导序列LS(p)的输入序列就是一条测试序列。否则,使能函数变量的值在功能模式下无法等于赋值v(Rea)。由于使能函数的变量控制着与使能函数相关的导线,如果这些变量的所有赋值都被测试到,那么导线上的故障也被有效地检测了。每个在PF中的属性会激活EFSM中的一个更新函数fa。如果BMC工具成功抽取了这个属性的引导序列LP(p),那么这个序列将把缓存器从初始状态引导到更新函数fa发生的时间片。接着,移除所有的内部寄存器,展开缓存器的电路。同时,把最后时间片上与使能函数相关变量和输入的值,施加到展开后的缓存器上。然后,本方法在被约束了的电路上,运行ATPG产生测试向量,检测所有被该更新函数敏化了的故障。
例如,假设缓存器中的计数器是测试目标。BMC工具载入属性"CS=S3&data_ack=1",这条属性能够激活"S3→S3"跳变的更新函数,即图7中的"counter<=(counter)?counter-1:Head[4:0]"。然后,BMC工具抽取到这条属性的引导序列,激活了该更新函数。接着,本方法将引导序列最后时间片中与使能函数相关变量和输入信号的值,施加到展开的缓存器上。受约束的ATPG将产生测试向量,测试更新函数激活的所有故障,包括计数器上的所有故障。最后,本方法将测试向量中的信息映射到引导序列中未赋值的变量和输入上,最后这种更新后的引导序列中的输入序列就是测试计数器的数据包序列。借助引导序列和受约束的ATPG,本方法可以有效地测试与缓存器中使能函数相关的故障。
当片上网络的多个缓存器被测试时,如果逐个测试缓存器,那么总测试数据和测试时间将非常大。片上网络能够并行地执行SBST程序,因此采用相同程序测试多个缓存器是可行的。在图8中,12个SBST程序并行地测试了一个2×2片上网络中的所有缓存器,其中每个路由器有5个端口,每个端口的输入端有一个缓存器。这些SBST程序可以分成三类:第一类能够顺序测试多个缓存器。例如,一个SBST程序将数据包从R3路由器的东端口传输到R0路由器的本地端口,传输的过程经过了3个缓存器。由于测试数据包是相同的,而且缓存器的结构也是类似的,因此如果该测试程序有效地测试一个缓存器,那么它就成功地测试了这三个缓存器。第二类和第三类测试程序能够和第一类测试程序并行地执行,因而本方法能够并行地测试片上网络,进而减少测试数据和测试时间。
在实验过程中采用了Hermes片上网络作为是实验对象。这种片上网络的数据包宽度可以设置为8位、16位、32位和64位,但是控制逻辑基本相同。以16位Hermes片上网络为例,BMC工具首先载入缓存器的EFSM。缓存器的握手状态机的时序深度非常大,最大的值可达到216-1,但是实验中仅把最大值设成31。然后,BMC逐个载入属性集PE和PF中的属性,然后抽取这些属性的引导序列。具体而言,BMC工具载入了25条属性,其中仅测试9组变量“pf”和“pl”的可能赋值,这些赋值足够测试逻辑“pf!=pl”。在表2中,有些属性需要高达23个时间片才能够被引导序列激活。如果采用人工分析的方法产生激活这个属性的引导序列,这个过程将非常费时。实验结果表明,BMC工具仅用了1.19秒,就抽取了激活每个属性的引导序列。因此,BMC非常适合激活并测试时序电路中大时序深度的功能。
表2缓存器和仲裁器上有界模型检验的结果
2.测试片上网络的仲裁器
测试片上网络中的仲裁器需要多个SBST程序的协同工作。假设片上网络的仲裁器采用通用了轮转仲裁和确定性XY路由算法,如图9所示。其中,轮转仲裁是指将所有输入端口排成一圈,仲裁器按照顺时针方向给圈上的各端口分配优先级,当前已分配通道的输入端口在下次仲裁时的优先级最低,而该输入端口在圈中的下一个输入端口在下次仲裁时优先级最高;XY路由算法是指当路由器发现数据包目的地址与当前地址的XY坐标都不相同时,优先向X坐标方向发送数据包。
例如,当仲裁器中仲裁状态机"S3→S5"跳变的更新函数被测试时,仲裁器需要选中合适的输入端口,进而需要其他SBST程序的协同工作。假设仲裁器已经给输入端口2的请求信号分配了通道,下一次仲裁需要处理输入端口1的请求信号。由于输入端口1的优先级较低,因此路由器邻近节点上SBST程序禁止向具有较高优先级的输入端口3,端口4和端口0发送请求信号。接着,BMC工具载入图10中属性"CS=S3&tx!=lx&Free[dx]=1",进而获得被测功能的引导序列。在展开的仲裁器上运行受约束的ATPG后,本方法产生测试数据包,伴随着其他SBST程序的协同工作,有效地测试片上网络的仲裁器。
在BMC过程中,由于精简了片上网络EFSM对仲裁状态机被测属性无关的变量和状态,被测模型变得非常小。在表2中,精简后模型的变量数目仅是原模型3.8%,导线数目仅是原模型的7.4%。因此,BMC能够成功地验证仲裁状态机中的32个属性,整个过程仅花费了1.29秒。同时,由于引导序列中包含输入端口的请求信号的值,以及被选中的输入端口号,因此本方法能够自动产成多个SBST程序的协同工作,确保激活目标属性对应的功能。
四.实验结果及分析
1.故障覆盖率
采用BMC的SBST方法在功能模式下有效地测试了片上网络,这种方法在不同数据包宽度的NoC上,达到了非常高的故障覆盖率,平均值是98.3%,非常接近采用侵入式硬件的全扫描链测试方法。特别是本方法非常有效地测试了片上网络中的缓存器,这部分的平均故障覆盖率几乎与全扫描链测试方法的故障覆盖率相等。虽然,全扫描链测试方法的故障覆盖率最高,但是这种方法需要外部测试仪,无法在片上网络的功能模式下进行测试。时序ATPG理论上能够对片上网络进行功能测试,但是实际上这种方法难以处理具有大时序深度的电路。因为这种方法随机地给控制变量赋值,所以它难以激活电路中难以到达的状态,它将在易到达状态里重复地搜索测试向量。表3表明,即使经过长时间的测试生成,时序ATPG仅测试了6%的故障。
表3不同测试方法的故障覆盖率结果
与采用嵌入式自测试(Build-in Self-testing,BIST)的功能测试方法相比,本方法能够更有效地测试时序电路。尽管在端口上***可测试性电路能够提高片上网络数据通路的故障覆盖率,但是其中的时序控制单元依然难以测试。表3显示无论在片上网络的缓存器还是仲裁器,采用BIST的功能测试方法的故障覆盖率都远低于本方法。
与人工产生引导序列的结构SBST方法相比,本方法更适用于那些具有大时序深度的电路。例如,尽管激活缓存中计数器需要多于10个时间片,本方法依然对这个单元达到了100%的故障覆盖率。结构SBST方法仅考虑了较少时间片(3到5个时间片),因此该方法可能难以测试这种具备大时序深度的计数器。同时,由于结构SBST仅运行在单个路由器上,因此它高估的故障覆盖率。例如,由于XY路由方法的限制,片上网络从路由器R3的北端口到路由器R1的西端口的通路是不通的,而仲裁器中与之相对应的故障是不可测试的,但是,在单路由器上运行的结构SBST将这些故障认定为可测试。
2.测试开销
采用BMC的SBST非常适用于在线测试NoC的另一个原因是这种方法的测试开销非常低。表4中给出了不同方法测试开销的评估。由于本方法通过在片上网络节点间传输数据包测试片上网络,它不需要任何侵入式硬件,进而不需要任何额外的面积开销。与本方法相比,全扫描链方法和采用BIST的功能测试分别需要13%和16%的面积开销。更进一步,本方法在功能模式下执行测试,它不需要昂贵的外部测试仪,因此测试成本非常小。
本方法的测试生成时间和测试时间也是远小于现有方法。由于对于不同数据包宽度的片上网络,测试数据包是类似的,因此测试生成时间和测试执行时间不会随数据包宽度增长而变化。由于被测模型的尺寸已经被精简,本方法测试生成的主要步骤BMC的计算时间仅有2.48秒,近似可以忽略。与本方法相比,时序ATPG的测试生成耗费了26小时,仅测试了6%的故障。更进一步,本方法并行测试20个缓存器,因此它的测试时间远小于采用单扫描链的全扫描链方法。此外,结构SBST仅在单路由器上运行,它的数据包不需要在其它的路由器上传输。这些数据包不需要等待仲裁,因此该方法的测试时间最少。
最后,本方法的测试数据量是合理的。由于本方法是针对仅被内部状态跳变激活的故障,因此它不会导致过量测试。同时,本方法在展开的电路上运行经典的ATPG算法,这样能够产生精简和有效率的测试向量。表4表明,本方法测试16位片上网络,仅需要7.512KB的测试数据。与本方法相比,结构SBST测试8位的单路由器,就需要22.207KB的测试数据。总而言之,本方法是一种非常有效和有效率的测试方法,能够在功能模式下测试片上网络。
表4不同测试方法的测试开销结果
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (7)
1.一种基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,包括以下步骤:
1)在片上网络扩展有限状态机上,采用有界模型检验产生引导序列;
2)若待测属性属于使能函数属性,则直接提取引导序列中的输入序列作为测试数据包,若待测属性属于更新函数属性,则采用受约束的测试向量自动生成算法产生测试向量,并将所述测试向量转化为测试数据包,基于所述测试数据包进行固定型故障的指令级自测试;
3)基于片上网络的测试协议观测测试响应。
2.根据权利要求1所述的基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,所述片上网络扩展有限状态机采用以下步骤获得:
1.1)在片上网络的现有状态机中,添加与故障相关的内部导线集合,将片上网络的寄存器传输级描述文件转化成扩展有限状态机;
1.2)提取扩展有限状态机中使能函数属性集合和更新函数属性集合;
1.3)删除不影响使能函数的变量,精简扩展有限状态机,获得最终的片上网络扩展有限状态机。
3.根据权利要求2所述的基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,所述使能函数属性包括四个条件:
当前状态等于被测跳变的当前状态;使能函数的结果为真;使能函数中的变量是可观测的;变量的值等于给定的赋值。
4.根据权利要求2所述的基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,所述更新函数属性包括三个条件:
当前状态等于被测跳变的当前状态;相关使能函数的取值为真;更新函数中的变量是可观测的。
5.根据权利要求1所述的基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,所述引导序列对应一个待测属性产生,具体地:
针对某个待测属性,若采用有界模型检验在时间片约束内产生激活所述待测属性的违例,则从该违例中提取引导序列,若否,则判定所述待测属性不可测。
6.根据权利要求1所述的基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,所述采用受约束的测试向量自动生成算法产生测试向量具体为:
2.1)展开被测试电路的门级描述,即移除被测试电路中所有的内部寄存器,将寄存器的输入端作为展开电路的伪输出,将寄存器的输出端作为展开电路的伪输入;
2.2)将引导序列作为约束,施加到展开后的被测试电路上,假使待测属性p在k时间片成立,将引导序列中与使能函数相关的输入信号和内部变量在时间片k中的取值,赋值到展开电路对应的输入或者伪输入上;
2.3)在展开后的被测试电路未赋值的输入和伪输入上,运行测试向量自动生成算法,产生测试固定型故障的测试向量;
2.4)将测试向量中未用于使能函数的变量和输入信号的值,赋值到引导序列中,产生新的引导序列,最后将新引导序列的输入信号序列作为测试数据包。
7.根据权利要求1所述的基于有界模型检验的片上网络固定型故障在线测试方法,其特征在于,所述步骤3)中,片上网络的测试协议具体为:
发送端在第一个和最后一个数据包中分别对应存储数据包数目和奇偶校验信息,接受端根据所述数据包数目和奇偶校验信息检测数据错误,并将检测结果发送到指定的输出端口;
发送端在第一个数据包中同时存储目的地址,接受端根据所述目的地址检测路由错误,并将检测结果发送到指定的输出端口;
在所有数据包发送完毕后,发送端发送一个汇总有所有数据包的包数目、奇偶校验信息和地址信息的汇总数据包到指定的输出端口,输出端口通过比较发送端发送的汇总数据包与接受端发出的响应数据包,检测路由器崩溃错误。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017110228501 | 2017-10-26 | ||
CN201711022850 | 2017-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108134717A CN108134717A (zh) | 2018-06-08 |
CN108134717B true CN108134717B (zh) | 2021-02-02 |
Family
ID=62400914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810072146.5A Active CN108134717B (zh) | 2017-10-26 | 2018-01-25 | 基于有界模型检验的片上网络固定型故障在线测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108134717B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144854A (zh) * | 2018-07-27 | 2019-01-04 | 同济大学 | 一种针对门级电路采用有界模型检测的软件自测试方法 |
CN112420115B (zh) * | 2020-11-05 | 2024-05-10 | 深圳市宏旺微电子有限公司 | 一种动态随机存取存储器的故障检测方法 |
CN114385481B (zh) * | 2021-11-30 | 2024-05-14 | 之江实验室 | 一种基于有界模型检验进行时延测试的软件自测试方法 |
CN116224042B (zh) * | 2023-04-28 | 2023-08-29 | 北京壁仞科技开发有限公司 | 生成测试待测器件的测试向量的方法、***、设备和介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1279697C (zh) * | 2003-07-04 | 2006-10-11 | 清华大学 | 片上***的测试数据压缩编码解码方法及专用解码单元 |
CN101388807B (zh) * | 2008-05-22 | 2011-03-30 | 清华大学 | 基于报文变异的协议鲁棒性测试生成方法 |
US8661455B2 (en) * | 2009-04-21 | 2014-02-25 | International Business Machines Corporation | Performance event triggering through direct interthread communication on a network on chip |
WO2013077867A1 (en) * | 2011-11-22 | 2013-05-30 | Intel Corporation | Access control for non-volatile random access memory across platform agents |
US10042412B2 (en) * | 2014-12-08 | 2018-08-07 | Intel Corporation | Interconnect wake response circuit and method |
CN104516434B (zh) * | 2014-12-11 | 2018-03-30 | 曙光云计算集团有限公司 | 服务器*** |
CN107294814A (zh) * | 2017-08-04 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种片上网络的测试方法及装置 |
-
2018
- 2018-01-25 CN CN201810072146.5A patent/CN108134717B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108134717A (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108134717B (zh) | 基于有界模型检验的片上网络固定型故障在线测试方法 | |
Kakoee et al. | At-speed distributed functional testing to detect logic and delay faults in NoCs | |
Cota et al. | A high-fault-coverage approach for the test of data, control and handshake interconnects in mesh networks-on-chip | |
EP3369015B1 (en) | Methods and circuits for debugging circuit designs | |
US6883150B2 (en) | Automatic manufacturing test case generation method and system | |
US7228262B2 (en) | Semiconductor integrated circuit verification system | |
Bayraktaroglu et al. | Cache resident functional microprocessor testing: Avoiding high speed io issues | |
US7373619B2 (en) | Post-silicon test coverage verification | |
US11408938B2 (en) | Bidirectional scan cells for single-path reversible scan chains | |
Zhang et al. | Software-based online self-testing of network-on-chip using bounded model checking | |
US8527232B2 (en) | Diagnostic test pattern generation for small delay defect | |
JP4242741B2 (ja) | デバッグ用信号処理回路 | |
Bhowmik et al. | On-line detection and diagnosis of stuck-at faults in channels of noc-based systems | |
Dalirsani et al. | Structural software-based self-test of network-on-chip | |
US7844869B2 (en) | Implementing enhanced LBIST testing of paths including arrays | |
JP2002181903A (ja) | 試験アーキテクチャ | |
Bhowmik et al. | On-line analysis of stuck-at faults in on-chip network interconnects | |
US20140359383A1 (en) | Address windowing for at-speed bitmapping with memory built-in self-test | |
Bhowmik | A power-aware fault detection scheme for 2d mesh-based network-on-chip interconnects | |
Chakraborty et al. | A practical approach to comprehensive system test & debug using boundary scan based test architecture | |
US20240061041A1 (en) | System and method for access control of a plurality of instruments embedded in a semiconductor device | |
Bhowmik | Detection and Localization of Channel-Short Faults in Regular On-Chip Interconnection Networks | |
Zhang et al. | Parallel Software-Based Self-Testing with Bounded Model Checking for Kilo-Core Networks-on-Chip | |
JP5157037B2 (ja) | Cpu内蔵lsi搭載ユニットおよびcpu内蔵lsiの実機試験方法 | |
Zhao et al. | Analyzing and diagnosing interconnect faults in bus-structured systems |
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 |