0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看看使用芯片验证随机带来的六宗罪

sanyue7758 来源:处芯积律 2023-04-10 11:21 次阅读

以前看到不少验证技术书籍都在说验证环境中随机怎么怎么好,然后为了随机,UVM,SV 提供了什么什么支持。

但是最近的一些工作小编发现在验证中采用随机存在很多缺点。下面小编带大家看看使用随机带来的六宗罪。

第一宗罪:难以debug

出现fail的test,当debug完,对设计和验证环境做了改动,可能无法复现fail的场景。

如何确保发现的testbench的问题,或者RTL的问题有真的修掉?一般的做法是用同样的seed,然后跑一遍之前的fail的test。但是有很多时候,由于环境的文件,约束等改变,再用同样的seed 跑fail 的test 和之前的行为不一致,从而错误的认为问题已经修掉。

第二宗罪:难以覆盖到特定场景

有些场景通过随机撞到的概率非常低。

如下图所示,C=A &&B,在下图场景中想通过 随机到 (A==1)&&(B==1)的 场景,非常难。

9a037e26-d6bb-11ed-bfe3-dac502259ad0.png

第三宗罪:验证时间不确定

回归结果不可靠。一次通过率100%,不代表次次回归100%。

一次回归可能100%,第二次回归又变成90%。连续10次回归100%,第十一次回归又出现fail的test。

第四宗罪:重复测试用例很多

浪费太多license 和服务器资源。

因为单次regression不能保证没有问题,所以要周周跑,月月跑,一直跑到tapout,这浪费了很多license和服务器资源。特别是有些test 打到的场景重复,做一些无效验证,给公司资源造成极大浪费。

第五宗罪:覆盖率收集耗费资源

coverage 收敛比较耗时间和资源。

由于随机约束造成不同场景出现的概率不一样,通过随机测试将代码覆盖率和功能覆盖率补全需要经过大量的回归测试。coverage的收敛速度没有直接测试来得快。

下面是一个案例,在跑完一版regression后,功能覆盖率是80.49%。

9a26f734-d6bb-11ed-bfe3-dac502259ad0.png

我们想将该功能覆盖率补全,采用直接测试用例,我们调用了5次测试,可以将覆盖率打到95.90% ,剩下的部分可以waive掉。

9a599c20-d6bb-11ed-bfe3-dac502259ad0.png

当我们采用随机测试,调用了5次随机测试,覆盖率为90.62%。

9a83e5e8-d6bb-11ed-bfe3-dac502259ad0.png

当我们采用随机测试,调用了10次随机测试,覆盖率为93.97%。

9aa85680-d6bb-11ed-bfe3-dac502259ad0.png

当我们采用随机测试,调用了20次随机测试,覆盖率为95.90%,达到了和直接测试同样的效果。

9ac3075a-d6bb-11ed-bfe3-dac502259ad0.png

第六宗罪:场景打不全

随机验证打不全所有场景

9b11af68-d6bb-11ed-bfe3-dac502259ad0.png

如上图所示,随机的行为很难将所有的测试路径都打到。

随机有没有好处呢?当然有,比如

探索更多的场景:随机验证可以探索更多的测试场景,覆盖更多的状态空间。这可以帮助发现设计中的潜在问题和漏洞,从而提高验证的质量。

发现意外错误:随机测试可以揭示一些设计者未曾考虑的异常情况,以及在正常测试中可能被忽略的边缘情况。这有助于找到并修复一些潜在的设计错误。

减少人为偏见:手动创建测试用例可能受到验证工程师的认知偏见和经验限制的影响。随机验证方法可以降低这种偏见对验证结果的影响,从而提高验证的可靠性。

减少人工编写测试用例的时间和精力:随机验证方法可以自动生成大量测试用例,从而减少人工编写测试用例的时间和精力。这有助于缩短验证周期,提高验证效率。

更好地应对复杂性:随着芯片设计变得越来越复杂,人工创建足够多的测试用例以覆盖所有可能的场景变得越来越困难。随机验证方法可以在面对复杂设计时自动生成更多的测试用例,从而更好地应对这种复杂性。

虽然使用随机验证存在很多问题,但它在许多情况下仍然是一种非常有效的验证方法。为了克服这些缺点,可以将随机验证与其他验证方法(如指导性验证、形式验证等)相结合,以实现更全面、有效的芯片验证。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59077
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    18974

原文标题:芯片验证随机(random)的六宗罪

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于功能验证、时序验证、形式验证、时序建模的论文

    随着集成电路的规模和复杂度不断增大,验证的作用越来越重要。要在较短的时间内保证芯片最终能正常工作,需要将各种验证方法相结合,全面充分地验证整个系统。FF-DX是一款高性能定点DSP,为
    发表于 12-07 17:40

    wlfi(刘孺)

    wlfi(刘孺)
    发表于 08-27 00:38

    【云智易试用体验】开箱与初评

    本帖最后由 guo8113 于 2015-9-5 20:47 编辑 老祖宗教导我们要知恩图报,免费获得的体验板子拿到了,首先还是要感谢elecfans和云智易。在收到cici的电话时没有听清楚获得使用板卡的名字,所以抓紧到论坛看了下,着实还是十分激动的,以为是OK210云云。废话不多说,韵达快递收到邮件的第二天收到了快递。盒子挺小巧:慢慢的把板子拽出来,说实话这盒子跟板子不是十分的契合,所以wifi模块和电机被嵌到了盒子里:红色板子看上去很舒服:拿出板子仔细端详了下,总体给我的感觉像是电子爱好者做的实验板:不过板子的焊接不错。首先不得不赞美作为xx云,云xx众多类似(相似还是相同)产品中的一员,我觉得上面的外设还是可以的,RGB, MOTO, 温湿度,距离,红外(没有焊接),光线这些都有。还一点值得称赞的是,提供了20PIN JTAG接口。说完了优点就该“但是”了。但是我认为云智易的板子至少可以在以下6个方面做的更好:1.包装环保而山寨,包装袋不专业2.外形方正,无屏幕接口,尺寸也是不小3.外接不方便,既然是demo就应留足用户外接扩展的需求,这一点不如采用Arduino4.跳线设置多,繁杂。5.没有快速上手说明,说明文档简陋,不好GettingStarted。6.pl2303发烫,UART接反,拿到板子之前看见QQ群有人反映接反,看了下原理图果然没有失望。 上面说了,快速上手跟演示实例看了半小时没搞定,app官网没找到,qq群找到了貌似没法用,使用指南里说的也太xxxx了,所以至于上手与软件的开发放在后面说了。总体感觉是这么简单的个东西竟然半小时没玩起来。。。
    发表于 09-05 20:38

    怎么设计基于USB和FPGA的随机数发生器验证平台?

    随机数发生器是信息安全领域不可或缺的重要组成部分,广泛应用于金融、军事等信息安全保密通信的电子设备中。目前,随着对RNG体积、功耗、接口方式等要求的提高,设计集成化芯片或IP核形式的随机数发生器成为
    发表于 08-27 06:05

    数字IC验证之“UVM”基本概述、芯片验证验证计划(1)连载中...

    讲述两个内容,芯片验证以及验证计划。首先来看看芯片验证芯片
    发表于 01-21 15:59

    电机材料/性能优劣对比

    电机材料、性能优劣对比,劣质电机十“!
    发表于 02-01 07:15

    设计验证中的随机约束

    随机约束在现代集成电路验证中已得到国际IC 设计业界的普遍认可,并逐渐开始普及。与传统的定向测试比较,它在验证效率、验证覆盖率等方面具有诸多优势。最新公布的Sys
    发表于 12-14 09:54 13次下载

    基于OVM验证平台的IP芯片验证

      芯片验证的工作量约占整个芯片研发的70%,已然成为缩短芯片上市时间的瓶颈。应用OVM方法学搭建SoC设计中的DMA IP验证平台,可有效
    发表于 06-20 09:03 2683次阅读

    一种基于贝叶斯网络的随机测试方法在Cache一致性验证中的设计与实现

    随着集成电路设计复杂度指数级增长,功能验证已经越来越成为大规模芯片设计的瓶颈,而在多核处理器中,Cache -致性协议十分复杂,验证难度大。针对Cache -致性协议验证提出基于模拟
    发表于 11-17 17:24 2次下载
    一种基于贝叶斯网络的<b class='flag-5'>随机</b>测试方法在Cache一致性<b class='flag-5'>验证</b>中的设计与实现

    基于System Verilog的可重用验证平台设计及验证结果分析

    ,并应用到包交换芯片的仿真验证中。仿真结果显示,新设计的验证平台能通过修改随机信号约束条件和产生随机信号的权重值,使
    发表于 01-12 11:28 2419次阅读
    基于System Verilog的可重用<b class='flag-5'>验证</b>平台设计及<b class='flag-5'>验证</b>结果分析

    MCU芯片验证

    第二章 验证flow验证的Roadmap验证的目标UVM验证方法学ASIC验证分解验证策略和任务
    发表于 10-25 12:36 23次下载
    MCU<b class='flag-5'>芯片</b>级<b class='flag-5'>验证</b>

    AN4230 STM32 MCU使用NIST随机数生成验证统计测试套件

    AN4230 STM32 MCU使用NIST随机数生成验证统计测试套件
    发表于 11-21 17:07 0次下载
    AN4230 STM32 MCU使用NIST<b class='flag-5'>随机</b>数生成<b class='flag-5'>验证</b>统计测试套件

    受约束随机验证的效果真的比直接用例测试好吗?

    当介绍uvm验证时大家肯定都看过上面类似的图片,以展示受约束的随机验证相比直接用例测试如何具有先进性。
    的头像 发表于 04-10 11:13 773次阅读

    随机数和真随机数的区别是什么呢?

    随机验证中的随机其实都是基于伪随机发生器的,即每次都使用一个唯一的种子生成相应的激励。
    的头像 发表于 04-17 10:12 3126次阅读

    浅析芯片验证中的scoreboard

    芯片验证中,我们随机发送数据激励,同时使用scoreboard进行数据完整性检查。
    的头像 发表于 05-04 17:32 594次阅读
    浅析<b class='flag-5'>芯片</b><b class='flag-5'>验证</b>中的scoreboard