数字验证流程
1.熟读项目文档,包括设计文档,接口文档等
2.根据文档提取测试点,测试点分解分类有:数据流功能点,寄存器,DFX功能,异常等
3.编写组件验证代码,与完整的验证环境相比,缺少DUT,主要为了验证接口组件,用于搭建整体环境。包括transation,sequence,sequencer,driver,monitor,scoreboard,以及agent
3.搭建验证环境,各组件具体含义参考《UVM应用指南及源码分析》,在验证RTL之前,首先进行环境自测试,完成环境自测试后,完成RM,RM实现与RTL代码相同的功能,只是使用SV编写的没有时序的代码,最后将RM输出的数据流和RTL(DUT)输出的数据流,在Scoreboard里比较。
4.编写TC,功能覆盖率,实现功能覆盖率的收集
根据测试点相应的TC以及功能覆盖率模型,以上跑通后,make cov,收集覆盖率,打开dve查看覆盖率收集情况
5.重复4,完成多个TC的编写以及覆盖率的收集,这是个不断迭代的过程
6.跑回归,实现TC种子的随机性,完善RTL的强韧性,也是一个迭代的过程