Есть ли способ ограничения бинов, сгенерированных в покрытии переходов, в точках покрытия System Verilog?
Например, я бы хотел покрыть переход от до некоторого значения и переход от некоторого значения, но мне все равно, что это за переход в / из, и я не хочу выписывать отдельный бин для каждого рассматриваемого «некоторого значения».
module a ;
logic [7-1 : 0] b;
covergroup c ;
cp_aaa : coverpoint b {
bins tr [] = ([0:128] => [0:128]) ;
}
endgroup
endmodule
производит 2 ^ 14 бинов, что слишком много.
Было бы неплохо иметь что-то вроде следующего псевдокода:
bins tr [] = (notq => q)
for q inside {[128-1:0]}
where notq != q && notq inside {[128-1:0]};
и генерировать просто128 ячеек.
Да, в данном конкретном случае это почти то же самое, что сказать bins tr [] = {[128-1:0]}
, но меня интересует принцип.
В идеале был бы способ процедурно(не декларативно) генерировать ящики ...