Constraint for memories

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