system-verilog - 我怎么知道会自动创建哪些垃圾箱?
问题描述
此代码来自“SystemVerilog IEEE STD 1800-2017”:
bit [7:0] a;
covergroup ga ( int abm);
option.auto_bin_max = abm;
coverpoint a { ignore_bins i = {3}; }
endgroup
ga gv1 = new (64);
ga gv2 = new (32);
在上面的示例中写道:“在这种情况下,gv1引用的实例的bin是“auto[0:3]”到“auto[252:255]”,而gv2引用的实例的bin是“auto[0:7]”到“auto[248:255]”。
有人可以向我解释一下,为什么要创建这些垃圾箱?
解决方案
是的。该选项auto_bin_max
设置将自动创建的最大 bin 数。因此,使用 8 位变量a
(如您在此处所使用的),而不是创建 256 个箱(每个值一个箱),您会得到auto_bin_max
箱。
当auto_bin_max
覆盖组实例设置为 64 gv1
(这实际上是它的默认值),所以你得到 64 个相同大小的 bin。256/64=4,每个 bin 是 4 个值。
当auto_bin_max
覆盖组实例设置为 32 时gv2
,您将获得 32 个大小相同的箱。256/32=8,所以每个 bin 是 8 个值。
推荐阅读
- php - 在 Laravel 中通过内部 with() 排序
- scala - Gatling 将数据从 feeder 传递到 exec
- ios - UIView 弹簧动画是否使用缓动曲线选项?
- three.js - 在 ThreeJS 中获取对象的全局旋转位置
- stream - HERE.OLP:如何“订阅通知”到目录?
- firefox - 如何在 Firefox 中监控 websocket 帧
- html - 如何..获取在AngularJS + HTML中检查的值“值”的检查行的总和
- powercli - PowerCli 获取存储 I/O 控制状态
- c# - C# 中的 SSIS 脚本任务错误
- python-3.x - 我正在尝试使用 python 从数据集中删除一组列