In reply to ben@SystemVerilog.us:
Made a correction; needed the fork -join_none
// Data integrity check
property p_read_data_integrity;
@(posedge clk_rcv25)
rd_25 |=> rdata_from_q==rdata;
endproperty : p_read_data_integrity
ap_read_data_integrity : assert property (p_read_data_integrity);
// Assertion is equivalent to
// Updated 1/27/2023 See my paper rb.gy/mu4ttk
//
always @(posedge clk_rcv25)
if(rd_25) fork
do_check();
join_none
task automatic do_check();
@(posedge clk_rcv25) assert(rdata_from_q==rdata);