一种形式验证中断言综合的可视化方法、存储介质和终端与流程

文档序号:18822543发布日期:2019-10-09 01:01阅读:214来源:国知局
一种形式验证中断言综合的可视化方法、存储介质和终端与流程

本发明涉及一种形式验证中断言综合的可视化方法、存储介质和终端。



背景技术:

形式验证是一种基于数理逻辑的功能验证方法,是对传统仿真验证的补充并在很多应用场景已经取代了仿真。除了和仿真一样需要用户提供被验证的设计之外,形式验证还要求用户提供用于描述设计输入环境和设计属性的断言。

断言语言(systemverilogassertion)和通用的逻辑设计语言(verilog或vhdl)不同,是基于声明的。在被用于形式验证之前断言首先必须被综合成为和逻辑设计同属于可执行语言的状态机(或称自动机)形式。此外断言作为约束和属性会经过不同的综合方法。断言本身还可以分为安全断言(safety),活性断言(liveness),或二者的混合。

由于这些断言和逻辑设计语言的差异性,写出正确和准确的断言成为形式验证的应用中的一大障碍。有统计表明,断言的生成和纠错占了形式验证时间的三分之一。生成断言的辅助性工具将会大大缩短验证时间,降低验证门槛。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种形式验证中断言综合的可视化方法、存储介质和终端。

本发明的目的是通过以下技术方案来实现的:

本发明的第一方面,提供一种形式验证中断言综合的可视化方法,包括如下步骤:

步骤1:对断言进行从断言到非确定自动机的综合,并将所生成的非确定自动机转换为状态机图形予以显示;

步骤2:对步骤1中的非确定自动机优化,并将优化的非确定自动机转换为状态机图形予以显示;

步骤3:对优化后的非确定自动机进行确定化,生成确定自动机,并对生成的确定自动机转换为状态机图形予以显示;

步骤4:对步骤3中的确定自动机进行优化,并将生成的确定自动机转换为状态机图形予以显示。

进一步地,步骤2中的非确定自动机的优化,用于去掉步骤1的综合过程中产生多余或等价的状态。

进一步地,在步骤3中,所述对非确定自动机进行确定化,针对约束断言的非确定自动机和属性断言的非确定自动机进行不同的确定化。

进一步地,所述的属性断言在进行确定化时,通过在非确定自动机的初始状态增加一个由自由输入控制的指向自己的状态转化实现。

进一步地,所述的约束断言在进行确定化时,通过幂集操作构建过程实现。

进一步地,步骤4中的确定自动机的优化,用于避免或减轻幂集操作可能带来的状态爆炸。

进一步地,所述方法还包括位于步骤4之后的步骤:

步骤5:对步骤4中的进行优化的确定自动机提取活性条件,并将确定自动机转换为状态机图形予以显示。

进一步地,所述方法还包括位于步骤4之后的步骤:

步骤6:生成从步骤4中优化的确定自动机到非确定自动机的投影;在设计纠错过程中,利用所生成的投影对非确定自动机和波形图进行同步查询。

本发明的第二方面,提供一种存储介质,其上存储有计算机指令,其特征在于:所述计算机指令运行时执行所述的一种形式验证中断言综合的可视化方法的步骤。

本发明的第三方面,提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行所述的一种形式验证中断言综合的可视化方法的步骤。

区别于现有技术的情况,本发明的有益效果是:

(1)本发明针对断言综合的每一步,包括非确定和确定,和优化前后等不同情况,对断言自动机进行可视化,以帮助用户生成、理解和对断言的纠错。可视化贯穿在断言综合和纠错的各个阶段。

(2)在本发明的一示例性实施例中,对属性断言和约束断言进行不同方式的确定化,从而使得得到的结果更加准确。

(3)在本发明的一示例性实施例中,对活性条件进行可视化,从而可以让用户直观的认识到所写的断言是安全还是活性,或者两种兼而有之。这些区分单从现有技术中的systemverilog断言语言看是不容易做到的。另一方面,断言的生成过程无意中引入活性条件将会极大影响验证效率。

(4)在本发明的一示例性实施例中,利用从确定化后的状态机映射到非确定状态级所生成的投影对非确定自动机和波形图进行同步查询,用后者和波形图进行交互同步查询会大大减少纠错难度缩短纠错时间。解决现有技术中确定化带来的状态爆炸可能使形式验证中使用的状态机和用户提供的断言完全失去了关联性,使得在设计纠错中,直接针对断言语言或者针对确定化的自动机(da)同步查错几乎是不可能的问题。

附图说明

图1是本发明的一示例性实施例的流程图;

图2是本发明ltl到自动机综合的示例。

图3是本发明自动机优化算法的示例。

图4是本发明属性断言自动机初始状态自由输入控制指向自己的状态转化示例。

图5是本发明确定化状态爆炸引起断言失去关联性的状态图。

图6是本发明交互同步查询示意图。

具体实施方式

下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,需要说明的是,本申请适用于所有的断言语言,而在本实例性实施例中,仅以systemverilogassertion(sva)断言语言作为例子。sva的语义基于规范表达式(re,regularexpression)。

本申请将断言综合以图形化的形式,帮助用户生成、理解和对断言的纠错,并且对断言综合和纠错的各个阶段进行可视化。

参见图1,图1为一种形式验证中断言综合的可视化方法的流程图,包括如下步骤:

步骤1:对断言进行从断言到非确定自动机的综合,并将所生成的非确定自动机转换为状态机图形予以显示。

断言综合的基本技术是ltl(lineartemporallogic)到自动机的转换。断言语言systemverilogassertion是对ltl的语法扩展,但是保持了其语义。图2是一个从ltl到自动机综合的例子。

图2示出了ltl属性“b|=>a”的综合过程。从左至右,左图代表子表达式“a”的自动机,中图代表子表达式“b”的自动机。最后“b”自动机的状态1被“a”自动机状态0替代,组合为最终的自动机。

步骤2:对步骤1中的非确定自动机优化,并将优化的非确定自动机转换为状态机图形予以显示;

自动机在基本综合过程中可能会产生多余或等价状态,可以通过经典的自动机优化算法予以优化。图3显示了这样一个例子:

图3是一个最小化优化的例子。左图状态1和2等价,因为两者在条件b时都转换到状态3,在条件!b时都转换到状态4。经过等价状态合并,结果为右图,状态2被去掉。

而在步骤2中的非确定自动机的优化,用于去掉步骤1的综合过程中产生多余或等价的状态。

步骤3:对优化后的非确定自动机进行确定化,生成确定自动机,并对生成的确定自动机转换为状态机图形予以显示。

其中该步骤所述的非确定自动机优选为步骤2中的经过优化的非确定自动机,可以减少确定步骤。也可以是步骤1中的非确定自动机,或者将两种情况进行结合。

综合的初始结果是非确定自动机(nda)。nda的特性是,同样输入条件下,一个状态可能达到多个状态,即状态转换具有不确定性。

而从非确定自动机(nda)到确定自动机(da)的确定化因断言是约束还是属性而不同,因此在一实例性实施例中:

在步骤3中,所述对非确定自动机进行确定化,针对约束断言的非确定自动机和属性断言的非确定自动机进行不同的确定化。

其中,对于所述的属性断言在进行确定化时,通过在非确定自动机的初始状态增加一个由自由输入控制的指向自己的状态转化实现,如图4所示。

在图4中,左边的非确定状态机对初始状态0引入自由输入控制条件loop后成为右图的确定状态机:状态0的自循环条件变为loop,状态0到1的转换条件变为a&!loop,状态0到2的转换条件变为!a&!loop,这样任一指定条件下一个状态只能转换到唯一一个状态。

而对于所述的约束断言在进行确定化时,通过幂集操作的构建过程实现。幂集操作的基本步骤是把同一条件下可以到达的多个状态合为一个状态,由于状态组合的数量是状态数量的指数倍,转换过程可能出现“状态爆炸”的问题。所以转换过程中的状态机最小化优化至关重要。

这个过程有可能使状态数量产生指数级的增长(状态爆炸,stateexploration),所以对综合的每一步都做优化至关重要。

步骤4:对步骤3中的确定自动机进行优化,并将生成的确定自动机转换为状态机图形予以显示。

在该步骤中,步骤4中的确定自动机的优化,用于避免或减轻幂集操作可能带来的状态爆炸的影响。

在又一示例性实施例中,所述方法还包括位于步骤4之后的步骤:

步骤5:对步骤4中的进行优化的确定自动机提取活性条件,并将确定自动机转换为状态机图形(并与活性条件)予以显示。

对于活性条件的可视化可以让用户直观的认识到所写的断言是安全还是活性,或者两种兼而有之。具体地,凡是有活性状态循环能提取出活性条件的属性都是活性属性,凡是有可到达的出错状态(或拒绝状态)的属性都是安全属性。这两者都有的属性则即是活性又是安全属性。

从优化后的确定自动机提取活性条件一个是因为确定自动机才是验证中用到的状态机,二是为了避免冗余状态降低活性条件提取的效率和准确度。

在又一示例性实施例中,所述方法还包括位于步骤4之后的步骤:

步骤6:生成从确定自动机到非确定自动机的投影;在设计纠错过程中,利用所生成的投影对非确定自动机和波形图进行同步查询。

其中,活性条件提取不会改变自动机,所以提取前后无关。

在步骤3中,确定化带来的状态爆炸可能使形式验证中使用的状态机和用户提供的断言完全失去了关联性,图5就是一个例子:对于约束属性“a|=>b”,左图为非确定自动机,右图为确定自动机。

这种情况下,把确定化后的自动机映射到非确定自动机,用后者和波形图进行交互同步查询会(如图6)大大减少纠错难度缩短纠错时间。

具体地,对于投影/映射,在幂集操作中,根据原非确定自动机的状态转换关系,每一个新生成的确定自动机状态对应于一组非确定自动机状态。比如,图5右图的状态0对应于左图的状态0和2,右图的状态1对应于左图的状态1和2。

图6显示从确定到不确定自动机状态映射后的一个纠错步骤。右图深色状态0到1的转换,是一个满足此约束属性(a|=>b)的状态路径,由于幂集操作的结果,此路径和属性表达式的对应关系已经不明显。但是映射到左图不确定自动机后,深色状态0,1,2明确表达了a之后出现b即到达接受状态2的该约束定义的逻辑关系。

本发明的又一示例性实施例,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的一种形式验证中断言综合的可视化方法的步骤。

本发明的又一示例性实施例,提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的一种形式验证中断言综合的可视化方法的步骤。

基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得装置执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

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

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