是否可以根据参数从特定组中排除某些掩护点?
covergroup NEW (string for_exclusion) @ (clk);
option.per_instance = 1;
option.comment = for_exclusion;
apples: coverpoint (available) { bins hit1 = {1'b1};}
bananas: coverpoint ({not_available, less}) {bins hit1 = {1'b1};}
oranges: coverpoint ({available, less}) {bins hit1 = {1'b1};}
rose: coverpoint ({available, flower}) {bins hit1 = {1'b1};}
这是原始文件的一小部分。我想根据我已经在模块中传递的参数 parameter IDENTITY = 2'b00 从此掩护组中排除“玫瑰”。有没有办法做到这一点? (请忽略语法错误,如果有的话。我现在不担心它们)
我尝试使用它,但是它没有作用。
covergroup NEW (string for_exclusion) @ (clk);
option.per_instance = 1;
option.comment = for_exclusion;
apples: coverpoint (available) { bins hit1 = {1'b1};}
bananas: coverpoint ({not_available, less}) {bins hit1 = {1'b1};}
oranges: coverpoint ({available, less}) {bins hit1 = {1'b1};}
generate
if (IDENTITY = 2'b01) begin
rose: coverpoint ({available, flower}) {bins hit1 = {1'b1};}
end
endgenerate`
答案 0 :(得分:0)
在声明另一个结构的中间不能使用generate
。您可以将那个Coverpoint分离到另一个Covergroup中,而不基于另一个参数来构造/采样它吗?
另一种选择是根据该参数将覆盖点的权重设置为0。您可以在构建Covergroup之前或之后使用过程代码来完成此操作。
if (IDENTITY != 2'b01)
NEW::rose::type_option.weight = 0;
或在掩护点内
rose: coverpoint ({available, flower}) {
bins hit1 = {1'b1};
option.weight = (IDENTITY == 2'b01};
}