CN104462674A - 验证芯片设计的方法 - Google Patents
验证芯片设计的方法 Download PDFInfo
- Publication number
- CN104462674A CN104462674A CN201410691966.4A CN201410691966A CN104462674A CN 104462674 A CN104462674 A CN 104462674A CN 201410691966 A CN201410691966 A CN 201410691966A CN 104462674 A CN104462674 A CN 104462674A
- Authority
- CN
- China
- Prior art keywords
- coverage rate
- accumulating function
- test
- item
- time
- 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
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 (6)
1.一种验证芯片设计的方法,包括:
(A)根据需要验证的芯片设计确定功能覆盖项以及测试代码;
(B)基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率;
(C)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间;
(D)根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤(B),
其中,所述累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。
2.如权利要求1所述的方法,其中,步骤(C)包括:
每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
3.如权利要求1所述的方法,其中,步骤(C)包括:
(c1)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线;
(c2)确定所述拟合曲线的收敛时间,其中,所述拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间为拟合曲线的收敛时间。
4.如权利要求1所述的方法,其中,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,更新功能覆盖项和/或测试代码。
5.如权利要求4所述的方法,其中,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
6.如权利要求4所述的方法,还包括:
(E)在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,返回步骤(B)。
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 true CN104462674A (zh) | 2015-03-25 |
CN104462674B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522565A (zh) * | 2017-09-18 | 2019-03-26 | 深圳市中兴微电子技术有限公司 | 一种验证方法、装置及计算机可读存储介质 |
Citations (5)
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 | 江南大学 | 一种基于几何规划的大规模集成电路回归测试管理方法 |
US20130335148A1 (en) * | 2012-06-13 | 2013-12-19 | Kabushiki Kaisha Toshiba | Oscillation frequency adjusting circuit |
-
2014
- 2014-11-25 CN CN201410691966.4A patent/CN104462674B/zh active Active
Patent Citations (5)
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 | 江南大学 | 一种基于几何规划的大规模集成电路回归测试管理方法 |
US20130335148A1 (en) * | 2012-06-13 | 2013-12-19 | Kabushiki Kaisha Toshiba | Oscillation frequency adjusting circuit |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522565A (zh) * | 2017-09-18 | 2019-03-26 | 深圳市中兴微电子技术有限公司 | 一种验证方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104462674B (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US9632921B1 (en) | Validation using scenario runners | |
US10824541B1 (en) | System and method for test data fabrication | |
CN105138461A (zh) | 一种应用程序的接口测试方法及装置 | |
CN104778032A (zh) | 一种用于进行持续集成的方法和设备 | |
CN105589928A (zh) | 用于分布式数据处理系统的模拟测试方法 | |
CN110489086A (zh) | 流程执行控制方法、装置、计算机设备及存储介质 | |
CN105117345A (zh) | 一种应用程序的接口测试方法及装置 | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
US20130031532A1 (en) | Method, computer, and device for validating execution of tasks in adaptable computer systems | |
CN102508766A (zh) | 一种航天嵌入式c语言软件运行时错误的静态分析方法 | |
US20150082287A1 (en) | Scenario based test design | |
CN112182782B (zh) | 运载火箭环境适应性分析方法、系统、终端及介质 | |
US9646252B2 (en) | Template clauses based SAT techniques | |
CN104462674A (zh) | 验证芯片设计的方法 | |
KR101665962B1 (ko) | 모델링 코드 검증 방법, 이를 수행하는 모델링 코드 검증 장치 및 이를 저장하는 기록매체 | |
CN110971478B (zh) | 云平台服务性能的压测方法、装置及计算设备 | |
Markiegi et al. | Dynamic test prioritization of product lines: An application on configurable simulation models | |
US9448777B2 (en) | Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion | |
EP3070611A1 (en) | Statistical model-based test design for effective test case generation | |
CN105022661A (zh) | 一种多处理器系统可调度性验证方法 | |
EP2947566B1 (en) | Methods and apparatus to use an access triggered computer architecture | |
US11860769B1 (en) | Automatic test maintenance leveraging machine learning algorithms | |
CN112307589B (zh) | 单位工况创建方法、装置、电子设备及存储介质 | |
KR101692114B1 (ko) | 태스크 실행 오류 진단 장치 및 방법 |
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 |