在芯片设计领域,许多工程师一接到项目就迫不及待地开始写代码,而把文档工作抛在脑后。他们认为与代码相比,文档显得不那么重要。这种观念导致工程师与项目经理之间的沟通不畅:工程师期望项目经理审阅代码,而项目经理更需要文档来了解工作概况。
一、验证计划:芯片验证的战术性指导文件
验证计划是芯片验证的战术性指导文件,而验证策略是战略性指导文件。验证计划的存在有多重必要性:它可以更清楚地知道验证某对象有哪些任务和风险;方便评估工作量、人力安排和进度节点;帮助判断验证何时可以结束。
验证计划还提供了一份验证环境对应的文档,方便其他人审视和提出改进意见;也方便以后人员交接时,有文档可供参考;同时能减少不必要的沟通,让团队成员做事有依据可循;并在验证收尾时帮助查缺补漏。
二、验证计划的核心内容:技术与管理的完美结合
从技术角度看,验证计划需要涵盖验证功能点、验证层次、测试用例、验证方法和覆盖率要求。功能点需要按照优先级分为基本功能、互动功能和次要功能。
基本功能包括时钟、电源、复位、寄存器访问和基本特性,这些可以在模块级完成验证;互动功能需要同其他模块互动的特性,需要在更高层次验证;次要功能如性能验证,即使未通过也不会对芯片造成致命影响。

从项目管理角度,验证计划需要考虑使用的工具、人力安排、进度安排和风险评估。验证经理常常面临人力不足或时间紧张的情况,此时需要做好动态的人力分配,实现高效的资源配置。
三、验证计划的动态性:不是一次性的任务
验证计划不是写一次就束之高阁了,而是会随着项目的进行反复更新。如果待验设计的规格变化,验证计划就需要相应更新。有些验证计划在实施过程中可能发现某些方面不可行,也需要进行更新、评审和改进。

如上图所示,验证计划撰写的流程是一个周而复始、循环进行的过程,需要不断与各方人员沟通确认,并根据合理建议进行完善。
覆盖率:验证进度的重要衡量指标
在验证过程中,需要通过多种覆盖率指标来评估验证进度:
代码覆盖率衡量RTL代码是否被充分运行,包括语句覆盖率、条件覆盖率、决策覆盖率等;功能覆盖率衡量是否实现设计的各项功能,且是否按预想的行为执行;断言覆盖率通过仿真或形式验证工具收集。
覆盖率是衡量验证进度的关键指标,是基于覆盖率驱动的验证技术的核心。如果覆盖率实现有问题,将直接导致验证闭环被破坏。
四、验证计划的评估与收敛
在验证过程中需要不断更新验证进度,从各项参数综合评估验证的完备性。通过收集回归测试通过率、代码覆盖率、功能覆盖率和断言覆盖率等信息来评估验证计划的实施进程。
回归测试表是将测试设计所有功能点的用例合并为一个测试集,其主要功能是在设计经过缺陷修复或性能提高后测试原有所有功能点,确保设计正常工作。

总结:好的验证计划是成功的一半
完整的验证计划是做好验证必不可少的条件。它不仅是验证工程师的事情,更需要其他相关领域的同事共同参与完善。好的验证计划可以显著提高验证效率,降低项目风险,避免昂贵的芯片重新流片。
芯片验证是一项复杂而艰巨的任务,而验证计划就像一张精细的行军地图,指引团队在正确的方向上前进。千万不要怕麻烦,好的验证计划是成功的一半,它能帮助团队在芯片设计的复杂 terrain 中不迷失方向,最终抵达成功的彼岸。
356

被折叠的 条评论
为什么被折叠?



