当前位置: 首页 > news >正文

讲点芯片验证中的统计覆盖率

统计覆盖率(Statistical coverage, SCOV)应该是Arm公司提出来的一种方法,它是一种利用统计可视化从回归中提出和分析激励质量的方法。SCOV可以深入挖掘激励数据,以工程师易于理解的方式提取和呈现被统计事件的信息,并有明确的改进方向。

我前几年就接触了SCOV的一些实现,但一直都不是很重视它,也没有深入思考它的潜在价值。所以我大部分情况下可能只是应付任务的方式,实现一些激励或DUT的统计事件,在跑完验证回归后,也没有仔细去分析这些统计事件的数值背后隐含的逻辑关系和可能提升激励质量的方向。

最近这一个月,在复现一个bug的过程中,我算是真正见识到SCOV的威力。当时要复现这个bug涉及到的随机激励约束太多,方向太多,刚开始是凭经验去调整约束,然后回归看是否可以复现。经过多轮尝试,浪费了些时间,仍然毫无进展。我的领导就抓取了bug出现场景的一些关键特征作为统计事件,然后调整激励组合,看在哪一种情况下,统计事件的值更大,那么就说明该激励组合下复现bug的可能性越高。果不其然,根据回归SCOV结果,在极短的时间内就找出比较合适的激励组合,而且也复现出bug了。

经过此役,我打算以后每个项目一定要深入思考和实现一些有价值的统计事件,并经常从回归收集的SCOV结果中去分析和优化激励。SCOV像其它统计方法一样,需要对统计事件要有一定的了解,才能提出有价值的改进方向。

典型的SCOV流程是由三个阶段组成的循环——数据收集、分析和激励改进。Arm提出SCOV是因为随机激励在发现难以想象漏洞上很有帮助,但它们往往效率很低,在发现错误之间运行数十亿个周期并不罕见,这表明激励花费了大部分时间来探索相同的验证状态空间。为了提高回归效率,必须增加激励的压力和唯一性。就必须搞清在这数十亿个周期中究竟发生了什么,这是一件很难的事情。FCOV可以提供对激励方案的一个大致了解,但它提供了一个相对简单化的视角。SCOV可以对事件信息进行分组和可视化,并从事件组合上提供即时反馈。而且SCOV的仿真开销通常比CCOV和FCOV低得多,允许环境更频繁地收集和分析,也可以进行更大的回归。

图1 典型SCOV循环流程

那么统计覆盖率是怎么实现的呢?既然统计覆盖率是由一些事件组成,并且统计这些事件发生的次数、分布情况等,就说明在验证环境中,可以定义一组计数器来代表这些事件,如果发生了A事件,那么A的计数器就加1,等所有用例仿真结束后,把所有用例中A事件的计数器值加起来,就可以得到在该次回归中,A事件发生的次数。当然,想要花样搞得多的话,可以统计一些二维或三维信息,比如随着仿真时间的变化,A事件发生的情况,然后用图表形式展示出来,这样就很直观了。也可以统计事件A和事件B之间的相关性等。

有机会可以多探索探索,收益还是很大。

http://www.dtcms.com/a/347494.html

相关文章:

  • 【URP】[平面阴影]原理与实现
  • 如何使用和优化SQL Server存储过程:全面指南
  • 论文阅读:arxiv 2025 Can You Trick the Grader? Adversarial Persuasion of LLM Judges
  • 【数据分享】地级市对外开放程度(2002-2021)-有缺失值
  • SpringBoot自动装配原理深度解析
  • 【LeetCode 热题 100】300. 最长递增子序列——(解法一)记忆化搜索
  • mmap映射物理内存之四内核cache同步
  • 后台管理系统-14-vue3之tag标签页的实现
  • JEI(Journal of Electronic lmaging)SCI四区期刊
  • TypeScript的接口 (Interfaces)讲解
  • Python 版本与 package 版本兼容性检查方法
  • 定时任务——ElasticJob原理
  • ChipCamp探索系列 -- 4. Intel CPU的十八代微架构
  • 【背诵2025】测试
  • 数据结构与算法——树和二叉树
  • 【科研绘图系列】浮游植物的溶解性有机碳与初级生产力的关系
  • 大麦APP抢票
  • 数据结构 之 【AVL树的简介与部分实现】(部分实现只涉及AVL树的插入问题,包括单旋((右单旋、左单旋))、双旋(左右单旋、右左单旋)等操作)
  • 国家自然科学基金(国自然基金)申请技巧详解
  • materials studio中的两种坐标系
  • 基于RISC-V架构的国产MCU在eVTOL领域的应用研究与挑战分析
  • leetcode(同向双指针 滑动窗口)209.长度最小的子数组 713.乘积小于K的子数组 3.无重复字符的最长子串
  • 随机森林1
  • 12 SQL进阶-锁(8.20)
  • 我从零开始学习C语言(14)- 基本类型 PART1
  • FRP 内网穿透全流程部署指南 (Windows/Linux)
  • 不必使用 == 和 ===,更严格的相等性判断 API 来了
  • DFT计算入门(materials studio)---Ni金属表面,几何优化
  • 求职推荐大数据可视化平台招聘系统 Vue+Flask python爬虫 前后端分离
  • 【KO】前端面试四