芯片验证过程中代码覆盖率和功能覆盖率一高一低意味着什么?
在makefile中添加-cm line+fsm+tgl+cond可完成相对应的代码覆盖率的收集。
这里简单介绍下如果你收集的代码覆盖率很高但是功能覆盖率却很低,这个可能是:

  • design没有完全按照功能spec文档规格实现所有功能,设计不完善;
  • 验证平台monitor监视器存在漏洞,设计代码实现了功能但没有覆盖到他们;
  • 功能正确,但是发送的激励不对,对应功能的覆盖率无法收集。

如果你收集的功能覆盖率很高但是代码覆盖率却很低,这可能是:

  • 设计代码没有按照spec实现功能,在design中是无效代码,
  • 用户定义的功能覆盖率收集存在错误,没有完全定比覆盖率收集的边界,测试计划未捕获所有设计功能/场景/边界,或者缺少功能覆盖率监视器。
  • 代码覆盖率中未覆盖的设计代码可能会映射到这些功能上。
  • 在实现功能覆盖率监视器时可能存在潜在的错误,导致它们收集了错误的覆盖率。因此,在验证项目中,对用户定义的功能覆盖率指标及其实现进行适当的检查很重要。

验证中,采用的是 VCS 仿真器,这款仿真器可以提供覆盖率收集的功能,并且将覆盖率报告以网页的形式保存。
进行验证评估时,一般需要保证设计中的每条代码都被执行过,才算基本完成仿真任务。但是,可能会出现无论怎样添加激励,代码中的某些语句始终无法被执行的状况。这时,就需要和设计人员进行协商,确保没有被覆盖的部分不是因为激励不够所造成的。如果是由于激励缺失所造成的,就必须根据要求添加新的激励,直至所有代码都被执行。在测试过程中,经常会出现覆盖率达到一定程度后就无法提高的情况,这时,也可以通过和设计人员讨论,对激励进行修改,提高覆盖率。代码覆盖率达到了100%,并不意味着验证的工作已经完成,但代码覆盖率100%是验证工作完备性的必要条件。
但是,即使代码覆盖率满足要求,还是不能保证所有的功能都已经被测到。因此,还需要保证功能覆盖率达到 95%以上,才能确保大多数功能已经在测试中被执行过。这样,也有助于发现潜在的 DUT 的 debug,确保 DUT 的功能正确性,提高流片成功率,使得验证具有完备性和准确性。
如何查看收集后的覆盖率?
收集后的覆盖率保存在simv.vdb文件夹中,可使用urg工具转成可视化的html文件或直接使用dve工具查看simv.vdb

直接查看指令:dve -full64 -cov -dir simv.vdb&

urg转成html文件:urg -dir simv.vdb -report urgReport

转成后的html文件可通过 firefox urgReport/dashboard.html查看

使用VCS生成覆盖率报告
VCS查看覆盖率,并使用dve查看

代码覆盖率和功能覆盖率相关推荐

  1. 功能覆盖率与代码覆盖率区别

    功能覆盖率与代码覆盖率区别 Functional coverage vs Code coverage Code coverage as the name implies measure the cov ...

  2. sonar覆盖率、代码覆盖率、分支覆盖率的计算方式

    代码质量的覆盖率分为三种,覆盖率.代码覆盖率.分支覆盖率,那每一种的计算方式是怎么样的呢? 举例: 上面最有疑惑的是覆盖率,不知道怎么算出了来的,后面再说. 通过sonarqube可以分析出: 指标 ...

  3. I2C中功能覆盖率的定义

    目录 功能覆盖率包含哪些? 1.target_address_and_slave_address_cg 2.speed_modes_cg 3.bits7_or_bits10_addressing_cg ...

  4. java 代码覆盖率_java单元测试覆盖率统计

    很多时候,开发写了单元测试,但是我们并不知道当前的单元测试覆盖率是怎么样的,所以我们需要有技术手段来分析我们的单元测试覆盖率情况. 那么,jacoco来了... jacoco介绍: jacoco 是一 ...

  5. 覆盖率系列学习之功能覆盖率COV

    之前,从未系统化的学习覆盖率知识点,空闲,整理整理. 1. 覆盖组 1.1  基本原则 覆盖组,英文名字covergroup,它和类class相似,均是需要提前进行定义,然后进行被实例化. cover ...

  6. 功能覆盖率实验第二讲:coverage中at_leat用法

    coverage中at_least用法实例代码演示 cover_ev.sv文件 module test();logic [2:0] addr; wire [2:0] addr2; reg ce;ass ...

  7. 覆盖率系列学习之功能覆盖率

    前言.... 1. 覆盖组 覆盖组,英文名字covergroup,它和类class相似,均是需要提前进行定义,然后进行被实例化. covergroup 可以包含一个或者多个coverpoint,cov ...

  8. 验证方法学覆盖率(一):代码覆盖率

    前言:随着验证方法学的发展,覆盖率作为一种判断验证充分性的手段已成为验证工作的主导.绝大多数验证工程师会将覆盖率分为两大类:代码覆盖率和功能覆盖率.本文主要介绍有关代码覆盖率的概念. 代码覆盖率 代码 ...

  9. SystemVerilog学习-10-验证量化和覆盖率

    类型转换 静态转换 静态转换操作符不对转换值进行检查.转换时指定目标类型,并在要转换的表达式前加上单引号即可.Verilog对整数和实数类型,或者不同位宽的向量之间进行隐式转换. 动态转换 可以将子类 ...

  10. SystemVerilog与功能验证

    目录 一.功能验证流程 二.验证手段.验证技术.验证方法学 三.数据类型与编程结构 四.并发进程与进程同步 五.面向对象编程 六.虚接口 七.随机测试 八.继承与多态 九.功能覆盖率 十.断言 一.功 ...

最新文章

  1. linux系统下docker安装,Linux下Docker的安装与使用
  2. 网络文学平台如何借力智能推荐,实现阅读体验全面提升?
  3. vscode可以打开jupyternotebook吗_刚刚,官方宣布 VS Code 支持 Python 全开发了!
  4. 微信小程序插件内页面跳转和参数传递
  5. go 数组任意位置插入数字类型的元素
  6. 孩子有心理问题不愿意做心理咨询,父母该怎么办?
  7. CTP2交易所成交回报
  8. (转)BCG出品史上最全Fintech-金融科技-发展趋势报告
  9. Linux 用户管理 修改用户的家目录 useradd usermod
  10. autojs读取文字_Auto.js 获取识别图片文本
  11. 三亿顶级流量社区,下厨房APP变现三部曲
  12. logback配置 (分文件夹、可配路径)_hanCSDN_20180906
  13. SpiceyPy-内核与时间尺度转换
  14. seller_info - 获得义乌购店铺详情
  15. 文献阅读总结--合成生物学工程促进大肠杆菌中莽草酸的高水平积累
  16. Python3 File flush() 方法、 Python3 File write() 方法
  17. 我们精通那么多技术,为何还是做不好一个项目?
  18. python如何绘制条形图_python Matplotlib 系列教程(三)——绘制直方图和条形图
  19. Hybrid App 和 React Native 开发那点事
  20. 4.1 目标检测基础

热门文章

  1. 大一上:计算机导论复习(每章分值、常考题型以及部分章节课后习题答案【网上没有,老师自己做的】)
  2. PCI驱动的注册和初始化
  3. Excel函数教程_COLUMN和VLOOKUP实现多字段匹配
  4. Springboot开启APR模式
  5. android camera慢动作,慢动作相机app下载-慢动作相机软件 安卓版v1.1-PC6安卓网
  6. aptana php插件使用教程,用Aptana Studio 1.5开发PHP,很强的PHP IDE,Aptana PHP,简介,安装教程...
  7. win7旗舰版系统下usb外接无线网卡安装教程
  8. 《西游记》《封神榜》各路神仙基本层次图,不要再傻傻分不清楚了
  9. RPG游戏中造过的BUG
  10. 《战双帕弥什》的动作打击感是怎么做出来的