If MAXWAITS is a variable, something like this may work:
property check_ready(MAXWAITS,AWREADY,AWVALID);
int n;
@(posedge clk)
(rose(AWVALID), n = MAXWAITS) |-> first_match((n >= 0, n = n-1)[*0:] ##1 AWREADY);
endproperty
If MAXWAITS is a variable, something like this may work:
property check_ready(MAXWAITS,AWREADY,AWVALID);
int n;
@(posedge clk)
(rose(AWVALID), n = MAXWAITS) |-> first_match((n >= 0, n = n-1)[*0:] ##1 AWREADY);
endproperty