System verilog 将忽略箱添加到已定义的覆盖点
我正在处理已生成的System verilog 将忽略箱添加到已定义的覆盖点,system-verilog,test-coverage,System Verilog,Test Coverage,我正在处理已生成的封面点和封面组。我可以通过`include文件访问coverpoints中的所有coverpoints,但无法直接编辑coverpoints covergroup cg_FOO; apple: coverpoint Atype_e'(sample.apple.value); kiwi: coverpoint Ktype_e'(sample.kiwi.vale); `ifdef MY_COV `include "cg_FOO.svh"
封面点
和封面组
。我可以通过`include
文件访问coverpoints
中的所有coverpoints
,但无法直接编辑coverpoints
covergroup cg_FOO;
apple: coverpoint Atype_e'(sample.apple.value);
kiwi: coverpoint Ktype_e'(sample.kiwi.vale);
`ifdef MY_COV
`include "cg_FOO.svh"
`endif
end group: cg_FOO
cg_FOO.svh就是这个covergroup
的一个例子,但是对于另一个生成的covergroup
,我有一个单独的关联文件。我在这些`include
d文件中定义了各种cross
es和未生成的coverpoints
。但是,我还想为coverpoints
apple
和kiwi
指定某些枚举值,这些值可能对cg\u FOO
无效
如果我能够更改每个coverpoint,我只需执行以下操作:
apple: coverpoint Atype_e'(sample.value) {
ignore_bins ignore_FUJI = apple with (FUJI);
}
但是,在每个covergroup
的每个coverpoint
中包含一个单独的文件是混乱的,不可行的
到目前为止,我所发现的一切都使得我似乎需要在coverpoint
结构中指定一个ignore\u bin
。我怎么能忽略cg_FOO.svh文件(即在covergroup
中)中的coverpoint
的某些箱子,但不更改所有生成的coverpoints
注意,我还有另外两个要处理的
`include
文件,一个在covergroups
之外,但在包含它们的类中(我将此文件用于宏、变量和函数定义),另一个文件用于在对covergroups
采样之前定义帮助逻辑(即当sample
得到定义时).除非您使用的工具为您提供了访问和修改覆盖率数据库的API,否则您的运气就不好了。箱子很难访问,因为它们没有容易引用的名称,您必须对它们进行扫描。通过将其权重设置为0,可以很容易地从外部排除覆盖点
如果不知道你的覆盖模型是什么样子的,很难给你一个更好的答案。包含的文件已经包含了箱子,还是仅仅是带有自动箱子的
coverpoint
以及他们自己的几个coverpoints。该文件中的coverpoints会自动生成BIN,我不会显式地编写它们。例如:overlap\u apple\u kiwi:coverpoint{overlap[0]}
Noteoverlap
在其他`include
文件中定义,并由其他`include
文件中定义的函数调用设置。似乎我的模拟器不允许我在covergroup
或coverpoint
文件中定义逻辑或函数调用,所以我使用这些`include
文件。谢谢为了给你及时的反馈,Dave。我在前面看到了这一点,并注意到他们也排除了基于权重的covergroups。但是,我想排除bins(某些无效枚举)。那么,你也提到了另一个StackOverflow问题吗?我只是运气不好,还是你对权重还有其他想法?