集成电路验证方法及其系统的制作方法

文档序号:6585470阅读:227来源:国知局

专利名称::集成电路验证方法及其系统的制作方法
技术领域
:本发明涉及大规模集成电路验证领域,尤其涉及集成电路验证方法及其系统。
背景技术
:随着集成电路产业的迅速发展,设计的多样性和复杂性程度也越来越高,而传统功能验证方法处理的设计规模和效率的增长落后于开发规模的增长,使得其面临的困难越来越大。集成电路复杂性增长给功能验证带来的难题包括两个方面第一设计内部功能逻辑、接口协议、例外处理等等复杂度急剧增加,凭借人工经验或已有方法难于处理;第二集成电路结构里包含的寄存器数目增加,造成仿真的速度越来越慢,使得形式化验证方法更加难以处理。为了解决或缓解上述两个问题,集成电路功能验证方法需要尽量减少需要的人工专家知识,并且生成较短的测试向量,以驱动仿真验证特定的功能属性。另外,在现有集成电路验证流程中,设计的功能覆盖率的增加并不为线性,尤其对于设计的难达属性或者状态,往往耗费大量的验证成本而收效甚微。针对集成电路中难达属性或者状态的验证,是一个急需解决的问题。已有的集成电路的功能验证方法主要分为模拟验证和形式化验证两大类方法。模拟验证方法主要通过给设计输入测试向量进行仿真,并且将仿真的结果和一个功能正确的黄金模型(GoldenModel)进行对比,以验证设计在不同的输入激励情况下的功能正确性。模拟验证方法能够快速的验证一些常见的设计属性,但是对于难以到达的边缘属性,难于在有限时间内进行覆盖和验证。虽然可以通过人工手工写测试向量来验证特定功能点,但需要耗费大量的人力时间,并且测试向量难以在不同设计间重用,不能够作为主要的验证手段。形式化验证方法中,主要是模型检验(ModelChecking)方法,比较适合于对设计的边缘属性进行验证。在这类方法中,集成电路设计被抽象为一个有限状态模型,目标属性则被描述为一个时态逻辑公式,验证的过程为遍历有限状态模型中的可达状态,从而证明集成电路设计满足目标属性;或者给出一个状态序列形式的反例,以证明目标属性不可满足。模型检验具有规范化、易于自动化、完全的特点,但其中状态空间大小随设计中寄存器数目指数增长(2'n),造成"状态爆炸";这也是困扰模型检验方法在大规模工业设计上得到应用的根本问题。通过对模拟验证和形式化验证方法分别的优缺点和适应场景的分析,可以发现一种提高验证效率和验证可处理设计规模的方法将形式化验证和模拟验证方法结合起来,在原始设计上进行一定程度的抽象,在抽象模型上用形式化验证方法获取部分设计信息,然后用这些信息引导模拟仿真生成较短的仿真向量,从而快速、准确的验证到目标的设计边缘属性。通过抽象能够减少形式化方法计算的代价,同时获得的设计信息能够帮助提高对目标属性进行模拟验证的效率。采取这种优化的验证方法,一个问题在于如何对电路进行抽象,才能够使获得的抽象模型较小、且包含较准确的设计信息。最简单直观的方法是借助工程师对集成电路设计的理解,人工提取部分与目标最相关的逻辑作为抽象模型。这种方法对于中小设计效果较好,但对于复杂设计则效果得不到保证,并且需要大量专家时间,不适合自动化验证的需求。另一种方法则基于现代集成电路设计模块化的思想,提取和目标状态对应的信号关系密切的设计模块作为抽象模型。但如果模块较大,则导致抽象模型过于复杂,并且这种方法抽象的粒度较大,不够理想。还有采用数据挖掘方法,在集成电路设计中各个寄存器位之间挖掘关系,将关系密切的寄存器位加入抽象模型。该种方法在寄存器位(bit)级上进行,并不适合寄存器传输级功能验证的需要。另外,如何利用在抽象模型上进行形式化计算得到的信息来引导模拟验证快速覆盖到目标的设计属性,也是一个难题。一种可行的方法是,用形式化计算方法把设计的抽象模型描述为一个状态空间,计算从目标状态向前的前像,并且以这个前像的距离作为对状态的近似评估。利用抽象模型上计算获得的距离信息对模拟仿真进行引导,其核心部分就在于激励生成引擎和引导的策略如何设计。已有的方法,大多采用的是随机的激励生成方法,每次生成N个测试序列,然后用抽象距离信息评估这些序列仿真所能够到达的状态优劣,从中选择到达抽象距离最低的序列进行仿真。也有的方法采用遗传算法和文化算法作为激励生成引擎,利用抽象距离信息设计种群的适应度函数。文化算法本质上是一种"优中选优"的策略,即从好的种群中选择个体繁衍下一代,以期更好的种群质量;不过这种方法没有从以往的仿真信息中学习知识,并且没有很好的利用设计规范的信息,其效率可以有进一步的提高。应用抽象距离引导的针对集成电路边缘属性的混合验证方法参考文献1,Distance—GuidedHybridVerificationwithGUIDODesign,ProceedingsonDesign,AutomationandTestinEurope2006.M皿ich,Germany:IEEE,2006:1_6;文献2,Guidingsimulationwithincreasinglyrefinedabstracttraces,ProceedingsonDesignAutomationConference,2006.Anaheim,California,USA:ACM/IEEE,2006:737-742;文献3,Aneffectiveguidancestrategyforabstraction—guidedsimulation,ProceedingsonDesignAutomationConference,2007.SanDiego,California,USA:ACM/IEEE,2007:63-68;文献4,EfficientDesignValidationBasedonCulturalAlgorithms,ProceedingsonDesign,AutomationandTestinEurope2008.Munich,Germany:IEEE,2008:402-407。
发明内容为解决上述问题,本发明提供了集成电路验证方法及其系统,能够降低计算成本,提高检测效率。本发明公开了一种集成电路验证方法,包括步骤l,抽象引擎对待验证的集成电路进行抽象,生成对应的抽象模型,并且在所述抽象模型上进行形式化计算,以获得形式化信息;步骤2,激励生成引擎初始化根据待检测的集成电路的规范建立的马尔可夫模型;步骤3,激励生成引擎由马尔可夫模型生成激励,将所述激励输入仿真器,所述仿真器对所述待检测的集成电路进行仿真;步骤4,所述激励生成引擎依据所述形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整所述马尔可夫模型中参数;步骤5,如果待检测的集成电路未达到目标状态并且仿真次数未超过预设次数,则执行所述步骤3;否则,终止仿真,并报告成功或者运行超时。所述步骤l进一步为,步骤21,建立数据依赖图;步骤22,在所述数据依赖图上进行抽象,生成抽象模型;步骤23,在所述抽象模型上进行形式化计算,获得形式化信息。所述步骤21进一步为,步骤31,根据待检测的集成电路的硬件描述语言的描述,依据存储目标状态的目标状态变量建立数据依赖图;所述数据依赖图中,每一个结点代表一个寄存器变量,两个结点之间的有向箭头表示目标结点对源结点存在数据依赖关系。所述步骤22进一步为,步骤41,在所述数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型;如果两个存在依赖关系的寄存器变量被加入到所述抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述抽象模型中。所述步骤22进一步为,步骤51,在所述数据依赖图中,将所述目标状态变量划分为组,从各个组的目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型的对应子抽象模型中;如果两个存在依赖关系的寄存器变量被加入到所述子抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述子抽象模型中。所述步骤23进一步为,步骤61,采用基于二分决策图的形式化计算工具在所述抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。所述步骤23进一步为,步骤71,采用基于二分决策图的形式化计算工具在每个所述子抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到所述子抽象模型对应的抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。所述步骤3进一步为,步骤81,所述激励生成引擎在仿真的每一周期之前,根据马尔可夫模型的当前配置生成一个周期的激励,并提供给仿真器进行仿真。所述步骤4进一步为,步骤91,从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据所述抽象距离比较本周期仿真结果同上一仿真周期的仿真结果,如果比较结果为本周期仿真结果更接近目标状态,则执行步骤92,否则,执行所述步骤5;步骤92,增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,执行所述步骤5。所述步骤4进一步为,步骤101,从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据如下公式计算仿真结果在子抽象模型中的适应度,fiti=Max「Difiti是仿真结果在每个子抽象模型中的适应度值A为仿真结果在所述子抽象模型的抽象距离信息表中查找到的对应的抽象距离,MaXi为所述子抽象模型的最大抽象距离值;步骤S102,按如下公式计算仿真结果的适应度,V.FzY"ew—ra/we=Z~^''=0V,。,。/,、为子抽象模型中包含的目标状态变量数目;Vt。tal表示抽象模型的总的目标状态变量数目;NP表示子抽象模型的数量,Fitness—value表示本周期仿真结果的适应度值;步骤S103,比较本周期仿真结果对应的适应度同上一仿真周期的仿真结果对应的适应度,如果比较结果为本周期仿真结果更接近目标状态,则执行步骤104,否则,执行所述步骤5;步骤104,增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,执行所述步骤5。本发明公开了一种集成电路验证系统,包括抽象引擎,用于对待验证的集成电路进行抽象,生成对应的抽象模型,并且在所述抽象模型上进行形式化计算,以获得形式化信息;激励生成引擎包括马尔可夫模型建立模块、激励产生模块、参数调整模块、验证结果上报模块,所述马尔可夫模型建立模块,用于根据待检测的集成电路的规范建立的马尔可夫模型;所述激励产生模块,用于由马尔可夫模型生成激励,将所述激励输入仿真器;所述仿真器,用于对所述待检测的集成电路进行仿真;所述参数调整模块,用于依据所述形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整所述马尔可夫模型中参数;所述验证结果上报模块,用于在待检测的集成电路未达到目标状态并且仿真次数未超过预设次数时启动所述激励产生模块;否则,终止仿真,并报告成功或者运行超时。所述抽象引擎进一步用于建立数据依赖图;在所述数据依赖图上进行抽象,生成抽象模型;在所述抽象模型上进行形式化计算,获得形式化信息。所述抽象引擎在建立数据依赖图时进一步用于根据待检测的集成电路的硬件描9述语言的描述,依据存储目标状态的目标状态变量建立数据依赖图;所述数据依赖图中,每一个结点代表一个寄存器变量,两个结点之间的有向箭头表示目标结点对源结点存在数据依赖关系。所述抽象引擎在生成抽象模型时进一步用于在所述数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型;如果两个存在依赖关系的寄存器变量被加入到所述抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述抽象模型中。所述抽象引擎在生成抽象模型时进一步用于在所述数据依赖图中,将所述目标状态变量划分为组,从各个组的目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型的对应子抽象模型中;如果两个存在依赖关系的寄存器变量被加入到所述子抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述子抽象模型中。所述抽象引擎在进行形式化计算时进一步用于采用基于二分决策图的形式化计算工具在所述抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。所述抽象引擎在进行形式化计算时进一步用于采用基于二分决策图的形式化计算工具在每个所述子抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到所述子抽象模型对应的抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。所述激励产生模块进一步用于在仿真的每一周期之前,根据马尔可夫模型的当前配置生成一个周期的激励,并提供给仿真器进行仿真。所述参数调整模块进一步用于从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据所述抽象距离比较本周期仿真结果同上一仿真周期的仿真结果,如果比较结果为本周期仿真结果更接近目标状态,则增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,并启动所述验证结果上报模块;否则,直接启动所述验证结果上报模块。所述参数调整模块进一步用于从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据如下公式计算仿真结果在子抽象模型中的适应度,fiti=Max「Difiti是仿真结果在每个子抽象模型中的适应度值A为仿真结果在所述子抽象模型的抽象距离信息表中查找到的对应的抽象距离,MaXi为所述子抽象模型的最大抽象距离值;按如下公式计算仿真结果的适应度,H加ess_va/we=Z~~^哉.''=oVw(。/,、为子抽象模型中包含的目标状态变量数目;Vt。tal表示抽象模型的总的目标状态变量数目;NP表示子抽象模型的数量,Fitness—value表示本周期仿真结果的适应度值;比较本周期仿真结果对应的适应度同上一仿真周期的仿真结果对应的适应度,如果比较结果为本周期仿真结果更接近目标状态,则增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,并启动所述验证结果上报模块;否则,直接启动所述验证结果上报模块。本发明的有益效果在于,通过使用马尔科夫模型并根据仿真结果调节马尔科夫模型能够降低计算成本,提高检测效率,能够处理规模较大的集成电路,避免了已有形式化验证方法处理规模有限的问题;并且提高了针对集成电路难达属性进行激励生成的效率,縮短了验证所需激励向量的长度,比已有半形式化验证方法效率平均提高了10倍以上。图1是本发明的集成电路验证方法的流程图;图2是从设计描述建立起来的数据依赖图及在数据依赖图上的抽象过程示意图;图3是具体实施方式中抽象距离信息表对应的电路状态转移图及对应抽象距离表示;图4是从设计规范建立的马尔可夫模型示意图;图5是本发明的集成电路验证系统的结构图。具体实施例方式下面结合附图,对本发明做进一步的详细描述。本发明方法的流程如图1所示。步骤S100,抽象引擎对待验证的集成电路进行抽象,生成对应的抽象模型,并且在所述抽象模型上进行形式化计算,以获得形式化信息。抽象的方法需要在抽象准确性和抽象规模方面做一个折中,因为如果抽象出的模型包含目标属性相关的逻辑越多,其抽象质量和准确性越好,但相应的模型规模也增大,导致对其进行形式化计算所需的代价也越大;如果抽象出的模型包含目标属性相关的逻辑越少,虽然进行形式化计算所需代价越小,但包含的设计相关信息也越少越不准确,因而无法为后续的激励生成提供足够的指导。具体实施方式中的抽象方法是基于寄存器传输级,在硬件描述语言所描述的集成电路的设计上,按照寄存器变量的逻辑依赖关系进行抽象。具体而言,目标设计属性被描述为一个目标状态,该目标状态由一组寄存器存储,这些寄存器被称为目标状态变量。状态变量是一组寄存器,而设计状态由这些寄存器所保存的值组成。例如,加法器进位溢出被描述为相应的溢出信号变量置1的状态,溢出信号寄存器则成为目标状态变量。因此在逻辑上与该些目标状态变量紧密相关的逻辑是有用的核心逻辑。所述步骤S100的具体实施方式如下所述。步骤S110,建立数据依赖图。根据待检测的集成电路的硬件描述语言描述,围绕目标状态变量建立数据依赖图。在数据依赖图中,每一个结点代表一个寄存器变量,两个结点之间的有向箭头表示目标结点对源结点存在数据依赖关系。步骤S120,在数据依赖图上进行抽象,生成抽象模。在数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型。如果两个存在依赖关系的寄存器变量被加入到抽象模型中,则两者之间的组合逻辑也相应的被加入到抽象模型中。另一具体实施方式中,抽象方法还采用将抽象模型划分成多个子抽象模型的方法,当抽象模型规模较大,超过可以接受的界限时,按照寄存器之间的联系紧密程度,将抽象模型划分为多个子抽象模型,其中每个子抽象模型都是从部分目标状态变量向前经过前述方法得到的抽象模型。建立起来的数据依赖图及在数据依赖图上的抽象过程的实施例如图2所示。图2中,每个圆圈表示待检测的集成电路中一个寄存器,而圆圈之间的有向箭头表示从目标结点到源结点存在的数据依赖关系,最右方的结点为目标状态变量R1、目标状态变量R2、目标状态变量R3。因而电路抽象的过程具体为,在数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,采用广度优先搜索方法将遍历到的寄存器变量加入到抽象模型;如果两个存在依赖关系的寄存器被加入抽象模型中,则两者之间的组合逻辑也相应的被加入到抽象模型中。当抽象模型规模较大时,按照寄存器之间的联系紧密程度,将抽象模型划分为多个子抽象模型,其中每个子抽象模型都包含部分的目标状态变量,例如图2中的子抽象模型1和子抽象模型2。该种抽象方法的抽象粒度较细,并且通过控制广度优先搜索的深度,可以灵活的控制抽象模型的大小和规模,如果需要抽象出更为精确的模型并且能承受较多的形式化计算成本,则加大搜索深度,抽取目标状态变量周围更多的逻辑,从而获取一个更为精确的抽象模型;反之若果不需要太准确的抽象模型,或者能够接受的形式化计算代价有限,则选择较小的搜索深度,从而获取一个较为粗糙但规模较小的抽象模型。S130,在抽象模型上进行形式化计算,获得形式化信息,将该形式化信息保存为抽象距离信息表。采用基于二分决策图的形式化计算工具在抽象模型上进行形式化计算,获得形式化信息,将形式化信息记录到抽象距离信息表中,形式化信息包括抽象状态和抽象状态对应的抽象距离。具体实施方式中,采用基于二分决策图(BDD,BinaryDecisionDiagram)的形式化计算工具,从目标状态开始计算该目标状态在抽象模型中的前像,并将计算得到的所有前像状态和相应的前像距离进行保存。每个所述前像状态即为一个抽象状态,前像距离为抽象距离。抽象距离信息表保存抽象状态和对应的抽象距离,如表1所示,表中每一行代表某一抽象距离值及其对应的抽象状态,多个抽象状态可以用X位来辅助描述。抽象距离值最大的抽象状态集合包括了电路的初始状态,因此电路初态对应的抽象距离值是最大抽象距离值。<table>tableseeoriginaldocumentpage13</column></row><table>表1图3表示的是与表1所对应的电路状态转移图及对应的抽象距离。其中000状0态是电路的初态,llll状态是目标状态,没有出现在图中的状态是不可达状态,也即非法状态。从目标状态往前计算前像,一拍以内能到达目标状态的状态抽象距离为1,以此内推,直到到达初态(即OOOO)为止。该抽象距离信息被整理保存在抽象距离信息表中。关于采用基于二分决策图的方法计算前像方法如文献HardwareDesignVerification-SimulationandFormalMethod-BasedApproaches,WilliamK丄am,PersonEducation,Inc,2005.中所述。抽象模型被划分为多个子抽象模型的情况,采用基于二分决策图的形式化计算工具在每个所述子抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到所述子抽象模型对应的抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。步骤S200,激励生成引擎初始化根据待检测的集成电路规范建立的马尔可夫模型。根据待检测集成电路的规范(Specification)建立相应的马尔可夫模型,并且对马尔可夫模型进行初始化。利用得到的马尔可夫模型随机的产生符合集成电路设计规范的激励。马尔可夫模型的示意图及建立方法如图4所示。集成电路的设计规范是指在设计电路之前确定的一个标准和要求文档。图4中表示的是根据一个处理器设计规范建立的马尔可夫模型结构。马尔可夫模型由顶点和顶点之间全相连的带权重的有向边组成;每个顶点代表设计的一项事务(transaction)或者一组类似的事务,而每条有向边上的权重代表从源结点到目标结点转移的概率。在应用到例如处理器的激励生成引擎中时,每个顶点代表一种指令(NOP)或者一类指令,如图4中顶点内的标记,例如Float浮点运算、Branch分支指令等,马尔可夫模型从一个顶点转移到另一个顶点则代表产生对应的一条指令。初始状态下,马尔可夫模型中顶点是两两相连的,并且从所有边的权重相等,表示随机的转移到任意下一个顶点。从一个顶点出发的所有边权重之和为l,表示向下一顶点转移的概率之和为1。步骤S300,激励生成引擎由马尔可夫模型生成激励,将所述激励输入仿真器,仿真器对待检测的集成电路进行仿真。在仿真的每一周期之前,根据马尔可夫模型的当前配置生成一个周期的激励并提供给仿真器进行仿真。步骤S400,激励生成引擎依据形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整所述马尔可夫模型中参数。激励生成引擎利用抽象距离信息表计算出当前状态的适应度函数值,并进行将本周期仿真的适应度函数值同上周期仿真的适应度函数值进行比较,根据比较结果生成相应的反馈信号;根据反馈信号对马尔可夫模型的概率参数进行调整。当前状态的抽象距离值越小则表示距离目标状态越近,如果距离为O,则表示已经到达目标状态。而由公式(1)所示,适应度函数值与抽象距离值成反比,也就是越优秀的状态对应越小的抽象距离值,进而对应越大的适应度函数值。如果当前仿真结果的状态的适应度函数值与上一周期的值相比增加了,则表示进步,生成对应反馈信号,根据反馈信号对马尔可夫模型的概率参数进行调整;否则不产生反馈信号,不进行调整。根据马尔可夫模型产生合法的激励向量,在仿真中每一拍通过反馈调整马尔可夫模型,从而产生更高质量的激励向量。因此这个工作流程的核心在于仿真过程中动态反馈的生成和对马尔可夫模型的调整策略。所述步骤400的具体实施方式如下所述。S410,从抽象距离信息表中查找仿真结果对应的抽象距离,依据抽象距离比较本周期仿真结果同上一仿真周期的仿真结果,如果比较结果为本周期仿真结果更接近目标状态,则执行步骤S420,否则,执行所述步骤S500。在一种具体实施方式中,从抽象距离信息表中查找仿真结果对应的抽象距离,计算出对应的适应度函数值,比较本周期仿真结果对应的适应度值同上一仿真周期的仿真结果对应的适应度值,如果比较结果为本周期仿真结果对应的适应度值更高,则执行步骤S420,否则,执行步骤S500。对于抽象模型被划分为子抽象模型的具体实施方式如下所述。—个时序电路包含一定数目的寄存器,则该电路的状态由这些寄存器值的组合唯一表示。对状态的评估策略为根据抽象距离信息表求取状态的适应度值的过程,适应度值越大则该状态被评估为越优秀,该适应度值按公式1和公式2计算。<formula>formulaseeoriginaldocumentpage14</formula><formula>formulaseeoriginaldocumentpage14</formula>因为抽象模型可能包含多个子抽象模型,则fiti是每个子抽象模型中的适应度值;通过查找抽象距离信息表,获得当前仿真结果对应的抽象距离Di,MaXi表示该子抽象模型的最大抽象距离值,最大抽象距离值为该子抽象模型对应的抽象距离信息表中最大的抽象距离。总的适应度值则由所有子抽象模型的适应度值计算获得,其中公式(2)中的、表示子抽象模型中包含的目标状态变量数目;Vt。td表示抽象模型的总的目标状态变量数目;Np表示子抽象模型的数量,Fitness—value表示本周期仿真结果的适应度值。因此适应度值越大表明当前的仿真结果越接近目标状态。对于未将抽象模型划分为多个子抽象模型的情况,按如下公式(5)计算适应度值。Fitness_value=Max-D公式(5)Fitness—value表示本周期仿真结果的适应度函数值,Max表示最大抽象距离值,D为仿真结果对应的抽象距离。如果当前仿真周期里的状态对应的适应度值相比上一周期的适应度值有提高,则当前状态被评价为"优秀",表示向目标状态靠近了一步。因而一个反馈信号,对马尔可夫模型进行调整。对于未将抽象模型划分为多个子抽象模型的情况,也可以通过直接比较抽象距离来判断本周期仿真结果是否比上周期仿真结果更接近目标状态。S420,增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为1。实现步骤S420的具体实施方式一在激励生成过程中,对马尔可夫模型的调整是通过调整其中边的权重来实现的。仿真过程中产生的反馈表示当前状态是"优秀"的,则增大马尔可夫模型中导致当前状态的激励所对应的马尔可夫模型中的边的权重。因而在随后的激励生成中,类似的优秀激励更有可能被生成,从而提高激励生成质量。但因为从一个顶点出发的所有边权重和为l,增加一条边的权重则必须减少其它边的权重。具体来说,对马尔可夫模型的调整策略可以描述为尸一i31=';'公式(3)PJdecr=kX(Pj-Pmin)公式(4)其中,P^r表示当前仿真结果的激励所对应的马尔可夫模型中的边增加的权重,pmax为规定的每条边可以取权重的最大值,Pi为当前仿真结果的激励所对应的马尔可夫模型中的边的当前的权重值,Nv为马尔可夫模型中所有顶点的数目。这样,当前权重越大的边可以继续增加权重就越困难,当前权重越小的边,可以增加权重就越容易,从而达到一个动态的平衡。P、。r表示从一个顶点出发的边中,除当前仿真结果的激励所对应的马尔可夫模型中的边以外的边需要减去的权重,以使得从一个顶点出发的所有边权重和为1。例如,从一个顶点出发有N条边,其中边i为当前仿真结果的激励所对应的马尔可夫模型中的边,边j为N条边中除去边i的其余的边,由于边i的权重被增加,因而减少边i的权重,以使N条边的权重加和为1。Pj为该需要减少权重的边当前的权重值,Pmin为规定的每条边可以取权重的最小值,k为使从一个顶点出发的所有边权重和为1的系数。上述过程为一个归一化过程,这样,当前权重越大的边归一化减去的权重值越多,当前权重值越小的边归一化减去的权重值越少。通过所述动态调整,马尔可夫模型不容易陷入局部最优,局部最优为某条边权重特别大以至于其它边失去被遍历的机会,能够形成动态的平衡,获得更好的机器学习效果以指导激励生成。实现步骤S420的具体实施方式二对马尔可夫模型的调整策略为,当前仿真结果的激励所对应的马尔可夫模型中的15边增加的权重为预设值;—个顶点出发的边中,除当前仿真结果的激励所对应的马尔可夫模型中的边以外的边需要减去的权重按如下公式计算PJdecr=kX(Pj)P、。r表示从一个顶点出发的边中,除当前仿真结果的激励所对应的马尔可夫模型中的边以外的边需要减去的权重,以使得从一个顶点出发的所有边权重和为1。Pj为该需要减少权重的边当前的权重值。实现步骤S420的具体实施方式三从一个顶点出发的边中,当前仿真结果的激励所对应的马尔可夫模型中的边的权重增加为最大权重值l,其余边权重为最小权重值0。步骤S500,如果待检测的集成电路未达到目标状态并且仿真次数未超过预设次数,则执行步骤S300;否则,终止仿真,并报告成功或者运行超时。因待检测的集成电路达到目标状态而终止仿真,则报告成功;因仿真次数未超过预设次数而终止仿真,则报告运行超时。—种集成电路验证系统,如图5所示。抽象引擎100,用于对待验证的集成电路进行抽象,生成对应的抽象模型,并且在所述抽象模型上进行形式化计算,以获得形式化信息;激励生成引擎200包括马尔可夫模型建立模块210、激励产生模块220、参数调整模块230、验证结果上报模块240。马尔可夫模型建立模块210,用于根据待检测的集成电路的规范建立的马尔可夫模型。激励产生模块220,用于由马尔可夫模型生成激励,将所述激励输入仿真器。仿真器300,用于对所述待检测的集成电路进行仿真。参数调整模块230,用于依据所述形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整所述马尔可夫模型中参数。验证结果上报模块240,用于在待检测的集成电路未达到目标状态并且仿真次数未超过预设次数时启动所述激励产生模块220;否则,终止仿真,并报告成功或者运行超时。较佳的,抽象引擎IOO进一步用于建立数据依赖图;在所述数据依赖图上进行抽象,生成抽象模型;在所述抽象模型上进行形式化计算,获得形式化信息。抽象引擎100在建立数据依赖图时进一步用于根据待检测的集成电路的硬件描述语言的描述,依据存储目标状态的目标状态变量建立数据依赖图;所述数据依赖图中,每一个结点代表一个寄存器变量,两个结点之间的有向箭头表示目标结点对源结点存在数据依赖关系。具体实施方式一中,抽象引擎100在生成抽象模型时进一步用于在所述数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型;如果两个存在依赖关系的寄存器变量被加入到所述抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述抽象模型中。抽象引擎100在进行形式化计算时进一步用于采用基于二分决策图的形式化计算工具在所述抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。具体实施方式二中,抽象引擎100在生成抽象模型时进一步用于在所述数据依赖图中,将所述目标状态变量划分为组,从各个组的目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型的对应子抽象模型中;如果两个存在依赖关系的寄存器变量被加入到所述子抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述子抽象模型中。抽象引擎100在进行形式化计算时进一步用于采用基于二分决策图的形式化计算工具在每个所述子抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到所述子抽象模型对应的抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。较佳的,激励产生模块220进一步用于在仿真的每一周期之前,根据马尔可夫模型的当前配置生成一个周期的激励,并提供给仿真器进行仿真。较佳的,参数调整模块230进一步用于从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据所述抽象距离比较本周期仿真结果同上一仿真周期的仿真结果,如果比较结果为本周期仿真结果更接近目标状态,则增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为1,并启动所述验证结果上报模块240;否则,直接启动所述验证结果上报模块240。参数调整模块230进一步用于从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据如下公式计算仿真结果在子抽象模型中的适应度,fiti=Max「Difiti是仿真结果在每个子抽象模型中的适应度值A为仿真结果在所述子抽象模型的抽象距离信息表中查找到的对应的抽象距离,MaXi为所述子抽象模型的最大抽象距离值;按如下公式计算仿真结果的适应度,v.<formula>formulaseeoriginaldocumentpage17</formula>、为子抽象模型中包含的目标状态变量数目;Vt。tal表示抽象模型的总的目标状态变量数目;NP表示子抽象模型的数量,Fitness—value表示本周期仿真结果的适应度值;比较本周期仿真结果对应的适应度同上一仿真周期的仿真结果对应的适应度,如果比较结果为本周期仿真结果更接近目标状态,则增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为1,并启动所述验证结果上报模块240;否则,直接启动所述验证结果上报模块500。本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。权利要求一种集成电路验证方法,其特征在于,包括步骤1,抽象引擎对待验证的集成电路进行抽象,生成对应的抽象模型,并且在所述抽象模型上进行形式化计算,以获得形式化信息;步骤2,激励生成引擎初始化根据待检测的集成电路的规范建立的马尔可夫模型;步骤3,激励生成引擎由马尔可夫模型生成激励,将所述激励输入仿真器,所述仿真器对所述待检测的集成电路进行仿真;步骤4,所述激励生成引擎依据所述形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整所述马尔可夫模型中参数;步骤5,如果待检测的集成电路未达到目标状态并且仿真次数未超过预设次数,则执行所述步骤3;否则,终止仿真,并报告成功或者运行超时。2.根据权利要求1所述的集成电路验证方法,其特征在于,所述步骤l进一步为,步骤21,建立数据依赖图;步骤22,在所述数据依赖图上进行抽象,生成抽象模型;步骤23,在所述抽象模型上进行形式化计算,获得形式化信息。3.根据权利要求2所述的集成电路验证方法,其特征在于,所述步骤21进一步为,步骤31,根据待检测的集成电路的硬件描述语言的描述,依据存储目标状态的目标状态变量建立数据依赖图;所述数据依赖图中,每一个结点代表一个寄存器变量,两个结点之间的有向箭头表示目标结点对源结点存在数据依赖关系。4.根据权利要求3所述的集成电路验证方法,其特征在于,所述步骤22进一步为,步骤41,在所述数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型;如果两个存在依赖关系的寄存器变量被加入到所述抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述抽象模型中。5.根据权利要求3所述的集成电路验证方法,其特征在于,所述步骤22进一步为,步骤51,在所述数据依赖图中,将所述目标状态变量划分为组,从各个组的目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型的对应子抽象模型中;如果两个存在依赖关系的寄存器变量被加入到所述子抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述子抽象模型中。6.根据权利要求2所述的集成电路验证方法,其特征在于,所述步骤23进一步为,步骤61,采用基于二分决策图的形式化计算工具在所述抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。7.根据权利要求5所述的集成电路验证方法,其特征在于,所述步骤23进一步为,步骤71,采用基于二分决策图的形式化计算工具在每个所述子抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到所述子抽象模型对应的抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。8.根据权利要求1所述的集成电路验证方法,其特征在于,所述步骤3进一步为,步骤81,所述激励生成引擎在仿真的每一周期之前,根据马尔可夫模型的当前配置生成一个周期的激励,并提供给仿真器进行仿真。9.根据权利要求6或7所述的集成电路验证方法,其特征在于,所述步骤4进一步为,步骤91,从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据所述抽象距离比较本周期仿真结果同上一周期的仿真结果,如果比较结果为本周期仿真结果更接近目标状态,则执行步骤92,否则,执行所述步骤5;步骤92,增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,执行所述步骤5。10.根据权利要求7所述的集成电路验证方法,其特征在于,所述步骤4进一步为,步骤101,从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据如下公式计算仿真结果在子抽象模型中的适应度,fiti=Max「Difiti是仿真结果在每个子抽象模型中的适应度值A为仿真结果在所述子抽象模型的抽象距离信息表中查找到的对应的抽象距离,MaXi为所述子抽象模型的最大抽象距离值;步骤S102,按如下公式计算仿真结果的适应度,v.''=0Vw(。/,Vi为子抽象模型中包含的目标状态变量数目;Vt。^表示抽象模型的总的目标状态变量数目;Np表示子抽象模型的数量,Fitness—value表示本周期仿真结果的适应度值;步骤S103,比较本周期仿真结果对应的适应度同上一仿真周期的仿真结果对应的适应度,如果比较结果为本周期仿真结果更接近目标状态,则执行步骤104,否则,执行所述步骤5;步骤104,增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,执行所述步骤5。11.一种集成电路验证系统,其特征在于,包括抽象引擎,用于对待验证的集成电路进行抽象,生成对应的抽象模型,并且在所述抽象模型上进行形式化计算,以获得形式化信息;激励生成引擎包括马尔可夫模型建立模块、激励产生模块、参数调整模块、验证结果上报模块,所述马尔可夫模型建立模块,用于根据待检测的集成电路的规范建立的马尔可夫模型;所述激励产生模块,用于由马尔可夫模型生成激励,将所述激励输入仿真器;所述仿真器,用于对所述待检测的集成电路进行仿真;所述参数调整模块,用于依据所述形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整所述马尔可夫模型中参数;所述验证结果上报模块,用于在待检测的集成电路未达到目标状态并且仿真次数未超过预设次数时启动所述激励产生模块;否则,终止仿真,并报告成功或者运行超时。12.根据权利要求11所述的集成电路验证系统,其特征在于,所述抽象引擎进一步用于建立数据依赖图;在所述数据依赖图上进行抽象,生成抽象模型;在所述抽象模型上进行形式化计算,获得形式化信息。13.根据权利要求12所述的集成电路验证系统,其特征在于,所述抽象引擎在建立数据依赖图时进一步用于根据待检测的集成电路的硬件描述语言的描述,依据存储目标状态的目标状态变量建立数据依赖图;所述数据依赖图中,每一个结点代表一个寄存器变量,两个结点之间的有向箭头表示目标结点对源结点存在数据依赖关系。14.根据权利要求13所述的集成电路验证系统,其特征在于,所述抽象引擎在生成抽象模型时进一步用于在所述数据依赖图中,从目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型;如果两个存在依赖关系的寄存器变量被加入到所述抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述抽象模型中。15.根据权利要求13所述的集成电路验证系统,其特征在于,所述抽象弓I擎在生成抽象模型时进一步用于在所述数据依赖图中,将所述目标状态变量划分为组,从各个组的目标状态变量出发,按照逻辑依赖关系由近及远的回溯,并采用广度优先搜索方式将遍历到的寄存器变量加入到抽象模型的对应子抽象模型中;如果两个存在依赖关系的寄存器变量被加入到所述子抽象模型中,则两个所述寄存器变量之间的组合逻辑也被加入到所述子抽象模型中。16.根据权利要求12所述的集成电路验证系统,其特征在于,所述抽象引擎在进行形式化计算时进一步用于采用基于二分决策图的形式化计算工具在所述抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。17.根据权利要求15所述的集成电路验证系统,其特征在于,所述抽象引擎在进行形式化计算时进一步用于采用基于二分决策图的形式化计算工具在每个所述子抽象模型上进行形式化计算,获得形式化信息,将所述形式化信息记录到所述子抽象模型对应的抽象距离信息表中,所述形式化信息包括抽象状态和抽象状态对应的抽象距离。18.根据权利要求11所述的集成电路验证系统,其特征在于,所述激励产生模块进一步用于在仿真的每一周期之前,根据马尔可夫模型的当前配置生成一个周期的激励,并提供给仿真器进行仿真。19.根据权利要求16或17所述的集成电路验证系统,其特征在于,所述参数调整模块进一步用于从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据所述抽象距离比较本周期仿真结果同上一周期的仿真结果,如果比较结果为本周期仿真结果更接近目标状态,则增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,并启动所述验证结果上报模块;否则,直接启动所述验证结果上报模块。20.根据权利要求17所述的集成电路验证系统,其特征在于,所述参数调整模块进一步用于从所述抽象距离信息表中查找仿真结果对应的抽象距离,依据如下公式计算仿真结果在子抽象模型中的适应度,fiti=Max「Difiti是仿真结果在每个子抽象模型中的适应度值A为仿真结果在所述子抽象模型的抽象距离信息表中查找到的对应的抽象距离,MaXi为所述子抽象模型的最大抽象距离值;按如下公式计算仿真结果的适应度,<formula>formulaseeoriginaldocumentpage5</formula>,、为子抽象模型中包含的目标状态变量数目;Vt。w表示抽象模型的总的目标状态变量数目;NP表示子抽象模型的数量,Fitness—value表示本周期仿真结果的适应度值;比较本周期仿真结果对应的适应度同上一仿真周期的仿真结果对应的适应度,如果比较结果为本周期仿真结果更接近目标状态,则增大马尔可夫模型中当前仿真结果的激励所对应的边的权重,并减少所述马尔可夫模型中其他边的权重以使马尔可夫模型中一个顶点出发的边中权重和为l,并启动所述验证结果上报模块;否则,直接启动所述验证结果上报模块。全文摘要本发明涉及集成电路验证方法及其系统,方法包括步骤1,抽象引擎对待验证的集成电路进行抽象,生成对应的抽象模型,进行形式化计算;步骤2,激励生成引擎初始化根据待检测的集成电路的规范建立的马尔可夫模型;步骤3,激励生成引擎由马尔可夫模型生成激励,将激励输入仿真器,仿真器对待检测的集成电路进行仿真;步骤4,激励生成引擎依据形式化信息比较本周期仿真结果和上周期仿真获得的仿真结果,如果本周期仿真结果更接近目标状态,则调整马尔可夫模型中参数;步骤5,如果待检测的集成电路未达到目标状态并且仿真次数未超过预设次数,则执行步骤3;否则,终止仿真,并报告成功或者运行超时。本发明能够降低计算成本,提高检测效率。文档编号G06F17/50GK101794330SQ20091024417公开日2010年8月4日申请日期2009年12月30日优先权日2009年12月30日发明者吕涛,张弢,李晓维申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1