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

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

统计覆盖率(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.xdnf.cn/news/18471.html

相关文章:

  • 【攻防世界】easyupload
  • 量子计算驱动的Python医疗诊断编程前沿展望(上)
  • WSL Ubuntu数据迁移
  • 【数据分析】宏基因组荟萃分析(Meta-analysis)的应用与实操指南
  • 容器安全实践(三):信任、约定与“安全基线”镜像库
  • 应用篇#1:YOLOv8模型在Windows电脑摄像头上的部署
  • 26.内置构造函数
  • c# .net支持 NativeAOT 或 Trimming 的库是什么原理
  • 数据库优化提速(三)JSON数据类型在酒店管理系统搜索—仙盟创梦IDE
  • python企微发私信
  • 【React ✨】从零搭建 React 项目:脚手架与工程化实战(2025 版)
  • 文字学的多维透视:从符号系统到文化实践
  • 2025年09月计算机二级MySQL选择题每日一练——第五期
  • Go语言实战案例-Redis连接与字符串操作
  • 井云智能体封装小程序:独立部署多开版 | 自定义LOGO/域名,打造专属AI智能体平台
  • IDEA控制台乱码(Tomcat)解决方法
  • IDEA相关的设置和技巧
  • 机器人 - 无人机基础(5) - 飞控中的传感器(ing)
  • CTFshow Pwn入门 - pwn 19
  • 《天龙八部》角色安全攻防全解析:从渗透测试视角看江湖成败
  • 【Golang】有关任务窃取调度器和抢占式调度器的笔记
  • STM32F1 USART介绍及应用
  • 开发指南134-路由传递参数
  • 支持蓝牙标签打印的固定资产管理系统源码(JAVA)
  • linux编程----网络通信(TCP)
  • LLM实践系列:利用LLM重构数据科学流程04 - 智能特征工程
  • 博士招生 | 英国谢菲尔德大学 招收计算机博士
  • 项目中优惠券计算逻辑全解析(处理高并发)
  • Unreal Engine UStaticMeshComponent
  • JUC之CompletionService