CN104698368A - 一种实现芯片顶层测试用例重用的方法 - Google Patents
一种实现芯片顶层测试用例重用的方法 Download PDFInfo
- Publication number
- CN104698368A CN104698368A CN201510149666.8A CN201510149666A CN104698368A CN 104698368 A CN104698368 A CN 104698368A CN 201510149666 A CN201510149666 A CN 201510149666A CN 104698368 A CN104698368 A CN 104698368A
- Authority
- CN
- China
- Prior art keywords
- define
- test case
- value
- header file
- script
- 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
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种实现芯片顶层测试用例重用的方法,包括如下步骤:S101:设置通用头文件“nfc_define.h”中define的默认值;S102:判断待测试模块是否为S1中define的默认值所指代的默认测试用例,如果是则转到步骤S104,否则转到步骤S103;S103:指定在通用头文件“nfc_define.h”中需要使用的define值,以决定所测试的用例;S104:将define中的值传递到测试用例脚本;S201:根据测试用例的名字以及define的参数,准备测试用文件;S301:根据步骤S103中指定的define值,将通用头文件修改成特定头文件。
Description
技术领域
本发明属于片上系统的芯片验证技术领域,具体涉及一种实现芯片顶层测试用例重用的方法;采用该方法不需要重复编写测试代码,亦无需要手动修改测试用例,即可实现测试用例的重用,有效提高了芯片顶层验证效率。
背景技术
在现有的芯片验证中,顶层测试用例使用C语言编写,对寄存器的操作都是对预先定义的宏地址进行读写操作。根据芯片内部功能需求,某一模块可能被例化多次,比如Nand Flash控制器(NFC)在一个芯片内被例化了两次,分别为NFC0和NFC1,这两个模块实现的功能完全一样,唯一不同的是它们被访问的基地址不一样。
现有技术的芯片设计中,某个模块可能会被重复使用多次。对于同一模块的多次重复使用,每一次使用的功能和实现都是一样的,只是每次使用时在芯片中对应的基地址不一样。因此在编写顶层测试用例时,若分开编写功能相同的用例,代码冗余就会很大;若共用同一测试用例,则需要手动修改各个模块的基地址,虽然减小了代码冗余,但操作起来比较繁琐,而且手动修改也容易产生人为误操作。此为现有技术的不足之处。
因此,提供设计一种实现芯片顶层测试用例重用的方法是非常有必要的。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种实现芯片顶层测试用例重用的方法,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种实现芯片顶层测试用例重用的方法,包括如下步骤:
S1:运行上层命令脚本;该步骤包括:
S101:设置通用头文件“nfc_define.h”中define的默认值;
S102:判断待测试模块是否为S1中define的默认值所指代的默认测试用例,如果是则转到步骤S104,否则转到步骤S103;
S103:指定在通用头文件“nfc_define.h”中需要使用的define值,以决定所测试的用例;
S104:将define中的值传递到测试用例脚本;
S2:运行测试用例处理脚本,该步骤包括:
S201:根据测试用例的名字以及define的参数,准备测试用文件;
S3:运行产生特定头文件的脚本,包括如下步骤:
S301:根据步骤S103中指定的define值,将通用头文件修改成特定头文件。
优选地,所述步骤S101中define的默认值为NFC0。
优选地,所述步骤S103中,将默认的define值替换为需要使用的define值。
优选地,所述步骤S103中,将默认的define值替换为需要使用的define值的语句为:“+define+NFC0=0 +define+NFCX=X”,其中,X指代待检测用例的相应编号。
本发明的有益效果在于,本方法不需要重复编写测试代码,也不需要手动修改测试用例,即可实现测试用例的重用以及验证的自动化执行,有效提高了芯片顶层验证效率。此外,本发明设计原理可靠,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
具体实施方式
下面通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
本发明提供了一种实现芯片顶层测试用例重用的方法,包括如下步骤:
S1:运行上层命令脚本;该步骤包括:
S101:设置通用头文件“nfc_define.h”中define的默认值;
S102:判断待测试模块是否为S1中define的默认值所指代的默认测试用例,如果是则转到步骤S104,否则转到步骤S103;
S103:指定在通用头文件“nfc_define.h”中需要使用的define值,以决定所测试的用例;
S104:将define中的值传递到测试用例脚本;
S2:运行测试用例处理脚本,该步骤包括:
S201:根据测试用例的名字以及define的参数,准备测试用文件;
S3:运行产生特定头文件的脚本,包括如下步骤:
S301:根据步骤S103中指定的define值,将通用头文件修改成特定头文件。
本实施例中,所述步骤S101中define的默认值为NFC0。
本实施例中,所述步骤S103中,将默认的define值替换为需要使用的define值。
本实施例中,所述步骤S103中,将默认的define值替换为需要使用的define值的语句为:“+define+NFC0=0 +define+NFCX=X”,其中,X指代待检测用例的相应编号。
本实施例中,以NFC0以及NFC1为例给出三个脚本的运行具体步骤以及代码。
步骤:
1) 运行上层命令脚本:该脚本执行时会指定在通用头文件“nfc_define.h”中需要使用的define值,从而决定将要测试哪个模块。默认的define值为NFC0,即测试的模块为NFC0。若要测试模块NFC1,则在运行该上层命令脚本时需要指定“+define+NFC0=0 +define+NFC1=1”。在该脚本中会自动调用测试用例处理脚本。
2) 运行测试用例处理脚本:该脚本为所有测试用例共用的脚本。该脚本根据测试用例的名字以及上层命令脚本传递进来的define参数,为运行特定测试用例准备相关文件。在该脚本中会自动调用产生特定头文件的脚本。
3) 运行产生特定头文件的脚本:该脚本根据上层命令脚本传递来的define值,把通用头文件自动修改成特定头文件。还是以NFC模块测试为例,当在上层命令脚本中指定了“+define+NFC0=0 +define+NFC1=1”时,产生特定头文件的脚本就会自动把“nfc_define.h”头文件中的“#define NFC0”删除掉,同时在“nfc_define.h”头文件中增加定义“#define NFC1”,这样测试用例操作的地址就不再是NFC0的寄存器地址,而是换成了NFC1的寄存器地址,从而就能对模块NFC1进行测试了。
代码:
“nfc.c”
wr_addr(NFC_SETTING) = 0x000148c0;
wr_addr(NFC_CTRL ) = 0x0000ff00;
“nfc_define.h”
#ifndef _H
#define _H
#define NFC0
#define NFC0_SETTING 0x10000000
#define NFC0_CTRL 0x10000004
…… …… …… ……
#define NFC1_SETTING 0x10a00000
#define NFC1_CTRL 0x10a00004
…… …… …… ……
#ifdef NFC0
#define NFC_SETTING NFC0_SETTING
#define NFC_CTRL NFC0_CTRL
…… …… …… ……
#endif
#ifdef NFC1
#define NFC_SETTING NFC1_SETTING
#define NFC_CTRL NFC1_CTRL
…… …… …… ……
#endif
#endif
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (4)
1.一种实现芯片顶层测试用例重用的方法,包括如下步骤:
S1:运行上层命令脚本;该步骤包括:
S101:设置通用头文件“nfc_define.h”中define的默认值;
S102:判断待测试模块是否为S1中define的默认值所指代的默认测试用例,如果是则转到步骤S104,否则转到步骤S103;
S103:指定在通用头文件“nfc_define.h”中需要使用的define值,以决定所测试的用例;
S104:将define中的值传递到测试用例脚本;
S2:运行测试用例处理脚本,该步骤包括:
S201:根据测试用例的名字以及define的参数,准备测试用文件;
S3:运行产生特定头文件的脚本,包括如下步骤:
S301:根据步骤S103中指定的define值,将通用头文件修改成特定头文件。
2.根据权利要求1所述的一种实现芯片顶层测试用例重用的方法,其特征在于:所述步骤S101中define的默认值为NFC0。
3.根据权利要求1或2所述的一种实现芯片顶层测试用例重用的方法,其特征在于:所述步骤S103中,将默认的define值替换为需要使用的define值。
4.根据权利要求3所述的一种实现芯片顶层测试用例重用的方法,其特征在于:所述步骤S103中,将默认的define值替换为需要使用的define值的语句为:“+define+NFC0=0 +define+NFCX=X”,其中,X指代待检测用例的相应编号。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510149666.8A CN104698368B (zh) | 2015-04-01 | 2015-04-01 | 一种实现芯片顶层测试用例重用的方法 |
PCT/CN2015/088146 WO2016155217A1 (zh) | 2015-04-01 | 2015-08-26 | 一种实现芯片顶层测试用例重用的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510149666.8A CN104698368B (zh) | 2015-04-01 | 2015-04-01 | 一种实现芯片顶层测试用例重用的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104698368A true CN104698368A (zh) | 2015-06-10 |
CN104698368B CN104698368B (zh) | 2017-11-10 |
Family
ID=53345696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510149666.8A Active CN104698368B (zh) | 2015-04-01 | 2015-04-01 | 一种实现芯片顶层测试用例重用的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104698368B (zh) |
WO (1) | WO2016155217A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016155217A1 (zh) * | 2015-04-01 | 2016-10-06 | 山东华芯半导体有限公司 | 一种实现芯片顶层测试用例重用的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06243115A (ja) * | 1993-02-22 | 1994-09-02 | Nec Corp | マルチプロセッサシステムにおける機能モジュール追加方式 |
US5675546A (en) * | 1996-06-07 | 1997-10-07 | Texas Instruments Incorporated | On-chip automatic procedures for memory testing |
WO2004088478A3 (en) * | 2003-03-31 | 2005-04-21 | Arraycomm Inc | Autonomous built-in self-test for integrated circuits |
CN1987817A (zh) * | 2005-12-22 | 2007-06-27 | 中兴通讯股份有限公司 | 一种实现测试用例自动化运行的方法 |
JP2011007630A (ja) * | 2009-06-25 | 2011-01-13 | Fujitsu Semiconductor Ltd | 試験方法及び試験装置 |
CN102609583A (zh) * | 2012-02-08 | 2012-07-25 | 福州瑞芯微电子有限公司 | 芯片寄存器信息管理方法 |
CN102622471A (zh) * | 2012-02-22 | 2012-08-01 | 山东华芯半导体有限公司 | 集成电路前端验证方法 |
WO2014178930A1 (en) * | 2013-04-30 | 2014-11-06 | Advantest Corporation | Automated generation of a test class pre-header from an interactive graphical user interface |
CN104156314A (zh) * | 2014-08-14 | 2014-11-19 | 北京航空航天大学 | 一种应用于测试系统的代码重用方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737609A (en) * | 1994-10-18 | 1998-04-07 | Marcam Corporation | Method and apparatus for testing object-oriented programming constructs |
US7149943B2 (en) * | 2004-01-12 | 2006-12-12 | Lucent Technologies Inc. | System for flexible embedded Boundary Scan testing |
CN100362817C (zh) * | 2005-04-07 | 2008-01-16 | 华为技术有限公司 | 软件模块的测试方法 |
CN100363906C (zh) * | 2006-02-28 | 2008-01-23 | 华为技术有限公司 | 一种软件单元的测试方法 |
CN104698368B (zh) * | 2015-04-01 | 2017-11-10 | 山东华芯半导体有限公司 | 一种实现芯片顶层测试用例重用的方法 |
-
2015
- 2015-04-01 CN CN201510149666.8A patent/CN104698368B/zh active Active
- 2015-08-26 WO PCT/CN2015/088146 patent/WO2016155217A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06243115A (ja) * | 1993-02-22 | 1994-09-02 | Nec Corp | マルチプロセッサシステムにおける機能モジュール追加方式 |
US5675546A (en) * | 1996-06-07 | 1997-10-07 | Texas Instruments Incorporated | On-chip automatic procedures for memory testing |
WO2004088478A3 (en) * | 2003-03-31 | 2005-04-21 | Arraycomm Inc | Autonomous built-in self-test for integrated circuits |
CN1987817A (zh) * | 2005-12-22 | 2007-06-27 | 中兴通讯股份有限公司 | 一种实现测试用例自动化运行的方法 |
JP2011007630A (ja) * | 2009-06-25 | 2011-01-13 | Fujitsu Semiconductor Ltd | 試験方法及び試験装置 |
CN102609583A (zh) * | 2012-02-08 | 2012-07-25 | 福州瑞芯微电子有限公司 | 芯片寄存器信息管理方法 |
CN102622471A (zh) * | 2012-02-22 | 2012-08-01 | 山东华芯半导体有限公司 | 集成电路前端验证方法 |
WO2014178930A1 (en) * | 2013-04-30 | 2014-11-06 | Advantest Corporation | Automated generation of a test class pre-header from an interactive graphical user interface |
CN104156314A (zh) * | 2014-08-14 | 2014-11-19 | 北京航空航天大学 | 一种应用于测试系统的代码重用方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016155217A1 (zh) * | 2015-04-01 | 2016-10-06 | 山东华芯半导体有限公司 | 一种实现芯片顶层测试用例重用的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016155217A1 (zh) | 2016-10-06 |
CN104698368B (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514225B2 (en) | Verification platform for system on chip and verification method thereof | |
CN102591997A (zh) | 多电压芯片设计的版图和原理图一致性比较方法 | |
CN105022691A (zh) | 一种基于uml图的高度自动化软件测试方法 | |
CN104408264A (zh) | 一种基于断言的嵌入式存储控制器验证系统及方法 | |
CN105589837B (zh) | 一种电子文档的自动查错方法 | |
CN109885905B (zh) | 一种提高数字电路功能验证效率的验证系统 | |
CN106773954B (zh) | 一种微控制器芯片中的工作模式控制系统 | |
CN104536885A (zh) | 一种生成Soc随机验证平台的方法 | |
CN105279092A (zh) | 一种软件测试的方法及装置 | |
CN102902526B (zh) | 一种通过延时实现bmc及ip信息的自动化设置方法 | |
CN108334428B (zh) | 一种系统功能的并行测试方法 | |
CN104765671A (zh) | 一种用可重用性层次化验证平台进行uart模块验证的方法 | |
CN104698368A (zh) | 一种实现芯片顶层测试用例重用的方法 | |
CN102135939A (zh) | 一种测试用例执行调度装置及方法 | |
CN102200565A (zh) | 一种芯片测试装置 | |
CN101916305A (zh) | 一种复杂管脚芯片的验证方法 | |
CN105677527A (zh) | 一种自动测量嵌入式存储器最大工作频率的系统及方法 | |
CN102750167B (zh) | 应用程序启动方法、装置和计算机系统 | |
US9015673B2 (en) | Method for developing software in a parallel computing environment | |
CN103870288B (zh) | 车载控制器功能软件分支跳转方法 | |
CN100585601C (zh) | 在ic验证中描述pci接口配置流的方法 | |
US8972711B2 (en) | CPU core unlocking device applied to computer system | |
CN109828786A (zh) | 一种基于代码级支持sw_64架构的自动化工具 | |
CN102736976B (zh) | 调试系统及其调试方法 | |
CN101763300B (zh) | Sata端口测试信号生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |