将 ignore_bins 添加到已定义的覆盖点

Add ignore_bins To Already Defined Coverpoints

我正在使用已经生成的 coverpointscovergroups。我有办法通过 `include 文件访问 covergroup 中的所有 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 我有一个单独的关联文件。我在这些 `included 文件中定义了各种 crosses 和非生成的 coverpoints。但是,我还想为 coverpoints applekiwi 指定某些可能对 cg_FOO.

无效的枚举值

如果我能够更改每个封面点,我会执行以下操作:

apple: coverpoint Atype_e'(sample.value) {
  ignore_bins ignore_FUJI = apple with (FUJI);
}

但是,在每个 covergroup 中的每个 coverpoint 中包含一个单独的文件是混乱且不可行的。

到目前为止我发现的所有内容都让我觉得我需要在 coverpoint 结构中指定一个 ignore_bin。我怎么能忽略我的 cg_FOO.svh 文件中 coverpoint 的某些容器(即在 covergroup 中,但不更改所有生成的 coverpoints)?

请注意,我还有 2 个其他 `include 文件可以使用,一个在 covergroups 之外但在包含它们的 class 之内(我将此文件用于宏,变量和函数定义),以及另一个文件,用于在 covergroup 被采样之前定义帮助逻辑(即当 sample 被定义时)。

除非您使用的工具为您提供 API 访问和修改覆盖率数据库,否则您真不走运。垃圾桶很难访问,因为它们没有简单的名称来引用它们,您必须浏览它们。通过将它们的权重设置为 0,可以很容易地从外部排除覆盖点。

在不确切知道您的覆盖模型是什么样子的情况下,很难给您更好的答案。