/* elements of the array to sum up to <1000*/
-------------------------------------Working
class tb;
rand int unsigned a[10];
constraint aa{a.sum()<10'd1000;}
endclass
module rb;
tb A;
initial
begin
A=new();
repeat(10)
begin
A.randomize();
$display("%p",A.a);
end
end
endmodule
Result
'{'h0, 'h0, 'h5f, 'h1c, 'h0, 'h0, 'h0, 'h0, 'h0, 'h0}
'{'h0, 'h0, 'h2, 'h0, 'h221, 'h0, 'h0, 'h0, 'h0, 'h1be}
'{'he, 'h0, 'h2f, 'h0, 'hf, 'h0, 'h0, 'h14a, 'h0, 'h0}
'{'h17, 'h0, 'h1e2, 'h0, 'h9e, 'h54, 'h2, 'h33, 'h5, 'h0}
'{'h0, 'h0, 'h20e, 'h0, 'h3, 'h1f, 'h0, 'h0, 'h0, 'h0}
'{'h0, 'h0, 'h1b6, 'h0, 'hb1, 'h0, 'hb3, 'h0, 'h0, 'h0}
'{'h0, 'h270, 'h3, 'h0, 'h0, 'h0, 'h0, 'h116, 'h0, 'h29}
'{'h1, 'h21, 'h0, 'h0, 'h8e, 'h0, 'h0, 'h8, 'h0, 'h213}
'{'h0, 'h0, 'h5, 'h0, 'h0, 'h17, 'h0, 'h0, 'h0, 'h2b7}
'{'h0, 'h0, 'h3, 'h3, 'h8, 'h0, 'hda, 'h9, 'h244, 'h0}
-------------------------------------Not Working
class tb;
rand shortint unsigned a[10];
constraint aa{a.sum()<10'd1000;} //if 'd is removed its working as desired
endclass
module rb;
tb A;
initial
begin
A=new();
repeat(10)
begin
A.randomize();
$display("%p",A.a);
end
end
endmodule
Result
'{'h2, 'h0, 'h83, 'h6, 'h2af, 'h0, 'h0, 'h0, 'h2, 'h40}
'{'h0, 'h0, 'h0, 'h0, 'h1f6, 'h1f, 'h0, 'h0, 'h0, 'h0}
'{'ha2, 'h6a, 'h0, 'h1, 'h9, 'h13, 'h68, 'h0, 'ha0, 'h1ac}
'{'h3, 'h0, 'h0, 'h1, 'h0, 'h289, 'h62, 'h38, 'h9c, 'h0}
'{'h0, 'h0, 'h1, 'h0, 'h11d, 'h0, 'h0, 'h11b, 'h0, 'h0}
'{'h0, 'h0, 'h0, 'h0, 'h0, 'h2e7, 'h0, 'h16, 'h0, 'h0}
'{'h56b, 'h1a21, 'h63, 'h39b, 'h691a, 'h8b4a, 'h2a0e, 'hb531, 'h265f, 'he454}
'{'ha754, 'hc443, 'h3e3b, 'he4c, 'h6f44, 'hb24c, 'h154f, 'h86, 'h11e9, 'h120}
'{'h7f7d, 'h3220, 'h192b, 'h77c2, 'h4ad0, 'hd9, 'h4b1f, 'h19d, 'h2f7, 'h250a}
'{'h0, 'h13a, 'h0, 'h63, 'h49, 'h0, 'h33, 'h42, 'h1a, 'h30}
For short int if 'd is removed its working as desired.
Resolve.
Thank you.