Specman coverage:有没有办法用变量定义范围?

时间:2014-11-16 16:05:32

标签: range cover specman e

comp_value获得1 .. 100之间的值。 另外,我有一个输入变量period(相同范围)。我需要涵盖comp_values的两个范围:[1..period][period+1 .. 100]。像这样:

cover some_event_e is {
        item period using no_collect;
        item comp_val using no_collect,
            ranges = {
                range([1..period], "Smaller_than_period");
                range([period+1..100], "Bigger_than_period");
            };
    };

(代码导致编译错误,因为无法在范围内写入变量)。 有没有办法收集保险? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

范围必须保持不变。

但如果我理解你的意图,你可以定义新项目,如

cover some_event_e is {
  item smaller_or_equal_than_period: bool = (comp_val in [1..period]) using 
    ignore = (not smaller_or_equal_than_period);
  item greater_than_period: bool = (comp_val in [(min(100,period+1)..100]) using
    ignore = (not greater_than_period); 
};

假设时间段始终为[1..100]。