1、验证收敛概述:什么是验证收敛、为什么需要收敛策略、收敛的度量指标
1.1 什么是验证收敛?——说白了就是“验证做完了”
各位做芯片验证的朋友,咱们先聊聊一个最基础的问题:什么叫验证收敛?
我个人习惯这样定义:验证收敛,就是所有该测的场景都测了,所有该修的bug都修了,所有该覆盖的点都覆盖到了,团队一致认为“可以tape out了”的那个状态。
听起来很简单对吧?但我在项目中遇到过太多次“伪收敛”的情况。什么叫伪收敛?就是功能覆盖率到了100%,但回归测试还在天天挂;或者覆盖率达标了,但设计工程师还在改RTL代码。你想想看,这能叫收敛吗?
验证收敛其实包含三个层面:
- 功能收敛:所有功能点都被验证过,没有遗漏
- 覆盖率收敛:代码覆盖率、功能覆盖率、断言覆盖率等指标达标
- 缺陷收敛:新发现的bug数量趋近于零,且没有严重bug残留
核心观点:验证收敛不是某个时间点突然发生的,而是一个渐进的过程。它需要你持续监控、持续调整策略,最终达到一个“所有人都觉得可以了”的状态。
1.2 为什么需要收敛策略?——没有策略,你就是在瞎忙
我记得刚入行那会儿,带我的老工程师跟我说过一句话:“验证就像打地鼠,你不制定策略,bug就会从各个方向冒出来,你永远打不完。”
为什么会这样?因为芯片验证的复杂度太大了。一个SoC芯片可能有上百个IP,每个IP又有几十个功能点,再加上各种边界条件、异常场景、跨时钟域交互……你想想看,如果没有一个清晰的收敛策略,你怎么知道什么时候该停?
我个人总结,收敛策略的必要性体现在三个方面:
- 资源有限:项目有deadline,人力有上限,你不能无限期地测下去
- 风险可控:收敛策略帮你识别哪些是高风险区域,哪些可以适当放松
- 决策有据:有了度量指标,你才能跟项目经理说“我觉得可以了”或者“还需要两周”
我的经验:我曾经在一个项目中,因为没有明确的收敛策略,团队连续加班三个月,最后发现覆盖率只有70%,而且还有好几个严重bug没修。后来我们制定了分阶段的收敛计划,每个阶段都有明确的退出标准,效率提升了不少。
1.3 收敛的度量指标——拿数据说话
做验证不能靠感觉。你说“我觉得差不多了”,项目经理凭什么信你?所以我们需要度量指标。
常用的收敛度量指标,我整理了一个表格:
| 指标类别 | 具体指标 | 说明 | 我的建议阈值 |
|---|---|---|---|
| 代码覆盖率 | 行覆盖率、条件覆盖率、状态机覆盖率 | 衡量RTL代码被执行的充分性 | 行覆盖≥95%,条件覆盖≥90% |
| 功能覆盖率 | 功能点覆盖率、交叉覆盖率 | 衡量功能场景是否被充分遍历 | 功能点覆盖≥100%,交叉覆盖≥90% |
| 断言覆盖率 | 断言触发次数、断言通过率 | 衡量时序和协议检查的完整性 | 断言通过率100% |
| 缺陷收敛 | 新bug发现率、bug修复率、严重bug数量 | 衡量bug趋势是否趋于稳定 | 连续两周新bug≤3,严重bug为0 |
| 回归测试 | 回归通过率、回归运行次数 | 衡量修改是否引入新问题 | 回归通过率100%,连续运行3次无新增失败 |
嗯,这里要注意:阈值不是死的。不同的项目、不同的芯片类型,阈值可以调整。比如一个简单的MCU和一个复杂的AI芯片,收敛标准肯定不一样。
1.4 验证收敛的核心逻辑——一张图看懂
下面我用一张SVG图来展示验证收敛的整体逻辑。这张图是我自己画项目PPT时常用的思路,分享给大家:
这张图的核心逻辑是:验证计划驱动测试执行,执行结果通过度量指标反馈,最终做出收敛决策。如果指标不达标,就回到验证计划阶段,补充测试场景,继续迭代。
1.5 避坑指南——我踩过的那些坑
最后分享几个我亲身踩过的坑,希望能帮大家少走弯路:
我曾经犯过的错误:
- 只看覆盖率不看质量:有一次功能覆盖率到了100%,但实际是因为covergroup写得太粗糙,很多场景根本没区分出来。后来我养成了一个习惯:每写完一个covergroup,先手动检查几个关键场景是否真的被覆盖到了。
- 忽视交叉覆盖率:单个功能点覆盖很容易做到100%,但两个功能点组合起来可能就有遗漏。比如读写操作同时发生、不同优先级的中断嵌套等。我建议交叉覆盖率至少要达到90%以上。
- 太早宣布收敛:我记得有个项目,周五大家觉得收敛了,结果周一回归测试挂了20个case。后来我们定了个规矩:宣布收敛前,必须连续三天回归测试全部通过,且没有新增严重bug。
我的小建议:收敛不是终点,而是起点。芯片tape out之后,还要做后仿真、硬件测试。所以验证收敛只是告诉你可以进入下一阶段了,而不是说芯片一定没问题。保持敬畏心,永远给自己留一个“万一”的预案。
好了,关于验证收敛的概述就聊到这里。记住一句话:没有度量就没有收敛,没有策略就没有效率。下一节我们会深入聊功能覆盖率的建模方法,到时候再跟大家分享更多实战经验。