路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SV断言在测试激励中的应用

已有 3829 次阅读| 2017-4-26 00:40 |个人分类:验证前沿资讯|系统分类:硬件设计

在我们平常的验证过程中,有这样的一种问题存在:一个测试激励根本没有测试到我们期望的测试点,但是在仿真的过程中也没有出现严重的错误,从头到尾仿真正常的结束,那么我们一般会认为它仿真通过了,在我们收集覆盖率之前我们一般不会发现它其实根本什么都没有做,只是假装仿真通过,今天我们介绍一种克服这种问题的办法,利用SV的断言API接口链接上UVM的测试平台来动态监测我们测试激励的实际仿真情况,如果没有打到测试点,就结束仿真,让这个测试激励不通过,这样不仅可以减少仿真时间的浪费,还可以减少不必要的覆盖点的增加
一般我们都是利用SV断言来检测设计代码的执行质量,但在这篇文章中我们来介绍怎么利用SV断言检测测试代码的质量,我们会通过一个例子来介绍怎么去写监测测试激励的代码并且把它和我们的UVM测试平台链接起来,我们利用断言来检测测试代码质量的目的是为了检验测试激励仿真过程中有没有测试到我们期望的那些点,这和我们的断言覆盖率分析报告很像,只不过我们针对的是单个的测试激励,当然利用SV断言来进行测试激励的检测技术不仅可以让我们挑出那些无作为的测试激励,还可以根据SV断言的反馈情况来调整我们测试激励的输入,以达到比较高的覆盖率
下面我们具体看看它怎么实现,在这个例子中,我们假设要测试的设计模块是一个仲裁模块,它有三个输入,三个输出如下图:
为了帮助验证这个模块,可能验证工程师已经已经有针对性的写了以下断言,如下图:
这些断言的用处在于如果仲裁模块发生了不合法的行为,它就会让我们的测试激励仿真失败,但它却并不能指出测试激励是否正确的测试了仲裁模块,也就是说我们对于仲裁模块的使用合理不合理,如果你的测试激励的测试点是同时拉高三个req信号,那么上面的断言并不能告诉你,你的测试激励在仿真过程中到底有没有测试到这一点,为了验证有没有测试到你还需要加上下面的断言:
然后根据断言覆盖率报告,你可以确定同时拉高三个req信号的情况有没有被测试到,但通常对于覆盖率报告的分析都是针对整个regression的,所以你只能确定这种情况没有没测试到,却不知道是那个测试激励覆盖到的,这样我们就有必要针对我们的测试激励进行断言确认,但鉴于不同的测试激励需要的断言确认情况不一样,所以我们需要对断言加一些可以自由配置的选项,就像下图一样,自由决定断言的开关:
断言的应用场景和应用方式确定了,下来我们该探讨具体的实现细节了,我们将主要利用SV断言API的两个特性来实现断言的监视器:一、可以通过和设计模块交互找到特定的断言,二、可以把一些子线程和一些断言绑定,整个断言在我们测试激励仿真过程中的应用如下图所示:
在测试激励仿真开始之前,SV测试平台会根据命令行参数去解析验证人员需要添加的断言,并把它和合适的C DPI线程绑定,具体实现代码如下图:
接下来在仿真过程中,每当断言执行成功就会紧接着执行和当前断言绑定的回调函数,同样监视器也会更新断言检测的数据库,部分代码如下图,其他更多请参考原文:
在每个测试激励仿真结束时,SV测试平台会调用end-of-test线程来检查有没有其他的错误,代码如下图:
另外,我们的断言监视器系统除了可以应用在这些直接测试激励上,对于随机测试激励也可以发挥它的作用,来提供反馈让我们的随机测试更好的完成测试任务,下面是一个应用例子:
随着集成电路的设计复杂度越来越高,验证的时间周期会变得越来越紧,可以动态的去检测每一个测试激励的实际仿真情况对于我们的验证进程有着很大的影响,它可以让我们最大程度的利用仿真资源,减少不必要的时间浪费,以很快的速度接近覆盖率收敛的目标.

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 04:54 , Processed in 0.016526 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部