验证芯片设计的方法

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

【技术领域】
[0001]本发明涉及芯片设计【技术领域】,更具体地讲,涉及一种验证芯片设计的方法。

【背景技术】
[0002]验证芯片设计就是验证所设计的逻辑代码是否符合预期的要求(例如,是否能实现预期的功能等),是否符合原来定义好的规范。随着芯片设计的复杂度不断提高和规模不断增大,验证芯片设计所需的时间越来越长,已经占整个开发周期的70%,甚至更多。
[0003]目前,验证芯片设计的方法大多基于以累计功能覆盖率驱动的随机验证流程。图1示出现有的验证芯片设计的方法的流程图。如图1所示,在步骤S101,根据需要验证的芯片设计确定功能覆盖项以及测试代码。在步骤S102,基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率。累计功能覆盖率简单地说是一个比例数据,指累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。验证工作的目标就是尽量使累计功能覆盖率达到预设值。因此,在步骤S103,判断累计功能覆盖率是否达到预设值。在累计功能覆盖率达到预设值的情况下,验证工作完成;在累计功能覆盖率没有达到预设值的情况下,返回执行步骤S102,继续进行随机测试。通过现有的验证方式进行芯片设计的验证所需时间较长。


【发明内容】

[0004]本发明的示例性实施例在于提供一种验证芯片设计的方法,其能够有效地预测芯片设计的验证的完成时间并据此更新功能覆盖项、测试代码,以保证尽快、顺利地完成芯片设计的验证工作。
[0005]根据本发明提供一种验证芯片设计的方法,包括:(A)根据需要验证的芯片设计确定功能覆盖项以及测试代码;(B)基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率;(C)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间;(D)根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤(B),其中,所述累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。
[0006]可选地,步骤(C)包括:每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
[0007]可选地,步骤(C)包括:(Cl)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线;(c2)确定所述拟合曲线的收敛时间,其中,所述拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间为拟合曲线的收敛时间。
[0008]可选地,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,更新功能覆盖项和/或测试代码。
[0009]可选地,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
[0010]可选地,所述方法还包括:(E)在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,返回步骤(B)。
[0011]根据本发明示例性实施例的验证芯片设计的方法,可以有效地预测芯片设计的验证的完成时间并据此更新功能覆盖项、测试代码,以保证尽快、顺利地完成芯片设计的验证工作。
[0012]将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。

【专利附图】

【附图说明】
[0013]通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
[0014]图1示出现有的验证芯片设计的方法的流程图;
[0015]图2示出根据本发明示例性实施例的验证芯片设计的方法的流程图。

【具体实施方式】
[0016]现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。
[0017]图2示出根据本发明示例性实施例的验证芯片设计的方法的流程图。
[0018]如图2所示,在步骤S201,根据需要验证的芯片设计确定功能覆盖项以及测试代码。具体说来,根据需要验证的芯片设计预期要实现的功能确定各功能覆盖项以及测试代码,各功能覆盖项分别对应于该芯片设计需要实现的各个具体功能。为了测试到各个功能覆盖项,需要确定测试代码,以基于测试代码来测试各功能覆盖项。
[0019]在步骤S202,基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率。
[0020]这里,累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。例如,第η次随机测试结束时的累计功能覆盖率是指通过已完成的η次随机测试测试完的功能覆盖项占全部功能覆盖项的百分比。
[0021]在步骤S203,判断累计功能覆盖率是否达到预设值。在累计功能覆盖率达到预设值的情况下,验证工作完成;在累计功能覆盖率没有达到预设值的情况下,进入步骤S204。预设值可以是固定值(例如,100% ),也可以是验证人员根据实际验证情况所设定的值。
[0022]在步骤S204,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
[0023]作为示例,可每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
[0024]作为示例,在累计功能覆盖率没有达到预定值的情况下,可首先根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线。
[0025]可利用各种适合的曲线拟合方法根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线。例如,可以利用最小二乘、偏最小二乘等方法。
[0026]然后,确定拟合曲线的收敛时间。这里,拟合曲线的收敛时间是指拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间。
[0027]在步骤S205,根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤S20。换言之,以预测的验证完成时间来调整功能覆盖项和/或测试代码,然后基于调整的功能覆盖项和/或测试代码返回执行步骤S202。具体说来,如果累计功能覆盖率的收敛时间较大,即还需较长时间才能够完成验证工作,则可对功能覆盖项、测试代码等进行调整,以保证能够按时完成验证工作。例如,可对始终没有测试到的功能覆盖项进行调整(修改或者删除);也可对与该功能覆盖项对应的测试代码作更明确地限定,以保证能够尽快地测试到该功能覆盖项。此外,本领域技术人员应该理解,也可通过其他适合的方法对功能覆盖项、测试代码等进行更新,以保证在目标完成时间内顺利完成验证工作。
[0028]作为示例,可在累计功能覆盖率的收敛时间超过目标完成时间的情况下,更新功能覆盖项和/或测试代码。
[0029]具体说来,以目标完成时间作为参考,累计功能覆盖率的收敛时间超过目标完成时间,即,预测在目标完成时间内无法完成验证工作,因此,需要更新功能覆盖项、测试代码等。而在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,即,预测验证完成时间不会超过目标完成时间,因此,不需要调整功能覆盖项和/或测试代码,可直接返回步骤S202,继续进行随机测试。
[0030]作为示例,可在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
[0031]g卩,以预测的验证完成时间与目标完成时间之间的时间差为依据来调整功能覆盖项、测试代码等。如果时间差较大(例如,时间差超过预设值),则需要对功能覆盖项、测试代码等作较大的调整,以保证在目标完成时间内可以完成验证工作。如果时间差较小(例如,时间差小于等于预设值),则不需要对功能覆盖项、测试代码等作调整或仅作较小的调整即可。
[0032]下面,以需要验证的芯片设计是用于数据输入的32位总线和用于数据输出的8位总线为例,来说明根据本发明示例性实施例的验证芯片设计的方法的流程。
[0033]这里,该芯片设计的预期目标如下:用于数据输入的32位总线(以下,称为BUS1)的数据传输格式为:8位地址、16位数据、4位传输类型、I位方向、3位传输长度,其中,方向位为“O”时执行读操作、方向位为“I”是执行写操作;读操作和写操作之间必须有2到10个时隙;传输长度位为“000”至“110”。用于数据输出的8位总线(以下,称为BUS2)的数据传输格式包括:4位地址、4位数据,其中,数据位为“0000”至“1111” ;地址位为“0000”至“1110”。
[0034]首先,根据需要验证的芯片设计确定功能覆盖项为:功能覆盖项1:BUS1的方向位为“O”时执行读操作、BUSl的方向位为“I”时执行写操作;功能覆盖项2:BUS1的传输长度位为“000”、“001”、“010”、“011”、“100”、“101”、“110”;功能覆盖项 3 -BUSl 读操作和写操作之间有2到10个时隙;功能覆盖项4:BUS2的数据位为“0000”至“1111”;功能覆盖项5:BUS2的地址位为“0000”至“1111”。
[0035]根据需要验证的芯片设计确定测试代码,基于确定的测试代码可实现:随机生成用于BUSl输入的数据,BUS2将BUSl输入的数据输出。
[0036]然后,基于测试代码随机测试功能覆盖项,获得每次随机测试结束时的累计功能覆盖率,即,获得每次随机测试结束时累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。例如,基于测试代码随机生成的用于BUSl输入的数据中的方向位为“O”时,检测到BUSl执行了读操作,基于测试代码随机生成的用于BUSl输入的数据中的方向位为“I”时,检测到BUSl执行了写操作,则确定功能覆盖项I已被测试完。BUSl的传输长度位为“000”至“110”都已被检测到,则确定功能覆盖项2已被测试完。BUSl读操作和写操作之间有2到10个时隙都已被测试到,且BUSl读操作和写操作之间没有除2到10之外的其他个时隙,则确定功能覆盖项3已被测试完。BUS2输出的数据的数据位为从“0000”至“1111”都已被检测到,则确定功能覆盖项4已被测试完。BUS2输出的数据的地址位为从“0000”至“1111”都已被检测到,则确定功能覆盖项5已被测试完。
[0037]在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
[0038]当累计功能覆盖率的收敛时间大于目标完成时间且与目标完成时间之间的时间差较小时,可不对功能覆盖项、测试代码等作调整,仅继续进行随机测试即可,例如,再进行500次随机测试后所有功能覆盖项即可被全部测试到。
[0039]当累计功能覆盖率的收敛时间大于目标完成时间且与目标完成时间之间的时间差较大时,则需要对功能覆盖项、测试代码等作较大的调整,以保证在目标完成时间内可以完成验证工作。例如,BUSl的传输长度位为“110”始终没有被测试到,可通过调整测试代码,使用于BUSl输入的数据中的传输长度位为“ 110”,这样,仅需要再进行一次随机测试就可以测试到该功能覆盖项。例如,BUS2的地址位为“1111”始终没有测试到,如果设计本身不要求这个地址,是不会输出这个地址的,因此,其属于多余的功能覆盖项,需要将其删除。
[0040]根据本发明的示例性实施例的验证芯片设计的方法,可以有效地预测芯片设计的验证的完成时间并据此更新功能覆盖项、测试代码,以保证尽快、顺利地完成芯片设计的验证工作。
[0041]虽然已表示和描述了本发明的一些示例性实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改。
【权利要求】
1.一种验证芯片设计的方法,包括: (A)根据需要验证的芯片设计确定功能覆盖项以及测试代码; (B)基于测试代码随机测试功能覆盖项,以获得每次随机测试结束时的累计功能覆盖率; (C)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间; (D)根据累计功能覆盖率的收敛时间更新功能覆盖项和/或测试代码,然后基于更新的功能覆盖项和/或测试代码返回执行步骤(B), 其中,所述累计功能覆盖率是累计的已测试完的功能覆盖项占全部功能覆盖项的百分比。
2.如权利要求1所述的方法,其中,步骤(C)包括: 每隔预定随机测试次数或每隔预定时间,在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率计算累计功能覆盖率的收敛时间。
3.如权利要求1所述的方法,其中,步骤(C)包括: (cl)在累计功能覆盖率没有达到预定值的情况下,根据已完成的各次随机测试对应的测试结束时间和累计功能覆盖率,确定时间和累计功能覆盖率之间的拟合曲线; (c2)确定所述拟合曲线的收敛时间,其中,所述拟合曲线第一次达到预定值的累计功能覆盖率时对应的时间为拟合曲线的收敛时间。
4.如权利要求1所述的方法,其中,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,更新功能覆盖项和/或测试代码。
5.如权利要求4所述的方法,其中,在步骤(D)中,在累计功能覆盖率的收敛时间超过目标完成时间的情况下,根据累计功能覆盖率的收敛时间与目标完成时间之间的时间差更新功能覆盖项和/或测试代码。
6.如权利要求4所述的方法,还包括: (E)在累计功能覆盖率的收敛时间没有超过目标完成时间的情况下,返回步骤(B)。
【文档编号】G06F17/50GK104462674SQ201410691966
【公开日】2015年3月25日 申请日期:2014年11月25日 优先权日:2014年11月25日
【发明者】吕明 申请人:三星半导体(中国)研究开发有限公司, 三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1