在sys
下的验证环境中,有一个timer_sve
的实例。在timer_sve
下,我还有其他2个实例:timer
和ocp_master
:
extend sys {
timer_sve : timer_sve_u is instance;
};
unit timer_sve_u {
timer : timer_u is instance;
ocp_master : ocp_u is instance;
};
我只需要为timer
收集保险。
我已尝试使用此代码(及其许多其他变体)来禁用ocp_master
的覆盖率:
extend sys {
timer_sve : timer_sve_u is instance;
setup() is also { // The code to disable ocp_master's coverage
global.covers.set_cover_block("ocp_u", FALSE);
};
};
代码已编译并成功运行,但它继续收集ocp_master
的覆盖范围...
如何禁用收集ocp_master
保险?
真的很感谢你的帮助。
答案 0 :(得分:1)
方法set_cover_block(...)
不将单元作为输入,而是定义覆盖元素的模块(即文件)。尝试更改它以获取您使用覆盖范围定义扩展ocp_u
的文件。
我还要做些什么来禁用某些覆盖项目/组/等。将when
选项设置为FALSE
:
extend some_struct {
cover some_cover using also
when = FALSE;
};
我的一些猜测:
使用set_cover_block(...)
禁用覆盖范围可能无法检测排除的代码覆盖范围(即完全忽略覆盖范围定义),并使模拟运行速度快于使用when
选项禁用它。