In reply to dave_59:
Thanks Dave.
class address;
int N = 3;
int memLimit = 8192;
rand bit [15:0] addrs[];
rand bit [15:0] sizes[];
function new();
addrs = new[N];
sizes = new[N];
endfunction
constraint c {
foreach(addrs[Range]) {
if (Range != N-1)
addrs[Range] + sizes[Range] < addrs[Range+1];
else
addrs[Range] + sizes[Range] < memLimit;
sizes[Range] inside {[1:memLimit-1]};
}
}
endclass
module top;
initial begin
address fc;
fc = new();
repeat(10) begin
fc.randomize();
$display("%p %p", fc.addrs, fc.sizes);
end
end
endmodule