CN111045880A - 芯片测试方法、验证系统及存储介质 - Google Patents

芯片测试方法、验证系统及存储介质 Download PDF

Info

Publication number
CN111045880A
CN111045880A CN201911298175.4A CN201911298175A CN111045880A CN 111045880 A CN111045880 A CN 111045880A CN 201911298175 A CN201911298175 A CN 201911298175A CN 111045880 A CN111045880 A CN 111045880A
Authority
CN
China
Prior art keywords
case
test
templates
instruction
operand
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
Application number
CN201911298175.4A
Other languages
English (en)
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.)
Hunan Greatwall Galaxy Technology Co ltd
Original Assignee
Hunan Greatwall Galaxy 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 Hunan Greatwall Galaxy Technology Co ltd filed Critical Hunan Greatwall Galaxy Technology Co ltd
Priority to CN201911298175.4A priority Critical patent/CN111045880A/zh
Publication of CN111045880A publication Critical patent/CN111045880A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种芯片测试方法、验证系统及存储介质,该方法的测试程序内含若干个用例模板和一个测试控制器,能在测试过程中动态产生测试用例,使得测试程序的每次执行,都能实现多轮测试,从而提高了测试效率,其中用例模板是由一系列待测试指令、该指令执行条件、操作数取值范围组成的序列,测试控制器是用例模板的选取规则、用例生成规则和测试终止条件组成,它在测试过程中,根据用例模板的内容,不断产生新的测试用例并实施测试,直到测试终止条件被完全满足,测试终止。

Description

芯片测试方法、验证系统及存储介质
技术领域
本发明涉及DSP芯片验证领域,特别是一种芯片测试方法、验证系统及存储介质。
背景技术
测试方法常分为黑盒、白盒、灰盒三类,黑盒测试表示测试者只知道待测对象的外部使用规范,对其内部实现完全不知情,比如Fuzzing测试、畸形测试等;白盒测试表示测试者完全了解待测试对象的内部结构,比如代码走查、插桩、条件覆盖、路径覆盖等;灰盒测试表示测试者对待测试对象的内部结构有部分了解,比如基于规则的测试。不论采用哪种测试方法,都需要产生测试样例。由于芯片的指令条数、内部状态控制寄存器的数量多,它们形成的组合爆炸使得芯片的完全测试几乎是不可能的,实际测试的用例数只是用例全集中的极少部分。为此,我们必须研究提高测试速度、增加单位时间内测试用例数量的方法,才能提高测试的覆盖率和结果的有效性。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种芯片测试方法、验证系统及存储介质,解决了以往测试用例必须在测试前生成,且在测试过程中不能变化,使得每测试一个用例,都必须生成和加载一个测试程序的问题,提高测试速度。
为解决上述技术问题,本发明所采用的技术方案是:一种芯片测试方法,包括以下步骤:
1)设定多个用例模板;
2)根据用例模板的选取规则,从所述多个用例模板中,选取部分或全部用例模板;
3)根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,动态生成新的测试用例;
4)执行经步骤3)生成后的测试用例;
5)若测试终止条件尚未被满足,则返回执行步骤2),否则测试结束。
在用例生成阶段并不直接生成最终的测试用例,而是产生一个带多个用例模板和一个测试控制器的测试程序。该测试程序的测试控制器利用其选取规则,对测试模板进行选取,再根据选取用例模板的内容,动态生成新的测试用例。每编译生成和加载一次测试程序,就可以完成大量用例的测试,而且测试用例的生成和执行都是在下位机的内存中进行,所以大大提高了测试速度。
本发明的用例模板包括若干个元素;每个元素包括一条待测试指令,以及所述待测试指令的执行条件、待测试指令的指令操作数及其取值范围。
本发明利用测试控制器从所述用例模板中选取部分或全部用例模板;所述测试控制器包括用例模板的选取规则、用例生成规则和测试结束规则。
本发明中,设用例模板的数量为N,则所述测试控制器采用顺序选取、逆序选取、等间隔选取、随机选取、伪随机选取中的一种方式选取1~N个用例模板。本发明的选取方式灵活,容易实现。
步骤3)中,动态生成新的测试用例的具体实现过程包括:
a)为每个被选取的用例模板动态生成该模板的一个实例,其中每条指令的操作数、执行条件都由测试控制器根据用例生成规则,动态生成;
b)按照用例模板被选取的顺序,动态生成被选取用例模板的实例之间的跳转指令,形成一个完整的测试用例;
c)检查所述测试用例的跳转指令之间是否存在环路,若存在,则返回a),重新生成一个测试用例,若不存在环路,则输出该测试用例,用于后续测试。
步骤a)中,生成测试用例期间,测试控制器利用一个用例模板,就能生成一段测试代码。根据测试控制器选取的若干个用例模板,就能生成多段测试代码,多段测试代码按顺序执行,构成一个测试用例。但这些测试代码是随机选取的,它们之间不一定连续存放,所以必须依靠用例模板出口处的跳转指令,让一段测试代码跳转到下一段测试代码。终止,跳转指令让各段测试代码连接起来,形成一个整体,也就是一个新的测试用例。为了确保测试用例能够正常结束,就需要消除各段测试代码之间的跳转不会形成环路。
步骤3)中,所述指令执行条件是指;设定寄存器编号等于或不等于某一设定值时执行指令;所述操作数范围包括源操作数的取值范围和目的操作数的取值范围。
本发明的所述操作数包括指令的若干源操作数和一个目标操作数;所述操作数的类型为立即数、寄存器或存储地址中的一种。
相应地,本发明还提供了一种验证系统,其包括:
上位机,用于设定多个用例模板;
下位机,用于根据用例模板的选取规则,从所述多个用例模板中,选取部分或全部用例模板,根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,动态生成新的测试用例,并执行该测试用例。
本发明的验证系统还包括仿真器,所述仿真器用于将上位机生成的包含多个用例模板和一个测试控制器的测试程序发送至下位机,以及下位机输出的测试结果发送至上位机。
作为一个发明构思,本发明还提供了一种计算机存储介质,该存储介质内存储有用于执行以下操作的程序:根据设定的用例模板的选取规则,从多个所述用例模板中,选取部分或全部用例模板,根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,动态生成新的测试用例,并执行该测试用例。
本发明的测试用例是一个可执行指令序列,用以完成一定的测试内容,达到一定的测试目的。用例模板由一个待测试指令、指令执行条件、操作数范围的序列组成,每个用例模板的最后一条被执行的指令一定是一条跳转指令,用以跳转到其他用例模板的实例,或者返回测试控制器。
与现有技术相比,本发明所具有的有益效果为:本发明在用例生成阶段并不直接生成最终的测试用例,而是产生一个带多个用例模板和一个测试控制器的测试程序。该测试程序的测试控制器利用其选取规则,对测试模板进行动态选取,再根据选取用例模板的内容,动态生成新的测试用例。由于本发明每编译生成和加载一次测试程序,就可以完成大量用例的测试,而且测试用例的生成和执行都是在下位机的内存中进行,所以大大提高了测试速度。
附图说明
图1为本发明验证系统结构图;
图2为本发明用例模板的指令流程示意图;
图3为本发明整体框架图。
具体实施方式
本发明测试系统由上位机、仿真器和下位机组成,如图1所示。
(1)用户在上位机编写测试程序,其中含有多个用例模板和一个测试控制器,然后利用编译器,将此测试程序编译成下位机可执行的代码格式;
(2)用户通过仿真器,将上位机编译生成的测试程序传送到下位机;
(3)下位机接收仿真器传来的测试程序后,执行该测试程序,并将执行结果通过仿真器返回给上位机。
本发明测试方法具体如下:
1)设定多个用例模板和一个测试控制器;
2)根据用例模板的选取规则,测试控制器从所述多个用例模板中,选取部分或全部用例模板;
3)根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,测试控制器动态生成新的测试用例;
4)执行经步骤3)生成后的测试用例;
5)测试控制器判断测试终止条件是否被满足,若未满足则返回执行步骤2),否则测试结束。
一个用例模板M=[<ins,con,{ops}>]是一个序列,该序列的每个元素由三个部分组成:ins表示一条指令,con表示这条指令的执行条件,{ops}表示指令操作数及其取值范围的集合,操作数的值可以是寄存器、内存地址或者立即数的范围,其范围用上下边界表示。假设C=<c1,c2…,cm>表示一条指令可能的执行条件集合,O=<o1,o,...,oh>表示该指令所有可能的操作数集合,那么
Figure BDA0002321136810000041
表示该指令在测试程序中所有可能的实例集合。
用例模板中的指令应当是时序安全、无输出冲突和可终止的指令序列。多条指令在内存中对齐后,顺序存储,芯片从内存中顺序读取指令执行。由于DSP芯片通常不区分代码和数据,所以我们可把指令当作数据,通过修改其内容,生成新的指令,再执行。图2所示是一个用例模板的指令流程示意图,圆点表示指令,线表示控制流,执行路径是1→2→4→3→5,指令5是用例模板的最后一条指令,也是其唯一的出口。本发明中,用例模板由用户编写。
一条指令的执行条件con用<R,E>表示,其中R表示指令控制寄存器,E表示条件,可以是等于0执行,或者不等于0执行。当DSP准备指令执行时,它先检查R指示的寄存器是否满足E的要求,若该寄存器满足E的要求(等于或者不等于0),那么DSP就执行这条指令,否则就不执行。对于某些不支持指令条件的DSP芯片,指令执行条件为空。一条指令的全部操作数组成一个集合,用以表示该指令中各个操作数的取值范围,用{<start,len,min,max>}表示,其中start和len表示一个操作数在指令中的起始位置和长度,两者以比特为单位,而min和max表示该操作数可取值的最大值和最小值。根据操作数的生成规则,一个操作数可以取min或max之间的某个数。
测试控制器由用例模板的选取规则、用例生成规则和测试终止条件组成。选取规则由选取模板数量和选取方式组成,若程序中全部模板数量为数量N,那么选取模板的数量可以是从1~N中的任意数,选取方式可以是顺序选取、逆序选取、等间隔选取、随机选取、伪随机选取中的一种,一个用例模板可以重复选取,也可以指定不同的权重,体现它们不同概率。测试控制器通过选取规则,确定新产生的测试用例由哪些用例模板组成,以及这些模板的执行顺序。
测试控制器逐条遍历被选取样例模板中的指令,根据用例生成规则和用例模板的信息,生成新测试用例中该指令的一个指令执行条件和操作数的实际值。每个用例模板的最后一条指令都是一条跳转指令,作为该模板实例的唯一出口。当测试控制器遍历到一个用例模板的最后一条指令时,它会将该用例模板生成的新测试用例的最后一条指令的目的地址设置为下一个用例模板实例的首地址。如果该用例模板是此次生成的测试用例的最后一个模板,那么其出口指令的跳转地址为测试控制器的内部地址,以便测试控制器重新获得控制权。
测试控制器的测试终止条件是一个逻辑表达式,用以描述测试终止必须满足的所有条件,这些条件可以是测试用例的产生次数、测试时长、上位机发出结束指令等。
当测试控制器生成一个完整的测试用例之后,它会初始化测试环境,包括DSP芯片上各寄存器的值和测试用例可访问的内存区域的值,然后跳转到新测试用例的首地址,开始执行测试用例。
当测试用例执行完成之后,它会跳转回测试控制器,由测试控制器把测试结果(即DSP芯片上各寄存器的值和测试用例可访问的内存区域的值)通过仿真器发送回上位机,由上位机保存,以便检查。
最后,测试控制器检查测试终止条件是否能被满足。如果满足,则测试终止,否则,继续生成新的测试用例,进行下一轮测试。
芯片指令的二进制形式很多,通常由指令码、操作数、执行条件和指令标识位等部分组成,并且每个部分的位置和长度固定,指令的总长度固定。下表1是某种指令格式,其中标量向量标志、是否与下一条指令并行等由编译器生成,通常不能随意修改:
表1某种指令格式
Figure BDA0002321136810000061
本发明的系统框图见图3。

Claims (10)

1.一种芯片测试方法,其特征在于,包括以下步骤:
1)设定多个用例模板;
2)根据用例模板的选取规则,从所述多个用例模板中,选取部分或全部用例模板;
3)根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,动态生成新的测试用例;
4)执行经步骤3)生成后的测试用例;
5)判断测试终止条件是否被满足,若未满足则返回执行步骤2),否则测试结束。
2.根据权利要求1所述的芯片测试方法,其特征在于,所述用例模板包括若干个元素;每个元素包括一条待测试指令,以及所述待测试指令的执行条件、待测试指令的指令操作数及其取值范围。
3.根据权利要求1所述的芯片测试方法,其特征在于,利用测试控制器从所述用例模板中选取部分或全部用例模板;所述测试控制器包括用例模板的选取规则、用例生成规则和测试结束规则。
4.根据权利要求3所述的芯片测试方法,其特征在于,设用例模板的数量为N,则所述测试控制器采用顺序选取、逆序选取、等间隔选取、随机选取、伪随机中的一种方式选取1~N个用例模板。
5.根据权利要求1所述的芯片测试方法,其特征在于,步骤3)中,所述指令执行条件是指:设定寄存器编号等于或不等于某一设定值时执行指令;所述操作数范围包括源操作数的取值范围和目的操作数的取值范围。
6.根据权利要求5所述的芯片测试方法,其特征在于,步骤3)中,所述操作数包括指令的若干源操作数和一个目标操作数;所述操作数的类型为立即数、寄存器或存储地址中的一种。
7.根据权利要求1所述的芯片测试方法,其特征在于,步骤3)中,动态生成新的测试用例的具体实现过程包括:
a)为每个被选取的用例模板动态生成该模板的一个实例,其中每条指令的操作数、执行条件都由测试控制器根据用例生成规则,动态生成;
b)按照用例模板被选取的顺序,动态生成被选取用例模板的实例之间的跳转指令,形成一个完整的测试用例;
c)检查所述测试用例的跳转指令之间是否存在环路,若存在,则返回a),重新生成一个测试用例,若不存在环路,则输出该测试用例,用于后续测试。
8.一种验证系统,其特征在于,包括:
上位机,用于设定多个用例模板;
下位机,用于根据设定的用例模板的选取规则,从多个所述用例模板中,选取部分或全部用例模板,根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,动态生成新的测试用例,并执行该测试用例。
9.根据权利要求8所述的验证系统,其特征在于,还包括仿真器,所述仿真器用于将上位机生成的包含多个用例模板和一个测试控制器的测试程序发送至下位机,以及将下位机输出的测试结果发送至上位机。
10.一种计算机存储介质,其特征在于,该存储介质内存储有用于执行以下操作的程序:根据设定的用例模板的选取规则,从多个所述用例模板中,选取部分或全部用例模板,根据被选取的用例模板,及所述用例模板的指令执行条件、操作数范围,动态生成新的测试用例,并执行该测试用例。
CN201911298175.4A 2019-12-17 2019-12-17 芯片测试方法、验证系统及存储介质 Pending CN111045880A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911298175.4A CN111045880A (zh) 2019-12-17 2019-12-17 芯片测试方法、验证系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911298175.4A CN111045880A (zh) 2019-12-17 2019-12-17 芯片测试方法、验证系统及存储介质

Publications (1)

Publication Number Publication Date
CN111045880A true CN111045880A (zh) 2020-04-21

Family

ID=70236927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911298175.4A Pending CN111045880A (zh) 2019-12-17 2019-12-17 芯片测试方法、验证系统及存储介质

Country Status (1)

Country Link
CN (1) CN111045880A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559298A (zh) * 2021-02-20 2021-03-26 南方电网数字电网研究院有限公司 电能表的内存监测方法、装置、系统和存储介质
CN113742202A (zh) * 2020-05-29 2021-12-03 上海商汤智能科技有限公司 Ai芯片验证系统、方法、设备及存储介质
CN115794503A (zh) * 2022-09-30 2023-03-14 湖南智存合壹信息科技有限公司 一种基于国产cpu主板的高性能测试装置及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1684047A (zh) * 2004-12-24 2005-10-19 清华大学 基于边界条件和自检查随机测试的cpu约束生成验证法
CN101673236A (zh) * 2009-10-13 2010-03-17 中国人民解放军国防科学技术大学 一种全覆盖的微处理器测试用例包自动生成方法
CN102455971A (zh) * 2010-10-28 2012-05-16 无锡江南计算技术研究所 应用级随机指令测试方法、系统及装置
US20160342501A1 (en) * 2015-05-18 2016-11-24 Hcl Technologies Limited Accelerating Automated Testing
CN109063323A (zh) * 2018-07-28 2018-12-21 西安微电子技术研究所 一种验证sdram的随机测试用例的生成方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1684047A (zh) * 2004-12-24 2005-10-19 清华大学 基于边界条件和自检查随机测试的cpu约束生成验证法
CN101673236A (zh) * 2009-10-13 2010-03-17 中国人民解放军国防科学技术大学 一种全覆盖的微处理器测试用例包自动生成方法
CN102455971A (zh) * 2010-10-28 2012-05-16 无锡江南计算技术研究所 应用级随机指令测试方法、系统及装置
US20160342501A1 (en) * 2015-05-18 2016-11-24 Hcl Technologies Limited Accelerating Automated Testing
CN109063323A (zh) * 2018-07-28 2018-12-21 西安微电子技术研究所 一种验证sdram的随机测试用例的生成方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742202A (zh) * 2020-05-29 2021-12-03 上海商汤智能科技有限公司 Ai芯片验证系统、方法、设备及存储介质
JP2022537620A (ja) * 2020-05-29 2022-08-29 上▲海▼商▲湯▼智能科技有限公司 人工知能チップ検証
JP7270764B2 (ja) 2020-05-29 2023-05-10 上▲海▼商▲湯▼智能科技有限公司 人工知能チップ検証
CN112559298A (zh) * 2021-02-20 2021-03-26 南方电网数字电网研究院有限公司 电能表的内存监测方法、装置、系统和存储介质
CN115794503A (zh) * 2022-09-30 2023-03-14 湖南智存合壹信息科技有限公司 一种基于国产cpu主板的高性能测试装置及方法

Similar Documents

Publication Publication Date Title
CN111045880A (zh) 芯片测试方法、验证系统及存储介质
US5317743A (en) System for compiling iterated loops based on the possibility of parallel execution
EP0453394B1 (en) Dynamic process for the generation of biased pseudo-random test patterns for the functional verification of hardware designs
US7055065B2 (en) Method, system, and computer program product for automated test generation for non-deterministic software using state transition rules
US9292265B2 (en) Method for convergence analysis based on thread variance analysis
US6732297B2 (en) Pipeline testing method, pipeline testing system, pipeline test instruction generation method and storage method
US7359822B2 (en) Testing device
US20070016829A1 (en) Test case generator
US7895575B2 (en) Apparatus and method for generating test driver
CN105190334A (zh) 使用多条处理路径进行器件测试的方法和装置
CN102201022A (zh) 用于fpga验证的方法和装置
US20190179733A1 (en) Software test program generation
US20030130813A1 (en) Adaptive test program generation
US9436466B2 (en) Blank bit and processor instructions employing the blank bit
US9117023B2 (en) Dynamic generation of test segments
CN109783837A (zh) 仿真设备、仿真系统、仿真方法和仿真程序
JP6903249B2 (ja) テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム
CN116450431A (zh) Cpu参考模型的指令功能测试系统及其方法、计算机设备和存储介质
CN105677559B (zh) 一种检测方法及装置
CN111240747B (zh) 指令生成方法、装置、测试架构和电子设备
KR102403351B1 (ko) 바이너리 취약점 식별 코드 생성 방법, 그리고 이를 구현하기 위한 장치
CN114121135A (zh) 基于宏的嵌入式系统地址线数据线测试方法和装置
CN112445528B (zh) 基于流水线约束的结果自校验指令序列填充方法
JP2007317085A (ja) Icカードテスト装置、icカードテスト方法およびコンピュータプログラム
US6934941B2 (en) Compiler for generating risc object code whereby operations on bit variables written in source code are executed by processing based on bit judgement operations to thereby reduce the amount of object code

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: 20200421