一种基于证明核的回归测试方法、存储介质及系统与流程

文档序号:21849771发布日期:2020-08-14 17:24阅读:282来源:国知局
一种基于证明核的回归测试方法、存储介质及系统与流程

本发明涉及芯片设计领域,特别是涉及一种基于证明核的回归测试方法、存储介质。



背景技术:

由于仿真对于超大规模设计来说太耗费时间,形式验证就出现了。当确认设计的功能仿真是正确的以后,设计实现的每一个步骤的结果都可以与上个步骤的结果做形式比较,也就是等价检查,如果一致就说明设计合理,不必进行仿真了。形式验证主要是进行逻辑形式和功能的一致性比较,是靠工具自己来完成,无需开发测试向量。而且由于实现的每个步骤之间逻辑结构变化都不是很大,所有逻辑的形式比较会非常快,这比仿真的时间要少很多。形式验证是一种ic设计的验证方法,它的主要思想是通过使用形式证明的方式来验证一个设计的功能是否正确。形式验证可以分为三大类:等价验证、形式模型检查(也被称作特性检查)和定理证明。

等价验证是芯片设计中验证设计在优化前后功能一致性的一种常用的方法。等价验证中优化前后两个设计首先进行触发器配对,然后对配对的触发器的跳转(输入)逻辑进行对比。由于跳转逻辑是组合逻辑,所有这种对比称作组合逻辑等价验证。等价验证用于验证rtl设计与门级网表、门级网表与门级网表是否一致。在进行扫描链重排、时钟树综合等过程中,都可以用等价性检查保证网表的一致性。等价性检查已经融入ic标准设计流程中。等价性检查在检查eco时非常有用。例如,设计者在修改门级网表时,由于手误,错将一个或门写成或非门,等价性检查工具通过比较rtl设计与门级网表,可以很容易地发现这种错误。

形式验证和设计纠错是个迭代过程,在验证多个属性时,出错属性会触发设计纠错和修改,之后整个验证环境会做回归测试,来保证设计修改后之前正确的属性仍然正确,回归测试的一个简单优化方法是分析设计修改产生的影响。

但是在属性较多,芯片设计改动较大的情况下,现有技术中直接的回归测试用时可能会和原始验证耗时一样,由于形式验证的计算量大,这种优化仍然不足以降低形式验证回归测试计算量对整个设计验证迭代的影响。



技术实现要素:

本发明主要解决的技术问题是提供一种回归测试的方法、存储介质及系统,解决现有技术在属性较多、设计改动较大的情况下计算量大的问题,能够把重新验证一个属性所需的指数级时间降低为常数级且缩小验证空间。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于证明核的回归测试方法、存储介质及系统。

其中,一种基于证明核的回归测试方法包括以下内容:

对芯片设计的属性进行形式验证,所述属性验证为真后,记录对应属性的证明核,所述证明核中存储驱动逻辑电路的信号;

对修改后的芯片设计进行回归测试,其中对于每一个被验证属性均调入之前记录的对应的证明核进行验证。

优选地,所述调入之前记录的对应的证明核进行验证包括:

将证明核作为完成回归测试的约束。

优选地,所述将证明核作为完成回归测试的约束包括:

由所述证明核直接推导出之前被验证为真的属性。

优选地,调入之前记录的对应的证明核进行验证包括:根据所述证明核中存储的驱动逻辑电路的信号,把所有不驱动逻辑电路的其他信号从验证空间中去掉。

优选地,所述回归测试采用一步归纳测试,如果通过则结束。

优选地,若所述一步归纳测试没有通过,进行设计抽象,然后对属性进行验证,如果通过则属性验证结束。

优选地,如果属性验证不通过,则验证的属性做正常形式验证。

优选地,所述证明核是基于属性相关的一个逻辑函数;所述逻辑函数代表的状态集包括芯片设计的初始状态,所述状态集在一步跳转后,不会到达所述状态集之外的状态。

一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行一种基于证明核的回归测试方法的内容。

一种基于证明核的回归测试系统,包括:

形式验证模块,用于对芯片设计的属性进行形式验证,并记录对应属性的证明核;

回归测试模块,用于对修改后的芯片设计进行回归测试。

本发明的有益效果是:(1)对芯片设计的属性进行形式验证,所述属性验证为真后,记录对应属性的证明核,利用该证明核对修改后的芯片设计进行回归测试,在属性较多,改动较大的情况下,基于证明核的回归测试优化方法,大大降低计算量,把重新验证一个属性所需的指数级时间降低为常数级;(2)根据证明核中存储的驱动逻辑电路的信号,把所有不驱动逻辑电路的其他信号从验证空间中去掉,缩小验证空间。

附图说明

图1是本发明形式验证和回归测试方法流程图。

具体实施方式

为了使本发明的技术方案、目的和有益效果更加清楚和完整,以下结合实施例对本发明作进一步地阐述。

形式验证和设计纠错是个迭代过程。在验证多个属性时,出错属性会触发设计纠错和修改。之后整个验证环境会做回归测试,回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,来保证设计修改后之前正确的属性仍然正确。

每个芯片设计中存在很多的性质和关系,构成芯片的特性,称为芯片的属性,每个芯片包含多个属性,每个属性对应相应的逻辑函数、逻辑电路以及驱动逻辑电路的信号,在计算机硬件(特别是集成电路)和软件系统的设计过程中,形式验证的含义是根据某个或某些形式规范或属性,使用数学的方法证明其正确性或非正确性。

在一示例性实施例中,一种基于证明核的回归测试方法、存储介质及系统,如图1所示,一种基于证明核的回归测试方法包括以下内容:

对芯片设计的属性进行形式验证,所述属性验证为真后,记录对应属性的证明核,所述证明核中存储驱动逻辑电路的信号;

对修改后的芯片设计进行回归测试,其中对于每一个被验证属性均调入之前记录的对应的证明核进行验证。

一般回归形式验证会用同样长的时间,而且回归形式验证会多次发生。

多种形式验证算法在证明一个属性后,可以生成一个数据结构叫做证明核,比如归纳算法,差值算法,ic3算法,多可以生成证明核。第一次验证结束后证明核被存下来。证明核是一个布尔表达式,其特性是它在被验证设计中为真,并且它可以直接推导出被证明的属性,设计更改后,做回归测试,对于每一个被验证属性,调入之前存下的证明核。由于从证明核到属性的推导比重新证明属性要快的多,所以回归测试大量属性的耗时在利用证明核的情况下就要少的多。

进一步地,证明核的特点是相对于属性的依赖逻辑(cone-of-influence,coi),证明核通常很小,而且和整个设计的规模基本无关。所有证明核的规模可以看作是一个常量。证明核的另一个特点,就是它是一步归纳的(1-inductive)。一个函数称为一步归纳就是把整个设计看作状态机的情况下,函数代表的状态集首先包括设计的初始状态,然后这个状态集在一步跳转后,不会到达集之外的状态。由于证明核的规模可以看作常量,其一步归纳所需的状态跳转函数也可以视为常量,这样一步归纳的时间也可以视为常量。

归纳法分三步:第一步,状态机初始状态满足证明核,即初始状态包含在证明核代表的状态集合之内;第二步,计算从证明核状态集合出发,根据状态机跳转函数所能到达的所有状态;第三步,证明第二步计算的状态集合包含在证明核的状态集合之内。如果第一步和第三步的包含关系都成立,那么证明核就满足来一步归纳测试。

进一步地,一种基于证明核的回归测试方法,所述证明核是基于属性相关的一个逻辑函数。

进一步地,一种基于证明核的回归测试方法,所述逻辑函数代表的状态集初始状态,所述状态集在一步跳转后,不会到达所述状态集之外的状态。

进一步地,假设被证明的属性为表达式a!=b,a,b为设计中的信号,该属性被验证为真后可能生成证明核a<b,这个表达式在设计中也为真,并且很容易推导出a!=b,这个证明过程可能会很长。

进一步地,一种基于证明核的回归测试方法,进行所述回归测试时,对于每一个被验证属性的验证,调用之前记录下的证明核。

进一步地,一种基于证明核的回归测试方法,由所述证明核直接推导出之前被验证为真的属性。由于从证明核到属性的推导比重新证明属性要快的多,所以回归测试大量属性的耗时在利用证明核的情况下就要少的多。

进一步地,证明核的具体使用分有两种情况:一是把证明核作为约束,用一步归纳的方法完成验证。另一种是当所述设计的改正比较大时,

调入之前记录的对应的证明核,根据所述证明核中存储的驱动逻辑电路的信号,把所有不驱动逻辑电路的其他信号从验证空间中去掉,即将证明核涉及到的信号作为抽象信号对所述设计进行抽象处理。

当设计改动比较大时,可能证明核本身已经不为真,不可以作为约束,但是证明所需要的电路逻辑可能仍然局限于证明核中的信号,例如上面的信号a,b。基于一组信号的抽象是把所有不驱动该组信号的其他信号从验证空间中去掉,达到缩小验证空间的目的,也可以减少验证时间。

进一步地,设计改动可能影响到哪些属性在验证前是不知道的。比如对设计输入信号相关逻辑的修改,可能影响到几乎全部属性。回归测试的目的就是要判断哪些属性被影响了,是否从真变为假。但是回归测试的特性又是大部分属性都应该继续为真,所有利用证明核能够大大缩减回归测试时间。

进一步地,在抽象处理后对属性进行验证,如果通过则属性验证结束,如果没通过,则对仍没有通过验证的属性做正常形式验证。

进一步地,一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行一种基于证明核的形式验证和回归测试方法的步骤。

一种基于证明核的回归测试系统,包括:

形式验证模块,用于对芯片设计的属性进行形式验证,并记录对应属性的证明核;证明核是一个布尔表达式,表达式信号,或者变量,是芯片设计中的时序逻辑单元,一般称作寄存器。用证明核信号进行设计抽象就是在形式验证的芯片状态机模型中仅保留这些寄存器和它们的驱动逻辑。在抽象状态机上进行形式验证和在普通非抽象状态机上形式验证过程一样,只要形式验证不能发现反例则属性为正确。

回归测试模块,用于对修改后的芯片设计进行回归测试。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1