最近总结了一下EDA验证的通常流程。
1)验证活动的入口文件。验证活动的依据包括OR/FS/AS/DS/协议/算法文档。
2)验证策略和方案的制定以及测试点分解。验证策略和验证方案不容易区分,个人理解验证策略包含了明确验证的代码对象/需要在哪些地方做输入驱动/需要在哪些地方做采集输出,验证方案则是具体到包含哪些agent以及checker等组件。测试点是验证活动的源头,因此需要在验证活动最开始完成。
3)验证环境搭建。这个阶段就是使用UVM搭建一个验证环境,是真正的code阶段。
4)冒烟用例测试。在第2/3步时设计开发设计代码,当设计完成代码开发以及验证完成环境搭建时,开始跑第一条用例(有的称之为sanity用例,有的称之为冒烟用例),这个阶段一般会迭代多次,往往设计代码以及验证环境问题会很多。
5)回归收敛阶段。冒烟用例之后,验证开始逐步增加用例直到覆盖所有测试点,期间编写功能覆盖率模型,每天提批量回归,定位回归问题。这个阶段主要目标是覆盖率100%,所有用例都回归ok。
6)验证质量活动。这阶段主要check覆盖率,比如代码覆盖率功能覆盖率,一般也会有一些项目积累下来的checklist表单,对着这个checklist检查一下自己验证的各个环节。