如何根据交叉覆盖点的总和来限制交叉点仓? binsof 是什么意思?
How to restrict a cross point bin based on the sum of crossed coverpoints? and what's the meaning of binsof?
我得到两个 3 位信号 a
和 b
,合法值为 0-4。
我试图建立一个交叉点,如果总和也在 0-4 范围内,我只考虑覆盖率。这样做的首选方法是什么?我有一个似乎可行的解决方案,但我在某些地方猜到了 ...
covergroup CG_operands @(posedge clk);
coveproint a { illegal_bins hi = {[5:$]}; }
coveproint b { illegal_bins hi = {[5:$]}; }
cross a, b { illegal_bins hi = binsof(a) with (a + b > 4) }
endgroup
binsof(a)
部分有什么作用?如果我将其更改为 binsof(a) && binsof(b)
,覆盖率报告似乎没有任何变化。是否可以完全跳过 binsof
部分?
我还可以使用 > 4
使覆盖点条件看起来更像十字的 with 条件吗?
binsof
运算符用于 select 来自 coverpoint
的 bin 子集。但是由于您正在 select 处理整个封面点 a,因此使用 binsof(b)
或 binsof(a) && binsof(b)
之间没有区别。你可以写
ab: cross a, b { ignore_bins hi = ab with (a + b > 4); }
我得到两个 3 位信号 a
和 b
,合法值为 0-4。
我试图建立一个交叉点,如果总和也在 0-4 范围内,我只考虑覆盖率。这样做的首选方法是什么?我有一个似乎可行的解决方案,但我在某些地方猜到了 ...
covergroup CG_operands @(posedge clk);
coveproint a { illegal_bins hi = {[5:$]}; }
coveproint b { illegal_bins hi = {[5:$]}; }
cross a, b { illegal_bins hi = binsof(a) with (a + b > 4) }
endgroup
binsof(a)
部分有什么作用?如果我将其更改为 binsof(a) && binsof(b)
,覆盖率报告似乎没有任何变化。是否可以完全跳过 binsof
部分?
我还可以使用 > 4
使覆盖点条件看起来更像十字的 with 条件吗?
binsof
运算符用于 select 来自 coverpoint
的 bin 子集。但是由于您正在 select 处理整个封面点 a,因此使用 binsof(b)
或 binsof(a) && binsof(b)
之间没有区别。你可以写
ab: cross a, b { ignore_bins hi = ab with (a + b > 4); }