program main ;
typedef int unsigned uint;
initial begin
uint valid_size;
assert(std::randomize(valid_size) with {
(valid_size)**2 <= 99967;
(valid_size+1)**2 > 99967;
});
$display("valid_size = %d, %0d", valid_size, $sqrt(99967));
end
endprogram
above code give me the result:
valid_size = 1895153639, 316
why this situation happens?