Verilog 显式交叉覆盖定义

Verilog 显式交叉覆盖定义,verilog,system-verilog,uvm,Verilog,System Verilog,Uvm,1.是否可以在系统verilog中明确列出交叉覆盖点?下面是一个例子 2.由于我只对双行的出现感兴趣,{code>{1,2}、{3,1}、{2,4}而不是b1或b2独立,我能在不创建覆盖点b1和b2的情况下完成这项工作吗 您可能不希望您试图覆盖的内容有一个十字。交叉的容器用于合并或排除元组,而不是创建元组。您可能需要使用一个简单的覆盖点 cp: coverpoint {i,j} { bins mx[]= { {32'd1,32'd2},{32'd3,32'd1},{32'd2,32'd4}

1.是否可以在系统verilog中明确列出交叉覆盖点?下面是一个例子

2.由于我只对双行的出现感兴趣,{code>{1,2}、{3,1}、{2,4}而不是
b1
b2
独立,我能在不创建覆盖点
b1
b2
的情况下完成这项工作吗


您可能不希望您试图覆盖的内容有一个
十字。交叉的容器用于合并或排除元组,而不是创建元组。您可能需要使用一个简单的覆盖点

cp: coverpoint {i,j} {
   bins mx[]= { {32'd1,32'd2},{32'd3,32'd1},{32'd2,32'd4} };
}
或者更简单地说

cp: coverpoint {i[3:0],j[3:0]} {
  bins mx[]= { 'h12,'h31,'h24 };
}

不过,在报告中看起来会有点尴尬。我仍然会选择交叉覆盖,并将单个覆盖点上的权重设置为0。@Tudor,这实际上取决于OP希望覆盖的内容。@dave_59这种方法不只是将两个整数串联起来吗?如果i和j是枚举呢?是的。您可以同样轻松地连接两个枚举。谢谢..但是当连接了
enum1=1
enum2=2
时(不像Tudor提到的那样可读性较差),报告上会显示为
bin_00002
。是否可以明确列出交叉覆盖范围(我的问题#1)?
cp: coverpoint {i[3:0],j[3:0]} {
  bins mx[]= { 'h12,'h31,'h24 };
}