systemverilog功能覆盖范围内过渡的交叉覆盖

时间:2014-12-12 06:40:53

标签: code-coverage system-verilog

是否可以跨越过渡覆盖范围? 类似的东西:

// A到B是一个bin。 // B到C其他bin。 我想做这个,即:A到B到B到C

换句话说,我有3个值A,B,C,我想检查A,B,C之间的所有转换组合。

1 个答案:

答案 0 :(得分:1)

您不需要跨覆盖来做您想做的事情。简单的过渡覆盖应该足够了。你只需说你对2个过渡感兴趣。

假设您的enum类型定义如下:

typedef enum { A, B, C } some_type_t;

您可以为此类型的字段定义双转换,如下所示:

class some_class;
  some_type_t field;

  covergroup cg;
    coverpoint field {
      bins trans[] = (A,B,C=>A,B,C=>A,B,C); 
    }
  endgroup // cg

  function new();
    cg = new();
  endfunction
endclass // some_class

这将为每次转换定义一个bin。