gpt4 book ai didi

system-verilog - SystemVerilog 覆盖范围 : Create a bin for each element of an enum

转载 作者:行者123 更新时间:2023-12-01 15:27:45 25 4
gpt4 key购买 nike

假设我有一个包含有效命令或操作码列表的枚举。有没有办法为枚举的每个元素创建一个 bin?

class command_coverage;
enum {SEQ_WRITE_16_BIT = 32'hBEEFFOOD, SEQ_READ_16_BIT = 32'hFACEFACE,
... } my_valid_commands

covergroup cg();
command_cp : coverpoint cmd {
bins valid_commands[] = each element of enum;
}
endgroup

...

endclass

我试过类似的方法:

bins valid_commands[] = my_valid_commands;

bins valid_commands[] = {[0:$] inside my_valid_commands};

但它并没有像我想要的那样工作。

最佳答案

可以做到:

command_cp : coverpoint my_valid_commands {
bins valid_commands[] = {[my_valid_commands.first:my_valid_commands.last]};

firstlast 是枚举的方法,分别返回第一个和最后一个值。然后将它们用作范围的一部分。

这是 Mentor Questa 的显示(其他模拟器可用 - 我的电脑上安装了 Questa):

enter image description here

这是一个 MCVE :

https://www.edaplayground.com/x/5rUu

module enum_cg;

enum {SEQ_WRITE_16_BIT, SEQ_READ_16_BIT} my_valid_commands;

covergroup cg();
command_cp : coverpoint my_valid_commands {
bins valid_commands[] = {[my_valid_commands.first:my_valid_commands.last]};
}
endgroup

cg cg0 = new;

initial begin
my_valid_commands = SEQ_WRITE_16_BIT;
cg0.sample;
end

endmodule

关于system-verilog - SystemVerilog 覆盖范围 : Create a bin for each element of an enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53408088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com