system-verilog - 将 ignore_bins 添加到已定义的覆盖点
问题描述
我正在使用已经生成的coverpoints
和covergroups
. 我有办法通过文件访问所有内容coverpoints
,但无法直接编辑。covergroup
`include
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
的我有一个单独的关联文件。我在这些d文件中定义了各种cross
es和非生成。但是,我还想为 和 指定某些枚举值,这可能对.coverpoints
`include
coverpoints
apple
kiwi
cg_FOO
如果我能够更改每个覆盖点,我只需执行以下操作:
apple: coverpoint Atype_e'(sample.value) {
ignore_bins ignore_FUJI = apple with (FUJI);
}
coverpoint
但是,在每个文件中包含一个单独的文件covergroup
是混乱且不可行的。
到目前为止,我发现的一切都让我觉得我需要指定一个ignore_bin
内部coverpoint
结构。coverpoint
我怎么能从我的cg_FOO.svh 文件中忽略 a 的某些箱(即在 中covergroup
,但不更改所有生成的coverpoints
)?
请注意,我还有 2 个其他 `include
文件要使用,一个在包含它们的类之外但在包含它们的类内部(我将此文件用于宏、变量和函数定义),另一个文件在s getcovergroups
之前定义帮助逻辑covergroup
采样(即sample
定义时)。
解决方案
除非您使用的工具为您提供了访问和修改覆盖率数据库的 API,否则您很不走运。垃圾箱很难访问,因为它们没有简单的名称来引用它们,您必须浏览它们。通过将它们的权重设置为 0,可以很容易地从外部排除覆盖点。
在不确切知道您的覆盖模型是什么样子的情况下,很难给您一个更好的答案。
推荐阅读
- cassandra-3.0 - Reaper 配置中的 JMX 凭据
- amazon-web-services - Jenkins Fargate 插件:如何限制扩展
- optimization - 代表储藏室的最佳方式
- vuetify.js - 自定义卡片组件 Vue.js + Vuetify
- android - 无需提示即可访问所有文件
- python - 如何调用 random.choice() 的次数超过列表中元素的数量:Python
- php - 如何使用 Ajax 获取 Cookie 和设置 Cookie 短代码
- spring - Quarkus 应用程序 - 向 OpenAPI 定义添加基本路径
- visual-studio-code - 用于快速翻译不同语言文档的扩展悬停在 VSCode 中
- assembly - x86 程序集:对输入值求和然后对它们进行平均的程序在尝试访问不可访问的内存位置后崩溃