CN109144854A - 一种针对门级电路采用有界模型检测的软件自测试方法 - Google Patents
一种针对门级电路采用有界模型检测的软件自测试方法 Download PDFInfo
- Publication number
- CN109144854A CN109144854A CN201810845768.7A CN201810845768A CN109144854A CN 109144854 A CN109144854 A CN 109144854A CN 201810845768 A CN201810845768 A CN 201810845768A CN 109144854 A CN109144854 A CN 109144854A
- Authority
- CN
- China
- Prior art keywords
- test
- gate level
- level circuit
- self
- fault
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及一种针对门级电路采用有界模型检测的软件自测试方法,包括:简化处理步骤,对被测模块的门级电路进行建模,同时将与所述门级电路相关的其它模块抽象简化为功能约束;违例获取步骤,将难测故障的触发条件转化为对应的性质,采用有界模型检测技术搜索触发所述性质的违例;自测试程序生成步骤,将所述违例映射为测试指令序列,并添加对应的观测指令序列,构成用于软件自测试的自测试程序。与现有技术相比,本发明在不引起状态爆炸问题的情况下,有效地测试处理器控制器中难以测试的故障,具有在线测试质量高等优点。
Description
技术领域
本发明涉及软件测试技术领域,尤其是涉及一种针对门级电路采用有界模型检测的软件自测试方法。
背景技术
由于处理器主频的不断升级、外部测试仪的速度提升缓慢而且造价昂贵,直接使用外部测试仪对处理器进行实速测试,变得越来越困难,而且,处理器的很多故障只有在实速条件下才能被激活。另一方面,针对处理器这种核心部件,用户有强烈的现场测试需求,以确保整个计算机系统的正确性。因此,为确保处理器的可靠运行,迫切需要一种在线测试方法以实现处理器的实速测试。
基于以下问题,研究人员先后提出了针对处理器的多种实速测试方法,如内建自测试方法(Build-In Self-Testing,BIST)。内建自测试方法设计了采用系统工作频率的测试电路,并且把这种电路直接植入到被测电路中,实现实速测试。但是,内建自测试方法可能导致大量性能和面积开销,同时这种电路的较大功耗可能会损伤电路。接着,研究人员提出了基于软件的自测试方法(Software-Based Self-Testing,SBST),它通过运行正常程序测试处理器自身的结构和功能故障,它能够在不引入任何硬件开销的前提下,完成处理器的在线测试。SBST是非侵入式的测试方法,避免了过度测试,而且可以在现场条件下进行实速测试。它使得处理器用户可以在产品的整个生命周期中均可以进行测试。但是,处理器的控制模块是复杂的时序电路,而现有的SBST难以直接采用测试向量自动生成(AutomaticTest Pattern Generation,ATPG)技术产生时序电路的测试向量。控制模块是处理器中的关键模块,研究新的指令级自测试方法,有效地检测测试控制模块中的难测故障,非常有必要。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种针对门级电路采用有界模型检测的软件自测试方法。
本发明的目的可以通过以下技术方案来实现:
一种针对门级电路采用有界模型检测的软件自测试方法,包括:
简化处理步骤,对被测模块的门级电路进行建模,同时将与所述门级电路相关的其它模块抽象简化为功能约束;
违例获取步骤,将难测故障的触发条件转化为对应的性质,采用有界模型检测技术搜索触发所述性质的违例;
自测试程序生成步骤,将所述违例映射为测试指令序列,并添加对应的观测指令序列,构成用于软件自测试的自测试程序。
进一步地,所述简化处理步骤中,对门级电路进行建模具体为:
将门级电路文件直接转化成smv语言描述的文件。
进一步地,所述简化处理步骤中,所述门级电路的上游模块的输出取值范围作为该门级电路的输入约束,下游模块能够接受输入的取值范围作为该门级电路的输出约束。
进一步地,所述违例获取步骤中,将激活故障使能条件P恒为否作为性质。
进一步地,所述违例获取步骤中,采用有界模型检测技术搜索触发性质的违例时,若未搜索到违例,则对应的难测故障不可测试。
进一步地,所述自测试程序生成步骤中,提取违例中的输入序列转化为测试指令序列。
与现有技术相比,本发明具有以下有益效果:
1.本发明方法针对没有RTL级电路仅有门级电路的情况进行软件自测试,针对性强。
2.本发明方法提出了使用了基于软件的自测试方法和有界模型检测产生的反例,对处理器控制模块建立了门级的软件自测试方法,解决了处理器中核心的控制模块由于结构复杂、时序深度较大,现有方法难以有效的问题。通过对处理器模块的抽象,简化成约束模块,降低状态数量,缓解状态爆炸问题;将待测故障的触发条件转化成属性,用有界模型检测技术,搜索触发这些属性的违例,并映射成测试指令序列,构成自测试程序,完成了对于难测故障的进一步检测。
3.本发明方法采用BMC在控制器的门级电路上直接获得触发难测故障性质的测试序列,BMC由于穷尽地搜索了所有的测试序列,因此能够控制其中故障难以触发的问题,进而在控制器上达到良好的测试效果。
4.相比于软件自测试方法RSBST来说,本发明方法在测试开销方面和难测故障方面均提升明显。虽然测试时钟数大于Full-Scan方法,但是本方法的测试时间不会超过(甚至远小于)Full-scan的测试时间。这是因为本方法采用高速的工作时钟,而Full-Scan采用低速的测试仪时钟。同时,本发明方法可以解决更多的难测故障。
5.本方法不需要任何额外的面积开销,也不需要昂贵的外部测试仪。
附图说明
图1为处理器的指令级自测试方法示意图;
图2为采用模型检测的门级自测试方法;
图3为提取功能约束的示意图;
图4为获得违例的过程示意图;
图5为获得故障覆盖率示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
一、相关定义与相关指标
1.相关定义
基于软件的自测试方法(Software-Based Self-Testing,SBST):SBST通过运行程序直接检测处理器中功能与结构故障。这种方法不需要引入任何硬件开销,就能够在线地测试处理器,并且达到理想的故障覆盖率,已经成为了一种非常理想的测试方法。如图1所示,软件自测试的方法可以分为三步:①、下载测试程序与测试数据到片上系统;②、处理器执行这些测试程序,将测试向量施加到被测模块上,激活被测故障;③、测试响应被保存存储器中,并上传到外界用于观察。
有界模型检测(Bounded Model Checking,BMC):BMC是一种很重要的自动验证技术。它不仅可以自动地验证有穷状态系统中命题的正确性,且一旦命题有错,它还能够提供不满足命题的违例。
测试指令自动生成方法(Automatic Test Instruction Generation,ATIG):ATIG是一种新型的测试技术,它能够自动生成处理器的自测试程序。通常寄存器传输级(Register Transfer Level,RTL)的软件自测试方法需要人工生成测试程序,ATIG首次实现了测试程序的自动生成:首先,它通过数据挖掘的方法获得扩展指令和信号之间的映射,并将指令中数据的范围映射到信号上,作为指令级约束。其次,它将基于指令级约束转化成为虚拟电路并连接到被测电路上,然后自动生成测试向量。最后,它根据测试向量中控制信号的值和映射关系,将测试向量转化为测试指令,形成测试程序。但是,ATIG方法尚未提出针对处理器中时序控制单元的测试生成方法,这种控制模块的故障覆盖率仍有待提高。
2.相关指标
为了衡量软件自测试方法的有效性,通过下列指标进行评价:
故障覆盖率:故障覆盖率为使用软件自测试方法检测到的故障占总体故障总数的比例。为求得故障覆盖率,使用商业测试向量自动生成(Automatic Test PatternGeneration,ATPG)工具进行故障模拟,获得故障覆盖率。图5显示了实验的主要步骤。首先,触发指令序列与观测指令序列组成自测试程序,并且与测试数据一起编译成为内存文件。然后,实验将内存文件加载到Parwan处理器上,在modelsim工具进行模拟,并且保存模拟过程中处理器输入输出端口值的变化。最后,实验将值变化文件和Parwan处理器加载到TetraMAX行故障模拟,并且得到测试的故障覆盖率。
测试开销:包括测试指令数量,所需数据大小,测试时间以及空间占用大小。为求得测试开销,首先,触发指令序列与观测指令序列组成自测试程序,并且与测试数据一起编译成为内存文件。然后,实验将内存文件加载到Parwan处理器上,在modelsim工具进行模拟,并且保存模拟过程中处理器输入输出端口值的变化。最后使用design compiler将相关设计读入,并计算相关的测试开销。
二.本发明方法原理
本发明提出了采用有界模型检测,直接在门级电路上,针对处理器的控制器中的难测故障,产生测试程序,以实现软件自测试的方法。如图2所示,本发明方法共有三步:步骤2_1:对处理器中控制模块的门级电路进行建模,同时抽象处理器中的其它模块,简化成为约束模块,缓解BMC过程中的状态爆炸问题;步骤2_2:针对控制模块上的难测故障,逐个将难测故障的测试条件转化成性质(property),并且采用BMC技术搜索触发性质的违例(counter-example);步骤2_3:将违例映射成为测试指令序列,并且在测试指令序列后添加观测指令序列,构成自测试程序。
1.模型的简化方法
由于被测模块在处理器内部,它受到了众多其它模块的影响,单独的被测模块是无法模拟它在正常模式下的功能的。然而,如果我们将处理器中的所有模块载入BMC工具,那么状态变量众多,BMC求解过程会遭遇状态爆炸问题。因此,需要抽取被测模块的功能约束,采用抽象技术,简化其它模块。
数值抽象是一种针对数据通路中数值之间关系而提出的抽象技术。假如,当测试微处理器的时候,某个寄存器的值始终与另外一个寄存器相等,这种关系是恒定不变的,那么这两个寄存器就需要抽象为一个寄存器。抽象后的系统规模必定小于原系统的规模,这样就约减了模型规模,降低了BMC的复杂度。通常,抽象是通过给定实际值集到抽象域的映射关系达到。然后,它将这个映射关系作用到状态集以及变迁关系集上,进而生成基于此映射关系、但是规模相对于原系统较小的抽象模型,最终降低了BMC的难度。
具体而言,为了缩减被测模块的规模,整个系统按功能被分成若干功能模块。由于系统中模块之间并不是相对独立的,而是相互协作的,这样模块的上游模块的输出取值范围就是该模块的输入约束,而模块的下游模块能够接受输入的取值范围就是该模块的输出约束。一旦获得这些约束,它们将被转化成为约束模块,如图3所示。约束模块的作用就是控制被测模块的输入与输出,它能够替代其它模块的功能,因此其它模块就抽象成为这些约束模块。这样,抽象模块与被测模块共同组成了一个功能完备的系统,它等价于原系统。
2.抽取激活难测故障的违例方法
首先获得被测电路(被测模块的门级电路)的难测故障,判断这个故障集合是否为空。如果集合不空,则逐个从故障集合中取出难测的故障,编写激活该故障的基于线性时序逻辑(Linear Temporal Logic,LTL)的性质。然后,我们运行BMC工具验证这条性质。如果在给定的时间片内,BMC工具未能搜索到任何违例,那么性质恒成立,难测故障在给定的时间片内是无法被激活的;而如果性质不成立,那么BMC工具将给出一个违例,违反这条性质。获得违例的过程如图4所示。
具体而言,针对被测电路中难测的固定型故障,我们通过将激活故障使能条件P恒为否,作为验证性质,搜索激活故障的测试序列。假设电路的output端口存在一个固定为0的故障。为了激活这个故障,我们需要搜索一个输入序列,它使得output的值变成1。这就是故障的激活条件P。我们只需要将激活条件一直为否(G(!P))作为性质,与被测电路的模型同时输入BMC工具,BMC工具将搜索激活该故障的输入序列。如果在给定的时间片内,BMC未能发现任何违例,该性质恒为真,那么不存在激活该故障的测试序列,该故障不可测试;如果BMC工具搜索到一个违例使得性质为假,那么故障的激活条件满足。我们只需要抽取违例中的输入序列,施加到被测电路上的输入端,就可以测试给定的故障。
三.实验结果及分析
本实验使用商业ATPG工具进行故障模拟,利用图5显示的实验步骤获得故障覆盖率。
本发明方法主要针对ATIG方法中难测故障,提升现有自测试程序在核心的控制模块的测试性能,本发明改进后的自测试方法被称为ATIG+GB-SBST。表1显示了不同方法在Parwan处理器上的故障覆盖率结果。根据图表的数据显示,ATIG+GB-SBST确实提升了现有自测试方法的测试性能,Parwan处理器的故障覆盖率达到了95.5%,其中控制模块的故障覆盖率从84.4%提升到了88.9%,解决了28.8%的难侧故障。控制模块中尚未检测到的故障主要是工作模式下的不可测故障,产生这些故障的包含几个原因。一方面,处理器某些导线,在正常工作模式下恒为0(或者恒为1)。不存在激活这些变量上固定为0(或固定为1)故障的测试序列;另一方面,控制模块中某些导线无法影响任何的输出信号,进而它们的测试响应无法观测。
表1不同测试方法的故障覆盖率
表2显示了4种不同测试方法的测试开销。ATIG+GB-SBST方法的全部测试程序包括310条指令,以及775Byte的数据。其中,GB-SBST方法只需要指令121条,测试数据258Byte。本方法的总数据量比RSBST方法的数据量节省了36.2%,也少于Full-scan方法的测试数据量。虽然自测试方法RSBST,ATIG和ATIG+GB-SBST的测试时钟数大于Full-Scan方法,但是自测试方法的测试时间不会超过(甚至远小于)Full-scan的测试时间。这是因为自测试方法采用高速的工作时钟,而Full-Scan采用低速的测试仪时钟。同时,ATIG+GB-SBST方法仅是比ATIG少量增多了测试时间,但是相比于RSBST来说依然减少了87.3%。在测试开销方面提升明显。最后,本方法不需要任何额外的面积开销,也不需要昂贵的外部测试仪。
表2不同测试方法的测试开销
测试开销 | Full-scan | RSBST | ATIG | ATIG+GB-SBST |
指令 | 0 | 569 | 189 | 310 |
数据(Byte) | 846 | 1214 | 517 | 775 |
时间(Clock) | 6957 | 121105 | 9413 | 15433 |
面积开销 | 6.1% | 0 | 0 | 0 |
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (6)
1.一种针对门级电路采用有界模型检测的软件自测试方法,其特征在于,包括:
简化处理步骤,对被测模块的门级电路进行建模,同时将与所述门级电路相关的其它模块抽象简化为功能约束;
违例获取步骤,将难测故障的触发条件转化为对应的性质,采用有界模型检测技术搜索触发所述性质的违例;
自测试程序生成步骤,将所述违例映射为测试指令序列,并添加对应的观测指令序列,构成用于软件自测试的自测试程序。
2.根据权利要求1所述的针对门级电路采用有界模型检测的软件自测试方法,其特征在于,所述简化处理步骤中,对门级电路进行建模具体为:
将门级电路文件直接转化成smv语言描述的文件。
3.根据权利要求1所述的针对门级电路采用有界模型检测的软件自测试方法,其特征在于,所述简化处理步骤中,所述门级电路的上游模块的输出取值范围作为该门级电路的输入约束,下游模块能够接受输入的取值范围作为该门级电路的输出约束。
4.根据权利要求1所述的针对门级电路采用有界模型检测的软件自测试方法,其特征在于,所述违例获取步骤中,将激活故障使能条件P恒为否作为性质。
5.根据权利要求1所述的针对门级电路采用有界模型检测的软件自测试方法,其特征在于,所述违例获取步骤中,采用有界模型检测技术搜索触发性质的违例时,若未搜索到违例,则对应的难测故障不可测试。
6.根据权利要求1所述的针对门级电路采用有界模型检测的软件自测试方法,其特征在于,所述自测试程序生成步骤中,提取违例中的输入序列转化为测试指令序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845768.7A CN109144854A (zh) | 2018-07-27 | 2018-07-27 | 一种针对门级电路采用有界模型检测的软件自测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845768.7A CN109144854A (zh) | 2018-07-27 | 2018-07-27 | 一种针对门级电路采用有界模型检测的软件自测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144854A true CN109144854A (zh) | 2019-01-04 |
Family
ID=64798801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810845768.7A Pending CN109144854A (zh) | 2018-07-27 | 2018-07-27 | 一种针对门级电路采用有界模型检测的软件自测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144854A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385481A (zh) * | 2021-11-30 | 2022-04-22 | 之江实验室 | 一种基于有界模型检验进行时延测试的软件自测试方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996803B2 (en) * | 2009-01-30 | 2011-08-09 | International Business Machines Corporation | Automated use of uninterpreted functions in sequential equivalence |
CN102929781A (zh) * | 2012-11-12 | 2013-02-13 | 桂林电子科技大学 | 基于上下文定界的队列通信并发递归程序验证方法 |
US8751868B2 (en) * | 2011-05-31 | 2014-06-10 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | Control server and method for switching running of test programs stored in multiple storage mediums of test server |
CN107391247A (zh) * | 2017-07-21 | 2017-11-24 | 同济大学 | 一种片上网络应用的广度优先贪心映射方法 |
CN108134717A (zh) * | 2017-10-26 | 2018-06-08 | 同济大学 | 基于有界模型检验的片上网络固定型故障在线测试方法 |
-
2018
- 2018-07-27 CN CN201810845768.7A patent/CN109144854A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996803B2 (en) * | 2009-01-30 | 2011-08-09 | International Business Machines Corporation | Automated use of uninterpreted functions in sequential equivalence |
US8751868B2 (en) * | 2011-05-31 | 2014-06-10 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | Control server and method for switching running of test programs stored in multiple storage mediums of test server |
CN102929781A (zh) * | 2012-11-12 | 2013-02-13 | 桂林电子科技大学 | 基于上下文定界的队列通信并发递归程序验证方法 |
CN107391247A (zh) * | 2017-07-21 | 2017-11-24 | 同济大学 | 一种片上网络应用的广度优先贪心映射方法 |
CN108134717A (zh) * | 2017-10-26 | 2018-06-08 | 同济大学 | 基于有界模型检验的片上网络固定型故障在线测试方法 |
Non-Patent Citations (1)
Title |
---|
YING ZHANG 等: "Software-based online self-testing of network-on-chip using bounded model checking", 《2017 IEEE INTERNATIONAL TEST CONFERENCE 》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385481A (zh) * | 2021-11-30 | 2022-04-22 | 之江实验室 | 一种基于有界模型检验进行时延测试的软件自测试方法 |
CN114385481B (zh) * | 2021-11-30 | 2024-05-14 | 之江实验室 | 一种基于有界模型检验进行时延测试的软件自测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931445B (zh) | 用于调试逻辑系统设计的方法、仿真器及存储介质 | |
US9297855B1 (en) | Integrated circuit with increased fault coverage | |
CN108351907B (zh) | 用于调试电路设计的方法和电路 | |
US11023362B2 (en) | Co-verification of hardware and software | |
Riefert et al. | An effective approach to automatic functional processor test generation for small-delay faults | |
Lin et al. | Multiple-fault diagnosis based on adaptive diagnostic test pattern generation | |
US6970815B1 (en) | Method of discriminating between different types of scan failures, computer readable code to cause a display to graphically depict one or more simulated scan output data sets versus time and a computer implemented circuit simulation and fault detection system | |
US11789077B2 (en) | Single-pass diagnosis for multiple chain defects | |
CN101526582A (zh) | 边界扫描测试向量生成方法 | |
CN110765716A (zh) | 数字产品的仿真信号查看方法及系统 | |
CN110347595A (zh) | 一种fpga内部资源甄别与定位方法及系统 | |
Portela-Garcia et al. | A rapid fault injection approach for measuring seu sensitivity in complex processors | |
CN109144854A (zh) | 一种针对门级电路采用有界模型检测的软件自测试方法 | |
US7039843B2 (en) | Modeling custom scan flops in level sensitive scan design | |
CN106844890A (zh) | 一种基于集成电路功耗分析的故障诊断建库方法 | |
Petersén et al. | Fault injection and fault handling: an MPSoC demonstrator using IEEE P1687 | |
Zhao et al. | Unit-based functional iddt testing for aging degradation monitoring in a vliw processor | |
US9470760B2 (en) | Functional ASIC verification using initialization microcode sequence | |
US10338137B1 (en) | Highly accurate defect identification and prioritization of fault locations | |
Gurumurthy et al. | Comparing the effectiveness of cache-resident tests against cycleaccurate deterministic functional patterns | |
CN114385481B (zh) | 一种基于有界模型检验进行时延测试的软件自测试方法 | |
CN110765711A (zh) | 数字产品的仿真信号查看方法及系统 | |
CN110956007A (zh) | 数字产品的仿真信号查看方法及系统 | |
US11250198B2 (en) | Method to perform hardware safety analysis without fault simulation | |
Acle et al. | About performance faults in microprocessor core in-field testing |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |