Почему не работает ограничение суммы в System Verilog Dynamic Array?(Запуск на детской площадке EDA (Aldec Tool Riviera Pro 2017) ///////////////////////////////////////
/////========================
class c ;
string name;
rand logic [4:0] len;
rand logic [4:0] duty_cycles[];
constraint c1 { duty_cycles.size()==len; len inside {[2:5]}; solve len before duty_cycles;};
constraint c2 { duty_cycles.sum() with (int'(item)) == 20;};
function new(string name="randcreater”)
this.name=name;
endfunction
function void post_randomize ();
$display ("New rand of len %d, sum=%d",duty_cycles.size, duty_cycles.sum());
foreach(duty_cycles[i])begin $display("%d",duty_cycles[i]); end
endfunction
endclass
/////=====================
module testbench ();
c obj;
initial begin
obj = new;
repeat (10) begin
obj.randomize();
#10;
end
end
endmodule
/////////////////////////////////////
Результат:
KERNEL: Новый ранд len 2, сумма = 6
KERNEL: 6
KERNEL: 0
KERNEL: новый ранд len 2, sum = 4
KERNEL: 2
KERNEL: 2