随机约束可选择的基于覆盖率驱动的随机验证方法技术

技术编号:16428046 阅读:45 留言:0更新日期:2017-10-21 23:07
本发明专利技术公开了一种随机约束可选择的基于覆盖率驱动的随机验证方法,属于随机验证领域,要解决的技术问题为如何实现随机约束可动态评估和选择的基于覆盖率驱动的随机验证;其包括如下步骤:S1、定义随机验证环境中所有需要的随机约束,并定义上述随机约束的取值范围;S2、将定义后的所有需要的随机约束组合划分为多组随机约束组合,且每两组随机约束组合之间不存在实际功能的完全重叠;S3、设置能够动态调整的覆盖率统计周期;S4、在覆盖率统计周期内统计当前仿真验证过程中覆盖率的增长情况,并将新增的覆盖率累加到已有的覆盖率数据中,以当前仿真验证过程中覆盖率的增长情况作为随机约束的评估准则,对上述随机约束组合进行仿真验证。

Random Constrained optional random verification method based on coverage driven

The invention discloses a random coverage driven verification approaches based on a constrained random choice, belongs to the field of random verification, the technical problem to be solved is how to realize the dynamic evaluation and random constrained random selection based on coverage driven verification; which comprises the following steps: S1, the definition of random verification environment all need the random constraints, and define the range of stochastic constraints; after all, S2 will define the need for random constraint combination division multiple sets of random combination of the constraints, completely overlap and there is no actual function between two groups of random constraint; S3, can set coverage statistics dynamic period; coverage the simulation in the process of growth in S4, statistical coverage statistical period, and the new coverage coverage data added to the existing, when to The growth rate of coverage in the prior simulation verification process is used as the evaluation criterion of random constraints, and the above random constraints combination is simulated and verified.

【技术实现步骤摘要】
随机约束可选择的基于覆盖率驱动的随机验证方法
本专利技术涉及随机验证领域,具体地说是一种随机约束可选择的基于覆盖率驱动的随机验证方法。
技术介绍
随着工艺技术以及应用领域的不断发展,芯片的复杂度不断提高,相对应的,对仿真验证工作的要求也在不断提高,需要进行仿真验证的功能点越来越繁复,验证周期的要求越来越严格。现有的芯片设计流程分为前端设计(逻辑设计)和后端设计(物理设计)两个阶段。前端设计主要是以通过硬件描述语言(如verilog)来实现芯片的逻辑功能,代码描述的正确性主要通过对这些代码(或是由这些代码生成的网表)的仿真验证来实现。在标准的仿真验证流程中,需要确保的前端设计涉及到的逻辑功能的功能点,都需要通过构造相应的仿真场景,证实前段设计逻辑功能的正确性。对复杂度较高的系统进行仿真验证,随机验证是一个重要的步骤,可以在尽可能减少人力的前提下覆盖更多复杂甚至是预期外的场景。随机化激励可以仅用几行代码就能产生大量的激励数据,通过为设计提供随机激励信号来扩大验证的测试空间。但是,当设计规模很大且非常复杂时,随机验证空间会变得近乎无限,于是需要给随机化过程施加一定的约束,使其按照约束生成随机化的激励,即让它生成的随机化的激励更多地落在有效的区域或者边界内,以更快地达到功能覆盖率的要求。因此,随机约束的选择也决定了随机验证的效率。约束过于宽泛会造成随机出来的场景大部分都是没有意义的,约束过于严格又会限制随机出的场景类型。在现有的仿真验证中,定向验证一般是基于覆盖率驱动的,既通过分析对于功能点覆盖(或者关键代码行的覆盖)的情况来构造特定的激励来进行定向验证。而随着待验证芯片的规模不断扩大,为了提高效率,缩短验证周期,更多的随机验证被引入到基于覆盖率驱动的验证中来。通过对于覆盖率情况的分析,添加不同的随机约束来构造更多的验证场景。然后,对于随机验证无法覆盖到的功能点,再构造特定的定向验证。在基于覆盖率驱动的仿真验证中,评价随机约束的优劣最直观的方法当然是基于在该约束下的随机仿真一段时间之后,覆盖的功能点范围。但这种做法并不实用,一是怎么确定这个比较的时间周期,时间太短的话很可能反映不出随机约束之间的差别,时间太长的话,因为每种随机约束都需要仿真出结果来比较,这一过程需要耗费大量的时间和资源;二是待覆盖的功能点之间覆盖的难易程度实际上是有区别的,因此覆盖功能点数量不能作为一个比较不同验证过程好坏的标准。一旦出现不同约束覆盖的功能点范围并不重叠的情况,就无法做出选择了。在现在主流的验证流程中,对于随机约束的选择还是更多依赖工程师对每次随机仿真验证的过程进行监控和分析,依照随机验证的进展来手动调整每次的随机约束,这样的做法虽然保证了不会有额外的时间和仿真资源的浪费,但其效率和准确性完全依赖于工程师,并且随着系统复杂性和规模的增长,面临的挑战也越来越大。如何在随机验证中对随机约束进行动态的评估和选择,减少验证工程师的工作量,实现基于覆盖率驱动的随机验证,是需要解决的技术问题。
技术实现思路
本专利技术的技术任务是提供一种随机约束可选择的基于覆盖率驱动的随机验证方法,来解决如何实现随机约束可动态评估和选择的基于覆盖率驱动的随机验证的问题,从而实现随机验证过程中随机约束的动态调整,并减少工程师的工作量。本专利技术的技术任务是按以下方式实现的:随机约束可选择的基于覆盖率驱动的随机验证方法,包括如下步骤:S1、定义随机验证环境中所有需要的随机约束,并定义上述随机约束的取值范围;S2、将定义后的所有需要的随机约束组合划分为多组随机约束组合,且每两组随机约束组合之间不存在实际功能的完全重叠;S3、设置能够动态调整的覆盖率统计周期;S4、在覆盖率统计周期内统计当前仿真验证过程中覆盖率的增长情况,并将新增的覆盖率累加到已有的覆盖率数据中,以当前仿真验证过程中覆盖率的增长情况作为随机约束的评估准则,对上述随机约束组合进行仿真验证。进一步的,步骤S3中,设置能够动态调整的覆盖率统计周期包括设置初始的覆盖率统计周期以及最大连续没有覆盖率增长的覆盖率统计周期数阈值。进一步的,步骤S2中,设置上述多组随机约束组合的仿真顺序;步骤S4中,在一个仿真过程中依序串行的对上述多组随机约束组合进行仿真验证。进一步的,步骤S4中,在一个仿真过程中随机串行的对上述多组随机约束组合进行仿真验证。进一步的,步骤S2中,将上述所有需要的随机约束组合划分为多组随机约束组合组,并设置每组随机约束组合组中对应的随机约束组合的仿真顺序;步骤S4中,每组随机约束组合组对应一个仿真过程,在每一个仿真过程中依序串行的对与其对应的随机约束组合进行仿真验证,上述多个仿真过程并行进行。进一步的,步骤S2中,将上述所有需要的随机约束组合划分为多组随机约束组合组;步骤S4中,每组随机约束组合组对应一个仿真过程,在每一个仿真过程中随机串行的对与其对应的随机约束组合进行仿真验证,上述多个仿真过程并行进行。进一步的,步骤S4中,随机约束组合进行仿真验证的步骤记为S4-1,其内容为:S4-11、在一个覆盖率统计周期内对随机约束组合进行仿真验证,直至所述覆盖率统计周期结束,S4-12、判断在上述覆盖率统计周期内覆盖率的增长情况,覆盖率的增长情况为覆盖率没有增长,则跳出执行其他步骤;覆盖率的增长情况为覆盖率有增长,则进入下一个覆盖率统计周期,则重新循环S4-1;在一个仿真过程中依序串行的对上述多组随机约束组合进行仿真验证,包括如下步骤:S41、依序读入一组随机约束组合,开始执行随机约束组合进行仿真验证,即调用执行S4-1;直至S4-1跳出执行其他步骤后,则执行步骤S42;S42、判断连续没有覆盖率增长的覆盖率统计周期数是否达到最大连续没有覆盖率增长的覆盖率统计周期数阈值;如果未达到,执行步骤S43;如果达到,执行步骤S44;S43、延长上述覆盖率统计周期,在延长的覆盖率统计周期内对随机约束组合进行仿真验证,即调用执行S4-1;直至S4-1跳出执行其他步骤后,则执行步骤S42;S44、判断是否有未仿真验证的随机约束组合,如果无未仿真验证的随机约束组合,则结束;如果有未仿真验证的随机约束组合,则依序读入下一组随机约束组合,重新开始执行步骤S41。进一步的,步骤S4中,随机约束组合进行仿真验证的步骤记为S4-1,其内容为:S4-11、在一个覆盖率统计周期内对随机约束组合进行仿真验证,直至所述覆盖率统计周期结束,S4-12、判断在上述覆盖率统计周期内覆盖率的增长情况,覆盖率的增长情况为覆盖率没有增长,则跳出执行其他步骤;覆盖率的增长情况为覆盖率有增长,则进入下一个覆盖率统计周期,则重新循环S4-1;在一个仿真过程中随机串行的对上述多组随机约束组合进行仿真验证,包括如下步骤:S41、随机读入一组随机约束组合,开始执行随机约束组合进行仿真验证,即调用执行S4-1;直至S4-1跳出执行其他步骤后,则执行步骤S42;S42、判断连续没有覆盖率增长的覆盖率统计周期数是否达到最大连续没有覆盖率增长的覆盖率统计周期数阈值;如果未达到,执行步骤S43;如果达到,执行步骤S44;S43、延长上述覆盖率统计周期,在延长的覆盖率统计周期内对随机约束组合进行仿真验证,即调用执行S4-1;直至S4-1跳出执行其他步骤后,则执行步骤S42本文档来自技高网
...
随机约束可选择的基于覆盖率驱动的随机验证方法

【技术保护点】
随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于包括如下步骤:S1、定义随机验证环境中所有需要的随机约束,并定义上述随机约束的取值范围;S2、将定义后的所有需要的随机约束组合划分为多组随机约束组合,且每两组随机约束组合之间不存在实际功能的完全重叠;S3、设置能够动态调整的覆盖率统计周期;S4、在覆盖率统计周期内统计当前仿真验证过程中覆盖率的增长情况,并将新增的覆盖率累加到已有的覆盖率数据中,以当前仿真验证过程中覆盖率的增长情况作为随机约束的评估准则,对上述随机约束组合进行仿真验证。

【技术特征摘要】
1.随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于包括如下步骤:S1、定义随机验证环境中所有需要的随机约束,并定义上述随机约束的取值范围;S2、将定义后的所有需要的随机约束组合划分为多组随机约束组合,且每两组随机约束组合之间不存在实际功能的完全重叠;S3、设置能够动态调整的覆盖率统计周期;S4、在覆盖率统计周期内统计当前仿真验证过程中覆盖率的增长情况,并将新增的覆盖率累加到已有的覆盖率数据中,以当前仿真验证过程中覆盖率的增长情况作为随机约束的评估准则,对上述随机约束组合进行仿真验证。2.根据权利要求1所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S3中,设置能够动态调整的覆盖率统计周期包括设置初始的覆盖率统计周期以及最大连续没有覆盖率增长的覆盖率统计周期数阈值。3.根据权利要求1或2所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S2中,设置上述多组随机约束组合的仿真顺序;步骤S4中,在一个仿真过程中依序串行的对上述多组随机约束组合进行仿真验证。4.根据权利要求1或2所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S4中,在一个仿真过程中随机串行的对上述多组随机约束组合进行仿真验证。5.根据权利要求1或2所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S2中,将上述所有需要的随机约束组合划分为多组随机约束组合组,并设置每组随机约束组合组中对应的随机约束组合的仿真顺序;步骤S4中,每组随机约束组合组对应一个仿真过程,在每一个仿真过程中依序串行的对与其对应的随机约束组合进行仿真验证,上述多个仿真过程并行进行。6.根据权利要求1或2所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S2中,将上述所有需要的随机约束组合划分为多组随机约束组合组;步骤S4中,每组随机约束组合组对应一个仿真过程,在每一个仿真过程中随机串行的对与其对应的随机约束组合进行仿真验证,上述多个仿真过程并行进行。7.根据权利要求3所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S4中,随机约束组合进行仿真验证的步骤记为S4-1,其内容为:S4-11、在一个覆盖率统计周期内对随机约束组合进行仿真验证,直至所述覆盖率统计周期结束;S4-12、判断在上述覆盖率统计周期内覆盖率的增长情况,覆盖率的增长情况为覆盖率没有增长,则跳出执行其他步骤;覆盖率的增长情况为覆盖率有增长,则进入下一个覆盖率统计周期,则重新循环S4-1;在一个仿真过程中依序串行的对上述多组随机约束组合进行仿真验证,包括如下步骤:S41、依序读入一组随机约束组合,开始执行随机约束组合进行仿真验证,即调用执行S4-1;直至S4-1跳出执行其他步骤后,则执行步骤S42;S42、判断连续没有覆盖率增长的覆盖率统计周期数是否达到最大连续没有覆盖率增长的覆盖率统计周期数阈值;如果未达到,执行步骤S43;如果达到,执行步骤S44;S43、延长上述覆盖率统计周期,在延长的覆盖率统计周期内对随机约束组合进行仿真验证,即调用执行S4-1;直至S4-1跳出执行其他步骤后,则执行步骤S42;S44、判断是否有未仿真验证的随机约束组合,如果无未仿真验证的随机约束组合,则结束;如果有未仿真验证的随机约束组合,则依序读入下一组随机约束组合,重新开始执行步骤S41。8.根据权利要求4所述的随机约束可选择的基于覆盖率驱动的随机验证方法,其特征在于步骤S4中,随机约束组合进行仿真验证的步骤记为S4-1,其内容为:S4-11、在一个覆盖率统计周期内对随机约束组合进行仿真验证,直至所述覆盖率统计周期结束,S4-12、判断在上述覆盖率统计周期内覆盖...

【专利技术属性】
技术研发人员:李拓
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1