Verilog 如何根据交叉覆盖点的总和限制交叉点bin?宾索的意思是什么?

Verilog 如何根据交叉覆盖点的总和限制交叉点bin?宾索的意思是什么?,verilog,system-verilog,test-coverage,Verilog,System Verilog,Test Coverage,我得到了两个合法值为0-4的3位信号a和b 我试图做一个交叉点,如果总和也在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

我得到了两个合法值为0-4的3位信号a和b

我试图做一个交叉点,如果总和也在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
零件的作用是什么?如果我将其更改为binsofa&&binsofb,则覆盖率报告中似乎没有任何变化。是否可以完全跳过零件的存储箱

我还可以使用>4使覆盖点条件看起来更像交叉的with条件吗?

binsof操作符用于从覆盖点选择一个子集。但是,由于您选择的是整个coverpoint a,所以使用binsofb或binsofa&&binsofb之间没有区别。你可以写

ab: cross a, b { ignore_bins hi = ab with (a + b > 4); }

那么,如果我在十字架上没有使用第三个覆盖点,会发生什么呢?coverpoint c…不知道你的意思。请作为单独的问题提问。我想我还是不明白部分的含义,我会做一些实验,如果需要的话,再回答另一个问题,谢谢Dave。想象一下,我们没有coverpoints,而是有10行10列。如果你穿过它们,你会得到100个元素。现在,如果从所有行中选择十字,仍然会得到100个元素。选择十字的所有列也可以得到100个元素。因此,如果同时选择和/或两个选项,仍然会得到100个元素。现在将覆盖点一分为二分为高箱和低箱。使用相同的十字,您可以选择binsof rows.lo。您已经选择了50个元素。binsofrows.lo&&binsofcols.hi将是25个元素,对它们进行排序将选择75个元素。