In reply to Shubhabrata:
// Bad assertion
(s1,count=count+1)[*1:$] ##1 $rose(done) ##0 (count == no_of_repetition);
required a first_match because if for example, no_of_repetition==4 and s1==1 for 15 cycles, and done occurs at the 7th cycle, the assertion will fail only when s1==0.
//Corrected assertion
property check;
int count=0;
@ (posedge clk)
$rose(enable) |->
first_match((s1,count=count+1)[*1:$] ##1 $rose(done)) ##0 (count == no_of_repetition);
endproperty