I can't finish the code for this: AXI ARID for issuing multiple reads and device responds with data out of order with matching RID.
- How can you check if master is reusing a ARID of an outstanding read.
I have started this way, I know I can save the outstanding rid in a Queue, then I can delete upon receiving the ack for that req, but not sure how to check. I am sure this is too rough, but I am new in SVA. I wish to know where to add the check for then new request ID, if I put the check in the antecedent then I might create vacuous pass.
int rid[$];
always @(posedge req) rid.push_back(RID_RTL);
always @(posedge ack) begin
foreach(rid[i]) begin
if(rid[i]== ACK_RID)
rid[i].delete();
end
end
property REQACK_P;
@(posedge clk) disable iff(!rst_n)
$rose(req) |=> ##[0:$] $rose(ack);
endproperty