高效的约束随机验证变异分析覆盖
1 引言
在电子和嵌入式系统功能正确性验证中,仿真仍占据主导地位。如今,设计日益复杂,一方面是为了充分利用摩尔定律推动的集成电路容量,另一方面则得益于设计能力的提升。虽然采用了基于模型、系统级的方法和更广泛的 IP 复用,但我们的验证能力却滞后了。许多当前的开发项目中,验证团队规模与设计团队规模之比已超过 2:1。
为应对设计的复杂性,随机仿真被应用以降低编写定向测试向量的人力成本。它能自动生成测试输入,增强了基于仿真方法的可扩展性。此外,还可以在输入域上施加约束和偏差,以克服随机性的不足,更全面地测试设计。基于约束随机仿真的验证(CRV)过程尤其需要有效的度量标准来评估其充分性,而这种标准的有效性和可靠性应通过其检测潜在设计错误的能力来判断。
常见的覆盖指标有代码覆盖(如语句覆盖、分支覆盖)和功能覆盖。代码覆盖是最直观的指标,被大多数硬件描述语言(HDLs)仿真工具支持,但高代码覆盖只能有限地反映完成进度。功能覆盖机制则需要验证工程师明确定义变量值范围,这要求他们深入理解设计,并付出额外努力来定义覆盖点,具有一定主观性。
变异分析(MA)最初用于软件测试,是一种基于故障的测试数据选择技术。它通过对原始程序源代码进行单一语法更改(即变异)来创建程序突变体。如果一个测试使突变体产生与原始程序不同的输出,则称该突变体被“杀死”。测试过程中被杀死的突变体百分比被用作覆盖充分性的度量。MA 定义了覆盖结果与测试揭示设计错误能力之间的系统关联,通过定义覆盖点和建立耦合效应,为测试或验证过程提供可靠保障。然而,MA 存在计算成本极高的问题,这成为其应用的主要挑战。
超级会员免费看
订阅专栏 解锁全文
1319

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



