In reply to venkatasubbarao:
You do not use begin/end in a property; it is not procedural code. You are selecting property expressions. Also, do not put ##0 at the beginning of a sequence; it does not do anything. You use it to concatenate two sequences.
property hold_checker;
@(posedge clk_in)
disable iff (~resetn || disable_assertion)
if(CK_EDGE_SEL)
$fell(strb_in) |-> $stable(data)[*HOLD_TIME] ;
else
$rose(strb_in) |-> $stable(data)[*HOLD_TIME];
endproperty
You simplify this and remove the if/else entirely.
property hold_checker;
@(posedge clk_in)
disable iff (~resetn || disable_assertion)
$fell(strb_in^CK_EDGE_SEL) |-> $stable(data)[*HOLD_TIME] ;
endproperty
Your setup checker does not do what you specified at all.