CN104462674B - 验证芯片设计的方法 - Google Patents

验证芯片设计的方法 Download PDF

Info

Publication number
CN104462674B
CN104462674B CN201410691966.4A CN201410691966A CN104462674B CN 104462674 B CN104462674 B CN 104462674B CN 201410691966 A CN201410691966 A CN 201410691966A CN 104462674 B CN104462674 B CN 104462674B
Authority
CN
China
Prior art keywords
accumulating function
coverage rate
time
test
function coverage
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
Application number
CN201410691966.4A
Other languages
English (en)
Other versions
CN104462674A (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.)
Samsung Semiconductor China R&D Co Ltd
Samsung Electronics Co Ltd
Original Assignee
Samsung Semiconductor China R&D Co Ltd
Samsung Electronics 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 Samsung Semiconductor China R&D Co Ltd, Samsung Electronics Co Ltd filed Critical Samsung Semiconductor China R&D Co Ltd
Priority to CN201410691966.4A priority Critical patent/CN104462674B/zh
Publication of CN104462674A publication Critical patent/CN104462674A/zh
Application granted granted Critical
Publication of CN104462674B publication Critical patent/CN104462674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

提供一种验证芯片设计的方法。所述方法包括:(A)根据需要验证的芯片设计确定功能覆盖项以及测试代码;(B)基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率;(C)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间;(D)根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤(B),其中,所述累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。

Description

验证芯片设计的方法
技术领域
本发明涉及芯片设计技术领域,更具体地讲,涉及一种验证芯片设计的方法。
背景技术
验证芯片设计就是验证所设计的逻辑代码是否符合预期的要求(例如,是否能实现预期的功能等),是否符合原来定义好的规范。随着芯片设计的复杂度不断提高和规模不断增大,验证芯片设计所需的时间越来越长,已经占整个开发周期的70%,甚至更多。
目前,验证芯片设计的方法大多基于以累计功能覆盖率驱动的随机验证流程。图1示出现有的验证芯片设计的方法的流程图。如图1所示,在步骤S101,根据需要验证的芯片设计确定功能覆盖项以及测试代码。在步骤S102,基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率。累计功能覆盖率简单地说是一个比例数据,指累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。验证工作的目标就是尽量使累计功能覆盖率达到预设值。因此,在步骤S103,判断累计功能覆盖率是否达到预设值。在累计功能覆盖率达到预设值的情况下,验证工作完成;在累计功能覆盖率没有达到预设值的情况下,返回执行步骤S102,继续进行随机测试。通过现有的验证方式进行芯片设计的验证所需时间较长。
发明内容
本发明的示例性实施例在于提供一种验证芯片设计的方法,其能够有效地预测芯片设计的验证的完成时间并据此更新功能覆盖项、测试代码,以保证尽快、顺利地完成芯片设计的验证工作。
根据本发明提供一种验证芯片设计的方法,包括:(A)根据需要验证的芯片设计确定功能覆盖项以及测试代码;(B)基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率;(C)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间;(D)根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤(B),其中,所述累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。
可选地,步骤(C)包括:每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
可选地,步骤(C)包括:(c1)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线;(c2)确定所述拟合曲线的收敛时间,其中,所述拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间为拟合曲线的收敛时间。
可选地,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,更新功能覆盖项和/或测试代码。
可选地,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
可选地,所述方法还包括:(E)在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,返回步骤(B)。
根据本发明示例性实施例的验证芯片设计的方法,可以有效地预测芯片设计的验证的完成时间并据此更新功能覆盖项、测试代码,以保证尽快、顺利地完成芯片设计的验证工作。
将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。
附图说明
通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
图1示出现有的验证芯片设计的方法的流程图;
图2示出根据本发明示例性实施例的验证芯片设计的方法的流程图。
具体实施方式
现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。
图2示出根据本发明示例性实施例的验证芯片设计的方法的流程图。
如图2所示,在步骤S201,根据需要验证的芯片设计确定功能覆盖项以及测试代码。具体说来,根据需要验证的芯片设计预期要实现的功能确定各功能覆盖项以及测试代码,各功能覆盖项分别对应于该芯片设计需要实现的各个具体功能。为了测试到各个功能覆盖项,需要确定测试代码,以基于测试代码来测试各功能覆盖项。
在步骤S202,基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率。
这里,累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。例如,第n次随机测试结束时的累计功能覆盖率是指通过已完成的n次随机测试测试完的功能覆盖项占全部功能覆盖项的百分比。
在步骤S203,判断累计功能覆盖率是否达到预设值。在累计功能覆盖率达到预设值的情况下,验证工作完成;在累计功能覆盖率没有达到预设值的情况下,进入步骤S204。预设值可以是固定值(例如,100%),也可以是验证人员根据实际验证情况所设定的值。
在步骤S204,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
作为示例,可每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
作为示例,在累计功能覆盖率没有达到预定值的情况下,可首先根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线。
可利用各种适合的曲线拟合方法根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线。例如,可以利用最小二乘、偏最小二乘等方法。
然后,确定拟合曲线的收敛时间。这里,拟合曲线的收敛时间是指拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间。
在步骤S205,根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤S20。换言之,以预测的验证完成时间来调整功能覆盖项和/或测试代码,然后基于调整的功能覆盖项和/或测试代码返回执行步骤S202。具体说来,如果累计功能覆盖率的收敛时间较大,即还需较长时间才能够完成验证工作,则可对功能覆盖项、测试代码等进行调整,以保证能够按时完成验证工作。例如,可对始终没有测试到的功能覆盖项进行调整(修改或者删除);也可对与该功能覆盖项对应的测试代码作更明确地限定,以保证能够尽快地测试到该功能覆盖项。此外,本领域技术人员应该理解,也可通过其他适合的方法对功能覆盖项、测试代码等进行更新,以保证在目标完成时间内顺利完成验证工作。
作为示例,可在累计功能覆盖率的收敛时间超过目标完成时间的情况下,更新功能覆盖项和/或测试代码。
具体说来,以目标完成时间作为参考,累计功能覆盖率的收敛时间超过目标完成时间,即,预测在目标完成时间内无法完成验证工作,因此,需要更新功能覆盖项、测试代码等。而在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,即,预测验证完成时间不会超过目标完成时间,因此,不需要调整功能覆盖项和/或测试代码,可直接返回步骤S202,继续进行随机测试。
作为示例,可在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
即,以预测的验证完成时间与目标完成时间之间的时间差为依据来调整功能覆盖项、测试代码等。如果时间差较大(例如,时间差超过预设值),则需要对功能覆盖项、测试代码等作较大的调整,以保证在目标完成时间内可以完成验证工作。如果时间差较小(例如,时间差小于等于预设值),则不需要对功能覆盖项、测试代码等作调整或仅作较小的调整即可。
下面,以需要验证的芯片设计是用于数据输入的32位总线和用于数据输出的8位总线为例,来说明根据本发明示例性实施例的验证芯片设计的方法的流程。
这里,该芯片设计的预期目标如下:用于数据输入的32位总线(以下,称为BUS1)的数据传输格式为:8位地址、16位数据、4位传输类型、1位方向、3位传输长度,其中,方向位为“0”时执行读操作、方向位为“1”是执行写操作;读操作和写操作之间必须有2到10个时隙;传输长度位为“000”至“110”。用于数据输出的8位总线(以下,称为BUS2)的数据传输格式包括:4位地址、4位数据,其中,数据位为“0000”至“1111”;地址位为“0000”至“1110”。
首先,根据需要验证的芯片设计确定功能覆盖项为:功能覆盖项1:BUS1的方向位为“0”时执行读操作、BUS1的方向位为“1”时执行写操作;功能覆盖项2:BUS1的传输长度位为“000”、“001”、“010”、“011”、“100”、“101”、“110”;功能覆盖项3:BUS1读操作和写操作之间有2到10个时隙;功能覆盖项4:BUS2的数据位为“0000”至“1111”;功能覆盖项5:BUS2的地址位为“0000”至“1111”。
根据需要验证的芯片设计确定测试代码,基于确定的测试代码可实现:随机生成用于BUS1输入的数据,BUS2将BUS1输入的数据输出。
然后,基于测试代码随机测试功能覆盖项,获得每次随机测试结束时的累计功能覆盖率,即,获得每次随机测试结束时累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。例如,基于测试代码随机生成的用于BUS1输入的数据中的方向位为“0”时,检测到BUS1执行了读操作,基于测试代码随机生成的用于BUS1输入的数据中的方向位为“1”时,检测到BUS1执行了写操作,则确定功能覆盖项1已被测试完。BUS1的传输长度位为“000”至“110”都已被检测到,则确定功能覆盖项2已被测试完。BUS1读操作和写操作之间有2到10个时隙都已被测试到,且BUS1读操作和写操作之间没有除2到10之外的其他个时隙,则确定功能覆盖项3已被测试完。BUS2输出的数据的数据位为从“0000”至“1111”都已被检测到,则确定功能覆盖项4已被测试完。BUS2输出的数据的地址位为从“0000”至“1111”都已被检测到,则确定功能覆盖项5已被测试完。
在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
当累计功能覆盖率的收敛时间大于目标完成时间且与目标完成时间之间的时间差较小时,可不对功能覆盖项、测试代码等作调整,仅继续进行随机测试即可,例如,再进行500次随机测试后所有功能覆盖项即可被全部测试到。
当累计功能覆盖率的收敛时间大于目标完成时间且与目标完成时间之间的时间差较大时,则需要对功能覆盖项、测试代码等作较大的调整,以保证在目标完成时间内可以完成验证工作。例如,BUS1的传输长度位为“110”始终没有被测试到,可通过调整测试代码,使用于BUS1输入的数据中的传输长度位为“110”,这样,仅需要再进行一次随机测试就可以测试到该功能覆盖项。例如,BUS2的地址位为“1111”始终没有测试到,如果设计本身不要求这个地址,是不会输出这个地址的,因此,其属于多余的功能覆盖项,需要将其删除。
根据本发明的示例性实施例的验证芯片设计的方法,可以有效地预测芯片设计的验证的完成时间并据此更新功能覆盖项、测试代码,以保证尽快、顺利地完成芯片设计的验证工作。
虽然已表示和描述了本发明的一些示例性实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改。

Claims (5)

1.一种验证芯片设计的方法,包括:
(A)根据需要验证的芯片设计确定功能覆盖项以及测试代码;
(B)基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率;
(C)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间;
(D)在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤(B),
其中,所述累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比,
其中,累计功能覆盖率的收敛时间是累计功能覆盖率第一次达到预定值时所需的时间。
2.如权利要求1所述的方法,其中,步骤(C)包括:
每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
3.如权利要求1所述的方法,其中,步骤(C)包括:
(c1)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线;
(c2)确定所述拟合曲线的收敛时间,其中,所述拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间为拟合曲线的收敛时间。
4.如权利要求1所述的方法,其中,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
5.如权利要求1所述的方法,还包括:
(E)在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,返回步骤(B)。
CN201410691966.4A 2014-11-25 2014-11-25 验证芯片设计的方法 Active CN104462674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410691966.4A CN104462674B (zh) 2014-11-25 2014-11-25 验证芯片设计的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410691966.4A CN104462674B (zh) 2014-11-25 2014-11-25 验证芯片设计的方法

Publications (2)

Publication Number Publication Date
CN104462674A CN104462674A (zh) 2015-03-25
CN104462674B true CN104462674B (zh) 2017-05-31

Family

ID=52908704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410691966.4A Active CN104462674B (zh) 2014-11-25 2014-11-25 验证芯片设计的方法

Country Status (1)

Country Link
CN (1) CN104462674B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522565A (zh) * 2017-09-18 2019-03-26 深圳市中兴微电子技术有限公司 一种验证方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147829A (zh) * 2011-03-29 2011-08-10 李姮乐 一种ic功能验证方法
CN102156784A (zh) * 2011-04-18 2011-08-17 烽火通信科技股份有限公司 验证环境图形化的芯片验证方法与装置
CN102236729A (zh) * 2010-04-29 2011-11-09 无锡中星微电子有限公司 一种测试功能覆盖的方法及装置
CN102289533A (zh) * 2011-05-09 2011-12-21 江南大学 一种基于几何规划的大规模集成电路回归测试管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5872493B2 (ja) * 2012-06-13 2016-03-01 株式会社東芝 発振周波数調整回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236729A (zh) * 2010-04-29 2011-11-09 无锡中星微电子有限公司 一种测试功能覆盖的方法及装置
CN102147829A (zh) * 2011-03-29 2011-08-10 李姮乐 一种ic功能验证方法
CN102156784A (zh) * 2011-04-18 2011-08-17 烽火通信科技股份有限公司 验证环境图形化的芯片验证方法与装置
CN102289533A (zh) * 2011-05-09 2011-12-21 江南大学 一种基于几何规划的大规模集成电路回归测试管理方法

Also Published As

Publication number Publication date
CN104462674A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN104239616B (zh) 集成电路的设计方法及硬件木马检测方法
CN102737005A (zh) 设备标识符选择
CN103646138A (zh) 基于贝叶斯理论的定时截尾加速验收抽样试验优化设计方法
CN102236600B (zh) 获得代码覆盖率的方法及装置
CN105138461A (zh) 一种应用程序的接口测试方法及装置
SA517380878B1 (ar) أنظمة وطرق ووسط كمبيوتر لتحسين محاكاة خزان هيدروكربون
CN110489086A (zh) 流程执行控制方法、装置、计算机设备及存储介质
CN104020763A (zh) 输入输出接口的自动测试方法及系统
CN104462674B (zh) 验证芯片设计的方法
CN104317707A (zh) 一种基于程序结构影响感知的软件错误定位方法
CN103646031B (zh) Drc文件的坐标数据对比方法
CN103310037B (zh) 一种建立版图设计规则检测文件验证图形库的方法
CN105512372A (zh) 模型化的星载数据处理仿真测试方法
CN104598381A (zh) 一种蜕变测试中失效测试用例的定位方法
CN104574179A (zh) 银行卡资金清算平台的复核验证系统和复核验证方法
CN103810107A (zh) web项目的自动化测试方法
CN110515604A (zh) 验证环境的可执行程序文件的获取方法及装置
US9448777B2 (en) Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion
CN103093046A (zh) 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法
Bonada et al. Practical-oriented pressure sensor placement for model-based leakage location in water distribution networks
CN107665169A (zh) 处理器程序的测试方法和装置
CN105447251B (zh) 一种基于事务类型激励的验证方法
US9838229B2 (en) Method for verifying the functionality of a digital circuit
CN103294569B (zh) 智能卡的cos版本校验方法及校验装置
CN102236729B (zh) 一种测试功能覆盖的方法及装置

Legal Events

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