【问题标题】:Is there a way to guard the creation of covergroup bins有没有办法保护covergroup bins的创建
【发布时间】:2019-12-30 08:54:14
【问题描述】:

有没有办法保护明确命名的 bin 的创建,如此处所示

coverpoints_bins: coverpoint signal_a
bins a1 = {1};
bins a2 = {2};
bins a4 = {4}; <--- create bin a4 only if parameter "CREATE_A4 is 1"

例如这样的:

coverpoints_bins: coverpoint signal_a
bins a1 = {1};
bins a2 = {2};
bins a4 = {4} create_iff(CREATE_A4 == 1); 

注意:create_iff 只是一些伪代码函数,用于防止创建垃圾箱,除非条件为真

因为据我所知,iff 条件不能防止垃圾箱的创建,但 iff 仅用于防范垃圾箱命中

【问题讨论】:

    标签: verilog code-coverage system-verilog hdl test-bench


    【解决方案1】:

    您可以使用with 子句来选择垃圾箱

    bins a4 = {4} with (CREATE_A4 == 1); 
    

    这可能会生成一条警告消息,说明您的垃圾箱设置为空。另一种方法是使用 bin set 数组。

    int my_bins[];
    ...
    if (CREATE_A4 == 1) // execute this before constructing the covergroup
       my_bins = {1,2,4};
    else
       my_bins = {1,2};
    
    ...
    coverpoints_bins: coverpoint signal_a
    bins a[] = my_bins;
    

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 2020-12-10
      • 2020-04-02
      • 1970-01-01
      • 2023-03-27
      • 2015-01-27
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      相关资源
      最近更新 更多