一种功能覆盖率的全遍历方法与流程

文档序号:14036692阅读:415来源:国知局
一种功能覆盖率的全遍历方法与流程

本发明适用于芯片设计开发领域,仿真验证阶段中对于功能覆盖率的建立方法。通过有效的交叉分析得到全面可靠的功能覆盖率集合。



背景技术:

功能覆盖率是systemverilog引入的一个对功能监测的有效工具,可以对自定义的功能覆盖率点,功能覆盖率集合中所描述的芯片设计功能进行收集,只有达到了预期的功能覆盖率才能够证明芯片中的功能经过验证的,结果正确的,复合设计的意图。

功能覆盖率点是单个功能点,而功能覆盖率集合是将两个甚至多个功能覆盖率点集合在一起,从而代表芯片设计某个特定的状态在仿真验证中出现。



技术实现要素:

在芯片设计开发中,仿真验证阶段需要收集功能覆盖率来保证所有的功能覆盖率点都被覆盖到。对于功能复杂的模块,功能覆盖率点会较多,这就导致功能覆盖率集合会更加多,例如n个功能覆盖率点,在没有排除无意义的功能覆盖率集合,可能有cn1+cn2+cn3+…+cnn-1个功能覆盖率集合。而实际上全部覆盖所有的功能覆盖率集合是不现实的,需要创建大量的仿真验证测试例,耗费太多时间,而且带来的意义不大,所以采用本发明提供一种全遍历的方法,并且有效排除了所有低价值,无意义的功能覆盖率集合,尽快收敛到合理全面的功能覆盖率集合。

首先,可以从设计规范中提取相应的基本功能覆盖率点,将功能覆盖率点分别填入表格的横列和纵列,基本功能覆盖率点是整个覆盖率分析的出发条,也决定了交叉功能覆盖率集合的最大值。因为功能覆盖率集合是不关心先后顺序的,所以可以忽略表格下半部分的内容,经过设计的特性分析,与其他功能点的交集意义并不大,可以忽略的集合,在表格中用“---”符号来表示,可以忽略的交叉功能覆盖率集合是后续覆盖率分析的约束条件,决定了有忽略的交叉功能覆盖率集合数量。其他有意义的集合就用两个字符组合代表

然后,将上一步中的功能覆盖率集合列在新图表的横列,继续将基本功能覆盖率点列在图表的纵列。先将自身已经包含的功能点的交集填入灰色,再从之前的分析可以将可忽略的所有交集点直接填入忽略符号,其他点可以填入功能覆盖率点的交集集合,有部分交集会发生重复,可以用“+++”符号填入。经过图表分析,得到新的功能覆盖率集合。

最后,再重复上面的步骤,将新的功能覆盖率集合列在新的图表的横列,基本功能覆盖率点列在图表的纵列。填入已经包含的和忽略的部分,最后填入交集集合,以及重复的部分。不断重复以上步骤知道收敛,无法产生新的交集。

以上通过具体实施方式对本发明进行了详细说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

附图说明

图1为提取基本功能覆盖率点,横列和纵列一样,通过图表交叉方式的到1x1的功能覆盖率集合。

图2为图1得到的功能覆盖率集合填入横列,纵列继续使用基本功能覆盖率点,通过图表交叉方式得到2x1的功能功能覆盖率集合。

图3为图2得到的功能覆盖率集合填入横列,纵列继续使用基本功能覆盖率点,通过图表交叉方式得到3x1的功能功能覆盖率集合。

具体实施方式

首先,可以从设计规范中提取相应的基本功能覆盖率点,如图1所示的a,b,c,d,e,f分别代表6个基本功能覆盖率点,例如:a为3种模式,有测试模式,调试模式,应用模式,b为工作频率,其中有意义的为3个频率,分别为最低,最高,以及正常工作频率,c为2个权限模式,分别为系统权限,用户权限,其他d、e、f分别代表其他功能覆盖率点,每个功能覆盖率点包含了多个功能覆盖率状态。将6个功能覆盖率点分别填入表格的横列和纵列。因为功能覆盖率集合是不关心先后顺序的,所以可以忽略表格下半部分的内容,在图1中为灰色。经过设计的特性分析,例如工作频率仅需要在各个模式以及权限下验证,其他功能点不关心工作频率,于是得出b这个功能覆盖率点仅仅与a和c相关,为了简化分析,再加入f这个功能覆盖率点也仅与a和c相关,与其他功能点的交集意义并不大,可以忽略,在图1中用“---”符号来表示忽略的功能覆盖率集合。其他有意义的集合就用两个字符代表,于是我们得到图1表格中的交集集合,一共10个功能覆盖率集合(ab,ac,ad,ae,af,bc,cd,ce,cf,de),例如a和b的集合就需要3*3的点需要覆盖,所以仅仅两个功能覆盖率点的集合就有9个功能覆盖率状态需要覆盖,简化功能覆盖率集合,是一定的意义的。

然后,将图1中的10个功能覆盖率集合列在图2的横列,继续将6个基本功能覆盖率点列在图2的纵列。先将自身已经包含的功能点的交集填入灰色,再从之前的分析可以将b,f与非a,非c的所有交集点直接填入忽略符号,其他点可以填入3个功能覆盖率点的交集集合,有部分交集会发生重复,这里我们可以用“+++”符号填入。经过图2分析,一共得到6个新的功能覆盖率集合(abc,acd,ace,ade,acf,cde)。

最后,再重复上面的步骤,将6个功能覆盖率集合列在图3的横列,6个基本功能覆盖率点列在图3的纵列。填入已经包含的和忽略的部分,最后填入交集集合,以及重复的部分。在图3中最后只得到一个功能覆盖率集合(acde),剩下的功能覆盖率点b,f已经不可能再与其相交,所以可以停止进一步分析。

经过以上方法,通过一开始的约束,一共得到6个基本功能覆盖率点,10个图1的功能覆盖率集合,6个图2功能覆盖率集合,1个图3功能覆盖率集合,一共10+6+1=17个功能覆盖率集合,相对于全覆盖(c62+c63+c64+c65=15+20+15+6=56),得到了全部有意义而且精简的功能覆盖率集合。整个分析方法通过图表的方式,没有任何遗漏,而且排除了无意义、重复集合,得到了最高效的功能覆盖率集合。



技术特征:

技术总结
功能覆盖率是可以监测仿真验证中的预期功能点是否被激励到,并且发生功能,是保证仿真验证的全面性的有效手段,通过全遍历的方法可以让设计中的功能点被完整仿真验证,并且由点到面的整体考虑,不留盲区。本发明可以在功能验证中作为辅助参考,保证验证的全面有效性。

技术研发人员:朱思良;周强
受保护的技术使用者:上海华虹集成电路有限责任公司
技术研发日:2017.11.01
技术公布日:2018.03.27
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1