当前位置: 首页 > 专利查询>复旦大学专利>正文

时序电路等价验证的方法技术

技术编号:2857024 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于超大规模集成电路技术领域,具体为一种时序电路等价验证的方法。本发明专利技术利用可满足问题算法作为引擎,以时间帧展开的验证算法为框架,结合了数学归纳法、不可满足子集提取和结构不动点等验证技术。步骤包括:生成初始结构不动点集合、对电路组合部分按时间帧展开、对结构不动点的验证等。其中,帧展开过程中采用了准动态约束生成算法,验证过程中采用了改进的可满足问题算法,大大提高了时序电路等价验证的效率。

【技术实现步骤摘要】

本专利技术属于超大规模集成电路
,具体涉及一种超大规模集成电路中时序电路的等价验证方法。
技术介绍
超大规模集成电路发展到现在,单个芯片上已经能集成几百万门甚至千万门的电路。设计这样的电路是个十分复杂的问题,要验证其正确性更是个十分困难的问题。大家知道做一次芯片试制要花费几万至几十万美元。如果不能验证其100%的正确,只要有一、二个错误的芯片,就去进行试制,不仅造成经济上的巨大损失,也带来上市时间的损失。所以完成设计后的大规模集成电路芯片必须验证其正确性,只有做到100%正确,才能进行试制性投片。目前验证所需要的时间大约是设计时间的二倍,其难度可想而知。这里所说的验证是功能验证,学术上称之为形式验证。即检查设计的电路功能是否就是原来设想要实现的功能。时序电路等价验证是形式验证领域的瓶颈问题之一。电路的等价验证主要分组合电路的等价验证和时序电路的等价验证。组合电路的等价验证虽然从理论上也是属于NP完全问题,但是由于在实际应用中,待比较电路存在相似性,组合电路等价验证的复杂性可以大大降低。然而时序电路等价验证不同,所涉及的难点也比较多。除了待验证电路同步问题,多时钟问题之外,最主要困难在于时序电路的状态问题。从理论上说,时序电路的状态数目随着电路的寄存器(存储单元)数目增长而呈指数增长。往往状态数目比电路本身的元件数目要大很多。因此到目前为止,受到可处理状态数目的限制,时序电路的可验证规模(指电路的元件数目)远小于组合电路的可验证规模。近年来,由于验证引擎的快速发展,如可满足性问题算法的发展,改变了原先传统时序电路的验证方法,使时序电路的可验证规模得到了进一步的提高。时序电路的等价定义可以有很多种,本专利技术所涉及的时序电路的等价定义是建立在有限状态机上的所谓等价初始状态对定义。一个时序电路的有限状态机通常用一个六元组表示M=(I,O,S,s0,δ,λ),其中I和O分别代表输入和输出变量集,S是状态集合,s0为初始状态集,δ和λ则代表状态转移关系和输出函数。所谓初始状态对等价,是指对于待验证的两个电路的初始状态对s10和s20,在任意输入序列π下,输出始终相等λ1(s1,π)≡λ2(s2,π)。其等价的推论是,对于待验证电路的所有初始状态可达的状态,输出在任意输入下始终相等。目前国际上对于求解时序电路等价验证的算法大致可以分成两种类型,一是基于状态遍历的算法,另一类是基于状态搜索的算法。基于状态遍历的算法属于传统的时序电路等价验证算法。其基本原理是利用有限状态机的传输函数不断计算从初始状态出发的所有可达状态集合。并将集合用布尔函数形式加以保存。然后根据计算得到的可达状态集合,验证输出是否相等。然而该算法下,传输函数的建立、下一状态集合计算、状态集合的保存等三个重要步骤上,都会遇到内存爆炸问题。这是因为传统的三个步骤所使用的引擎是二分决策图(BDD,Binary Decision Diagram)。随着算法的发展,前两个步骤都逐步的使用其他引擎加以代替,但是状态集合的保存始终是一个瓶颈问题。而最近由于可满足性算法引擎的发展,基于状态搜索的算法逐步成为时序电路等价验证的主流算法。其基本思想在于,对于所有使输出不想等的状态,时序地搜索它们是否是初始状态可达的。在算法过程中,一般不用保留状态集合,与基于状态遍历的算法相比,大大降低了算法的空间复杂性。使用可满足性算法引擎的基于状态搜索的算法首先在模型检查中提出,用于等价验证的研究不是很多。考虑到逻辑层等价验证的特殊性,如何利用逻辑层等价验证时电路的相似性降低算法的时间复杂性,便能进一步的提高时序电路可验证的规模。
技术实现思路
本专利技术的目的在于提出一种可以处理规模较大的。本专利技术提出的时序电路等价验证方法,是利用可满足性算法作为引擎问题,以时间帧展开的验证算法为框架,结合了数学归纳法、不可满足子集提取和结构不动点这三个验证技术。其步骤如下(1)生成初始结构不动点集合。通过时序电路的模拟过程生成,其步骤为(a)将待验证的两个电路的输入对应相连,构成所谓的乘积电路(见附图1(a));(b)在对应输入上加入随机产生的向量;(c)根据输入向量,计算电路各个内部节点的逻辑值。根据节点逻辑值的变化,将具有相同变化的节点分在一个组,并删去只有一个节点的组,就构成了初始结构不动点集合。(2)帧展开,将电路的组合部分按寄存器节点的输入输出进行时间帧展开,其步骤为(a)将电路组合部分向前展开一帧,即新展开的一帧为第一帧,以前展开的第一帧就为第二帧,依次类推。将该帧对应的组合逻辑转换成合取范式加入到可满足问题算法引擎中;(b)将初始状态对应的合取范式从原来的第一帧加到这个新产生的第一帧中; (c)将结构不动点构成的合取范式也同电路组合逻辑一样复制一份加入到可满足问题算法引擎中;(d)利用状态约束生成算法,生成新的状态约束加入到可满足算法引擎中;(e)在可满足问题算法引擎中,撤销最后一帧中的结构不动点构成的合取范式。(3)结构不动点验证,其步骤为(a)将帧展开后所形成的合取范式分组,(b)将结构不动点中取出一对需要验证的等价点,构成合取范式,并赋予临时的组别,加入到可满足问题算法引擎中;(c)调用可满足问题算法引擎;(d)根据可满足问题算法引擎的结果,区分验证的节点是否需要从结构不动点中删除;(e)穿插在上述过程中的初始状态无关节点对的分离。本专利技术所采用的数学归纳法、不可满足子集提取和结构不动点技术,都体现在对每个结构不动点中的节点验证的过程中。当所有的节点都符合初始状态无关的条件后,时序电路的验证结果也就产生了。即当所有的输出配对点都在结构不动点中时,验证表明电路是等价的。如果有输出配对点不在结构不动点中,则表明电路是不等价的。同时可以根据可满足的结果,给出不等价的一组赋值,这表明的使电路不等价的输入输出及和寄存器的关系。附图说明图1为时间帧展开示意图。其中图1(a)为待验电路构成的乘积电路示意图,图1(b)为乘积电路组合部分按时间帧展开图示。图2为两种方法随帧展开长度的运行时间比较。具体实施例方式下面进一步描述本专利技术的实施方式本专利技术主要包含有如下一些过程1、初始结构不动点生成过程要验证电路输出是否时序等价,必须利用电路内部的相似性。就是所谓的结构不动点,也称为电路内部的等价点。所以验证一开始,必须先生成结构不动点的初始集合,以便在后面的验证过程中逐步删除不等价的节点,直至最后验证成功。这个初始集合主要是通过时序电路的模拟过程获得。又可以分成以下几个步骤(a)将待验证的两个电路的输入对应相连,构成所谓的乘积电路(见附图1(a));(b)在对应输入上加入随机产生的向量; (c)根据输入向量,计算电路各个内部节点的逻辑值。根据节点逻辑值的变化,将具有相同变化的节点分在一个组,并删去只有一个节点的组,就构成了初始结构不动点集合。2、帧展开过程在验证过程中,电路的组合部分根据需要,必须按寄存器节点的输入输出进行时间帧的展开。电路展开的示意图可见附图1(b)。这中间包含的步骤有(a)将电路组合部分向前展开一帧,即新展开的一帧为第一帧,以前展开的第一帧就为第二帧,依次类推。将该帧对应的组合逻辑转换成合取范式加入到可满足问题算法引擎中;(b)将初始状态对应的合取范式从原来的第一帧加到这本文档来自技高网
...

【技术保护点】
一种时序电路等价验证的方法,其特征在于具体步骤如下:(1)生成初始结构不动点集合,通过时序电路的模拟过程生成,其步骤为:(a)将待验证的两个电路的输入对应相连,构成所谓的乘积电路;(b)在对应输入上加入随机产生的向量 ;(c)根据输入向量,计算电路各个内部节点的逻辑值,根据节点逻辑值的变化,将具有相同变化的节点分在一个组,并删去只有一个节点的组,就构成了初始结构不动点集合。(2)帧展开,将电路的组合部分按寄存器节点的输入输出进行时间帧展开 ,其步骤为:(a)将电路组合部分向前展开一帧,即新展开的一帧为第一帧,以前展开的第一帧就为第二帧,依次类推;将该帧对应的组合逻辑转换成合取范式加入到可满足问题算法引擎中;(b)将初始状态对应的合取范式从原来的第一帧加到这个新 产生的第一帧中;(c)将结构不动点构成的合取范式也同电路组合逻辑一样复制一份加入到可满足问题算法引擎中;(d)利用状态约束生成算法,生成新的状态约束加入到可满足算法引擎中;(e)在可满足问题算法引擎中,撤销最后一帧中 的结构不动点构成的合取范式;(3)结构不动点验证,其步骤为:(a)将帧展开后所形成的合取范式分组,(b)将结构不动点中取出一对需要验证的等价点,构成合取范式,并赋予临时的组别,加入到可满足问题算法引擎中;(c )调用可满足问题算法引擎;(d)根据可满足问题算法引擎的结果,区分验证的节点是否需要从结构不动点中删除;(e)穿插在上述过程中的初始状态无关节点对的分离。...

【技术特征摘要】

【专利技术属性】
技术研发人员:丁敏唐璞山
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1